@prisma/orm-family-sql 8.0.0-rc.19-dev.9 → 8.0.0-rc.19-dev.10

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.
Files changed (557) hide show
  1. package/dist/{aggregate-descriptor-registry-Dd7Uj7DJ.mjs → aggregate-descriptor-registry-ZrKjxwQe.mjs} +3 -3
  2. package/dist/aggregate-descriptor-registry-ZrKjxwQe.mjs.map +1 -0
  3. package/dist/{ast-BJs2669T.mjs → ast-D0miQ1B6.mjs} +3 -3
  4. package/dist/ast-D0miQ1B6.mjs.map +1 -0
  5. package/dist/{ast-BySjcUKx.d.mts → ast-De1p3DM9.d.mts} +5 -5
  6. package/dist/ast-De1p3DM9.d.mts.map +1 -0
  7. package/dist/{attribute-specs-BsaemIyu.d.mts → attribute-specs-CTEOxEJS.d.mts} +5 -5
  8. package/dist/attribute-specs-CTEOxEJS.d.mts.map +1 -0
  9. package/dist/{authored-check-naming-CIX7Bbyh.mjs → authored-check-naming-BHGJhjqn.mjs} +5 -5
  10. package/dist/authored-check-naming-BHGJhjqn.mjs.map +1 -0
  11. package/dist/{authored-check-naming-CK6T_Dfh.d.mts → authored-check-naming-D-o196ry.d.mts} +3 -3
  12. package/dist/authored-check-naming-D-o196ry.d.mts.map +1 -0
  13. package/dist/{authoring-entity-types-CgKIgWq5-Dxf_T0Ih.d.mts → authoring-entity-types-CgKIgWq5-CjIkEw1m.d.mts} +3 -3
  14. package/dist/authoring-entity-types-CgKIgWq5-CjIkEw1m.d.mts.map +1 -0
  15. package/dist/builder.d.mts +3 -3
  16. package/dist/builder__runtime.d.mts +11 -11
  17. package/dist/builder__runtime.d.mts.map +1 -1
  18. package/dist/builder__runtime.mjs +8 -8
  19. package/dist/builder__runtime.mjs.map +1 -1
  20. package/dist/builder__types.d.mts +5 -5
  21. package/dist/{canonicalization-hooks-dmXkOR4a.mjs → canonicalization-hooks-Ce1v_TDl.mjs} +2 -2
  22. package/dist/canonicalization-hooks-Ce1v_TDl.mjs.map +1 -0
  23. package/dist/{canonicalization-hooks-CYnW_sGn.d.mts → canonicalization-hooks-DyapQ0my.d.mts} +2 -2
  24. package/dist/canonicalization-hooks-DyapQ0my.d.mts.map +1 -0
  25. package/dist/{check-constraint-B7qGu6rc-CBVYAMwG.d.mts → check-constraint-B7qGu6rc-Bk2ezWXu.d.mts} +4 -4
  26. package/dist/check-constraint-B7qGu6rc-Bk2ezWXu.d.mts.map +1 -0
  27. package/dist/{codec-descriptor-registry-MG2bFxW_.mjs → codec-descriptor-registry-CiiFzMtb.mjs} +4 -4
  28. package/dist/codec-descriptor-registry-CiiFzMtb.mjs.map +1 -0
  29. package/dist/collection-methods-Bc8v7iVP.d.mts +1 -0
  30. package/dist/{collection-methods-D2UnCS0S-CRYoAOtB.d.mts → collection-methods-D2UnCS0S-CjdGDJ5y.d.mts} +5 -5
  31. package/dist/collection-methods-D2UnCS0S-CjdGDJ5y.d.mts.map +1 -0
  32. package/dist/{config-types-D8quwydu.d.mts → config-types-DGD0sYRS.d.mts} +5 -5
  33. package/dist/config-types-DGD0sYRS.d.mts.map +1 -0
  34. package/dist/{config-types-BbBY5_GQ.mjs → config-types-DkEeq_qq.mjs} +3 -3
  35. package/dist/config-types-DkEeq_qq.mjs.map +1 -0
  36. package/dist/{contract-builder-xFftVmD8.d.mts → contract-builder-BrpdASoV.d.mts} +12 -12
  37. package/dist/contract-builder-BrpdASoV.d.mts.map +1 -0
  38. package/dist/{contract-builder-D7cTmhfs.mjs → contract-builder-Dp7AOnHB.mjs} +8 -8
  39. package/dist/contract-builder-Dp7AOnHB.mjs.map +1 -0
  40. package/dist/contract-emitter.d.mts +1 -1
  41. package/dist/contract-emitter.d.mts.map +1 -1
  42. package/dist/contract-emitter.mjs +1 -1
  43. package/dist/{contract-errors-BCN6RVI5-5IHBF_lg.mjs → contract-errors-BCN6RVI5-DoH6b_KZ.mjs} +2 -2
  44. package/dist/contract-errors-BCN6RVI5-DoH6b_KZ.mjs.map +1 -0
  45. package/dist/contract-prisma7__provider.d.mts +3 -3
  46. package/dist/contract-prisma7__provider.d.mts.map +1 -1
  47. package/dist/contract-prisma7__provider.mjs +10 -10
  48. package/dist/contract-prisma7__provider.mjs.map +1 -1
  49. package/dist/contract-psl.d.mts +4 -4
  50. package/dist/contract-psl.d.mts.map +1 -1
  51. package/dist/contract-psl.mjs +1 -1
  52. package/dist/contract-psl__attribute-specs.d.mts +1 -1
  53. package/dist/contract-psl__attribute-specs.mjs +1 -1
  54. package/dist/contract-psl__default-table-name.d.mts +1 -1
  55. package/dist/contract-psl__default-table-name.d.mts.map +1 -1
  56. package/dist/contract-psl__default-table-name.mjs +1 -1
  57. package/dist/contract-psl__diagnostics.d.mts +1 -1
  58. package/dist/contract-psl__diagnostics.d.mts.map +1 -1
  59. package/dist/contract-psl__diagnostics.mjs +1 -1
  60. package/dist/contract-psl__map-names.d.mts +1 -1
  61. package/dist/contract-psl__map-names.d.mts.map +1 -1
  62. package/dist/contract-psl__map-names.mjs +2 -2
  63. package/dist/contract-psl__map-names.mjs.map +1 -1
  64. package/dist/contract-psl__provider.d.mts +3 -3
  65. package/dist/contract-psl__provider.d.mts.map +1 -1
  66. package/dist/contract-psl__provider.mjs +3 -3
  67. package/dist/contract-psl__provider.mjs.map +1 -1
  68. package/dist/contract-ts.d.mts +4 -4
  69. package/dist/contract-ts.mjs +4 -4
  70. package/dist/contract-ts__config-types.d.mts +1 -1
  71. package/dist/contract-ts__config-types.mjs +1 -1
  72. package/dist/contract-ts__contract-builder.d.mts +3 -3
  73. package/dist/contract-ts__contract-builder.mjs +3 -3
  74. package/dist/{contract-view-BMR5IWk4.mjs → contract-view-DqpzeYeE.mjs} +2 -2
  75. package/dist/contract-view-DqpzeYeE.mjs.map +1 -0
  76. package/dist/{contract-view-BgpEwVz0.d.mts → contract-view-DuB35or0.d.mts} +3 -3
  77. package/dist/contract-view-DuB35or0.d.mts.map +1 -0
  78. package/dist/contract.d.mts +29 -29
  79. package/dist/contract.mjs +22 -22
  80. package/dist/contract__authored-check-naming.d.mts +1 -1
  81. package/dist/contract__authored-check-naming.mjs +1 -1
  82. package/dist/contract__canonicalization-hooks.d.mts +1 -1
  83. package/dist/contract__canonicalization-hooks.mjs +1 -1
  84. package/dist/contract__contract-view.d.mts +1 -1
  85. package/dist/contract__contract-view.mjs +1 -1
  86. package/dist/contract__data-type-support.d.mts +1 -1
  87. package/dist/contract__data-type-support.mjs +1 -1
  88. package/dist/contract__data-type.d.mts +1 -1
  89. package/dist/contract__data-type.mjs +2 -2
  90. package/dist/contract__entity-handle-lowering-hook.d.mts +1 -1
  91. package/dist/contract__entity-handle-lowering-hook.mjs +1 -1
  92. package/dist/contract__entity-kinds.d.mts +1 -1
  93. package/dist/contract__entity-kinds.mjs +1 -1
  94. package/dist/contract__factories.d.mts +1 -1
  95. package/dist/contract__factories.mjs +1 -1
  96. package/dist/contract__foreign-key-materialization.d.mts +1 -1
  97. package/dist/contract__foreign-key-materialization.mjs +2 -2
  98. package/dist/contract__index-naming.d.mts +1 -1
  99. package/dist/contract__index-naming.mjs +1 -1
  100. package/dist/contract__index-type-validation.d.mts +1 -1
  101. package/dist/contract__index-type-validation.mjs +1 -1
  102. package/dist/contract__index-types.d.mts +2 -2
  103. package/dist/contract__index-types.mjs +1 -1
  104. package/dist/contract__referential-action-sql.d.mts +1 -1
  105. package/dist/contract__referential-action-sql.mjs +1 -1
  106. package/dist/contract__resolve-storage-table.d.mts +1 -1
  107. package/dist/contract__resolve-storage-table.mjs +1 -1
  108. package/dist/contract__sql-expression.d.mts +1 -1
  109. package/dist/contract__sql-expression.mjs +1 -1
  110. package/dist/contract__types.d.mts +11 -11
  111. package/dist/contract__types.mjs +3 -3
  112. package/dist/contract__validators.d.mts +1 -1
  113. package/dist/contract__validators.mjs +2 -2
  114. package/dist/contract__value-set-derivation-hook.d.mts +1 -1
  115. package/dist/contract__value-set-derivation-hook.mjs +1 -1
  116. package/dist/{control-BW6gbqvb.d.mts → control-0cDzwyu1.d.mts} +19 -19
  117. package/dist/control-0cDzwyu1.d.mts.map +1 -0
  118. package/dist/{control-adapter-El4czoUh.d.mts → control-adapter-BLLXAM9_.d.mts} +5 -5
  119. package/dist/control-adapter-BLLXAM9_.d.mts.map +1 -0
  120. package/dist/{control-adapter-Bn0uhplA-D0fhkvnJ.d.mts → control-adapter-Bn0uhplA-DYCjJlfN.d.mts} +10 -10
  121. package/dist/control-adapter-Bn0uhplA-DYCjJlfN.d.mts.map +1 -0
  122. package/dist/{control-adapter-DRlEXxsv.mjs → control-adapter-SlQkTEwT.mjs} +3 -3
  123. package/dist/control-adapter-SlQkTEwT.mjs.map +1 -0
  124. package/dist/{control-DnFJf5_F.mjs → control-ba0_VwlQ.mjs} +18 -18
  125. package/dist/control-ba0_VwlQ.mjs.map +1 -0
  126. package/dist/{data-type-BMnEHaW3.mjs → data-type-BFSpaotu.mjs} +3 -3
  127. package/dist/data-type-BFSpaotu.mjs.map +1 -0
  128. package/dist/{data-type-iatMyRs6.d.mts → data-type-DJIvKQHf.d.mts} +4 -4
  129. package/dist/data-type-DJIvKQHf.d.mts.map +1 -0
  130. package/dist/{data-type-support-juGV2d9c.mjs → data-type-support-BhSoPUFj.mjs} +2 -2
  131. package/dist/data-type-support-BhSoPUFj.mjs.map +1 -0
  132. package/dist/{data-type-support-a9BR-PbH.d.mts → data-type-support-CXpA0ex-.d.mts} +2 -2
  133. package/dist/data-type-support-CXpA0ex-.d.mts.map +1 -0
  134. package/dist/{db-BmrN9nRS-MT5cfCJy.d.mts → db-BmrN9nRS-BKdvl6Lv.d.mts} +14 -14
  135. package/dist/db-BmrN9nRS-BKdvl6Lv.d.mts.map +1 -0
  136. package/dist/{ddl-types-By5mT2_S--j4lTxme.d.mts → ddl-types-By5mT2_S-CEkSuvfl.d.mts} +5 -5
  137. package/dist/ddl-types-By5mT2_S-CEkSuvfl.d.mts.map +1 -0
  138. package/dist/{default-mapping-CAOONlKQ-v7GTIkjE.d.mts → default-mapping-CAOONlKQ-4m07nb-O.d.mts} +2 -2
  139. package/dist/default-mapping-CAOONlKQ-4m07nb-O.d.mts.map +1 -0
  140. package/dist/{default-table-name-BfFY8qYR-lHNcVmY5.mjs → default-table-name-BfFY8qYR-CWZFDX6v.mjs} +2 -2
  141. package/dist/default-table-name-BfFY8qYR-CWZFDX6v.mjs.map +1 -0
  142. package/dist/{derived-checks-D5HVRvqN-B37oe30Z.mjs → derived-checks-D5HVRvqN-BJx1gwPA.mjs} +16 -16
  143. package/dist/derived-checks-D5HVRvqN-BJx1gwPA.mjs.map +1 -0
  144. package/dist/{derived-checks-DpPkO6Dt-D6tfanWv.d.mts → derived-checks-DpPkO6Dt-BzFrQoFZ.d.mts} +4 -4
  145. package/dist/derived-checks-DpPkO6Dt-BzFrQoFZ.d.mts.map +1 -0
  146. package/dist/{diagnostics-IM48vCjC.mjs → diagnostics-RHJxoiIk.mjs} +4 -4
  147. package/dist/diagnostics-RHJxoiIk.mjs.map +1 -0
  148. package/dist/{diff-DZ82XaGR.mjs → diff-C1rFOhek.mjs} +2 -2
  149. package/dist/diff-C1rFOhek.mjs.map +1 -0
  150. package/dist/{diff-D2PJJkGv.d.mts → diff-DnJBqc_l.d.mts} +8 -8
  151. package/dist/diff-DnJBqc_l.d.mts.map +1 -0
  152. package/dist/{dist-D8RKUdwh.mjs → dist-C8Y-PPuE.mjs} +4 -4
  153. package/dist/dist-C8Y-PPuE.mjs.map +1 -0
  154. package/dist/{dist-C_q1_QR9.mjs → dist-CHz1hF8M.mjs} +2 -2
  155. package/dist/dist-CHz1hF8M.mjs.map +1 -0
  156. package/dist/{dist-x6jvtkKM.mjs → dist-CMDXybwm.mjs} +2 -2
  157. package/dist/dist-CMDXybwm.mjs.map +1 -0
  158. package/dist/{driver-types-DRsYeq3j-X_D6hNMZ.d.mts → driver-types-DRsYeq3j-BimeCnUk.d.mts} +2 -2
  159. package/dist/driver-types-DRsYeq3j-BimeCnUk.d.mts.map +1 -0
  160. package/dist/{entity-handle-lowering-hook-B3atrRKX.mjs → entity-handle-lowering-hook-BJZSlVVF.mjs} +2 -2
  161. package/dist/entity-handle-lowering-hook-BJZSlVVF.mjs.map +1 -0
  162. package/dist/{entity-handle-lowering-hook-93syhZ0p.d.mts → entity-handle-lowering-hook-BuvLtgFi.d.mts} +2 -2
  163. package/dist/entity-handle-lowering-hook-BuvLtgFi.d.mts.map +1 -0
  164. package/dist/{entity-kinds-OhCjfrIe.d.mts → entity-kinds-BPG2xCZV.d.mts} +7 -7
  165. package/dist/entity-kinds-BPG2xCZV.d.mts.map +1 -0
  166. package/dist/{entity-kinds-JR5SAm5h-ZkDejOUK.mjs → entity-kinds-JR5SAm5h-DOH6VUtL.mjs} +5 -5
  167. package/dist/entity-kinds-JR5SAm5h-DOH6VUtL.mjs.map +1 -0
  168. package/dist/{errors-B5g0xWro-mWH2C07F.mjs → errors-B5g0xWro-C8plbqga.mjs} +2 -2
  169. package/dist/errors-B5g0xWro-C8plbqga.mjs.map +1 -0
  170. package/dist/errors.d.mts +1 -1
  171. package/dist/errors.d.mts.map +1 -1
  172. package/dist/errors.mjs +1 -1
  173. package/dist/{exports-C3wGYtID-Bg6ThaBe.mjs → exports-C3wGYtID-D65DEUTC.mjs} +9 -9
  174. package/dist/exports-C3wGYtID-D65DEUTC.mjs.map +1 -0
  175. package/dist/{expression-6ld_ZQL6-CQghHqQ4.d.mts → expression-6ld_ZQL6-Brvfpjqy.d.mts} +9 -9
  176. package/dist/expression-6ld_ZQL6-Brvfpjqy.d.mts.map +1 -0
  177. package/dist/{expression-CieaNuRM-BpwVyjJL.d.mts → expression-CieaNuRM-CI_2zExe.d.mts} +4 -4
  178. package/dist/expression-CieaNuRM-CI_2zExe.d.mts.map +1 -0
  179. package/dist/{expression-impl-B-XNINxr-vYwKVFeP.mjs → expression-impl-B-XNINxr-BhN2sysZ.mjs} +4 -4
  180. package/dist/expression-impl-B-XNINxr-BhN2sysZ.mjs.map +1 -0
  181. package/dist/expression-kBtMHj-W.d.mts +2 -0
  182. package/dist/{factories-C4JbtO84.mjs → factories-Crobuxwn.mjs} +5 -5
  183. package/dist/factories-Crobuxwn.mjs.map +1 -0
  184. package/dist/{factories-CfHDga-q.d.mts → factories-DbNP9qfs.d.mts} +7 -7
  185. package/dist/factories-DbNP9qfs.d.mts.map +1 -0
  186. package/dist/family.d.mts +16 -16
  187. package/dist/family.mjs +16 -16
  188. package/dist/family__control-adapter.d.mts +2 -2
  189. package/dist/family__control-adapter.mjs +1 -1
  190. package/dist/family__control.d.mts +4 -4
  191. package/dist/family__control.mjs +3 -3
  192. package/dist/family__diff.d.mts +1 -1
  193. package/dist/family__diff.mjs +2 -2
  194. package/dist/family__ir.d.mts +1 -1
  195. package/dist/family__ir.mjs +2 -2
  196. package/dist/family__migration.d.mts +1 -1
  197. package/dist/family__migration.mjs +1 -1
  198. package/dist/family__pack.d.mts +1 -1
  199. package/dist/family__pack.mjs +2 -2
  200. package/dist/family__psl-build.d.mts +2 -2
  201. package/dist/family__psl-build.mjs +2 -2
  202. package/dist/family__psl-infer.d.mts +1 -1
  203. package/dist/family__psl-infer.mjs +1 -1
  204. package/dist/family__runtime.d.mts +2 -2
  205. package/dist/family__runtime.mjs +2 -2
  206. package/dist/family__verify.d.mts +1 -1
  207. package/dist/family__verify.mjs +1 -1
  208. package/dist/{foreign-key-materialization-CgW18KP-.d.mts → foreign-key-materialization-48P2V8on.d.mts} +8 -8
  209. package/dist/foreign-key-materialization-48P2V8on.d.mts.map +1 -0
  210. package/dist/{foreign-key-materialization-BPQqd0qF.mjs → foreign-key-materialization-BM59w_Xg.mjs} +7 -7
  211. package/dist/foreign-key-materialization-BM59w_Xg.mjs.map +1 -0
  212. package/dist/{foreign-key-qkDFfG8t-Fyrzd0VI.d.mts → foreign-key-qkDFfG8t-TaK_GYWR.d.mts} +3 -3
  213. package/dist/foreign-key-qkDFfG8t-TaK_GYWR.d.mts.map +1 -0
  214. package/dist/{functions-DTInIMZT.d.mts → functions-CRvEdiQM.d.mts} +7 -7
  215. package/dist/functions-CRvEdiQM.d.mts.map +1 -0
  216. package/dist/{functions-0YWByawj.mjs → functions-CsOoN7I3.mjs} +4 -4
  217. package/dist/functions-CsOoN7I3.mjs.map +1 -0
  218. package/dist/{generator-functions-D_qdqBV--BoeJwWsz.mjs → generator-functions-D_qdqBV--B2Q0WOf5.mjs} +4 -4
  219. package/dist/generator-functions-D_qdqBV--B2Q0WOf5.mjs.map +1 -0
  220. package/dist/{index-ffCr9ySU.d.mts → index-CUG8HKk_.d.mts} +4 -4
  221. package/dist/index-CUG8HKk_.d.mts.map +1 -0
  222. package/dist/{index-BAxGJxON.d.mts → index-ClfuhAEt.d.mts} +23 -23
  223. package/dist/index-ClfuhAEt.d.mts.map +1 -0
  224. package/dist/{index-equivalence-DswCiq5l-D5VK0qTy.mjs → index-equivalence-DswCiq5l-CGsyPP9B.mjs} +3 -3
  225. package/dist/index-equivalence-DswCiq5l-CGsyPP9B.mjs.map +1 -0
  226. package/dist/{index-naming-BOcJT1B3-18gQUduD.mjs → index-naming-BOcJT1B3-mG8Fd6KN.mjs} +5 -5
  227. package/dist/index-naming-BOcJT1B3-mG8Fd6KN.mjs.map +1 -0
  228. package/dist/{index-naming-C7pme5Pj.d.mts → index-naming-Cs6wwia3.d.mts} +4 -4
  229. package/dist/index-naming-Cs6wwia3.d.mts.map +1 -0
  230. package/dist/{index-reference-4wsdeB7v-DiTLLldN.d.mts → index-reference-4wsdeB7v-BTOzTNIT.d.mts} +5 -5
  231. package/dist/index-reference-4wsdeB7v-BTOzTNIT.d.mts.map +1 -0
  232. package/dist/{index-reference-DR62gjQS.mjs → index-reference-BQSrkRfT.mjs} +2 -2
  233. package/dist/index-reference-BQSrkRfT.mjs.map +1 -0
  234. package/dist/index-reference-DFUfnGcB.d.mts +1 -0
  235. package/dist/{index-type-validation-Bcme_Ust.mjs → index-type-validation-DJEMmmw0.mjs} +3 -3
  236. package/dist/index-type-validation-DJEMmmw0.mjs.map +1 -0
  237. package/dist/{index-type-validation-Ibtp3RKo.d.mts → index-type-validation-fGGwAHWc.d.mts} +5 -5
  238. package/dist/index-type-validation-fGGwAHWc.d.mts.map +1 -0
  239. package/dist/{index-types-H1O43iYT-ONvDbszL.d.mts → index-types-H1O43iYT-BD0VwPqV.d.mts} +2 -2
  240. package/dist/index-types-H1O43iYT-BD0VwPqV.d.mts.map +1 -0
  241. package/dist/{index-types-pC_5vADQ-TTUXAfmL.mjs → index-types-pC_5vADQ-BOOBi14R.mjs} +3 -3
  242. package/dist/index-types-pC_5vADQ-BOOBi14R.mjs.map +1 -0
  243. package/dist/index-types-snhtt_Fo.d.mts +1 -0
  244. package/dist/{interpreter-BDpym-rc-BZVFp5GU.mjs → interpreter-BDpym-rc-C3-vTcej.mjs} +12 -12
  245. package/dist/interpreter-BDpym-rc-C3-vTcej.mjs.map +1 -0
  246. package/dist/{ir-I-xciGUH.mjs → ir-DzsUDO8e.mjs} +2 -2
  247. package/dist/ir-DzsUDO8e.mjs.map +1 -0
  248. package/dist/{ir-BjC1VOuq.d.mts → ir-VGuTeCGp.d.mts} +4 -4
  249. package/dist/ir-VGuTeCGp.d.mts.map +1 -0
  250. package/dist/middleware-D5UhS_mW.d.mts +1 -0
  251. package/dist/{middleware-DHkW6pRr-CFiQojK4.d.mts → middleware-DHkW6pRr-B67Dujfd.d.mts} +3 -3
  252. package/dist/middleware-DHkW6pRr-B67Dujfd.d.mts.map +1 -0
  253. package/dist/{middleware-yBAfiVWn-CzNCthJT.mjs → middleware-yBAfiVWn-DZO0vCRQ.mjs} +3 -3
  254. package/dist/middleware-yBAfiVWn-DZO0vCRQ.mjs.map +1 -0
  255. package/dist/{migration-Dy_4Wmiy.mjs → migration-BJQjkqFz.mjs} +2 -2
  256. package/dist/migration-BJQjkqFz.mjs.map +1 -0
  257. package/dist/{migration-DWLbMM34.d.mts → migration-CXZQR3C_.d.mts} +5 -5
  258. package/dist/migration-CXZQR3C_.d.mts.map +1 -0
  259. package/dist/{naming-BcD36g9T-DFyaudUa.d.mts → naming-BcD36g9T-Mfe_xGGL.d.mts} +2 -2
  260. package/dist/naming-BcD36g9T-Mfe_xGGL.d.mts.map +1 -0
  261. package/dist/{naming-bM5qm5PY-DdginUhA.mjs → naming-bM5qm5PY-jOg3JFMb.mjs} +2 -2
  262. package/dist/naming-bM5qm5PY-jOg3JFMb.mjs.map +1 -0
  263. package/dist/{opaque-sql-Dset3kln-BzzXoO94.mjs → opaque-sql-Dset3kln-CtsPDTXn.mjs} +2 -2
  264. package/dist/opaque-sql-Dset3kln-CtsPDTXn.mjs.map +1 -0
  265. package/dist/operations.d.mts +1 -1
  266. package/dist/operations.mjs +1 -1
  267. package/dist/orm-client.d.mts +21 -21
  268. package/dist/orm-client.mjs +11 -11
  269. package/dist/{pack-CdaZMfI_.d.mts → pack-CGcsowo7.d.mts} +5 -5
  270. package/dist/pack-CGcsowo7.d.mts.map +1 -0
  271. package/dist/{pack-BifOs83a.mjs → pack-vaUY9-7E.mjs} +5 -5
  272. package/dist/pack-vaUY9-7E.mjs.map +1 -0
  273. package/dist/{plan-Cr4azjnG-lIrzIrmu.d.mts → plan-Cr4azjnG-B5MWRcqp.d.mts} +5 -5
  274. package/dist/plan-Cr4azjnG-B5MWRcqp.d.mts.map +1 -0
  275. package/dist/{plan-Dh0LbYIv-Crx5-ThG.mjs → plan-Dh0LbYIv-ubBSdUgl.mjs} +2 -2
  276. package/dist/plan-Dh0LbYIv-ubBSdUgl.mjs.map +1 -0
  277. package/dist/plan-cqtZBj5m.d.mts +2 -0
  278. package/dist/{psl-attribute-parsing-BCsFWsSp-LaNsbcrw.mjs → psl-attribute-parsing-BCsFWsSp-BJ-wGlY6.mjs} +2 -2
  279. package/dist/psl-attribute-parsing-BCsFWsSp-BJ-wGlY6.mjs.map +1 -0
  280. package/dist/{psl-build-fwoI6rBO.mjs → psl-build-DFBG6vhz.mjs} +6 -6
  281. package/dist/psl-build-DFBG6vhz.mjs.map +1 -0
  282. package/dist/{psl-build-BYXXz2XD.d.mts → psl-build-RelubU2E.d.mts} +6 -6
  283. package/dist/psl-build-RelubU2E.d.mts.map +1 -0
  284. package/dist/{psl-column-resolution-ChZqioOc-DcjGSXDp.d.mts → psl-column-resolution-ChZqioOc-DkKTu21I.d.mts} +3 -3
  285. package/dist/psl-column-resolution-ChZqioOc-DkKTu21I.d.mts.map +1 -0
  286. package/dist/{psl-field-resolution-C5KQ7kzP-DH8oSBIL.mjs → psl-field-resolution-C5KQ7kzP-B0NwuRWV.mjs} +7 -7
  287. package/dist/psl-field-resolution-C5KQ7kzP-B0NwuRWV.mjs.map +1 -0
  288. package/dist/{psl-infer-CaEnF_x3.mjs → psl-infer--g4i84Go.mjs} +5 -5
  289. package/dist/psl-infer--g4i84Go.mjs.map +1 -0
  290. package/dist/{psl-infer-CpTRaF5I.d.mts → psl-infer-DzoxPZGd.d.mts} +5 -5
  291. package/dist/psl-infer-DzoxPZGd.d.mts.map +1 -0
  292. package/dist/{psl-names-C3cwe0rg-CsuHOV7E.mjs → psl-names-C3cwe0rg-D1CTmC3a.mjs} +2 -2
  293. package/dist/psl-names-C3cwe0rg-D1CTmC3a.mjs.map +1 -0
  294. package/dist/{query-lane-context-BCEoKy0_-DQOOliDn.d.mts → query-lane-context-BCEoKy0_-CBzNngG3.d.mts} +8 -8
  295. package/dist/query-lane-context-BCEoKy0_-CBzNngG3.d.mts.map +1 -0
  296. package/dist/query-lane-context-DElm2VXX.d.mts +1 -0
  297. package/dist/{referential-action-sql-Cw1Q0YSd.d.mts → referential-action-sql-B2vKoUK6.d.mts} +3 -3
  298. package/dist/referential-action-sql-B2vKoUK6.d.mts.map +1 -0
  299. package/dist/{referential-action-sql-DSqkrySN.mjs → referential-action-sql-BLzCtTi8.mjs} +2 -2
  300. package/dist/referential-action-sql-BLzCtTi8.mjs.map +1 -0
  301. package/dist/relational-core.d.mts +13 -13
  302. package/dist/relational-core.mjs +7 -7
  303. package/dist/relational-core__aggregate-descriptor-registry.d.mts +2 -2
  304. package/dist/relational-core__aggregate-descriptor-registry.d.mts.map +1 -1
  305. package/dist/relational-core__aggregate-descriptor-registry.mjs +1 -1
  306. package/dist/relational-core__ast.d.mts +4 -4
  307. package/dist/relational-core__ast.mjs +4 -4
  308. package/dist/relational-core__codec-descriptor-registry.d.mts +5 -5
  309. package/dist/relational-core__codec-descriptor-registry.d.mts.map +1 -1
  310. package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
  311. package/dist/relational-core__collection-methods.d.mts +2 -2
  312. package/dist/relational-core__contract-free.d.mts +6 -6
  313. package/dist/relational-core__contract-free.d.mts.map +1 -1
  314. package/dist/relational-core__contract-free.mjs +4 -4
  315. package/dist/relational-core__contract-free.mjs.map +1 -1
  316. package/dist/relational-core__expression.d.mts +3 -3
  317. package/dist/relational-core__expression.mjs +1 -1
  318. package/dist/relational-core__functions.d.mts +1 -1
  319. package/dist/relational-core__functions.mjs +1 -1
  320. package/dist/relational-core__index-reference.d.mts +2 -2
  321. package/dist/relational-core__index-reference.mjs +1 -1
  322. package/dist/relational-core__middleware.d.mts +2 -2
  323. package/dist/relational-core__middleware.mjs +1 -1
  324. package/dist/relational-core__plan.d.mts +3 -3
  325. package/dist/relational-core__plan.mjs +1 -1
  326. package/dist/relational-core__query-lane-context.d.mts +2 -2
  327. package/dist/relational-core__types.d.mts +2 -2
  328. package/dist/{resolve-storage-table-DZsfnzeW.mjs → resolve-storage-table-BHLQsOza.mjs} +3 -3
  329. package/dist/resolve-storage-table-BHLQsOza.mjs.map +1 -0
  330. package/dist/{resolve-storage-table-CxmU_MPu.d.mts → resolve-storage-table-DCqtmnSU.d.mts} +4 -4
  331. package/dist/resolve-storage-table-DCqtmnSU.d.mts.map +1 -0
  332. package/dist/{runtime-Z3nD7ix1.mjs → runtime-6tH1yOxK.mjs} +2 -2
  333. package/dist/runtime-6tH1yOxK.mjs.map +1 -0
  334. package/dist/{runtime-Bmndf-fm.d.mts → runtime-CF6rAlE5.d.mts} +3 -3
  335. package/dist/runtime-CF6rAlE5.d.mts.map +1 -0
  336. package/dist/runtime.d.mts +4 -4
  337. package/dist/runtime.mjs +1 -1
  338. package/dist/runtime__internal__prepared-query.d.mts +1 -1
  339. package/dist/runtime__internal__prepared-query.mjs +1 -1
  340. package/dist/{schema-differ-DmP74bB8-0ZupRJKb.d.mts → schema-differ-DmP74bB8-Be7PDHNx.d.mts} +6 -6
  341. package/dist/schema-differ-DmP74bB8-Be7PDHNx.d.mts.map +1 -0
  342. package/dist/schema-ir.d.mts +1 -1
  343. package/dist/schema-ir.mjs +1 -1
  344. package/dist/schema-ir__naming.d.mts +1 -1
  345. package/dist/schema-ir__naming.mjs +1 -1
  346. package/dist/schema-ir__types.d.mts +2 -2
  347. package/dist/schema-ir__types.mjs +1 -1
  348. package/dist/{schema-verify-C3wbdviw-BifQBCpu.mjs → schema-verify-C3wbdviw-DMjIubOr.mjs} +5 -5
  349. package/dist/schema-verify-C3wbdviw-DMjIubOr.mjs.map +1 -0
  350. package/dist/{serialized-index-CrgG8ct1-DDfHKUEK.d.mts → serialized-index-CrgG8ct1-DKVJ7TDX.d.mts} +4 -4
  351. package/dist/serialized-index-CrgG8ct1-DKVJ7TDX.d.mts.map +1 -0
  352. package/dist/{serialized-index-DjCCnXB1-C_YccpTL.mjs → serialized-index-DjCCnXB1-DMA7BtO2.mjs} +4 -4
  353. package/dist/serialized-index-DjCCnXB1-DMA7BtO2.mjs.map +1 -0
  354. package/dist/{sql-contract-serializer-sMY3prTx-BkFoHhST.mjs → sql-contract-serializer-sMY3prTx-D2BfrNxs.mjs} +7 -7
  355. package/dist/sql-contract-serializer-sMY3prTx-D2BfrNxs.mjs.map +1 -0
  356. package/dist/{sql-data-type-D7M-YTTY-C9oWGZ3z.mjs → sql-data-type-D7M-YTTY-D2vRqDxn.mjs} +3 -3
  357. package/dist/sql-data-type-D7M-YTTY-D2vRqDxn.mjs.map +1 -0
  358. package/dist/{sql-execution-plan-3uxYjHyu-C0Z4_RSY.d.mts → sql-execution-plan-3uxYjHyu-Cl0eB5av.d.mts} +3 -3
  359. package/dist/sql-execution-plan-3uxYjHyu-Cl0eB5av.d.mts.map +1 -0
  360. package/dist/{sql-expression-BAtH-2UU.d.mts → sql-expression-B4BrhGPi.d.mts} +2 -2
  361. package/dist/sql-expression-B4BrhGPi.d.mts.map +1 -0
  362. package/dist/{sql-expression-BJCuy-WI.mjs → sql-expression-CKgKznXS.mjs} +3 -3
  363. package/dist/sql-expression-CKgKznXS.mjs.map +1 -0
  364. package/dist/{sql-index-ByAAE7K8-BpbPBWPD.d.mts → sql-index-ByAAE7K8-Dqtn_vUL.d.mts} +4 -4
  365. package/dist/sql-index-ByAAE7K8-Dqtn_vUL.d.mts.map +1 -0
  366. package/dist/{sql-node-kEz6YFZo-v2F7delx.d.mts → sql-node-kEz6YFZo-1ogT6Cxt.d.mts} +2 -2
  367. package/dist/sql-node-kEz6YFZo-1ogT6Cxt.d.mts.map +1 -0
  368. package/dist/{sql-storage-DeCAh5Hi-nJQUIgfL.d.mts → sql-storage-DeCAh5Hi-CEM-m8cs.d.mts} +5 -5
  369. package/dist/sql-storage-DeCAh5Hi-CEM-m8cs.d.mts.map +1 -0
  370. package/dist/{storage-table-Bf1ZjnxO-NvkG2pgq.d.mts → storage-table-Bf1ZjnxO-pUj6pyP0.d.mts} +7 -7
  371. package/dist/storage-table-Bf1ZjnxO-pUj6pyP0.d.mts.map +1 -0
  372. package/dist/{storage-table-DDvN83mw-CbCFr5wm.mjs → storage-table-DDvN83mw-DkbBFmK9.mjs} +4 -4
  373. package/dist/storage-table-DDvN83mw-DkbBFmK9.mjs.map +1 -0
  374. package/dist/{storage-value-set-BGlj5Uus-CvZD--GG.d.mts → storage-value-set-BGlj5Uus-ny2k-0PA.d.mts} +3 -3
  375. package/dist/storage-value-set-BGlj5Uus-ny2k-0PA.d.mts.map +1 -0
  376. package/dist/{transaction-state-BfXhs7D7-3k10jZ8I.mjs → transaction-state-BfXhs7D7-DhmbySW9.mjs} +2 -2
  377. package/dist/transaction-state-BfXhs7D7-DhmbySW9.mjs.map +1 -0
  378. package/dist/{transaction-state-DR3nKTmH-D6VdY7YX.d.mts → transaction-state-DR3nKTmH-Dcu5lbwd.d.mts} +11 -11
  379. package/dist/transaction-state-DR3nKTmH-Dcu5lbwd.d.mts.map +1 -0
  380. package/dist/{types-CRbj_WQf.d.mts → types-B0J6ZASy.d.mts} +12 -12
  381. package/dist/types-B0J6ZASy.d.mts.map +1 -0
  382. package/dist/{types-C7610W2l.mjs → types-CTdSkl0s.mjs} +3 -3
  383. package/dist/types-CTdSkl0s.mjs.map +1 -0
  384. package/dist/{types-Cq6ImLAB-BqOfLAYG.d.mts → types-Cq6ImLAB-BRpWMRJe.d.mts} +10 -10
  385. package/dist/types-Cq6ImLAB-BRpWMRJe.d.mts.map +1 -0
  386. package/dist/{types-CuCxAQat-BBGUHEku.d.mts → types-CuCxAQat-Dz8P4xyt.d.mts} +3 -3
  387. package/dist/types-CuCxAQat-Dz8P4xyt.d.mts.map +1 -0
  388. package/dist/types-CwP7Hgmt.d.mts +1 -0
  389. package/dist/{types-DfKvtJwS-tndgHh53.d.mts → types-DfKvtJwS-CrpWTGBJ.d.mts} +11 -11
  390. package/dist/types-DfKvtJwS-CrpWTGBJ.d.mts.map +1 -0
  391. package/dist/{types-DoyiTsjg-DDTmYyNY.mjs → types-DoyiTsjg-2YMhMJDA.mjs} +3 -3
  392. package/dist/types-DoyiTsjg-2YMhMJDA.mjs.map +1 -0
  393. package/dist/{types-DriMIMNQ-BBacSgaI.d.mts → types-DriMIMNQ-Cs5YW-O-.d.mts} +3 -3
  394. package/dist/types-DriMIMNQ-Cs5YW-O-.d.mts.map +1 -0
  395. package/dist/{types-NTQsD2MS-DAP2yVDn.mjs → types-NTQsD2MS-xcLtvKO9.mjs} +2 -2
  396. package/dist/types-NTQsD2MS-xcLtvKO9.mjs.map +1 -0
  397. package/dist/{types-TXO7x1BA-DuW4v0rw.d.mts → types-TXO7x1BA-B8fGzOYJ.d.mts} +12 -12
  398. package/dist/types-TXO7x1BA-B8fGzOYJ.d.mts.map +1 -0
  399. package/dist/types-ljUNyiWe.d.mts +1 -0
  400. package/dist/{unique-constraint-M5TlQnJQ-BiIHJ85k.d.mts → unique-constraint-M5TlQnJQ-qX-maNUV.d.mts} +3 -3
  401. package/dist/unique-constraint-M5TlQnJQ-qX-maNUV.d.mts.map +1 -0
  402. package/dist/{util-BBgcP3gI-XJBkxo1K.mjs → util-BBgcP3gI-CpL-0VuC.mjs} +2 -2
  403. package/dist/util-BBgcP3gI-CpL-0VuC.mjs.map +1 -0
  404. package/dist/{validators-xXKEHvnw.mjs → validators-BwA7ttZM.mjs} +7 -7
  405. package/dist/validators-BwA7ttZM.mjs.map +1 -0
  406. package/dist/{validators-BDuMio1F.d.mts → validators-FJs8HvFr.d.mts} +6 -6
  407. package/dist/validators-FJs8HvFr.d.mts.map +1 -0
  408. package/dist/{value-set-derivation-hook-BhgGVtw0.d.mts → value-set-derivation-hook-3E437jPU.d.mts} +3 -3
  409. package/dist/value-set-derivation-hook-3E437jPU.d.mts.map +1 -0
  410. package/dist/{value-set-derivation-hook-Di9JZ0X7.mjs → value-set-derivation-hook-HVaxhALD.mjs} +2 -2
  411. package/dist/value-set-derivation-hook-HVaxhALD.mjs.map +1 -0
  412. package/dist/{verify-BVk5bjdH-dq5M4iIh.mjs → verify-BVk5bjdH-DhKm6hB3.mjs} +3 -3
  413. package/dist/verify-BVk5bjdH-DhKm6hB3.mjs.map +1 -0
  414. package/dist/{verify-zDRnw0Rn.d.mts → verify-DHXbuZPB.d.mts} +2 -2
  415. package/dist/verify-DHXbuZPB.d.mts.map +1 -0
  416. package/package.json +18 -18
  417. package/dist/aggregate-descriptor-registry-Dd7Uj7DJ.mjs.map +0 -1
  418. package/dist/ast-BJs2669T.mjs.map +0 -1
  419. package/dist/ast-BySjcUKx.d.mts.map +0 -1
  420. package/dist/attribute-specs-BsaemIyu.d.mts.map +0 -1
  421. package/dist/authored-check-naming-CIX7Bbyh.mjs.map +0 -1
  422. package/dist/authored-check-naming-CK6T_Dfh.d.mts.map +0 -1
  423. package/dist/authoring-entity-types-CgKIgWq5-Dxf_T0Ih.d.mts.map +0 -1
  424. package/dist/canonicalization-hooks-CYnW_sGn.d.mts.map +0 -1
  425. package/dist/canonicalization-hooks-dmXkOR4a.mjs.map +0 -1
  426. package/dist/check-constraint-B7qGu6rc-CBVYAMwG.d.mts.map +0 -1
  427. package/dist/codec-descriptor-registry-MG2bFxW_.mjs.map +0 -1
  428. package/dist/collection-methods-BTknGdHI.d.mts +0 -1
  429. package/dist/collection-methods-D2UnCS0S-CRYoAOtB.d.mts.map +0 -1
  430. package/dist/config-types-BbBY5_GQ.mjs.map +0 -1
  431. package/dist/config-types-D8quwydu.d.mts.map +0 -1
  432. package/dist/contract-builder-D7cTmhfs.mjs.map +0 -1
  433. package/dist/contract-builder-xFftVmD8.d.mts.map +0 -1
  434. package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs.map +0 -1
  435. package/dist/contract-view-BMR5IWk4.mjs.map +0 -1
  436. package/dist/contract-view-BgpEwVz0.d.mts.map +0 -1
  437. package/dist/control-BW6gbqvb.d.mts.map +0 -1
  438. package/dist/control-DnFJf5_F.mjs.map +0 -1
  439. package/dist/control-adapter-Bn0uhplA-D0fhkvnJ.d.mts.map +0 -1
  440. package/dist/control-adapter-DRlEXxsv.mjs.map +0 -1
  441. package/dist/control-adapter-El4czoUh.d.mts.map +0 -1
  442. package/dist/data-type-BMnEHaW3.mjs.map +0 -1
  443. package/dist/data-type-iatMyRs6.d.mts.map +0 -1
  444. package/dist/data-type-support-a9BR-PbH.d.mts.map +0 -1
  445. package/dist/data-type-support-juGV2d9c.mjs.map +0 -1
  446. package/dist/db-BmrN9nRS-MT5cfCJy.d.mts.map +0 -1
  447. package/dist/ddl-types-By5mT2_S--j4lTxme.d.mts.map +0 -1
  448. package/dist/default-mapping-CAOONlKQ-v7GTIkjE.d.mts.map +0 -1
  449. package/dist/default-table-name-BfFY8qYR-lHNcVmY5.mjs.map +0 -1
  450. package/dist/derived-checks-D5HVRvqN-B37oe30Z.mjs.map +0 -1
  451. package/dist/derived-checks-DpPkO6Dt-D6tfanWv.d.mts.map +0 -1
  452. package/dist/diagnostics-IM48vCjC.mjs.map +0 -1
  453. package/dist/diff-D2PJJkGv.d.mts.map +0 -1
  454. package/dist/diff-DZ82XaGR.mjs.map +0 -1
  455. package/dist/dist-C_q1_QR9.mjs.map +0 -1
  456. package/dist/dist-D8RKUdwh.mjs.map +0 -1
  457. package/dist/dist-x6jvtkKM.mjs.map +0 -1
  458. package/dist/driver-types-DRsYeq3j-X_D6hNMZ.d.mts.map +0 -1
  459. package/dist/entity-handle-lowering-hook-93syhZ0p.d.mts.map +0 -1
  460. package/dist/entity-handle-lowering-hook-B3atrRKX.mjs.map +0 -1
  461. package/dist/entity-kinds-JR5SAm5h-ZkDejOUK.mjs.map +0 -1
  462. package/dist/entity-kinds-OhCjfrIe.d.mts.map +0 -1
  463. package/dist/errors-B5g0xWro-mWH2C07F.mjs.map +0 -1
  464. package/dist/exports-C3wGYtID-Bg6ThaBe.mjs.map +0 -1
  465. package/dist/expression-6ld_ZQL6-CQghHqQ4.d.mts.map +0 -1
  466. package/dist/expression-BLiObOS8.d.mts +0 -2
  467. package/dist/expression-CieaNuRM-BpwVyjJL.d.mts.map +0 -1
  468. package/dist/expression-impl-B-XNINxr-vYwKVFeP.mjs.map +0 -1
  469. package/dist/factories-C4JbtO84.mjs.map +0 -1
  470. package/dist/factories-CfHDga-q.d.mts.map +0 -1
  471. package/dist/foreign-key-materialization-BPQqd0qF.mjs.map +0 -1
  472. package/dist/foreign-key-materialization-CgW18KP-.d.mts.map +0 -1
  473. package/dist/foreign-key-qkDFfG8t-Fyrzd0VI.d.mts.map +0 -1
  474. package/dist/functions-0YWByawj.mjs.map +0 -1
  475. package/dist/functions-DTInIMZT.d.mts.map +0 -1
  476. package/dist/generator-functions-D_qdqBV--BoeJwWsz.mjs.map +0 -1
  477. package/dist/index-BAxGJxON.d.mts.map +0 -1
  478. package/dist/index-equivalence-DswCiq5l-D5VK0qTy.mjs.map +0 -1
  479. package/dist/index-ffCr9ySU.d.mts.map +0 -1
  480. package/dist/index-naming-BOcJT1B3-18gQUduD.mjs.map +0 -1
  481. package/dist/index-naming-C7pme5Pj.d.mts.map +0 -1
  482. package/dist/index-reference-4wsdeB7v-DiTLLldN.d.mts.map +0 -1
  483. package/dist/index-reference-DR62gjQS.mjs.map +0 -1
  484. package/dist/index-reference-Da9mdOjD.d.mts +0 -1
  485. package/dist/index-type-validation-Bcme_Ust.mjs.map +0 -1
  486. package/dist/index-type-validation-Ibtp3RKo.d.mts.map +0 -1
  487. package/dist/index-types-ByX8MLso.d.mts +0 -1
  488. package/dist/index-types-H1O43iYT-ONvDbszL.d.mts.map +0 -1
  489. package/dist/index-types-pC_5vADQ-TTUXAfmL.mjs.map +0 -1
  490. package/dist/interpreter-BDpym-rc-BZVFp5GU.mjs.map +0 -1
  491. package/dist/ir-BjC1VOuq.d.mts.map +0 -1
  492. package/dist/ir-I-xciGUH.mjs.map +0 -1
  493. package/dist/middleware-DHkW6pRr-CFiQojK4.d.mts.map +0 -1
  494. package/dist/middleware-GO31SJSv.d.mts +0 -1
  495. package/dist/middleware-yBAfiVWn-CzNCthJT.mjs.map +0 -1
  496. package/dist/migration-DWLbMM34.d.mts.map +0 -1
  497. package/dist/migration-Dy_4Wmiy.mjs.map +0 -1
  498. package/dist/naming-BcD36g9T-DFyaudUa.d.mts.map +0 -1
  499. package/dist/naming-bM5qm5PY-DdginUhA.mjs.map +0 -1
  500. package/dist/opaque-sql-Dset3kln-BzzXoO94.mjs.map +0 -1
  501. package/dist/pack-BifOs83a.mjs.map +0 -1
  502. package/dist/pack-CdaZMfI_.d.mts.map +0 -1
  503. package/dist/plan-Cr4azjnG-lIrzIrmu.d.mts.map +0 -1
  504. package/dist/plan-Dh0LbYIv-Crx5-ThG.mjs.map +0 -1
  505. package/dist/plan-OXQ8s6Ee.d.mts +0 -2
  506. package/dist/psl-attribute-parsing-BCsFWsSp-LaNsbcrw.mjs.map +0 -1
  507. package/dist/psl-build-BYXXz2XD.d.mts.map +0 -1
  508. package/dist/psl-build-fwoI6rBO.mjs.map +0 -1
  509. package/dist/psl-column-resolution-ChZqioOc-DcjGSXDp.d.mts.map +0 -1
  510. package/dist/psl-field-resolution-C5KQ7kzP-DH8oSBIL.mjs.map +0 -1
  511. package/dist/psl-infer-CaEnF_x3.mjs.map +0 -1
  512. package/dist/psl-infer-CpTRaF5I.d.mts.map +0 -1
  513. package/dist/psl-names-C3cwe0rg-CsuHOV7E.mjs.map +0 -1
  514. package/dist/query-lane-context-BCEoKy0_-DQOOliDn.d.mts.map +0 -1
  515. package/dist/query-lane-context-BssPNZey.d.mts +0 -1
  516. package/dist/referential-action-sql-Cw1Q0YSd.d.mts.map +0 -1
  517. package/dist/referential-action-sql-DSqkrySN.mjs.map +0 -1
  518. package/dist/resolve-storage-table-CxmU_MPu.d.mts.map +0 -1
  519. package/dist/resolve-storage-table-DZsfnzeW.mjs.map +0 -1
  520. package/dist/runtime-Bmndf-fm.d.mts.map +0 -1
  521. package/dist/runtime-Z3nD7ix1.mjs.map +0 -1
  522. package/dist/schema-differ-DmP74bB8-0ZupRJKb.d.mts.map +0 -1
  523. package/dist/schema-verify-C3wbdviw-BifQBCpu.mjs.map +0 -1
  524. package/dist/serialized-index-CrgG8ct1-DDfHKUEK.d.mts.map +0 -1
  525. package/dist/serialized-index-DjCCnXB1-C_YccpTL.mjs.map +0 -1
  526. package/dist/sql-contract-serializer-sMY3prTx-BkFoHhST.mjs.map +0 -1
  527. package/dist/sql-data-type-D7M-YTTY-C9oWGZ3z.mjs.map +0 -1
  528. package/dist/sql-execution-plan-3uxYjHyu-C0Z4_RSY.d.mts.map +0 -1
  529. package/dist/sql-expression-BAtH-2UU.d.mts.map +0 -1
  530. package/dist/sql-expression-BJCuy-WI.mjs.map +0 -1
  531. package/dist/sql-index-ByAAE7K8-BpbPBWPD.d.mts.map +0 -1
  532. package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts.map +0 -1
  533. package/dist/sql-storage-DeCAh5Hi-nJQUIgfL.d.mts.map +0 -1
  534. package/dist/storage-table-Bf1ZjnxO-NvkG2pgq.d.mts.map +0 -1
  535. package/dist/storage-table-DDvN83mw-CbCFr5wm.mjs.map +0 -1
  536. package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts.map +0 -1
  537. package/dist/transaction-state-BfXhs7D7-3k10jZ8I.mjs.map +0 -1
  538. package/dist/transaction-state-DR3nKTmH-D6VdY7YX.d.mts.map +0 -1
  539. package/dist/types-BUggiEEH.d.mts +0 -1
  540. package/dist/types-C7610W2l.mjs.map +0 -1
  541. package/dist/types-CRbj_WQf.d.mts.map +0 -1
  542. package/dist/types-Cq6ImLAB-BqOfLAYG.d.mts.map +0 -1
  543. package/dist/types-CuCxAQat-BBGUHEku.d.mts.map +0 -1
  544. package/dist/types-DDqbg3WC.d.mts +0 -1
  545. package/dist/types-DfKvtJwS-tndgHh53.d.mts.map +0 -1
  546. package/dist/types-DoyiTsjg-DDTmYyNY.mjs.map +0 -1
  547. package/dist/types-DriMIMNQ-BBacSgaI.d.mts.map +0 -1
  548. package/dist/types-NTQsD2MS-DAP2yVDn.mjs.map +0 -1
  549. package/dist/types-TXO7x1BA-DuW4v0rw.d.mts.map +0 -1
  550. package/dist/unique-constraint-M5TlQnJQ-BiIHJ85k.d.mts.map +0 -1
  551. package/dist/util-BBgcP3gI-XJBkxo1K.mjs.map +0 -1
  552. package/dist/validators-BDuMio1F.d.mts.map +0 -1
  553. package/dist/validators-xXKEHvnw.mjs.map +0 -1
  554. package/dist/value-set-derivation-hook-BhgGVtw0.d.mts.map +0 -1
  555. package/dist/value-set-derivation-hook-Di9JZ0X7.mjs.map +0 -1
  556. package/dist/verify-BVk5bjdH-dq5M4iIh.mjs.map +0 -1
  557. package/dist/verify-zDRnw0Rn.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter-BDpym-rc-C3-vTcej.mjs","names":[],"sources":["../../../../2-sql-family/2-authoring/contract-psl/dist/interpreter-BDpym-rc.mjs"],"sourcesContent":["import { i as mapFieldNamesToColumns, n as getAttribute, o as storageName, r as getNamedArgument, t as formatDbAttributeMigrationMessage } from \"./psl-attribute-parsing-BCsFWsSp.mjs\";\nimport { _ as modelSpecContext, b as contractError, c as lowerTypeDefault, d as PSL_CHECK_ON_STI_VARIANT, g as modelAttributeSpecsFrom, h as interpretModelAttribute, i as getAuthoringEntity, l as lowerTypeGenerators, m as interpretFieldAttribute, o as instantiatePslTypeConstructor, p as fieldSpecContext, r as modelCoordinateKey, s as lowerEnumDefault, t as collectResolvedFields, u as resolveFieldTypeDescriptor, v as sqlAttributeSpecs } from \"./psl-field-resolution-C5KQ7kzP.mjs\";\nimport { t as defaultTableName } from \"./default-table-name-BfFY8qYR.mjs\";\nimport { contributedTypeAliasOf, createPslDiagnosticCollector, diagnosticSource, findBlockDescriptor, interpretExtensionBlocks, nodePslSpan, resolveTypeAliases, typeAliasAttributeNames, typeAliasSpecContext, typeReferenceNode } from \"@internal/psl-parser\";\nimport { buildSqlContractFromDefinition } from \"@internal/sql-contract-ts/contract-builder\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { applyDiscriminatorRule, describeDiscriminatorRefusal, encodeEnumMembers, instantiateAuthoringEntityType, instantiateAuthoringTypeAlias, instantiateAuthoringTypeConstructor, isAuthoringEntityTypeDescriptor, isAuthoringModelAttributeDescriptor, resolveTypeAliasGenerators } from \"@internal/framework-components/authoring\";\nimport { claimedBlockKeywords, enumMemberAttributeDiagnostics, fkRelationPairKey, requiredOneToOneBackrelationDiagnostic, unsupportedBlockDiagnostic } from \"@internal/psl-parser/interpret\";\nimport { sqlCodecColumnLength } from \"@internal/sql-contract/data-type\";\nimport { sqlTextFromStored } from \"@internal/sql-contract/sql-expression\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\nimport { NamespaceDeclarationAst } from \"@internal/psl-parser/syntax\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { crossRef } from \"@internal/contract/types\";\nimport { resolveToOneRelationNullable } from \"@internal/contract-authoring\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { providesPslEntityPlacement } from \"@internal/sql-contract/entity-handle-lowering-hook\";\nimport { FOREIGN_KEY_INDEX_UNRESOLVED } from \"@internal/sql-contract/foreign-key-materialization\";\nimport { isAuthoredIndexInput } from \"@internal/sql-contract/index-naming\";\nimport { deriveValueSetFromEntity } from \"@internal/sql-contract/value-set-derivation-hook\";\n//#region src/psl-named-type-resolution.ts\nfunction describeUnsupportedSqlAliasAttribute(attribute) {\n\treturn attribute.name.startsWith(\"db.\") ? formatDbAttributeMigrationMessage(attribute) : void 0;\n}\nfunction aliasDescriptor(alias, input) {\n\tconst { base, symbol } = alias;\n\tconst source = diagnosticSource(input.sources, symbol.node.syntax);\n\tif (base.kind === \"typeConstructor\") {\n\t\tif (base.call === void 0) return instantiateAuthoringTypeConstructor(base.descriptor, []);\n\t\treturn instantiatePslTypeConstructor({\n\t\t\tcall: base.call,\n\t\t\tdescriptor: base.descriptor,\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tdiagnostics: input.diagnostics,\n\t\t\tsource,\n\t\t\tentityLabel: `Type alias \"${symbol.name}\"`,\n\t\t\tdataTypes: input.dataTypes\n\t\t});\n\t}\n\tconst descriptor = input.enumTypeDescriptors.get(base.symbol);\n\tif (descriptor === void 0) input.diagnostics.push({\n\t\tcode: \"PSL_UNSUPPORTED_NAMED_TYPE_BASE\",\n\t\tmessage: `Type alias \"${symbol.name}\" references unsupported base type \"${alias.baseName}\"`,\n\t\t...source.at(symbol.span)\n\t});\n\treturn descriptor;\n}\n/**\n* Resolves each `types {}` alias once: its column type, with the params inline, and its `@default`, `@onCreate` and `@onUpdate`, lowered for that column. A diagnostic about the alias is reported here, once, not at each field typed by it.\n*/\nfunction resolveNamedTypeDeclarations(input) {\n\tconst declared = resolveDeclaredTypeAliases(input);\n\tconst contributed = /* @__PURE__ */ new Map();\n\tconst resolveContributed = (alias) => {\n\t\tconst existing = contributed.get(alias.descriptor);\n\t\tif (existing !== void 0) return existing;\n\t\tconst resolved = resolveContributedTypeAlias(alias, input);\n\t\tcontributed.set(alias.descriptor, resolved);\n\t\treturn resolved;\n\t};\n\treturn {\n\t\tget: (symbol) => declared.get(symbol),\n\t\tofResolution(resolution) {\n\t\t\tif (resolution?.kind === \"namedType\") return declared.get(resolution.symbol);\n\t\t\tconst alias = contributedTypeAliasOf(resolution);\n\t\t\treturn alias === void 0 ? void 0 : resolveContributed(alias);\n\t\t}\n\t};\n}\nfunction resolveContributedTypeAlias(alias, input) {\n\tconst { type: descriptor } = instantiateAuthoringTypeAlias(alias.descriptor);\n\tconst executionDefaults = resolveTypeAliasGenerators({\n\t\tpath: alias.name,\n\t\tdescriptor: alias.descriptor,\n\t\tgeneratorFunctions: input.generatorFunctions,\n\t\tlength: sqlCodecColumnLength(input.dataTypes, descriptor.codecId, descriptor.typeParams)\n\t});\n\treturn {\n\t\talias,\n\t\tname: alias.name,\n\t\tattributes: [],\n\t\tdescriptor,\n\t\tenumHandle: void 0,\n\t\tdefaultValue: void 0,\n\t\texecutionDefaults\n\t};\n}\nfunction resolveDeclaredTypeAliases(input) {\n\tconst aliases = resolveTypeAliases({\n\t\tdeclarations: input.declarations,\n\t\tbinder: input.binder,\n\t\tsources: input.sources,\n\t\tdiagnostics: input.diagnostics,\n\t\tauthoringTypes: input.authoringTypes,\n\t\tdescribeUnsupportedAttribute: describeUnsupportedSqlAliasAttribute\n\t});\n\tconst resolved = /* @__PURE__ */ new Map();\n\tfor (const alias of aliases.values()) {\n\t\tconst descriptor = aliasDescriptor(alias, input);\n\t\tif (descriptor === void 0) continue;\n\t\tconst owner = {\n\t\t\tattributes: alias.attributes,\n\t\t\toptional: false,\n\t\t\tlist: false,\n\t\t\telementOptional: false,\n\t\t\tspecContext: typeAliasSpecContext(alias, {\n\t\t\t\t...input,\n\t\t\t\tsymbols: input.symbolTable\n\t\t\t}),\n\t\t\tloweringNames: {\n\t\t\t\tmodelName: \"types\",\n\t\t\t\tfieldName: alias.symbol.name\n\t\t\t}\n\t\t};\n\t\tconst enumHandle = alias.base.kind === \"block\" ? input.enumHandles.get(alias.base.symbol) : void 0;\n\t\tconst lowering = {\n\t\t\t...input,\n\t\t\towner\n\t\t};\n\t\tconst { defaultValue } = enumHandle === void 0 ? lowerTypeDefault({\n\t\t\t...lowering,\n\t\t\tcolumnDescriptor: descriptor,\n\t\t\tcolumnTypeParams: descriptor.typeParams,\n\t\t\tisListColumn: false,\n\t\t\tvalueObjectDefault: void 0\n\t\t}) : lowerEnumDefault({\n\t\t\t...lowering,\n\t\t\tenumHandle\n\t\t});\n\t\tconst executionDefaults = lowerTypeGenerators({\n\t\t\t...lowering,\n\t\t\tcolumnDescriptor: descriptor,\n\t\t\tcolumnTypeParams: descriptor.typeParams\n\t\t});\n\t\tresolved.set(alias.symbol, {\n\t\t\talias,\n\t\t\tname: alias.symbol.name,\n\t\t\tattributes: alias.attributes,\n\t\t\tdescriptor,\n\t\t\tenumHandle,\n\t\t\tdefaultValue,\n\t\t\texecutionDefaults\n\t\t});\n\t}\n\treturn resolved;\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 modelName(key) {\n\treturn typeof key === \"string\" ? key : key.name;\n}\nfunction normalizeReferentialAction(actionToken) {\n\treturn REFERENTIAL_ACTION_MAP[actionToken];\n}\nfunction interpretRelationAttribute(input) {\n\tconst node = getAttribute(input.field.attributes, \"relation\")?.node;\n\tif (node === void 0) return void 0;\n\treturn interpretFieldAttribute({\n\t\tsymbols: input.symbols,\n\t\tnode,\n\t\tspec: sqlAttributeSpecs.field.relation(input.specContext),\n\t\tmodel: input.selfModel,\n\t\tfield: input.field,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tdiagnostics: input.diagnostics\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: modelName(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\tnullable: relation.nullable,\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\tlet targets = fkRelationsByPair.get(relation.declaringModelName);\n\t\tif (!targets) {\n\t\t\ttargets = /* @__PURE__ */ new Map();\n\t\t\tfkRelationsByPair.set(relation.declaringModelName, targets);\n\t\t}\n\t\tconst pairRelations = targets.get(relation.targetModelName);\n\t\tif (pairRelations) pairRelations.push(relation);\n\t\telse targets.set(relation.targetModelName, [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: modelName(junctionModelName),\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: modelName(junctionModelName),\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, sources) {\n\tconst source = diagnosticSource(sources, candidate.field.node.syntax);\n\tconst listField = `${modelName(candidate.modelName)}.${candidate.field.name}`;\n\tconst targetModelName = modelName(candidate.targetModelName);\n\tconst data = {\n\t\tlistField,\n\t\tjunctionModel: nearMiss.junctionModelName,\n\t\ttargetModel: 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 \"${targetModelName}\" does not reference \"${targetModelName}\"'s @id. The junction's target-side foreign key must reference \"${targetModelName}\"'s full @id columns for many-to-many recognition.`,\n\t\t...source.at(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 \"${modelName(candidate.modelName)}\" and \"${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\t...source.at(candidate.field.span),\n\t\tdata\n\t};\n}\nfunction manyToManyRelationNode(candidate, pair) {\n\treturn {\n\t\tfieldName: candidate.field.name,\n\t\ttoModel: modelName(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, any single- or multi-column `@unique` /\n* `@@unique` constraint, or a unique index over plain columns with no `where`\n* clause. Set equality (not subset) is required: a singular back-relation means\n* at most one child per parent, which a unique constraint covering exactly the\n* 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 source = diagnosticSource(input.sources, candidate.field.node.syntax);\n\t\tconst pairMatches = input.fkRelationsByPair.get(candidate.targetModelName)?.get(candidate.modelName) ?? [];\n\t\tconst matches = candidate.relationName ? pairMatches.filter((relation) => relation.relationName === candidate.relationName) : [...pairMatches];\n\t\tif (matches.length === 0) {\n\t\t\tconst invalidIndex = input.invalidFkPairings.findIndex((pairing) => {\n\t\t\t\tif (pairing.relationName !== candidate.relationName) return false;\n\t\t\t\tif (\"pairKey\" in pairing) return typeof candidate.targetModelName === \"string\" && typeof candidate.modelName === \"string\" && pairing.pairKey === fkRelationPairKey(candidate.targetModelName, candidate.modelName);\n\t\t\t\treturn pairing.declaringModel === candidate.targetModelName && pairing.targetModel === candidate.modelName;\n\t\t\t});\n\t\t\tif (invalidIndex !== -1) {\n\t\t\t\tinput.invalidFkPairings.splice(invalidIndex, 1);\n\t\t\t\tcontinue;\n\t\t\t}\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 \"${modelName(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 \"${modelName(candidate.modelName)}\" to disambiguate.`,\n\t\t\t\t\t\t...source.at(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.sources));\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 \"${modelName(candidate.modelName)}.${candidate.field.name}\" has no matching FK-side relation on model \"${modelName(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\t...source.at(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 \"${modelName(candidate.modelName)}.${candidate.field.name}\" matches multiple FK-side relations on model \"${modelName(candidate.targetModelName)}\". Add @relation(name: \"...\") (or @relation(\"...\")) to both sides to disambiguate.`,\n\t\t\t\t...source.at(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 \"${modelName(candidate.modelName)}.${candidate.field.name}\" is singular, but the matching FK on \"${modelName(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\t...source.at(candidate.field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (!candidate.isList && !candidate.field.optional) input.diagnostics.push(requiredOneToOneBackrelationDiagnostic({\n\t\t\tmodelName: modelName(candidate.modelName),\n\t\t\tfield: candidate.field,\n\t\t\ttargetModelName: modelName(candidate.targetModelName),\n\t\t\tsources: input.sources,\n\t\t\trecordNoun: \"row\"\n\t\t}));\n\t\trelationsForModel(input.modelRelations, candidate.modelName).push({\n\t\t\tfieldName: candidate.field.name,\n\t\t\ttoModel: modelName(matched.declaringModelName),\n\t\t\ttoTable: matched.declaringTableName,\n\t\t\t...ifDefined(\"toNamespaceId\", matched.declaringNamespaceId),\n\t\t\t...candidate.isList ? { cardinality: \"1:N\" } : {\n\t\t\t\tcardinality: \"1:1\",\n\t\t\t\tnullable: true\n\t\t\t},\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\tconst source = diagnosticSource(input.sources, input.field.node.syntax);\n\tlet valid = true;\n\tfor (const attribute of input.field.attributes) {\n\t\tif (attribute.name === \"relation\") continue;\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\t...source.at(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}\nfunction declarationsHoldingModels(namespace) {\n\tconst declarations = /* @__PURE__ */ new Set();\n\tfor (const model of Object.values(namespace.models)) {\n\t\tconst written = model.node.syntax.findAncestor(NamespaceDeclarationAst.cast);\n\t\tif (written !== void 0) declarations.add(written.syntax);\n\t}\n\treturn declarations;\n}\nfunction validateNamespaceBlocksForSqlTarget(input) {\n\tif (input.targetId === \"sqlite\") {\n\t\tfor (const namespace of input.namespaces) for (const { node, span } of namespace.declarations) input.diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_NAMESPACE_BLOCK\",\n\t\t\tmessage: `SQLite does not support \\`namespace ${node.name()?.name() ?? namespace.name} { … }\\` blocks (SQLite has no schema concept; declare models at the document top level instead).`,\n\t\t\t...diagnosticSource(input.sources, node.syntax).at(span)\n\t\t});\n\t\treturn;\n\t}\n\tif (input.targetId === \"postgres\") {\n\t\tconst unboundNamespace = input.namespaces.find((namespace) => namespace.id === UNBOUND_NAMESPACE_ID && Object.keys(namespace.models).length > 0);\n\t\tconst hasSibling = input.namespaces.some((namespace) => namespace.id !== UNBOUND_NAMESPACE_ID && namespace.declarations.length > 0);\n\t\tif (unboundNamespace !== void 0 && hasSibling) {\n\t\t\tconst holdingModels = declarationsHoldingModels(unboundNamespace);\n\t\t\tfor (const { node, span } of unboundNamespace.declarations) {\n\t\t\t\tif (!holdingModels.has(node.syntax)) continue;\n\t\t\t\tinput.diagnostics.push({\n\t\t\t\t\tcode: \"PSL_RESERVED_NAMESPACE_NAME\",\n\t\t\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\t\t\t...diagnosticSource(input.sources, node.syntax).at(span)\n\t\t\t\t});\n\t\t\t}\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\t...input.source.at(input.span)\n\t};\n}\nfunction isResolvedModelReference(value) {\n\tif (typeof value !== \"object\" || value === null || !(\"declaration\" in value)) return false;\n\tconst declaration = value.declaration;\n\treturn typeof declaration === \"object\" && declaration !== null && \"kind\" in declaration && declaration.kind === \"model\";\n}\nfunction validateBlockModelAttributeRequirements(input) {\n\tfor (const [blockSymbol, envelope] of input.parsedBlocks) {\n\t\tconst requirement = findBlockDescriptor(input.pslBlockDescriptors, blockSymbol.keyword)?.requiresModelAttribute;\n\t\tif (requirement === void 0) continue;\n\t\tconst target = envelope.values[requirement.parameter];\n\t\tif (!isResolvedModelReference(target)) continue;\n\t\tconst model = target.declaration;\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 \"${envelope.name}\" targets model \"${model.name}\", which does not declare \\`@@${requirement.attribute}\\`. Add \\`@@${requirement.attribute}\\` to model \"${model.name}\".`,\n\t\t\t...diagnosticSource(input.sources, blockSymbol.node.syntax).at(envelope.parameterSpans[requirement.parameter] ?? envelope.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* 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*/\nfunction lowerExtensionBlocksForNamespace(blocks, ownerNamespaceId, entityTypesByDiscriminator, entityContext, parsedBlocks, modelCoordinateOf, sources) {\n\tconst rows = [];\n\tfor (const blockSymbol of Object.values(blocks)) {\n\t\tconst envelope = parsedBlocks.get(blockSymbol);\n\t\tif (envelope === void 0) continue;\n\t\tconst descriptor = entityTypesByDiscriminator.get(envelope.kind);\n\t\tif (descriptor === void 0) continue;\n\t\tlet resolvedModelRefs;\n\t\tfor (const [paramName, value] of Object.entries(envelope.values)) {\n\t\t\tif (!isResolvedModelReference(value)) continue;\n\t\t\tconst coordinate = modelCoordinateOf(value.declaration);\n\t\t\tinvariant(coordinate !== void 0, `model mappings cover every collected model; \\`${envelope.keyword}\\` block \"${envelope.name}\" selected model \"${value.declaration.name}\" in \\`${paramName}\\` without a storage coordinate`);\n\t\t\tresolvedModelRefs = {\n\t\t\t\t...resolvedModelRefs ?? {},\n\t\t\t\t[paramName]: coordinate\n\t\t\t};\n\t\t}\n\t\tconst annotatedBlock = {\n\t\t\t...envelope,\n\t\t\tnamespaceId: ownerNamespaceId,\n\t\t\t...resolvedModelRefs !== void 0 ? { resolvedModelRefs } : {}\n\t\t};\n\t\tconst entity = instantiateAuthoringEntityType(descriptor.discriminator, descriptor, [annotatedBlock], {\n\t\t\t...entityContext,\n\t\t\tsourceId: sources.sourceFileFor(blockSymbol.node.syntax).filename\n\t\t});\n\t\tif (entity === void 0) continue;\n\t\tconst namespaceId = providesPslEntityPlacement(descriptor.output) ? descriptor.output.pslPlacement(entity).namespaceId : ownerNamespaceId;\n\t\trows.push({\n\t\t\tnamespaceId,\n\t\t\tentityKind: descriptor.discriminator,\n\t\t\tkey: envelope.name,\n\t\t\tentity\n\t\t});\n\t\tconst derivedValueSet = deriveValueSetFromEntity(descriptor.output, entity);\n\t\tif (derivedValueSet !== void 0) rows.push({\n\t\t\tnamespaceId,\n\t\t\tentityKind: \"valueSet\",\n\t\t\tkey: envelope.name,\n\t\t\tentity: derivedValueSet\n\t\t});\n\t}\n\treturn rows;\n}\nfunction processEnumDeclarations(input) {\n\tconst enumHandles = /* @__PURE__ */ new Map();\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 symbol of input.enumBlocks) input.diagnostics.push({\n\t\t\tcode: \"PSL_ENUM_MISSING_FACTORY\",\n\t\t\tmessage: `enum \"${symbol.name}\" requires an \"enum\" entityType factory in the active authoring contributions`,\n\t\t\t...diagnosticSource(input.source.sources, symbol.node.syntax).at(symbol.span)\n\t\t});\n\t\treturn {\n\t\t\tenumHandles,\n\t\t\tenumTypeDescriptors\n\t\t};\n\t}\n\tfor (const symbol of input.enumBlocks) {\n\t\tconst envelope = input.parsedBlocks.get(symbol);\n\t\tinput.diagnostics.push(...enumMemberAttributeDiagnostics(symbol, input.source.sources));\n\t\tif (envelope === void 0) continue;\n\t\tconst handle = instantiateAuthoringEntityType(\"enum\", enumDescriptor, [envelope], {\n\t\t\t...input.entityContext,\n\t\t\tsourceId: input.source.sources.sourceFileFor(symbol.node.syntax).filename\n\t\t});\n\t\tif (handle === void 0 || handle === null) continue;\n\t\tenumHandles.set(symbol, handle);\n\t\tenumTypeDescriptors.set(symbol, { codecId: handle.codecId });\n\t}\n\treturn {\n\t\tenumHandles,\n\t\tenumTypeDescriptors\n\t};\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 relationNullabilityMismatch(relationField, localColumns, resolvedFields) {\n\treturn resolveToOneRelationNullable({\n\t\tdeclaredNullable: relationField.optional,\n\t\tlocalFieldNullability: resolvedFields.filter((resolvedField) => localColumns.includes(resolvedField.columnName)).map((resolvedField) => resolvedField.nullable),\n\t\townsReference: true\n\t}).contradiction !== void 0;\n}\nfunction relationNullabilityMismatchDiagnostic(modelName, relationAttribute, source) {\n\tconst fieldLabel = `Relation field \"${modelName}.${relationAttribute.field.name}\"`;\n\treturn {\n\t\tcode: \"PSL_RELATION_NULLABILITY_MISMATCH\",\n\t\tmessage: relationAttribute.field.optional ? `${fieldLabel} is optional but every field in @relation(fields: [...]) is required. Make one of those fields optional with \"?\" or remove \"?\" from \"${relationAttribute.field.name}\".` : `${fieldLabel} is required but a field in @relation(fields: [...]) is optional. Add \"?\" to \"${relationAttribute.field.name}\" or make those fields required.`,\n\t\t...source.at(relationAttribute.field.span)\n\t};\n}\nfunction buildModelNodeFromPsl(input) {\n\tconst { model, diagnostics } = input;\n\tconst source = diagnosticSource(input.sources, model.node.syntax);\n\tconst tableName = storageName(model, input.physicalNames);\n\tconst specContext = modelSpecContext({\n\t\tsymbols: input.symbolTable,\n\t\tmodel,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tgeneratorFunctions: input.generatorFunctions,\n\t\tdataTypes: input.dataTypes\n\t});\n\tconst modelNamespaceId = input.namespaceId;\n\tconst resolvedFields = collectResolvedFields({\n\t\tmodel,\n\t\tphysicalNames: input.physicalNames,\n\t\tsymbolTable: input.symbolTable,\n\t\tenumTypeDescriptors: input.enumTypeDescriptors,\n\t\ttypeAliases: input.typeAliases,\n\t\tvalueObjectTypes: input.valueObjectTypes,\n\t\tauthoringContributions: input.authoringContributions,\n\t\ttargetId: input.targetId,\n\t\tdefaultFunctionRegistry: input.defaultFunctionRegistry,\n\t\tgeneratorFunctions: input.generatorFunctions,\n\t\tdataTypes: input.dataTypes,\n\t\tdiagnostics,\n\t\tsources: input.sources,\n\t\tbinder: input.binder,\n\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\tenumHandles: input.enumHandles,\n\t\tcapabilities: input.capabilities,\n\t\tnamespaceId: modelNamespaceId,\n\t\t...ifDefined(\"namespaceExtensionEntities\", input.namespaceExtensionEntities),\n\t\tcodecLookup: 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\t...source.at(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\tconst backrelationTarget = backrelationTargetSymbol(field, input.binder);\n\t\tif (backrelationTarget === void 0) 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\tsources: input.sources,\n\t\t\tbinder: input.binder,\n\t\t\tdiagnostics\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\tspecContext: fieldSpecContext({\n\t\t\t\t\t...specContext,\n\t\t\t\t\tfield,\n\t\t\t\t\tbinder: input.binder\n\t\t\t\t}),\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\t...source.at(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\t...source.at(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,\n\t\t\ttableName,\n\t\t\tfield,\n\t\t\ttargetModelName: backrelationTarget,\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 checkNodes = [];\n\tconst foreignKeyNodes = [];\n\tfor (const modelAttribute of model.attributes) {\n\t\tif (!Object.hasOwn(sqlAttributeSpecs.model, modelAttribute.name) && !input.modelAttributesByName.has(modelAttribute.name)) continue;\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\tsource,\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 = modelAttribute.node;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.control(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\t...source.at(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\t...source.at(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 = modelAttribute.node;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.id(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\t...source.at(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\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames,\n\t\t\t\tsource,\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 = modelAttribute.node;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.unique(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\tsource,\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 = modelAttribute.node;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.index(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\tmodel,\n\t\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\t\tfieldNames: parsed.fields,\n\t\t\t\t\tsource,\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 === void 0 ? void 0 : sqlTextFromStored(parsed.expression.value.value)),\n\t\t\t\twhere: parsed.where === void 0 ? void 0 : sqlTextFromStored(parsed.where.value.value),\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\tif (modelAttribute.name === \"check\") {\n\t\t\tconst node = modelAttribute.node;\n\t\t\tif (input.capabilities[\"sql\"]?.[\"checkConstraint\"] !== true) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_CHECK_UNSUPPORTED_TARGET\",\n\t\t\t\t\tmessage: `Model \"${model.name}\" declares \"@@check\", but target \"${input.targetId}\" does not support check constraints (the adapter does not report the \"checkConstraint\" capability). Remove the check or author it against a target that supports check constraints.`,\n\t\t\t\t\t...source.at(modelAttribute.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: sqlAttributeSpecs.model.check(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed === void 0) continue;\n\t\t\tcheckNodes.push({\n\t\t\t\texpression: sqlTextFromStored(parsed.expression.value.value),\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map\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 (contributedModelAttribute.repeatable !== true && 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\tsource,\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 = modelAttribute.node;\n\t\t\tconst specFactory = input.contributedModelAttributeSpecs[contributedModelAttribute.attribute];\n\t\t\tif (specFactory === void 0) continue;\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode,\n\t\t\t\tspec: specFactory(specContext),\n\t\t\t\tmodel,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\tcodecLookup: input.codecLookup,\n\t\t\t\tdataTypes: input.dataTypes,\n\t\t\t\tmodelName: model.name,\n\t\t\t\tstorageName: tableName,\n\t\t\t\tfieldStorageName: (fieldName) => {\n\t\t\t\t\tconst field = model.fields[fieldName];\n\t\t\t\t\treturn field === void 0 ? void 0 : storageName(field, input.physicalNames);\n\t\t\t\t},\n\t\t\t\tfieldCodecId: (fieldName) => resolvedFields.find((resolved) => resolved.field.name === fieldName)?.descriptor.codecId,\n\t\t\t\tnamespaceId: modelNamespaceId,\n\t\t\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\t\tdiagnostics.pushExternal(blindCast(d));\n\t\t\t\t} }\n\t\t\t});\n\t\t\tif (lowered === void 0) continue;\n\t\t\tif (\"index\" in lowered) {\n\t\t\t\tif (!isAuthoredIndexInput(lowered.index)) throw contractError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `model attribute \"@@${modelAttribute.name}\" on model \"${model.name}\" lowered to a malformed index. A contributed attribute that returns { index } must return an authored-index input: exactly one of a columns list or an expression, plus explicit where/unique/name/map and a type-with-options pair.`, { meta: {\n\t\t\t\t\tattribute: modelAttribute.name,\n\t\t\t\t\tmodelName: model.name\n\t\t\t\t} });\n\t\t\t\tindexNodes.push(lowered.index);\n\t\t\t\tcontinue;\n\t\t\t}\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\tthrow new InternalError(`Model attribute \"@@${modelAttribute.name}\" is registered but has no interpreter branch`);\n\t}\n\tconst resultFkRelationMetadata = [];\n\tconst relationIndexLocations = [];\n\tconst resultInvalidFkPairings = [];\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\t...source.at(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.config.ts.`,\n\t\t\t\t\t...source.at(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\tspecContext: fieldSpecContext({\n\t\t\t\t\t...specContext,\n\t\t\t\t\tfield: relationAttribute.field,\n\t\t\t\t\tbinder: input.binder\n\t\t\t\t}),\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder: input.binder,\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\t...source.at(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\tmodel,\n\t\t\t\tphysicalNames: input.physicalNames,\n\t\t\t\tfieldNames: parsedRelation.fields,\n\t\t\t\tsource,\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\tif (relationNullabilityMismatch(relationAttribute.field, localColumns, resolvedFields)) {\n\t\t\t\tdiagnostics.push(relationNullabilityMismatchDiagnostic(model.name, relationAttribute, source));\n\t\t\t\tcontinue;\n\t\t\t}\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\t...source.at(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_NAMESPACE_ID;\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\t...source.at(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\tif (typeof parsedRelation.index === \"string\") relationIndexLocations.push({\n\t\t\t\tnamespaceId: modelNamespaceId,\n\t\t\t\ttableName,\n\t\t\t\tcolumns: localColumns,\n\t\t\t\tindex: parsedRelation.index,\n\t\t\t\tlocation: source.at(relationAttribute.relation.span)\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\tnullable: relationAttribute.field.optional,\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\tconst typeReference = typeReferenceNode(relationAttribute.field);\n\t\tconst targetResolution = typeReference === void 0 ? void 0 : input.binder.symbolForNode(typeReference);\n\t\tif (targetResolution?.kind === \"unresolved\") continue;\n\t\tif (targetResolution?.kind !== \"model\") {\n\t\t\tconst foundKind = targetResolution === void 0 ? void 0 : relationTargetKindLabel(targetResolution);\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_INVALID_RELATION_TARGET\",\n\t\t\t\tmessage: foundKind === void 0 ? `Relation field \"${model.name}.${relationAttribute.field.name}\" references unknown model \"${qualifiedTypeName}\"` : `Relation field \"${model.name}.${relationAttribute.field.name}\" references ${foundKind} \"${qualifiedTypeName}\"; a relation target must be a model`,\n\t\t\t\t...source.at(relationAttribute.field.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst targetModel = targetResolution.symbol;\n\t\tconst targetNamespaceId = targetResolution.namespace.id;\n\t\tconst parsedRelation = interpretRelationAttribute({\n\t\t\tselfModel: model,\n\t\t\tfield: relationAttribute.field,\n\t\t\tspecContext: fieldSpecContext({\n\t\t\t\t...specContext,\n\t\t\t\tfield: relationAttribute.field,\n\t\t\t\tbinder: input.binder\n\t\t\t}),\n\t\t\tsymbols: input.symbolTable,\n\t\t\tsources: input.sources,\n\t\t\tbinder: input.binder,\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\t...source.at(relationAttribute.relation.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst localColumns = mapFieldNamesToColumns({\n\t\t\tmodel,\n\t\t\tphysicalNames: input.physicalNames,\n\t\t\tfieldNames: parsedRelation.fields,\n\t\t\tsource,\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\tif (relationNullabilityMismatch(relationAttribute.field, localColumns, resolvedFields)) {\n\t\t\tdiagnostics.push(relationNullabilityMismatchDiagnostic(model.name, relationAttribute, source));\n\t\t\tresultInvalidFkPairings.push({\n\t\t\t\tdeclaringModel: model,\n\t\t\t\ttargetModel,\n\t\t\t\t...ifDefined(\"relationName\", parsedRelation.name)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst referencedColumns = mapFieldNamesToColumns({\n\t\t\tmodel: targetModel,\n\t\t\tphysicalNames: input.physicalNames,\n\t\t\tfieldNames: parsedRelation.references,\n\t\t\tsource,\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\t...source.at(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 targetTableName = storageName(targetModel, input.physicalNames);\n\t\tforeignKeyNodes.push({\n\t\t\tcolumns: localColumns,\n\t\t\treferences: {\n\t\t\t\tmodel: targetModel.name,\n\t\t\t\ttable: targetTableName,\n\t\t\t\tcolumns: referencedColumns,\n\t\t\t\tnamespaceId: 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\tif (typeof parsedRelation.index === \"string\") relationIndexLocations.push({\n\t\t\tnamespaceId: modelNamespaceId,\n\t\t\ttableName,\n\t\t\tcolumns: localColumns,\n\t\t\tindex: parsedRelation.index,\n\t\t\tlocation: source.at(relationAttribute.relation.span)\n\t\t});\n\t\tresultFkRelationMetadata.push({\n\t\t\tdeclaringModelName: model,\n\t\t\tdeclaringFieldName: relationAttribute.field.name,\n\t\t\tdeclaringTableName: tableName,\n\t\t\t...ifDefined(\"declaringNamespaceId\", modelNamespaceId),\n\t\t\ttargetModelName: targetModel,\n\t\t\ttargetTableName,\n\t\t\t...ifDefined(\"targetNamespaceId\", targetNamespaceId),\n\t\t\t...ifDefined(\"relationName\", parsedRelation.name),\n\t\t\tnullable: relationAttribute.field.optional,\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 common = {\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...ifDefined(\"many\", resolvedField.many),\n\t\t\t\t\t...ifDefined(\"elementNullable\", resolvedField.many ? resolvedField.elementNullable === true : void 0),\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};\n\t\t\t\tif (resolvedField.valueObjectTypeName !== void 0) return {\n\t\t\t\t\t...common,\n\t\t\t\t\tvalueObjectName: resolvedField.valueObjectTypeName\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\t...common,\n\t\t\t\t\t...ifDefined(\"enumTypeHandle\", resolvedField.enumTypeHandle)\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...checkNodes.length > 0 ? { checks: checkNodes } : {},\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\trelationIndexLocations,\n\t\tinvalidFkPairings: resultInvalidFkPairings,\n\t\tcrossSpaceRelations: resultCrossSpaceRelations,\n\t\tbackrelationCandidates: resultBackrelationCandidates,\n\t\tmodelAttributeEntities\n\t};\n}\nfunction buildValueObjectNodes(input) {\n\tconst { compositeTypes, enumHandles, diagnostics, sources, binder } = input;\n\treturn compositeTypes.map((compositeType) => {\n\t\tfor (const attribute of compositeType.attributes) diagnostics.push({\n\t\t\tcode: \"PSL_UNSUPPORTED_COMPOSITE_TYPE_ATTRIBUTE\",\n\t\t\tmessage: `Composite type \"${compositeType.name}\" uses attribute \"@@${attribute.name}\", which a composite type does not take`,\n\t\t\t...diagnosticSource(sources, compositeType.node.syntax).at(attribute.span)\n\t\t});\n\t\tconst fields = [];\n\t\tfor (const field of Object.values(compositeType.fields)) {\n\t\t\tfor (const attribute of field.attributes) diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\t\tmessage: `Member \"${field.name}\" of composite type \"${compositeType.name}\" uses attribute \"@${attribute.name}\", which a composite type member does not take`,\n\t\t\t\t...diagnosticSource(sources, field.node.syntax).at(attribute.span)\n\t\t\t});\n\t\t\tconst common = {\n\t\t\t\tfieldName: field.name,\n\t\t\t\tnullable: field.optional,\n\t\t\t\t...ifDefined(\"many\", field.list ? true : void 0),\n\t\t\t\t...ifDefined(\"elementNullable\", field.list ? field.elementOptional : void 0)\n\t\t\t};\n\t\t\tconst fieldTypeReference = typeReferenceNode(field);\n\t\t\tconst fieldTypeResolution = fieldTypeReference === void 0 ? void 0 : binder.symbolForNode(fieldTypeReference);\n\t\t\tif (fieldTypeResolution?.kind === \"compositeType\") {\n\t\t\t\tfields.push({\n\t\t\t\t\t...common,\n\t\t\t\t\tvalueObjectName: fieldTypeResolution.symbol.name\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst resolved = resolveFieldTypeDescriptor({\n\t\t\t\tfield,\n\t\t\t\tresolution: fieldTypeResolution,\n\t\t\t\tenumTypeDescriptors: input.enumTypeDescriptors,\n\t\t\t\ttypeAliases: input.typeAliases,\n\t\t\t\tdiagnostics,\n\t\t\t\tsources,\n\t\t\t\tentityLabel: `Field \"${compositeType.name}.${field.name}\"`,\n\t\t\t\tnamespaceId: input.defaultNamespaceId,\n\t\t\t\tnamespaceExtensionEntities: input.namespaceExtensionEntities,\n\t\t\t\tbinder,\n\t\t\t\tcodecLookup: input.codecLookup,\n\t\t\t\tdataTypes: input.dataTypes\n\t\t\t});\n\t\t\tif (!resolved.ok) continue;\n\t\t\tconst { descriptor } = resolved;\n\t\t\tif (descriptor.valueSet !== void 0) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_TYPE\",\n\t\t\t\t\tmessage: `Field \"${compositeType.name}.${field.name}\" is typed by the storage enum \"${descriptor.valueSet.entityName}\", which a composite type member cannot use: a member has no column to store it in. Use a PSL enum instead.`,\n\t\t\t\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst typeAlias = input.typeAliases.ofResolution(fieldTypeResolution);\n\t\t\tfor (const attribute of typeAlias === void 0 ? [] : typeAliasAttributeNames(typeAlias.alias)) diagnostics.push({\n\t\t\t\tcode: \"PSL_UNSUPPORTED_FIELD_ATTRIBUTE\",\n\t\t\t\tmessage: `Member \"${field.name}\" of composite type \"${compositeType.name}\" is typed by the type alias \"${field.typeName}\", which carries \"@${attribute}\", an attribute a composite type member does not take`,\n\t\t\t\t...diagnosticSource(sources, field.node.syntax).at(field.span)\n\t\t\t});\n\t\t\tfields.push({\n\t\t\t\t...common,\n\t\t\t\tdescriptor: {\n\t\t\t\t\tcodecId: descriptor.codecId,\n\t\t\t\t\t...ifDefined(\"typeParams\", descriptor.typeParams)\n\t\t\t\t},\n\t\t\t\t...ifDefined(\"enumTypeHandle\", fieldTypeResolution?.kind === \"block\" ? enumHandles.get(fieldTypeResolution.symbol) : typeAlias?.enumHandle)\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tname: compositeType.name,\n\t\t\tfields\n\t\t};\n\t});\n}\nfunction collectPolymorphismDeclarations(identities, symbols, sources, binder, specContextFor, discriminatorFieldOf, codecLookup, dataTypes, diagnostics) {\n\tconst pendingDiscriminators = /* @__PURE__ */ new Map();\n\tconst pendingBaseDeclarations = /* @__PURE__ */ new Map();\n\tconst reported = { discriminators: /* @__PURE__ */ new Set() };\n\tfor (const { model, namespaceId, key } of identities.values()) {\n\t\tconst source = diagnosticSource(sources, model.node.syntax);\n\t\tconst discriminatorNode = getAttribute(model.attributes, \"discriminator\")?.node;\n\t\tif (discriminatorNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: discriminatorNode,\n\t\t\t\tsymbols,\n\t\t\t\tspec: sqlAttributeSpecs.model.discriminator(specContextFor(model)),\n\t\t\t\tmodel,\n\t\t\t\tsources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) pendingDiscriminators.set(key, {\n\t\t\t\tdeclaration: {\n\t\t\t\t\tmodel,\n\t\t\t\t\tfieldName: parsed.field,\n\t\t\t\t\tspan: nodePslSpan(discriminatorNode.syntax, sources),\n\t\t\t\t\tsource\n\t\t\t\t},\n\t\t\t\tfield: discriminatorFieldOf(model, parsed.field)\n\t\t\t});\n\t\t\telse reported.discriminators.add(key);\n\t\t}\n\t\tconst baseNode = getAttribute(model.attributes, \"base\")?.node;\n\t\tif (baseNode !== void 0) {\n\t\t\tconst parsed = interpretModelAttribute({\n\t\t\t\tnode: baseNode,\n\t\t\t\tsymbols,\n\t\t\t\tspec: sqlAttributeSpecs.model.base(specContextFor(model)),\n\t\t\t\tmodel,\n\t\t\t\tsources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tif (parsed !== void 0) {\n\t\t\t\tconst base = identities.get(parsed.base.declaration);\n\t\t\t\tinvariant(base !== void 0, `Resolved base model \"${parsed.base.declaration.name}\" is missing from the collected model identities`);\n\t\t\t\tpendingBaseDeclarations.set(key, {\n\t\t\t\t\tmodel,\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\tsource,\n\t\t\t\t\tbase,\n\t\t\t\t\twritten: parsed.value,\n\t\t\t\t\tspan: nodePslSpan(baseNode.syntax, sources)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst discriminatorDeclarations = /* @__PURE__ */ new Map();\n\tconst values = /* @__PURE__ */ new Map();\n\tfor (const [baseKey, { declaration, field }] of pendingDiscriminators) {\n\t\tconst accepted = acceptedDiscriminator(declaration, field, [...pendingBaseDeclarations].filter(([, base]) => base.base.key === baseKey), {\n\t\t\tcodecLookup,\n\t\t\tdataTypes,\n\t\t\tdiagnostics\n\t\t});\n\t\tif (accepted === void 0) {\n\t\t\treported.discriminators.add(baseKey);\n\t\t\tcontinue;\n\t\t}\n\t\tdiscriminatorDeclarations.set(baseKey, declaration);\n\t\tfor (const [variantKey, value] of accepted) values.set(variantKey, value);\n\t}\n\tconst baseDeclarations = /* @__PURE__ */ new Map();\n\tfor (const [key, { model, namespaceId, source, base, span }] of pendingBaseDeclarations) baseDeclarations.set(key, {\n\t\tmodel,\n\t\tnamespaceId,\n\t\tsource,\n\t\tbase,\n\t\tspan,\n\t\tvalue: values.get(key)\n\t});\n\treturn {\n\t\tdiscriminatorDeclarations,\n\t\tbaseDeclarations,\n\t\treported\n\t};\n}\n/**\n* The stored discriminator value of each variant, by the variant's key, when the discriminator rule accepts the field; `undefined` when it refuses the field. A refusal is reported at the `@@discriminator` attribute or at the `@@base` value it is about.\n*/\nfunction acceptedDiscriminator(declaration, discriminatorField, bases, input) {\n\tconst { model, fieldName } = declaration;\n\tconst baseByKey = new Map(bases);\n\tconst decision = applyDiscriminatorRule({\n\t\tfield: discriminatorField.field,\n\t\tvariants: bases.map(([key, base]) => ({\n\t\t\tkey,\n\t\t\twritten: writtenBaseValue(base)\n\t\t})),\n\t\tsubject: `Field \"${model.name}.${fieldName}\"`,\n\t\tcodecLookup: input.codecLookup,\n\t\tdataTypes: input.dataTypes\n\t});\n\tconst baseOf = (variantKey) => {\n\t\tconst base = baseByKey.get(variantKey);\n\t\tinvariant(base !== void 0, \"A refused @@base value belongs to a collected variant\");\n\t\treturn base;\n\t};\n\tconst subject = {\n\t\tmodelName: model.name,\n\t\tfieldName,\n\t\ttypeName: model.fields[fieldName]?.typeName ?? fieldName,\n\t\tenumName: discriminatorField.enumName,\n\t\tvariantName: (variantKey) => baseOf(variantKey).model.name\n\t};\n\tfor (const refusal of decision.fieldRefusals) input.diagnostics.push({\n\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\tmessage: describeDiscriminatorRefusal(refusal, subject),\n\t\t...declaration.source.at(declaration.span)\n\t});\n\tif (decision.fieldRefusals.length > 0) return void 0;\n\tfor (const refusal of decision.variantRefusals) {\n\t\tconst base = baseOf(refusal.key);\n\t\tinput.diagnostics.push({\n\t\t\t...refusal.kind === \"unreadable\" ? refusal.refusal : {\n\t\t\t\tcode: \"PSL_INVALID_ATTRIBUTE_ARGUMENT\",\n\t\t\t\tmessage: describeDiscriminatorRefusal(refusal, subject)\n\t\t\t},\n\t\t\t...base.source.at(base.written.span)\n\t\t});\n\t}\n\treturn decision.values;\n}\n/** A `@@base` value as it is written; the grammar reads only a quoted string there. */\nfunction writtenBaseValue(base) {\n\tif (base.written.written === void 0) throw new InternalError(\"A @@base value is a quoted string, never a tagged literal.\");\n\treturn base.written.written;\n}\nfunction modelLabel(namespaceId, modelName, qualified) {\n\treturn qualified ? `${namespaceId}.${modelName}` : modelName;\n}\nfunction resolvePolymorphism(models, physicalNames, discriminatorDeclarations, baseDeclarations, reported, syntheticPkFieldsByVariant, stiBaseFieldsByBase, diagnostics) {\n\tlet patched = models;\n\tfor (const [baseKey, fieldNames] of stiBaseFieldsByBase) {\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 [modelKey, decl] of discriminatorDeclarations) {\n\t\tconst modelName = decl.model.name;\n\t\tif (baseDeclarations.has(modelKey)) {\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\t...decl.source.at(decl.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst model = patched[modelKey];\n\t\tif (!model) continue;\n\t\tconst variants = {};\n\t\tfor (const baseDecl of baseDeclarations.values()) {\n\t\t\tif (baseDecl.base.key !== modelKey || baseDecl.value === void 0) continue;\n\t\t\tconst variantName = baseDecl.model.name;\n\t\t\tconst existingVariant = variants[baseDecl.value];\n\t\t\tif (existingVariant) {\n\t\t\t\tconst qualified = existingVariant.namespace !== baseDecl.base.namespaceId || baseDecl.namespaceId !== baseDecl.base.namespaceId;\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 \"${modelLabel(existingVariant.namespace, existingVariant.model, qualified)}\" and \"${modelLabel(baseDecl.namespaceId, variantName, qualified)}\" on base model \"${modelLabel(baseDecl.base.namespaceId, modelName, qualified)}\"`,\n\t\t\t\t\t...baseDecl.source.at(baseDecl.span)\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvariants[baseDecl.value] = crossRef(variantName, baseDecl.namespaceId);\n\t\t}\n\t\tif (Object.keys(variants).length === 0) {\n\t\t\tif ([...baseDeclarations.values()].some((baseDecl) => baseDecl.base.key === modelKey && baseDecl.value === void 0)) continue;\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\t...decl.source.at(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[modelKey]: {\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 [variantKey, baseDecl] of baseDeclarations) {\n\t\tconst baseName = baseDecl.base.model.name;\n\t\tif (!discriminatorDeclarations.has(baseDecl.base.key)) {\n\t\t\tif (reported.discriminators.has(baseDecl.base.key)) continue;\n\t\t\tconst qualified = baseDecl.namespaceId !== baseDecl.base.namespaceId;\n\t\t\tconst variantLabel = modelLabel(baseDecl.namespaceId, baseDecl.model.name, qualified);\n\t\t\tconst baseLabel = modelLabel(baseDecl.base.namespaceId, baseName, qualified);\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_ORPHANED_BASE\",\n\t\t\t\tmessage: `Model \"${variantLabel}\" declares @@base(${baseLabel}, ...) but \"${baseLabel}\" has no @@discriminator`,\n\t\t\t\t...baseDecl.source.at(baseDecl.span)\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (discriminatorDeclarations.has(variantKey)) continue;\n\t\tconst variantModel = patched[variantKey];\n\t\tif (!variantModel) continue;\n\t\tconst resolvedTable = storageName(getAttribute(baseDecl.model.attributes, \"map\") !== void 0 ? baseDecl.model : baseDecl.base.model, physicalNames);\n\t\tconst patchedVariant = {\n\t\t\t...variantModel,\n\t\t\tbase: crossRef(baseName, baseDecl.base.namespaceId),\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[variantKey]: stripStorageOnlyDomainFields(patchedVariant, syntheticPkFieldsByVariant.get(variantKey) ?? [])\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, stiVariantKeys, defaultNamespaceId) {\n\tconst keyOf = (node) => modelCoordinateKey(node.namespaceId ?? defaultNamespaceId, node.modelName);\n\tconst nodeByModel = new Map(modelNodes.map((node) => [keyOf(node), node]));\n\tconst syntheticPkFieldsByVariant = /* @__PURE__ */ new Map();\n\treturn {\n\t\tmodelNodes: modelNodes.map((node) => {\n\t\t\tconst variantKey = keyOf(node);\n\t\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\t\tif (!baseDecl) return node;\n\t\t\tconst baseNode = nodeByModel.get(baseDecl.base.key);\n\t\t\tif (!baseNode) return node;\n\t\t\tif (stiVariantKeys.has(variantKey)) 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) => 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\tmany: false\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (linkFields.length === 0) return node;\n\t\t\tsyntheticPkFieldsByVariant.set(variantKey, 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\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, stiVariantKeys, defaultNamespaceId) {\n\tif (stiVariantKeys.size === 0) return {\n\t\tmodelNodes: [...modelNodes],\n\t\tstiBaseFieldsByBase: /* @__PURE__ */ new Map()\n\t};\n\tconst keyOf = (node) => modelCoordinateKey(node.namespaceId ?? defaultNamespaceId, node.modelName);\n\tconst nodeByModel = new Map(modelNodes.map((node) => [keyOf(node), node]));\n\tconst stiColumnsByBase = /* @__PURE__ */ new Map();\n\tfor (const variantKey of stiVariantKeys) {\n\t\tconst variantNode = nodeByModel.get(variantKey);\n\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\tif (!variantNode || !baseDecl) continue;\n\t\tconst baseNode = nodeByModel.get(baseDecl.base.key);\n\t\tif (!baseNode) continue;\n\t\tconst baseColumns = new Set(baseNode.fields.map((field) => field.columnName));\n\t\tconst claimed = stiColumnsByBase.get(baseDecl.base.key) ?? [];\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.base.key, 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 (stiVariantKeys.has(keyOf(node))) return {\n\t\t\t\t...node,\n\t\t\t\tsharesBaseTable: true\n\t\t\t};\n\t\t\tconst stiColumns = stiColumnsByBase.get(keyOf(node));\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 backrelationTargetSymbol(field, binder) {\n\tconst typeReference = typeReferenceNode(field);\n\tif (typeReference === void 0) return void 0;\n\tconst resolution = binder.symbolForNode(typeReference);\n\treturn resolution?.kind === \"model\" ? resolution.symbol : void 0;\n}\nfunction relationTargetKindLabel(resolution) {\n\tswitch (resolution.kind) {\n\t\tcase \"compositeType\": return \"composite type\";\n\t\tcase \"namedType\": return \"type alias\";\n\t\tcase \"block\": return resolution.symbol.keyword;\n\t\tcase \"namespace\":\n\t\tcase \"contributedNamespace\": return \"namespace\";\n\t\tcase \"contributedType\": return \"type\";\n\t\tdefault: return;\n\t}\n}\n/**\n* The relation a refusal of `index: \"<name>\"` belongs to, and the message to report there; `undefined` for every other error.\n*/\nfunction relationIndexRefusal(error, locations) {\n\tif (!isStructuredError(error) || error.meta?.[\"reason\"] !== FOREIGN_KEY_INDEX_UNRESOLVED) return;\n\tconst { namespaceId, tableName, columns, index } = error.meta ?? {};\n\tconst at = locations.find((candidate) => candidate.namespaceId === namespaceId && candidate.tableName === tableName && candidate.index === index && Array.isArray(columns) && candidate.columns.length === columns.length && candidate.columns.every((column, position) => column === columns[position]));\n\tif (at === void 0) return void 0;\n\treturn {\n\t\tat,\n\t\tmessage: error.fix === void 0 ? error.message : `${error.message} ${error.fix}`\n\t};\n}\nfunction interpretPslDocumentToSqlContract(input) {\n\tif (!input.target) throw new InternalError(\"PSL interpretation requires an explicit target context from composition.\");\n\tif (!input.scalarColumnDescriptors) throw new InternalError(\"PSL interpretation requires composed scalar type descriptors.\");\n\tconst [anchorDocument] = input.documents;\n\tassertDefined(anchorDocument, \"interpretPslDocumentToSqlContract requires at least one document\");\n\tconst source = diagnosticSource(input.sources, anchorDocument.syntax);\n\tconst diagnostics = createPslDiagnosticCollector(input.sources);\n\tconst modelAttributesByName = buildModelAttributesByName(input.authoringContributions);\n\tconst contributedModelSpecs = modelAttributeSpecsFrom(modelAttributesByName);\n\tconst composedPslBlockDescriptors = input.authoringContributions?.pslBlockDescriptors ?? {};\n\tconst { binder, dataTypes } = input;\n\tconst defaultFunctionRegistry = input.controlMutationDefaults?.defaultFunctionRegistry ?? /* @__PURE__ */ new Map();\n\tconst { generatorFunctions } = input;\n\tconst specContextFor = (model) => modelSpecContext({\n\t\tsymbols: input.symbolTable,\n\t\tmodel,\n\t\tdefaultFunctionRegistry,\n\t\tgeneratorFunctions,\n\t\tdataTypes\n\t});\n\tconst namespaceSymbols = Object.values(input.symbolTable.namespaces);\n\tvalidateNamespaceBlocksForSqlTarget({\n\t\tnamespaces: namespaceSymbols,\n\t\ttargetId: input.target.targetId,\n\t\tsource,\n\t\tsources: input.sources,\n\t\tbinder,\n\t\tdiagnostics\n\t});\n\tconst { parsedBlocks, diagnostics: blockDiagnostics } = interpretExtensionBlocks({\n\t\tsymbolTable: input.symbolTable,\n\t\tsources: input.sources,\n\t\tpslBlockDescriptors: composedPslBlockDescriptors,\n\t\tbinder,\n\t\tdataTypes\n\t});\n\tdiagnostics.push(...blockDiagnostics);\n\tvalidateBlockModelAttributeRequirements({\n\t\tparsedBlocks,\n\t\tpslBlockDescriptors: composedPslBlockDescriptors,\n\t\tsources: input.sources,\n\t\tdiagnostics\n\t});\n\tconst models = [];\n\tconst modelEntries = [];\n\tconst compositeTypes = [];\n\tfor (const namespace of namespaceSymbols) {\n\t\tfor (const model of Object.values(namespace.models)) {\n\t\t\tmodels.push(model);\n\t\t\tmodelEntries.push({\n\t\t\t\tmodel,\n\t\t\t\tnamespaceId: namespace.id\n\t\t\t});\n\t\t}\n\t\tcompositeTypes.push(...Object.values(namespace.compositeTypes));\n\t}\n\tconst physicalNames = /* @__PURE__ */ new Map();\n\tfor (const model of models) {\n\t\tconst mapNode = getAttribute(model.attributes, \"map\")?.node;\n\t\tconst mapped = mapNode === void 0 ? void 0 : interpretModelAttribute({\n\t\t\tnode: mapNode,\n\t\t\tsymbols: input.symbolTable,\n\t\t\tspec: sqlAttributeSpecs.model.map(specContextFor(model)),\n\t\t\tmodel,\n\t\t\tsources: input.sources,\n\t\t\tbinder,\n\t\t\tdiagnostics\n\t\t});\n\t\tphysicalNames.set(model, mapped?.name ?? defaultTableName(model.name));\n\t\tfor (const field of Object.values(model.fields)) {\n\t\t\tconst mapNode = getAttribute(field.attributes, \"map\")?.node;\n\t\t\tconst mapped = mapNode === void 0 ? void 0 : interpretFieldAttribute({\n\t\t\t\tnode: mapNode,\n\t\t\t\tsymbols: input.symbolTable,\n\t\t\t\tspec: sqlAttributeSpecs.field.map(fieldSpecContext({\n\t\t\t\t\t...specContextFor(model),\n\t\t\t\t\tfield,\n\t\t\t\t\tbinder\n\t\t\t\t})),\n\t\t\t\tmodel,\n\t\t\t\tfield,\n\t\t\t\tsources: input.sources,\n\t\t\t\tbinder,\n\t\t\t\tdiagnostics\n\t\t\t});\n\t\t\tphysicalNames.set(field, mapped?.name ?? field.name);\n\t\t}\n\t}\n\tconst defaultNamespaceId = input.symbolTable.defaultNamespace.id;\n\tconst composedExtensions = new Set(input.composedExtensions ?? []);\n\tconst composedExtensionContracts = input.composedExtensionContracts;\n\tconst isEnumBlock = (block) => block.keyword === \"enum\";\n\tconst legitimateBlockKeywords = claimedBlockKeywords(input.authoringContributions?.pslBlockDescriptors);\n\tconst reportUnsupportedTopLevelBlock = (block) => {\n\t\tdiagnostics.push(unsupportedBlockDiagnostic(block, input.sources));\n\t};\n\tconst topLevelEnums = [];\n\tconst extensionBlocksByNamespace = /* @__PURE__ */ new Map();\n\tfor (const namespace of namespaceSymbols) {\n\t\tconst extensionBlocks = {};\n\t\textensionBlocksByNamespace.set(namespace, extensionBlocks);\n\t\tfor (const [blockName, block] of Object.entries(namespace.blocks)) {\n\t\t\tconst writtenNamespace = block.node.syntax.findAncestor(NamespaceDeclarationAst.cast);\n\t\t\tif (writtenNamespace === void 0) {\n\t\t\t\tif (!legitimateBlockKeywords.has(block.keyword)) reportUnsupportedTopLevelBlock(block);\n\t\t\t\telse if (isEnumBlock(block)) topLevelEnums.push(block);\n\t\t\t\telse extensionBlocks[blockName] = block;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\textensionBlocks[blockName] = block;\n\t\t\tif (isEnumBlock(block)) {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\tcode: \"PSL_ENUM_NAMESPACE_NOT_SUPPORTED\",\n\t\t\t\t\tmessage: `enum \"${block.name}\" inside namespace \"${writtenNamespace.name()?.name() ?? namespace.name}\" is not supported; declare enum at the top level`,\n\t\t\t\t\t...diagnosticSource(input.sources, block.node.syntax).at(nodePslSpan(block.node.syntax, input.sources))\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!legitimateBlockKeywords.has(block.keyword)) reportUnsupportedTopLevelBlock(block);\n\t\t}\n\t}\n\tconst enumResult = processEnumDeclarations({\n\t\tenumBlocks: topLevelEnums,\n\t\tparsedBlocks,\n\t\tsource,\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\tcodecLookup: input.codecLookup,\n\t\t\tdataTypes: input.dataTypes,\n\t\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\t\tdiagnostics: { push: (d) => {\n\t\t\t\tdiagnostics.pushExternal(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 = enumResult.enumTypeDescriptors;\n\tconst enumHandles = enumResult.enumHandles;\n\tconst validEnumHandles = Object.fromEntries(Array.from(enumHandles, ([symbol, handle]) => [symbol.name, handle]));\n\tconst entityTypesByDiscriminator = buildEntityTypesByDiscriminator(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\tcodecLookup: input.codecLookup,\n\t\tdataTypes: input.dataTypes,\n\t\tsourceId: source.sources.sourceFileFor(source.node).filename,\n\t\tdiagnostics: { push: (d) => {\n\t\t\tdiagnostics.pushExternal(blindCast(d));\n\t\t} },\n\t\twarnings: authoringWarnings\n\t};\n\tconst namespaceIdByModel = new Map(modelEntries.map(({ model, namespaceId }) => [model, namespaceId]));\n\tconst modelCoordinateOf = (model) => {\n\t\tconst namespaceId = namespaceIdByModel.get(model);\n\t\treturn namespaceId === void 0 ? void 0 : {\n\t\t\tnamespaceId,\n\t\t\ttableName: storageName(model, physicalNames)\n\t\t};\n\t};\n\tconst namespaceExtensionEntities = /* @__PURE__ */ new Map();\n\tconst fileExtensionEntityRows = (rows, blocks) => {\n\t\tfor (const row of rows) {\n\t\t\tlet entities = namespaceExtensionEntities.get(row.namespaceId);\n\t\t\tif (entities === void 0) {\n\t\t\t\tentities = {};\n\t\t\t\tnamespaceExtensionEntities.set(row.namespaceId, entities);\n\t\t\t}\n\t\t\tconst slot = entities[row.entityKind] ?? {};\n\t\t\tentities[row.entityKind] = slot;\n\t\t\tif (Object.hasOwn(slot, row.key)) {\n\t\t\t\tconst block = Object.values(blocks).find((candidate) => candidate.name === row.key);\n\t\t\t\tinvariant(block !== void 0, \"Lowered entity has an owning block\");\n\t\t\t\tdiagnostics.pushUnlocated({\n\t\t\t\t\tcode: \"PSL_DUPLICATE_EXTENSION_ENTITY\",\n\t\t\t\t\tmessage: `entries slot \"${row.entityKind}\" in namespace \"${row.namespaceId}\": entity \"${row.key}\" is declared more than once in the same namespace.`,\n\t\t\t\t\t...diagnosticSource(input.sources, block.node.syntax).at()\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tslot[row.key] = row.entity;\n\t\t}\n\t};\n\tfor (const [namespace, extensionBlocks] of extensionBlocksByNamespace) fileExtensionEntityRows(lowerExtensionBlocksForNamespace(extensionBlocks, namespace.id, entityTypesByDiscriminator, extensionEntityContext, parsedBlocks, modelCoordinateOf, input.sources), extensionBlocks);\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)) {\n\t\t\tconst enumSymbol = input.symbolTable.defaultNamespace.blocks[name];\n\t\t\tinvariant(enumSymbol !== void 0, \"Domain enum has an owning block\");\n\t\t\tdiagnostics.pushUnlocated({\n\t\t\t\tcode: \"PSL_VALUE_SET_NAME_COLLISION\",\n\t\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\t\t...diagnosticSource(input.sources, enumSymbol.node.syntax).at()\n\t\t\t});\n\t\t}\n\t}\n\tconst typeAliases = resolveNamedTypeDeclarations({\n\t\tdeclarations: Object.values(input.symbolTable.namedTypes),\n\t\tsources: input.sources,\n\t\tsymbolTable: input.symbolTable,\n\t\tbinder,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tenumHandles,\n\t\tcodecLookup: input.codecLookup,\n\t\tdefaultFunctionRegistry,\n\t\tgeneratorFunctions,\n\t\tdataTypes,\n\t\tdiagnostics,\n\t\tauthoringTypes: input.authoringContributions?.type\n\t});\n\tconst modelNodes = /* @__PURE__ */ new Map();\n\tconst fkRelationMetadata = [];\n\tconst relationIndexLocations = [];\n\tconst invalidFkPairings = [];\n\tconst backrelationCandidates = [];\n\tconst crossSpaceRelationsByModel = /* @__PURE__ */ new Map();\n\tconst modelAttributeEntitiesByNamespace = /* @__PURE__ */ new Map();\n\tconst valueObjects = buildValueObjectNodes({\n\t\tcompositeTypes,\n\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\tenumHandles,\n\t\ttypeAliases,\n\t\tdiagnostics,\n\t\tsources: input.sources,\n\t\tdefaultNamespaceId,\n\t\tnamespaceExtensionEntities,\n\t\tcodecLookup: input.codecLookup,\n\t\tdataTypes: input.dataTypes,\n\t\tbinder\n\t});\n\tconst valueObjectTypes = {\n\t\tnodes: new Map(valueObjects.map((valueObject) => [valueObject.name, valueObject])),\n\t\tdeclaredMembers: new Map(compositeTypes.map((compositeType) => [compositeType.name, new Set(Object.keys(compositeType.fields))]))\n\t};\n\tfor (const { model, namespaceId } of modelEntries) {\n\t\tconst result = buildModelNodeFromPsl({\n\t\t\tmodel,\n\t\t\tphysicalNames,\n\t\t\tnamespaceId,\n\t\t\tvalueObjectTypes,\n\t\t\tenumTypeDescriptors: allEnumTypeDescriptors,\n\t\t\ttypeAliases,\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\tgeneratorFunctions,\n\t\t\tdataTypes,\n\t\t\tscalarColumnDescriptors: input.scalarColumnDescriptors,\n\t\t\tsources: input.sources,\n\t\t\tbinder,\n\t\t\tsymbolTable: input.symbolTable,\n\t\t\tdiagnostics,\n\t\t\tenumHandles,\n\t\t\tcapabilities: input.capabilities,\n\t\t\t...namespaceExtensionEntities.size > 0 ? { namespaceExtensionEntities } : {},\n\t\t\tcodecLookup: input.codecLookup,\n\t\t\tmodelAttributesByName,\n\t\t\tcontributedModelAttributeSpecs: contributedModelSpecs,\n\t\t\tparsedBlocks\n\t\t});\n\t\tmodelNodes.set(model, {\n\t\t\t...result.modelNode,\n\t\t\tnamespaceId\n\t\t});\n\t\tfkRelationMetadata.push(...result.fkRelationMetadata);\n\t\trelationIndexLocations.push(...result.relationIndexLocations);\n\t\tinvalidFkPairings.push(...result.invalidFkPairings);\n\t\tbackrelationCandidates.push(...result.backrelationCandidates);\n\t\tif (result.crossSpaceRelations.length > 0) {\n\t\t\tconst existing = crossSpaceRelationsByModel.get(model) ?? [];\n\t\t\tcrossSpaceRelationsByModel.set(model, [...existing, ...result.crossSpaceRelations]);\n\t\t}\n\t\tif (Object.keys(result.modelAttributeEntities).length > 0) {\n\t\t\tconst existingByAttribute = modelAttributeEntitiesByNamespace.get(namespaceId) ?? {};\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(namespaceId, 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 [model, modelNode] of modelNodes) {\n\t\tif (modelNode.id) modelIdColumns.set(model, 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\tfor (const index of modelNode.indexes ?? []) if (index.unique === true && index.columns !== void 0 && index.where === void 0) uniqueColumnSets.push(index.columns);\n\t\tmodelUniqueColumnSets.set(model, uniqueColumnSets);\n\t}\n\tapplyBackrelationCandidates({\n\t\tbackrelationCandidates,\n\t\tfkRelationsByPair,\n\t\tinvalidFkPairings,\n\t\tfkRelationsByDeclaringModel,\n\t\tmodelIdColumns,\n\t\tmodelUniqueColumnSets,\n\t\tmodelRelations,\n\t\tdiagnostics,\n\t\tsources: input.sources\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 modelIdentities = new Map(modelEntries.map(({ model, namespaceId }) => [model, {\n\t\tmodel,\n\t\tnamespaceId,\n\t\tkey: modelCoordinateKey(namespaceId, model.name)\n\t}]));\n\tconst discriminatorFieldOf = (model, fieldName) => {\n\t\tconst field = modelNodes.get(model)?.fields.find((node) => node.fieldName === fieldName);\n\t\tif (field === void 0 || !(\"columnName\" in field)) return {\n\t\t\tfield: {\n\t\t\t\tref: void 0,\n\t\t\t\tnullable: false,\n\t\t\t\tmany: false,\n\t\t\t\tenumMembers: void 0\n\t\t\t},\n\t\t\tenumName: void 0\n\t\t};\n\t\tconst handle = \"enumTypeHandle\" in field ? field.enumTypeHandle : void 0;\n\t\tconst encoded = handle === void 0 ? void 0 : encodeEnumMembers(handle, input.codecLookup);\n\t\treturn {\n\t\t\tfield: {\n\t\t\t\tref: {\n\t\t\t\t\tcodecId: field.descriptor.codecId,\n\t\t\t\t\t...ifDefined(\"typeParams\", field.descriptor.typeParams === void 0 ? void 0 : blindCast(field.descriptor.typeParams))\n\t\t\t\t},\n\t\t\t\tnullable: field.nullable,\n\t\t\t\tmany: field.many === true,\n\t\t\t\tenumMembers: encoded?.ok ? encoded.value.map(({ value }) => value) : void 0\n\t\t\t},\n\t\t\tenumName: handle?.enumName\n\t\t};\n\t};\n\tconst { discriminatorDeclarations, baseDeclarations, reported } = collectPolymorphismDeclarations(modelIdentities, input.symbolTable, input.sources, binder, specContextFor, discriminatorFieldOf, input.codecLookup, dataTypes, diagnostics);\n\tconst stiVariantKeys = /* @__PURE__ */ new Set();\n\tfor (const [variantKey, declaration] of baseDeclarations) if (!(getAttribute(declaration.model.attributes, \"map\") !== void 0)) stiVariantKeys.add(variantKey);\n\tfor (const variantKey of stiVariantKeys) {\n\t\tconst baseDecl = baseDeclarations.get(variantKey);\n\t\tinvariant(baseDecl !== void 0, `stiVariantKeys is derived from baseDeclarations.keys(), so \"${variantKey}\" must have a base declaration`);\n\t\tconst variantName = baseDecl.model.name;\n\t\tif (baseDecl.namespaceId !== baseDecl.base.namespaceId) {\n\t\t\tconst variantLabel = modelLabel(baseDecl.namespaceId, variantName, true);\n\t\t\tconst baseLabel = modelLabel(baseDecl.base.namespaceId, baseDecl.base.model.name, true);\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: \"PSL_BASE_IN_OTHER_NAMESPACE_WITHOUT_MAP\",\n\t\t\t\tmessage: `Model \"${variantLabel}\" declares @@base(${baseLabel}, ...) without @@map, so it would share the table of \"${baseLabel}\", which belongs to namespace \"${baseDecl.base.namespaceId}\". Add @@map to give \"${variantLabel}\" its own table.`,\n\t\t\t\t...baseDecl.source.at(baseDecl.span)\n\t\t\t});\n\t\t}\n\t\tfor (const attribute of baseDecl.model.attributes) {\n\t\t\tif (attribute.node.name()?.isSimpleName(\"check\") !== true) continue;\n\t\t\tdiagnostics.push({\n\t\t\t\tcode: PSL_CHECK_ON_STI_VARIANT,\n\t\t\t\tmessage: `Model \"${variantName}\" declares \"@@check\", but it shares its base model \"${baseDecl.base.model.name}\"'s storage table (single-table inheritance via @@base) and has no table of its own to declare a check constraint on. Declare the check on \"${baseDecl.base.model.name}\" instead.`,\n\t\t\t\t...diagnosticSource(input.sources, attribute.node.syntax).at(nodePslSpan(attribute.node.syntax, input.sources))\n\t\t\t});\n\t\t}\n\t}\n\tconst { modelNodes: mtiLinkedModelNodes, syntheticPkFieldsByVariant } = materializeMtiVariantStorageLinks(Array.from(modelNodes, ([symbol, model]) => ({\n\t\t...model,\n\t\t...modelRelations.has(symbol) ? { relations: [...modelRelations.get(symbol) ?? []].sort((left, right) => compareStrings(left.fieldName, right.fieldName)) } : {}\n\t})), baseDeclarations, stiVariantKeys, defaultNamespaceId);\n\tconst { modelNodes: stiColumnModelNodes, stiBaseFieldsByBase } = materializeStiVariantStorageColumns(mtiLinkedModelNodes, baseDeclarations, stiVariantKeys, defaultNamespaceId);\n\tif (diagnostics.length > 0 || (input.seedDiagnostics?.length ?? 0) > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: [...input.seedDiagnostics ?? [], ...diagnostics.toExternal()]\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\tlet contract;\n\ttry {\n\t\tcontract = buildSqlContractFromDefinition({\n\t\t\ttarget: input.target,\n\t\t\tcapabilities: input.capabilities,\n\t\t\twarnings: authoringWarnings.length > 0 ? authoringWarnings : void 0,\n\t\t\t...ifDefined(\"extensions\", buildComposedExtensionPackRefs(input.target, [...composedExtensions].sort(compareStrings), input.composedExtensionPackRefs)),\n\t\t\t...Object.keys(validEnumHandles).length > 0 ? { enums: validEnumHandles } : {},\n\t\t\t...namespaceExtensionEntities.size > 0 ? { namespaces: [...namespaceExtensionEntities.keys()] } : {},\n\t\t\tcreateNamespace: createNamespaceWithExtensions,\n\t\t\t...ifDefined(\"valueObjects\", valueObjects.length > 0 ? valueObjects : void 0),\n\t\t\tmodels: stiColumnModelNodes\n\t\t}, input.codecLookup, input.dataTypes.lookup);\n\t} catch (error) {\n\t\tconst refusal = relationIndexRefusal(error, relationIndexLocations);\n\t\tif (refusal === void 0) throw error;\n\t\tdiagnostics.push({\n\t\t\tcode: \"PSL_INVALID_RELATION_ATTRIBUTE\",\n\t\t\tmessage: refusal.message,\n\t\t\t...refusal.at.location\n\t\t});\n\t\treturn notOk({\n\t\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\t\tdiagnostics: diagnostics.toExternal()\n\t\t});\n\t}\n\tconst modelsByCoordinate = {};\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(modelsByCoordinate, coordinate), `symbol table guarantees coordinate uniqueness; duplicate model \"${namespaceId}.${modelName}\" reached interpretation`);\n\t\tmodelsByCoordinate[coordinate] = model;\n\t}\n\tconst polyDiagnostics = createPslDiagnosticCollector(input.sources);\n\tconst polymorphicModels = resolvePolymorphism(modelsByCoordinate, physicalNames, discriminatorDeclarations, baseDeclarations, reported, syntheticPkFieldsByVariant, stiBaseFieldsByBase, polyDiagnostics);\n\tif (polyDiagnostics.length > 0) return notOk({\n\t\tsummary: \"PSL to SQL contract interpretation failed\",\n\t\tdiagnostics: polyDiagnostics.toExternal()\n\t});\n\tconst filteredRoots = Object.fromEntries(Object.entries(contract.roots).filter(([, crossReference]) => !baseDeclarations.has(modelCoordinateKey(crossReference.namespace, 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, polymorphicModels[modelCoordinateKey(namespaceId, modelName)] ?? model])),\n\t\t\t...ifDefined(\"enum\", namespaceSlice.enum),\n\t\t\t...ifDefined(\"valueObjects\", namespaceSlice.valueObjects)\n\t\t}])) }\n\t});\n}\n//#endregion\nexport { normalizeReferentialAction as a, indexFkRelations as i, interpretPslDocumentToSqlContract as n, applyBackrelationCandidates as r, buildEntityTypesByDiscriminator as t };\n\n//# sourceMappingURL=interpreter-BDpym-rc.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- //#region ../../../2-sql/9-family/dist/ir.mjs
1
+ //#region ../../../2-sql-family/9-family/dist/ir.mjs
2
2
  /**
3
3
  * SQL family `SchemaVerifier` abstract base. Centralises the SQL-shared
4
4
  * walk (table-by-table + column-by-column matching keyed by
@@ -33,4 +33,4 @@ var SqlSchemaVerifierBase = class {
33
33
  //#endregion
34
34
  export { SqlSchemaVerifierBase as t };
35
35
 
36
- //# sourceMappingURL=ir-I-xciGUH.mjs.map
36
+ //# sourceMappingURL=ir-DzsUDO8e.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-DzsUDO8e.mjs","names":[],"sources":["../../../../2-sql-family/9-family/dist/ir.mjs"],"sourcesContent":["import { n as SqlContractSerializerBase, t as SqlContractSerializer } from \"./sql-contract-serializer-sMY3prTx.mjs\";\n//#region src/core/ir/sql-schema-verifier-base.ts\n/**\n* SQL family `SchemaVerifier` abstract base. Centralises the SQL-shared\n* walk (table-by-table + column-by-column matching keyed by\n* `(namespace.id, name)`, FK / unique / index comparisons via the\n* shared satisfaction helpers in `sql-schema-diff.ts`) and exposes a protected hook\n* for target extensions (Postgres functions, RLS policies, future\n* target-only kinds).\n*\n* The base accumulates issues in a single buffer and returns the\n* combined result; the per-SPI family abstract handles the result\n* envelope shape so concrete subclasses focus on target-specific\n* verification logic.\n*\n* The protected hooks (`verifyCommonSqlSchema`,\n* `verifyTargetExtensions`) carry the stable base API that target\n* subclasses (`PostgresSchemaVerifier`, `SqliteSchemaVerifier`)\n* compile against; the SQL-shared walk implementation will be lifted\n* into this base when the verifier behaviour migrates off the\n* legacy adapter shells.\n*/\nvar SqlSchemaVerifierBase = class {\n\tverifySchema(options) {\n\t\tconst issues = [];\n\t\tissues.push(...this.verifyCommonSqlSchema(options));\n\t\tissues.push(...this.verifyTargetExtensions(options));\n\t\treturn {\n\t\t\tok: issues.length === 0,\n\t\t\tissues\n\t\t};\n\t}\n};\n//#endregion\nexport { SqlContractSerializer, SqlContractSerializerBase, SqlSchemaVerifierBase };\n\n//# sourceMappingURL=ir.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,IAAI,wBAAwB,MAAM;CACjC,aAAa,SAAS;EACrB,MAAM,SAAS,CAAC;EAChB,OAAO,KAAK,GAAG,KAAK,sBAAsB,OAAO,CAAC;EAClD,OAAO,KAAK,GAAG,KAAK,uBAAuB,OAAO,CAAC;EACnD,OAAO;GACN,IAAI,OAAO,WAAW;GACtB;EACD;CACD;AACD"}
@@ -1,11 +1,11 @@
1
- import { c as SqlNamespaceInput, d as SqlStorageTypeEntry, l as SqlStorage } from "./sql-storage-DeCAh5Hi-nJQUIgfL.mjs";
2
- import "./types-CRbj_WQf.mjs";
1
+ import { c as SqlNamespaceInput, d as SqlStorageTypeEntry, l as SqlStorage } from "./sql-storage-DeCAh5Hi-CEM-m8cs.mjs";
2
+ import "./types-B0J6ZASy.mjs";
3
3
  import { AnyEntityKindDescriptor, Namespace } from "@prisma/orm-framework/components/ir";
4
4
  import { DataTypeLookup } from "@prisma/orm-framework/components/codec";
5
5
  import { Contract } from "@prisma/orm-framework/contract/types";
6
6
  import { ContractSerializer, SchemaDiffIssue, SchemaVerifier, SchemaVerifyOptions, SchemaVerifyResult } from "@prisma/orm-framework/components/control";
7
7
  import { JsonObject } from "@prisma/orm-framework/utils/json";
8
- //#region ../../../2-sql/9-family/dist/ir.d.mts
8
+ //#region ../../../2-sql-family/9-family/dist/ir.d.mts
9
9
  //#region src/core/ir/sql-contract-serializer-base.d.ts
10
10
  type SqlEntityHydrationFactory = (entry: unknown) => unknown;
11
11
  /**
@@ -126,4 +126,4 @@ declare abstract class SqlSchemaVerifierBase<TContract, TSchema> implements Sche
126
126
  }
127
127
  //#endregion
128
128
  export { SqlSchemaVerifierBase as i, SqlContractSerializerBase as n, SqlEntityHydrationFactory as r, SqlContractSerializer as t };
129
- //# sourceMappingURL=ir-BjC1VOuq.d.mts.map
129
+ //# sourceMappingURL=ir-VGuTeCGp.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir-VGuTeCGp.d.mts","names":[],"sources":["../../../../2-sql-family/9-family/dist/ir.d.mts"],"mappings":";;;;;;;;;KAOK,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;uBAyBX,0BAA0B,kBAAkB,SAAS,wBAAwB,mBAAmB;qBAClG,yBAAyB,oBAAoB;mBAC/C;mBACA;mBACA;EACjB,YAAY,0BAA0B,oBAAoB,4BAA4B,2BAA2B,2BAA2B,YAAY,KAAK;EAC7J,oBAAoB,UAAU,YAAY,WAAW,gBAAgB;EACrE,kBAAkB,UAAU,YAAY;EACxC,0DAA0D;EAC1D,kDAAkD;EAClD;aACW,0DAA0D;aAC1D,kDAAkD;;YAEnD,0BAA0B,gBAAgB,SAAS;YACnD,kBAAkB,WAAW,SAAS,cAAc,SAAS;YAC7D,uBAAuB,YAAY,SAAS,eAAe,4BAA4B,SAAS,eAAe;YAC/G,yBAAyB,cAAc,KAAK,0BAA0B,YAAY;YAClF,wBAAwB,OAAO,sBAAsB;YACrD,wBAAwB,UAAU,SAAS,cAAc;;;;;;;;;;;YAWzD,0BAA0B,SAAS,SAAS,eAAe,SAAS,6BAA6B,eAAe,eAAe;UACjI;YACE,oBAAoB,iBAAiB;UACvC;;;;;;;;;;;;;;;;;;cAkBI,8BAA8B,0BAA0B,SAAS;EAC7E;;;;;;;;;;;;;;;;;;;;;;;;uBAwBqB,sBAAsB,WAAW,oBAAoB,eAAe,WAAW;EACpG,aAAa,SAAS,oBAAoB,WAAW,WAAW;;;;;;;qBAO7C,sBAAsB,SAAS,oBAAoB,WAAW,oBAAoB;;;;;;qBAMlF,uBAAuB,SAAS,oBAAoB,WAAW,oBAAoB"}
@@ -0,0 +1 @@
1
+ import "./middleware-DHkW6pRr-B67Dujfd.mjs";
@@ -1,6 +1,6 @@
1
- import { t as SqlExecutionPlan } from "./sql-execution-plan-3uxYjHyu-C0Z4_RSY.mjs";
1
+ import { t as SqlExecutionPlan } from "./sql-execution-plan-3uxYjHyu-Cl0eB5av.mjs";
2
2
  import { ParamRefMutator } from "@prisma/orm-framework/components/runtime";
3
- //#region ../../../2-sql/4-lanes/relational-core/dist/middleware-DHkW6pRr.d.mts
3
+ //#region ../../../2-sql-family/4-lanes/relational-core/dist/middleware-DHkW6pRr.d.mts
4
4
  //#region src/middleware/param-ref-mutator.d.ts
5
5
  /**
6
6
  * Brand applied to {@link ParamRefHandle} so user-constructed handles
@@ -116,4 +116,4 @@ interface SqlParamRefMutatorInternal<TCodecMap extends Record<string, unknown> =
116
116
  declare function createSqlParamRefMutator<TCodecMap extends Record<string, unknown> = Record<string, unknown>>(plan: SqlExecutionPlan): SqlParamRefMutatorInternal<TCodecMap>;
117
117
  //#endregion
118
118
  export { SqlParamRefMutatorInternal as a, SqlParamRefMutator as i, ParamRefEntryUnion as n, createSqlParamRefMutator as o, ParamRefHandle as r, ParamRefEntry as t };
119
- //# sourceMappingURL=middleware-DHkW6pRr-CFiQojK4.d.mts.map
119
+ //# sourceMappingURL=middleware-DHkW6pRr-B67Dujfd.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-DHkW6pRr-B67Dujfd.d.mts","names":[],"sources":["../../../../2-sql-family/4-lanes/relational-core/dist/middleware-DHkW6pRr.d.mts"],"mappings":";;;;;;;;;;;;;;cAac;;;;;;;;;;UAUJ,eAAe;YACb,sBAAsB;;;;;;;UAOxB,cAAc;WACb,KAAK,eAAe;WACpB;WACA,SAAS;;;;;;;;;;KAUf,mBAAmB,kBAAkB,8BAA8B,WAAW,qBAAqB,cAAc,YAAY,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;UAyB9I,mBAAmB,kBAAkB,0BAA0B,iCAAiC;;EAExG,WAAW,iBAAiB,mBAAmB;;;;;;;EAO/C,aAAa,uBAAuB,oBAAoB,KAAK,eAAe,WAAW,UAAU,UAAU;EAC3G,aAAa,KAAK,2BAA2B;;EAE7C,cAAc,SAAS;aACZ,KAAK,sBAAsB;aAC3B;;;;;;;;;;;;;UAaH,2BAA2B,kBAAkB,0BAA0B,iCAAiC,mBAAmB;EACnI;;;;;;;;;;;;;;;;;iBAiBe,yBAAyB,kBAAkB,0BAA0B,yBAAyB,MAAM,mBAAmB,2BAA2B"}
@@ -1,5 +1,5 @@
1
- import { t as collectOrderedParamRefs } from "./util-BBgcP3gI-XJBkxo1K.mjs";
2
- //#region ../../../2-sql/4-lanes/relational-core/dist/middleware-yBAfiVWn.mjs
1
+ import { t as collectOrderedParamRefs } from "./util-BBgcP3gI-CpL-0VuC.mjs";
2
+ //#region ../../../2-sql-family/4-lanes/relational-core/dist/middleware-yBAfiVWn.mjs
3
3
  /**
4
4
  * Build a {@link SqlParamRefMutatorInternal} for the given lowered plan.
5
5
  *
@@ -77,4 +77,4 @@ function createSqlParamRefMutator(plan) {
77
77
  //#endregion
78
78
  export { createSqlParamRefMutator as t };
79
79
 
80
- //# sourceMappingURL=middleware-yBAfiVWn-CzNCthJT.mjs.map
80
+ //# sourceMappingURL=middleware-yBAfiVWn-DZO0vCRQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-yBAfiVWn-DZO0vCRQ.mjs","names":[],"sources":["../../../../2-sql-family/4-lanes/relational-core/dist/middleware-yBAfiVWn.mjs"],"sourcesContent":["import { t as collectOrderedParamRefs } from \"./util-BBgcP3gI.mjs\";\n//#region src/middleware/param-ref-mutator.ts\n/**\n* Build a {@link SqlParamRefMutatorInternal} for the given lowered plan.\n*\n* The mutator captures `plan.params` by reference and walks\n* `plan.ast` (via `collectOrderedParamRefs`) on demand to build\n* entries. Mutations write to a lazily-allocated working copy so the\n* fast path (no mutation) preserves bit-for-bit reference identity to\n* the original `plan.params`.\n*\n* Threading: `plan.ast` carries the canonical `ParamRef` ordering used\n* by every consumer (renderer's `$N` index map, encode-side metadata\n* walk, etc.). The mutator's `entries()` yields the same order so\n* middleware that filters by codec id sees ParamRefs in the order the\n* runtime will encode them.\n*/\nfunction createSqlParamRefMutator(plan) {\n\tconst originalParams = plan.params;\n\tconst refs = plan.ast ? collectOrderedParamRefs(plan.ast) : [];\n\tlet workingParams;\n\tconst indexOfRef = (handle) => {\n\t\treturn refs.indexOf(handle);\n\t};\n\tconst ensureWorkingParams = () => {\n\t\tif (!workingParams) workingParams = [...originalParams];\n\t\treturn workingParams;\n\t};\n\tconst writeAt = (index, value) => {\n\t\tconst buffer = ensureWorkingParams();\n\t\tbuffer[index] = value;\n\t};\n\tfunction* entries() {\n\t\tconst view = workingParams ?? originalParams;\n\t\tfor (let i = 0; i < refs.length; i++) {\n\t\t\tconst ref = refs[i];\n\t\t\tif (!ref) continue;\n\t\t\tconst handle = ref;\n\t\t\tlet value;\n\t\t\tlet codecId;\n\t\t\tif (ref.kind === \"param-ref\") {\n\t\t\t\tvalue = i < view.length ? view[i] : ref.value;\n\t\t\t\tcodecId = ref.codec?.codecId;\n\t\t\t} else {\n\t\t\t\tvalue = i < view.length ? view[i] : void 0;\n\t\t\t\tcodecId = ref.codec.codecId;\n\t\t\t}\n\t\t\tyield {\n\t\t\t\tref: handle,\n\t\t\t\tvalue,\n\t\t\t\tcodecId\n\t\t\t};\n\t\t}\n\t}\n\tfunction replaceValue(handle, newValue) {\n\t\tconst index = indexOfRef(handle);\n\t\tif (index < 0) return;\n\t\twriteAt(index, newValue);\n\t}\n\tfunction replaceValues(updates) {\n\t\tfor (const { ref, newValue } of updates) {\n\t\t\tconst index = indexOfRef(ref);\n\t\t\tif (index < 0) continue;\n\t\t\twriteAt(index, newValue);\n\t\t}\n\t}\n\treturn {\n\t\tentries,\n\t\treplaceValue,\n\t\treplaceValues,\n\t\tcurrentParams() {\n\t\t\tif (!workingParams) return originalParams;\n\t\t\treturn Object.freeze([...workingParams]);\n\t\t}\n\t};\n}\n//#endregion\nexport { createSqlParamRefMutator as t };\n\n//# sourceMappingURL=middleware-yBAfiVWn.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAAS,yBAAyB,MAAM;CACvC,MAAM,iBAAiB,KAAK;CAC5B,MAAM,OAAO,KAAK,MAAM,wBAAwB,KAAK,GAAG,IAAI,CAAC;CAC7D,IAAI;CACJ,MAAM,cAAc,WAAW;EAC9B,OAAO,KAAK,QAAQ,MAAM;CAC3B;CACA,MAAM,4BAA4B;EACjC,IAAI,CAAC,eAAe,gBAAgB,CAAC,GAAG,cAAc;EACtD,OAAO;CACR;CACA,MAAM,WAAW,OAAO,UAAU;EACjC,MAAM,SAAS,oBAAoB;EACnC,OAAO,SAAS;CACjB;CACA,UAAU,UAAU;EACnB,MAAM,OAAO,iBAAiB;EAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACrC,MAAM,MAAM,KAAK;GACjB,IAAI,CAAC,KAAK;GACV,MAAM,SAAS;GACf,IAAI;GACJ,IAAI;GACJ,IAAI,IAAI,SAAS,aAAa;IAC7B,QAAQ,IAAI,KAAK,SAAS,KAAK,KAAK,IAAI;IACxC,UAAU,IAAI,OAAO;GACtB,OAAO;IACN,QAAQ,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK;IACzC,UAAU,IAAI,MAAM;GACrB;GACA,MAAM;IACL,KAAK;IACL;IACA;GACD;EACD;CACD;CACA,SAAS,aAAa,QAAQ,UAAU;EACvC,MAAM,QAAQ,WAAW,MAAM;EAC/B,IAAI,QAAQ,GAAG;EACf,QAAQ,OAAO,QAAQ;CACxB;CACA,SAAS,cAAc,SAAS;EAC/B,KAAK,MAAM,EAAE,KAAK,cAAc,SAAS;GACxC,MAAM,QAAQ,WAAW,GAAG;GAC5B,IAAI,QAAQ,GAAG;GACf,QAAQ,OAAO,QAAQ;EACxB;CACD;CACA,OAAO;EACN;EACA;EACA;EACA,gBAAgB;GACf,IAAI,CAAC,eAAe,OAAO;GAC3B,OAAO,OAAO,OAAO,CAAC,GAAG,aAAa,CAAC;EACxC;CACD;AACD"}
@@ -1,7 +1,7 @@
1
1
  import { deriveProvidedInvariants } from "@prisma/orm-toolchain/migration-tools/invariants";
2
2
  import { Migration } from "@prisma/orm-toolchain/migration-tools/migration";
3
3
  import { isThenable } from "@prisma/orm-framework/utils/promise";
4
- //#region ../../../2-sql/9-family/dist/migration.mjs
4
+ //#region ../../../2-sql-family/9-family/dist/migration.mjs
5
5
  /**
6
6
  * Family-owned base class for SQL migrations.
7
7
  *
@@ -41,4 +41,4 @@ var SqlMigration = class extends Migration {
41
41
  //#endregion
42
42
  export { SqlMigration as t };
43
43
 
44
- //# sourceMappingURL=migration-Dy_4Wmiy.mjs.map
44
+ //# sourceMappingURL=migration-BJQjkqFz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-BJQjkqFz.mjs","names":[],"sources":["../../../../2-sql-family/9-family/dist/migration.mjs"],"sourcesContent":["import { deriveProvidedInvariants } from \"@internal/migration-tools/invariants\";\nimport { Migration } from \"@internal/migration-tools/migration\";\nimport { isThenable } from \"@internal/utils/promise\";\n//#region src/core/sql-migration.ts\n/**\n* Family-owned base class for SQL migrations.\n*\n* Generic in `TDetails` (family plan target details, e.g. Postgres vs SQLite)\n* and in `TTargetId` (the literal target identifier, e.g. `'postgres'`).\n*\n* Adapters (Postgres, SQLite, …) extend this with a concrete `TDetails` and\n* a fixed `TTargetId` literal, so the public `Migration<TOp>` base sees the\n* fully concrete operation shape. Target-free code in SQL family / tooling\n* parameterises over `TDetails` (and usually `TTargetId = string`).\n*\n* The `Start` / `End` contract generics are forwarded to the framework\n* `Migration` base so the derived `describe()` and the per-target view getters\n* (`PostgresMigration` / `SqliteMigration`) carry each migration's precise\n* contract types. The view getters themselves live on the per-target bases\n* because the SQL ContractView shapes differ per target (SQLite unwraps its\n* sole namespace to the root; Postgres is schema-qualified).\n*\n* Keeps target-free contract/runtime features in the family layer while\n* letting adapters own target shape.\n*/\nvar SqlMigration = class extends Migration {\n\t/**\n\t* Sorted, deduplicated invariant ids declared by this migration's\n\t* data-transform ops. Derived from a fresh read of the operations (`Migration.readOperations`) so the field remains\n\t* consistent with the operation list — planner-built plans (`db init`,\n\t* `db update`) yield `[]` because they emit no data-transform ops.\n\t*\n\t* Required by `SqlMigrationPlan.providedInvariants` (tightened from\n\t* optional at the SQL-family layer); the framework-level\n\t* `MigrationPlan.providedInvariants?` stays optional.\n\t*/\n\tget providedInvariants() {\n\t\treturn deriveProvidedInvariants(Migration.readOperations(this).filter((op) => !isThenable(op)));\n\t}\n};\n//#endregion\nexport { SqlMigration as Migration };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAI,eAAe,cAAc,UAAU;;;;;;;;;;;CAW1C,IAAI,qBAAqB;EACxB,OAAO,yBAAyB,UAAU,eAAe,IAAI,CAAC,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/F;AACD"}
@@ -1,9 +1,9 @@
1
- import { l as SqlStorage } from "./sql-storage-DeCAh5Hi-nJQUIgfL.mjs";
2
- import "./types-CRbj_WQf.mjs";
3
- import { S as SqlPlanTargetDetails, u as SqlMigrationPlanOperation } from "./types-Cq6ImLAB-BqOfLAYG.mjs";
1
+ import { l as SqlStorage } from "./sql-storage-DeCAh5Hi-CEM-m8cs.mjs";
2
+ import "./types-B0J6ZASy.mjs";
3
+ import { S as SqlPlanTargetDetails, u as SqlMigrationPlanOperation } from "./types-Cq6ImLAB-BRpWMRJe.mjs";
4
4
  import { Contract } from "@prisma/orm-framework/contract/types";
5
5
  import { Migration } from "@prisma/orm-toolchain/migration-tools/migration";
6
- //#region ../../../2-sql/9-family/dist/migration.d.mts
6
+ //#region ../../../2-sql-family/9-family/dist/migration.d.mts
7
7
  //#region src/core/sql-migration.d.ts
8
8
  /**
9
9
  * Family-owned base class for SQL migrations.
@@ -41,4 +41,4 @@ declare abstract class SqlMigration<TDetails extends SqlPlanTargetDetails, TTarg
41
41
  }
42
42
  //#endregion
43
43
  export { SqlMigration as t };
44
- //# sourceMappingURL=migration-DWLbMM34.d.mts.map
44
+ //# sourceMappingURL=migration-CXZQR3C_.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-CXZQR3C_.d.mts","names":[],"sources":["../../../../2-sql-family/9-family/dist/migration.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA0BuB,aAAa,iBAAiB,sBAAsB,mCAAmC,cAAc,SAAS,cAAc,SAAS,aAAa,YAAY,SAAS,cAAc,SAAS,qBAAqB,UAAU,0BAA0B,kBAAkB,WAAW,OAAO;;;;;;;;;;;MAW5S"}
@@ -1,4 +1,4 @@
1
- //#region ../../../2-sql/1-core/schema-ir/dist/naming-BcD36g9T.d.mts
1
+ //#region ../../../2-sql-family/1-core/schema-ir/dist/naming-BcD36g9T.d.mts
2
2
  //#region src/naming.d.ts
3
3
  declare function defaultIndexName(tableName: string, columns: readonly string[]): string;
4
4
  interface WireName {
@@ -178,4 +178,4 @@ declare function assertWireNamePrefixLength(prefix: string, subject: string): vo
178
178
  declare function truncateToWireNamePrefixBytes(prefix: string): string;
179
179
  //#endregion
180
180
  export { normalizeSqlBody as _, WireName as a, truncateToWireNamePrefixBytes as b, computeCheckContentHash as c, derivedCheckPrefixes as d, formatWireName as f, normalizeIndexOptionValue as g, namingOfLiveName as h, WIRE_NAME_PREFIX_MAX_BYTES as i, computeIndexContentHash as l, namingOf as m, IndexContentHashParts as n, assertWireNamePrefixLength as o, nameOf as p, SqlObjectNaming as r, composeCheckWirePrefix as s, CheckKind as t, defaultIndexName as u, parseNaming as v, parseWireName as y };
181
- //# sourceMappingURL=naming-BcD36g9T-DFyaudUa.d.mts.map
181
+ //# sourceMappingURL=naming-BcD36g9T-Mfe_xGGL.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-BcD36g9T-Mfe_xGGL.d.mts","names":[],"sources":["../../../../2-sql-family/1-core/schema-ir/dist/naming-BcD36g9T.d.mts"],"mappings":";;iBACiB,iBAAiB,mBAAmB;UAC3C;;WAEC;;WAEA;;;;;;;;;;;KAWN;WACM;WACA;;WAEA;IACP;;iBAEa,OAAO,QAAQ;;;;;;;;iBAQf,SAAS,cAAc,6BAA6B;;;;;;iBAMpD,YAAY,cAAc,6BAA6B;;;;;;;;;;;;;;iBAcvD,iBAAiB,eAAe;;;;;;;iBAOhC,eAAe,gBAAgB;;;;;;;;iBAQ/B,cAAc,eAAe;;;;;;;;;;;;;;;;;;iBAkB7B,iBAAiB;;;;;;;;;;;;;;;iBAejB,wBAAwB;;;;;;KAMpC;;;;;;;;iBAQY,uBAAuB,mBAAmB,oBAAoB,MAAM;;;;;;;;;;;;;iBAapE,qBAAqB,mBAAmB,aAAa,mBAAmB;UAC/E;WACC;WACA;WACA;WACA;WACA;WACA,UAAU;;;;;;;;;;;;;;;;;;;;iBAoBJ,0BAA0B;iBAC1B,wBAAwB,OAAO;;;;;;;;;cASlC;;;;;iBAKG,2BAA2B,gBAAgB;;;;;;;iBAO3C,8BAA8B"}
@@ -2,7 +2,7 @@ import { structuredError } from "@prisma/orm-framework/utils/structured-error";
2
2
  import { createHash } from "node:crypto";
3
3
  import { ContractValidationError } from "@prisma/orm-framework/contract/contract-validation-error";
4
4
  import { clipToUtf8Bytes, utf8ByteLength } from "@prisma/orm-framework/utils/text";
5
- //#region ../../../2-sql/1-core/schema-ir/dist/naming-bM5qm5PY.mjs
5
+ //#region ../../../2-sql-family/1-core/schema-ir/dist/naming-bM5qm5PY.mjs
6
6
  function defaultIndexName(tableName, columns) {
7
7
  return `${tableName}_${columns.join("_")}_idx`;
8
8
  }
@@ -245,4 +245,4 @@ function truncateToWireNamePrefixBytes(prefix) {
245
245
  //#endregion
246
246
  export { computeIndexContentHash as a, formatWireName as c, namingOfLiveName as d, normalizeIndexOptionValue as f, truncateToWireNamePrefixBytes as g, parseWireName as h, computeCheckContentHash as i, nameOf as l, parseNaming as m, assertWireNamePrefixLength as n, defaultIndexName as o, normalizeSqlBody as p, composeCheckWirePrefix as r, derivedCheckPrefixes as s, WIRE_NAME_PREFIX_MAX_BYTES as t, namingOf as u };
247
247
 
248
- //# sourceMappingURL=naming-bM5qm5PY-DdginUhA.mjs.map
248
+ //# sourceMappingURL=naming-bM5qm5PY-jOg3JFMb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-bM5qm5PY-jOg3JFMb.mjs","names":[],"sources":["../../../../2-sql-family/1-core/schema-ir/dist/naming-bM5qm5PY.mjs"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { structuredError } from \"@internal/utils/structured-error\";\nimport { clipToUtf8Bytes, utf8ByteLength } from \"@internal/utils/text\";\n//#region src/naming.ts\nfunction defaultIndexName(tableName, columns) {\n\treturn `${tableName}_${columns.join(\"_\")}_idx`;\n}\n/** The flat name the union describes. Inverse of {@link namingOf}. */\nfunction nameOf(naming) {\n\treturn naming.kind === \"wire\" ? formatWireName(naming.prefix, naming.hash) : naming.name;\n}\n/**\n* The naming a name-identified node was built with, read back off the flat\n* pair it stores. Inverse of {@link nameOf}, and total for that\n* reason: the constructor derived `name` from the union, so the two agree.\n* Flat data arriving from outside the process goes through\n* {@link parseNaming} instead.\n*/\nfunction namingOf(name, prefix) {\n\tif (prefix === void 0) return {\n\t\tkind: \"exact\",\n\t\tname\n\t};\n\treturn {\n\t\tkind: \"wire\",\n\t\tprefix,\n\t\thash: name.slice(prefix.length + 1)\n\t};\n}\n/**\n* Reads naming out of flat stored data — deserialized contract JSON and the\n* literals a user may hand-edit, the one place a name and a prefix can still\n* disagree. Throws when a declared prefix does not parse back out of the name.\n*/\nfunction parseNaming(name, prefix) {\n\tif (prefix === void 0) return {\n\t\tkind: \"exact\",\n\t\tname\n\t};\n\tconst parsed = parseWireName(name);\n\tif (parsed === void 0 || parsed.prefix !== prefix) throw new ContractValidationError(`\"${name}\": prefix \"${prefix}\" does not match the wire name (expected \"${formatWireName(prefix, \"<8hex>\")}\").`, \"storage\");\n\treturn {\n\t\tkind: \"wire\",\n\t\tprefix: parsed.prefix,\n\t\thash: parsed.hash\n\t};\n}\n/**\n* The naming an object read out of a live catalog has: a wire-shaped name\n* gets the wire arm so the rename pass can pair it by prefix, and every\n* other name is exact.\n*\n* The wire answer is a claim about the name's SHAPE only — the hash is\n* deliberately not recomputed from the object's content here. Nothing\n* downstream reads it as more than that: the differ always asks the\n* contract-derived side to choose the comparison, so a shape-only wire\n* claim on the introspected side never suppresses a body comparison, and\n* `contract infer` recomputes the hash independently before it will emit an\n* index as wire-named.\n*/\nfunction namingOfLiveName(name) {\n\tconst wire = parseWireName(name);\n\treturn wire === void 0 ? {\n\t\tkind: \"exact\",\n\t\tname\n\t} : {\n\t\tkind: \"wire\",\n\t\tprefix: wire.prefix,\n\t\thash: wire.hash\n\t};\n}\nconst WIRE_NAME_PATTERN = /^(.+)_([0-9a-f]{8})$/;\n/**\n* Assembles a wire name from its user-supplied prefix and its 8-hex\n* content-hash suffix. This module owns the `<prefix>_<hash>` format on both\n* sides — construction here and parsing in {@link parseWireName} — so the two\n* never drift.\n*/\nfunction formatWireName(prefix, hash) {\n\treturn `${prefix}_${hash}`;\n}\n/**\n* Splits a wire name (`<prefix>_<8hex>`) into its prefix and content-hash\n* suffix. Returns `undefined` when the name does not follow the wire-name\n* shape (e.g. an object created outside the toolchain) — callers treat such\n* names as all-prefix. Consumed by introspection (prefix extraction) and by\n* rename pairing (same hash, different prefix).\n*/\nfunction parseWireName(name) {\n\tconst match = WIRE_NAME_PATTERN.exec(name);\n\tconst prefix = match?.[1];\n\tconst hash = match?.[2];\n\tif (prefix === void 0 || hash === void 0) return void 0;\n\treturn {\n\t\tprefix,\n\t\thash\n\t};\n}\n/**\n* Stabilizes an authored SQL body (index expression, partial-index predicate, RLS policy predicate) for hashing: trim, and collapse runs of internal whitespace to a single space. A body that contains `--` is collapsed line by line and keeps its line breaks.\n*\n* This is deliberately minimal. The content hash is the equivalence relation\n* for a wire-named object, and the wire name (prefix + hash) is the only\n* thing ever compared — the hash is never recomputed from an introspected\n* body, so there is no need to match the database's reprinted form. Minimal\n* normalization also protects the no-collision property: aggressive rewriting\n* (lowercasing, paren-stripping, cast-alias folding) risks collapsing two\n* distinct bodies onto one hash.\n*\n* A body that contains `--` keeps its line breaks, because a line break ends a line comment: `a --c` followed by a line break and `b` compares `b`, while `a --c b` does not. Such a body is split into lines, each line is collapsed and trimmed, blank lines are dropped, and the lines are joined with `\\n`. Every body without `--` normalizes as it always has.\n*\n* The normalizer gives the same output on its own output, which policy hashing relies on: it normalizes twice.\n*\n* The normalizer is a stability commitment: a change to it re-suffixes the wire name of every body whose normalized form changes, so a change must say which bodies it affects. See ADR 234, \"Normalizer stability\".\n*/\nfunction normalizeSqlBody(sql) {\n\tif (!sql.includes(\"--\")) return sql.replace(/\\s+/g, \" \").trim();\n\treturn sql.split(/\\r\\n|\\r|\\n/).map((line) => line.replace(/\\s+/g, \" \").trim()).filter((line) => line !== \"\").join(\"\\n\");\n}\n/**\n* Returns the first 8 lowercase hex characters of the SHA-256 digest over the\n* canonical content tuple for a check constraint:\n*\n* [normalizeSqlBody(expression)]\n*\n* The predicate is the whole of a check's content — the constraint name,\n* schema, and table are orthogonal to its equivalence. The one-element tuple\n* keeps the encoding in the same shape as the index and RLS tuples so a member\n* can be added later without re-reading which encoding a kind uses.\n*\n* The tuple order and encoding are a stability commitment: any change\n* re-suffixes every wire name.\n*/\nfunction computeCheckContentHash(expression) {\n\tconst tuple = JSON.stringify([normalizeSqlBody(expression)]);\n\treturn createHash(\"sha256\").update(tuple).digest(\"hex\").slice(0, 8);\n}\n/** The trailing segment a check's wire-name prefix carries, per kind. */\nconst CHECK_KIND_SUFFIX = {\n\tmembership: \"check\",\n\telementNotNull: \"elem_not_null\"\n};\n/**\n* Composes the wire-name prefix of a derived CHECK constraint:\n* `${table}_${column}_${kindSuffix}`, capped at the wire-name byte budget.\n* Shared by contract authoring (naming emitted checks) and `contract infer`\n* (recomputing the name a derived check would carry), so truncated and\n* multibyte prefixes match by construction.\n*/\nfunction composeCheckWirePrefix(tableName, columnName, kind) {\n\treturn truncateToWireNamePrefixBytes(`${tableName}_${columnName}_${CHECK_KIND_SUFFIX[kind]}`);\n}\n/**\n* Every {@link CheckKind} value, read off {@link CHECK_KIND_SUFFIX}'s own keys\n* so the enumeration can never drift out of step with it.\n*/\nconst CHECK_KINDS = Object.keys(CHECK_KIND_SUFFIX).filter((kind) => kind in CHECK_KIND_SUFFIX);\n/**\n* The wire-name prefixes derivation could produce for `tableName`: every\n* {@link composeCheckWirePrefix} result crossing each of `columnNames` with\n* each {@link CheckKind}. A check is derived iff its prefix is a member of\n* this set.\n*\n* This is the prefix SHAPE only, not the full name-with-hash: it does not\n* know which kind a specific column's type would actually derive (that needs\n* the target's `renderCheckExpressions` hook, which callers of this function\n* do not have in hand), so every column is conservatively treated as capable\n* of producing every kind.\n*/\nfunction derivedCheckPrefixes(tableName, columnNames) {\n\tconst prefixes = /* @__PURE__ */ new Set();\n\tfor (const columnName of columnNames) for (const kind of CHECK_KINDS) prefixes.add(composeCheckWirePrefix(tableName, columnName, kind));\n\treturn prefixes;\n}\n/**\n* Returns the first 8 lowercase hex characters of the SHA-256 digest over the\n* canonical content tuple for an index:\n*\n* [normalizeSqlBody(expression), normalizeSqlBody(where), columns, unique, type, sortedOptions]\n*\n* Columns hash in authored order — column order is semantic in an index.\n* Option values are `String()`-coerced (matching the loose option equality\n* used for diffing) so a hash computed from typed contract values agrees with\n* one recomputed from introspected reloptions strings. The prefix, schema,\n* and table are excluded (they are orthogonal to index equivalence).\n*\n* The tuple order and encoding are a stability commitment with the same\n* status as the RLS tuple: any change re-suffixes every wire name.\n*/\n/**\n* Canonicalizes one index option VALUE to the `on`/`off` boolean spelling: JS booleans and the common catalog spellings (`pg_class.reloptions` stores whatever spelling the DDL used, so a live index may carry `'true'`/`'false'` or `'on'`/`'off'`) all map to one form; every other scalar via `String()` (fully specified for numbers, so no platform variance); an array or object as JSON, since `String()` would flatten `[['a', 'b']]` and `[['a'], ['b']]` to the same text, with object keys sorted at every depth so key order never changes the value. Shared by the wire-name hash tuple, the node's option equality, and the DDL renderer, so an authored `{ fastupdate: true }` agrees with a live index created under any boolean spelling.\n*/\nfunction normalizeIndexOptionValue(value) {\n\tif (value === true || value === \"true\" || value === \"on\") return \"on\";\n\tif (value === false || value === \"false\" || value === \"off\") return \"off\";\n\tif (typeof value === \"object\" && value !== null) return JSON.stringify(withSortedKeys(value));\n\treturn String(value);\n}\nfunction withSortedKeys(value) {\n\tif (Array.isArray(value)) return value.map(withSortedKeys);\n\tif (typeof value !== \"object\" || value === null) return value;\n\treturn Object.fromEntries(Object.entries(value).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([key, entry]) => [key, withSortedKeys(entry)]));\n}\nfunction computeIndexContentHash(parts) {\n\tconst sortedOptions = Object.entries(parts.options ?? {}).map(([key, value]) => [key, normalizeIndexOptionValue(value)]).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);\n\tconst tuple = JSON.stringify([\n\t\tnormalizeSqlBody(parts.expression ?? \"\"),\n\t\tnormalizeSqlBody(parts.where ?? \"\"),\n\t\tparts.columns ?? [],\n\t\tparts.unique,\n\t\tparts.type ?? \"\",\n\t\tsortedOptions\n\t]);\n\treturn createHash(\"sha256\").update(tuple).digest(\"hex\").slice(0, 8);\n}\n/**\n* Postgres truncates identifiers at `NAMEDATALEN - 1` = 63 **bytes**, not\n* characters, and the wire name appends a 9-byte `_<8hex>` suffix — so a\n* prefix is bounded at 54 bytes. A prefix of non-ASCII characters can sit well\n* under 54 characters and still overrun: the database would silently truncate\n* the name, leaving the declared object permanently unmatchable against the\n* live one.\n*/\nconst WIRE_NAME_PREFIX_MAX_BYTES = 54;\n/**\n* Rejects a wire-name prefix over {@link WIRE_NAME_PREFIX_MAX_BYTES}.\n* `subject` opens the error message (e.g. `defineContract: policy prefix`).\n*/\nfunction assertWireNamePrefixLength(prefix, subject) {\n\tif (utf8ByteLength(prefix) > 54) throw structuredError(\"CONTRACT.WIRE_NAME_PREFIX_TOO_LONG\", `${subject} \"${prefix}\" exceeds the 54-byte maximum (Postgres identifiers cap at 63 bytes and the wire name appends a 9-byte hash suffix).`, { meta: {\n\t\tprefix,\n\t\tmaxBytes: 54\n\t} });\n}\n/**\n* Shortens a DERIVED wire-name prefix to {@link WIRE_NAME_PREFIX_MAX_BYTES},\n* cutting on a code-point boundary so a multibyte character is never split.\n* Only derived prefixes truncate — an authored one throws\n* ({@link assertWireNamePrefixLength}), because its author can shorten it.\n*/\nfunction truncateToWireNamePrefixBytes(prefix) {\n\treturn clipToUtf8Bytes(prefix, 54);\n}\n//#endregion\nexport { computeIndexContentHash as a, formatWireName as c, namingOfLiveName as d, normalizeIndexOptionValue as f, truncateToWireNamePrefixBytes as g, parseWireName as h, computeCheckContentHash as i, nameOf as l, parseNaming as m, assertWireNamePrefixLength as n, defaultIndexName as o, normalizeSqlBody as p, composeCheckWirePrefix as r, derivedCheckPrefixes as s, WIRE_NAME_PREFIX_MAX_BYTES as t, namingOf as u };\n\n//# sourceMappingURL=naming-bM5qm5PY.mjs.map"],"mappings":"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"}