@prisma/orm-family-sql 0.16.0-dev.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +28 -0
- package/dist/ast-BstHjAoG.mjs +325 -0
- package/dist/ast-BstHjAoG.mjs.map +1 -0
- package/dist/ast-DSuzmsWn.d.mts +287 -0
- package/dist/ast-DSuzmsWn.d.mts.map +1 -0
- package/dist/authoring-type-constructors-Blqoa2Ua-DyCmD6mp.mjs +316 -0
- package/dist/authoring-type-constructors-Blqoa2Ua-DyCmD6mp.mjs.map +1 -0
- package/dist/build-contract-DBCz_YSs-DO0wMHai.mjs +778 -0
- package/dist/build-contract-DBCz_YSs-DO0wMHai.mjs.map +1 -0
- package/dist/builder.d.mts +3 -0
- package/dist/builder.mjs +1 -0
- package/dist/builder__runtime.d.mts +42 -0
- package/dist/builder__runtime.d.mts.map +1 -0
- package/dist/builder__runtime.mjs +955 -0
- package/dist/builder__runtime.mjs.map +1 -0
- package/dist/builder__types.d.mts +3 -0
- package/dist/builder__types.mjs +1 -0
- package/dist/canonicalization-hooks-CYnW_sGn.d.mts +10 -0
- package/dist/canonicalization-hooks-CYnW_sGn.d.mts.map +1 -0
- package/dist/canonicalization-hooks-DfIc_lOO.mjs +87 -0
- package/dist/canonicalization-hooks-DfIc_lOO.mjs.map +1 -0
- package/dist/codec-descriptor-registry-BJVJRftS.mjs +96 -0
- package/dist/codec-descriptor-registry-BJVJRftS.mjs.map +1 -0
- package/dist/codec-types-MOaceoPi-C5eL2sao.d.mts +116 -0
- package/dist/codec-types-MOaceoPi-C5eL2sao.d.mts.map +1 -0
- package/dist/config-types-47qB33rW.d.mts +21 -0
- package/dist/config-types-47qB33rW.d.mts.map +1 -0
- package/dist/config-types-N7PJc6VN.mjs +65 -0
- package/dist/config-types-N7PJc6VN.mjs.map +1 -0
- package/dist/contract-builder-MvJJrQ-5.d.mts +1306 -0
- package/dist/contract-builder-MvJJrQ-5.d.mts.map +1 -0
- package/dist/contract-builder-YjMQcvZ1.mjs +1615 -0
- package/dist/contract-builder-YjMQcvZ1.mjs.map +1 -0
- package/dist/contract-emitter.d.mts +25 -0
- package/dist/contract-emitter.d.mts.map +1 -0
- package/dist/contract-emitter.mjs +2 -0
- package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs +9 -0
- package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs.map +1 -0
- package/dist/contract-psl.d.mts +65 -0
- package/dist/contract-psl.d.mts.map +1 -0
- package/dist/contract-psl.mjs +2 -0
- package/dist/contract-psl__provider.d.mts +23 -0
- package/dist/contract-psl__provider.d.mts.map +1 -0
- package/dist/contract-psl__provider.mjs +105 -0
- package/dist/contract-psl__provider.mjs.map +1 -0
- package/dist/contract-ts.d.mts +3 -0
- package/dist/contract-ts.mjs +4 -0
- package/dist/contract-ts__config-types.d.mts +2 -0
- package/dist/contract-ts__config-types.mjs +2 -0
- package/dist/contract-ts__contract-builder.d.mts +2 -0
- package/dist/contract-ts__contract-builder.mjs +3 -0
- package/dist/contract-view-BMR5IWk4.mjs +39 -0
- package/dist/contract-view-BMR5IWk4.mjs.map +1 -0
- package/dist/contract-view-BbWQp6r4.d.mts +61 -0
- package/dist/contract-view-BbWQp6r4.d.mts.map +1 -0
- package/dist/contract.d.mts +26 -0
- package/dist/contract.mjs +17 -0
- package/dist/contract__canonicalization-hooks.d.mts +2 -0
- package/dist/contract__canonicalization-hooks.mjs +2 -0
- package/dist/contract__contract-view.d.mts +2 -0
- package/dist/contract__contract-view.mjs +2 -0
- package/dist/contract__entity-handle-lowering-hook.d.mts +2 -0
- package/dist/contract__entity-handle-lowering-hook.mjs +2 -0
- package/dist/contract__entity-kinds.d.mts +2 -0
- package/dist/contract__entity-kinds.mjs +2 -0
- package/dist/contract__factories.d.mts +2 -0
- package/dist/contract__factories.mjs +2 -0
- package/dist/contract__foreign-key-materialization.d.mts +2 -0
- package/dist/contract__foreign-key-materialization.mjs +2 -0
- package/dist/contract__index-naming.d.mts +2 -0
- package/dist/contract__index-naming.mjs +2 -0
- package/dist/contract__index-type-validation.d.mts +2 -0
- package/dist/contract__index-type-validation.mjs +2 -0
- package/dist/contract__index-types.d.mts +3 -0
- package/dist/contract__index-types.mjs +2 -0
- package/dist/contract__pack-types.d.mts +2 -0
- package/dist/contract__pack-types.mjs +1 -0
- package/dist/contract__referential-action-sql.d.mts +2 -0
- package/dist/contract__referential-action-sql.mjs +2 -0
- package/dist/contract__resolve-storage-table.d.mts +2 -0
- package/dist/contract__resolve-storage-table.mjs +2 -0
- package/dist/contract__types.d.mts +11 -0
- package/dist/contract__types.mjs +4 -0
- package/dist/contract__validators.d.mts +2 -0
- package/dist/contract__validators.mjs +3 -0
- package/dist/contract__value-set-derivation-hook.d.mts +2 -0
- package/dist/contract__value-set-derivation-hook.mjs +2 -0
- package/dist/control-B7iS4jv4.mjs +1326 -0
- package/dist/control-B7iS4jv4.mjs.map +1 -0
- package/dist/control-BHmsZudH.d.mts +948 -0
- package/dist/control-BHmsZudH.d.mts.map +1 -0
- package/dist/control-adapter-4y1O8Ps3.d.mts +1 -0
- package/dist/control-adapter-C99J7aEF-C-17lFY8.d.mts +191 -0
- package/dist/control-adapter-C99J7aEF-C-17lFY8.d.mts.map +1 -0
- package/dist/db-DhMsmBS--DKENDi3l.d.mts +365 -0
- package/dist/db-DhMsmBS--DKENDi3l.d.mts.map +1 -0
- package/dist/ddl-types-BMp2bWVS-D1waZJ4n.mjs +153 -0
- package/dist/ddl-types-BMp2bWVS-D1waZJ4n.mjs.map +1 -0
- package/dist/ddl-types-rrMsf77U-DGctYf-T.d.mts +149 -0
- package/dist/ddl-types-rrMsf77U-DGctYf-T.d.mts.map +1 -0
- package/dist/diff-B16bL_IR.mjs +13 -0
- package/dist/diff-B16bL_IR.mjs.map +1 -0
- package/dist/diff-DhlzHOMD.d.mts +104 -0
- package/dist/diff-DhlzHOMD.d.mts.map +1 -0
- package/dist/dist-C_q1_QR9.mjs +9 -0
- package/dist/dist-C_q1_QR9.mjs.map +1 -0
- package/dist/dist-DrScXbhq.mjs +414 -0
- package/dist/dist-DrScXbhq.mjs.map +1 -0
- package/dist/dist-x6jvtkKM.mjs +68 -0
- package/dist/dist-x6jvtkKM.mjs.map +1 -0
- package/dist/entity-handle-lowering-hook-CIvRKBfa.d.mts +92 -0
- package/dist/entity-handle-lowering-hook-CIvRKBfa.d.mts.map +1 -0
- package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs +11 -0
- package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs.map +1 -0
- package/dist/entity-kinds-DKxwKolf-CcsY-iYV.mjs +136 -0
- package/dist/entity-kinds-DKxwKolf-CcsY-iYV.mjs.map +1 -0
- package/dist/entity-kinds-Dh6VH4uK.d.mts +29 -0
- package/dist/entity-kinds-Dh6VH4uK.d.mts.map +1 -0
- package/dist/errors-B5g0xWro-mWH2C07F.mjs +9 -0
- package/dist/errors-B5g0xWro-mWH2C07F.mjs.map +1 -0
- package/dist/errors.d.mts +63 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +2 -0
- package/dist/expression-DIf8F4Mc.d.mts +167 -0
- package/dist/expression-DIf8F4Mc.d.mts.map +1 -0
- package/dist/expression-RUO52bJB.mjs +109 -0
- package/dist/expression-RUO52bJB.mjs.map +1 -0
- package/dist/factories-B7tA4y9D.d.mts +39 -0
- package/dist/factories-B7tA4y9D.d.mts.map +1 -0
- package/dist/factories-CDG9zBxC.mjs +77 -0
- package/dist/factories-CDG9zBxC.mjs.map +1 -0
- package/dist/family.d.mts +13 -0
- package/dist/family.mjs +12 -0
- package/dist/family__control-adapter.d.mts +3 -0
- package/dist/family__control-adapter.mjs +1 -0
- package/dist/family__control.d.mts +4 -0
- package/dist/family__control.mjs +4 -0
- package/dist/family__diff.d.mts +3 -0
- package/dist/family__diff.mjs +3 -0
- package/dist/family__ir.d.mts +2 -0
- package/dist/family__ir.mjs +3 -0
- package/dist/family__migration.d.mts +2 -0
- package/dist/family__migration.mjs +2 -0
- package/dist/family__pack.d.mts +249 -0
- package/dist/family__pack.d.mts.map +1 -0
- package/dist/family__pack.mjs +18 -0
- package/dist/family__pack.mjs.map +1 -0
- package/dist/family__psl-infer.d.mts +2 -0
- package/dist/family__psl-infer.mjs +2 -0
- package/dist/family__runtime.d.mts +3 -0
- package/dist/family__runtime.mjs +3 -0
- package/dist/family__verify.d.mts +2 -0
- package/dist/family__verify.mjs +2 -0
- package/dist/foreign-key-BSy9u4O4-BnsOe5Nf.d.mts +85 -0
- package/dist/foreign-key-BSy9u4O4-BnsOe5Nf.d.mts.map +1 -0
- package/dist/foreign-key-materialization-Ca-wRbmj.d.mts +65 -0
- package/dist/foreign-key-materialization-Ca-wRbmj.d.mts.map +1 -0
- package/dist/foreign-key-materialization-HI7BIQrG.mjs +72 -0
- package/dist/foreign-key-materialization-HI7BIQrG.mjs.map +1 -0
- package/dist/index-Bb9U36N4.d.mts +511 -0
- package/dist/index-Bb9U36N4.d.mts.map +1 -0
- package/dist/index-BgaTJRxj.d.mts +25 -0
- package/dist/index-BgaTJRxj.d.mts.map +1 -0
- package/dist/index-naming-BZWoh45T.d.mts +62 -0
- package/dist/index-naming-BZWoh45T.d.mts.map +1 -0
- package/dist/index-naming-BoGBcMmI-DiJAr66H.mjs +108 -0
- package/dist/index-naming-BoGBcMmI-DiJAr66H.mjs.map +1 -0
- package/dist/index-type-validation-COH4d78M.mjs +17 -0
- package/dist/index-type-validation-COH4d78M.mjs.map +1 -0
- package/dist/index-type-validation-DN0L2mqm.d.mts +10 -0
- package/dist/index-type-validation-DN0L2mqm.d.mts.map +1 -0
- package/dist/index-types-CNhHgKHi.d.mts +1 -0
- package/dist/index-types-DJQ_xwaE.mjs +40 -0
- package/dist/index-types-DJQ_xwaE.mjs.map +1 -0
- package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts +31 -0
- package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts.map +1 -0
- package/dist/interpreter-5WgpL-ax-_nqHLUTr.mjs +3526 -0
- package/dist/interpreter-5WgpL-ax-_nqHLUTr.mjs.map +1 -0
- package/dist/ir-B3bKMnGQ.d.mts +123 -0
- package/dist/ir-B3bKMnGQ.d.mts.map +1 -0
- package/dist/ir-I-xciGUH.mjs +36 -0
- package/dist/ir-I-xciGUH.mjs.map +1 -0
- package/dist/lane-query-builder.d.mts +236 -0
- package/dist/lane-query-builder.d.mts.map +1 -0
- package/dist/lane-query-builder.mjs +67 -0
- package/dist/lane-query-builder.mjs.map +1 -0
- package/dist/middleware-B4XbF4d4-tfwBl6mX.d.mts +119 -0
- package/dist/middleware-B4XbF4d4-tfwBl6mX.d.mts.map +1 -0
- package/dist/middleware-ByRsXxxq.d.mts +1 -0
- package/dist/middleware-CMr4CHNz-DHIUdxlm.mjs +80 -0
- package/dist/middleware-CMr4CHNz-DHIUdxlm.mjs.map +1 -0
- package/dist/migration-CK4oePIo.mjs +44 -0
- package/dist/migration-CK4oePIo.mjs.map +1 -0
- package/dist/migration-CW0ZJLxP.d.mts +44 -0
- package/dist/migration-CW0ZJLxP.d.mts.map +1 -0
- package/dist/naming-BwqqVcZy-BgTObIQw.mjs +177 -0
- package/dist/naming-BwqqVcZy-BgTObIQw.mjs.map +1 -0
- package/dist/naming-jLgdauLi-C84G_UHi.d.mts +133 -0
- package/dist/naming-jLgdauLi-C84G_UHi.d.mts.map +1 -0
- package/dist/operations.d.mts +2 -0
- package/dist/operations.mjs +2 -0
- package/dist/orm-client.d.mts +1316 -0
- package/dist/orm-client.d.mts.map +1 -0
- package/dist/orm-client.mjs +4544 -0
- package/dist/orm-client.mjs.map +1 -0
- package/dist/pack-types-BcLTpwbv.d.mts +14 -0
- package/dist/pack-types-BcLTpwbv.d.mts.map +1 -0
- package/dist/plan-BTD8xFfa-Dd_K-A1R.d.mts +45 -0
- package/dist/plan-BTD8xFfa-Dd_K-A1R.d.mts.map +1 -0
- package/dist/plan-CkpcgUaM.mjs +34 -0
- package/dist/plan-CkpcgUaM.mjs.map +1 -0
- package/dist/plan-Cm4jaoNM.d.mts +2 -0
- package/dist/psl-infer-6je61Z6J.d.mts +119 -0
- package/dist/psl-infer-6je61Z6J.d.mts.map +1 -0
- package/dist/psl-infer-DGftl-HW.mjs +362 -0
- package/dist/psl-infer-DGftl-HW.mjs.map +1 -0
- package/dist/query-lane-context-Bz8XJZ45.d.mts +1 -0
- package/dist/query-lane-context-DtdVMqoz-C2Tj5QHA.d.mts +94 -0
- package/dist/query-lane-context-DtdVMqoz-C2Tj5QHA.d.mts.map +1 -0
- package/dist/referential-action-sql-Csd6dA8G.d.mts +12 -0
- package/dist/referential-action-sql-Csd6dA8G.d.mts.map +1 -0
- package/dist/referential-action-sql-DSqkrySN.mjs +17 -0
- package/dist/referential-action-sql-DSqkrySN.mjs.map +1 -0
- package/dist/relational-core.d.mts +13 -0
- package/dist/relational-core.mjs +8 -0
- package/dist/relational-core__ast.d.mts +5 -0
- package/dist/relational-core__ast.mjs +5 -0
- package/dist/relational-core__codec-descriptor-registry.d.mts +39 -0
- package/dist/relational-core__codec-descriptor-registry.d.mts.map +1 -0
- package/dist/relational-core__codec-descriptor-registry.mjs +2 -0
- package/dist/relational-core__contract-free.d.mts +220 -0
- package/dist/relational-core__contract-free.d.mts.map +1 -0
- package/dist/relational-core__contract-free.mjs +393 -0
- package/dist/relational-core__contract-free.mjs.map +1 -0
- package/dist/relational-core__expression.d.mts +2 -0
- package/dist/relational-core__expression.mjs +2 -0
- package/dist/relational-core__middleware.d.mts +3 -0
- package/dist/relational-core__middleware.mjs +2 -0
- package/dist/relational-core__plan.d.mts +4 -0
- package/dist/relational-core__plan.mjs +2 -0
- package/dist/relational-core__query-lane-context.d.mts +3 -0
- package/dist/relational-core__query-lane-context.mjs +1 -0
- package/dist/relational-core__types.d.mts +3 -0
- package/dist/relational-core__types.mjs +1 -0
- package/dist/resolve-storage-table-DUwyRJmP.d.mts +21 -0
- package/dist/resolve-storage-table-DUwyRJmP.d.mts.map +1 -0
- package/dist/resolve-storage-table-DZsfnzeW.mjs +46 -0
- package/dist/resolve-storage-table-DZsfnzeW.mjs.map +1 -0
- package/dist/runtime-DNewRuec.d.mts +46 -0
- package/dist/runtime-DNewRuec.d.mts.map +1 -0
- package/dist/runtime-tIHpGCcG.mjs +55 -0
- package/dist/runtime-tIHpGCcG.mjs.map +1 -0
- package/dist/runtime.d.mts +4 -0
- package/dist/runtime.mjs +1606 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/schema-differ-DpG_gnur-g5_iks8G.d.mts +47 -0
- package/dist/schema-differ-DpG_gnur-g5_iks8G.d.mts.map +1 -0
- package/dist/schema-ir.d.mts +2 -0
- package/dist/schema-ir.mjs +2 -0
- package/dist/schema-ir__naming.d.mts +2 -0
- package/dist/schema-ir__naming.mjs +2 -0
- package/dist/schema-ir__types.d.mts +3 -0
- package/dist/schema-ir__types.mjs +2 -0
- package/dist/schema-verify-vtFZbmGq-BNfTr6fU.mjs +222 -0
- package/dist/schema-verify-vtFZbmGq-BNfTr6fU.mjs.map +1 -0
- package/dist/serialized-index-B96AwqtU-DcqcB4q_.d.mts +26 -0
- package/dist/serialized-index-B96AwqtU-DcqcB4q_.d.mts.map +1 -0
- package/dist/serialized-index-Dp5_EjXD-DMsw8jf3.mjs +64 -0
- package/dist/serialized-index-Dp5_EjXD-DMsw8jf3.mjs.map +1 -0
- package/dist/sql-contract-serializer-2oBWuxTe-B9hzBBv1.mjs +171 -0
- package/dist/sql-contract-serializer-2oBWuxTe-B9hzBBv1.mjs.map +1 -0
- package/dist/sql-execution-plan-CJmsCP7n-DoEpNn7r.d.mts +32 -0
- package/dist/sql-execution-plan-CJmsCP7n-DoEpNn7r.d.mts.map +1 -0
- package/dist/sql-index-DsI8HAeK-BJsn-jvD.d.mts +72 -0
- package/dist/sql-index-DsI8HAeK-BJsn-jvD.d.mts.map +1 -0
- package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts +42 -0
- package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts.map +1 -0
- package/dist/sql-storage-B0QwiTg6-B8DVctJm.d.mts +171 -0
- package/dist/sql-storage-B0QwiTg6-B8DVctJm.d.mts.map +1 -0
- package/dist/storage-table-BBaAmanc-BwR37LMA.d.mts +130 -0
- package/dist/storage-table-BBaAmanc-BwR37LMA.d.mts.map +1 -0
- package/dist/storage-table-_LWDmPfv-DFhU2dML.mjs +277 -0
- package/dist/storage-table-_LWDmPfv-DFhU2dML.mjs.map +1 -0
- package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts +41 -0
- package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts.map +1 -0
- package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs +173 -0
- package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs.map +1 -0
- package/dist/types-BchwQpmO.d.mts +16 -0
- package/dist/types-BchwQpmO.d.mts.map +1 -0
- package/dist/types-BgkZru_1-H7yfikSQ.mjs +1444 -0
- package/dist/types-BgkZru_1-H7yfikSQ.mjs.map +1 -0
- package/dist/types-CMMQS6aG.mjs +111 -0
- package/dist/types-CMMQS6aG.mjs.map +1 -0
- package/dist/types-CuDrWc5v-ISVXBmBs.d.mts +134 -0
- package/dist/types-CuDrWc5v-ISVXBmBs.d.mts.map +1 -0
- package/dist/types-CvbBw1Jo-3KQdErJY.d.mts +688 -0
- package/dist/types-CvbBw1Jo-3KQdErJY.d.mts.map +1 -0
- package/dist/types-DIBA80mc-wf5wLmON.d.mts +723 -0
- package/dist/types-DIBA80mc-wf5wLmON.d.mts.map +1 -0
- package/dist/types-DMxc5KZa.d.mts +1 -0
- package/dist/types-Dl20lxky-DC_jdA0T.d.mts +247 -0
- package/dist/types-Dl20lxky-DC_jdA0T.d.mts.map +1 -0
- package/dist/types-DmhUVq4u-BpqqjPJx.mjs +719 -0
- package/dist/types-DmhUVq4u-BpqqjPJx.mjs.map +1 -0
- package/dist/types-IqZMLrFC-DtdJNICr.d.mts +426 -0
- package/dist/types-IqZMLrFC-DtdJNICr.d.mts.map +1 -0
- package/dist/types-TvBZ2Ne9.d.mts +1 -0
- package/dist/unique-constraint-jQWfH7dg-zLWtFp99.d.mts +32 -0
- package/dist/unique-constraint-jQWfH7dg-zLWtFp99.d.mts.map +1 -0
- package/dist/util-DQQgv2j1-D6INZaRG.mjs +34 -0
- package/dist/util-DQQgv2j1-D6INZaRG.mjs.map +1 -0
- package/dist/validators-C4PItWnf.mjs +0 -0
- package/dist/validators-C4PItWnf.mjs.map +1 -0
- package/dist/validators-CxeHhHrf.d.mts +206 -0
- package/dist/validators-CxeHhHrf.d.mts.map +1 -0
- package/dist/value-set-derivation-hook-BhgGVtw0.d.mts +35 -0
- package/dist/value-set-derivation-hook-BhgGVtw0.d.mts.map +1 -0
- package/dist/value-set-derivation-hook-Di9JZ0X7.mjs +22 -0
- package/dist/value-set-derivation-hook-Di9JZ0X7.mjs.map +1 -0
- package/dist/verify-E6Dd2vYp-gYwnlhLm.mjs +86 -0
- package/dist/verify-E6Dd2vYp-gYwnlhLm.mjs.map +1 -0
- package/dist/verify-zDRnw0Rn.d.mts +26 -0
- package/dist/verify-zDRnw0Rn.d.mts.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter-5WgpL-ax-_nqHLUTr.mjs","names":[],"sources":["../../../../2-sql/2-authoring/contract-psl/dist/interpreter-5WgpL-ax.mjs"],"sourcesContent":["import { crossRef } from \"@internal/contract/types\";\nimport { hasRegisteredFieldNamespace, instantiateAuthoringEntityType, instantiateAuthoringFieldPreset, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringFieldPresetDescriptor, isAuthoringModelAttributeDescriptor, isAuthoringPslBlockDescriptor, isAuthoringTypeConstructorDescriptor, validateAuthoringHelperArguments } from \"@internal/framework-components/authoring\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { bool, entityRef, fieldAttribute, fieldRef, findBlockDescriptor, funcCall, identifier, interpretAttribute, keywordPslSpan, leafDiagnostic, list, modelAttribute, nodePslSpan, num, oneOf, optional, record, str } from \"@internal/psl-parser\";\nimport { deriveValueSetFromEntity } from \"@internal/sql-contract/value-set-derivation-hook\";\nimport { buildSqlContractFromDefinition } from \"@internal/sql-contract-ts/contract-builder\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/contract-errors.ts\nfunction contractError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\n//#endregion\n//#region src/psl-attribute-parsing.ts\nfunction lowerFirst(value) {\n\tif (value.length === 0) return value;\n\treturn value[0]?.toLowerCase() + value.slice(1);\n}\nfunction getAttribute(attributes, name) {\n\treturn attributes?.find((attribute) => attribute.name === name);\n}\nfunction formatDbAttributeMigrationMessage(attribute) {\n\tconst renderedArguments = attribute.args.map((argument) => argument.kind === \"named\" && argument.name !== void 0 ? `${argument.name}: ${argument.value}` : argument.value).join(\", \");\n\tconst argumentList = attribute.args.length === 0 ? \"\" : `(${renderedArguments})`;\n\tconst constructorName = attribute.name.slice(3);\n\treturn `@${attribute.name}${argumentList} is no longer supported; use ${constructorName}${argumentList} in type position`;\n}\nfunction getNamedArgument(attribute, name) {\n\tconst entry = attribute.args.find((arg) => arg.kind === \"named\" && arg.name === name);\n\tif (entry?.kind !== \"named\") return;\n\treturn entry.value;\n}\nfunction unquoteStringLiteral(value) {\n\tconst trimmed = value.trim();\n\tconst match = trimmed.match(/^(['\"])(.*)\\1$/);\n\tif (!match) return trimmed;\n\treturn match[2] ?? \"\";\n}\nfunction mapFieldNamesToColumns(input) {\n\tconst columns = [];\n\tfor (const fieldName of input.fieldNames) {\n\t\tconst columnName = input.mapping.fieldColumns.get(fieldName);\n\t\tif (!columnName) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `${input.entityLabel} references unknown field \"${input.modelName}.${fieldName}\"`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: input.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcolumns.push(columnName);\n\t}\n\treturn columns;\n}\n//#endregion\n//#region src/default-function-registry.ts\nfunction formatSupportedFunctionList(registry) {\n\tconst signatures = Array.from(registry.entries()).sort(([a], [b]) => a.localeCompare(b)).flatMap(([functionName, entry]) => {\n\t\tconst usageSignatures = entry.usageSignatures?.filter((signature) => signature.length > 0);\n\t\treturn usageSignatures && usageSignatures.length > 0 ? usageSignatures : [`${functionName}()`];\n\t});\n\treturn signatures.length > 0 ? signatures.join(\", \") : \"none\";\n}\nfunction lowerDefaultFunctionWithRegistry(input) {\n\tconst entry = input.registry.get(input.call.fn);\n\tif (entry) return entry.lower({\n\t\tcall: input.call,\n\t\tcontext: input.context\n\t});\n\tconst supportedFunctionList = formatSupportedFunctionList(input.registry);\n\treturn {\n\t\tok: false,\n\t\tdiagnostic: {\n\t\t\tcode: \"PSL_UNKNOWN_DEFAULT_FUNCTION\",\n\t\t\tmessage: `Default function \"${input.call.fn}\" is not supported in SQL PSL provider v1. Supported functions: ${supportedFunctionList}.`,\n\t\t\tsourceId: input.context.sourceId,\n\t\t\tspan: input.call.span\n\t\t}\n\t};\n}\n//#endregion\n//#region src/psl-authoring-arguments.ts\nconst INVALID_AUTHORING_ARGUMENT = Symbol(\"invalidAuthoringArgument\");\nfunction isIdentifierStartCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z_$]/.test(character);\n}\nfunction isIdentifierCharacter(character) {\n\treturn character !== void 0 && /[A-Za-z0-9_$]/.test(character);\n}\nfunction parseJsLikeLiteral(value) {\n\tlet index = 0;\n\tfunction skipWhitespace() {\n\t\twhile (/\\s/.test(value[index] ?? \"\")) index += 1;\n\t}\n\tfunction parseIdentifier() {\n\t\tconst first = value[index];\n\t\tif (!isIdentifierStartCharacter(first)) return INVALID_AUTHORING_ARGUMENT;\n\t\tlet end = index + 1;\n\t\twhile (isIdentifierCharacter(value[end])) end += 1;\n\t\tconst identifier = value.slice(index, end);\n\t\tindex = end;\n\t\treturn identifier;\n\t}\n\tfunction parseString() {\n\t\tconst quote = value[index];\n\t\tif (quote !== \"\\\"\" && quote !== \"'\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tlet result = \"\";\n\t\twhile (index < value.length) {\n\t\t\tconst character = value[index];\n\t\t\tindex += 1;\n\t\t\tif (character === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tif (character === quote) return result;\n\t\t\tif (character !== \"\\\\\") {\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst escaped = value[index];\n\t\t\tindex += 1;\n\t\t\tif (escaped === void 0) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tswitch (escaped) {\n\t\t\t\tcase \"'\":\n\t\t\t\tcase \"\\\"\":\n\t\t\t\tcase \"\\\\\":\n\t\t\t\tcase \"/\":\n\t\t\t\t\tresult += escaped;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"b\":\n\t\t\t\t\tresult += \"\\b\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"f\":\n\t\t\t\t\tresult += \"\\f\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"n\":\n\t\t\t\t\tresult += \"\\n\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"r\":\n\t\t\t\t\tresult += \"\\r\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"t\":\n\t\t\t\t\tresult += \"\t\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"u\": {\n\t\t\t\t\tconst hex = value.slice(index, index + 4);\n\t\t\t\t\tif (!/^[0-9A-Fa-f]{4}$/.test(hex)) return INVALID_AUTHORING_ARGUMENT;\n\t\t\t\t\tresult += String.fromCharCode(Number.parseInt(hex, 16));\n\t\t\t\t\tindex += 4;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t\t\t}\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseNumber() {\n\t\tconst raw = value.slice(index).match(/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/)?.[0];\n\t\tif (!raw) return INVALID_AUTHORING_ARGUMENT;\n\t\tconst parsed = Number(raw);\n\t\tif (!Number.isFinite(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += raw.length;\n\t\treturn parsed;\n\t}\n\tfunction parseArray() {\n\t\tif (value[index] !== \"[\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = [];\n\t\tskipWhitespace();\n\t\tif (value[index] === \"]\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult.push(entry);\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"]\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseObject() {\n\t\tif (value[index] !== \"{\") return INVALID_AUTHORING_ARGUMENT;\n\t\tindex += 1;\n\t\tconst result = {};\n\t\tskipWhitespace();\n\t\tif (value[index] === \"}\") {\n\t\t\tindex += 1;\n\t\t\treturn result;\n\t\t}\n\t\twhile (index < value.length) {\n\t\t\tskipWhitespace();\n\t\t\tconst key = value[index] === \"\\\"\" || value[index] === \"'\" ? parseString() : parseIdentifier();\n\t\t\tif (key === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] !== \":\") return INVALID_AUTHORING_ARGUMENT;\n\t\t\tindex += 1;\n\t\t\tconst entry = parseValue();\n\t\t\tif (entry === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\t\tresult[key] = entry;\n\t\t\tskipWhitespace();\n\t\t\tif (value[index] === \",\") {\n\t\t\t\tindex += 1;\n\t\t\t\tskipWhitespace();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (value[index] === \"}\") {\n\t\t\t\tindex += 1;\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tfunction parseValue() {\n\t\tskipWhitespace();\n\t\tconst character = value[index];\n\t\tif (character === \"{\") return parseObject();\n\t\tif (character === \"[\") return parseArray();\n\t\tif (character === \"\\\"\" || character === \"'\") return parseString();\n\t\tif (character === \"-\" || /\\d/.test(character ?? \"\")) return parseNumber();\n\t\tconst identifier = parseIdentifier();\n\t\tif (identifier === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t\tif (identifier === \"true\") return true;\n\t\tif (identifier === \"false\") return false;\n\t\tif (identifier === \"null\") return null;\n\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t}\n\tskipWhitespace();\n\tconst parsed = parseValue();\n\tif (parsed === INVALID_AUTHORING_ARGUMENT) return parsed;\n\tskipWhitespace();\n\treturn index === value.length ? parsed : INVALID_AUTHORING_ARGUMENT;\n}\nfunction parseStringArrayLiteral(value) {\n\tconst parsed = parseJsLikeLiteral(value);\n\tif (parsed === INVALID_AUTHORING_ARGUMENT || !Array.isArray(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\tif (!parsed.every((item) => typeof item === \"string\")) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction isPlainObject(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction parsePslObjectLiteral(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed.startsWith(\"{\") || !trimmed.endsWith(\"}\")) return INVALID_AUTHORING_ARGUMENT;\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(trimmed);\n\t} catch {\n\t\tparsed = parseJsLikeLiteral(trimmed);\n\t\tif (parsed === INVALID_AUTHORING_ARGUMENT) return INVALID_AUTHORING_ARGUMENT;\n\t}\n\tif (!isPlainObject(parsed)) return INVALID_AUTHORING_ARGUMENT;\n\treturn parsed;\n}\nfunction parsePslAuthoringArgumentValue(descriptor, rawValue) {\n\tswitch (descriptor.kind) {\n\t\tcase \"string\": return unquoteStringLiteral(rawValue);\n\t\tcase \"boolean\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\tif (trimmed === \"true\") return true;\n\t\t\tif (trimmed === \"false\") return false;\n\t\t\treturn INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tcase \"number\": {\n\t\t\tconst parsed = Number(unquoteStringLiteral(rawValue));\n\t\t\treturn Number.isNaN(parsed) ? INVALID_AUTHORING_ARGUMENT : parsed;\n\t\t}\n\t\tcase \"stringArray\": return parseStringArrayLiteral(rawValue);\n\t\tcase \"object\": return parsePslObjectLiteral(rawValue);\n\t\tcase \"option\": {\n\t\t\tconst trimmed = rawValue.trim();\n\t\t\treturn /^[A-Za-z_][A-Za-z0-9_]*$/.test(trimmed) ? trimmed : INVALID_AUTHORING_ARGUMENT;\n\t\t}\n\t\tdefault: return INVALID_AUTHORING_ARGUMENT;\n\t}\n}\nfunction pushInvalidPslHelperArgument(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `${input.entityLabel} ${input.helperLabel} ${input.message}`,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.span\n\t});\n}\nfunction mapPslHelperArgs(input) {\n\tconst mappedArgs = input.descriptors.map(() => void 0);\n\tconst positionalArgs = input.args.filter((arg) => arg.kind === \"positional\");\n\tconst namedArgs = input.args.filter((arg) => arg.kind === \"named\");\n\tif (positionalArgs.length > input.descriptors.length) return pushInvalidPslHelperArgument({\n\t\tdiagnostics: input.diagnostics,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.span,\n\t\tentityLabel: input.entityLabel,\n\t\thelperLabel: input.helperLabel,\n\t\tmessage: `accepts at most ${input.descriptors.length} argument(s), received ${positionalArgs.length}.`\n\t});\n\tfor (const [index, argument] of positionalArgs.entries()) {\n\t\tconst descriptor = input.descriptors[index];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define positional argument #${index + 1}.`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse argument #${index + 1} for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[index] = value;\n\t}\n\tfor (const argument of namedArgs) {\n\t\tconst descriptorIndex = input.descriptors.findIndex((descriptor) => descriptor.name === argument.name);\n\t\tif (descriptorIndex < 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received unknown named argument \"${argument.name}\".`\n\t\t});\n\t\tif (mappedArgs[descriptorIndex] !== void 0) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `received duplicate value for argument \"${argument.name}\".`\n\t\t});\n\t\tconst descriptor = input.descriptors[descriptorIndex];\n\t\tif (!descriptor) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `does not define named argument \"${argument.name}\".`\n\t\t});\n\t\tconst value = parsePslAuthoringArgumentValue(descriptor, argument.value);\n\t\tif (value === INVALID_AUTHORING_ARGUMENT) return pushInvalidPslHelperArgument({\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: argument.span,\n\t\t\tentityLabel: input.entityLabel,\n\t\t\thelperLabel: input.helperLabel,\n\t\t\tmessage: `cannot parse named argument \"${argument.name}\" for descriptor kind \"${descriptor.kind}\".`\n\t\t});\n\t\tmappedArgs[descriptorIndex] = value;\n\t}\n\treturn mappedArgs;\n}\n//#endregion\n//#region src/sql-attribute-specs.ts\nfunction findModelAttributeNode(model, name) {\n\tfor (const attribute of model.node.attributes()) if (attribute.name()?.isSimpleName(name) === true) return attribute;\n}\nfunction findFieldAttributeNode(field, name) {\n\tfor (const attribute of field.node.attributes()) if (attribute.name()?.isSimpleName(name) === true) return attribute;\n}\nfunction buildModelInterpretCtx(input) {\n\treturn {\n\t\tlevel: \"model\",\n\t\tsourceId: input.sourceId,\n\t\tsourceFile: input.sourceFile,\n\t\tselfModel: input.selfModel,\n\t\tresolveReferencedModel: () => void 0\n\t};\n}\nfunction buildFieldInterpretCtx(input) {\n\treturn {\n\t\tlevel: \"field\",\n\t\tsourceId: input.sourceId,\n\t\tsourceFile: input.sourceFile,\n\t\tselfModel: input.selfModel,\n\t\tresolveReferencedModel: input.resolveReferencedModel ?? (() => void 0),\n\t\tfield: input.field\n\t};\n}\nfunction interpretModelAttribute(input) {\n\tconst result = interpretAttribute(input.node, input.spec, buildModelInterpretCtx({\n\t\tselfModel: input.model,\n\t\tsourceFile: input.sourceFile,\n\t\tsourceId: input.sourceId\n\t}));\n\tif (!result.ok) {\n\t\tfor (const failure of result.failure) input.diagnostics.push(failure);\n\t\treturn;\n\t}\n\treturn result.value;\n}\nfunction interpretFieldAttribute(input) {\n\tconst result = interpretAttribute(input.node, input.spec, buildFieldInterpretCtx({\n\t\tselfModel: input.model,\n\t\tfield: input.field,\n\t\tsourceFile: input.sourceFile,\n\t\tsourceId: input.sourceId,\n\t\tresolveReferencedModel: input.resolveReferencedModel\n\t}));\n\tif (!result.ok) {\n\t\tfor (const failure of result.failure) input.diagnostics.push(failure);\n\t\treturn;\n\t}\n\treturn result.value;\n}\nconst mapModelSpec = modelAttribute(\"map\", { positional: [{\n\tkey: \"name\",\n\ttype: str()\n}] });\nconst mapFieldSpec = fieldAttribute(\"map\", { positional: [{\n\tkey: \"name\",\n\ttype: str()\n}] });\nfunction buildDefaultSpec(input) {\n\tconst literal = () => oneOf(str(), num(), bool());\n\tconst funcArms = [...input.registry.entries()].map(([name, entry]) => funcCall(name, blindCast(entry.signature)));\n\treturn fieldAttribute(\"default\", { positional: [{\n\t\tkey: \"value\",\n\t\ttype: oneOf(...input.isList ? [list(literal()), ...funcArms] : [\n\t\t\tstr(),\n\t\t\tnum(),\n\t\t\tbool(),\n\t\t\t...funcArms\n\t\t])\n\t}] });\n}\nfunction buildEnumDefaultSpec(memberNames) {\n\tconst [first, ...rest] = memberNames;\n\treturn fieldAttribute(\"default\", { positional: [{\n\t\tkey: \"member\",\n\t\ttype: oneOf(...[identifier(first), ...rest.map((name) => identifier(name))])\n\t}] });\n}\nconst idFieldSpec = fieldAttribute(\"id\", { named: { map: optional(str()) } });\nconst uniqueFieldSpec = fieldAttribute(\"unique\", { named: { map: optional(str()) } });\nconst idModelSpec = modelAttribute(\"id\", {\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(\"self\"), {\n\t\t\tnonEmpty: true,\n\t\t\tunique: true\n\t\t})\n\t}],\n\tnamed: { map: optional(str()) }\n});\nconst uniqueModelSpec = modelAttribute(\"unique\", {\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(\"self\"), {\n\t\t\tnonEmpty: true,\n\t\t\tunique: true\n\t\t})\n\t}],\n\tnamed: { map: optional(str()) }\n});\nconst PSL_INDEX_FIELDS_XOR_EXPRESSION = \"PSL_INDEX_FIELDS_XOR_EXPRESSION\";\nconst PSL_INDEX_EXPRESSION_REQUIRES_NAME = \"PSL_INDEX_EXPRESSION_REQUIRES_NAME\";\nconst PSL_INDEX_NAME_XOR_MAP = \"PSL_INDEX_NAME_XOR_MAP\";\nconst indexModelSpec = modelAttribute(\"index\", {\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: optional(list(fieldRef(\"self\"), {\n\t\t\tnonEmpty: true,\n\t\t\tunique: true\n\t\t}))\n\t}],\n\tnamed: {\n\t\texpression: optional(str()),\n\t\twhere: optional(str()),\n\t\tunique: optional(bool()),\n\t\tname: optional(str()),\n\t\tmap: optional(str()),\n\t\ttype: optional(str()),\n\t\toptions: optional(record(str()))\n\t},\n\trefine: (value, ctx, attributeNode) => {\n\t\tconst diagnostics = [];\n\t\tif (value.fields === void 0 === (value.expression === void 0)) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` requires exactly one of a fields list or an `expression` argument\", PSL_INDEX_FIELDS_XOR_EXPRESSION));\n\t\tif (value.expression !== void 0 && value.name === void 0 && value.map === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` with an `expression` argument requires a `name` or `map` argument (a default name cannot be derived from an expression)\", PSL_INDEX_EXPRESSION_REQUIRES_NAME));\n\t\tif (value.name !== void 0 && value.map !== void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` takes at most one of `name` and `map`\", PSL_INDEX_NAME_XOR_MAP));\n\t\tif (value.options !== void 0 && value.type === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@index` options argument requires a type argument\"));\n\t\treturn diagnostics;\n\t}\n});\nconst controlModelSpec = modelAttribute(\"control\", { positional: [{\n\tkey: \"policy\",\n\ttype: oneOf(identifier(\"managed\"), identifier(\"tolerated\"), identifier(\"external\"), identifier(\"observed\"))\n}] });\nconst discriminatorModelSpec = modelAttribute(\"discriminator\", { positional: [{\n\tkey: \"field\",\n\ttype: fieldRef(\"self\")\n}] });\nconst baseModelSpec = modelAttribute(\"base\", { positional: [{\n\tkey: \"base\",\n\ttype: entityRef()\n}, {\n\tkey: \"value\",\n\ttype: str()\n}] });\n//#endregion\n//#region src/psl-column-resolution.ts\nfunction toNamedTypeFieldDescriptor(typeRef, descriptor) {\n\treturn {\n\t\tcodecId: descriptor.codecId,\n\t\tnativeType: descriptor.nativeType,\n\t\ttypeRef\n\t};\n}\nfunction getAuthoringTypeConstructor(contributions, path) {\n\tlet current = contributions?.type;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringTypeConstructorDescriptor(current) ? current : void 0;\n}\n/**\n* Walks `authoringContributions.entityTypes` segment-by-segment and returns\n* the entity type descriptor at the resolved path, or `undefined` if no\n* descriptor is registered.\n*\n* Used by the PSL interpreter to dispatch declarative entity-shaped\n* declarations (`enum`, future `namespace { … }`, …) through the\n* pack entity-type mechanism — the descriptor's `factory` (or\n* `template`) materialises the IR-class instance without the\n* interpreter knowing target-specific construction.\n*/\nfunction getAuthoringEntity(contributions, path) {\n\tlet current = contributions?.entityTypes;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringEntityTypeDescriptor(current) ? current : void 0;\n}\n/**\n* Walks `authoringContributions.field` segment-by-segment and returns the field-preset descriptor at the resolved path, or `undefined` if no descriptor is registered.\n*\n* Symmetric with `getAuthoringTypeConstructor`. Field presets are strictly richer than type constructors — they can contribute `default` / `executionDefaults` / `id` / `unique` / `nullable` in addition to the `codecId` / `nativeType` / `typeParams` triple. PSL resolution tries field presets first, then falls back to type constructors on miss (see `resolveFieldTypeDescriptor`).\n*/\nfunction getAuthoringFieldPreset(contributions, path) {\n\tlet current = contributions?.field;\n\tfor (const segment of path) {\n\t\tif (typeof current !== \"object\" || current === null || \"kind\" in current) return;\n\t\tcurrent = current[segment];\n\t}\n\treturn current !== void 0 && isAuthoringFieldPresetDescriptor(current) ? current : void 0;\n}\n/**\n* Returns the namespace prefix of `attributeName` if it references an unrecognized extension namespace, otherwise `undefined`. A namespace is considered recognized when it is:\n*\n* - `db` (native-type spec, always allowed),\n* - the active family id (e.g. `sql`),\n* - the active target id (e.g. `postgres`),\n* - a registered field-preset namespace (e.g. `temporal`),\n* - present in `composedExtensions`.\n*\n* Family/target/field-preset namespaces are exempted so that e.g. `@sql.foo` surfaces as PSL_UNSUPPORTED_*_ATTRIBUTE (the attribute isn't defined) rather than PSL_EXTENSION_NAMESPACE_NOT_COMPOSED (the namespace is already composed).\n*/\nfunction checkUncomposedNamespace(attributeName, composedExtensions, context) {\n\tconst dotIndex = attributeName.indexOf(\".\");\n\tif (dotIndex <= 0 || dotIndex === attributeName.length - 1) return;\n\tconst namespace = attributeName.slice(0, dotIndex);\n\tif (namespace === \"db\" || namespace === context?.familyId || namespace === context?.targetId || hasRegisteredFieldNamespace(context?.authoringContributions, namespace) || composedExtensions.has(namespace)) return;\n\treturn namespace;\n}\n/**\n* Pushes the canonical `PSL_EXTENSION_NAMESPACE_NOT_COMPOSED` diagnostic for a subject (attribute, model attribute, or type constructor) that references an extension namespace which is not composed in the current contract.\n*\n* The `data` payload carries the missing namespace so machine consumers (agents, IDE extensions, CLI auto-fix) don't have to parse the prose.\n*/\nfunction reportUncomposedNamespace(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_EXTENSION_NAMESPACE_NOT_COMPOSED\",\n\t\tmessage: `${input.subjectLabel} uses unrecognized namespace \"${input.namespace}\". Add extension pack \"${input.namespace}\" to extensions in prisma-next.config.ts.`,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.span,\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\tsuggestedPack: input.namespace\n\t\t}\n\t});\n}\n/**\n* Pushes the canonical `PSL_UNKNOWN_FIELD_PRESET` diagnostic when a typoed preset name is referenced inside a registered field-preset namespace. The `data` payload exposes the namespace and full helper path so machine consumers (agents, IDE extensions) don't have to parse the prose.\n*/\nfunction reportUnknownFieldPreset(input) {\n\tinput.diagnostics.push({\n\t\tcode: \"PSL_UNKNOWN_FIELD_PRESET\",\n\t\tmessage: `${input.entityLabel} references unknown field preset \"${input.helperPath}\". Check the spelling against the available presets in the \"${input.namespace}\" namespace.`,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.span,\n\t\tdata: {\n\t\t\tnamespace: input.namespace,\n\t\t\thelperPath: input.helperPath\n\t\t}\n\t});\n}\nfunction instantiatePslTypeConstructor(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `constructor \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsourceId: input.sourceId,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\treturn instantiateAuthoringTypeConstructor(input.descriptor, args);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} constructor \"${helperPath}\" ${message}`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span\n\t\t});\n\t\treturn;\n\t}\n}\nfunction pushUnsupportedTypeConstructorDiagnostic(input) {\n\tinput.diagnostics.push({\n\t\tcode: input.code,\n\t\tmessage: input.message,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.span\n\t});\n}\nfunction resolvePslTypeConstructorDescriptor(input) {\n\tconst descriptor = getAuthoringTypeConstructor(input.authoringContributions, input.call.path);\n\tif (descriptor) return descriptor;\n\tconst uncomposedNamespace = checkUncomposedNamespace(input.call.path.join(\".\"), input.composedExtensions, {\n\t\tfamilyId: input.familyId,\n\t\ttargetId: input.targetId,\n\t\tauthoringContributions: input.authoringContributions\n\t});\n\tif (uncomposedNamespace) {\n\t\treportUncomposedNamespace({\n\t\t\tsubjectLabel: `Type constructor \"${input.call.path.join(\".\")}\"`,\n\t\t\tnamespace: uncomposedNamespace,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span,\n\t\t\tdiagnostics: input.diagnostics\n\t\t});\n\t\treturn;\n\t}\n\treturn pushUnsupportedTypeConstructorDiagnostic({\n\t\tdiagnostics: input.diagnostics,\n\t\tsourceId: input.sourceId,\n\t\tspan: input.call.span,\n\t\tcode: input.unsupportedCode,\n\t\tmessage: input.unsupportedMessage\n\t});\n}\n/**\n* Instantiates a field-preset call against its descriptor, coercing PSL AST arguments into the descriptor's typed argument shape and returning the preset's full set of contract contributions.\n*\n* Symmetric with `instantiatePslTypeConstructor` but richer: a field preset can contribute `default`, `executionDefaults`, `id`, `unique`, and `nullable` in addition to the storage-type triple. PSL → typed-args coercion happens here (via `mapPslHelperArgs`) so that `instantiateAuthoringFieldPreset` itself stays typed-input-only and TS keeps its zero-runtime-validation cost.\n*/\nfunction instantiateFieldPreset(input) {\n\tconst helperPath = input.call.path.join(\".\");\n\tconst args = mapPslHelperArgs({\n\t\targs: input.call.args,\n\t\tdescriptors: input.descriptor.args ?? [],\n\t\thelperLabel: `preset \"${helperPath}\"`,\n\t\tspan: input.call.span,\n\t\tdiagnostics: input.diagnostics,\n\t\tsourceId: input.sourceId,\n\t\tentityLabel: input.entityLabel\n\t});\n\tif (!args) return;\n\ttry {\n\t\tvalidateAuthoringHelperArguments(helperPath, input.descriptor.args, args);\n\t\tconst instantiated = instantiateAuthoringFieldPreset(input.descriptor, args);\n\t\treturn {\n\t\t\tdescriptor: {\n\t\t\t\tcodecId: instantiated.descriptor.codecId,\n\t\t\t\tnativeType: instantiated.descriptor.nativeType,\n\t\t\t\t...instantiated.descriptor.typeParams !== void 0 ? { typeParams: instantiated.descriptor.typeParams } : {}\n\t\t\t},\n\t\t\tnullable: instantiated.nullable,\n\t\t\t...instantiated.default !== void 0 ? { default: instantiated.default } : {},\n\t\t\t...instantiated.executionDefaults !== void 0 ? { executionDefaults: instantiated.executionDefaults } : {},\n\t\t\tid: instantiated.id,\n\t\t\tunique: instantiated.unique\n\t\t};\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} preset \"${helperPath}\" ${message}`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span\n\t\t});\n\t\treturn;\n\t}\n}\n/**\n* Structural check for a codec descriptor exposing the authoring-time\n* `columnFromEntity` hook a type constructor's `entityRefArg` resolves\n* through (e.g. the `pg/enum@1` codec descriptor). No casts.\n*/\nfunction hasColumnFromEntityHook(descriptor) {\n\treturn \"columnFromEntity\" in descriptor && typeof descriptor.columnFromEntity === \"function\";\n}\n/**\n* Resolves a type-constructor call whose descriptor declares an\n* `entityRefArg` (e.g. `pg.enum(AalLevel)`): extracts the call's sole\n* positional-argument ref string, resolves it against the field's\n* namespace's already-lowered extension entities (keyed by the declared\n* `entityRefArg.entityKind`, then block name), and converts the resolved\n* entity to column params via the `columnFromEntity` authoring hook on the\n* codec descriptor registered for `descriptor.output.codecId`. The `nativeType`\n* / `typeParams.typeName` `columnFromEntity` returns are bare — schema\n* qualification (e.g. `auth.aal_level`) is a target concern, applied later\n* when the target builds the field's namespace. A `valueSet` ref is\n* attached when the same namespace derived a value-set under the same block\n* name (the generic `deriveValueSet` mechanism), scoped to the field's own\n* namespace.\n*/\nfunction resolveEntityRefTypeConstructorCall(input) {\n\tconst entityRefArg = input.descriptor.entityRefArg;\n\tif (entityRefArg === void 0) throw new InternalError(\"resolveEntityRefTypeConstructorCall called with a descriptor that does not declare an entityRefArg. This is an interpreter bug.\");\n\tconst helperPath = input.call.path.join(\".\");\n\tconst positionalArgs = input.call.args.filter((arg) => arg.kind === \"positional\");\n\tconst ref = positionalArgs[entityRefArg.index]?.value;\n\tif (input.call.args.length !== 1 || positionalArgs.length !== 1 || ref === void 0) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}\" expects exactly one positional argument naming the referenced entity`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t}\n\tconst reportUnknownRef = () => {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNKNOWN_ENTITY_REF\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}(${ref})\" does not resolve — no entity named \"${ref}\" was found in namespace \"${input.namespaceId ?? \"(unspecified)\"}\"`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t};\n\tconst entity = input.namespaceExtensionEntities?.[entityRefArg.entityKind]?.[ref];\n\tif (entity === void 0) return reportUnknownRef();\n\tconst codecId = input.descriptor.output.codecId;\n\tconst codecDescriptor = input.codecLookup?.descriptorFor?.(codecId);\n\tif (codecDescriptor === void 0 || !hasColumnFromEntityHook(codecDescriptor)) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Type constructor \"${helperPath}\" registers codecId \"${codecId}\" with an entity-ref argument, but its codec descriptor has no \"columnFromEntity\" authoring hook. This is a contributor bug in the pack registering \"${helperPath}\", not a user-schema error.`, { meta: {\n\t\thelperPath,\n\t\tcodecId\n\t} });\n\tconst resolved = codecDescriptor.columnFromEntity(entity);\n\tif (resolved === void 0) return reportUnknownRef();\n\tconst derivedValueSet = input.namespaceExtensionEntities?.[\"valueSet\"]?.[ref];\n\tif (derivedValueSet !== void 0 && input.namespaceId === void 0) {\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\tmessage: `${input.entityLabel} type constructor \"${helperPath}(${ref})\" resolves to a value-set-typed entity, but the field has no resolvable namespace to scope the value-set ref to`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: input.call.span\n\t\t});\n\t\treturn {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t}\n\tconst valueSet = derivedValueSet !== void 0 && input.namespaceId !== void 0 ? {\n\t\tplane: \"storage\",\n\t\tentityKind: \"valueSet\",\n\t\tnamespaceId: input.namespaceId,\n\t\tentityName: ref\n\t} : void 0;\n\treturn {\n\t\tok: true,\n\t\tdescriptor: {\n\t\t\tcodecId,\n\t\t\tnativeType: resolved.nativeType,\n\t\t\t...resolved.typeParams !== void 0 ? { typeParams: resolved.typeParams } : {},\n\t\t\t...valueSet !== void 0 ? { valueSet } : {}\n\t\t}\n\t};\n}\nfunction resolveFieldTypeDescriptor(input) {\n\tif (input.field.malformedType) return {\n\t\tok: false,\n\t\talreadyReported: true\n\t};\n\tif (input.field.typeConstructor) {\n\t\tconst presetDescriptor = getAuthoringFieldPreset(input.authoringContributions, input.field.typeConstructor.path);\n\t\tif (presetDescriptor) {\n\t\t\tconst instantiated = instantiateFieldPreset({\n\t\t\t\tcall: input.field.typeConstructor,\n\t\t\t\tdescriptor: presetDescriptor,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tentityLabel: input.entityLabel\n\t\t\t});\n\t\t\tif (!instantiated) return {\n\t\t\t\tok: false,\n\t\t\t\talreadyReported: true\n\t\t\t};\n\t\t\tconst presetContributions = {\n\t\t\t\tnullable: instantiated.nullable,\n\t\t\t\tid: instantiated.id,\n\t\t\t\tunique: instantiated.unique,\n\t\t\t\t...instantiated.default !== void 0 ? { default: instantiated.default } : {},\n\t\t\t\t...instantiated.executionDefaults !== void 0 ? { executionDefaults: instantiated.executionDefaults } : {}\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdescriptor: instantiated.descriptor,\n\t\t\t\tpresetContributions\n\t\t\t};\n\t\t}\n\t\tconst helperPath = input.field.typeConstructor.path.join(\".\");\n\t\tconst namespacePrefix = input.field.typeConstructor.path.length > 1 ? input.field.typeConstructor.path[0] : void 0;\n\t\tconst typeDescriptor = getAuthoringTypeConstructor(input.authoringContributions, input.field.typeConstructor.path);\n\t\tif (typeDescriptor?.entityRefArg) return resolveEntityRefTypeConstructorCall({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tdescriptor: typeDescriptor,\n\t\t\tnamespaceId: input.namespaceId,\n\t\t\tnamespaceExtensionEntities: input.namespaceExtensionEntities,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tentityLabel: input.entityLabel\n\t\t});\n\t\tif (!typeDescriptor && namespacePrefix && hasRegisteredFieldNamespace(input.authoringContributions, namespacePrefix)) {\n\t\t\treportUnknownFieldPreset({\n\t\t\t\tentityLabel: input.entityLabel,\n\t\t\t\tnamespace: namespacePrefix,\n\t\t\t\thelperPath,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: input.field.typeConstructor.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\talreadyReported: true\n\t\t\t};\n\t\t}\n\t\tconst descriptor = typeDescriptor ?? resolvePslTypeConstructorDescriptor({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tunsupportedCode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\tunsupportedMessage: `${input.entityLabel} type constructor \"${helperPath}\" is not supported in SQL PSL provider v1`\n\t\t});\n\t\tif (!descriptor) return {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t\tconst instantiated = instantiatePslTypeConstructor({\n\t\t\tcall: input.field.typeConstructor,\n\t\t\tdescriptor,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsourceId: input.sourceId,\n\t\t\tentityLabel: input.entityLabel\n\t\t});\n\t\tif (!instantiated) return {\n\t\t\tok: false,\n\t\t\talreadyReported: true\n\t\t};\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdescriptor: instantiated\n\t\t};\n\t}\n\tconst descriptor = resolveColumnDescriptor(input.field, input.enumTypeDescriptors, input.namedTypeDescriptors, input.scalarColumnDescriptors);\n\tif (!descriptor) return {\n\t\tok: false,\n\t\talreadyReported: false\n\t};\n\treturn {\n\t\tok: true,\n\t\tdescriptor\n\t};\n}\nfunction lowerDefaultForField(input) {\n\tconst node = findFieldAttributeNode(input.field, \"default\");\n\tif (node === void 0) return {};\n\tconst interpreted = interpretFieldAttribute({\n\t\tnode,\n\t\tspec: buildDefaultSpec({\n\t\t\tisList: input.isList ?? false,\n\t\t\tregistry: input.defaultFunctionRegistry\n\t\t}),\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tsourceFile: input.sourceFile,\n\t\tsourceId: input.sourceId,\n\t\tdiagnostics: input.diagnostics\n\t});\n\tif (interpreted === void 0) return {};\n\tconst value = interpreted.value;\n\tif (Array.isArray(value)) return { defaultValue: {\n\t\tkind: \"literal\",\n\t\tvalue: [...value]\n\t} };\n\tif (typeof value === \"object\") {\n\t\tconst lowered = lowerDefaultFunctionWithRegistry({\n\t\t\tcall: value,\n\t\t\tregistry: input.defaultFunctionRegistry,\n\t\t\tcontext: {\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tmodelName: input.modelName,\n\t\t\t\tfieldName: input.fieldName,\n\t\t\t\tcolumnCodecId: input.columnDescriptor.codecId\n\t\t\t}\n\t\t});\n\t\tif (!lowered.ok) {\n\t\t\tinput.diagnostics.push(lowered.diagnostic);\n\t\t\treturn {};\n\t\t}\n\t\tif (lowered.value.kind === \"storage\") return { defaultValue: lowered.value.defaultValue };\n\t\tconst generatorDescriptor = input.generatorDescriptorById.get(lowered.value.generated.id);\n\t\tif (!generatorDescriptor) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${lowered.value.generated.id}\" is not available in the composed mutation default registry.`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: value.span\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\tif (generatorDescriptor.applicableCodecIds === void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${generatorDescriptor.id}\" is not applicable to \"@default(...)\" lowering. Use the corresponding field preset (e.g. \\`temporal.${generatorDescriptor.id === \"timestampNow\" ? \"updatedAt\" : generatorDescriptor.id}()\\`) instead.`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: value.span\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\tif (!generatorDescriptor.applicableCodecIds.includes(input.columnDescriptor.codecId)) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_APPLICABILITY\",\n\t\t\t\tmessage: `Default generator \"${generatorDescriptor.id}\" is not applicable to \"${input.modelName}.${input.fieldName}\" with codecId \"${input.columnDescriptor.codecId}\".`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: value.span\n\t\t\t});\n\t\t\treturn {};\n\t\t}\n\t\treturn { executionDefaults: { onCreate: lowered.value.generated } };\n\t}\n\treturn { defaultValue: {\n\t\tkind: \"literal\",\n\t\tvalue\n\t} };\n}\nfunction resolveColumnDescriptor(field, enumTypeDescriptors, namedTypeDescriptors, scalarColumnDescriptors) {\n\tif (namedTypeDescriptors.has(field.typeName)) return namedTypeDescriptors.get(field.typeName);\n\tif (enumTypeDescriptors.has(field.typeName)) return enumTypeDescriptors.get(field.typeName);\n\treturn scalarColumnDescriptors.get(field.typeName);\n}\n//#endregion\n//#region src/psl-field-resolution.ts\nfunction lowerEnumDefaultForField(input) {\n\tconst { field, model, sourceFile, enumHandle, sourceId, diagnostics } = input;\n\tconst node = findFieldAttributeNode(field, \"default\");\n\tif (node === void 0) return {};\n\tconst [firstMember, ...restMembers] = enumHandle.enumMembers.map((m) => m.name);\n\tif (firstMember === void 0) return {};\n\tconst interpreted = interpretFieldAttribute({\n\t\tnode,\n\t\tspec: buildEnumDefaultSpec([firstMember, ...restMembers]),\n\t\tmodel,\n\t\tfield,\n\t\tsourceFile,\n\t\tsourceId,\n\t\tdiagnostics\n\t});\n\tif (interpreted === void 0) return {};\n\tconst member = interpreted.member;\n\tconst match = enumHandle.enumMembers.find((m) => m.name === member);\n\tif (!match) return {};\n\treturn { defaultValue: {\n\t\tkind: \"literal\",\n\t\tvalue: blindCast(match.value)\n\t} };\n}\nconst MODEL_COORDINATE_SEPARATOR = \"\\0\";\nfunction modelCoordinateKey(namespaceId, modelName) {\n\treturn `${namespaceId}${MODEL_COORDINATE_SEPARATOR}${modelName}`;\n}\nconst BUILTIN_FIELD_ATTRIBUTE_NAMES = /* @__PURE__ */ new Set([\n\t\"id\",\n\t\"unique\",\n\t\"default\",\n\t\"relation\",\n\t\"map\"\n]);\nconst REMOVED_ATTRIBUTE_RULES = /* @__PURE__ */ new Map([[\"updatedAt\", {\n\thint: \"Use `temporal.updatedAt()` as a field-preset call instead.\",\n\tsuppressWhen: (field) => field.typeConstructor?.path[0] === \"temporal\"\n}]]);\n{\n\tconst overlap = [...REMOVED_ATTRIBUTE_RULES.keys()].filter((name) => BUILTIN_FIELD_ATTRIBUTE_NAMES.has(name));\n\tif (overlap.length > 0) throw new InternalError(`BUILTIN_FIELD_ATTRIBUTE_NAMES and REMOVED_ATTRIBUTE_RULES must not overlap. Names in both: ${overlap.join(\", \")}`);\n}\nfunction validateFieldAttributes(input) {\n\tfor (const attribute of input.field.attributes) {\n\t\tif (BUILTIN_FIELD_ATTRIBUTE_NAMES.has(attribute.name)) continue;\n\t\tif (attribute.name.startsWith(\"db.\")) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\t\tmessage: formatDbAttributeMigrationMessage(attribute),\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: attribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: attribute.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseMessage = `Field \"${input.model.name}.${input.field.name}\" uses unsupported attribute \"@${attribute.name}\"`;\n\t\tconst removedRule = REMOVED_ATTRIBUTE_RULES.get(attribute.name);\n\t\tconst message = removedRule && !removedRule.suppressWhen(input.field) ? `${baseMessage}. ${removedRule.hint}` : baseMessage;\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\tmessage,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: attribute.span\n\t\t});\n\t}\n}\nfunction extractFieldConstraintNames(input) {\n\tconst idAttribute = getAttribute(input.field.attributes, \"id\");\n\tconst uniqueAttribute = getAttribute(input.field.attributes, \"unique\");\n\tconst idNode = findFieldAttributeNode(input.field, \"id\");\n\tconst idName = idNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\tnode: idNode,\n\t\tspec: idFieldSpec,\n\t\tmodel: input.model,\n\t\tfield: input.field,\n\t\tsourceFile: input.sourceFile,\n\t\tsourceId: input.sourceId,\n\t\tdiagnostics: input.diagnostics\n\t})?.map;\n\tconst uniqueNode = findFieldAttributeNode(input.field, \"unique\");\n\treturn {\n\t\tidAttribute,\n\t\tuniqueAttribute,\n\t\tidName,\n\t\tuniqueName: uniqueNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\t\tnode: uniqueNode,\n\t\t\tspec: uniqueFieldSpec,\n\t\t\tmodel: input.model,\n\t\t\tfield: input.field,\n\t\t\tsourceFile: input.sourceFile,\n\t\t\tsourceId: input.sourceId,\n\t\t\tdiagnostics: input.diagnostics\n\t\t})?.map\n\t};\n}\nfunction collectResolvedFields(input) {\n\tconst { model, mapping, enumTypeDescriptors, namedTypeDescriptors, modelNames, compositeTypeNames, composedExtensions, authoringContributions, familyId, targetId, defaultFunctionRegistry, generatorDescriptorById, diagnostics, sourceId, scalarColumnDescriptors, enumHandles, capabilities, namespaceId, namespaceExtensionEntities, codecLookup } = input;\n\tconst resolvedFields = [];\n\tconst valueObjectStorageTypeName = authoringContributions?.valueObjectStorageType;\n\tfor (const field of Object.values(model.fields)) {\n\t\tconst isModelField = modelNames.has(field.typeName);\n\t\tif (field.list && isModelField) continue;\n\t\tvalidateFieldAttributes({\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tcomposedExtensions,\n\t\t\tauthoringContributions,\n\t\t\tdiagnostics,\n\t\t\tsourceId,\n\t\t\tfamilyId,\n\t\t\ttargetId\n\t\t});\n\t\tconst relationAttribute = getAttribute(field.attributes, \"relation\");\n\t\tif (isModelField && relationAttribute) continue;\n\t\tif (field.typeContractSpaceId !== void 0 && relationAttribute) continue;\n\t\tif (isModelField) continue;\n\t\tconst isValueObjectField = compositeTypeNames.has(field.typeName);\n\t\tconst isListField = field.list;\n\t\tlet descriptor;\n\t\tlet scalarCodecId;\n\t\tlet presetContributions;\n\t\tconst resolveInput = {\n\t\t\tfield,\n\t\t\tenumTypeDescriptors,\n\t\t\tnamedTypeDescriptors,\n\t\t\tscalarColumnDescriptors,\n\t\t\tauthoringContributions,\n\t\t\tcomposedExtensions,\n\t\t\tfamilyId,\n\t\t\ttargetId,\n\t\t\tdiagnostics,\n\t\t\tsourceId,\n\t\t\tentityLabel: `Field \"${model.name}.${field.name}\"`,\n\t\t\t...ifDefined(\"namespaceId\", namespaceId),\n\t\t\t...ifDefined(\"namespaceExtensionEntities\", namespaceExtensionEntities),\n\t\t\t...ifDefined(\"codecLookup\", codecLookup)\n\t\t};\n\t\tif (isValueObjectField) descriptor = valueObjectStorageTypeName !== void 0 ? scalarColumnDescriptors.get(valueObjectStorageTypeName) : void 0;\n\t\telse if (isListField) {\n\t\t\tif (capabilities[\"sql\"]?.[\"scalarList\"] !== true) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_SCALAR_LIST_UNSUPPORTED_TARGET\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a scalar list, but target \"${targetId}\" does not support scalar lists (the adapter does not report the \"scalarList\" capability). Remove the list or author it against a target that supports scalar lists.`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst resolved = resolveFieldTypeDescriptor(resolveInput);\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported) diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" type \"${field.typeName}\" is not supported in SQL PSL provider v1`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (resolved.presetContributions) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_PRESET_NOT_LIST\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call as a list element type. Presets cannot be list elements; remove \"[]\" or use a scalar type.`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tscalarCodecId = resolved.descriptor.codecId;\n\t\t\tdescriptor = resolved.descriptor;\n\t\t} else {\n\t\t\tconst resolved = resolveFieldTypeDescriptor(resolveInput);\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported) diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" type \"${field.typeName}\" is not supported in SQL PSL provider v1`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdescriptor = resolved.descriptor;\n\t\t\tpresetContributions = resolved.presetContributions;\n\t\t}\n\t\tif (!descriptor) continue;\n\t\tif (presetContributions && field.optional) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_NOT_OPTIONAL\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot be optional. Remove \"?\" or use a different field type.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst defaultAttribute = getAttribute(field.attributes, \"default\");\n\t\tif (presetContributions && defaultAttribute) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_AND_DEFAULT_CONFLICT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot also declare @default(...). The preset already specifies the default value.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: defaultAttribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst enumHandle = enumHandles?.get(field.typeName);\n\t\tconst loweredDefault = defaultAttribute ? enumHandle ? lowerEnumDefaultForField({\n\t\t\tmodelName: model.name,\n\t\t\tfieldName: field.name,\n\t\t\tfield,\n\t\t\tmodel,\n\t\t\tsourceFile: input.sourceFile,\n\t\t\tenumHandle,\n\t\t\tsourceId,\n\t\t\tdiagnostics\n\t\t}) : lowerDefaultForField({\n\t\t\tmodelName: model.name,\n\t\t\tfieldName: field.name,\n\t\t\tfield,\n\t\t\tmodel,\n\t\t\tsourceFile: input.sourceFile,\n\t\t\tcolumnDescriptor: descriptor,\n\t\t\tgeneratorDescriptorById,\n\t\t\tsourceId,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tdiagnostics,\n\t\t\tisList: isListField\n\t\t}) : {};\n\t\tconst loweredOnCreate = loweredDefault.executionDefaults?.onCreate;\n\t\tconst loweredFunctionDefault = loweredDefault.defaultValue?.kind === \"function\";\n\t\tif (isListField && (loweredOnCreate || loweredFunctionDefault)) {\n\t\t\tconst defaultExpression = defaultAttribute?.args.find((arg) => arg.kind === \"positional\")?.value.trim() ?? \"this function\";\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_LIST_EXECUTION_DEFAULT_UNSUPPORTED\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a list and cannot use an execution default (\"${defaultExpression}\"). Lists have no per-element execution-default semantics; use a literal list @default or remove the default.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: defaultAttribute?.span ?? field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (field.optional && loweredOnCreate) {\n\t\t\tconst generatorDescription = loweredOnCreate.kind === \"generator\" ? `\"${loweredOnCreate.id}\"` : \"for this field\";\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_DEFAULT_FUNCTION_ARGUMENT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" cannot be optional when using execution default ${generatorDescription}. Remove \"?\" or use a storage default.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: defaultAttribute?.span ?? field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst mappedColumnName = mapping.fieldColumns.get(field.name) ?? field.name;\n\t\tconst { idAttribute, uniqueAttribute, idName, uniqueName } = extractFieldConstraintNames({\n\t\t\tmodel,\n\t\t\tfield,\n\t\t\tsourceFile: input.sourceFile,\n\t\t\tsourceId,\n\t\t\tdiagnostics\n\t\t});\n\t\tlet isIdField = Boolean(idAttribute);\n\t\tif (idAttribute && isListField) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_LIST_ID_UNSUPPORTED\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" is a list and cannot be a primary key. Remove @id; a list cannot be an identity column.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: idAttribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (idAttribute && field.optional) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" @id cannot be optional; primary key columns must be NOT NULL`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: idAttribute.span\n\t\t\t});\n\t\t\tisIdField = false;\n\t\t}\n\t\tif (presetContributions && idAttribute && !presetContributions.id) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_PRESET_AND_ID_CONFLICT\",\n\t\t\t\tmessage: `Field \"${model.name}.${field.name}\" uses a field-preset call and cannot also declare @id. Use a preset that contributes id semantics, or drop @id.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: idAttribute.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldExecutionDefaults = presetContributions?.executionDefaults ?? loweredDefault.executionDefaults;\n\t\tconst fieldDefaultValue = presetContributions?.default ?? loweredDefault.defaultValue;\n\t\tresolvedFields.push({\n\t\t\tfield,\n\t\t\tcolumnName: mappedColumnName,\n\t\t\tdescriptor,\n\t\t\tnullable: presetContributions?.nullable ?? field.optional,\n\t\t\t...ifDefined(\"defaultValue\", fieldDefaultValue),\n\t\t\t...ifDefined(\"executionDefaults\", fieldExecutionDefaults),\n\t\t\tisId: isIdField || Boolean(presetContributions?.id),\n\t\t\tisUnique: Boolean(uniqueAttribute) || Boolean(presetContributions?.unique),\n\t\t\t...ifDefined(\"idName\", idName),\n\t\t\t...ifDefined(\"uniqueName\", uniqueName),\n\t\t\t...ifDefined(\"many\", isListField ? true : void 0),\n\t\t\t...ifDefined(\"valueObjectTypeName\", isValueObjectField ? field.typeName : void 0),\n\t\t\t...ifDefined(\"scalarCodecId\", scalarCodecId)\n\t\t});\n\t}\n\treturn resolvedFields;\n}\nfunction buildModelMappings(modelEntries, defaultNamespaceId, diagnostics, sourceId, sourceFile) {\n\tconst result = /* @__PURE__ */ new Map();\n\tfor (const { model, namespaceId } of modelEntries) {\n\t\tconst mapNode = findModelAttributeNode(model, \"map\");\n\t\tconst tableName = mapNode === void 0 ? lowerFirst(model.name) : interpretModelAttribute({\n\t\t\tnode: mapNode,\n\t\t\tspec: mapModelSpec,\n\t\t\tmodel,\n\t\t\tsourceFile,\n\t\t\tsourceId,\n\t\t\tdiagnostics\n\t\t})?.name ?? lowerFirst(model.name);\n\t\tconst fieldColumns = /* @__PURE__ */ new Map();\n\t\tfor (const field of Object.values(model.fields)) {\n\t\t\tconst fieldMapNode = findFieldAttributeNode(field, \"map\");\n\t\t\tconst columnName = fieldMapNode === void 0 ? field.name : interpretFieldAttribute({\n\t\t\t\tnode: fieldMapNode,\n\t\t\t\tspec: mapFieldSpec,\n\t\t\t\tmodel,\n\t\t\t\tfield,\n\t\t\t\tsourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t})?.name ?? field.name;\n\t\t\tfieldColumns.set(field.name, columnName);\n\t\t}\n\t\tresult.set(modelCoordinateKey(namespaceId ?? defaultNamespaceId, model.name), {\n\t\t\tmodel,\n\t\t\ttableName,\n\t\t\tfieldColumns\n\t\t});\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/psl-named-type-resolution.ts\nfunction validateNamedTypeAttributes(input) {\n\tlet hasUnsupportedNamedTypeAttribute = false;\n\tfor (const attribute of input.declaration.attributes) {\n\t\tif (attribute.name.startsWith(\"db.\")) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_ATTRIBUTE\",\n\t\t\t\tmessage: formatDbAttributeMigrationMessage(attribute),\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: attribute.span\n\t\t\t});\n\t\t\thasUnsupportedNamedTypeAttribute = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: attribute.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\thasUnsupportedNamedTypeAttribute = true;\n\t\t\tcontinue;\n\t\t}\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_ATTRIBUTE\",\n\t\t\tmessage: `Named type \"${input.declaration.name}\" uses unsupported attribute \"${attribute.name}\"`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: attribute.span\n\t\t});\n\t\thasUnsupportedNamedTypeAttribute = true;\n\t}\n\treturn hasUnsupportedNamedTypeAttribute;\n}\nfunction resolveNamedTypeDeclarations(input) {\n\tconst storageTypeEntries = [];\n\tconst namedTypeDescriptors = /* @__PURE__ */ new Map();\n\tfor (const declaration of input.declarations) {\n\t\tif (declaration.isConstructor) {\n\t\t\tconst typeConstructor = declaration.typeConstructor;\n\t\t\tif (typeConstructor === void 0) {\n\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\t\tmessage: `Named type \"${declaration.name}\" must declare a base type or constructor`,\n\t\t\t\t\tsourceId: input.sourceId,\n\t\t\t\t\tspan: declaration.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (validateNamedTypeAttributes({\n\t\t\t\tdeclaration,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\t\tfamilyId: input.familyId,\n\t\t\t\ttargetId: input.targetId\n\t\t\t})) continue;\n\t\t\tconst helperPath = typeConstructor.path.join(\".\");\n\t\t\tconst descriptor = resolvePslTypeConstructorDescriptor({\n\t\t\t\tcall: typeConstructor,\n\t\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\t\tfamilyId: input.familyId,\n\t\t\t\ttargetId: input.targetId,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tunsupportedCode: \"PSL_UNSUPPORTED_NAMED_TYPE_CONSTRUCTOR\",\n\t\t\t\tunsupportedMessage: `Named type \"${declaration.name}\" references unsupported constructor \"${helperPath}\"`\n\t\t\t});\n\t\t\tif (!descriptor) continue;\n\t\t\tconst storageType = instantiatePslTypeConstructor({\n\t\t\t\tcall: typeConstructor,\n\t\t\t\tdescriptor,\n\t\t\t\tdiagnostics: input.diagnostics,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tentityLabel: `Named type \"${declaration.name}\"`\n\t\t\t});\n\t\t\tif (!storageType) continue;\n\t\t\tnamedTypeDescriptors.set(declaration.name, toNamedTypeFieldDescriptor(declaration.name, storageType));\n\t\t\tstorageTypeEntries.push([declaration.name, {\n\t\t\t\tkind: \"codec-instance\",\n\t\t\t\tcodecId: storageType.codecId,\n\t\t\t\tnativeType: storageType.nativeType,\n\t\t\t\ttypeParams: storageType.typeParams ?? {}\n\t\t\t}]);\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseType = declaration.baseType;\n\t\tif (baseType === void 0) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\tmessage: `Named type \"${declaration.name}\" must declare a base type or constructor`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: declaration.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst baseDescriptor = input.enumTypeDescriptors.get(baseType) ?? input.scalarColumnDescriptors.get(baseType);\n\t\tif (!baseDescriptor) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\t\t\tmessage: `Named type \"${declaration.name}\" references unsupported base type \"${baseType}\"`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: declaration.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (validateNamedTypeAttributes({\n\t\t\tdeclaration,\n\t\t\tsourceId: input.sourceId,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId\n\t\t})) continue;\n\t\tconst descriptor = toNamedTypeFieldDescriptor(declaration.name, baseDescriptor);\n\t\tnamedTypeDescriptors.set(declaration.name, descriptor);\n\t\tstorageTypeEntries.push([declaration.name, {\n\t\t\tkind: \"codec-instance\",\n\t\t\tcodecId: baseDescriptor.codecId,\n\t\t\tnativeType: baseDescriptor.nativeType,\n\t\t\ttypeParams: baseDescriptor.typeParams ?? {}\n\t\t}]);\n\t}\n\treturn {\n\t\tstorageTypes: Object.fromEntries(storageTypeEntries),\n\t\tnamedTypeDescriptors\n\t};\n}\n//#endregion\n//#region src/psl-relation-resolution.ts\nconst REFERENTIAL_ACTION_MAP = {\n\tNoAction: \"noAction\",\n\tRestrict: \"restrict\",\n\tCascade: \"cascade\",\n\tSetNull: \"setNull\",\n\tSetDefault: \"setDefault\",\n\tnoAction: \"noAction\",\n\trestrict: \"restrict\",\n\tcascade: \"cascade\",\n\tsetNull: \"setNull\",\n\tsetDefault: \"setDefault\"\n};\nfunction fkRelationPairKey(declaringModelName, targetModelName) {\n\treturn `${declaringModelName}::${targetModelName}`;\n}\nfunction normalizeReferentialAction(actionToken) {\n\treturn REFERENTIAL_ACTION_MAP[actionToken];\n}\nfunction relationInvariants(parsed, ctx) {\n\tif (parsed.fields !== void 0 !== (parsed.references !== void 0)) return [{\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_SYNTAX\",\n\t\tmessage: `Relation field \"${ctx.selfModel.name}.${ctx.field?.name ?? \"\"}\" requires fields and references arguments`,\n\t\tsourceId: ctx.sourceId,\n\t\tspan: relationAttributeSpan(ctx)\n\t}];\n\treturn [];\n}\nconst sqlRelation = fieldAttribute(\"relation\", {\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: optional(str())\n\t}],\n\tnamed: {\n\t\tname: optional(str()),\n\t\tfields: optional(list(fieldRef(\"self\"), {\n\t\t\tnonEmpty: true,\n\t\t\tunique: true\n\t\t})),\n\t\treferences: optional(list(fieldRef(\"referenced\"), {\n\t\t\tnonEmpty: true,\n\t\t\tunique: true\n\t\t})),\n\t\tmap: optional(str()),\n\t\tonDelete: optional(oneOf(identifier(\"NoAction\"), identifier(\"Restrict\"), identifier(\"Cascade\"), identifier(\"SetNull\"), identifier(\"SetDefault\"))),\n\t\tonUpdate: optional(oneOf(identifier(\"NoAction\"), identifier(\"Restrict\"), identifier(\"Cascade\"), identifier(\"SetNull\"), identifier(\"SetDefault\"))),\n\t\t/**\n\t\t* Opts a foreign key out of its default backing index\n\t\t* (`index: false`). Omitted (the default) keeps the FK's derived\n\t\t* backing-index expectation; only `false` is meaningful — there is no\n\t\t* `index: true` spelling since that is already the default.\n\t\t*/\n\t\tindex: optional(bool())\n\t},\n\trefine: relationInvariants\n});\nfunction relationAttributeSpan(ctx) {\n\tconst field = ctx.field;\n\tif (field !== void 0) {\n\t\tconst node = findFieldAttributeNode(field, \"relation\");\n\t\tif (node !== void 0) return nodePslSpan(node.syntax, ctx.sourceFile);\n\t\treturn field.span;\n\t}\n\treturn ctx.selfModel.span;\n}\nfunction resolveReferencedModel(symbols, field) {\n\tconst topLevel = symbols.topLevel.models[field.typeName];\n\tif (topLevel !== void 0) return topLevel;\n\tfor (const namespace of Object.values(symbols.topLevel.namespaces)) {\n\t\tconst model = namespace.models[field.typeName];\n\t\tif (model !== void 0) return model;\n\t}\n}\nfunction interpretRelationAttribute(input) {\n\tconst node = findFieldAttributeNode(input.field, \"relation\");\n\tif (node === void 0) return void 0;\n\treturn interpretFieldAttribute({\n\t\tnode,\n\t\tspec: sqlRelation,\n\t\tmodel: input.selfModel,\n\t\tfield: input.field,\n\t\tsourceFile: input.sourceFile,\n\t\tsourceId: input.sourceId,\n\t\tdiagnostics: input.diagnostics,\n\t\tresolveReferencedModel: () => resolveReferencedModel(input.symbols, input.field)\n\t});\n}\nfunction indexFkRelations(input) {\n\tconst modelRelations = /* @__PURE__ */ new Map();\n\tconst fkRelationsByPair = /* @__PURE__ */ new Map();\n\tconst fkRelationsByDeclaringModel = /* @__PURE__ */ new Map();\n\tfor (const relation of input.fkRelationMetadata) {\n\t\tconst declaringFkRelations = fkRelationsByDeclaringModel.get(relation.declaringModelName);\n\t\tif (declaringFkRelations) declaringFkRelations.push(relation);\n\t\telse fkRelationsByDeclaringModel.set(relation.declaringModelName, [relation]);\n\t\tconst existing = modelRelations.get(relation.declaringModelName);\n\t\tconst current = existing ?? [];\n\t\tif (!existing) modelRelations.set(relation.declaringModelName, current);\n\t\tcurrent.push({\n\t\t\tfieldName: relation.declaringFieldName,\n\t\t\ttoModel: relation.targetModelName,\n\t\t\ttoTable: relation.targetTableName,\n\t\t\t...ifDefined(\"toNamespaceId\", relation.targetNamespaceId),\n\t\t\tcardinality: \"N:1\",\n\t\t\ton: {\n\t\t\t\tparentTable: relation.declaringTableName,\n\t\t\t\tparentColumns: relation.localColumns,\n\t\t\t\tchildTable: relation.targetTableName,\n\t\t\t\tchildColumns: relation.referencedColumns\n\t\t\t}\n\t\t});\n\t\tconst pairKey = fkRelationPairKey(relation.declaringModelName, relation.targetModelName);\n\t\tconst pairRelations = fkRelationsByPair.get(pairKey);\n\t\tif (!pairRelations) {\n\t\t\tfkRelationsByPair.set(pairKey, [relation]);\n\t\t\tcontinue;\n\t\t}\n\t\tpairRelations.push(relation);\n\t}\n\treturn {\n\t\tmodelRelations,\n\t\tfkRelationsByPair,\n\t\tfkRelationsByDeclaringModel\n\t};\n}\nfunction idColumnsAreExactlyFkPair(idColumns, parentColumns, childColumns) {\n\tif (idColumns.length !== parentColumns.length + childColumns.length) return false;\n\tconst fkColumns = /* @__PURE__ */ new Set([...parentColumns, ...childColumns]);\n\tif (fkColumns.size !== parentColumns.length + childColumns.length) return false;\n\treturn idColumns.every((column) => fkColumns.has(column));\n}\n/**\n* Reorders the child FK's junction columns into the target model's id-column\n* order. Returns undefined unless the FK references exactly the target's full\n* id, because downstream consumers pair `through.childColumns` positionally\n* against the target id columns — an FK referencing anything else (a non-id\n* unique, a partial id) would produce a silently wrong join.\n*/\nfunction childColumnsInTargetIdOrder(childFk, targetIdColumns) {\n\tif (childFk.referencedColumns.length !== targetIdColumns.length) return;\n\tconst localByReferenced = /* @__PURE__ */ new Map();\n\tfor (const [index, referencedColumn] of childFk.referencedColumns.entries()) {\n\t\tconst localColumn = childFk.localColumns[index];\n\t\tif (localColumn === void 0) return;\n\t\tlocalByReferenced.set(referencedColumn, localColumn);\n\t}\n\tif (localByReferenced.size !== targetIdColumns.length) return;\n\tconst ordered = [];\n\tfor (const idColumn of targetIdColumns) {\n\t\tconst localColumn = localByReferenced.get(idColumn);\n\t\tif (localColumn === void 0) return;\n\t\tordered.push(localColumn);\n\t}\n\treturn ordered;\n}\n/**\n* Finds explicit junction models that connect a bare backrelation list field\n* to its target model: a model whose composite id columns are exactly the FK\n* columns of one relation back to the candidate's model (the parent side) and\n* one relation to the candidate's target model (the child side). The child\n* FK must reference exactly the target model's id columns; its junction\n* columns are carried in target-id order on the pair. A relation name on the\n* list field pins the parent-side FK relation, which is how self-referential\n* many-to-many sides are disambiguated.\n*\n* Alongside the recognised pairs, returns junction-shaped near-misses (models\n* that link both sides but were declined) so the caller can emit a\n* junction-specific diagnostic instead of the generic orphaned-list message.\n*/\nfunction findJunctionFkPairs(input) {\n\tconst targetIdColumns = input.modelIdColumns.get(input.candidate.targetModelName);\n\tif (!targetIdColumns || targetIdColumns.length === 0) return {\n\t\tpairs: [],\n\t\tnearMisses: []\n\t};\n\tconst pairs = [];\n\tconst nearMisses = [];\n\tfor (const [junctionModelName, junctionFks] of input.fkRelationsByDeclaringModel) {\n\t\tconst idColumns = input.modelIdColumns.get(junctionModelName);\n\t\tfor (const parentFk of junctionFks) {\n\t\t\tif (parentFk.targetModelName !== input.candidate.modelName) continue;\n\t\t\tif (input.candidate.relationName !== void 0 && parentFk.relationName !== input.candidate.relationName) continue;\n\t\t\tfor (const childFk of junctionFks) {\n\t\t\t\tif (childFk === parentFk || childFk.targetModelName !== input.candidate.targetModelName) continue;\n\t\t\t\tif (!idColumns || !idColumnsAreExactlyFkPair(idColumns, parentFk.localColumns, childFk.localColumns)) {\n\t\t\t\t\tnearMisses.push({\n\t\t\t\t\t\tjunctionModelName,\n\t\t\t\t\t\treason: \"id-not-fk-covering\"\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst orderedChildColumns = childColumnsInTargetIdOrder(childFk, targetIdColumns);\n\t\t\t\tif (!orderedChildColumns) {\n\t\t\t\t\tnearMisses.push({\n\t\t\t\t\t\tjunctionModelName,\n\t\t\t\t\t\treason: \"target-fk-not-id\"\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tpairs.push({\n\t\t\t\t\tparentFk,\n\t\t\t\t\tchildFk,\n\t\t\t\t\tchildColumnsInTargetIdOrder: orderedChildColumns\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tpairs,\n\t\tnearMisses\n\t};\n}\nfunction junctionNearMissDiagnostic(candidate, nearMiss, sourceId) {\n\tconst listField = `${candidate.modelName}.${candidate.field.name}`;\n\tconst data = {\n\t\tlistField,\n\t\tjunctionModel: nearMiss.junctionModelName,\n\t\ttargetModel: candidate.targetModelName\n\t};\n\tif (nearMiss.reason === \"target-fk-not-id\") return {\n\t\tcode: \"PSL_JUNCTION_TARGET_FK_NOT_ID\",\n\t\tmessage: `Backrelation list field \"${listField}\" found junction model \"${nearMiss.junctionModelName}\", but its foreign key to \"${candidate.targetModelName}\" does not reference \"${candidate.targetModelName}\"'s @id. The junction's target-side foreign key must reference \"${candidate.targetModelName}\"'s full @id columns for many-to-many recognition.`,\n\t\tsourceId,\n\t\tspan: candidate.field.span,\n\t\tdata\n\t};\n\treturn {\n\t\tcode: \"PSL_JUNCTION_ID_NOT_FK_COVERING\",\n\t\tmessage: `Backrelation list field \"${listField}\" found junction-shaped model \"${nearMiss.junctionModelName}\" linking \"${candidate.modelName}\" and \"${candidate.targetModelName}\", but its id does not cover exactly its foreign-key columns. Declare @@id([...]) on \"${nearMiss.junctionModelName}\" listing exactly the two foreign-key columns for many-to-many recognition.`,\n\t\tsourceId,\n\t\tspan: candidate.field.span,\n\t\tdata\n\t};\n}\nfunction manyToManyRelationNode(candidate, pair) {\n\treturn {\n\t\tfieldName: candidate.field.name,\n\t\ttoModel: pair.childFk.targetModelName,\n\t\ttoTable: pair.childFk.targetTableName,\n\t\t...ifDefined(\"toNamespaceId\", pair.childFk.targetNamespaceId),\n\t\tcardinality: \"N:M\",\n\t\ton: {\n\t\t\tparentTable: candidate.tableName,\n\t\t\tparentColumns: pair.parentFk.referencedColumns,\n\t\t\tchildTable: pair.parentFk.declaringTableName,\n\t\t\tchildColumns: pair.parentFk.localColumns\n\t\t},\n\t\tthrough: {\n\t\t\ttable: pair.parentFk.declaringTableName,\n\t\t\t...ifDefined(\"namespaceId\", pair.parentFk.declaringNamespaceId),\n\t\t\tparentColumns: pair.parentFk.localColumns,\n\t\t\tchildColumns: pair.childColumnsInTargetIdOrder\n\t\t}\n\t};\n}\nfunction relationsForModel(modelRelations, modelName) {\n\tconst existing = modelRelations.get(modelName);\n\tif (existing) return existing;\n\tconst created = [];\n\tmodelRelations.set(modelName, created);\n\treturn created;\n}\n/**\n* A set of columns is unique when it exactly matches one of the model's unique\n* column sets — its primary key or any single- or multi-column `@unique` /\n* `@@unique` constraint. Set equality (not subset) is required: a singular\n* back-relation means at most one child per parent, which a unique constraint\n* covering exactly the FK columns guarantees.\n*/\nfunction fkColumnsAreUnique(localColumns, uniqueColumnSets) {\n\tconst local = new Set(localColumns);\n\treturn uniqueColumnSets.some((columns) => columns.length === local.size && columns.every((column) => local.has(column)));\n}\nfunction applyBackrelationCandidates(input) {\n\tfor (const candidate of input.backrelationCandidates) {\n\t\tconst pairKey = fkRelationPairKey(candidate.targetModelName, candidate.modelName);\n\t\tconst pairMatches = input.fkRelationsByPair.get(pairKey) ?? [];\n\t\tconst matches = candidate.relationName ? pairMatches.filter((relation) => relation.relationName === candidate.relationName) : [...pairMatches];\n\t\tif (matches.length === 0) {\n\t\t\tif (candidate.isList) {\n\t\t\t\tconst { pairs: junctionPairs, nearMisses } = findJunctionFkPairs({\n\t\t\t\t\tcandidate,\n\t\t\t\t\tfkRelationsByDeclaringModel: input.fkRelationsByDeclaringModel,\n\t\t\t\t\tmodelIdColumns: input.modelIdColumns\n\t\t\t\t});\n\t\t\t\tconst junctionPair = junctionPairs[0];\n\t\t\t\tif (junctionPairs.length === 1 && junctionPair) {\n\t\t\t\t\trelationsForModel(input.modelRelations, candidate.modelName).push(manyToManyRelationNode(candidate, junctionPair));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (junctionPairs.length > 1) {\n\t\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\t\tcode: \"PSL_AMBIGUOUS_BACKRELATION\",\n\t\t\t\t\t\tmessage: `Backrelation list field \"${candidate.modelName}.${candidate.field.name}\" matches multiple junction FK pairs for a many-to-many relation. Add @relation(name: \"...\") (or @relation(\"...\")) to the list field and the junction FK-side relation pointing back at \"${candidate.modelName}\" to disambiguate.`,\n\t\t\t\t\t\tsourceId: input.sourceId,\n\t\t\t\t\t\tspan: candidate.field.span\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst nearMiss = nearMisses[0];\n\t\t\t\tif (nearMiss) {\n\t\t\t\t\tinput.diagnostics.push(junctionNearMissDiagnostic(candidate, nearMiss, input.sourceId));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_BACKRELATION\",\n\t\t\t\tmessage: `Backrelation field \"${candidate.modelName}.${candidate.field.name}\" has no matching FK-side relation on model \"${candidate.targetModelName}\". Add @relation(fields: [...], references: [...]) on the FK-side relation${candidate.isList ? \" or use an explicit join model for many-to-many\" : \"\"}.`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: candidate.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (matches.length > 1) {\n\t\t\tinput.diagnostics.push({\n\t\t\t\tcode: \"PSL_AMBIGUOUS_BACKRELATION\",\n\t\t\t\tmessage: `Backrelation field \"${candidate.modelName}.${candidate.field.name}\" matches multiple FK-side relations on model \"${candidate.targetModelName}\". Add @relation(name: \"...\") (or @relation(\"...\")) to both sides to disambiguate.`,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: candidate.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tinvariant(matches.length === 1, \"Backrelation matching requires exactly one match\");\n\t\tconst matched = matches[0];\n\t\tassertDefined(matched, \"Backrelation matching requires a defined relation match\");\n\t\tif (!candidate.isList) {\n\t\t\tconst uniqueColumnSets = input.modelUniqueColumnSets.get(matched.declaringModelName) ?? [];\n\t\t\tif (!fkColumnsAreUnique(matched.localColumns, uniqueColumnSets)) {\n\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\tcode: \"PSL_NON_UNIQUE_BACKRELATION\",\n\t\t\t\t\tmessage: `Backrelation field \"${candidate.modelName}.${candidate.field.name}\" is singular, but the matching FK on \"${matched.declaringModelName}\" (fields ${matched.localColumns.map((column) => `\"${column}\"`).join(\", \")}) is not unique. A singular back-relation implies at most one related row; add @unique (or @@unique([...])) to the FK fields, or make \"${candidate.field.name}\" a list.`,\n\t\t\t\t\tsourceId: input.sourceId,\n\t\t\t\t\tspan: candidate.field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\trelationsForModel(input.modelRelations, candidate.modelName).push({\n\t\t\tfieldName: candidate.field.name,\n\t\t\ttoModel: matched.declaringModelName,\n\t\t\ttoTable: matched.declaringTableName,\n\t\t\t...ifDefined(\"toNamespaceId\", matched.declaringNamespaceId),\n\t\t\tcardinality: candidate.isList ? \"1:N\" : \"1:1\",\n\t\t\ton: {\n\t\t\t\tparentTable: candidate.tableName,\n\t\t\t\tparentColumns: matched.referencedColumns,\n\t\t\t\tchildTable: matched.declaringTableName,\n\t\t\t\tchildColumns: matched.localColumns\n\t\t\t}\n\t\t});\n\t}\n}\nfunction validateBackrelationFieldAttributes(input) {\n\tlet valid = true;\n\tfor (const attribute of input.field.attributes) {\n\t\tif (attribute.name === \"relation\") continue;\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(attribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@${attribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsourceId: input.sourceId,\n\t\t\t\tspan: attribute.span,\n\t\t\t\tdiagnostics: input.diagnostics\n\t\t\t});\n\t\t\tvalid = false;\n\t\t\tcontinue;\n\t\t}\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\tmessage: `Field \"${input.modelName}.${input.field.name}\" uses unsupported attribute \"@${attribute.name}\"`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: attribute.span\n\t\t});\n\t\tvalid = false;\n\t}\n\treturn valid;\n}\n//#endregion\n//#region src/interpreter.ts\nfunction buildComposedExtensionPackRefs(target, extensionIds, extensionPackRefs = []) {\n\tif (extensionIds.length === 0) return;\n\tconst extensionPackRefById = new Map(extensionPackRefs.map((packRef) => [packRef.id, packRef]));\n\treturn Object.fromEntries(extensionIds.map((extensionId) => [extensionId, extensionPackRefById.get(extensionId) ?? {\n\t\tkind: \"extension\",\n\t\tid: extensionId,\n\t\tfamilyId: target.familyId,\n\t\ttargetId: target.targetId,\n\t\tversion: \"0.0.1\"\n\t}]));\n}\nfunction compareStrings(left, right) {\n\tif (left < right) return -1;\n\tif (left > right) return 1;\n\treturn 0;\n}\n/**\n* Name of the framework-parser synthesised bucket for top-level\n* declarations. Re-declared here so the per-target dispatch does not\n* have to import from `@internal/framework-components/psl-ast`\n* (which would cross a layer that the interpreter does not otherwise\n* import from). The value is part of the framework parser's contract;\n* if it changes there, the matching test in this package's\n* `interpreter.diagnostics.test.ts` flips first.\n*/\nconst UNSPECIFIED_PSL_NAMESPACE_NAME = \"__unspecified__\";\n/**\n* Per-target namespace-block validation: walk the AST's namespace buckets and\n* emit diagnostics for syntactic constructs the target does not accept.\n*\n* - **SQLite** has no schema concept and rejects every explicit\n* `namespace { … }` block. The implicit `__unspecified__` bucket\n* (produced by the parser for top-level declarations outside any\n* block) is the only namespace SQLite accepts.\n* - **Postgres** accepts every explicit block — `namespace unbound { … }`\n* is the late-binding opt-in (lowers to the IR `__unbound__` slot in\n* a follow-on commit), `namespace public { … }` reopen-merges with\n* the implicit bucket, and any other name lowers to a named schema.\n*\n* Storage-side lowering of these buckets to IR namespace slots is not\n* yet wired; this helper closes only the diagnostic surface.\n*/\n/**\n* Per-target namespace lowering: map a PSL AST namespace bucket name to the\n* resolved IR namespace id (the key downstream consumers use against\n* `SqlStorage.namespaces`).\n*\n* - **Postgres**: an explicit `namespace unbound { … }` block lowers\n* to the framework sentinel `__unbound__` — the slot whose binding\n* the connection's `search_path` resolves at runtime. Every other\n* explicit bucket name (e.g. `auth`, `public`) passes through as a\n* named schema id. The implicit `__unspecified__` bucket — top-level\n* declarations outside any `namespace { … }` block — leaves the\n* coordinate unset; downstream consumers treat unset as the\n* late-bound default, and TS / PSL authoring stay byte-identical\n* on single-namespace contracts. (A future round will add a\n* target-default-namespace surface so `__unspecified__` lowers to\n* `public` consistently on both authoring paths.)\n* - **SQLite**: SQLite has no schema concept; every namespace\n* collapses to the late-bound default. The namespace-block\n* validation step (above) has already rejected any explicit\n* `namespace { … }` block on SQLite, so the only bucket the\n* lowering ever sees there is `__unspecified__`.\n*\n* Returns `undefined` for targets / bucket names with no explicit\n* namespaceId to assign — callers leave the model's `namespaceId`\n* slot empty (which means the late-bound default at the `StorageTable`\n* layer; emitted JSON omits the field).\n*/\nfunction resolveNamespaceIdForSqlTarget(input) {\n\tif (input.targetId !== \"postgres\") return;\n\tif (input.bucketName === UNSPECIFIED_PSL_NAMESPACE_NAME) return \"public\";\n\tif (input.bucketName === \"unbound\") return UNBOUND_NAMESPACE_ID;\n\treturn input.bucketName;\n}\n/**\n* A namespace block is the unbound block when its name RESOLVES to the\n* unbound id — both the `namespace unbound { }` spelling (mapped by\n* {@link resolveNamespaceIdForSqlTarget}) and the raw sentinel spelling\n* `namespace __unbound__ { }` (passed through verbatim) behave identically:\n* same models-sibling restriction, same block-lowering bucket.\n*/\nfunction isUnboundNamespaceBlock(ns, targetId) {\n\treturn resolveNamespaceIdForSqlTarget({\n\t\tbucketName: ns.name,\n\t\ttargetId\n\t}) === UNBOUND_NAMESPACE_ID;\n}\nfunction validateNamespaceBlocksForSqlTarget(input) {\n\tif (input.targetId === \"sqlite\") {\n\t\tfor (const namespace of input.namespaces) input.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_NAMESPACE_BLOCK\",\n\t\t\tmessage: `SQLite does not support \\`namespace ${namespace.name} { … }\\` blocks (SQLite has no schema concept; declare models at the document top level instead).`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: nodePslSpan(namespace.node.syntax, input.sourceFile)\n\t\t});\n\t\treturn;\n\t}\n\tif (input.targetId === \"postgres\") {\n\t\tconst unboundBlock = input.namespaces.find((ns) => isUnboundNamespaceBlock(ns, input.targetId) && Object.keys(ns.models).length > 0);\n\t\tconst hasSibling = input.namespaces.some((ns) => !isUnboundNamespaceBlock(ns, input.targetId));\n\t\tif (unboundBlock !== void 0 && hasSibling) input.diagnostics.push({\n\t\t\tcode: \"PSL_RESERVED_NAMESPACE_NAME\",\n\t\t\tmessage: \"Namespace \\\"unbound\\\" is reserved for the late-binding sentinel mapping; a `namespace unbound { … }` containing models cannot appear alongside other named namespace blocks. Use `namespace unbound { … }` alone (no sibling named namespaces) for late-binding multi-tenant contracts.\",\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: nodePslSpan(unboundBlock.node.syntax, input.sourceFile)\n\t\t});\n\t}\n}\n/**\n* Walks the flat `entityTypes` namespace tree in `authoringContributions` and\n* returns a map from discriminator string to the matching descriptor. The\n* interpreter uses this to dispatch parsed extension blocks to their factory\n* without naming any specific discriminator value (generic, by-discriminator).\n*/\nfunction buildEntityTypesByDiscriminator(contributions) {\n\tconst result = /* @__PURE__ */ new Map();\n\tconst namespace = contributions?.entityTypes;\n\tif (namespace === void 0) return result;\n\tconst walk = (node) => {\n\t\tfor (const value of Object.values(node)) if (isAuthoringEntityTypeDescriptor(value)) result.set(value.discriminator, value);\n\t\telse if (typeof value === \"object\" && value !== null) walk(value);\n\t};\n\twalk(namespace);\n\treturn result;\n}\n/**\n* The `PSL_DUPLICATE_ATTRIBUTE` diagnostic for a model attribute declared\n* more than once on one model. Shared by the built-in `@@control` path and\n* the contributed-model-attribute path so the code and wording stay in one\n* place. `name` is the bare attribute name (`control`, `rls`, …).\n*/\nfunction duplicateModelAttributeDiagnostic(input) {\n\treturn {\n\t\tcode: \"PSL_DUPLICATE_ATTRIBUTE\",\n\t\tmessage: `\\`@@${input.name}\\` declared more than once on model \"${input.modelName}\".`,\n\t\tsourceId: input.sourceId,\n\t\t...ifDefined(\"span\", input.span)\n\t};\n}\n/**\n* Enforces `AuthoringPslBlockDescriptor.requiresModelAttribute` over one\n* scope (the top level or one namespace): every block whose descriptor\n* declares the requirement must name a model that carries the required\n* bare `@@` attribute. Runs on the parsed symbol table, so it is\n* independent of block/model declaration order and of lowering order. A\n* missing parameter or an unresolvable model is skipped — the\n* missing-required-parameter and unresolved-ref diagnostics own those\n* failure modes.\n*/\nfunction validateBlockModelAttributeRequirements(input) {\n\tfor (const scope of input.scopes) for (const blockSymbol of Object.values(scope.blocks)) {\n\t\tconst requirement = findBlockDescriptor(input.pslBlockDescriptors, blockSymbol.keyword)?.requiresModelAttribute;\n\t\tif (requirement === void 0) continue;\n\t\tconst captured = blockSymbol.block.parameters[requirement.parameter];\n\t\tif (captured?.kind !== \"ref\") continue;\n\t\tconst model = scope.models[captured.identifier];\n\t\tif (model === void 0) continue;\n\t\tif (model.attributes.some((attribute) => attribute.name === requirement.attribute)) continue;\n\t\tinput.diagnostics.push({\n\t\t\tcode: \"PSL_EXTENSION_TARGET_MODEL_MISSING_ATTRIBUTE\",\n\t\t\tmessage: `\\`${blockSymbol.keyword}\\` block \"${blockSymbol.block.name}\" targets model \"${captured.identifier}\", which does not declare \\`@@${requirement.attribute}\\`. Add \\`@@${requirement.attribute}\\` to model \"${captured.identifier}\".`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: captured.span\n\t\t});\n\t}\n}\n/**\n* Walks the flat `modelAttributes` namespace tree in `authoringContributions`\n* and returns a map from bare `@@` attribute name to the matching\n* descriptor. The model-attribute loop in `buildModelNodeFromPsl` uses this\n* to dispatch a contributed attribute without naming any specific attribute.\n*/\nfunction buildModelAttributesByName(contributions) {\n\tconst result = /* @__PURE__ */ new Map();\n\tconst namespace = contributions?.modelAttributes;\n\tif (namespace === void 0) return result;\n\tconst walk = (node) => {\n\t\tfor (const value of Object.values(node)) if (isAuthoringModelAttributeDescriptor(value)) result.set(value.attribute, value);\n\t\telse if (typeof value === \"object\" && value !== null) walk(value);\n\t};\n\twalk(namespace);\n\treturn result;\n}\n/**\n* For a single lexical scope (a named PSL namespace, or the document top\n* level), lowers all extension blocks into IR entities via the registered\n* factory for each block's discriminator. Groups results by discriminator\n* (the entries key — one-string rule: discriminator === entries key).\n*\n* This pass is intentionally generic: no discriminator value is named here.\n* The factory (registered by the target pack) owns all block-specific logic.\n* A descriptor's factory output may also opt into value-set derivation via\n* the SQL family's `SqlValueSetDerivingEntityTypeOutput.deriveValueSet` hook\n* (probed by {@link deriveValueSetFromEntity}) — when present, the derived\n* value-set is folded into the namespace's `valueSet` slot (keyed by block\n* name), so a value-set-carrying pack entity (e.g. Postgres `native_enum`)\n* contributes the value-set that drives value-set → codec typing without\n* this pass inspecting a target-specific shape.\n*\n* The `namespaceId` is attached to the block before the factory call so the\n* factory can record the namespace coordinate without the interpreter\n* containing any target-specific knowledge about how namespace ids are used.\n*\n* Ref conversion is this pass's job, over typed data: each block-descriptor\n* parameter declared `{ kind: 'ref', refKind: 'model' }` (same-namespace\n* scope) is resolved to the referenced model's storage table name and\n* attached to the block as `resolvedModelRefs` ({@link ResolvedPslModelRefs})\n* before the factory runs — the factory consumes a resolved coordinate and\n* never looks a model up itself. A required model ref that is missing or\n* does not resolve is this pass's diagnostic; the factory is skipped.\n*/\nfunction lowerExtensionBlocksForNamespace(blocks, nsId, entityTypesByDiscriminator, entityContext, pslBlockDescriptors, resolveModelTable) {\n\tconst blockSymbols = Object.values(blocks);\n\tif (blockSymbols.length === 0) return {};\n\tconst result = {};\n\tfor (const blockSymbol of blockSymbols) {\n\t\tconst block = blockSymbol.block;\n\t\tconst descriptor = entityTypesByDiscriminator.get(block.kind);\n\t\tif (descriptor === void 0) continue;\n\t\tconst blockDescriptor = findBlockDescriptor(pslBlockDescriptors, block.keyword);\n\t\tlet unresolvedRef = false;\n\t\tlet resolvedModelRefs;\n\t\tfor (const [paramName, paramDecl] of Object.entries(blockDescriptor?.parameters ?? {})) {\n\t\t\tif (paramDecl.kind !== \"ref\" || paramDecl.refKind !== \"model\" || paramDecl.scope !== \"same-namespace\") continue;\n\t\t\tconst captured = block.parameters[paramName];\n\t\t\tif (captured?.kind !== \"ref\") {\n\t\t\t\tif (paramDecl.required === true) {\n\t\t\t\t\tentityContext.diagnostics?.push({\n\t\t\t\t\t\tcode: \"PSL_EXTENSION_MODEL_REF_UNRESOLVED\",\n\t\t\t\t\t\tmessage: `\\`${block.keyword}\\` block \"${block.name}\" is missing the required \\`${paramName}\\` model reference.`,\n\t\t\t\t\t\tsourceId: entityContext.sourceId ?? \"unknown\",\n\t\t\t\t\t\tspan: block.span\n\t\t\t\t\t});\n\t\t\t\t\tunresolvedRef = true;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst tableName = resolveModelTable(captured.identifier);\n\t\t\tif (tableName === void 0) {\n\t\t\t\tentityContext.diagnostics?.push({\n\t\t\t\t\tcode: \"PSL_EXTENSION_MODEL_REF_UNRESOLVED\",\n\t\t\t\t\tmessage: `\\`${block.keyword}\\` block \"${block.name}\" references model \"${captured.identifier}\" in \\`${paramName}\\`, which is not declared in the same namespace. Declare the model or fix the reference.`,\n\t\t\t\t\tsourceId: entityContext.sourceId ?? \"unknown\",\n\t\t\t\t\tspan: captured.span\n\t\t\t\t});\n\t\t\t\tunresolvedRef = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tresolvedModelRefs = {\n\t\t\t\t...resolvedModelRefs ?? {},\n\t\t\t\t[paramName]: { tableName }\n\t\t\t};\n\t\t}\n\t\tif (unresolvedRef) continue;\n\t\tconst annotatedBlock = {\n\t\t\t...block,\n\t\t\tnamespaceId: nsId,\n\t\t\t...resolvedModelRefs !== void 0 ? { resolvedModelRefs } : {}\n\t\t};\n\t\tconst entity = instantiateAuthoringEntityType(descriptor.discriminator, descriptor, [annotatedBlock], entityContext);\n\t\tif (entity === void 0) continue;\n\t\tconst entriesKey = descriptor.discriminator;\n\t\tconst slot = result[entriesKey] ?? {};\n\t\tresult[entriesKey] = slot;\n\t\tslot[block.name] = entity;\n\t\tconst derivedValueSet = deriveValueSetFromEntity(descriptor.output, entity);\n\t\tif (derivedValueSet !== void 0) {\n\t\t\tconst valueSetSlot = result[\"valueSet\"] ?? {};\n\t\t\tresult[\"valueSet\"] = valueSetSlot;\n\t\t\tvalueSetSlot[block.name] = derivedValueSet;\n\t\t}\n\t}\n\treturn result;\n}\nfunction processEnumDeclarations(input) {\n\tconst enumHandles = {};\n\tconst enumTypeDescriptors = /* @__PURE__ */ new Map();\n\tif (input.enumBlocks.length === 0) return {\n\t\tenumHandles,\n\t\tenumTypeDescriptors\n\t};\n\tconst enumDescriptor = getAuthoringEntity(input.authoringContributions, [\"enum\"]);\n\tif (!enumDescriptor) {\n\t\tfor (const decl of input.enumBlocks) input.diagnostics.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_FACTORY\",\n\t\t\tmessage: `enum \"${decl.name}\" requires an \"enum\" entityType factory in the active authoring contributions`,\n\t\t\tsourceId: input.sourceId,\n\t\t\tspan: decl.span\n\t\t});\n\t\treturn {\n\t\t\tenumHandles,\n\t\t\tenumTypeDescriptors\n\t\t};\n\t}\n\tfor (const decl of input.enumBlocks) {\n\t\tconst handle = instantiateAuthoringEntityType(\"enum\", enumDescriptor, [decl], input.entityContext);\n\t\tif (handle === void 0 || handle === null) continue;\n\t\tenumHandles[decl.name] = handle;\n\t\tenumTypeDescriptors.set(decl.name, {\n\t\t\tcodecId: handle.codecId,\n\t\t\tnativeType: handle.nativeType\n\t\t});\n\t}\n\treturn {\n\t\tenumHandles,\n\t\tenumTypeDescriptors\n\t};\n}\n/** Generic top-level blocks are supported only when a composed descriptor claims their keyword. */\nfunction composedBlockKeywords(authoringContributions) {\n\tconst keywords = /* @__PURE__ */ new Set();\n\tconst descriptors = authoringContributions?.pslBlockDescriptors ?? {};\n\tfor (const [keyword, value] of Object.entries(descriptors)) if (isAuthoringPslBlockDescriptor(value)) keywords.add(keyword);\n\treturn keywords;\n}\n/**\n* The owning side of a relation is the one that declares `fields`/`references` on its\n* `@relation` attribute — those name the FK columns. A singular model-typed field whose\n* `@relation` carries only a name (or nothing at all) is the back side: infer prints exactly\n* that shape for a 1:1 back-relation whenever the FK needs disambiguating (two FKs between the\n* same table pair, or a self-referencing unique FK). Checking for the attribute's mere presence\n* would misclassify that back side as the owning side.\n*/\nfunction relationAttributeDeclaresOwningSide(relationAttribute) {\n\treturn getNamedArgument(relationAttribute, \"fields\") !== void 0 || getNamedArgument(relationAttribute, \"references\") !== void 0;\n}\nfunction buildModelNodeFromPsl(input) {\n\tconst { model, mapping, sourceId, diagnostics } = input;\n\tconst tableName = mapping.tableName;\n\tconst modelNamespaceId = input.modelNamespaceIds.get(model.name);\n\tconst namespaceExtensionEntitiesForModel = modelNamespaceId !== void 0 ? input.namespaceExtensionEntities?.get(modelNamespaceId) : void 0;\n\tconst resolvedFields = collectResolvedFields({\n\t\tmodel,\n\t\tmapping,\n\t\tenumTypeDescriptors: input.enumTypeDescriptors,\n\t\tnamedTypeDescriptors: input.namedTypeDescriptors,\n\t\tmodelNames: input.modelNames,\n\t\tcompositeTypeNames: input.compositeTypeNames,\n\t\tcomposedExtensions: input.composedExtensions,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tfamilyId: input.familyId,\n\t\ttargetId: input.targetId,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tgeneratorDescriptorById: input.generatorDescriptorById,\n\t\tdiagnostics,\n\t\tsourceId,\n\t\tsourceFile: input.sourceFile,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\t...ifDefined(\"enumHandles\", input.enumHandles),\n\t\tcapabilities: input.capabilities,\n\t\t...ifDefined(\"namespaceId\", modelNamespaceId),\n\t\t...ifDefined(\"namespaceExtensionEntities\", namespaceExtensionEntitiesForModel),\n\t\t...ifDefined(\"codecLookup\", input.codecLookup)\n\t});\n\tconst inlineIdFields = resolvedFields.filter((field) => field.isId);\n\tif (inlineIdFields.length > 1) diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: `Model \"${model.name}\" cannot declare inline @id on multiple fields; use model-level @@id([...]) for composite identity`,\n\t\tsourceId,\n\t\tspan: model.span\n\t});\n\tconst singleInlineIdField = inlineIdFields.length === 1 ? inlineIdFields[0] : void 0;\n\tlet primaryKey = singleInlineIdField ? {\n\t\tcolumns: [singleInlineIdField.columnName],\n\t\t...ifDefined(\"name\", singleInlineIdField.idName)\n\t} : void 0;\n\tconst hasInlinePrimaryKey = primaryKey !== void 0;\n\tlet blockPrimaryKeyDeclared = false;\n\tlet controlPolicyDeclared = false;\n\tlet controlPolicy;\n\tconst declaredContributedModelAttributes = /* @__PURE__ */ new Set();\n\tconst modelAttributeEntities = {};\n\tconst resultBackrelationCandidates = [];\n\tfor (const field of Object.values(model.fields)) {\n\t\tif (!input.modelNames.has(field.typeName)) continue;\n\t\tconst relationAttribute = getAttribute(field.attributes, \"relation\");\n\t\tif (!field.list && relationAttribute && relationAttributeDeclaresOwningSide(relationAttribute)) continue;\n\t\tconst attributesValid = validateBackrelationFieldAttributes({\n\t\t\tmodelName: model.name,\n\t\t\tfield,\n\t\t\tsourceId,\n\t\t\tcomposedExtensions: input.composedExtensions,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tdiagnostics,\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId\n\t\t});\n\t\tlet relationName;\n\t\tif (relationAttribute) {\n\t\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\t\tselfModel: model,\n\t\t\t\tfield,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (!parsedRelation) continue;\n\t\t\tif (parsedRelation.fields || parsedRelation.references) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Backrelation list field \"${model.name}.${field.name}\" cannot declare fields/references; define them on the FK-side relation field`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (parsedRelation.onDelete || parsedRelation.onUpdate || parsedRelation.index !== void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Backrelation list field \"${model.name}.${field.name}\" cannot declare onDelete/onUpdate/index; define them on the FK-side relation field`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trelationName = parsedRelation.name;\n\t\t}\n\t\tif (!attributesValid) continue;\n\t\tresultBackrelationCandidates.push({\n\t\t\tmodelName: model.name,\n\t\t\ttableName,\n\t\t\tfield,\n\t\t\ttargetModelName: field.typeName,\n\t\t\tisList: field.list,\n\t\t\t...ifDefined(\"relationName\", relationName)\n\t\t});\n\t}\n\tconst relationAttributes = Object.values(model.fields).map((field) => ({\n\t\tfield,\n\t\trelation: getAttribute(field.attributes, \"relation\")\n\t})).filter((entry) => Boolean(entry.relation));\n\tconst uniqueConstraints = resolvedFields.filter((field) => field.isUnique).map((field) => ({\n\t\tcolumns: [field.columnName],\n\t\t...ifDefined(\"name\", field.uniqueName)\n\t}));\n\tconst indexNodes = [];\n\tconst foreignKeyNodes = [];\n\tconst modelAttributeNodes = Array.from(model.node.attributes());\n\tfor (const [attributeIndex, modelAttribute] of model.attributes.entries()) {\n\t\tif (modelAttribute.name === \"map\") continue;\n\t\tif (modelAttribute.name === \"discriminator\" || modelAttribute.name === \"base\") continue;\n\t\tif (modelAttribute.name === \"control\") {\n\t\t\tif (controlPolicyDeclared) {\n\t\t\t\tdiagnostics.push(duplicateModelAttributeDiagnostic({\n\t\t\t\t\tname: \"control\",\n\t\t\t\t\tmodelName: model.name,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t}));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcontrolPolicyDeclared = true;\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: controlModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) controlPolicy = parsed.policy;\n\t\t\tcontinue;\n\t\t}\n\t\tconst attributeLabel = `Model \"${model.name}\" @@${modelAttribute.name}`;\n\t\tif (modelAttribute.name === \"id\") {\n\t\t\tif (blockPrimaryKeyDeclared) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" declares @@id more than once`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (hasInlinePrimaryKey) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" cannot declare both field-level @id and model-level @@id`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t});\n\t\t\t\tblockPrimaryKeyDeclared = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: idModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst fieldNames = parsed.fields;\n\t\t\tconst nullableFieldName = fieldNames.find((name) => model.fields[name]?.optional === true);\n\t\t\tif (nullableFieldName !== void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `${attributeLabel} cannot include optional field \"${nullableFieldName}\"; primary key columns must be NOT NULL`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst columnNames = mapFieldNamesToColumns({\n\t\t\t\tmodelName: model.name,\n\t\t\t\tfieldNames,\n\t\t\t\tmapping,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: modelAttribute.span,\n\t\t\t\tentityLabel: attributeLabel\n\t\t\t});\n\t\t\tif (!columnNames) continue;\n\t\t\tprimaryKey = {\n\t\t\t\tcolumns: columnNames,\n\t\t\t\t...ifDefined(\"name\", parsed.map)\n\t\t\t};\n\t\t\tblockPrimaryKeyDeclared = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (modelAttribute.name === \"unique\") {\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: uniqueModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst columnNames = mapFieldNamesToColumns({\n\t\t\t\tmodelName: model.name,\n\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\tmapping,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: modelAttribute.span,\n\t\t\t\tentityLabel: attributeLabel\n\t\t\t});\n\t\t\tif (!columnNames) continue;\n\t\t\tuniqueConstraints.push({\n\t\t\t\tcolumns: columnNames,\n\t\t\t\t...ifDefined(\"name\", parsed.map)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (modelAttribute.name === \"index\") {\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: indexModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tlet columnNames;\n\t\t\tif (parsed.fields !== void 0) {\n\t\t\t\tconst mapped = mapFieldNamesToColumns({\n\t\t\t\t\tmodelName: model.name,\n\t\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\t\tmapping,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t\tspan: modelAttribute.span,\n\t\t\t\t\tentityLabel: attributeLabel\n\t\t\t\t});\n\t\t\t\tif (!mapped) continue;\n\t\t\t\tcolumnNames = mapped;\n\t\t\t}\n\t\t\tindexNodes.push(blindCast({\n\t\t\t\t...ifDefined(\"columns\", columnNames),\n\t\t\t\t...ifDefined(\"expression\", parsed.expression),\n\t\t\t\twhere: parsed.where,\n\t\t\t\tunique: parsed.unique,\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map,\n\t\t\t\ttype: parsed.type,\n\t\t\t\toptions: parsed.options\n\t\t\t}));\n\t\t\tcontinue;\n\t\t}\n\t\tconst contributedModelAttribute = input.modelAttributesByName.get(modelAttribute.name);\n\t\tif (contributedModelAttribute !== void 0) {\n\t\t\tif (declaredContributedModelAttributes.has(modelAttribute.name)) {\n\t\t\t\tdiagnostics.push(duplicateModelAttributeDiagnostic({\n\t\t\t\t\tname: modelAttribute.name,\n\t\t\t\t\tmodelName: model.name,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: modelAttribute.span\n\t\t\t\t}));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdeclaredContributedModelAttributes.add(modelAttribute.name);\n\t\t\tconst node = modelAttributeNodes[attributeIndex];\n\t\t\tif (node === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: blindCast(contributedModelAttribute.spec),\n\t\t\t\tmodel,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tconst lowered = blindCast(contributedModelAttribute.lower)(parsed, {\n\t\t\t\tfamily: input.familyId,\n\t\t\t\ttarget: input.targetId,\n\t\t\t\tmodelName: model.name,\n\t\t\t\tstorageName: tableName,\n\t\t\t\tnamespaceId: modelNamespaceId ?? input.defaultNamespaceId,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\t\tdiagnostics.push(blindCast(d));\n\t\t\t\t} }\n\t\t\t});\n\t\t\tif (lowered === void 0) continue;\n\t\t\tconst slot = modelAttributeEntities[contributedModelAttribute.attribute] ?? {};\n\t\t\tmodelAttributeEntities[contributedModelAttribute.attribute] = slot;\n\t\t\tslot[lowered.key] = lowered.entity;\n\t\t\tcontinue;\n\t\t}\n\t\tconst uncomposedNamespace = checkUncomposedNamespace(modelAttribute.name, input.composedExtensions, {\n\t\t\tfamilyId: input.familyId,\n\t\t\ttargetId: input.targetId,\n\t\t\tauthoringContributions: input.authoringContributions\n\t\t});\n\t\tif (uncomposedNamespace) {\n\t\t\treportUncomposedNamespace({\n\t\t\t\tsubjectLabel: `Attribute \"@@${modelAttribute.name}\"`,\n\t\t\t\tnamespace: uncomposedNamespace,\n\t\t\t\tsourceId,\n\t\t\t\tspan: modelAttribute.span,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_MODEL_ATTRIBUTE\",\n\t\t\tmessage: `Model \"${model.name}\" uses unsupported attribute \"@@${modelAttribute.name}\"`,\n\t\t\tsourceId,\n\t\t\tspan: modelAttribute.span\n\t\t});\n\t}\n\tconst resultFkRelationMetadata = [];\n\tconst resultCrossSpaceRelations = [];\n\tfor (const relationAttribute of relationAttributes) {\n\t\tconst { typeName: fieldTypeName, typeNamespaceId: fieldTypeNamespaceId, typeContractSpaceId: fieldTypeContractSpaceId } = relationAttribute.field;\n\t\tif (relationAttribute.field.list) {\n\t\t\tif (fieldTypeContractSpaceId !== void 0) diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_CROSS_SPACE_LIST\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" is a cross-space list relation (type \"${fieldTypeContractSpaceId}:${fieldTypeNamespaceId !== void 0 ? `${fieldTypeNamespaceId}.` : \"\"}${fieldTypeName}[]\"). Cross-space relations must be singular in v0.1 — list cross-space relations are not supported.`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!relationAttributeDeclaresOwningSide(relationAttribute.relation)) continue;\n\t\tif (fieldTypeContractSpaceId !== void 0) {\n\t\t\tconst extContractForSpace = input.composedExtensionContracts.get(fieldTypeContractSpaceId);\n\t\t\tif (extContractForSpace === void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNKNOWN_CONTRACT_SPACE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references contract space \"${fieldTypeContractSpaceId}\" which is not declared in extensions. Add \"${fieldTypeContractSpaceId}\" to extensions in prisma-next.config.ts.`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.field.span,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tspace: fieldTypeContractSpaceId,\n\t\t\t\t\t\tsuggestedPack: fieldTypeContractSpaceId\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\t\tselfModel: model,\n\t\t\t\tfield: relationAttribute.field,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsourceFile: input.sourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (!parsedRelation) continue;\n\t\t\tif (!parsedRelation.fields || !parsedRelation.references) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" requires fields and references arguments`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.relation.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst localColumns = mapFieldNamesToColumns({\n\t\t\t\tmodelName: model.name,\n\t\t\t\tfieldNames: parsedRelation.fields,\n\t\t\t\tmapping,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics,\n\t\t\t\tspan: relationAttribute.relation.span,\n\t\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t\t});\n\t\t\tif (!localColumns) continue;\n\t\t\tconst referencedColumns = parsedRelation.references;\n\t\t\tif (localColumns.length !== referencedColumns.length) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" must provide the same number of fields and references`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.relation.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst onDelete = parsedRelation.onDelete ? normalizeReferentialAction(parsedRelation.onDelete) : void 0;\n\t\t\tconst onUpdate = parsedRelation.onUpdate ? normalizeReferentialAction(parsedRelation.onUpdate) : void 0;\n\t\t\tconst crossTargetNamespaceId = fieldTypeNamespaceId ?? \"__unbound__\";\n\t\t\tconst extContract = extContractForSpace;\n\t\t\tconst resolvedTable = extContract.domain.namespaces[crossTargetNamespaceId]?.models[fieldTypeName]?.storage[\"table\"];\n\t\t\tif (typeof resolvedTable !== \"string\") {\n\t\t\t\tconst availableModels = Object.keys(extContract.domain.namespaces[crossTargetNamespaceId]?.models ?? {}).join(\", \") || \"(none)\";\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNKNOWN_CROSS_SPACE_TARGET\",\n\t\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references model \"${fieldTypeName}\" in namespace \"${crossTargetNamespaceId}\" of space \"${fieldTypeContractSpaceId}\", but that model was not found in the extension contract. Available models: ${availableModels}`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: relationAttribute.field.span,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tspace: fieldTypeContractSpaceId,\n\t\t\t\t\t\tnamespace: crossTargetNamespaceId,\n\t\t\t\t\t\tmodel: fieldTypeName\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst crossTargetTableName = resolvedTable;\n\t\t\tforeignKeyNodes.push({\n\t\t\t\tcolumns: localColumns,\n\t\t\t\treferences: {\n\t\t\t\t\tmodel: fieldTypeName,\n\t\t\t\t\ttable: crossTargetTableName,\n\t\t\t\t\tcolumns: referencedColumns,\n\t\t\t\t\tnamespaceId: crossTargetNamespaceId,\n\t\t\t\t\tspaceId: fieldTypeContractSpaceId\n\t\t\t\t},\n\t\t\t\t...ifDefined(\"name\", parsedRelation.map),\n\t\t\t\t...ifDefined(\"onDelete\", onDelete),\n\t\t\t\t...ifDefined(\"onUpdate\", onUpdate),\n\t\t\t\t...ifDefined(\"index\", parsedRelation.index)\n\t\t\t});\n\t\t\tresultCrossSpaceRelations.push({\n\t\t\t\tfieldName: relationAttribute.field.name,\n\t\t\t\ttoModel: fieldTypeName,\n\t\t\t\ttoTable: crossTargetTableName,\n\t\t\t\tcardinality: \"N:1\",\n\t\t\t\tspaceId: fieldTypeContractSpaceId,\n\t\t\t\tnamespaceId: crossTargetNamespaceId,\n\t\t\t\ton: {\n\t\t\t\t\tparentTable: tableName,\n\t\t\t\t\tparentColumns: localColumns,\n\t\t\t\t\tchildTable: crossTargetTableName,\n\t\t\t\t\tchildColumns: referencedColumns\n\t\t\t\t}\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst qualifiedTypeName = fieldTypeNamespaceId ? `${fieldTypeNamespaceId}.${fieldTypeName}` : fieldTypeName;\n\t\tif (!input.modelNames.has(fieldTypeName)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_TARGET\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references unknown model \"${qualifiedTypeName}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst normalizedQualifier = fieldTypeNamespaceId === void 0 ? void 0 : fieldTypeNamespaceId === \"unbound\" ? \"__unbound__\" : fieldTypeNamespaceId;\n\t\tif (normalizedQualifier !== void 0 && !input.modelMappingsByCoordinate.has(modelCoordinateKey(normalizedQualifier, fieldTypeName))) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_TARGET\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references unknown model \"${qualifiedTypeName}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\tselfModel: model,\n\t\t\tfield: relationAttribute.field,\n\t\t\tsymbols: input.symbolTable,\n\t\t\tsourceFile: input.sourceFile,\n\t\t\tsourceId,\n\t\t\tdiagnostics\n\t\t});\n\t\tif (!parsedRelation) continue;\n\t\tif (!parsedRelation.fields || !parsedRelation.references) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" requires fields and references arguments`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.relation.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst targetMapping = normalizedQualifier !== void 0 ? input.modelMappingsByCoordinate.get(modelCoordinateKey(normalizedQualifier, fieldTypeName)) : input.modelMappings.get(fieldTypeName);\n\t\tif (!targetMapping) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_TARGET\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" references unknown model \"${qualifiedTypeName}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.field.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst localColumns = mapFieldNamesToColumns({\n\t\t\tmodelName: model.name,\n\t\t\tfieldNames: parsedRelation.fields,\n\t\t\tmapping,\n\t\t\tsourceId,\n\t\t\tdiagnostics,\n\t\t\tspan: relationAttribute.relation.span,\n\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t});\n\t\tif (!localColumns) continue;\n\t\tconst referencedColumns = mapFieldNamesToColumns({\n\t\t\tmodelName: targetMapping.model.name,\n\t\t\tfieldNames: parsedRelation.references,\n\t\t\tmapping: targetMapping,\n\t\t\tsourceId,\n\t\t\tdiagnostics,\n\t\t\tspan: relationAttribute.relation.span,\n\t\t\tentityLabel: `Relation field \"${model.name}.${relationAttribute.field.name}\"`\n\t\t});\n\t\tif (!referencedColumns) continue;\n\t\tif (localColumns.length !== referencedColumns.length) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\t\tmessage: `Relation field \"${model.name}.${relationAttribute.field.name}\" must provide the same number of fields and references`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: relationAttribute.relation.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst onDelete = parsedRelation.onDelete ? normalizeReferentialAction(parsedRelation.onDelete) : void 0;\n\t\tconst onUpdate = parsedRelation.onUpdate ? normalizeReferentialAction(parsedRelation.onUpdate) : void 0;\n\t\tconst targetNamespaceId = normalizedQualifier !== void 0 ? normalizedQualifier : input.modelNamespaceIds.get(targetMapping.model.name);\n\t\tforeignKeyNodes.push({\n\t\t\tcolumns: localColumns,\n\t\t\treferences: {\n\t\t\t\tmodel: targetMapping.model.name,\n\t\t\t\ttable: targetMapping.tableName,\n\t\t\t\tcolumns: referencedColumns,\n\t\t\t\t...ifDefined(\"namespaceId\", targetNamespaceId)\n\t\t\t},\n\t\t\t...ifDefined(\"name\", parsedRelation.map),\n\t\t\t...ifDefined(\"onDelete\", onDelete),\n\t\t\t...ifDefined(\"onUpdate\", onUpdate),\n\t\t\t...ifDefined(\"index\", parsedRelation.index)\n\t\t});\n\t\tresultFkRelationMetadata.push({\n\t\t\tdeclaringModelName: model.name,\n\t\t\tdeclaringFieldName: relationAttribute.field.name,\n\t\t\tdeclaringTableName: tableName,\n\t\t\t...ifDefined(\"declaringNamespaceId\", input.modelNamespaceIds.get(model.name)),\n\t\t\ttargetModelName: targetMapping.model.name,\n\t\t\ttargetTableName: targetMapping.tableName,\n\t\t\t...ifDefined(\"targetNamespaceId\", targetNamespaceId),\n\t\t\t...ifDefined(\"relationName\", parsedRelation.name),\n\t\t\tlocalColumns,\n\t\t\treferencedColumns\n\t\t});\n\t}\n\treturn {\n\t\tmodelNode: {\n\t\t\tmodelName: model.name,\n\t\t\ttableName,\n\t\t\tfields: resolvedFields.map((resolvedField) => {\n\t\t\t\tconst enumHandle = input.enumHandles?.get(resolvedField.field.typeName);\n\t\t\t\treturn {\n\t\t\t\t\tfieldName: resolvedField.field.name,\n\t\t\t\t\tcolumnName: resolvedField.columnName,\n\t\t\t\t\tdescriptor: resolvedField.descriptor,\n\t\t\t\t\tnullable: resolvedField.nullable,\n\t\t\t\t\t...resolvedField.many && resolvedField.valueObjectTypeName === void 0 ? { many: true } : {},\n\t\t\t\t\t...ifDefined(\"default\", resolvedField.defaultValue),\n\t\t\t\t\t...ifDefined(\"executionDefaults\", resolvedField.executionDefaults),\n\t\t\t\t\t...ifDefined(\"enumTypeHandle\", enumHandle)\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...ifDefined(\"id\", primaryKey),\n\t\t\t...uniqueConstraints.length > 0 ? { uniques: uniqueConstraints } : {},\n\t\t\t...indexNodes.length > 0 ? { indexes: indexNodes } : {},\n\t\t\t...foreignKeyNodes.length > 0 ? { foreignKeys: foreignKeyNodes } : {},\n\t\t\t...ifDefined(\"control\", controlPolicy)\n\t\t},\n\t\tfkRelationMetadata: resultFkRelationMetadata,\n\t\tcrossSpaceRelations: resultCrossSpaceRelations,\n\t\tbackrelationCandidates: resultBackrelationCandidates,\n\t\tresolvedFields,\n\t\tmodelAttributeEntities\n\t};\n}\nfunction buildValueObjects(input) {\n\tconst { compositeTypes, enumTypeDescriptors, namedTypeDescriptors, scalarColumnDescriptors, composedExtensions, familyId, targetId, authoringContributions, diagnostics, sourceId } = input;\n\tconst valueObjects = {};\n\tconst compositeTypeNames = new Set(compositeTypes.map((ct) => ct.name));\n\tfor (const compositeType of compositeTypes) {\n\t\tconst fields = {};\n\t\tfor (const field of Object.values(compositeType.fields)) {\n\t\t\tif (compositeTypeNames.has(field.typeName)) {\n\t\t\t\tconst result = {\n\t\t\t\t\ttype: {\n\t\t\t\t\t\tkind: \"valueObject\",\n\t\t\t\t\t\tname: field.typeName\n\t\t\t\t\t},\n\t\t\t\t\tnullable: field.optional\n\t\t\t\t};\n\t\t\t\tfields[field.name] = field.list ? {\n\t\t\t\t\t...result,\n\t\t\t\t\tmany: true\n\t\t\t\t} : result;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst resolved = resolveFieldTypeDescriptor({\n\t\t\t\tfield,\n\t\t\t\tenumTypeDescriptors,\n\t\t\t\tnamedTypeDescriptors,\n\t\t\t\tscalarColumnDescriptors,\n\t\t\t\tauthoringContributions,\n\t\t\t\tcomposedExtensions,\n\t\t\t\tfamilyId,\n\t\t\t\ttargetId,\n\t\t\t\tdiagnostics,\n\t\t\t\tsourceId,\n\t\t\t\tentityLabel: `Field \"${compositeType.name}.${field.name}\"`\n\t\t\t});\n\t\t\tif (!resolved.ok) {\n\t\t\t\tif (!resolved.alreadyReported) diagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${compositeType.name}.${field.name}\" type \"${field.typeName}\" is not supported`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: field.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scalarField = {\n\t\t\t\tnullable: field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tcodecId: resolved.descriptor.codecId\n\t\t\t\t}\n\t\t\t};\n\t\t\tfields[field.name] = field.list ? {\n\t\t\t\t...scalarField,\n\t\t\t\tmany: true\n\t\t\t} : scalarField;\n\t\t}\n\t\tvalueObjects[compositeType.name] = { fields };\n\t}\n\treturn valueObjects;\n}\nfunction patchModelDomainFields(models, modelResolvedFields) {\n\tlet patched = models;\n\tfor (const [modelName, resolvedFields] of modelResolvedFields) {\n\t\tconst model = patched[modelName];\n\t\tif (!model) continue;\n\t\tlet needsPatch = false;\n\t\tconst patchedFields = { ...model.fields };\n\t\tfor (const rf of resolvedFields) if (rf.valueObjectTypeName) {\n\t\t\tneedsPatch = true;\n\t\t\tpatchedFields[rf.field.name] = {\n\t\t\t\tnullable: rf.field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"valueObject\",\n\t\t\t\t\tname: rf.valueObjectTypeName\n\t\t\t\t},\n\t\t\t\t...rf.many ? { many: true } : {}\n\t\t\t};\n\t\t} else if (rf.many && rf.scalarCodecId) {\n\t\t\tneedsPatch = true;\n\t\t\tpatchedFields[rf.field.name] = {\n\t\t\t\tnullable: rf.field.optional,\n\t\t\t\ttype: {\n\t\t\t\t\tkind: \"scalar\",\n\t\t\t\t\tcodecId: rf.scalarCodecId\n\t\t\t\t},\n\t\t\t\tmany: true\n\t\t\t};\n\t\t}\n\t\tif (needsPatch) patched = {\n\t\t\t...patched,\n\t\t\t[modelName]: {\n\t\t\t\t...model,\n\t\t\t\tfields: patchedFields\n\t\t\t}\n\t\t};\n\t}\n\treturn patched;\n}\nfunction collectPolymorphismDeclarations(models, sourceFile, sourceId, diagnostics) {\n\tconst discriminatorDeclarations = /* @__PURE__ */ new Map();\n\tconst baseDeclarations = /* @__PURE__ */ new Map();\n\tfor (const model of models) {\n\t\tconst discriminatorNode = findModelAttributeNode(model, \"discriminator\");\n\t\tif (discriminatorNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: discriminatorNode,\n\t\t\t\tspec: discriminatorModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) {\n\t\t\t\tconst span = nodePslSpan(discriminatorNode.syntax, sourceFile);\n\t\t\t\tconst discField = model.fields[parsed.field];\n\t\t\t\tif (discField && discField.typeName !== \"String\") diagnostics.push({\n\t\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\t\tmessage: `Discriminator field \"${parsed.field}\" on model \"${model.name}\" must be of type String, but is \"${discField.typeName}\"`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan\n\t\t\t\t});\n\t\t\t\telse discriminatorDeclarations.set(model.name, {\n\t\t\t\t\tfieldName: parsed.field,\n\t\t\t\t\tspan\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst baseNode = findModelAttributeNode(model, \"base\");\n\t\tif (baseNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: baseNode,\n\t\t\t\tspec: baseModelSpec,\n\t\t\t\tmodel,\n\t\t\t\tsourceFile,\n\t\t\t\tsourceId,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) baseDeclarations.set(model.name, {\n\t\t\t\tbaseName: parsed.base,\n\t\t\t\tvalue: parsed.value,\n\t\t\t\tspan: nodePslSpan(baseNode.syntax, sourceFile)\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tdiscriminatorDeclarations,\n\t\tbaseDeclarations\n\t};\n}\nfunction resolvePolymorphism(models, discriminatorDeclarations, baseDeclarations, modelNames, modelMappings, modelNamespaceIds, defaultNamespaceId, syntheticPkFieldsByVariant, stiBaseFieldsByBase, sourceId, diagnostics) {\n\tlet patched = models;\n\tconst coordinateFor = (modelName) => modelCoordinateKey(modelNamespaceIds.get(modelName) ?? defaultNamespaceId, modelName);\n\tfor (const [baseName, fieldNames] of stiBaseFieldsByBase) {\n\t\tconst baseKey = coordinateFor(baseName);\n\t\tconst baseModel = patched[baseKey];\n\t\tif (!baseModel || fieldNames.length === 0) continue;\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[baseKey]: stripStorageOnlyDomainFields(baseModel, fieldNames)\n\t\t};\n\t}\n\tfor (const [modelName, decl] of discriminatorDeclarations) {\n\t\tif (baseDeclarations.has(modelName)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_DISCRIMINATOR_AND_BASE\",\n\t\t\t\tmessage: `Model \"${modelName}\" cannot have both @@discriminator and @@base`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: decl.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst model = patched[coordinateFor(modelName)];\n\t\tif (!model) continue;\n\t\tconst variants = {};\n\t\tconst seenValues = /* @__PURE__ */ new Map();\n\t\tfor (const [variantName, baseDecl] of baseDeclarations) {\n\t\t\tif (baseDecl.baseName !== modelName) continue;\n\t\t\tconst existingVariant = seenValues.get(baseDecl.value);\n\t\t\tif (existingVariant) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_DUPLICATE_DISCRIMINATOR_VALUE\",\n\t\t\t\t\tmessage: `Discriminator value \"${baseDecl.value}\" is used by both \"${existingVariant}\" and \"${variantName}\" on base model \"${modelName}\"`,\n\t\t\t\t\tsourceId,\n\t\t\t\t\tspan: baseDecl.span\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tseenValues.set(baseDecl.value, variantName);\n\t\t\tvariants[variantName] = { value: baseDecl.value };\n\t\t}\n\t\tif (Object.keys(variants).length === 0) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_DISCRIMINATOR\",\n\t\t\t\tmessage: `Model \"${modelName}\" has @@discriminator but no variant models declare @@base(${modelName}, ...)`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: decl.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[coordinateFor(modelName)]: {\n\t\t\t\t...model,\n\t\t\t\tdiscriminator: { field: decl.fieldName },\n\t\t\t\tvariants\n\t\t\t}\n\t\t};\n\t}\n\tfor (const [variantName, baseDecl] of baseDeclarations) {\n\t\tif (!modelNames.has(baseDecl.baseName)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_BASE_TARGET_NOT_FOUND\",\n\t\t\t\tmessage: `Model \"${variantName}\" @@base references non-existent model \"${baseDecl.baseName}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: baseDecl.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!discriminatorDeclarations.has(baseDecl.baseName)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_BASE\",\n\t\t\t\tmessage: `Model \"${variantName}\" declares @@base(${baseDecl.baseName}, ...) but \"${baseDecl.baseName}\" has no @@discriminator`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: baseDecl.span\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (discriminatorDeclarations.has(variantName)) continue;\n\t\tconst variantModel = patched[coordinateFor(variantName)];\n\t\tif (!variantModel) continue;\n\t\tconst baseMapping = modelMappings.get(baseDecl.baseName);\n\t\tconst variantMapping = modelMappings.get(variantName);\n\t\tconst resolvedTable = variantMapping?.model.attributes.some((attr) => attr.name === \"map\") ?? false ? variantMapping?.tableName : baseMapping?.tableName;\n\t\tconst patchedVariant = {\n\t\t\t...variantModel,\n\t\t\tbase: crossRef(baseDecl.baseName, modelNamespaceIds.get(baseDecl.baseName) ?? defaultNamespaceId),\n\t\t\t...resolvedTable ? { storage: {\n\t\t\t\t...variantModel.storage,\n\t\t\t\ttable: resolvedTable\n\t\t\t} } : {}\n\t\t};\n\t\tpatched = {\n\t\t\t...patched,\n\t\t\t[coordinateFor(variantName)]: stripStorageOnlyDomainFields(patchedVariant, syntheticPkFieldsByVariant.get(variantName) ?? [])\n\t\t};\n\t}\n\treturn patched;\n}\n/**\n* Multi-table-inheritance variants (`@@base` + their own `@@map`) live in a\n* separate table from their base. The ORM joins that table to the base on the\n* shared primary key (`base.id = variant.id`), so the variant storage table\n* must carry the base PK column even though the variant domain model declares\n* only its own fields. This enriches each MTI variant's `ModelNode` with that\n* link column, a primary key on it, and a FK back to the base table.\n*\n* The link column is reported back per variant in `syntheticPkFieldsByVariant`\n* so the domain-model patch can drop it again — keeping the variant's domain\n* surface thin (its create/read inputs don't gain a redundant `id`) while the\n* storage table stays joinable. Single-table-inheritance variants (no own\n* table) are left untouched.\n*/\nfunction materializeMtiVariantStorageLinks(modelNodes, baseDeclarations, stiVariantNames) {\n\tconst nodeByModel = new Map(modelNodes.map((node) => [node.modelName, node]));\n\tconst syntheticPkFieldsByVariant = /* @__PURE__ */ new Map();\n\treturn {\n\t\tmodelNodes: modelNodes.map((node) => {\n\t\t\tconst baseDecl = baseDeclarations.get(node.modelName);\n\t\t\tif (!baseDecl) return node;\n\t\t\tconst baseNode = nodeByModel.get(baseDecl.baseName);\n\t\t\tif (!baseNode) return node;\n\t\t\tif (stiVariantNames.has(node.modelName)) return node;\n\t\t\tconst basePrimaryKey = baseNode.id;\n\t\t\tif (!basePrimaryKey || basePrimaryKey.columns.length === 0) return node;\n\t\t\tconst existingColumns = new Set(node.fields.map((field) => field.columnName));\n\t\t\tconst linkFields = [];\n\t\t\tfor (const pkColumn of basePrimaryKey.columns) {\n\t\t\t\tif (existingColumns.has(pkColumn)) continue;\n\t\t\t\tconst baseField = baseNode.fields.find((field) => \"descriptor\" in field && field.columnName === pkColumn);\n\t\t\t\tif (!baseField) continue;\n\t\t\t\tlinkFields.push({\n\t\t\t\t\tfieldName: baseField.fieldName,\n\t\t\t\t\tcolumnName: pkColumn,\n\t\t\t\t\tdescriptor: baseField.descriptor,\n\t\t\t\t\tnullable: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (linkFields.length === 0) return node;\n\t\t\tsyntheticPkFieldsByVariant.set(node.modelName, linkFields.map((field) => field.fieldName));\n\t\t\tconst foreignKey = {\n\t\t\t\tcolumns: basePrimaryKey.columns,\n\t\t\t\treferences: {\n\t\t\t\t\tmodel: baseNode.modelName,\n\t\t\t\t\ttable: baseNode.tableName,\n\t\t\t\t\tcolumns: basePrimaryKey.columns,\n\t\t\t\t\t...ifDefined(\"namespaceId\", baseNode.namespaceId)\n\t\t\t\t},\n\t\t\t\tconstraint: true,\n\t\t\t\tindex: false,\n\t\t\t\tonDelete: \"cascade\"\n\t\t\t};\n\t\t\treturn {\n\t\t\t\t...node,\n\t\t\t\tfields: [...linkFields, ...node.fields],\n\t\t\t\tid: { columns: basePrimaryKey.columns },\n\t\t\t\tforeignKeys: [...node.foreignKeys ?? [], foreignKey]\n\t\t\t};\n\t\t}),\n\t\tsyntheticPkFieldsByVariant\n\t};\n}\n/**\n* Single-table-inheritance variants (`@@base` with no own `@@map`) share the\n* base table: `resolvePolymorphism` points the variant's `storage.table` at the\n* base, and the ORM reads variant-declared fields straight off the base table.\n* For that to validate and round-trip, the base storage table must physically\n* carry every STI variant's declared columns. This enriches the base\n* `ModelNode` with those columns.\n*\n* The materialised columns are always nullable in storage: the base table hosts\n* every variant's rows, so a column a variant declares as required is still\n* NULL on sibling-variant rows. The variant's domain field keeps its declared\n* nullability — required-in-domain / nullable-in-storage is the intended STI\n* shape.\n*\n* Collisions (two variants declaring the same column, or a variant column name\n* clashing with a base column) are resolved skip-if-exists here, mirroring the\n* MTI link guard; surfacing them as diagnostics is tracked separately\n* (TML-2827).\n*/\nfunction materializeStiVariantStorageColumns(modelNodes, baseDeclarations, stiVariantNames) {\n\tif (stiVariantNames.size === 0) return {\n\t\tmodelNodes: [...modelNodes],\n\t\tstiBaseFieldsByBase: /* @__PURE__ */ new Map()\n\t};\n\tconst nodeByModel = new Map(modelNodes.map((node) => [node.modelName, node]));\n\tconst stiColumnsByBase = /* @__PURE__ */ new Map();\n\tfor (const variantName of stiVariantNames) {\n\t\tconst variantNode = nodeByModel.get(variantName);\n\t\tconst baseDecl = baseDeclarations.get(variantName);\n\t\tif (!variantNode || !baseDecl) continue;\n\t\tconst baseNode = nodeByModel.get(baseDecl.baseName);\n\t\tif (!baseNode) continue;\n\t\tconst baseColumns = new Set(baseNode.fields.map((field) => field.columnName));\n\t\tconst claimed = stiColumnsByBase.get(baseDecl.baseName) ?? [];\n\t\tconst claimedColumns = new Set(claimed.map((field) => field.columnName));\n\t\tfor (const field of variantNode.fields) {\n\t\t\tif (baseColumns.has(field.columnName) || claimedColumns.has(field.columnName)) continue;\n\t\t\tclaimedColumns.add(field.columnName);\n\t\t\tclaimed.push({\n\t\t\t\t...field,\n\t\t\t\tnullable: true\n\t\t\t});\n\t\t}\n\t\tstiColumnsByBase.set(baseDecl.baseName, claimed);\n\t}\n\tconst stiBaseFieldsByBase = /* @__PURE__ */ new Map();\n\tfor (const [baseName, columns] of stiColumnsByBase) stiBaseFieldsByBase.set(baseName, columns.map((field) => field.fieldName));\n\treturn {\n\t\tmodelNodes: modelNodes.map((node) => {\n\t\t\tif (stiVariantNames.has(node.modelName)) return {\n\t\t\t\t...node,\n\t\t\t\tsharesBaseTable: true\n\t\t\t};\n\t\t\tconst stiColumns = stiColumnsByBase.get(node.modelName);\n\t\t\tif (!stiColumns || stiColumns.length === 0) return node;\n\t\t\treturn {\n\t\t\t\t...node,\n\t\t\t\tfields: [...node.fields, ...stiColumns]\n\t\t\t};\n\t\t}),\n\t\tstiBaseFieldsByBase\n\t};\n}\n/**\n* Drop the storage-only link fields (added by\n* {@link materializeMtiVariantStorageLinks}) from a variant's domain model, so\n* the domain surface stays thin while the storage table keeps the link column.\n*/\nfunction stripStorageOnlyDomainFields(model, fieldNames) {\n\tif (fieldNames.length === 0) return model;\n\tconst fields = { ...model.fields };\n\tfor (const name of fieldNames) delete fields[name];\n\tconst storage = blindCast(model.storage);\n\tconst storageFields = { ...storage.fields };\n\tfor (const name of fieldNames) delete storageFields[name];\n\treturn {\n\t\t...model,\n\t\tfields,\n\t\tstorage: {\n\t\t\t...storage,\n\t\t\tfields: storageFields\n\t\t}\n\t};\n}\nfunction interpretPslDocumentToSqlContract(input) {\n\tconst sourceId = input.sourceId;\n\tif (!input.target) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: [{\n\t\t\tcode: \"PSL_TARGET_CONTEXT_REQUIRED\",\n\t\t\tmessage: \"PSL interpretation requires an explicit target context from composition.\",\n\t\t\tsourceId\n\t\t}]\n\t});\n\tif (!input.scalarColumnDescriptors) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: [{\n\t\t\tcode: \"PSL_SCALAR_TYPE_CONTEXT_REQUIRED\",\n\t\t\tmessage: \"PSL interpretation requires composed scalar type descriptors.\",\n\t\t\tsourceId\n\t\t}]\n\t});\n\tconst { topLevel } = input.symbolTable;\n\tconst sourceFile = input.sourceFile;\n\tconst namespaceSymbols = Object.values(topLevel.namespaces);\n\tconst diagnostics = [...input.seedDiagnostics ?? []];\n\tvalidateNamespaceBlocksForSqlTarget({\n\t\tnamespaces: namespaceSymbols,\n\t\ttargetId: input.target.targetId,\n\t\tsourceId,\n\t\tsourceFile,\n\t\tdiagnostics\n\t});\n\tvalidateBlockModelAttributeRequirements({\n\t\tscopes: [topLevel, ...namespaceSymbols],\n\t\tpslBlockDescriptors: input.authoringContributions?.pslBlockDescriptors ?? {},\n\t\tsourceId,\n\t\tdiagnostics\n\t});\n\tconst models = [];\n\tconst modelEntries = [];\n\tconst modelNamespaceIds = /* @__PURE__ */ new Map();\n\tconst compositeTypes = [];\n\tconst collectScope = (bucketName, scopeModels, scopeCompositeTypes) => {\n\t\tconst resolvedNamespaceId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName,\n\t\t\ttargetId: input.target.targetId\n\t\t});\n\t\tfor (const model of scopeModels) {\n\t\t\tmodels.push(model);\n\t\t\tmodelEntries.push({\n\t\t\t\tmodel,\n\t\t\t\tnamespaceId: resolvedNamespaceId\n\t\t\t});\n\t\t\tif (resolvedNamespaceId !== void 0) modelNamespaceIds.set(model.name, resolvedNamespaceId);\n\t\t}\n\t\tfor (const compositeType of scopeCompositeTypes) compositeTypes.push(compositeType);\n\t};\n\tcollectScope(UNSPECIFIED_PSL_NAMESPACE_NAME, Object.values(topLevel.models), Object.values(topLevel.compositeTypes));\n\tfor (const namespace of namespaceSymbols) collectScope(namespace.name, Object.values(namespace.models), Object.values(namespace.compositeTypes));\n\tconst defaultNamespaceId = input.target.defaultNamespaceId;\n\tconst modelNames = new Set(models.map((model) => model.name));\n\tconst compositeTypeNames = new Set(compositeTypes.map((ct) => ct.name));\n\tconst composedExtensions = new Set(input.composedExtensions ?? []);\n\tconst composedExtensionContracts = input.composedExtensionContracts;\n\tconst defaultFunctionRegistry = input.controlMutationDefaults?.defaultFunctionRegistry ?? /* @__PURE__ */ new Map();\n\tconst generatorDescriptors = input.controlMutationDefaults?.generatorDescriptors ?? [];\n\tconst generatorDescriptorById = /* @__PURE__ */ new Map();\n\tfor (const descriptor of generatorDescriptors) generatorDescriptorById.set(descriptor.id, descriptor);\n\tconst isEnumBlock = (block) => block.keyword === \"enum\";\n\tconst legitimateBlockKeywords = composedBlockKeywords(input.authoringContributions);\n\tconst reportUnsupportedTopLevelBlock = (block) => {\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_TOP_LEVEL_BLOCK\",\n\t\t\tmessage: `Unsupported top-level block \"${block.keyword}\"`,\n\t\t\tsourceId,\n\t\t\tspan: keywordPslSpan(block.node.syntax, block.keyword, sourceFile)\n\t\t});\n\t};\n\tconst topLevelEnums = [];\n\tconst topLevelExtensionBlocks = {};\n\tfor (const [blockName, block] of Object.entries(topLevel.blocks)) {\n\t\tif (!legitimateBlockKeywords.has(block.keyword)) {\n\t\t\treportUnsupportedTopLevelBlock(block);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isEnumBlock(block)) topLevelEnums.push(block.block);\n\t\telse topLevelExtensionBlocks[blockName] = block;\n\t}\n\tfor (const namespace of namespaceSymbols) for (const block of Object.values(namespace.blocks)) {\n\t\tif (isEnumBlock(block)) {\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ENUM_NAMESPACE_NOT_SUPPORTED\",\n\t\t\t\tmessage: `enum \"${block.name}\" inside namespace \"${namespace.name}\" is not supported; declare enum at the top level`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: nodePslSpan(block.node.syntax, sourceFile)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!legitimateBlockKeywords.has(block.keyword)) reportUnsupportedTopLevelBlock(block);\n\t}\n\tconst enumResult = processEnumDeclarations({\n\t\tenumBlocks: topLevelEnums,\n\t\tsourceId,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tentityContext: {\n\t\t\tfamily: input.target.familyId,\n\t\t\ttarget: input.target.targetId,\n\t\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\t\tsourceId,\n\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\tdiagnostics.push(blindCast(d));\n\t\t\t} },\n\t\t\t...ifDefined(\"enumInferenceCodecs\", input.enumInferenceCodecs)\n\t\t},\n\t\tdiagnostics\n\t});\n\tconst allEnumTypeDescriptors = new Map(enumResult.enumTypeDescriptors);\n\tconst validEnumHandles = { ...enumResult.enumHandles };\n\tconst enumHandlesByName = new Map(Object.entries(validEnumHandles));\n\tconst entityTypesByDiscriminator = buildEntityTypesByDiscriminator(input.authoringContributions);\n\tconst modelAttributesByName = buildModelAttributesByName(input.authoringContributions);\n\tconst authoringWarnings = [];\n\tconst extensionEntityContext = {\n\t\tfamily: input.target.familyId,\n\t\ttarget: input.target.targetId,\n\t\t...ifDefined(\"enumInferenceCodecs\", input.enumInferenceCodecs),\n\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\tsourceId,\n\t\tdiagnostics: { push: (d) => {\n\t\t\tdiagnostics.push(blindCast(d));\n\t\t} },\n\t\twarnings: authoringWarnings\n\t};\n\tconst earlyModelMappingsByCoordinate = buildModelMappings(modelEntries, defaultNamespaceId, [], sourceId, sourceFile);\n\tconst composedPslBlockDescriptors = input.authoringContributions?.pslBlockDescriptors ?? {};\n\tconst namespaceExtensionEntities = /* @__PURE__ */ new Map();\n\tconst mergeNamespaceExtensionEntities = (nsId, entities) => {\n\t\tif (Object.keys(entities).length === 0) return;\n\t\tconst existing = namespaceExtensionEntities.get(nsId);\n\t\tif (existing === void 0) {\n\t\t\tnamespaceExtensionEntities.set(nsId, entities);\n\t\t\treturn;\n\t\t}\n\t\tconst merged = { ...existing };\n\t\tfor (const [entriesKey, slot] of Object.entries(entities)) {\n\t\t\tconst existingSlot = existing[entriesKey];\n\t\t\tif (existingSlot !== void 0) {\n\t\t\t\tfor (const name of Object.keys(slot)) if (Object.hasOwn(existingSlot, name)) diagnostics.push({\n\t\t\t\t\tcode: \"PSL_DUPLICATE_EXTENSION_ENTITY\",\n\t\t\t\t\tmessage: `entries slot \"${entriesKey}\" in namespace \"${nsId}\": entity \"${name}\" is declared more than once in the same namespace.`,\n\t\t\t\t\tsourceId\n\t\t\t\t});\n\t\t\t}\n\t\t\tmerged[entriesKey] = {\n\t\t\t\t...existingSlot,\n\t\t\t\t...slot\n\t\t\t};\n\t\t}\n\t\tnamespaceExtensionEntities.set(nsId, merged);\n\t};\n\tfor (const ns of namespaceSymbols) {\n\t\tif (ns.name === UNSPECIFIED_PSL_NAMESPACE_NAME) continue;\n\t\tconst nsId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName: ns.name,\n\t\t\ttargetId: input.target.targetId\n\t\t});\n\t\tif (nsId === void 0) continue;\n\t\tmergeNamespaceExtensionEntities(nsId, lowerExtensionBlocksForNamespace(ns.blocks, nsId, entityTypesByDiscriminator, extensionEntityContext, composedPslBlockDescriptors, (modelName) => earlyModelMappingsByCoordinate.get(modelCoordinateKey(nsId, modelName))?.tableName));\n\t}\n\tif (Object.keys(topLevelExtensionBlocks).length > 0) {\n\t\tconst topLevelNsId = resolveNamespaceIdForSqlTarget({\n\t\t\tbucketName: UNSPECIFIED_PSL_NAMESPACE_NAME,\n\t\t\ttargetId: input.target.targetId\n\t\t}) ?? defaultNamespaceId;\n\t\tmergeNamespaceExtensionEntities(topLevelNsId, lowerExtensionBlocksForNamespace(topLevelExtensionBlocks, topLevelNsId, entityTypesByDiscriminator, extensionEntityContext, composedPslBlockDescriptors, (modelName) => earlyModelMappingsByCoordinate.get(modelCoordinateKey(topLevelNsId, modelName))?.tableName));\n\t}\n\tconst defaultNsExtensionValueSets = namespaceExtensionEntities.get(defaultNamespaceId)?.[\"valueSet\"];\n\tif (defaultNsExtensionValueSets !== void 0) {\n\t\tfor (const name of Object.keys(defaultNsExtensionValueSets)) if (Object.hasOwn(validEnumHandles, name)) diagnostics.push({\n\t\t\tcode: \"PSL_VALUE_SET_NAME_COLLISION\",\n\t\t\tmessage: `namespace \"${defaultNamespaceId}\": name \"${name}\" is declared both as a domain enum and as an extension entity that derives a value-set; rename one`,\n\t\t\tsourceId\n\t\t});\n\t}\n\tconst isScalarRefinement = (symbol) => !symbol.isConstructor && symbol.baseType !== void 0 && input.scalarColumnDescriptors.has(symbol.baseType);\n\tconst allNamedTypes = Object.values(topLevel.namedTypes);\n\tconst namedTypeResult = resolveNamedTypeDeclarations({\n\t\tdeclarations: [...allNamedTypes.filter(isScalarRefinement), ...allNamedTypes.filter((symbol) => !isScalarRefinement(symbol))],\n\t\tsourceId,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tcomposedExtensions,\n\t\tfamilyId: input.target.familyId,\n\t\ttargetId: input.target.targetId,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tdiagnostics\n\t});\n\tconst storageTypes = { ...namedTypeResult.storageTypes };\n\tconst modelMappingsByCoordinate = buildModelMappings(modelEntries, defaultNamespaceId, diagnostics, sourceId, sourceFile);\n\tconst modelMappings = /* @__PURE__ */ new Map();\n\tfor (const mapping of modelMappingsByCoordinate.values()) modelMappings.set(mapping.model.name, mapping);\n\tconst modelNodes = [];\n\tconst fkRelationMetadata = [];\n\tconst backrelationCandidates = [];\n\tconst modelResolvedFields = /* @__PURE__ */ new Map();\n\tconst crossSpaceRelationsByModel = /* @__PURE__ */ new Map();\n\tconst modelAttributeEntitiesByNamespace = /* @__PURE__ */ new Map();\n\tfor (const { model, namespaceId } of modelEntries) {\n\t\tconst coordinate = modelCoordinateKey(namespaceId ?? defaultNamespaceId, model.name);\n\t\tconst mapping = modelMappingsByCoordinate.get(coordinate);\n\t\tif (!mapping) continue;\n\t\tconst result = buildModelNodeFromPsl({\n\t\t\tmodel,\n\t\t\tmapping,\n\t\t\tmodelMappings,\n\t\t\tmodelMappingsByCoordinate,\n\t\t\tmodelNames,\n\t\t\tcompositeTypeNames,\n\t\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\t\tnamedTypeDescriptors: namedTypeResult.namedTypeDescriptors,\n\t\t\tcomposedExtensions,\n\t\t\tcomposedExtensionContracts,\n\t\t\tfamilyId: input.target.familyId,\n\t\t\ttargetId: input.target.targetId,\n\t\t\tauthoringContributions: input.authoringContributions,\n\t\t\tdefaultFunctionRegistry,\n\t\t\tgeneratorDescriptorById,\n\t\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\t\tsourceId,\n\t\t\tsourceFile,\n\t\t\tsymbolTable: input.symbolTable,\n\t\t\tdiagnostics,\n\t\t\tmodelNamespaceIds,\n\t\t\t...enumHandlesByName.size > 0 ? { enumHandles: enumHandlesByName } : {},\n\t\t\tcapabilities: input.capabilities,\n\t\t\t...namespaceExtensionEntities.size > 0 ? { namespaceExtensionEntities } : {},\n\t\t\t...ifDefined(\"codecLookup\", input.codecLookup),\n\t\t\tmodelAttributesByName,\n\t\t\tdefaultNamespaceId\n\t\t});\n\t\tmodelNodes.push(namespaceId !== void 0 ? {\n\t\t\t...result.modelNode,\n\t\t\tnamespaceId\n\t\t} : result.modelNode);\n\t\tfkRelationMetadata.push(...result.fkRelationMetadata);\n\t\tbackrelationCandidates.push(...result.backrelationCandidates);\n\t\tmodelResolvedFields.set(coordinate, result.resolvedFields);\n\t\tif (result.crossSpaceRelations.length > 0) {\n\t\t\tconst existing = crossSpaceRelationsByModel.get(model.name) ?? [];\n\t\t\tcrossSpaceRelationsByModel.set(model.name, [...existing, ...result.crossSpaceRelations]);\n\t\t}\n\t\tif (Object.keys(result.modelAttributeEntities).length > 0) {\n\t\t\tconst nsKey = namespaceId ?? defaultNamespaceId;\n\t\t\tconst existingByAttribute = modelAttributeEntitiesByNamespace.get(nsKey) ?? {};\n\t\t\tfor (const [attribute, keyed] of Object.entries(result.modelAttributeEntities)) existingByAttribute[attribute] = {\n\t\t\t\t...existingByAttribute[attribute] ?? {},\n\t\t\t\t...keyed\n\t\t\t};\n\t\t\tmodelAttributeEntitiesByNamespace.set(nsKey, existingByAttribute);\n\t\t}\n\t}\n\tconst { modelRelations, fkRelationsByPair, fkRelationsByDeclaringModel } = indexFkRelations({ fkRelationMetadata });\n\tconst modelIdColumns = /* @__PURE__ */ new Map();\n\tconst modelUniqueColumnSets = /* @__PURE__ */ new Map();\n\tfor (const modelNode of modelNodes) {\n\t\tif (modelNode.id) modelIdColumns.set(modelNode.modelName, modelNode.id.columns);\n\t\tconst uniqueColumnSets = [];\n\t\tif (modelNode.id) uniqueColumnSets.push(modelNode.id.columns);\n\t\tfor (const unique of modelNode.uniques ?? []) uniqueColumnSets.push(unique.columns);\n\t\tmodelUniqueColumnSets.set(modelNode.modelName, uniqueColumnSets);\n\t}\n\tapplyBackrelationCandidates({\n\t\tbackrelationCandidates,\n\t\tfkRelationsByPair,\n\t\tfkRelationsByDeclaringModel,\n\t\tmodelIdColumns,\n\t\tmodelUniqueColumnSets,\n\t\tmodelRelations,\n\t\tdiagnostics,\n\t\tsourceId\n\t});\n\tfor (const [modelName, relations] of crossSpaceRelationsByModel) {\n\t\tconst existing = modelRelations.get(modelName);\n\t\tif (existing) existing.push(...relations);\n\t\telse modelRelations.set(modelName, [...relations]);\n\t}\n\tconst { discriminatorDeclarations, baseDeclarations } = collectPolymorphismDeclarations(models, sourceFile, sourceId, diagnostics);\n\tconst stiVariantNames = /* @__PURE__ */ new Set();\n\tfor (const variantName of baseDeclarations.keys()) if (!(modelMappings.get(variantName)?.model.attributes.some((attr) => attr.name === \"map\") ?? false)) stiVariantNames.add(variantName);\n\tconst { modelNodes: mtiLinkedModelNodes, syntheticPkFieldsByVariant } = materializeMtiVariantStorageLinks(modelNodes, baseDeclarations, stiVariantNames);\n\tconst { modelNodes: stiColumnModelNodes, stiBaseFieldsByBase } = materializeStiVariantStorageColumns(mtiLinkedModelNodes, baseDeclarations, stiVariantNames);\n\tconst valueObjects = buildValueObjects({\n\t\tcompositeTypes,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tnamedTypeDescriptors: namedTypeResult.namedTypeDescriptors,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tcomposedExtensions,\n\t\tfamilyId: input.target.familyId,\n\t\ttargetId: input.target.targetId,\n\t\tauthoringContributions: input.authoringContributions,\n\t\tdiagnostics,\n\t\tsourceId\n\t});\n\tif (diagnostics.length > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics\n\t});\n\tconst { createNamespace } = input;\n\tconst createNamespaceWithExtensions = (nsInput) => {\n\t\tconst entities = namespaceExtensionEntities.get(nsInput.id);\n\t\tconst attributeEntities = modelAttributeEntitiesByNamespace.get(nsInput.id);\n\t\tif (entities === void 0 && attributeEntities === void 0) return createNamespace(nsInput);\n\t\tif (attributeEntities !== void 0) {\n\t\t\tfor (const slot of Object.keys(attributeEntities)) if (Object.hasOwn(nsInput.entries, slot) || entities !== void 0 && slot in entities) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `entries slot \"${slot}\" in namespace \"${nsInput.id}\" is contributed by both a model attribute and a block/base entry kind. A model-attribute entries key must be unique across the namespace's entry kinds.`, { meta: {\n\t\t\t\tslot,\n\t\t\t\tnamespaceId: nsInput.id\n\t\t\t} });\n\t\t}\n\t\tconst mergedValueSet = {\n\t\t\t...nsInput.entries[\"valueSet\"],\n\t\t\t...entities?.[\"valueSet\"]\n\t\t};\n\t\tconst extended = {\n\t\t\t...nsInput,\n\t\t\tentries: {\n\t\t\t\t...nsInput.entries,\n\t\t\t\t...entities,\n\t\t\t\t...attributeEntities,\n\t\t\t\t...Object.keys(mergedValueSet).length > 0 ? { valueSet: mergedValueSet } : {}\n\t\t\t}\n\t\t};\n\t\treturn createNamespace(extended);\n\t};\n\tconst contract = buildSqlContractFromDefinition({\n\t\ttarget: input.target,\n\t\twarnings: authoringWarnings.length > 0 ? authoringWarnings : void 0,\n\t\t...ifDefined(\"extensions\", buildComposedExtensionPackRefs(input.target, [...composedExtensions].sort(compareStrings), input.composedExtensionPackRefs)),\n\t\t...Object.keys(storageTypes).length > 0 ? { storageTypes } : {},\n\t\t...Object.keys(validEnumHandles).length > 0 ? { enums: validEnumHandles } : {},\n\t\t...namespaceExtensionEntities.size > 0 ? { namespaces: [...namespaceExtensionEntities.keys()] } : {},\n\t\tcreateNamespace: createNamespaceWithExtensions,\n\t\tmodels: stiColumnModelNodes.map((model) => ({\n\t\t\t...model,\n\t\t\t...modelRelations.has(model.modelName) ? { relations: [...modelRelations.get(model.modelName) ?? []].sort((left, right) => compareStrings(left.fieldName, right.fieldName)) } : {}\n\t\t}))\n\t}, input.codecLookup);\n\tconst modelsForPatch = {};\n\tfor (const [namespaceId, namespaceSlice] of Object.entries(contract.domain.namespaces)) for (const [modelName, model] of Object.entries(namespaceSlice.models)) {\n\t\tconst coordinate = modelCoordinateKey(namespaceId, modelName);\n\t\tinvariant(!Object.hasOwn(modelsForPatch, coordinate), `symbol table guarantees coordinate uniqueness; duplicate model \"${namespaceId}.${modelName}\" reached interpretation`);\n\t\tmodelsForPatch[coordinate] = model;\n\t}\n\tlet patchedModels = patchModelDomainFields(modelsForPatch, modelResolvedFields);\n\tconst polyDiagnostics = [];\n\tpatchedModels = resolvePolymorphism(patchedModels, discriminatorDeclarations, baseDeclarations, modelNames, modelMappings, modelNamespaceIds, input.target.defaultNamespaceId, syntheticPkFieldsByVariant, stiBaseFieldsByBase, sourceId, polyDiagnostics);\n\tif (polyDiagnostics.length > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: polyDiagnostics\n\t});\n\tconst variantModelNames = new Set(baseDeclarations.keys());\n\tconst filteredRoots = Object.fromEntries(Object.entries(contract.roots).filter(([, crossReference]) => !variantModelNames.has(crossReference.model)));\n\treturn ok({\n\t\t...contract,\n\t\troots: filteredRoots,\n\t\tdomain: { namespaces: Object.fromEntries(Object.entries(contract.domain.namespaces).map(([namespaceId, namespaceSlice]) => [namespaceId, {\n\t\t\tmodels: Object.fromEntries(Object.entries(namespaceSlice.models).map(([modelName, model]) => [modelName, patchedModels[modelCoordinateKey(namespaceId, modelName)] ?? model])),\n\t\t\t...ifDefined(\"enum\", namespaceSlice.enum),\n\t\t\t...ifDefined(\"valueObjects\", namespaceSlice.valueObjects),\n\t\t\t...namespaceId === input.target.defaultNamespaceId && Object.keys(valueObjects).length > 0 ? { valueObjects } : {}\n\t\t}])) }\n\t});\n}\n//#endregion\nexport { interpretPslDocumentToSqlContract as t };\n\n//# sourceMappingURL=interpreter-5WgpL-ax.mjs.map"],"mappings":"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"}
|