@prisma/orm-family-sql 8.0.0-rc.2-dev.3 → 8.0.0-rc.20-dev.1

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 (564) hide show
  1. package/README.md +2 -6
  2. package/dist/{aggregate-descriptor-registry-C7hel5O7.mjs → aggregate-descriptor-registry-ZrKjxwQe.mjs} +5 -5
  3. package/dist/aggregate-descriptor-registry-ZrKjxwQe.mjs.map +1 -0
  4. package/dist/ast-D0miQ1B6.mjs +372 -0
  5. package/dist/ast-D0miQ1B6.mjs.map +1 -0
  6. package/dist/ast-YEMe_B8z.d.mts +292 -0
  7. package/dist/ast-YEMe_B8z.d.mts.map +1 -0
  8. package/dist/attribute-specs-DA_RwQFB.d.mts +114 -0
  9. package/dist/attribute-specs-DA_RwQFB.d.mts.map +1 -0
  10. package/dist/{authored-check-naming-Hf9990DV.mjs → authored-check-naming-BHGJhjqn.mjs} +5 -5
  11. package/dist/authored-check-naming-BHGJhjqn.mjs.map +1 -0
  12. package/dist/{authored-check-naming-BWBe-PVE.d.mts → authored-check-naming-D-o196ry.d.mts} +3 -3
  13. package/dist/authored-check-naming-D-o196ry.d.mts.map +1 -0
  14. package/dist/authoring-entity-types-CgKIgWq5-pEdfjam5.d.mts +9 -0
  15. package/dist/authoring-entity-types-CgKIgWq5-pEdfjam5.d.mts.map +1 -0
  16. package/dist/builder.d.mts +4 -3
  17. package/dist/builder__runtime.d.mts +29 -31
  18. package/dist/builder__runtime.d.mts.map +1 -1
  19. package/dist/builder__runtime.mjs +261 -191
  20. package/dist/builder__runtime.mjs.map +1 -1
  21. package/dist/builder__types.d.mts +6 -3
  22. package/dist/{canonicalization-hooks-dmXkOR4a.mjs → canonicalization-hooks-Ce1v_TDl.mjs} +2 -2
  23. package/dist/canonicalization-hooks-Ce1v_TDl.mjs.map +1 -0
  24. package/dist/{canonicalization-hooks-CYnW_sGn.d.mts → canonicalization-hooks-DyapQ0my.d.mts} +2 -2
  25. package/dist/canonicalization-hooks-DyapQ0my.d.mts.map +1 -0
  26. package/dist/{check-constraint-B7qGu6rc-HvQjjX82.d.mts → check-constraint-B7qGu6rc-Bk2ezWXu.d.mts} +4 -4
  27. package/dist/check-constraint-B7qGu6rc-Bk2ezWXu.d.mts.map +1 -0
  28. package/dist/{codec-descriptor-registry-N0dhtKaH.mjs → codec-descriptor-registry-CiiFzMtb.mjs} +13 -40
  29. package/dist/codec-descriptor-registry-CiiFzMtb.mjs.map +1 -0
  30. package/dist/collection-methods-BB8YH69u.d.mts +1 -0
  31. package/dist/collection-methods-D2UnCS0S-DOy2qHYS.d.mts +77 -0
  32. package/dist/collection-methods-D2UnCS0S-DOy2qHYS.d.mts.map +1 -0
  33. package/dist/{config-types-D9fdKG3g.d.mts → config-types-C-1mIiJO.d.mts} +5 -5
  34. package/dist/config-types-C-1mIiJO.d.mts.map +1 -0
  35. package/dist/{config-types-gAm54C_v.mjs → config-types-DkEeq_qq.mjs} +10 -6
  36. package/dist/config-types-DkEeq_qq.mjs.map +1 -0
  37. package/dist/{contract-builder-D4a5dT7j.mjs → contract-builder-50lF0kz1.mjs} +431 -226
  38. package/dist/contract-builder-50lF0kz1.mjs.map +1 -0
  39. package/dist/contract-builder-C_Zi57iD.d.mts +1967 -0
  40. package/dist/contract-builder-C_Zi57iD.d.mts.map +1 -0
  41. package/dist/contract-emitter.d.mts +4 -7
  42. package/dist/contract-emitter.d.mts.map +1 -1
  43. package/dist/contract-emitter.mjs +1 -1
  44. package/dist/{contract-errors-BCN6RVI5-5IHBF_lg.mjs → contract-errors-BCN6RVI5-DoH6b_KZ.mjs} +2 -2
  45. package/dist/contract-errors-BCN6RVI5-DoH6b_KZ.mjs.map +1 -0
  46. package/dist/contract-prisma7__provider.d.mts +97 -0
  47. package/dist/contract-prisma7__provider.d.mts.map +1 -0
  48. package/dist/contract-prisma7__provider.mjs +2011 -0
  49. package/dist/contract-prisma7__provider.mjs.map +1 -0
  50. package/dist/contract-psl.d.mts +18 -29
  51. package/dist/contract-psl.d.mts.map +1 -1
  52. package/dist/contract-psl.mjs +1 -1
  53. package/dist/contract-psl__attribute-specs.d.mts +2 -0
  54. package/dist/contract-psl__attribute-specs.mjs +2 -0
  55. package/dist/contract-psl__default-table-name.d.mts +7 -0
  56. package/dist/contract-psl__default-table-name.d.mts.map +1 -0
  57. package/dist/contract-psl__default-table-name.mjs +2 -0
  58. package/dist/contract-psl__diagnostics.d.mts +12 -0
  59. package/dist/contract-psl__diagnostics.d.mts.map +1 -0
  60. package/dist/contract-psl__diagnostics.mjs +2 -0
  61. package/dist/contract-psl__map-names.d.mts +16 -0
  62. package/dist/contract-psl__map-names.d.mts.map +1 -0
  63. package/dist/contract-psl__map-names.mjs +21 -0
  64. package/dist/contract-psl__map-names.mjs.map +1 -0
  65. package/dist/contract-psl__provider.d.mts +3 -3
  66. package/dist/contract-psl__provider.d.mts.map +1 -1
  67. package/dist/contract-psl__provider.mjs +95 -46
  68. package/dist/contract-psl__provider.mjs.map +1 -1
  69. package/dist/contract-ts.d.mts +5 -5
  70. package/dist/contract-ts.mjs +5 -4
  71. package/dist/contract-ts__config-types.d.mts +1 -1
  72. package/dist/contract-ts__config-types.mjs +1 -1
  73. package/dist/contract-ts__contract-builder.d.mts +4 -4
  74. package/dist/contract-ts__contract-builder.mjs +4 -3
  75. package/dist/{contract-view-BMR5IWk4.mjs → contract-view-DqpzeYeE.mjs} +2 -2
  76. package/dist/contract-view-DqpzeYeE.mjs.map +1 -0
  77. package/dist/{contract-view-CPHxoAEX.d.mts → contract-view-DuB35or0.d.mts} +3 -3
  78. package/dist/contract-view-DuB35or0.d.mts.map +1 -0
  79. package/dist/contract.d.mts +30 -28
  80. package/dist/contract.mjs +23 -18
  81. package/dist/contract__authored-check-naming.d.mts +1 -1
  82. package/dist/contract__authored-check-naming.mjs +1 -1
  83. package/dist/contract__canonicalization-hooks.d.mts +1 -1
  84. package/dist/contract__canonicalization-hooks.mjs +1 -1
  85. package/dist/contract__contract-view.d.mts +1 -1
  86. package/dist/contract__contract-view.mjs +1 -1
  87. package/dist/contract__data-type-support.d.mts +2 -0
  88. package/dist/contract__data-type-support.mjs +2 -0
  89. package/dist/contract__data-type.d.mts +2 -0
  90. package/dist/contract__data-type.mjs +3 -0
  91. package/dist/contract__entity-handle-lowering-hook.d.mts +2 -2
  92. package/dist/contract__entity-handle-lowering-hook.mjs +2 -2
  93. package/dist/contract__entity-kinds.d.mts +1 -1
  94. package/dist/contract__entity-kinds.mjs +1 -1
  95. package/dist/contract__factories.d.mts +1 -1
  96. package/dist/contract__factories.mjs +1 -1
  97. package/dist/contract__foreign-key-materialization.d.mts +2 -2
  98. package/dist/contract__foreign-key-materialization.mjs +3 -2
  99. package/dist/contract__index-naming.d.mts +2 -2
  100. package/dist/contract__index-naming.mjs +2 -2
  101. package/dist/contract__index-type-validation.d.mts +2 -2
  102. package/dist/contract__index-type-validation.mjs +1 -1
  103. package/dist/contract__index-types.d.mts +3 -3
  104. package/dist/contract__index-types.mjs +2 -2
  105. package/dist/contract__referential-action-sql.d.mts +1 -1
  106. package/dist/contract__referential-action-sql.mjs +1 -1
  107. package/dist/contract__resolve-storage-table.d.mts +1 -1
  108. package/dist/contract__resolve-storage-table.mjs +1 -1
  109. package/dist/contract__sql-expression.d.mts +2 -0
  110. package/dist/contract__sql-expression.mjs +2 -0
  111. package/dist/contract__types.d.mts +12 -12
  112. package/dist/contract__types.mjs +4 -4
  113. package/dist/contract__validators.d.mts +2 -2
  114. package/dist/contract__validators.mjs +3 -3
  115. package/dist/contract__value-set-derivation-hook.d.mts +1 -1
  116. package/dist/contract__value-set-derivation-hook.mjs +1 -1
  117. package/dist/control-BK50zF6c.mjs +2721 -0
  118. package/dist/control-BK50zF6c.mjs.map +1 -0
  119. package/dist/control-ChAUdOOu.d.mts +1416 -0
  120. package/dist/control-ChAUdOOu.d.mts.map +1 -0
  121. package/dist/{control-adapter-C99J7aEF-B7eQd7vD.d.mts → control-adapter-Bn0uhplA-BzP2uPqJ.d.mts} +27 -44
  122. package/dist/control-adapter-Bn0uhplA-BzP2uPqJ.d.mts.map +1 -0
  123. package/dist/control-adapter-NZ2kKc4x.d.mts +13 -0
  124. package/dist/control-adapter-NZ2kKc4x.d.mts.map +1 -0
  125. package/dist/control-adapter-SlQkTEwT.mjs +16 -0
  126. package/dist/control-adapter-SlQkTEwT.mjs.map +1 -0
  127. package/dist/data-type-BFSpaotu.mjs +52 -0
  128. package/dist/data-type-BFSpaotu.mjs.map +1 -0
  129. package/dist/data-type-DJIvKQHf.d.mts +158 -0
  130. package/dist/data-type-DJIvKQHf.d.mts.map +1 -0
  131. package/dist/data-type-support-BhSoPUFj.mjs +9 -0
  132. package/dist/data-type-support-BhSoPUFj.mjs.map +1 -0
  133. package/dist/data-type-support-CXpA0ex-.d.mts +7 -0
  134. package/dist/data-type-support-CXpA0ex-.d.mts.map +1 -0
  135. package/dist/{db-D18PrXKW-DvTv4JFn.d.mts → db-D1d75IvM-D4mRDC6w.d.mts} +123 -128
  136. package/dist/db-D1d75IvM-D4mRDC6w.d.mts.map +1 -0
  137. package/dist/{ddl-types-CXx4vPz6-BsgrnSUY.d.mts → ddl-types-By5mT2_S-CdaaFvsX.d.mts} +24 -29
  138. package/dist/ddl-types-By5mT2_S-CdaaFvsX.d.mts.map +1 -0
  139. package/dist/default-mapping-CAOONlKQ-4m07nb-O.d.mts +39 -0
  140. package/dist/default-mapping-CAOONlKQ-4m07nb-O.d.mts.map +1 -0
  141. package/dist/default-table-name-BfFY8qYR-CWZFDX6v.mjs +9 -0
  142. package/dist/default-table-name-BfFY8qYR-CWZFDX6v.mjs.map +1 -0
  143. package/dist/derived-checks-D5HVRvqN-BJx1gwPA.mjs +1508 -0
  144. package/dist/derived-checks-D5HVRvqN-BJx1gwPA.mjs.map +1 -0
  145. package/dist/{derived-checks-DPdD01O0-DGqOFjs6.d.mts → derived-checks-DpPkO6Dt-9U9UJZOo.d.mts} +4 -4
  146. package/dist/derived-checks-DpPkO6Dt-9U9UJZOo.d.mts.map +1 -0
  147. package/dist/diagnostics-RHJxoiIk.mjs +23 -0
  148. package/dist/diagnostics-RHJxoiIk.mjs.map +1 -0
  149. package/dist/{diff-DbTNVm2f.d.mts → diff-1qHOLoUB.d.mts} +23 -10
  150. package/dist/diff-1qHOLoUB.d.mts.map +1 -0
  151. package/dist/diff-C1rFOhek.mjs +21 -0
  152. package/dist/diff-C1rFOhek.mjs.map +1 -0
  153. package/dist/{dist-ZK6oeI5e.mjs → dist-C8Y-PPuE.mjs} +36 -212
  154. package/dist/dist-C8Y-PPuE.mjs.map +1 -0
  155. package/dist/{dist-C_q1_QR9.mjs → dist-CHz1hF8M.mjs} +2 -2
  156. package/dist/dist-CHz1hF8M.mjs.map +1 -0
  157. package/dist/{dist-x6jvtkKM.mjs → dist-CMDXybwm.mjs} +2 -2
  158. package/dist/dist-CMDXybwm.mjs.map +1 -0
  159. package/dist/{driver-types-BQtRkOJ0-Bv2RPSfr.d.mts → driver-types-DRsYeq3j-BimeCnUk.d.mts} +11 -2
  160. package/dist/driver-types-DRsYeq3j-BimeCnUk.d.mts.map +1 -0
  161. package/dist/entity-handle-lowering-hook-BJZSlVVF.mjs +16 -0
  162. package/dist/entity-handle-lowering-hook-BJZSlVVF.mjs.map +1 -0
  163. package/dist/{entity-handle-lowering-hook-CIvRKBfa.d.mts → entity-handle-lowering-hook-BuvLtgFi.d.mts} +8 -11
  164. package/dist/entity-handle-lowering-hook-BuvLtgFi.d.mts.map +1 -0
  165. package/dist/{entity-kinds-B5cUFU22.d.mts → entity-kinds-BPG2xCZV.d.mts} +7 -7
  166. package/dist/entity-kinds-BPG2xCZV.d.mts.map +1 -0
  167. package/dist/{entity-kinds-D7vwoN_T-CCBwFJy0.mjs → entity-kinds-JR5SAm5h-DOH6VUtL.mjs} +31 -28
  168. package/dist/entity-kinds-JR5SAm5h-DOH6VUtL.mjs.map +1 -0
  169. package/dist/{errors-B5g0xWro-mWH2C07F.mjs → errors-B5g0xWro-C8plbqga.mjs} +2 -2
  170. package/dist/errors-B5g0xWro-C8plbqga.mjs.map +1 -0
  171. package/dist/errors.d.mts +1 -1
  172. package/dist/errors.d.mts.map +1 -1
  173. package/dist/errors.mjs +1 -1
  174. package/dist/exports-C3wGYtID-D65DEUTC.mjs +2389 -0
  175. package/dist/exports-C3wGYtID-D65DEUTC.mjs.map +1 -0
  176. package/dist/{expression-FJK6Ar-d.d.mts → expression-6ld_ZQL6-fOuazzzm.d.mts} +37 -16
  177. package/dist/expression-6ld_ZQL6-fOuazzzm.d.mts.map +1 -0
  178. package/dist/expression-CieaNuRM-B1uVqxwd.d.mts +22 -0
  179. package/dist/expression-CieaNuRM-B1uVqxwd.d.mts.map +1 -0
  180. package/dist/expression-D8HstQiB.d.mts +2 -0
  181. package/dist/{expression-CX5mTA-z.mjs → expression-impl-B-XNINxr-BhN2sysZ.mjs} +41 -18
  182. package/dist/expression-impl-B-XNINxr-BhN2sysZ.mjs.map +1 -0
  183. package/dist/{factories-SVor5xIT.mjs → factories-Crobuxwn.mjs} +27 -20
  184. package/dist/factories-Crobuxwn.mjs.map +1 -0
  185. package/dist/{factories-P3qBQhO-.d.mts → factories-DbNP9qfs.d.mts} +16 -10
  186. package/dist/factories-DbNP9qfs.d.mts.map +1 -0
  187. package/dist/family.d.mts +17 -13
  188. package/dist/family.mjs +17 -12
  189. package/dist/family__control-adapter.d.mts +3 -3
  190. package/dist/family__control-adapter.mjs +2 -1
  191. package/dist/family__control.d.mts +5 -4
  192. package/dist/family__control.mjs +4 -4
  193. package/dist/family__diff.d.mts +2 -3
  194. package/dist/family__diff.mjs +2 -2
  195. package/dist/family__ir.d.mts +1 -1
  196. package/dist/family__ir.mjs +2 -2
  197. package/dist/family__migration.d.mts +1 -1
  198. package/dist/family__migration.mjs +1 -1
  199. package/dist/family__pack.d.mts +2 -249
  200. package/dist/family__pack.mjs +3 -18
  201. package/dist/family__psl-build.d.mts +3 -0
  202. package/dist/family__psl-build.mjs +3 -0
  203. package/dist/family__psl-infer.d.mts +2 -2
  204. package/dist/family__psl-infer.mjs +2 -2
  205. package/dist/family__runtime.d.mts +2 -2
  206. package/dist/family__runtime.mjs +2 -2
  207. package/dist/family__verify.d.mts +1 -1
  208. package/dist/family__verify.mjs +1 -1
  209. package/dist/foreign-key-materialization-48P2V8on.d.mts +98 -0
  210. package/dist/foreign-key-materialization-48P2V8on.d.mts.map +1 -0
  211. package/dist/foreign-key-materialization-BM59w_Xg.mjs +287 -0
  212. package/dist/foreign-key-materialization-BM59w_Xg.mjs.map +1 -0
  213. package/dist/{foreign-key-C-iTPuRT-C9ip8zFx.d.mts → foreign-key-qkDFfG8t-TaK_GYWR.d.mts} +21 -5
  214. package/dist/foreign-key-qkDFfG8t-TaK_GYWR.d.mts.map +1 -0
  215. package/dist/functions-CsOoN7I3.mjs +88 -0
  216. package/dist/functions-CsOoN7I3.mjs.map +1 -0
  217. package/dist/functions-EW-RrRn3.d.mts +73 -0
  218. package/dist/functions-EW-RrRn3.d.mts.map +1 -0
  219. package/dist/generator-functions-D_qdqBV--Bq296cED.mjs +544 -0
  220. package/dist/generator-functions-D_qdqBV--Bq296cED.mjs.map +1 -0
  221. package/dist/index-7nHHQsAj.d.mts +606 -0
  222. package/dist/index-7nHHQsAj.d.mts.map +1 -0
  223. package/dist/{index-C5I8D-MB.d.mts → index-Nqc3OHR_.d.mts} +4 -5
  224. package/dist/index-Nqc3OHR_.d.mts.map +1 -0
  225. package/dist/index-equivalence-DswCiq5l-CGsyPP9B.mjs +109 -0
  226. package/dist/index-equivalence-DswCiq5l-CGsyPP9B.mjs.map +1 -0
  227. package/dist/{index-naming-DREt6js7-CRH27yUv.mjs → index-naming-BOcJT1B3-mG8Fd6KN.mjs} +35 -9
  228. package/dist/index-naming-BOcJT1B3-mG8Fd6KN.mjs.map +1 -0
  229. package/dist/{index-naming-Ct65z5Xk.d.mts → index-naming-Cs6wwia3.d.mts} +15 -5
  230. package/dist/index-naming-Cs6wwia3.d.mts.map +1 -0
  231. package/dist/index-reference-4wsdeB7v-DCwswK-q.d.mts +67 -0
  232. package/dist/index-reference-4wsdeB7v-DCwswK-q.d.mts.map +1 -0
  233. package/dist/index-reference-BQSrkRfT.mjs +55 -0
  234. package/dist/index-reference-BQSrkRfT.mjs.map +1 -0
  235. package/dist/index-reference-D8ewQRJr.d.mts +1 -0
  236. package/dist/index-type-validation-DJEMmmw0.mjs +42 -0
  237. package/dist/index-type-validation-DJEMmmw0.mjs.map +1 -0
  238. package/dist/index-type-validation-fGGwAHWc.d.mts +16 -0
  239. package/dist/index-type-validation-fGGwAHWc.d.mts.map +1 -0
  240. package/dist/index-types-H1O43iYT-BD0VwPqV.d.mts +66 -0
  241. package/dist/index-types-H1O43iYT-BD0VwPqV.d.mts.map +1 -0
  242. package/dist/index-types-pC_5vADQ-BOOBi14R.mjs +95 -0
  243. package/dist/index-types-pC_5vADQ-BOOBi14R.mjs.map +1 -0
  244. package/dist/index-types-snhtt_Fo.d.mts +1 -0
  245. package/dist/interpreter-D5qk4B---CG0C7kdx.mjs +2280 -0
  246. package/dist/interpreter-D5qk4B---CG0C7kdx.mjs.map +1 -0
  247. package/dist/{ir-Bghjt-FG.d.mts → ir-BvptQsFW.d.mts} +11 -5
  248. package/dist/ir-BvptQsFW.d.mts.map +1 -0
  249. package/dist/{ir-I-xciGUH.mjs → ir-DzsUDO8e.mjs} +2 -2
  250. package/dist/ir-DzsUDO8e.mjs.map +1 -0
  251. package/dist/{middleware-AhTz1BOW-th-Suxuf.d.mts → middleware-DHkW6pRr-DM6hd9iZ.d.mts} +5 -5
  252. package/dist/middleware-DHkW6pRr-DM6hd9iZ.d.mts.map +1 -0
  253. package/dist/middleware-gqy3l13N.d.mts +1 -0
  254. package/dist/{middleware-CMr4CHNz-DHIUdxlm.mjs → middleware-yBAfiVWn-DZO0vCRQ.mjs} +3 -3
  255. package/dist/middleware-yBAfiVWn-DZO0vCRQ.mjs.map +1 -0
  256. package/dist/{migration-CK4oePIo.mjs → migration-BJQjkqFz.mjs} +4 -4
  257. package/dist/migration-BJQjkqFz.mjs.map +1 -0
  258. package/dist/{migration-CjDRZNep.d.mts → migration-Cxmpzaz0.d.mts} +6 -6
  259. package/dist/migration-Cxmpzaz0.d.mts.map +1 -0
  260. package/dist/{naming-CV9j2pXl-KARaDReS.d.mts → naming-BcD36g9T-Mfe_xGGL.d.mts} +9 -14
  261. package/dist/naming-BcD36g9T-Mfe_xGGL.d.mts.map +1 -0
  262. package/dist/{naming-DKr4TJd7-Cszhq9RV.mjs → naming-bM5qm5PY-jOg3JFMb.mjs} +20 -31
  263. package/dist/naming-bM5qm5PY-jOg3JFMb.mjs.map +1 -0
  264. package/dist/{ddl-types-BGdnAbXo-DKPHPUGx.mjs → opaque-sql-Dset3kln-CtsPDTXn.mjs} +24 -11
  265. package/dist/opaque-sql-Dset3kln-CtsPDTXn.mjs.map +1 -0
  266. package/dist/operations.d.mts +1 -1
  267. package/dist/operations.mjs +1 -1
  268. package/dist/orm-client.d.mts +817 -267
  269. package/dist/orm-client.d.mts.map +1 -1
  270. package/dist/orm-client.mjs +4719 -2942
  271. package/dist/orm-client.mjs.map +1 -1
  272. package/dist/pack-DA8HZ2mo.d.mts +535 -0
  273. package/dist/pack-DA8HZ2mo.d.mts.map +1 -0
  274. package/dist/pack-gSvGQWqs.mjs +80 -0
  275. package/dist/pack-gSvGQWqs.mjs.map +1 -0
  276. package/dist/{plan-CDxduYaN-pLIyyJaB.d.mts → plan-Cr4azjnG-CuL8FqXC.d.mts} +12 -8
  277. package/dist/plan-Cr4azjnG-CuL8FqXC.d.mts.map +1 -0
  278. package/dist/{plan-Dh0LbYIv-Crx5-ThG.mjs → plan-Dh0LbYIv-ubBSdUgl.mjs} +2 -2
  279. package/dist/plan-Dh0LbYIv-ubBSdUgl.mjs.map +1 -0
  280. package/dist/plan-Di6Gs2JD.d.mts +2 -0
  281. package/dist/psl-attribute-parsing-BCsFWsSp-BJ-wGlY6.mjs +42 -0
  282. package/dist/psl-attribute-parsing-BCsFWsSp-BJ-wGlY6.mjs.map +1 -0
  283. package/dist/psl-build-DFBG6vhz.mjs +426 -0
  284. package/dist/psl-build-DFBG6vhz.mjs.map +1 -0
  285. package/dist/psl-build-RelubU2E.d.mts +112 -0
  286. package/dist/psl-build-RelubU2E.d.mts.map +1 -0
  287. package/dist/psl-column-resolution-ChZqioOc-BREg4J7d.d.mts +24 -0
  288. package/dist/psl-column-resolution-ChZqioOc-BREg4J7d.d.mts.map +1 -0
  289. package/dist/psl-field-resolution-C5KQ7kzP-B0NwuRWV.mjs +1960 -0
  290. package/dist/psl-field-resolution-C5KQ7kzP-B0NwuRWV.mjs.map +1 -0
  291. package/dist/psl-infer--g4i84Go.mjs +201 -0
  292. package/dist/psl-infer--g4i84Go.mjs.map +1 -0
  293. package/dist/psl-infer-DzoxPZGd.d.mts +80 -0
  294. package/dist/psl-infer-DzoxPZGd.d.mts.map +1 -0
  295. package/dist/psl-names-C3cwe0rg-D1CTmC3a.mjs +66 -0
  296. package/dist/psl-names-C3cwe0rg-D1CTmC3a.mjs.map +1 -0
  297. package/dist/{query-lane-context-Qa-eddrE-kuZ8Z86-.d.mts → query-lane-context-BCEoKy0_-CzmyavC9.d.mts} +20 -49
  298. package/dist/query-lane-context-BCEoKy0_-CzmyavC9.d.mts.map +1 -0
  299. package/dist/query-lane-context-VqH0mS9B.d.mts +1 -0
  300. package/dist/{referential-action-sql-DJ9ps6-S.d.mts → referential-action-sql-B2vKoUK6.d.mts} +3 -3
  301. package/dist/referential-action-sql-B2vKoUK6.d.mts.map +1 -0
  302. package/dist/{referential-action-sql-DSqkrySN.mjs → referential-action-sql-BLzCtTi8.mjs} +2 -2
  303. package/dist/referential-action-sql-BLzCtTi8.mjs.map +1 -0
  304. package/dist/relational-core.d.mts +14 -13
  305. package/dist/relational-core.mjs +8 -8
  306. package/dist/relational-core__aggregate-descriptor-registry.d.mts +2 -2
  307. package/dist/relational-core__aggregate-descriptor-registry.d.mts.map +1 -1
  308. package/dist/relational-core__aggregate-descriptor-registry.mjs +1 -1
  309. package/dist/relational-core__ast.d.mts +5 -5
  310. package/dist/relational-core__ast.mjs +5 -5
  311. package/dist/relational-core__codec-descriptor-registry.d.mts +7 -8
  312. package/dist/relational-core__codec-descriptor-registry.d.mts.map +1 -1
  313. package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
  314. package/dist/relational-core__collection-methods.d.mts +3 -0
  315. package/dist/relational-core__contract-free.d.mts +18 -8
  316. package/dist/relational-core__contract-free.d.mts.map +1 -1
  317. package/dist/relational-core__contract-free.mjs +26 -10
  318. package/dist/relational-core__contract-free.mjs.map +1 -1
  319. package/dist/relational-core__expression.d.mts +4 -2
  320. package/dist/relational-core__expression.mjs +2 -2
  321. package/dist/relational-core__functions.d.mts +2 -0
  322. package/dist/relational-core__functions.mjs +2 -0
  323. package/dist/relational-core__index-reference.d.mts +3 -0
  324. package/dist/relational-core__index-reference.mjs +2 -0
  325. package/dist/relational-core__middleware.d.mts +2 -2
  326. package/dist/relational-core__middleware.mjs +1 -1
  327. package/dist/relational-core__plan.d.mts +4 -4
  328. package/dist/relational-core__plan.mjs +1 -1
  329. package/dist/relational-core__query-lane-context.d.mts +3 -3
  330. package/dist/relational-core__types.d.mts +2 -2
  331. package/dist/{resolve-storage-table-DZsfnzeW.mjs → resolve-storage-table-BHLQsOza.mjs} +3 -3
  332. package/dist/resolve-storage-table-BHLQsOza.mjs.map +1 -0
  333. package/dist/{resolve-storage-table-Nyrgk4h8.d.mts → resolve-storage-table-DCqtmnSU.d.mts} +4 -4
  334. package/dist/resolve-storage-table-DCqtmnSU.d.mts.map +1 -0
  335. package/dist/{runtime-tIHpGCcG.mjs → runtime-6tH1yOxK.mjs} +6 -6
  336. package/dist/runtime-6tH1yOxK.mjs.map +1 -0
  337. package/dist/{runtime-DpKF2Yu2.d.mts → runtime-CF6rAlE5.d.mts} +7 -8
  338. package/dist/runtime-CF6rAlE5.d.mts.map +1 -0
  339. package/dist/runtime.d.mts +5 -5
  340. package/dist/runtime.mjs +2 -1799
  341. package/dist/runtime__internal__prepared-query.d.mts +2 -2
  342. package/dist/runtime__internal__prepared-query.mjs +2 -2
  343. package/dist/{schema-differ-DpG_gnur-DFAtGezx.d.mts → schema-differ-DmP74bB8-tqHKiJ88.d.mts} +6 -6
  344. package/dist/schema-differ-DmP74bB8-tqHKiJ88.d.mts.map +1 -0
  345. package/dist/schema-ir.d.mts +2 -2
  346. package/dist/schema-ir.mjs +2 -2
  347. package/dist/schema-ir__naming.d.mts +1 -1
  348. package/dist/schema-ir__naming.mjs +1 -1
  349. package/dist/schema-ir__types.d.mts +3 -3
  350. package/dist/schema-ir__types.mjs +2 -2
  351. package/dist/{schema-verify-C_PEdlAr-Dxxjm6EM.mjs → schema-verify-C3wbdviw-DMjIubOr.mjs} +50 -8
  352. package/dist/schema-verify-C3wbdviw-DMjIubOr.mjs.map +1 -0
  353. package/dist/{serialized-index-CrgG8ct1-DG3JpHc7.d.mts → serialized-index-CrgG8ct1-DKVJ7TDX.d.mts} +4 -4
  354. package/dist/serialized-index-CrgG8ct1-DKVJ7TDX.d.mts.map +1 -0
  355. package/dist/{serialized-index-nBTwanKy-_ddEK4tk.mjs → serialized-index-DjCCnXB1-DMA7BtO2.mjs} +4 -4
  356. package/dist/serialized-index-DjCCnXB1-DMA7BtO2.mjs.map +1 -0
  357. package/dist/{sql-contract-serializer-2oBWuxTe-DKZTf2n8.mjs → sql-contract-serializer-sMY3prTx-D2BfrNxs.mjs} +41 -16
  358. package/dist/sql-contract-serializer-sMY3prTx-D2BfrNxs.mjs.map +1 -0
  359. package/dist/sql-data-type-D7M-YTTY-D2vRqDxn.mjs +400 -0
  360. package/dist/sql-data-type-D7M-YTTY-D2vRqDxn.mjs.map +1 -0
  361. package/dist/{sql-execution-plan--jKyLpe5-CMGhgO0M.d.mts → sql-execution-plan-3uxYjHyu-DLknM-Pj.d.mts} +3 -3
  362. package/dist/sql-execution-plan-3uxYjHyu-DLknM-Pj.d.mts.map +1 -0
  363. package/dist/sql-expression-B4BrhGPi.d.mts +62 -0
  364. package/dist/sql-expression-B4BrhGPi.d.mts.map +1 -0
  365. package/dist/sql-expression-CKgKznXS.mjs +137 -0
  366. package/dist/sql-expression-CKgKznXS.mjs.map +1 -0
  367. package/dist/{sql-index-ByAAE7K8-DKj2V86p.d.mts → sql-index-ByAAE7K8-Dqtn_vUL.d.mts} +4 -4
  368. package/dist/sql-index-ByAAE7K8-Dqtn_vUL.d.mts.map +1 -0
  369. package/dist/{sql-node-kEz6YFZo-v2F7delx.d.mts → sql-node-kEz6YFZo-1ogT6Cxt.d.mts} +2 -2
  370. package/dist/sql-node-kEz6YFZo-1ogT6Cxt.d.mts.map +1 -0
  371. package/dist/{sql-storage-8LqxeLAY-DH4DdUXx.d.mts → sql-storage-DeCAh5Hi-CEM-m8cs.d.mts} +19 -22
  372. package/dist/sql-storage-DeCAh5Hi-CEM-m8cs.d.mts.map +1 -0
  373. package/dist/{storage-table-DSeWszOL-CI-cItEK.d.mts → storage-table-Bf1ZjnxO-pUj6pyP0.d.mts} +17 -24
  374. package/dist/storage-table-Bf1ZjnxO-pUj6pyP0.d.mts.map +1 -0
  375. package/dist/{storage-table-ZzbR-xzQ-BRoTQE_2.mjs → storage-table-DDvN83mw-DkbBFmK9.mjs} +12 -9
  376. package/dist/storage-table-DDvN83mw-DkbBFmK9.mjs.map +1 -0
  377. package/dist/{storage-value-set-BGlj5Uus-CvZD--GG.d.mts → storage-value-set-BGlj5Uus-ny2k-0PA.d.mts} +3 -3
  378. package/dist/storage-value-set-BGlj5Uus-ny2k-0PA.d.mts.map +1 -0
  379. package/dist/transaction-state-BfXhs7D7-DhmbySW9.mjs +45 -0
  380. package/dist/transaction-state-BfXhs7D7-DhmbySW9.mjs.map +1 -0
  381. package/dist/transaction-state-DR3nKTmH-D29jmVE-.d.mts +115 -0
  382. package/dist/transaction-state-DR3nKTmH-D29jmVE-.d.mts.map +1 -0
  383. package/dist/types-B9wSEUsV.d.mts +1 -0
  384. package/dist/{types-CUsJrvEl.mjs → types-CTdSkl0s.mjs} +13 -6
  385. package/dist/types-CTdSkl0s.mjs.map +1 -0
  386. package/dist/types-CkAd8SWm.d.mts +57 -0
  387. package/dist/types-CkAd8SWm.d.mts.map +1 -0
  388. package/dist/{types-IqZMLrFC-DcH8v_u3.d.mts → types-Cq6ImLAB-RlU4jJAX.d.mts} +27 -41
  389. package/dist/types-Cq6ImLAB-RlU4jJAX.d.mts.map +1 -0
  390. package/dist/{types-YStFFkKs-D9UAmnON.d.mts → types-CuCxAQat-Dz8P4xyt.d.mts} +141 -86
  391. package/dist/types-CuCxAQat-Dz8P4xyt.d.mts.map +1 -0
  392. package/dist/types-DfKvtJwS-CrpWTGBJ.d.mts +273 -0
  393. package/dist/types-DfKvtJwS-CrpWTGBJ.d.mts.map +1 -0
  394. package/dist/{types-4YenawkP-CwaaZSid.mjs → types-DoyiTsjg-2YMhMJDA.mjs} +181 -80
  395. package/dist/types-DoyiTsjg-2YMhMJDA.mjs.map +1 -0
  396. package/dist/{types-v3qxLLxo-DCeKv7yY.d.mts → types-DriMIMNQ-BkbsW7w3.d.mts} +68 -34
  397. package/dist/types-DriMIMNQ-BkbsW7w3.d.mts.map +1 -0
  398. package/dist/{types-Dt4e_jC--COeP8xzN.mjs → types-NTQsD2MS-xcLtvKO9.mjs} +83 -17
  399. package/dist/types-NTQsD2MS-xcLtvKO9.mjs.map +1 -0
  400. package/dist/{types-CyxGtOOh-BggSa6Fe.d.mts → types-TXO7x1BA-CYYIY8NI.d.mts} +14 -14
  401. package/dist/types-TXO7x1BA-CYYIY8NI.d.mts.map +1 -0
  402. package/dist/types-ljUNyiWe.d.mts +1 -0
  403. package/dist/{unique-constraint-M5TlQnJQ-BiIHJ85k.d.mts → unique-constraint-M5TlQnJQ-qX-maNUV.d.mts} +3 -3
  404. package/dist/unique-constraint-M5TlQnJQ-qX-maNUV.d.mts.map +1 -0
  405. package/dist/{util-DQQgv2j1-D6INZaRG.mjs → util-BBgcP3gI-CpL-0VuC.mjs} +12 -3
  406. package/dist/util-BBgcP3gI-CpL-0VuC.mjs.map +1 -0
  407. package/dist/{validators-CrWD6bSP.mjs → validators-BwA7ttZM.mjs} +0 -0
  408. package/dist/validators-BwA7ttZM.mjs.map +1 -0
  409. package/dist/{validators-Belo8QqM.d.mts → validators-FJs8HvFr.d.mts} +54 -16
  410. package/dist/validators-FJs8HvFr.d.mts.map +1 -0
  411. package/dist/{value-set-derivation-hook-BhgGVtw0.d.mts → value-set-derivation-hook-3E437jPU.d.mts} +3 -3
  412. package/dist/value-set-derivation-hook-3E437jPU.d.mts.map +1 -0
  413. package/dist/{value-set-derivation-hook-Di9JZ0X7.mjs → value-set-derivation-hook-HVaxhALD.mjs} +2 -2
  414. package/dist/value-set-derivation-hook-HVaxhALD.mjs.map +1 -0
  415. package/dist/{verify-u0UTdZgD-DSAaz9rW.mjs → verify-BVk5bjdH-DhKm6hB3.mjs} +8 -7
  416. package/dist/verify-BVk5bjdH-DhKm6hB3.mjs.map +1 -0
  417. package/dist/{verify-zDRnw0Rn.d.mts → verify-DHXbuZPB.d.mts} +2 -2
  418. package/dist/verify-DHXbuZPB.d.mts.map +1 -0
  419. package/package.json +33 -22
  420. package/dist/aggregate-descriptor-registry-C7hel5O7.mjs.map +0 -1
  421. package/dist/ast-HFcfQZr-.d.mts +0 -206
  422. package/dist/ast-HFcfQZr-.d.mts.map +0 -1
  423. package/dist/ast-Lbl4VwqP.mjs +0 -325
  424. package/dist/ast-Lbl4VwqP.mjs.map +0 -1
  425. package/dist/authored-check-naming-BWBe-PVE.d.mts.map +0 -1
  426. package/dist/authored-check-naming-Hf9990DV.mjs.map +0 -1
  427. package/dist/authoring-type-constructors-Blqoa2Ua-DqvNCOb2.mjs +0 -316
  428. package/dist/authoring-type-constructors-Blqoa2Ua-DqvNCOb2.mjs.map +0 -1
  429. package/dist/canonicalization-hooks-CYnW_sGn.d.mts.map +0 -1
  430. package/dist/canonicalization-hooks-dmXkOR4a.mjs.map +0 -1
  431. package/dist/check-constraint-B7qGu6rc-HvQjjX82.d.mts.map +0 -1
  432. package/dist/codec-descriptor-registry-N0dhtKaH.mjs.map +0 -1
  433. package/dist/config-types-D9fdKG3g.d.mts.map +0 -1
  434. package/dist/config-types-gAm54C_v.mjs.map +0 -1
  435. package/dist/contract-builder-CG_tGDbB.d.mts +0 -1360
  436. package/dist/contract-builder-CG_tGDbB.d.mts.map +0 -1
  437. package/dist/contract-builder-D4a5dT7j.mjs.map +0 -1
  438. package/dist/contract-errors-BCN6RVI5-5IHBF_lg.mjs.map +0 -1
  439. package/dist/contract-view-BMR5IWk4.mjs.map +0 -1
  440. package/dist/contract-view-CPHxoAEX.d.mts.map +0 -1
  441. package/dist/contract__pack-types.d.mts +0 -2
  442. package/dist/control-D3cB5YQp.mjs +0 -1267
  443. package/dist/control-D3cB5YQp.mjs.map +0 -1
  444. package/dist/control-DTLJ1WtZ.d.mts +0 -945
  445. package/dist/control-DTLJ1WtZ.d.mts.map +0 -1
  446. package/dist/control-adapter-C99J7aEF-B7eQd7vD.d.mts.map +0 -1
  447. package/dist/control-adapter-MZJQiwcE.d.mts +0 -1
  448. package/dist/db-D18PrXKW-DvTv4JFn.d.mts.map +0 -1
  449. package/dist/ddl-types-BGdnAbXo-DKPHPUGx.mjs.map +0 -1
  450. package/dist/ddl-types-CXx4vPz6-BsgrnSUY.d.mts.map +0 -1
  451. package/dist/derived-checks-DFMRmiAu-DGfB8aS4.mjs +0 -1057
  452. package/dist/derived-checks-DFMRmiAu-DGfB8aS4.mjs.map +0 -1
  453. package/dist/derived-checks-DPdD01O0-DGqOFjs6.d.mts.map +0 -1
  454. package/dist/diff-B16bL_IR.mjs +0 -13
  455. package/dist/diff-B16bL_IR.mjs.map +0 -1
  456. package/dist/diff-DbTNVm2f.d.mts.map +0 -1
  457. package/dist/dist-C_q1_QR9.mjs.map +0 -1
  458. package/dist/dist-ZK6oeI5e.mjs.map +0 -1
  459. package/dist/dist-x6jvtkKM.mjs.map +0 -1
  460. package/dist/driver-types-BQtRkOJ0-Bv2RPSfr.d.mts.map +0 -1
  461. package/dist/entity-handle-lowering-hook-CIvRKBfa.d.mts.map +0 -1
  462. package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs +0 -11
  463. package/dist/entity-handle-lowering-hook-DwLIKNiS.mjs.map +0 -1
  464. package/dist/entity-kinds-B5cUFU22.d.mts.map +0 -1
  465. package/dist/entity-kinds-D7vwoN_T-CCBwFJy0.mjs.map +0 -1
  466. package/dist/errors-B5g0xWro-mWH2C07F.mjs.map +0 -1
  467. package/dist/expression-CX5mTA-z.mjs.map +0 -1
  468. package/dist/expression-FJK6Ar-d.d.mts.map +0 -1
  469. package/dist/factories-P3qBQhO-.d.mts.map +0 -1
  470. package/dist/factories-SVor5xIT.mjs.map +0 -1
  471. package/dist/family__pack.d.mts.map +0 -1
  472. package/dist/family__pack.mjs.map +0 -1
  473. package/dist/foreign-key-C-iTPuRT-C9ip8zFx.d.mts.map +0 -1
  474. package/dist/foreign-key-materialization-CkvOzJWy.d.mts +0 -65
  475. package/dist/foreign-key-materialization-CkvOzJWy.d.mts.map +0 -1
  476. package/dist/foreign-key-materialization-Cu7-7LHl.mjs +0 -73
  477. package/dist/foreign-key-materialization-Cu7-7LHl.mjs.map +0 -1
  478. package/dist/index-C-vQOMY_.d.mts +0 -84
  479. package/dist/index-C-vQOMY_.d.mts.map +0 -1
  480. package/dist/index-C5I8D-MB.d.mts.map +0 -1
  481. package/dist/index-naming-Ct65z5Xk.d.mts.map +0 -1
  482. package/dist/index-naming-DREt6js7-CRH27yUv.mjs.map +0 -1
  483. package/dist/index-type-validation-COH4d78M.mjs +0 -17
  484. package/dist/index-type-validation-COH4d78M.mjs.map +0 -1
  485. package/dist/index-type-validation-CZ5L2lli.d.mts +0 -10
  486. package/dist/index-type-validation-CZ5L2lli.d.mts.map +0 -1
  487. package/dist/index-types-CNhHgKHi.d.mts +0 -1
  488. package/dist/index-types-DJQ_xwaE.mjs +0 -40
  489. package/dist/index-types-DJQ_xwaE.mjs.map +0 -1
  490. package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts +0 -31
  491. package/dist/index-types-DPVhsW0v-D-BikM4h.d.mts.map +0 -1
  492. package/dist/interpreter-DyiUUAWh-DYdjIpiE.mjs +0 -3680
  493. package/dist/interpreter-DyiUUAWh-DYdjIpiE.mjs.map +0 -1
  494. package/dist/ir-Bghjt-FG.d.mts.map +0 -1
  495. package/dist/ir-I-xciGUH.mjs.map +0 -1
  496. package/dist/lane-query-builder.d.mts +0 -236
  497. package/dist/lane-query-builder.d.mts.map +0 -1
  498. package/dist/lane-query-builder.mjs +0 -67
  499. package/dist/lane-query-builder.mjs.map +0 -1
  500. package/dist/middleware--TtoxUiW.d.mts +0 -1
  501. package/dist/middleware-AhTz1BOW-th-Suxuf.d.mts.map +0 -1
  502. package/dist/middleware-CMr4CHNz-DHIUdxlm.mjs.map +0 -1
  503. package/dist/migration-CK4oePIo.mjs.map +0 -1
  504. package/dist/migration-CjDRZNep.d.mts.map +0 -1
  505. package/dist/naming-CV9j2pXl-KARaDReS.d.mts.map +0 -1
  506. package/dist/naming-DKr4TJd7-Cszhq9RV.mjs.map +0 -1
  507. package/dist/pack-types-BcLTpwbv.d.mts +0 -14
  508. package/dist/pack-types-BcLTpwbv.d.mts.map +0 -1
  509. package/dist/plan-BHLdb0Z7.d.mts +0 -2
  510. package/dist/plan-CDxduYaN-pLIyyJaB.d.mts.map +0 -1
  511. package/dist/plan-Dh0LbYIv-Crx5-ThG.mjs.map +0 -1
  512. package/dist/prepared-query-BJr50wPm-ChoqfJbX.mjs +0 -22
  513. package/dist/prepared-query-BJr50wPm-ChoqfJbX.mjs.map +0 -1
  514. package/dist/prepared-statement-9QpkE6JG-C430V3MO.d.mts +0 -529
  515. package/dist/prepared-statement-9QpkE6JG-C430V3MO.d.mts.map +0 -1
  516. package/dist/psl-infer-CCAD6FWA.d.mts +0 -119
  517. package/dist/psl-infer-CCAD6FWA.d.mts.map +0 -1
  518. package/dist/psl-infer-Dk5kgKre.mjs +0 -362
  519. package/dist/psl-infer-Dk5kgKre.mjs.map +0 -1
  520. package/dist/query-lane-context-Qa-eddrE-kuZ8Z86-.d.mts.map +0 -1
  521. package/dist/query-lane-context-XMvk7fmY.d.mts +0 -1
  522. package/dist/referential-action-sql-DJ9ps6-S.d.mts.map +0 -1
  523. package/dist/referential-action-sql-DSqkrySN.mjs.map +0 -1
  524. package/dist/resolve-storage-table-DZsfnzeW.mjs.map +0 -1
  525. package/dist/resolve-storage-table-Nyrgk4h8.d.mts.map +0 -1
  526. package/dist/runtime-DpKF2Yu2.d.mts.map +0 -1
  527. package/dist/runtime-tIHpGCcG.mjs.map +0 -1
  528. package/dist/runtime.mjs.map +0 -1
  529. package/dist/schema-differ-DpG_gnur-DFAtGezx.d.mts.map +0 -1
  530. package/dist/schema-verify-C_PEdlAr-Dxxjm6EM.mjs.map +0 -1
  531. package/dist/serialized-index-CrgG8ct1-DG3JpHc7.d.mts.map +0 -1
  532. package/dist/serialized-index-nBTwanKy-_ddEK4tk.mjs.map +0 -1
  533. package/dist/sql-contract-serializer-2oBWuxTe-DKZTf2n8.mjs.map +0 -1
  534. package/dist/sql-execution-plan--jKyLpe5-CMGhgO0M.d.mts.map +0 -1
  535. package/dist/sql-index-ByAAE7K8-DKj2V86p.d.mts.map +0 -1
  536. package/dist/sql-node-kEz6YFZo-v2F7delx.d.mts.map +0 -1
  537. package/dist/sql-storage-8LqxeLAY-DH4DdUXx.d.mts.map +0 -1
  538. package/dist/storage-table-DSeWszOL-CI-cItEK.d.mts.map +0 -1
  539. package/dist/storage-table-ZzbR-xzQ-BRoTQE_2.mjs.map +0 -1
  540. package/dist/storage-value-set-BGlj5Uus-CvZD--GG.d.mts.map +0 -1
  541. package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs +0 -173
  542. package/dist/timestamp-now-generator-DRXygu32-DN9Qb1uI.mjs.map +0 -1
  543. package/dist/types-4YenawkP-CwaaZSid.mjs.map +0 -1
  544. package/dist/types-B0msOnBM.d.mts +0 -1
  545. package/dist/types-BDUG29Df-LE85dIXP.d.mts +0 -161
  546. package/dist/types-BDUG29Df-LE85dIXP.d.mts.map +0 -1
  547. package/dist/types-CUsJrvEl.mjs.map +0 -1
  548. package/dist/types-CyxGtOOh-BggSa6Fe.d.mts.map +0 -1
  549. package/dist/types-Dt4e_jC--COeP8xzN.mjs.map +0 -1
  550. package/dist/types-Dwcw0F8X.d.mts +0 -1
  551. package/dist/types-IqZMLrFC-DcH8v_u3.d.mts.map +0 -1
  552. package/dist/types-UcHa2cTe.d.mts +0 -17
  553. package/dist/types-UcHa2cTe.d.mts.map +0 -1
  554. package/dist/types-YStFFkKs-D9UAmnON.d.mts.map +0 -1
  555. package/dist/types-v3qxLLxo-DCeKv7yY.d.mts.map +0 -1
  556. package/dist/unique-constraint-M5TlQnJQ-BiIHJ85k.d.mts.map +0 -1
  557. package/dist/util-DQQgv2j1-D6INZaRG.mjs.map +0 -1
  558. package/dist/validators-Belo8QqM.d.mts.map +0 -1
  559. package/dist/validators-CrWD6bSP.mjs.map +0 -1
  560. package/dist/value-set-derivation-hook-BhgGVtw0.d.mts.map +0 -1
  561. package/dist/value-set-derivation-hook-Di9JZ0X7.mjs.map +0 -1
  562. package/dist/verify-u0UTdZgD-DSAaz9rW.mjs.map +0 -1
  563. package/dist/verify-zDRnw0Rn.d.mts.map +0 -1
  564. /package/dist/{contract__pack-types.mjs → relational-core__collection-methods.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports-C3wGYtID-D65DEUTC.mjs","names":["runtimeError","#count","#started","#drainWaiters","#ast","#holdFinishedChildren","#runtimeRoute","#openTransactions","#inFlight","#transactionWorkOn","#heldQueryables","#openActivityHandles","#refusing","#openTransactionWork","#preparedStatementHandles","#run","#rows","#done","#inner"],"sources":["../../../../2-sql-family/5-runtime/dist/exports-C3wGYtID.mjs"],"sourcesContent":["import { a as wasRefusedBeforeBegin, c as preparedStatementExecute, i as transactionStart, l as runPreparedExecute, n as settlementOf, o as preparedStatementQuery, r as transactionSettlement, s as runPreparedQuery, t as createTransactionStart } from \"./transaction-state-BfXhs7D7.mjs\";\nimport { invariant } from \"@internal/utils/assertions\";\nimport { materializeCodec, resolveCodecDescriptorOrThrow } from \"@internal/framework-components/codec\";\nimport { canonicalizeJson } from \"@internal/framework-components/utils\";\nimport { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, createContextBeneath, executeStatement, raceAgainstAbort, runtimeError, startClientActivity, startTransactionActivity, streamStatement } from \"@internal/framework-components/runtime\";\nimport { PreparedParamRef, collectOrderedParamRefs, isQueryAst } from \"@internal/sql-relational-core/ast\";\nimport { assertNever, isInternalError } from \"@internal/utils/internal-error\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { checkContractComponentRequirements, mergeCapabilityMatrices } from \"@internal/framework-components/components\";\nimport { createExecutionStack } from \"@internal/framework-components/execution\";\nimport { createSqlOperationRegistry } from \"@internal/sql-operations\";\nimport { buildSqlAggregateDescriptorRegistry } from \"@internal/sql-relational-core/aggregate-descriptor-registry\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { createSqlParamRefMutator } from \"@internal/sql-relational-core/middleware\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { hashContent } from \"@internal/utils/hash-content\";\nimport { createHash } from \"node:crypto\";\n//#region src/activity-handle.ts\n/** The symbol-keyed member through which a runtime, connection, transaction, `withTransaction` context or activity handle starts activities; user-facing types do not show it. */\nconst activitySource = Symbol(\"activitySource\");\nfunction hasActivitySourceMember(target) {\n\treturn activitySource in target;\n}\n/** The `activitySource` member of a queryable; `undefined` for a queryable that cannot start activities, such as a test stub. */\nfunction findActivitySource(target) {\n\treturn hasActivitySourceMember(target) ? target[activitySource] : void 0;\n}\nfunction activitySourceOf(target) {\n\tconst source = findActivitySource(target);\n\tinvariant(source !== void 0, \"The queryable cannot start activities\");\n\treturn source;\n}\n/** An activity source that calls `source()` each time it is used, for an object whose source is created later, such as on the first query. */\nfunction lazyActivitySource(source) {\n\treturn {\n\t\tstartActivity: (activity) => source().startActivity(activity),\n\t\tplanContentHash: (plan) => source().planContentHash(plan)\n\t};\n}\n/** An activity source that starts activities on whatever queryable `target()` returns when called, for an object that sends its statements to a queryable it looks up each time. */\nfunction delegatingActivitySource(target) {\n\treturn lazyActivitySource(() => activitySourceOf(target()));\n}\n/** Starts an activity on a queryable through its `activitySource` member. */\nfunction startActivityOn(target, activity) {\n\treturn activitySourceOf(target).startActivity(activity);\n}\nfunction planContentHashOn(target, plan) {\n\treturn activitySourceOf(target).planContentHash(plan);\n}\n//#endregion\n//#region src/codecs/ast-codec-resolver.ts\n/**\n* Build an {@link AstCodecResolver} bound to a descriptor registry and a per-call instance-context factory.\n*\n* The instance-context factory lets callers control `name` / `usedAt` for refs the AST supplies (e.g. AST-embedded migration ops where the materialisation site is the AST node, not a contract column). The contract-walk pre-population path constructs its own contexts and invokes the resolver with those refs to seed the cache.\n*/\nfunction createAstCodecResolver(descriptors, instanceContextFor) {\n\tconst cache = /* @__PURE__ */ new Map();\n\treturn { forCodecRef(ref) {\n\t\tconst key = `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\t\tconst cached = cache.get(key);\n\t\tif (cached) return cached;\n\t\tconst codec = materializeCodec(resolveCodecDescriptorOrThrow((id) => descriptors.descriptorFor(id), ref, \"RUNTIME.CODEC_DESCRIPTOR_MISSING\"), ref, instanceContextFor(ref));\n\t\tcache.set(key, codec);\n\t\treturn codec;\n\t} };\n}\n//#endregion\n//#region src/codecs/ast-codec-registry.ts\n/**\n* Build a contract-free {@link ContractCodecRegistry} that resolves codecs\n* purely from AST-supplied {@link import('@internal/framework-components/codec').CodecRef}s\n* against a target's descriptor registry.\n*\n* Dispatch is driven entirely by `CodecRef`s embedded in AST nodes; no\n* contract walk is needed. `forColumn` always returns `undefined` — this\n* registry carries no column-to-codec mappings.\n*/\nfunction createAstCodecRegistry(descriptors) {\n\tconst resolver = createAstCodecResolver(descriptors, (ref) => ({\n\t\tname: ref.codecId,\n\t\tusedAt: []\n\t}));\n\treturn {\n\t\tforColumn: () => void 0,\n\t\tforCodecRef: (ref) => resolver.forCodecRef(ref)\n\t};\n}\n//#endregion\n//#region src/codecs/encoding.ts\nconst NO_METADATA = Object.freeze({\n\tcodec: void 0,\n\tname: void 0\n});\nfunction deriveParamMetadata(ast) {\n\treturn collectOrderedParamRefs(ast).map((ref) => {\n\t\treturn {\n\t\t\tcodec: ref.codec,\n\t\t\tname: ref.name\n\t\t};\n\t});\n}\nfunction resolveParamCodec(metadata, contractCodecs) {\n\tif (metadata.codec && contractCodecs) return contractCodecs.forCodecRef(metadata.codec);\n}\nfunction paramLabel(metadata, paramIndex) {\n\treturn metadata.name ?? `param[${paramIndex}]`;\n}\nfunction wrapEncodeFailure(error, metadata, paramIndex, codecId) {\n\tif (isInternalError(error)) throw error;\n\tconst label = paramLabel(metadata, paramIndex);\n\tconst wrapped = runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode parameter ${label} with codec '${codecId}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\tlabel,\n\t\tcodec: codecId,\n\t\tparamIndex\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nasync function encodeParamValue(value, metadata, paramIndex, ctx, contractCodecs) {\n\tif (value === null || value === void 0) return null;\n\tconst codec = resolveParamCodec(metadata, contractCodecs);\n\tif (!codec) return value;\n\tif (metadata.codec?.many) {\n\t\tif (!Array.isArray(value)) wrapEncodeFailure(/* @__PURE__ */ new TypeError(`expected an array for many-typed parameter, got ${typeof value}`), metadata, paramIndex, codec.id);\n\t\tconst encoded = [];\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tconst elem = value[i];\n\t\t\tif (elem === null || elem === void 0) {\n\t\t\t\tencoded.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tencoded.push(await codec.toWire(elem, ctx));\n\t\t\t} catch (error) {\n\t\t\t\tif (isStructuredError(error)) throw error;\n\t\t\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t\t\t}\n\t\t}\n\t\treturn encoded;\n\t}\n\ttry {\n\t\treturn await codec.toWire(value, ctx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t}\n}\n/**\n* Encodes all parameters concurrently via `Promise.all`. Per parameter, sync-and async-authored codecs share the same path: `codec.encode → await → return`. Param-level failures are wrapped in `RUNTIME.ENCODE_FAILED`.\n*\n* When `ctx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'encode' }`) before any `codec.encode` call is made — codecs can pin this with a per-call counter that stays at zero.\n* - **Mid-flight abort** races the per-param `Promise.all` against `abortable(ctx.signal)`. The runtime returns `RUNTIME.ABORTED` promptly even if codec bodies ignore the signal; the in-flight bodies are abandoned and run to completion in the background (cooperative cancellation, see ADR 204).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.ENCODE_FAILED`) that surface from a codec body before the runtime observes the abort pass through unchanged (no double wrap).\n*/\nasync function encodeParams(plan, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(plan.params, deriveParamMetadata(plan.ast), ctx, contractCodecs);\n}\nasync function encodeParamsWithMetadata(values, metadata, ctx, contractCodecs) {\n\tcheckAborted(ctx, \"encode\");\n\tconst signal = ctx.signal;\n\tif (values.length === 0) return values;\n\tconst tasks = values.map((value, i) => encodeParamValue(value, metadata[i] ?? NO_METADATA, i, ctx, contractCodecs));\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"encode\");\n\treturn Object.freeze(settled);\n}\n//#endregion\n//#region src/codecs/validation.ts\nfunction extractCodecIds(contract) {\n\tconst codecIds = /* @__PURE__ */ new Set();\n\tfor (const ns of Object.values(contract.storage.namespaces)) for (const table of Object.values(ns.entries.table ?? {})) for (const column of Object.values(table.columns)) {\n\t\tconst codecId = column.codecId;\n\t\tcodecIds.add(codecId);\n\t}\n\treturn codecIds;\n}\nfunction extractColumnCodecRefs(contract) {\n\tconst refs = [];\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) refs.push({\n\t\tnamespaceId,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tcodecId: column.codecId\n\t});\n\treturn refs;\n}\nfunction validateContractCodecMappings(registry, contract) {\n\tconst invalidCodecs = extractColumnCodecRefs(contract).filter((ref) => registry.descriptorFor(ref.codecId) === void 0);\n\tif (invalidCodecs.length > 0) {\n\t\tconst details = {\n\t\t\tcontractTarget: contract.target,\n\t\t\tinvalidCodecs\n\t\t};\n\t\tthrow runtimeError(\"RUNTIME.CODEC_MISSING\", `Missing codec implementations for column codecIds: ${invalidCodecs.map((c) => `${c.namespaceId}.${c.table}.${c.column} (${c.codecId})`).join(\", \")}`, details);\n\t}\n}\nfunction validateCodecRegistryCompleteness(registry, contract) {\n\tvalidateContractCodecMappings(registry, contract);\n}\n//#endregion\n//#region src/lower-sql-plan.ts\n/**\n* Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.\n*\n* Ad-hoc lowerings produce only `{kind: 'literal'}` slots; this helper\n* unwraps them into the bare-value array `SqlExecutionPlan` exposes.\n* Encountering a `{kind: 'bind'}` slot here means the caller passed an\n* AST containing `PreparedParamRef` to the ad-hoc execute path — that's a\n* caller error, surfaced as `RUNTIME.PREPARE_BIND_ON_ADHOC`.\n*/\nfunction lowerSqlPlan(adapter, contract, queryPlan) {\n\tconst lowered = adapter.lower(queryPlan.ast, {\n\t\tcontract,\n\t\tparams: queryPlan.params\n\t});\n\tconst params = lowered.params.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tthrow runtimeError(\"RUNTIME.PREPARE_BIND_ON_ADHOC\", `The plan has a bind site for '${slot.name}'. A plan built inside prepare(...) runs only as a prepared statement.`, { name: slot.name });\n\t});\n\treturn Object.freeze({\n\t\tsql: lowered.sql,\n\t\tparams,\n\t\tast: queryPlan.ast,\n\t\tmeta: queryPlan.meta\n\t});\n}\n//#endregion\n//#region src/middleware/budgets.ts\nfunction hasAggregateWithoutGroupBy(ast) {\n\tif (ast.groupBy !== void 0) return false;\n\treturn ast.projection.some((item) => item.expr.kind === \"aggregate\");\n}\nfunction primaryTableFromAst(ast) {\n\tif (ast.from === void 0) return void 0;\n\tswitch (ast.from.kind) {\n\t\tcase \"table-source\": return ast.from.name;\n\t\tcase \"derived-table-source\": return ast.from.alias;\n\t\tcase \"function-source\": return ast.from.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(ast.from, `Unsupported source kind: ${ast.from.kind}`);\n\t}\n}\nfunction estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggregateWithoutGroup) {\n\tif (hasAggregateWithoutGroup) return 1;\n\tconst primaryTable = primaryTableFromAst(ast);\n\tconst tableEstimate = (primaryTable !== void 0 ? tableRows[primaryTable] : void 0) ?? defaultTableRows;\n\tif (typeof ast.limit === \"number\") return Math.min(ast.limit, tableEstimate);\n\treturn tableEstimate;\n}\nfunction emitBudgetViolation(error, shouldBlock, ctx) {\n\tif (shouldBlock) throw error;\n\tctx.log.warn({\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tdetails: error.details\n\t});\n}\nconst observedRows = Symbol(\"budgets.observedRows\");\nfunction budgets(options) {\n\tconst maxRows = options?.maxRows ?? 1e4;\n\tconst defaultTableRows = options?.defaultTableRows ?? 1e4;\n\tconst tableRows = options?.tableRows ?? {};\n\tconst maxLatencyMs = options?.maxLatencyMs ?? 1e3;\n\tconst rowSeverity = options?.severities?.rowCount ?? \"error\";\n\tconst latencySeverity = options?.severities?.latency ?? \"warn\";\n\treturn Object.freeze({\n\t\tname: \"budgets\",\n\t\tfamilyId: \"sql\",\n\t\tasync beforeEncode(plan, ctx) {\n\t\t\tif (isQueryAst(plan.ast) && plan.ast.kind === \"select\") evaluateSelectAst(plan.ast, ctx);\n\t\t},\n\t\tasync onRow(_row, _plan, ctx) {\n\t\t\tconst observed = ctx.state(observedRows);\n\t\t\tconst count = (typeof observed[\"count\"] === \"number\" ? observed[\"count\"] : 0) + 1;\n\t\t\tobserved[\"count\"] = count;\n\t\t\tif (count <= maxRows || observed[\"warned\"] === true) return;\n\t\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\tif (!shouldBlock) observed[\"warned\"] = true;\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Observed row count exceeds budget\", {\n\t\t\t\tsource: \"observed\",\n\t\t\t\tobservedRows: count,\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t},\n\t\tasync activityEnded(_activity, result, ctx) {\n\t\t\tif (result.kind === \"statement\") checkLatency(result.latencyMs, ctx);\n\t\t}\n\t});\n\tfunction checkLatency(latencyMs, ctx) {\n\t\tif (latencyMs > maxLatencyMs) {\n\t\t\tconst shouldBlock = latencySeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.TIME_EXCEEDED\", \"Query latency exceeds budget\", {\n\t\t\t\tlatencyMs,\n\t\t\t\tmaxLatencyMs\n\t\t\t}), shouldBlock, ctx);\n\t\t}\n\t}\n\tfunction evaluateSelectAst(ast, ctx) {\n\t\tconst hasAggNoGroup = hasAggregateWithoutGroupBy(ast);\n\t\tconst estimated = estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggNoGroup);\n\t\tconst isUnbounded = ast.limit === void 0 && !hasAggNoGroup;\n\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\tif (isUnbounded) {\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Unbounded SELECT query exceeds budget\", estimated >= maxRows ? {\n\t\t\t\tsource: \"ast\",\n\t\t\t\testimatedRows: estimated,\n\t\t\t\tmaxRows\n\t\t\t} : {\n\t\t\t\tsource: \"ast\",\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t\treturn;\n\t\t}\n\t\tif (estimated > maxRows) emitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Estimated row count exceeds budget\", {\n\t\t\tsource: \"ast\",\n\t\t\testimatedRows: estimated,\n\t\t\tmaxRows\n\t\t}), shouldBlock, ctx);\n\t}\n}\n//#endregion\n//#region src/guardrails/raw.ts\nconst SELECT_STAR_REGEX = /select\\s+\\*/i;\nconst LIMIT_REGEX = /\\blimit\\b/i;\nconst MUTATION_PREFIX_REGEX = /^(insert|update|delete|create|alter|drop|truncate)\\b/i;\nconst READ_ONLY_INTENTS = /* @__PURE__ */ new Set([\n\t\"read\",\n\t\"report\",\n\t\"readonly\"\n]);\nfunction evaluateRawGuardrails(plan, config) {\n\tconst lints = [];\n\tconst budgets = [];\n\tconst normalized = normalizeWhitespace(plan.sql);\n\tconst statementType = classifyStatement(normalized);\n\tif (statementType === \"select\") {\n\t\tif (SELECT_STAR_REGEX.test(normalized)) lints.push(createLint(\"LINT.SELECT_STAR\", \"error\", \"Raw SQL plan selects all columns via *\", { sql: snippet(plan.sql) }));\n\t\tif (!LIMIT_REGEX.test(normalized)) {\n\t\t\tconst severity = config?.budgets?.unboundedSelectSeverity ?? \"error\";\n\t\t\tlints.push(createLint(\"LINT.NO_LIMIT\", \"warn\", \"Raw SQL plan omits LIMIT clause\", { sql: snippet(plan.sql) }));\n\t\t\tbudgets.push(createBudget(\"BUDGET.ROWS_EXCEEDED\", severity, \"Raw SQL plan is unbounded and may exceed row budget\", {\n\t\t\t\tsql: snippet(plan.sql),\n\t\t\t\t...config?.budgets?.estimatedRows !== void 0 ? { estimatedRows: config.budgets.estimatedRows } : {}\n\t\t\t}));\n\t\t}\n\t}\n\tif (isMutationStatement(statementType) && isReadOnlyIntent(plan.meta)) lints.push(createLint(\"LINT.READ_ONLY_MUTATION\", \"error\", \"Raw SQL plan mutates data despite read-only intent\", {\n\t\tsql: snippet(plan.sql),\n\t\tintent: plan.meta.annotations?.[\"intent\"]\n\t}));\n\treturn {\n\t\tlints,\n\t\tbudgets,\n\t\tstatement: statementType\n\t};\n}\nfunction classifyStatement(sql) {\n\tconst trimmed = sql.trim();\n\tconst lower = trimmed.toLowerCase();\n\tif (lower.startsWith(\"with\")) {\n\t\tif (lower.includes(\"select\")) return \"select\";\n\t}\n\tif (lower.startsWith(\"select\")) return \"select\";\n\tif (MUTATION_PREFIX_REGEX.test(trimmed)) return \"mutation\";\n\treturn \"other\";\n}\nfunction isMutationStatement(statement) {\n\treturn statement === \"mutation\";\n}\nfunction isReadOnlyIntent(meta) {\n\tconst annotations = meta.annotations;\n\tconst intent = typeof annotations?.intent === \"string\" ? annotations.intent.toLowerCase() : void 0;\n\treturn intent !== void 0 && READ_ONLY_INTENTS.has(intent);\n}\nfunction normalizeWhitespace(value) {\n\treturn value.replace(/\\s+/g, \" \").trim();\n}\nfunction snippet(sql) {\n\treturn normalizeWhitespace(sql).slice(0, 200);\n}\nfunction createLint(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\nfunction createBudget(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\n//#endregion\n//#region src/middleware/lints.ts\nfunction getFromSourceTableDetail(source) {\n\tswitch (source.kind) {\n\t\tcase \"table-source\": return source.name;\n\t\tcase \"derived-table-source\": return source.alias;\n\t\tcase \"function-source\": return source.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(source, `Unsupported source kind: ${source.kind}`);\n\t}\n}\nfunction evaluateAstLints(ast) {\n\tconst findings = [];\n\tswitch (ast.kind) {\n\t\tcase \"delete\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.DELETE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"DELETE without WHERE clause blocks execution to prevent accidental full-table deletion\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"update\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.UPDATE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"UPDATE without WHERE clause blocks execution to prevent accidental full-table update\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"select\":\n\t\t\tif (ast.limit === void 0) {\n\t\t\t\tconst table = ast.from !== void 0 ? getFromSourceTableDetail(ast.from) : void 0;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.NO_LIMIT\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Unbounded SELECT may return large result sets\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (ast.selectAllIntent !== void 0) {\n\t\t\t\tconst table = ast.selectAllIntent.table;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.SELECT_STAR\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Query selects all columns via selectAll intent\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"insert\": break;\n\t\tcase \"raw-query\": break;\n\t\t// v8 ignore next 2\n\t\tdefault: assertNever(ast, `Unsupported AST kind: ${ast.kind}`);\n\t}\n\treturn findings;\n}\nfunction getConfiguredSeverity(code, options) {\n\tconst severities = options?.severities;\n\tif (!severities) return void 0;\n\tswitch (code) {\n\t\tcase \"LINT.SELECT_STAR\": return severities.selectStar;\n\t\tcase \"LINT.NO_LIMIT\": return severities.noLimit;\n\t\tcase \"LINT.DELETE_WITHOUT_WHERE\": return severities.deleteWithoutWhere;\n\t\tcase \"LINT.UPDATE_WITHOUT_WHERE\": return severities.updateWithoutWhere;\n\t\tcase \"LINT.READ_ONLY_MUTATION\": return severities.readOnlyMutation;\n\t\tdefault: return;\n\t}\n}\n/**\n* AST-first lint middleware for SQL plans. When `plan.ast` is a SQL QueryAst, inspects\n* the AST structurally. When `plan.ast` is missing, falls back to raw heuristic\n* guardrails or skips linting depending on `fallbackWhenAstMissing`.\n*\n* Rules (AST-based):\n* - DELETE without WHERE: blocks execution (configurable severity, default error)\n* - UPDATE without WHERE: blocks execution (configurable severity, default error)\n* - Unbounded SELECT: warn/error (severity from noLimit)\n* - SELECT * intent: warn/error (severity from selectStar)\n*\n* Fallback: When ast is missing, `fallbackWhenAstMissing: 'raw'` uses heuristic\n* SQL parsing; `'skip'` skips all lints. Default is `'raw'`.\n*/\nfunction lints(options) {\n\tconst fallback = options?.fallbackWhenAstMissing ?? \"raw\";\n\tconst beforeOperation = async (plan, ctx) => {\n\t\tconst findings = [];\n\t\tif (isQueryAst(plan.ast)) {\n\t\t\tfindings.push(...evaluateAstLints(plan.ast));\n\t\t\tif (plan.ast.kind === \"raw-query\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\t} else if (fallback !== \"skip\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\tfor (const lint of findings) {\n\t\t\tconst effectiveSeverity = getConfiguredSeverity(lint.code, options) ?? lint.severity;\n\t\t\tif (effectiveSeverity === \"error\") throw runtimeError(lint.code, lint.message, lint.details);\n\t\t\tif (effectiveSeverity === \"warn\") ctx.log.warn({\n\t\t\t\tcode: lint.code,\n\t\t\t\tmessage: lint.message,\n\t\t\t\tdetails: lint.details\n\t\t\t});\n\t\t}\n\t};\n\treturn Object.freeze({\n\t\tname: \"lints\",\n\t\tfamilyId: \"sql\",\n\t\tbeforeEncode: beforeOperation\n\t});\n}\n//#endregion\n//#region src/prepared/prepared-statement.ts\nvar PreparedStatementImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\tquery(target, params, options) {\n\t\treturn runPreparedQuery(target, this, params, options);\n\t}\n};\n/**\n* The statistics-reporting sibling of {@link PreparedStatementImpl}. A plan\n* declaring an affected-row count prepares into one of these, which carries\n* the same lowered statement and bind slots and is consumed by executing it.\n*\n* The two classes are separate so the consumption a plan did not declare is\n* absent from the value, not merely from its type.\n*/\nvar PreparedExecutionImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\texecute(target, params, options) {\n\t\treturn runPreparedExecute(target, this, params, options);\n\t}\n};\n//#endregion\n//#region src/sql-context.ts\nfunction createSqlExecutionStack(options) {\n\treturn createExecutionStack({\n\t\ttarget: options.target,\n\t\tadapter: options.adapter,\n\t\tdriver: options.driver,\n\t\textensions: options.extensions\n\t});\n}\nfunction assertExecutionStackContractRequirements(contract, stack) {\n\tconst providedComponentIds = /* @__PURE__ */ new Set([\n\t\tstack.target.id,\n\t\tstack.adapter.id,\n\t\t...stack.extensions.map((pack) => pack.id)\n\t]);\n\tconst result = checkContractComponentRequirements({\n\t\tcontract,\n\t\texpectedTargetFamily: \"sql\",\n\t\texpectedTargetId: stack.target.targetId,\n\t\tprovidedComponentIds\n\t});\n\tif (result.familyMismatch) throw runtimeError(\"RUNTIME.CONTRACT_FAMILY_MISMATCH\", `Contract target family '${result.familyMismatch.actual}' does not match runtime family '${result.familyMismatch.expected}'.`, {\n\t\tactual: result.familyMismatch.actual,\n\t\texpected: result.familyMismatch.expected\n\t});\n\tif (result.targetMismatch) throw runtimeError(\"RUNTIME.CONTRACT_TARGET_MISMATCH\", `Contract target '${result.targetMismatch.actual}' does not match runtime target descriptor '${result.targetMismatch.expected}'.`, {\n\t\tactual: result.targetMismatch.actual,\n\t\texpected: result.targetMismatch.expected\n\t});\n\tif (result.missingExtensionPackIds.length > 0) {\n\t\tconst packIds = result.missingExtensionPackIds;\n\t\tthrow runtimeError(\"RUNTIME.MISSING_EXTENSION_PACK\", `Contract requires extension pack(s) ${packIds.map((id) => `'${id}'`).join(\", \")}, but runtime descriptors do not provide matching component(s).`, { packIds });\n\t}\n}\nfunction validateTypeParams(typeParams, descriptor, context) {\n\tconst result = descriptor.paramsSchema[\"~standard\"].validate(typeParams);\n\tif (result instanceof Promise) throw runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `paramsSchema for codec '${descriptor.codecId}' returned a Promise; runtime validation requires a synchronous Standard Schema validator.`, {\n\t\t...context,\n\t\tcodecId: descriptor.codecId,\n\t\ttypeParams\n\t});\n\tif (result.issues) {\n\t\tconst messages = result.issues.map((issue) => issue.message).join(\"; \");\n\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Invalid typeParams for column '${context.tableName}.${context.columnName}' (codecId: ${descriptor.codecId}): ${messages}`, {\n\t\t\t...context,\n\t\t\tcodecId: descriptor.codecId,\n\t\t\ttypeParams\n\t\t});\n\t}\n\treturn blindCast(result.value);\n}\n/**\n* Collect every {@link CodecDescriptor} contributed by the SQL stack and partition into \"parameterized\" vs \"non-parameterized\" via the descriptor's own {@link CodecDescriptorImpl.isParameterized} getter: a descriptor is parameterized when it has a `paramsSchema`.\n*\n* The unified descriptor list collapses the legacy split (a separate slot used to register parameterized codecs) — every codec id resolves through the same map (codec-registry-unification spec § Decision).\n*/\nfunction collectCodecDescriptors(contributors) {\n\tconst all = [];\n\tconst parameterized = /* @__PURE__ */ new Map();\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const contributor of contributors) for (const descriptor of contributor.codecs()) {\n\t\tif (seen.has(descriptor.codecId)) throw runtimeError(\"RUNTIME.DUPLICATE_CODEC\", `Duplicate codec descriptor for codecId '${descriptor.codecId}'.`, { codecId: descriptor.codecId });\n\t\tseen.add(descriptor.codecId);\n\t\tall.push(descriptor);\n\t\tif (descriptor.isParameterized) parameterized.set(descriptor.codecId, blindCast(descriptor));\n\t}\n\treturn {\n\t\tall,\n\t\tparameterized\n\t};\n}\n/**\n* Flatten every aggregate descriptor the SQL stack contributes. Shape validation, single-ownership of each `(operation, input)` pair, and trait-overlap resolution all happen inside {@link buildSqlAggregateDescriptorRegistry}, so contributions reach it unchecked and fail there — at composition, never mid-query.\n*/\nfunction collectAggregateDescriptorContributions(contributors) {\n\treturn contributors.flatMap((contributor) => contributor.types?.aggregateDescriptors ?? []);\n}\nfunction validateColumnTypeParams(storage, codecDescriptors) {\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) if (column.typeParams) {\n\t\tconst descriptor = codecDescriptors.get(column.codecId);\n\t\tif (descriptor) validateTypeParams(column.typeParams, descriptor, {\n\t\t\ttableName,\n\t\t\tcolumnName\n\t\t});\n\t}\n}\n/**\n* Build-time contract-integrity check: every `(table, column)` resolves to a {@link CodecRef} whose `codecId` is registered and whose `typeParams` presence matches the descriptor's `isParameterized` flag.\n*\n* Surfaces three classes of malformed contract that AST-bound codec resolution would otherwise mask silently:\n*\n* - column references a codecId no contributor registered → `RUNTIME.CODEC_DESCRIPTOR_MISSING`.\n* - parameterized codec, no `typeParams` (legacy \"tolerate refs without params\" shape) → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n* - non-parameterized codec, `typeParams` supplied → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n*\n* Runs unconditionally from `createExecutionContext` so contract bugs fail fast at construction time instead of silently skipping affected columns in the codec registry's pre-population walk.\n*/\nfunction assertColumnCodecIntegrity(storage, codecDescriptors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst descriptor = codecDescriptors.descriptorFor(ref.codecId);\n\t\tif (!descriptor) throw runtimeError(\"RUNTIME.CODEC_DESCRIPTOR_MISSING\", `Column '${tableName}.${columnName}' references codec '${ref.codecId}' but no contributor registered a codec descriptor for that codecId. Add the extension pack that owns the codec to the runtime stack.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId\n\t\t});\n\t\tconst paramsSchema = descriptor.paramsSchema;\n\t\tif (paramsSchema !== void 0 && ref.typeParams === void 0) {\n\t\t\tconst probe = paramsSchema[\"~standard\"].validate({});\n\t\t\tif (probe instanceof Promise) {\n\t\t\t\tprobe.catch(() => {});\n\t\t\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' whose paramsSchema returned a Promise; paramsSchema must be a synchronous Standard Schema validator. Return a value/issues result directly instead of a Promise.`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: columnName,\n\t\t\t\t\tcodecId: ref.codecId\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (\"issues\" in probe && !!probe.issues) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' but no typeParams are supplied. Provide typeParams on the column.`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: columnName,\n\t\t\t\tcodecId: ref.codecId,\n\t\t\t\texpected: \"parameterized\",\n\t\t\t\tactual: \"no typeParams\"\n\t\t\t});\n\t\t}\n\t\tconst refTypeParams = ref.typeParams;\n\t\tconst refHasTypeParamKeys = refTypeParams !== void 0 && refTypeParams !== null && typeof refTypeParams === \"object\" && !Array.isArray(refTypeParams) && Object.keys(refTypeParams).length > 0;\n\t\tif (!descriptor.isParameterized && refHasTypeParamKeys) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' supplies typeParams to non-parameterized codec '${ref.codecId}'. Remove the typeParams or switch to a parameterized codec id.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId,\n\t\t\texpected: \"non-parameterized\",\n\t\t\tactual: \"has typeParams\"\n\t\t});\n\t}\n}\n/**\n* Build a {@link ContractCodecRegistry} that resolves codecs exclusively through the `forCodecRef` content-keyed cache.\n*\n* One pre-population pass walks `storage.tables[].columns[]` to seed the resolver's per-ref instance context with the *aggregated* `usedAt` set for each canonical `(codecId, typeParams)` key. The same codec materialised through `forColumn` or `forCodecRef` is therefore one instance with one `SqlCodecInstanceContext` — stateful codecs reading `usedAt` see the full column set regardless of which surface the caller used.\n*\n* Per-key instance-name policy:\n*\n* - columns with `typeParams` use `<col:Table.column>` (the first column observed at that key; additional columns sharing the key extend `usedAt`).\n* - non-parameterized codec ids use `<codec:codecId>`, aggregating every column on that codec id into one `usedAt` set.\n* - ad-hoc refs the contract walk did not pre-populate (e.g. AST-supplied refs from deserialised migration ops) fall back to the canonical cache key `${codecId}:${canonicalizeJson(typeParams)}` — the only structurally honest identity for an ad-hoc ref, distinct per `(codecId, typeParams)`.\n*\n* Contract integrity is enforced upstream by {@link assertColumnCodecIntegrity}: every column must reference a registered `codecId` whose `descriptor.isParameterized` flag matches the presence of `typeParams` (via `codecRefForColumn`). The pre-population walk and `forColumn` therefore make no defensive checks — malformed columns fail fast at `createExecutionContext` construction with `RUNTIME.CODEC_DESCRIPTOR_MISSING` or `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH` rather than being silently skipped here.\n*\n* `forColumn(ns, t, c)` is a thin delegate over `forCodecRef(codecRefForColumn(ns, t, c))`; encode/decode hot paths read the resolver directly via `forCodecRef`. The only `undefined` `forColumn` returns is the legitimate \"no such column in the contract\" case.\n*/\nfunction buildContractCodecRegistry(contract, codecDescriptors) {\n\tconst refKeyOf = (ref) => `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\tconst usedAtByKey = /* @__PURE__ */ new Map();\n\tconst nameByKey = /* @__PURE__ */ new Map();\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst key = refKeyOf(ref);\n\t\tconst site = {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName\n\t\t};\n\t\tconst existing = usedAtByKey.get(key);\n\t\tif (existing) existing.push(site);\n\t\telse {\n\t\t\tusedAtByKey.set(key, [site]);\n\t\t\tconst name = ref.typeParams !== void 0 ? `<col:${tableName}.${columnName}>` : `<codec:${ref.codecId}>`;\n\t\t\tnameByKey.set(key, name);\n\t\t}\n\t}\n\tconst resolver = createAstCodecResolver(codecDescriptors, (ref) => {\n\t\tconst key = refKeyOf(ref);\n\t\treturn {\n\t\t\tname: nameByKey.get(key) ?? key,\n\t\t\tusedAt: usedAtByKey.get(key) ?? []\n\t\t};\n\t});\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tresolver.forCodecRef(ref);\n\t}\n\treturn {\n\t\tforColumn(namespaceId, table, column) {\n\t\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, table, column);\n\t\t\treturn ref ? resolver.forCodecRef(ref) : void 0;\n\t\t},\n\t\tforCodecRef(ref) {\n\t\t\treturn resolver.forCodecRef(ref);\n\t\t}\n\t};\n}\nfunction createExecutionContext(options) {\n\tconst { stack, driver } = options;\n\tassertExecutionStackContractRequirements(options.contract, stack);\n\tconst capabilityContributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...driver ? [driver] : [],\n\t\t...stack.extensions\n\t];\n\tconst mergedCapabilities = mergeCapabilityMatrices(options.contract.capabilities, capabilityContributors);\n\tconst contract = {\n\t\t...options.contract,\n\t\tcapabilities: mergedCapabilities\n\t};\n\tconst contributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...stack.extensions\n\t];\n\tconst { all: allCodecDescriptors, parameterized: parameterizedCodecDescriptors } = collectCodecDescriptors(contributors);\n\tconst queryOperationRegistry = createSqlOperationRegistry();\n\tfor (const contributor of contributors) {\n\t\tconst ops = contributor.queryOperations?.() ?? {};\n\t\tfor (const [name, op] of Object.entries(ops)) queryOperationRegistry.register(name, op);\n\t}\n\tconst codecDescriptors = buildCodecDescriptorRegistry(allCodecDescriptors, contract.storage);\n\tassertColumnCodecIntegrity(contract.storage, codecDescriptors);\n\tconst aggregateDescriptors = buildSqlAggregateDescriptorRegistry(collectAggregateDescriptorContributions(contributors), codecDescriptors);\n\tconst mutationDefaultGeneratorRegistry = collectMutationDefaultGenerators(contributors);\n\tassertMutationDefaultGeneratorsAvailable(contract.execution, mutationDefaultGeneratorRegistry);\n\tif (parameterizedCodecDescriptors.size > 0) validateColumnTypeParams(contract.storage, parameterizedCodecDescriptors);\n\treturn {\n\t\tcontract,\n\t\tcontractCodecs: buildContractCodecRegistry(contract, codecDescriptors),\n\t\tcodecDescriptors,\n\t\taggregateDescriptors,\n\t\tqueryOperations: queryOperationRegistry,\n\t\trawCodecInferer: stack.adapter.rawCodecInferer,\n\t\tcollectionMethods: contributors.flatMap((contributor) => contributor.collectionMethods?.() ?? []),\n\t\tapplyMutationDefaults: (options) => applyMutationDefaults(contract.execution, mutationDefaultGeneratorRegistry, options)\n\t};\n}\n//#endregion\n//#region src/codecs/decoding.ts\nconst sqlNativeArrayListDecoder = async (wireValue, decodeElement) => {\n\tif (!Array.isArray(wireValue)) throw new TypeError(`expected an array from the driver for many-typed column, got ${typeof wireValue}`);\n\tconst decoded = [];\n\tfor (const elem of wireValue) decoded.push(await decodeElement(elem));\n\treturn decoded;\n};\nconst WIRE_PREVIEW_LIMIT = 100;\nconst EMPTY_INCLUDE_ALIASES = /* @__PURE__ */ new Set();\nfunction projectionListFromAst(ast) {\n\tif (ast.kind === \"select\") return ast.projection;\n\treturn ast.returning;\n}\nfunction resolveProjectionCodec(item, contractCodecs) {\n\tif (item.codec && contractCodecs) return contractCodecs.forCodecRef(item.codec);\n}\nconst EMPTY_MANY_ALIASES = /* @__PURE__ */ new Set();\nfunction undecodedContext() {\n\treturn {\n\t\taliases: void 0,\n\t\tcodecs: /* @__PURE__ */ new Map(),\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"projection\"\n\t};\n}\n/**\n* Decode context for a raw statement: the columns come from the row spec its\n* author declared at the terminator, and each carries the codec that decodes\n* it. A statement that reports an affected-row count declares no columns, so\n* its single stats row passes through undecoded.\n*\n* The spec is the only description of the result — the runtime never parses\n* the SQL — so it is also what a mismatched result set is measured against.\n*/\nfunction rawQueryDecodeContext(ast, contractCodecs) {\n\tif (ast.result.kind === \"affected-count\") return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tfor (const [name, column] of Object.entries(ast.result.columns)) {\n\t\taliases.push(name);\n\t\tif (contractCodecs) codecs.set(name, contractCodecs.forCodecRef({ codecId: column.codecId }));\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"row-spec\"\n\t};\n}\nfunction buildDecodeContext(ast, contractCodecs) {\n\tif (ast.kind === \"raw-query\") return rawQueryDecodeContext(ast, contractCodecs);\n\tconst projection = projectionListFromAst(ast);\n\tif (!projection || projection.length === 0) return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tconst columnRefs = /* @__PURE__ */ new Map();\n\tconst includeAliases = /* @__PURE__ */ new Set();\n\tconst manyAliases = /* @__PURE__ */ new Set();\n\tfor (const item of projection) {\n\t\taliases.push(item.alias);\n\t\tconst codec = resolveProjectionCodec(item, contractCodecs);\n\t\tif (codec) codecs.set(item.alias, codec);\n\t\tif (item.codec?.many) manyAliases.add(item.alias);\n\t\tif (item.expr.kind === \"column-ref\") columnRefs.set(item.alias, {\n\t\t\ttable: item.expr.table,\n\t\t\tcolumn: item.expr.column\n\t\t});\n\t\telse if (item.expr.kind === \"subquery\" || item.expr.kind === \"json-array-agg\") includeAliases.add(item.alias);\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs,\n\t\tincludeAliases,\n\t\tmanyAliases,\n\t\taliasSource: \"projection\"\n\t};\n}\nfunction previewWireValue(wireValue) {\n\tif (typeof wireValue === \"string\") return wireValue.length > WIRE_PREVIEW_LIMIT ? `${wireValue.substring(0, WIRE_PREVIEW_LIMIT)}...` : wireValue;\n\treturn String(wireValue).substring(0, WIRE_PREVIEW_LIMIT);\n}\nfunction wrapDecodeFailure(error, alias, ref, codec, wireValue) {\n\tif (isInternalError(error)) throw error;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to decode column ${ref ? `${ref.table}.${ref.column}` : alias} with codec '${codec.id}': ${message}`, {\n\t\t...ref ? {\n\t\t\ttable: ref.table,\n\t\t\tcolumn: ref.column\n\t\t} : { alias },\n\t\tcodec: codec.id,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction wrapIncludeAggregateFailure(error, alias, wireValue) {\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to parse JSON array for include alias '${alias}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\talias,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction decodeIncludeAggregate(alias, wireValue) {\n\tif (wireValue === null || wireValue === void 0) return [];\n\ttry {\n\t\tif (typeof wireValue === \"string\") return JSON.parse(wireValue);\n\t\tif (typeof wireValue === \"object\") return blindCast(wireValue);\n\t\treturn JSON.parse(String(wireValue));\n\t} catch (error) {\n\t\twrapIncludeAggregateFailure(error, alias, wireValue);\n\t}\n}\n/**\n* Decodes a single field. Single-armed: every cell takes the same path — `codec.decode → await → return plain value` — so sync- and async-authored codecs are indistinguishable to callers. JSON-Schema validation, when required, lives inside the resolved codec's `decode` body (e.g. `arktype-json` validates against its rehydrated schema and throws `RUNTIME.JSON_SCHEMA_VALIDATION_FAILED` from `decode` directly); there is\n* no separate validator-registry pass.\n*\n* The row-level `rowCtx` is repackaged into a per-cell `SqlCodecCallContext` whose `column = { table, name }` is a structural projection of the per-cell `ColumnRef = { table, column }` resolved from the AST-backed `DecodeContext` (the same resolution `wrapDecodeFailure` uses for envelope construction — one resolution per cell, two consumers). Cells the runtime cannot resolve to a single underlying column (aggregate\n* aliases, computed projections without a simple ref) get `column: undefined`, matching the spec contract that the runtime never silently defaults this field.\n*\n* For `many`-flagged aliases this function delegates frame traversal to the selected `ListDecoder`, passing `null` elements through unchanged and mapping the same element codec over every non-null element. SQL runtimes without a target-owned contribution select `sqlNativeArrayListDecoder` explicitly before row decoding. Element-level failures surface through the existing `RUNTIME.DECODE_FAILED` envelope with the column/codec context from the parent cell.\n*/\nasync function decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder) {\n\tif (wireValue === null) return null;\n\tconst codec = decodeCtx.codecs.get(alias);\n\tif (!codec) return wireValue;\n\tconst ref = decodeCtx.columnRefs.get(alias);\n\tlet cellCtx;\n\tif (ref) cellCtx = {\n\t\t...rowCtx,\n\t\tcolumn: {\n\t\t\ttable: ref.table,\n\t\t\tname: ref.column\n\t\t}\n\t};\n\telse {\n\t\tconst { column: _drop, ...rowCtxWithoutColumn } = rowCtx;\n\t\tcellCtx = rowCtxWithoutColumn;\n\t}\n\tconst decodeElement = async (elem) => {\n\t\tif (elem === null || elem === void 0) return null;\n\t\ttry {\n\t\t\treturn await codec.fromWire(elem, cellCtx);\n\t\t} catch (error) {\n\t\t\tif (isStructuredError(error)) throw error;\n\t\t\twrapDecodeFailure(error, alias, ref, codec, elem);\n\t\t}\n\t};\n\tif (decodeCtx.manyAliases.has(alias)) try {\n\t\treturn await listDecoder(wireValue, decodeElement);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n\ttry {\n\t\treturn await codec.fromWire(wireValue, cellCtx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n}\n/**\n* Decodes a row by dispatching all per-cell codec calls concurrently via `Promise.all`. Each cell follows the single-armed `decodeField` path. Structured envelopes thrown by codec bodies (anything passing `isStructuredError`) and an `InternalError` pass through unchanged; all other failures are wrapped in `RUNTIME.DECODE_FAILED` with `{ table, column, codec }` (or `{ alias, codec }` when no column ref is resolvable) and the original error attached on `cause`.\n*\n* When `rowCtx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'decode' }`) before any `codec.decode` call is made.\n* - **Mid-flight aborts** race the per-cell `Promise.all` against the signal so the runtime returns promptly even when codec bodies ignore it. In-flight bodies that ignore the signal complete in the background (cooperative cancellation).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.DECODE_FAILED`) from codec bodies pass through unchanged (no double wrap).\n*/\nasync function decodeRow(row, decodeCtx, rowCtx, listDecoder) {\n\tcheckAborted(rowCtx, \"decode\");\n\tconst signal = rowCtx.signal;\n\tconst aliases = decodeCtx.aliases ?? Object.keys(row);\n\tif (decodeCtx.aliases !== void 0) {\n\t\tfor (const alias of decodeCtx.aliases) if (!Object.hasOwn(row, alias)) throw decodeCtx.aliasSource === \"row-spec\" ? runtimeError(\"RUNTIME.RAW_ROW_COLUMN_MISSING\", `Raw statement result has no column \"${alias}\", which its row spec declares`, {\n\t\t\tcolumn: alias,\n\t\t\tdeclaredColumns: decodeCtx.aliases,\n\t\t\tresultColumns: Object.keys(row)\n\t\t}) : runtimeError(\"RUNTIME.DECODE_FAILED\", `Row missing projection alias \"${alias}\"`, {\n\t\t\talias,\n\t\t\texpectedAliases: decodeCtx.aliases,\n\t\t\tpresentKeys: Object.keys(row)\n\t\t});\n\t}\n\tconst tasks = [];\n\tconst includeIndices = [];\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tconst wireValue = row[alias];\n\t\tif (decodeCtx.includeAliases.has(alias)) {\n\t\t\tincludeIndices.push({\n\t\t\t\tindex: i,\n\t\t\t\talias,\n\t\t\t\tvalue: wireValue\n\t\t\t});\n\t\t\ttasks.push(Promise.resolve(void 0));\n\t\t\tcontinue;\n\t\t}\n\t\ttasks.push(decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder));\n\t}\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"decode\");\n\tfor (const entry of includeIndices) settled[entry.index] = decodeIncludeAggregate(entry.alias, entry.value);\n\tconst decoded = {};\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tdecoded[alias] = settled[i];\n\t}\n\treturn decoded;\n}\n//#endregion\n//#region src/content-hash.ts\n/**\n* Computes a stable content hash for a lowered SQL execution plan.\n*\n* Internally builds an unambiguous canonical-stringified preimage from\n* three components:\n*\n* 1. `meta.storageHash` — discriminates by schema. A migration changes the\n* storage hash, which invalidates cached entries automatically.\n* 2. `exec.sql` — the raw lowered SQL text. Two queries with different\n* structure produce different keys. Note that we deliberately do **not**\n* use `computeSqlFingerprint` here: that helper strips literals to group\n* executions by statement shape (used by telemetry), which is the\n* opposite of what a content hash needs — we want per-execution\n* discrimination, not per-statement-shape grouping.\n* 3. `exec.params` — the bound parameters. `canonicalStringify` produces a\n* deterministic serialization that is stable across object key\n* insertion order and that distinguishes types JSON would otherwise\n* conflate (e.g. `BigInt(1)` vs `1`).\n*\n* The components are wrapped in an object and canonicalized as a single\n* unit (rather than concatenated with a delimiter) so component\n* boundaries are unambiguous: any character appearing inside `sql` or\n* `storageHash` cannot bleed across components and produce a collision\n* with a different split of the same characters.\n*\n* The canonical string is then piped through `hashContent` to produce a\n* bounded, opaque digest. See `@internal/utils/hash-content` for the\n* rationale.\n*\n* @internal\n*/\nfunction computeSqlContentHash(exec) {\n\treturn hashContent(canonicalStringify({\n\t\tstorageHash: exec.meta.storageHash,\n\t\tsql: exec.sql,\n\t\tparams: exec.params\n\t}));\n}\n//#endregion\n//#region src/fingerprint.ts\nconst STRING_LITERAL_REGEX = /'(?:''|[^'])*'/g;\nconst NUMERIC_LITERAL_REGEX = /\\b\\d+(?:\\.\\d+)?\\b/g;\nconst WHITESPACE_REGEX = /\\s+/g;\n/**\n* Computes a literal-stripped, normalized fingerprint of a SQL statement.\n*\n* The function strips string and numeric literals, collapses whitespace, and\n* lowercases the result before hashing — so two structurally equivalent\n* statements (with different parameter values) produce the same fingerprint.\n* Used by SQL telemetry to group queries.\n*/\nfunction computeSqlFingerprint(sql) {\n\tconst normalized = sql.replace(STRING_LITERAL_REGEX, \"?\").replace(NUMERIC_LITERAL_REGEX, \"?\").replace(WHITESPACE_REGEX, \" \").trim().toLowerCase();\n\treturn createHash(\"sha256\").update(normalized).digest(\"hex\");\n}\n//#endregion\n//#region src/in-flight-operations.ts\nvar InFlightOperations = class {\n\t#count = 0;\n\t#started = 0;\n\t#drainWaiters = [];\n\t/** Records one operation as in flight; the returned callback ends it and ignores later calls. */\n\tbegin() {\n\t\tthis.#count += 1;\n\t\tthis.#started += 1;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#count -= 1;\n\t\t\tif (this.#count === 0) for (const wake of this.#drainWaiters.splice(0)) wake();\n\t\t};\n\t}\n\t/** How many operations have begun so far; a change between two reads means work started in between. */\n\tget started() {\n\t\treturn this.#started;\n\t}\n\t/** How many operations are in flight. */\n\tget count() {\n\t\treturn this.#count;\n\t}\n\tget active() {\n\t\treturn this.#count > 0;\n\t}\n\tdrained() {\n\t\tif (this.#count === 0) return Promise.resolve();\n\t\treturn new Promise((resolve) => this.#drainWaiters.push(resolve));\n\t}\n\t/** Records `work` as in flight until it settles. */\n\tasync track(work) {\n\t\tconst end = this.begin();\n\t\ttry {\n\t\t\treturn await work();\n\t\t} finally {\n\t\t\tend();\n\t\t}\n\t}\n};\n//#endregion\n//#region src/middleware/before-compile-chain.ts\nasync function runBeforeCompileChain(middleware, initial, ctx) {\n\tlet current = initial;\n\tfor (const mw of middleware) {\n\t\tif (!mw.beforeCompile) continue;\n\t\tconst result = await mw.beforeCompile(current, ctx);\n\t\tif (result === void 0) continue;\n\t\tif (result.ast === current.ast) continue;\n\t\tctx.log.debug?.({\n\t\t\tevent: \"middleware.rewrite\",\n\t\t\tmiddleware: mw.name,\n\t\t\tlane: current.meta.lane\n\t\t});\n\t\tcurrent = result;\n\t}\n\treturn current;\n}\n//#endregion\n//#region src/owned-transaction.ts\n/**\n* Begins a transaction on a connection the transaction owns. The connection is released once the transaction has committed or rolled back, and destroyed after a failed rollback or a failed start other than a refusal before `BEGIN`. After a failed commit it stays held for the rollback that follows. A release that fails after the transaction settled is passed to `log.error`, and `commit()` or `rollback()` keeps its own outcome.\n*/\nasync function beginOwnedTransaction(connection, begin, log) {\n\tlet transaction;\n\ttry {\n\t\ttransaction = await begin();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet disposed = false;\n\tconst dispose = async (destroyReason) => {\n\t\tif (disposed) return;\n\t\tdisposed = true;\n\t\tif (destroyReason !== void 0) {\n\t\t\tawait connection.destroy(destroyReason.reason).catch(() => void 0);\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait connection.release();\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tlog.error({\n\t\t\t\t\tevent: \"runtime.connection.release.error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t};\n\treturn Object.assign(castAs(Object.create(transaction)), {\n\t\tasync commit() {\n\t\t\ttry {\n\t\t\t\tawait transaction.commit();\n\t\t\t} catch (error) {\n\t\t\t\tif (settlementOf(transaction)?.committed === true) await dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t},\n\t\tasync rollback() {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (error) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tconst settled = settlement?.rolledBack === true || settlement?.committed === true;\n\t\t\t\tawait dispose(settled ? void 0 : { reason: error });\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t}\n\t});\n}\n//#endregion\n//#region src/prepared/bind-site-params.ts\nfunction normalizeSpec(spec) {\n\tif (typeof spec === \"string\") return {\n\t\tcodec: { codecId: spec },\n\t\tnullable: false\n\t};\n\treturn {\n\t\tcodec: spec.typeParams !== void 0 ? {\n\t\t\tcodecId: spec.codecId,\n\t\t\ttypeParams: spec.typeParams\n\t\t} : { codecId: spec.codecId },\n\t\tnullable: spec.nullable === true\n\t};\n}\nvar BindSiteExpression = class {\n\treturnType;\n\t#ast;\n\tconstructor(ref, returnType) {\n\t\tthis.#ast = ref;\n\t\tthis.returnType = returnType;\n\t}\n\tbuildAst() {\n\t\treturn this.#ast;\n\t}\n};\nfunction buildBindSiteParams(declaration) {\n\tconst params = {};\n\tfor (const [name, spec] of Object.entries(declaration)) {\n\t\tconst { codec, nullable } = normalizeSpec(spec);\n\t\tparams[name] = new BindSiteExpression(PreparedParamRef.of(name, codec, nullable), {\n\t\t\tcodecId: codec.codecId,\n\t\t\tnullable\n\t\t});\n\t}\n\treturn blindCast(Object.freeze(params));\n}\n//#endregion\n//#region src/prepared/encode-prepared.ts\n/**\n* Resolve a PreparedStatement's slot order to the unencoded values it\n* will carry into encode. Literal slots come from the lowered AST;\n* bind slots are looked up by name on `userParams`. Missing user params\n* surface `RUNTIME.PREPARE_MISSING_PARAM` so the caller cannot silently\n* bind `undefined`.\n*/\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\nfunction resolvePreparedSlotValues(ps, userParams) {\n\tif (!isRecord(userParams)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", \"Prepared statement parameters must be an object\");\n\treturn ps.slots.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tif (!Object.hasOwn(userParams, slot.name)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", `Prepared statement query is missing parameter '${slot.name}'`, { name: slot.name });\n\t\treturn userParams[slot.name];\n\t});\n}\nasync function encodePreparedParams(ps, userParams, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(resolvePreparedSlotValues(ps, userParams), ps.paramMetadata, ctx, contractCodecs);\n}\n//#endregion\n//#region src/sql-family-adapter.ts\nvar SqlFamilyAdapter = class {\n\tcontract;\n\tmarkerReader;\n\tconstructor(contract, adapterProfile) {\n\t\tthis.contract = contract;\n\t\tthis.markerReader = adapterProfile;\n\t}\n\tvalidatePlan(plan, contract) {\n\t\tvalidateSqlPlan(plan, contract);\n\t}\n};\n/** Rejects a plan built for another target or contract: `PLAN.TARGET_MISMATCH` or `PLAN.HASH_MISMATCH`. */\nfunction validateSqlPlan(plan, contract) {\n\tif (plan.meta.target !== contract.target) throw runtimeError(\"PLAN.TARGET_MISMATCH\", \"The plan was built for another target than the contract\", {\n\t\tplanTarget: plan.meta.target,\n\t\tcontractTarget: contract.target\n\t});\n\tif (plan.meta.storageHash !== contract.storage.storageHash) throw runtimeError(\"PLAN.HASH_MISMATCH\", \"The plan was built for another contract\", {\n\t\tplanStorageHash: plan.meta.storageHash,\n\t\tcontractStorageHash: contract.storage.storageHash\n\t});\n}\n//#endregion\n//#region src/sql-runtime.ts\nfunction isExecutionPlan(plan) {\n\treturn \"sql\" in plan;\n}\nfunction isBoundPreparedStatement(subject) {\n\treturn \"statement\" in subject;\n}\nfunction isPreparedStatementInternals(statement) {\n\treturn statement instanceof PreparedStatementImpl || statement instanceof PreparedExecutionImpl;\n}\n// v8 ignore next 2\nconst noopLogSink = () => {};\nconst noopLog = {\n\tinfo: noopLogSink,\n\twarn: noopLogSink,\n\terror: noopLogSink\n};\nconst scheduleTimer = globalThis.setTimeout;\nfunction runtimeClosedError() {\n\treturn structuredError(\"DRIVER.NOT_CONNECTED\", \"Runtime is closed\", {\n\t\twhy: \"close() was called on this runtime, or on the client or connection that owns it. An await using scope calls close() when it ends.\",\n\t\tfix: \"Await every query, transaction and prepared statement before close(). The usual cause is a query returned without await from an await using scope.\"\n\t});\n}\n/**\n* Abstract family-layer base for SQL runtimes. Subclass to build a target runtime\n* (e.g. `PostgresRuntimeImpl`); app code should consume the `Runtime` interface returned\n* by the target factories, never this class directly.\n*/\nvar SqlRuntimeBase = class extends RuntimeCore {\n\tcontract;\n\tadapter;\n\tdriver;\n\tfamilyAdapter;\n\tcontractCodecs;\n\tcodecDescriptors;\n\tsqlCtx;\n\tverifyMarkerOption;\n\tverifyMarkerPromise;\n\tclosePromise;\n\townsDriver;\n\tcloseRefusal;\n\t#inFlight = new InFlightOperations();\n\t#openTransactionWork = new InFlightOperations();\n\t#transactionWorkOn = /* @__PURE__ */ new WeakMap();\n\t#openActivityHandles = 0;\n\t#refusing = false;\n\t#heldQueryables = /* @__PURE__ */ new WeakSet();\n\t#preparedStatementHandles = /* @__PURE__ */ new WeakMap();\n\t#holdFinishedChildren;\n\t#openTransactions = /* @__PURE__ */ new WeakMap();\n\tcodecRegistryValidated;\n\t_telemetry;\n\tconstructor(options) {\n\t\tconst { context, adapter, driver, verifyMarker, middleware, mode, log, closeRefusal, ownsDriver } = options;\n\t\tif (middleware) for (const mw of middleware) checkMiddlewareCompatibility(mw, \"sql\", context.contract.target);\n\t\tconst sqlCtx = {\n\t\t\tcontract: context.contract,\n\t\t\tmode: mode ?? \"strict\",\n\t\t\tnow: () => Date.now(),\n\t\t\tlog: log ?? noopLog,\n\t\t\tcontentHash: (exec) => computeSqlContentHash(blindCast(exec)),\n\t\t\tscope: \"runtime\"\n\t\t};\n\t\tsuper({\n\t\t\tmiddleware: middleware ?? [],\n\t\t\tctx: sqlCtx\n\t\t});\n\t\tthis.#holdFinishedChildren = this.middleware.some((mw) => mw.activityFinalized !== void 0);\n\t\tthis.contract = context.contract;\n\t\tthis.adapter = adapter;\n\t\tthis.driver = driver;\n\t\tthis.familyAdapter = new SqlFamilyAdapter(context.contract, adapter.profile);\n\t\tthis.contractCodecs = context.contractCodecs;\n\t\tthis.codecDescriptors = context.codecDescriptors;\n\t\tthis.sqlCtx = sqlCtx;\n\t\tthis.verifyMarkerOption = verifyMarker ?? \"onFirstUse\";\n\t\tthis.closeRefusal = closeRefusal ?? \"when-idle\";\n\t\tthis.codecRegistryValidated = false;\n\t\tthis.verifyMarkerPromise = this.verifyMarkerOption === false ? Promise.resolve() : null;\n\t\tthis.closePromise = null;\n\t\tthis.ownsDriver = ownsDriver ?? true;\n\t\tthis._telemetry = null;\n\t}\n\t/**\n\t* Lower a `SqlQueryPlan` (AST + meta) into a `SqlExecutionPlan`\n\t* with encoded parameters ready for the driver.\n\t*\n\t* Implementation note: SQL splits lower-then-encode across\n\t* {@link lowerToDraft} + {@link encodeDraftParams} so the selected\n\t* operation's middleware chain can run between them:\n\t* {@link prepareOperation} runs the statement's `beforeEncode` chain\n\t* between them (cipherstash bulk-encrypt, for example, mutates pre-encode\n\t* `ParamRef.value` slots). This protected hook composes the two back into\n\t* the cross-family `lower()` shape `RuntimeCore` expects. The production\n\t* operation methods use the matching split form before driver execution.\n\t*\n\t* `ctx: SqlCodecCallContext` is forwarded to `encodeParams` so\n\t* per-query cancellation reaches every codec body during parameter\n\t* encoding. SQL params do not populate `ctx.column` — encode-side\n\t* column metadata is the middleware's domain.\n\t*/\n\tasync lower(plan, ctx) {\n\t\tconst draft = this.lowerToDraft(plan);\n\t\treturn await this.encodeDraftParams(draft, ctx);\n\t}\n\t/**\n\t* AST → pre-encode draft for the selected `query()` or `execute()` operation.\n\t* The returned plan has `sql` rendered and `params` populated with the\n\t* user-domain values the lowering site collected from `ParamRef` nodes. No\n\t* codec encode has happened yet; consumers can mutate `params` via the\n\t* `SqlParamRefMutator` before {@link encodeDraftParams} runs.\n\t*/\n\tlowerToDraft(plan) {\n\t\treturn lowerSqlPlan(this.adapter, this.contract, plan);\n\t}\n\t/**\n\t* Encode a draft plan's params for the selected `query()` or `execute()`\n\t* operation through the per-column codecs and freeze the result into the\n\t* final `SqlExecutionPlan` the driver sees. Errors surface as\n\t* `RUNTIME.ENCODE_FAILED` envelopes from {@link encodeParams}.\n\t*/\n\tasync encodeDraftParams(draft, ctx) {\n\t\treturn Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: await encodeParams(draft, ctx, this.contractCodecs)\n\t\t});\n\t}\n\t/** Default query invocation required by the abstract `RuntimeCore` contract. */\n\t// v8 ignore next 6\n\trunDriver(exec) {\n\t\treturn this.driver.query({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\trunExecute(exec) {\n\t\treturn this.driver.execute({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\t/**\n\t* Runs the registered middleware `beforeCompile` chain over the plan's draft (AST + meta). Returns the original plan unchanged when no middleware rewrote the AST; otherwise returns a new plan carrying the rewritten AST and meta. The lowering adapter and the encoder both walk the rewritten AST directly.\n\t*/\n\tasync compilePlan(plan, middlewareCtx) {\n\t\tconst rewrittenDraft = await runBeforeCompileChain(this.middleware, {\n\t\t\tast: plan.ast,\n\t\t\tmeta: plan.meta\n\t\t}, middlewareCtx);\n\t\treturn rewrittenDraft.ast === plan.ast ? plan : {\n\t\t\t...plan,\n\t\t\tast: rewrittenDraft.ast,\n\t\t\tmeta: rewrittenDraft.meta\n\t\t};\n\t}\n\tquery(plan, options) {\n\t\treturn this.queryAgainstQueryable(plan, this.driver, options);\n\t}\n\texecute(plan, options) {\n\t\treturn this.executeStatisticsAgainstQueryable(plan, this.driver, options);\n\t}\n\t[preparedStatementQuery](ps, params, options) {\n\t\treturn this.runPreparedQueryAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t[preparedStatementExecute](ps, params, options) {\n\t\treturn this.runPreparedExecuteAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t#runtimeRoute;\n\t[activitySource] = {\n\t\tstartActivity: (activity) => {\n\t\t\tthis.#runtimeRoute ??= this.queryableRoute(this.driver, \"runtime\", () => void 0, {\n\t\t\t\ttransaction: (parent) => this.beginOwnedTransactionBeneath(parent),\n\t\t\t\truntimeWork: true\n\t\t\t});\n\t\t\treturn this.startActivityOnRoute(this.#runtimeRoute, activity, void 0);\n\t\t},\n\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"runtime\", void 0)\n\t};\n\t/**\n\t* Starts a client activity whose statements and transaction run on `route`, beneath `parent` or, without one, beneath `route.parent()`.\n\t*/\n\tstartActivityOnRoute(route, activity, parent) {\n\t\tlet endWork = noWork;\n\t\tlet started;\n\t\ttry {\n\t\t\tendWork = route.runtimeWork ? this.beginActivityWork(parent) : noWork;\n\t\t\tstarted = startClientActivity(activity, {\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: route.scope === \"runtime\" ? this.sqlCtx : {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: route.scope\n\t\t\t\t},\n\t\t\t\tparent: parent ?? route.parent(),\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tendWork();\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn started.then((run) => this.activityHandle(run, route, endWork), (error) => {\n\t\t\tendWork();\n\t\t\tthrow error;\n\t\t});\n\t}\n\t/** The content hash of the statement `plan` would send on a queryable of `scope` beneath `parent`. */\n\tasync planContentHashFor(plan, scope, parent) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tif (isBoundPreparedStatement(plan)) {\n\t\t\tconst { statement, params } = plan;\n\t\t\tinvariant(isPreparedStatementInternals(statement), \"The prepared statement was not prepared by a SQL runtime\");\n\t\t\treturn computeSqlContentHash({\n\t\t\t\tsql: statement.sql,\n\t\t\t\tast: statement.ast,\n\t\t\t\tmeta: statement.meta,\n\t\t\t\tparams: await encodePreparedParams(statement, params, {}, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tif (isExecutionPlan(plan)) return computeSqlContentHash(Object.freeze({\n\t\t\t...plan,\n\t\t\tparams: await encodeParams(plan, {}, this.contractCodecs)\n\t\t}));\n\t\tconst compiled = await this.compilePlan(plan, createContextBeneath({\n\t\t\t...this.sqlCtx,\n\t\t\tscope\n\t\t}, parent));\n\t\treturn computeSqlContentHash(await this.encodeDraftParams(this.lowerToDraft(compiled), {}));\n\t}\n\t/** An activity route whose statements run on `queryable`. */\n\tqueryableRoute(queryable, scope, parent, options) {\n\t\treturn {\n\t\t\tscope,\n\t\t\tparent,\n\t\t\t...options,\n\t\t\tquery: (plan, executeOptions) => this.queryAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\texecute: (plan, executeOptions) => this.executeStatisticsAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedQuery: (statement, params, executeOptions) => this.runPreparedQueryAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedExecute: (statement, params, executeOptions) => this.runPreparedExecuteAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t})\n\t\t};\n\t}\n\t/** The activity route of a held connection that `owner` wraps: its statements run on `connection`, and its transactions begin there. */\n\tconnectionRoute(connection, owner) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\treturn this.queryableRoute(connection, \"connection\", () => openTransaction, {\n\t\t\ttransaction: openTransaction === void 0 ? (parent) => this.beginTransactionBeneathOn(connection, owner, parent) : void 0,\n\t\t\truntimeWork: false\n\t\t});\n\t}\n\tbeginTransactionBeneathOn(connection, owner, parent) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\tif (openTransaction !== void 0) return Promise.reject(transactionAlreadyOpenError(parent, openTransaction));\n\t\treturn this.beginTransactionOn(connection, owner, parent);\n\t}\n\t/** The `activitySource` member of a held connection that `owner()` wraps. */\n\tconnectionActivitySource(connection, owner) {\n\t\treturn {\n\t\t\tstartActivity: (activity) => this.startActivityOnRoute(this.connectionRoute(connection, owner()), activity, void 0),\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"connection\", this.#openTransactions.get(connection))\n\t\t};\n\t}\n\tactivityHandle(run, route, endWork) {\n\t\tconst beneath = (options) => ({\n\t\t\t...options,\n\t\t\tactivityParent: run\n\t\t});\n\t\tconst source = {\n\t\t\tstartActivity: (activity) => {\n\t\t\t\ttry {\n\t\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn this.startActivityOnRoute(route, activity, run);\n\t\t\t},\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, route.scope, run)\n\t\t};\n\t\tconst handle = {\n\t\t\t[activitySource]: source,\n\t\t\tstartActivity: source.startActivity,\n\t\t\tplanContentHash: source.planContentHash,\n\t\t\tactivity: run.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn run.intercepted;\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.query(plan, beneath(options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.execute(plan, beneath(options));\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.preparedQuery(blindCast(ps), params, beneath(options)));\n\t\t\t},\n\t\t\tasync [preparedStatementExecute](ps, params, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.preparedExecute(blindCast(ps), params, beneath(options));\n\t\t\t},\n\t\t\tend(end) {\n\t\t\t\tlet ending;\n\t\t\t\ttry {\n\t\t\t\t\tending = run.end(end);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendWork();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn ending.then(endWork, (error) => {\n\t\t\t\t\tendWork();\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tconst beginTransaction = route.transaction;\n\t\tif (beginTransaction === void 0) return handle;\n\t\treturn Object.assign(handle, { transaction: async () => {\n\t\t\trun.assertAcceptsChildren();\n\t\t\treturn beginTransaction(run);\n\t\t} });\n\t}\n\tasync beginOwnedTransactionBeneath(parent) {\n\t\tconst { driverConnection, connection } = await this.openConnection({ activityParent: parent });\n\t\treturn this.ownTransaction(connection, () => this.beginTransactionOn(driverConnection, connection, parent));\n\t}\n\t/** Begins a transaction with `begin` on a connection the transaction owns; see `beginOwnedTransaction`. */\n\townTransaction(connection, begin) {\n\t\treturn beginOwnedTransaction(connection, begin, this.sqlCtx.log);\n\t}\n\t/**\n\t* Returns a raw driver connection. SQL issued on it runs below the middleware/codec/telemetry pipeline. It carries its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns disposal. It follows the runtime's close rule for connections: see {@link Runtime.close}. Pass the `activityParent` of the activity it is acquired for, so it is admitted after `close()` while that activity is open.\n\t*/\n\tasync acquireRawConnection(options) {\n\t\tconst endOperation = this.beginOperation(this.driver, options);\n\t\tlet connection;\n\t\ttry {\n\t\t\tconnection = await this.driver.acquireConnection();\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t\tconst dispose = async (teardown) => {\n\t\t\ttry {\n\t\t\t\tawait this.#inFlight.track(teardown);\n\t\t\t} finally {\n\t\t\t\tthis.#transactionWorkOn.get(held)?.();\n\t\t\t}\n\t\t};\n\t\tconst held = {\n\t\t\tquery: (request) => this.trackRows(connection.query(request)),\n\t\t\texecute: (request) => this.#inFlight.track(() => connection.execute(request)),\n\t\t\tbeginTransaction: () => connection.beginTransaction(),\n\t\t\t...ifDefined(\"explain\", connection.explain?.bind(connection)),\n\t\t\trelease: () => dispose(() => connection.release()),\n\t\t\tdestroy: (reason) => dispose(() => connection.destroy(reason))\n\t\t};\n\t\treturn held;\n\t}\n\tasync *trackRows(rows) {\n\t\tconst iterator = rows[Symbol.asyncIterator]();\n\t\ttry {\n\t\t\tlet next = await this.#inFlight.track(() => iterator.next());\n\t\t\twhile (!next.done) {\n\t\t\t\tyield next.value;\n\t\t\t\tnext = await iterator.next();\n\t\t\t}\n\t\t} finally {\n\t\t\tawait iterator.return?.();\n\t\t}\n\t}\n\tasync setupDriverExecution(exec, queryable) {\n\t\tthis.familyAdapter.validatePlan(exec, this.contract);\n\t\tthis._telemetry = null;\n\t\tif (this.verifyMarkerPromise === null) {\n\t\t\tconst markerQueryable = this.#heldQueryables.has(queryable) ? queryable : this.driver;\n\t\t\tthis.verifyMarkerPromise = this.verifyMarker(markerQueryable).catch((error) => {\n\t\t\t\tthis.verifyMarkerPromise = null;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\t\tawait this.verifyMarkerPromise;\n\t}\n\tbeginActivityWork(parent) {\n\t\tconst endOperation = this.beginOperation(this.driver, { activityParent: parent });\n\t\tthis.#openActivityHandles++;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#openActivityHandles--;\n\t\t\tendOperation();\n\t\t};\n\t}\n\twarnWhenWaitingOnlyForUnendedWork(warned) {\n\t\tconst openTransactions = this.#refusing ? this.#openTransactionWork.count : 0;\n\t\tif (warned.done || this.#openActivityHandles === 0 && openTransactions === 0) return;\n\t\tif (this.#inFlight.count !== this.#openActivityHandles) return;\n\t\twarned.done = true;\n\t\tthis.sqlCtx.log.warn({\n\t\t\tevent: \"runtime.close.waiting-for-activities\",\n\t\t\topenActivities: this.#openActivityHandles,\n\t\t\topenTransactions\n\t\t});\n\t}\n\tbeginOperation(queryable, options) {\n\t\tconst admittedParent = options?.activityParent?.acceptsChildren() === true;\n\t\tif (queryable === this.driver && this.#refusing && !admittedParent) throw runtimeClosedError();\n\t\treturn this.#inFlight.begin();\n\t}\n\tparentOf(queryable, options) {\n\t\tconst openTransaction = this.#openTransactions.get(queryable);\n\t\tconst activityParent = options?.activityParent;\n\t\tif (activityParent === void 0) return openTransaction;\n\t\tif (openTransaction !== void 0 && !activityParent.ctx.inTransaction()) throw activityOutsideTransactionError(activityParent, openTransaction);\n\t\treturn activityParent;\n\t}\n\tgetListDecoder() {\n\t\treturn sqlNativeArrayListDecoder;\n\t}\n\tasync *streamDecodedRows(run, exec, createDecodeContext, driverCall, codecCtx, queryable, onDriverAnswered) {\n\t\tconst rowDecodeContext = createDecodeContext();\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = null;\n\t\ttry {\n\t\t\tconst iterator = run.runQuery(exec, driverCall)[Symbol.asyncIterator]();\n\t\t\tlet answered = false;\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tcheckAborted(codecCtx, \"stream\");\n\t\t\t\t\tconst next = answered ? await iterator.next() : await iterator.next().finally(onDriverAnswered);\n\t\t\t\t\tanswered = true;\n\t\t\t\t\tif (next.done) break;\n\t\t\t\t\tyield blindCast(await decodeRow(next.value, rowDecodeContext, codecCtx, this.getListDecoder()));\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tawait iterator.return?.();\n\t\t\t}\n\t\t\ttelemetryOutcome = \"success\";\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (telemetryOutcome !== null) this.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tcreateQueryContexts(options) {\n\t\tconst signal = options?.signal;\n\t\tconst scope = options?.scope ?? \"runtime\";\n\t\treturn {\n\t\t\tcodecCtx: signal === void 0 ? {} : { signal },\n\t\t\tcontextFields: {\n\t\t\t\t...this.sqlCtx,\n\t\t\t\t...ifDefined(\"signal\", signal),\n\t\t\t\t...scope !== \"runtime\" ? { scope } : {}\n\t\t\t}\n\t\t};\n\t}\n\tasync prepareOperation(plan, codecCtx, run) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tif (isExecutionPlan(plan)) {\n\t\t\tconst mutator = createSqlParamRefMutator(plan);\n\t\t\tawait run.beforeEncode(plan, mutator);\n\t\t\treturn Object.freeze({\n\t\t\t\t...plan,\n\t\t\t\tparams: await encodeParams({\n\t\t\t\t\t...plan,\n\t\t\t\t\tparams: mutator.currentParams()\n\t\t\t\t}, codecCtx, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tconst compiled = await this.compilePlan(plan, run.ctx);\n\t\tconst draft = this.lowerToDraft(compiled);\n\t\tconst mutator = createSqlParamRefMutator(draft);\n\t\tawait run.beforeEncode(draft, mutator);\n\t\tconst draftWithMutations = Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: mutator.currentParams()\n\t\t});\n\t\treturn this.encodeDraftParams(draftWithMutations, codecCtx);\n\t}\n\t/** Query rows against a caller-supplied queryable through the shared preparation pipeline. */\n\tqueryAgainstQueryable(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, async function* (run) {\n\t\t\t\t\tconst exec = await self.prepareOperation(plan, codecCtx, run);\n\t\t\t\t\tyield* self.streamDecodedRows(run, exec, () => buildDecodeContext(exec.ast, self.contractCodecs), () => queryable.query({\n\t\t\t\t\t\tsql: exec.sql,\n\t\t\t\t\t\tparams: exec.params\n\t\t\t\t\t}), codecCtx, queryable, endOperation);\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\t/** Execute statistics against a caller-supplied queryable through the shared preparation pipeline. */\n\tasync executeStatisticsAgainstQueryable(plan, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.executeStatisticsInFlight(plan, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync executeStatisticsInFlight(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, plan, contextFields, async (run) => {\n\t\t\tconst exec = await this.prepareOperation(plan, codecCtx, run);\n\t\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute({\n\t\t\t\tsql: exec.sql,\n\t\t\t\tparams: exec.params\n\t\t\t}));\n\t\t});\n\t}\n\texecuteOn(queryable, options, plan, context, body) {\n\t\treturn executeStatement({\n\t\t\tmiddleware: this.middleware,\n\t\t\tplan,\n\t\t\tcontext,\n\t\t\tparent: this.parentOf(queryable, options)\n\t\t}, body);\n\t}\n\tasync executeEncodedPlan(run, exec, queryable, codecCtx, driverCall) {\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = \"success\";\n\t\ttry {\n\t\t\treturn await run.runExecute(exec, driverCall);\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tthis.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tasync prepare(declaration, callback) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst userPlan = callback(buildBindSiteParams(declaration));\n\t\tconst finalPlan = await this.compilePlan(userPlan, createContextBeneath(this.sqlCtx, void 0));\n\t\tconst orderedRefs = collectOrderedParamRefs(finalPlan.ast);\n\t\tconst referencedNames = /* @__PURE__ */ new Set();\n\t\tfor (const ref of orderedRefs) if (ref.kind === \"prepared-param-ref\") referencedNames.add(ref.name);\n\t\tconst missing = Object.keys(declaration).filter((name) => !referencedNames.has(name));\n\t\tif (missing.length > 0) throw runtimeError(\"RUNTIME.PREPARE_UNUSED_PARAM\", `Prepared statement declaration includes parameter${missing.length === 1 ? \"\" : \"s\"} not referenced by the callback's plan: ${missing.join(\", \")}`, { unused: missing });\n\t\tconst lowered = this.adapter.lower(finalPlan.ast, {\n\t\t\tcontract: this.contract,\n\t\t\tparams: orderedRefs.map((r) => r.kind === \"param-ref\" ? r.value : void 0)\n\t\t});\n\t\tconst decodeContext = buildDecodeContext(finalPlan.ast, this.contractCodecs);\n\t\tconst paramMetadata = deriveParamMetadata(finalPlan.ast);\n\t\tconst internals = Object.freeze({\n\t\t\tsql: lowered.sql,\n\t\t\tast: finalPlan.ast,\n\t\t\tmeta: finalPlan.meta,\n\t\t\tslots: lowered.params,\n\t\t\tdecodeContext,\n\t\t\tparamMetadata\n\t\t});\n\t\treturn blindCast(finalPlan.ast.kind === \"raw-query\" && finalPlan.ast.result.kind === \"affected-count\" ? new PreparedExecutionImpl(internals) : new PreparedStatementImpl(internals));\n\t}\n\t/** Query prepared rows against a caller-supplied queryable through the full pipeline. */\n\trunPreparedQueryAgainstQueryable(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan: ps,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, (run) => self.streamPreparedRows(run, ps, userParams, queryable, codecCtx, endOperation));\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\tasync *streamPreparedRows(run, ps, userParams, queryable, codecCtx, onDriverAnswered) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst encodedParams = await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: encodedParams,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tyield* this.streamDecodedRows(run, exec, () => ps.decodeContext, () => queryable.query(request), codecCtx, queryable, onDriverAnswered);\n\t}\n\t/** Execute a prepared statement's statistics against a caller-supplied queryable through the full pipeline. */\n\tasync runPreparedExecuteAgainstQueryable(ps, userParams, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.runPreparedExecuteInFlight(ps, userParams, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync runPreparedExecuteInFlight(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, ps, contextFields, (run) => this.executePrepared(run, ps, userParams, queryable, codecCtx));\n\t}\n\tasync executePrepared(run, ps, userParams, queryable, codecCtx) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs),\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute(request));\n\t}\n\tasync connection() {\n\t\treturn (await this.openConnection()).connection;\n\t}\n\tasync openConnection(options) {\n\t\tconst driverConn = await this.acquireRawConnection(options);\n\t\tthis.#heldQueryables.add(driverConn);\n\t\tconst self = this;\n\t\tconst wrappedConnection = {\n\t\t\t[transactionStart]: createTransactionStart(),\n\t\t\ttransaction() {\n\t\t\t\treturn self.beginTransactionOn(driverConn, wrappedConnection, void 0);\n\t\t\t},\n\t\t\t[activitySource]: self.connectionActivitySource(driverConn, () => wrappedConnection),\n\t\t\trelease: () => driverConn.release(),\n\t\t\tdestroy: (reason) => driverConn.destroy(reason),\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tdriverConnection: driverConn,\n\t\t\tconnection: wrappedConnection\n\t\t};\n\t}\n\t/**\n\t* Begins a transaction on `connection`, which `owner` wraps, as a transaction activity. When the transaction's `activityStarted` hooks refuse the start, no `BEGIN` is sent, `owner` is recorded as clean, and `withTransaction` releases it; after any other start failure it destroys it. The transaction's `activityStarted` hooks run before `BEGIN`. Every statement sent on the transaction, or on `connection`, from the end of `BEGIN` until `commit()` or `rollback()` is called is the transaction's child, and is finalized when the transaction ends, with its outcome. `commit()` and `rollback()` resolve after every finalization hook has run. A subclass that holds its own connection begins its transactions here.\n\t*/\n\tasync beginTransactionOn(connection, owner, parent) {\n\t\towner[transactionStart].refusedBeforeBegin = false;\n\t\tconst endTransactionWork = this.#openTransactionWork.begin();\n\t\tthis.#transactionWorkOn.set(connection, endTransactionWork);\n\t\tlet activity;\n\t\ttry {\n\t\t\tactivity = await startTransactionActivity({\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t},\n\t\t\t\tparent,\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tendTransactionWork();\n\t\t\towner[transactionStart].refusedBeforeBegin = true;\n\t\t\tthrow error;\n\t\t}\n\t\tlet driverTx;\n\t\ttry {\n\t\t\tdriverTx = await connection.beginTransaction();\n\t\t} catch (error) {\n\t\t\tendTransactionWork();\n\t\t\tawait activity.end({\n\t\t\t\tby: \"rollback\",\n\t\t\t\toutcome: \"failed\",\n\t\t\t\tcommitAttempted: false\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t\tif (this.#heldQueryables.has(connection)) this.#heldQueryables.add(driverTx);\n\t\treturn this.wrapTransaction(driverTx, connection, activity, endTransactionWork);\n\t}\n\twrapTransaction(driverTx, connection, activity, endTransactionWork) {\n\t\tthis.#openTransactions.set(driverTx, activity);\n\t\tthis.#openTransactions.set(connection, activity);\n\t\tconst stopAcceptingChildren = () => {\n\t\t\tactivity.stopAcceptingChildren();\n\t\t\tfor (const queryable of [driverTx, connection]) if (this.#openTransactions.get(queryable) === activity) this.#openTransactions.delete(queryable);\n\t\t};\n\t\tlet commitAttempted = false;\n\t\tconst settlement = {\n\t\t\tcommitted: false,\n\t\t\trolledBack: false,\n\t\t\tlogDroppedError(error) {\n\t\t\t\ttry {\n\t\t\t\t\tactivity.ctx.log.error({\n\t\t\t\t\t\tevent: \"middleware.activityEnded.error\",\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t};\n\t\tlet commitEnding;\n\t\tconst self = this;\n\t\treturn {\n\t\t\t[transactionSettlement]: settlement,\n\t\t\tasync commit() {\n\t\t\t\tcommitAttempted = true;\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.commit());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"commit\",\n\t\t\t\t\t\toutcome: \"failed\"\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.committed = true;\n\t\t\t\tcommitEnding = activity.end({\n\t\t\t\t\tby: \"commit\",\n\t\t\t\t\toutcome: \"succeeded\"\n\t\t\t\t});\n\t\t\t\ttry {\n\t\t\t\t\tawait commitEnding;\n\t\t\t\t} finally {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync rollback() {\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\tif (settlement.committed) {\n\t\t\t\t\tawait commitEnding?.catch(() => void 0);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (settlement.rolledBack) return;\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.rollback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\t\toutcome: \"failed\",\n\t\t\t\t\t\tcommitAttempted\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.rolledBack = true;\n\t\t\t\ttry {\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\t\toutcome: \"succeeded\",\n\t\t\t\t\t\tcommitAttempted\n\t\t\t\t\t});\n\t\t\t\t} finally {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t}\n\t\t\t},\n\t\t\t[activitySource]: {\n\t\t\t\tstartActivity: (clientActivity) => self.startActivityOnRoute(self.queryableRoute(driverTx, \"transaction\", () => activity, {\n\t\t\t\t\ttransaction: void 0,\n\t\t\t\t\truntimeWork: false\n\t\t\t\t}), clientActivity, void 0),\n\t\t\t\tplanContentHash: (plan) => self.planContentHashFor(plan, \"transaction\", activity)\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\ttelemetry() {\n\t\treturn this._telemetry;\n\t}\n\tclose() {\n\t\tthis.closePromise ??= this.closeDriverAfterWork();\n\t\treturn this.closePromise;\n\t}\n\tasync closeDriverAfterWork() {\n\t\tawait this.refuseAfterWork();\n\t\tif (this.ownsDriver) await this.driver.close();\n\t}\n\tasync refuseAfterWork() {\n\t\tconst warned = { done: false };\n\t\tif (this.closeRefusal === \"when-idle\") await this.waitForIdleTurn(warned);\n\t\tthis.#refusing = true;\n\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\twhile (this.#inFlight.active || this.#openTransactionWork.active) {\n\t\t\tawait this.#inFlight.drained();\n\t\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\t\tawait this.#openTransactionWork.drained();\n\t\t}\n\t}\n\tasync waitForIdleTurn(warned) {\n\t\tfor (;;) {\n\t\t\tconst startedBefore = this.#inFlight.started;\n\t\t\tawait new Promise((resolve) => scheduleTimer(resolve, 0));\n\t\t\tif (!this.#inFlight.active && this.#inFlight.started === startedBefore) return;\n\t\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\t\tawait this.#inFlight.drained();\n\t\t}\n\t}\n\tensureCodecRegistryValidated() {\n\t\tif (!this.codecRegistryValidated) {\n\t\t\tvalidateCodecRegistryCompleteness(this.codecDescriptors, this.contract);\n\t\t\tthis.codecRegistryValidated = true;\n\t\t}\n\t}\n\tasync verifyMarker(queryable) {\n\t\tconst readResult = await this.familyAdapter.markerReader.readMarker(queryable);\n\t\tconst expectedStorageHash = this.contract.storage.storageHash;\n\t\tconst expectedProfileHash = this.contract.profileHash ?? null;\n\t\tconst expected = {\n\t\t\tstorageHash: expectedStorageHash,\n\t\t\tprofileHash: expectedProfileHash\n\t\t};\n\t\tif (readResult.kind !== \"present\") {\n\t\t\tthis.sqlCtx.log.warn({\n\t\t\t\tcode: \"CONTRACT.MARKER_MISSING\",\n\t\t\t\tscope: \"marker-verification\",\n\t\t\t\texpected,\n\t\t\t\tactual: null,\n\t\t\t\tmessage: \"Contract marker not found in database\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst marker = readResult.record;\n\t\tconst storageHashMatch = marker.storageHash === expectedStorageHash;\n\t\tconst profileHashMatch = expectedProfileHash === null || marker.profileHash === expectedProfileHash;\n\t\tif (!storageHashMatch || !profileHashMatch) this.sqlCtx.log.warn({\n\t\t\tcode: \"CONTRACT.MARKER_MISMATCH\",\n\t\t\tscope: \"marker-verification\",\n\t\t\texpected,\n\t\t\tactual: {\n\t\t\t\tstorageHash: marker.storageHash,\n\t\t\t\tprofileHash: marker.profileHash ?? null\n\t\t\t},\n\t\t\tmessage: \"Contract marker hash does not match runtime contract\"\n\t\t});\n\t}\n\trecordTelemetry(plan, outcome, durationMs) {\n\t\tconst contract = this.contract;\n\t\tthis._telemetry = Object.freeze({\n\t\t\tlane: plan.meta.lane,\n\t\t\ttarget: contract.target,\n\t\t\tfingerprint: computeSqlFingerprint(plan.sql),\n\t\t\toutcome,\n\t\t\t...durationMs !== void 0 ? { durationMs } : {}\n\t\t});\n\t}\n};\nfunction activityOutsideTransactionError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.ACTIVITY_OUTSIDE_TRANSACTION\", `Work was sent through a '${parent.activity.kind}' activity onto a connection whose open transaction the activity is not part of. Start the activity on the transaction instead.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction transactionAlreadyOpenError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_ALREADY_OPEN\", `A transaction is already open on this connection; a '${parent.activity.kind}' activity cannot begin another until it commits or rolls back.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction noWork() {}\nfunction rowsBeneath(run, rows) {\n\treturn new AsyncIterableResult(new RowsBeneath(run, rows));\n}\n/** The rows of a statement started beneath `run`, checked against `run` on the first `next()`. It forwards to the statement's own iterator rather than adding an async generator, so each row costs no extra turn. */\nvar RowsBeneath = class {\n\t#run;\n\t#rows;\n\t#inner;\n\t#done = false;\n\tconstructor(run, rows) {\n\t\tthis.#run = run;\n\t\tthis.#rows = rows;\n\t}\n\tnext() {\n\t\tif (this.#done) return Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t});\n\t\tif (this.#inner === void 0) try {\n\t\t\tthis.#run.assertAcceptsChildren();\n\t\t\tthis.#inner = this.#rows()[Symbol.asyncIterator]();\n\t\t} catch (error) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn this.#inner.next();\n\t}\n\treturn() {\n\t\tconst inner = this.#inner;\n\t\tthis.#done = true;\n\t\treturn inner?.return === void 0 ? Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t}) : inner.return();\n\t}\n\tthrow(error) {\n\t\tconst inner = this.#inner;\n\t\tif (inner?.throw === void 0) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn inner.throw(error);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n};\nfunction transactionClosedError() {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_CLOSED\", \"Cannot use a transaction operation after the transaction has ended. Consume query results and await execute calls inside the transaction callback.\", {});\n}\n/**\n* Adds a client's members to the context `withTransaction` passes. The context is the prototype, not spread, so live accessors such as `invalidated` keep reading the transaction's state; spreading would copy their value once.\n*/\nfunction withTransactionMembers(txCtx, members) {\n\treturn Object.assign(castAs(Object.create(txCtx)), members);\n}\nasync function withTransaction(runtime, fn) {\n\tconst connection = await runtime.connection();\n\tlet transaction;\n\ttry {\n\t\ttransaction = await connection.transaction();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet invalidated = false;\n\tasync function* guardedStream(inner) {\n\t\tif (invalidated) throw transactionClosedError();\n\t\tfor await (const row of inner) {\n\t\t\tyield row;\n\t\t\tif (invalidated) throw transactionClosedError();\n\t\t}\n\t}\n\tfunction guardedQueryable(target) {\n\t\treturn {\n\t\t\tquery(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(target.query(plan, options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn target.execute(plan, options);\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(runPreparedQuery(target, ps, params, options)));\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn runPreparedExecute(target, ps, params, options);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedSource(target) {\n\t\treturn {\n\t\t\tasync startActivity(activity) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn guardedHandle(await startActivityOn(target, activity));\n\t\t\t},\n\t\t\tplanContentHash(plan) {\n\t\t\t\treturn planContentHashOn(target, plan);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedHandle(handle) {\n\t\tconst source = guardedSource(handle);\n\t\treturn {\n\t\t\t...source,\n\t\t\t...guardedQueryable(handle),\n\t\t\t[activitySource]: source,\n\t\t\tactivity: handle.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn handle.intercepted;\n\t\t\t},\n\t\t\tend: (end) => handle.end(end)\n\t\t};\n\t}\n\tconst txContext = {\n\t\t...guardedQueryable(transaction),\n\t\tget invalidated() {\n\t\t\treturn invalidated;\n\t\t},\n\t\t[activitySource]: guardedSource(transaction)\n\t};\n\tlet connectionDisposed = false;\n\tconst destroyConnection = async (reason) => {\n\t\tif (connectionDisposed) return;\n\t\tconnectionDisposed = true;\n\t\tawait connection.destroy(reason).catch(() => void 0);\n\t};\n\ttry {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = await fn(txContext);\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) {\n\t\t\t\t\tsettlement.logDroppedError(rollbackError);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tawait destroyConnection(rollbackError);\n\t\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_ROLLBACK_FAILED\", \"Transaction rollback failed after callback error\", { rollbackError });\n\t\t\t\twrapped.cause = error;\n\t\t\t\tthrow wrapped;\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tinvalidated = true;\n\t\t}\n\t\ttry {\n\t\t\tawait transaction.commit();\n\t\t} catch (commitError) {\n\t\t\tif (settlementOf(transaction)?.committed === true) throw commitError;\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) settlement.logDroppedError(rollbackError);\n\t\t\t\telse await destroyConnection(commitError);\n\t\t\t}\n\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_COMMIT_FAILED\", \"Transaction commit failed\", { commitError });\n\t\t\twrapped.cause = commitError;\n\t\t\tthrow wrapped;\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\tif (!connectionDisposed) await connection.release();\n\t}\n}\n//#endregion\n//#region src/to-sql.ts\nfunction createToSql(stack, contract) {\n\tlet adapter;\n\treturn (plan) => {\n\t\tvalidateSqlPlan(plan, contract);\n\t\tadapter ??= stack.adapter.create(stack);\n\t\tconst { sql, params } = lowerSqlPlan(adapter, contract, plan);\n\t\treturn {\n\t\t\tsql,\n\t\t\tparams\n\t\t};\n\t};\n}\n//#endregion\nexport { findActivitySource as C, startActivityOn as E, delegatingActivitySource as S, planContentHashOn as T, validateContractCodecMappings as _, buildDecodeContext as a, createAstCodecRegistry as b, createExecutionContext as c, PreparedStatementImpl as d, lints as f, validateCodecRegistryCompleteness as g, extractCodecIds as h, withTransactionMembers as i, createSqlExecutionStack as l, lowerSqlPlan as m, SqlRuntimeBase as n, decodeRow as o, budgets as p, withTransaction as r, sqlNativeArrayListDecoder as s, createToSql as t, PreparedExecutionImpl as u, deriveParamMetadata as v, lazyActivitySource as w, activitySource as x, encodeParamsWithMetadata as y };\n\n//# sourceMappingURL=exports-C3wGYtID.mjs.map"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { c as SqlStorage } from "./sql-storage-8LqxeLAY-DH4DdUXx.mjs";
2
- import { S as QueryOperationReturn } from "./types-BDUG29Df-LE85dIXP.mjs";
3
- import "./types-UcHa2cTe.mjs";
4
- import { t as SqlLoweringSpec } from "./index-C5I8D-MB.mjs";
5
- import { St as RawQueryAst, T as CodecRef$1, Tt as RawSqlLiteral, _t as ParamRef, s as AnyExpression } from "./types-v3qxLLxo-DCeKv7yY.mjs";
6
- import { l as SqlStatementStats } from "./driver-types-BQtRkOJ0-Bv2RPSfr.mjs";
7
- import { t as SqlQueryPlan } from "./plan-CDxduYaN-pLIyyJaB.mjs";
1
+ import { l as SqlStorage } from "./sql-storage-DeCAh5Hi-CEM-m8cs.mjs";
2
+ import { w as QueryOperationReturn } from "./types-DfKvtJwS-CrpWTGBJ.mjs";
3
+ import "./types-CkAd8SWm.mjs";
4
+ import { t as SqlLoweringSpec } from "./index-Nqc3OHR_.mjs";
5
+ import { At as RawQueryColumn, E as CodecRef$1, Mt as RawSqlLiteral, c as AnyExpression, kt as RawQueryAst, wt as ParamRef } from "./types-DriMIMNQ-BkbsW7w3.mjs";
6
+ import { l as SqlStatementStats } from "./driver-types-DRsYeq3j-BimeCnUk.mjs";
7
+ import { n as SqlQueryPlan } from "./plan-Cr4azjnG-CuL8FqXC.mjs";
8
8
  import { Contract } from "@prisma/orm-framework/contract/types";
9
9
  import { ParamSpec } from "@prisma/orm-framework/operations";
10
- //#region ../../../2-sql/4-lanes/relational-core/dist/exports/expression.d.mts
10
+ //#region ../../../2-sql-family/4-lanes/relational-core/dist/expression-6ld_ZQL6.d.mts
11
11
  //#region src/expression.d.ts
12
12
  type ScopeField = {
13
13
  codecId: string;
@@ -25,6 +25,18 @@ type ScopeField = {
25
25
  */
26
26
  codec?: CodecRef$1;
27
27
  };
28
+ /** A storage column as a scope field: its codec id, its nullability, and `many` for a list column. */
29
+ type StorageColumnScopeField<Column extends {
30
+ readonly codecId: string;
31
+ readonly nullable: boolean;
32
+ }> = {
33
+ codecId: Column['codecId'];
34
+ nullable: Column['nullable'];
35
+ } & (Column extends {
36
+ many: true;
37
+ } ? {
38
+ many: true;
39
+ } : Record<never, never>);
28
40
  type CodecTypesBase = Record<string, {
29
41
  readonly input: unknown;
30
42
  readonly output: unknown;
@@ -92,13 +104,13 @@ type TraitExpression<Traits extends readonly string[], Nullable extends boolean,
92
104
  /**
93
105
  * Resolve a raw value or an Expression into an AST expression node.
94
106
  *
95
- * When `value` is an Expression (duck-typed by its `buildAst` method), the AST it wraps is returned. Otherwise the value is embedded as a ParamRef tagged with the caller-supplied {@link CodecRef} (when known). The runtime resolves the ref via `contractCodecs.forCodecRef(codec)`; content-keyed memoisation collapses repeated lookups for the same logical column onto one shared codec.
107
+ * When `value` is an object with a callable `buildAst`, the AST it wraps is returned. Otherwise the value is embedded as a ParamRef tagged with the caller-supplied {@link CodecRef} (when known). The runtime resolves the ref via `contractCodecs.forCodecRef(codec)`; content-keyed memoisation collapses repeated lookups for the same logical column onto one shared codec.
96
108
  *
97
109
  * Operation implementations that compare a column-bound expression to a user value derive the column's {@link CodecRef} from the column-bound side (via {@link codecOf}) and forward it here so encode-side dispatch resolves to the per-instance codec for parameterized codec ids (`vector(1024)` vs. `vector(1536)`).
98
110
  */
99
111
  declare function toExpr(value: unknown, codec?: CodecRef$1): AnyExpression;
100
112
  /**
101
- * Construct a `ParamRef` for a value whose codec identity is known at call time. Use this when interpolating a value into a raw SQL expression and the codec cannot be inferred from context — e.g. `param(myDate, { codecId: 'pg/timestamptz@1' })`.
113
+ * Construct a `ParamRef` for a value whose codec identity is known at call time. Use this when interpolating a value into a raw SQL expression and the codec cannot be inferred from context — e.g. `param(myDate, { codecId: 'pg/timestamptz-temporal@1' })`.
102
114
  */
103
115
  declare function param<T>(value: T, opts: {
104
116
  codecId: string;
@@ -107,13 +119,13 @@ declare function param<T>(value: T, opts: {
107
119
  * Derive the {@link CodecRef} carried by an expression-like value.
108
120
  *
109
121
  * Resolution order:
110
- * 1. `wrapper.codec` — explicit column-bound {@link CodecRef} stamped at field-proxy time.
111
- * 2. `wrapper.returnType.codec` — scope-level codec when the scope was built from contract storage.
112
- * 3. `{ codecId: wrapper.returnType.codecId }` — minimal ref derived from the expression's declared codec id (covers synthetic expressions like `count()` whose returnType has a known codec id but no explicit column binding).
122
+ * 1. `wrapper.returnType.codec` — scope-level codec when the scope was built from contract storage.
123
+ * 2. `{ codecId: wrapper.returnType.codecId }` — minimal ref derived from the expression's declared codec id (covers synthetic expressions like `count()` whose returnType has a known codec id but no explicit column binding).
113
124
  *
114
125
  * Returns `undefined` for raw scalar values (non-expression-like).
115
126
  */
116
127
  declare function codecOf(value: unknown): CodecRef$1 | undefined;
128
+ declare function isExpression(value: unknown): value is Expression<ScopeField>;
117
129
  interface BuildOperationSpec<R extends ScopeField> {
118
130
  readonly method: string;
119
131
  /**
@@ -200,7 +212,16 @@ interface RawPlanContext {
200
212
  * (including data-modifying CTEs, whose `RETURNING` is what earns them a row
201
213
  * spec) expressible.
202
214
  */
203
- interface RawRowQuery<Row = unknown> {
215
+ interface RawRowQuery<Row = unknown, Refs extends Readonly<Record<string, RawQueryColumn>> = Readonly<Record<string, RawQueryColumn>>> {
216
+ /**
217
+ * What this statement declared. Each spec key gets one entry naming the
218
+ * codec that decodes the column and whether it may be null.
219
+ *
220
+ * Those entries are row-spec entries themselves. An outer statement that
221
+ * embeds this one can inherit a declaration instead of restating its codec
222
+ * id.
223
+ */
224
+ readonly returns: Refs;
204
225
  buildAst(): RawQueryAst;
205
226
  build(): SqlQueryPlan<Row>;
206
227
  }
@@ -253,5 +274,5 @@ type RawSqlInterpolation = RawExprInterpolation | RawRowQuery;
253
274
  declare function createRawSql(adapter: RawCodecInferer, planContext: RawPlanContext): RawSqlStatementTag;
254
275
  declare function createRawSql(adapter: RawCodecInferer): RawSqlTag;
255
276
  //#endregion
256
- export { buildOperation as C, toExpr as D, param as E, TraitExpression as S, createRawSql as T, RawSqlStatementBuilder as _, CodecValue as a, ScalarListExpression as b, RawAffectedCountQuery as c, RawRow as d, RawRowQuery as f, RawSqlInterpolation as g, RawSqlBuilder as h, CodecTypesBase as i, RawCodecInferer as l, RawRowSpecEntry as m, BuildOperationSpec as n, Expression as o, RawRowSpec as p, CodecExpression as r, NoReservedRowColumn as s, AffectedCount as t, RawPlanContext as u, RawSqlStatementTag as v, codecOf as w, ScopeField as x, RawSqlTag as y };
257
- //# sourceMappingURL=expression-FJK6Ar-d.d.mts.map
277
+ export { TraitExpression as C, isExpression as D, createRawSql as E, param as O, StorageColumnScopeField as S, codecOf as T, RawSqlStatementBuilder as _, CodecValue as a, ScalarListExpression as b, RawAffectedCountQuery as c, RawRow as d, RawRowQuery as f, RawSqlInterpolation as g, RawSqlBuilder as h, CodecTypesBase as i, toExpr as k, RawCodecInferer as l, RawRowSpecEntry as m, BuildOperationSpec as n, Expression as o, RawRowSpec as p, CodecExpression as r, NoReservedRowColumn as s, AffectedCount as t, RawPlanContext as u, RawSqlStatementTag as v, buildOperation as w, ScopeField as x, RawSqlTag as y };
278
+ //# sourceMappingURL=expression-6ld_ZQL6-fOuazzzm.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-6ld_ZQL6-fOuazzzm.d.mts","names":[],"sources":["../../../../2-sql-family/4-lanes/relational-core/dist/expression-6ld_ZQL6.d.mts"],"mappings":";;;;;;;;;;;KAQK;EACH;EACA;;;;;;;;EAQA;;;;EAIA,QAAQ;;;KAGL,wBAAwB;WAClB;WACA;;EAET,SAAS;EACT,UAAU;KACP;EACH;;EAEA;IACE;KACC,iBAAiB;WACX;WACA;;;;;KAKN,WAAW,UAAU,cAAc;WAC7B,YAAY;EACrB,YAAY;;KAET,kBAAkB,WAAW;WACvB;IACP,+CAA+C,WAAW,cAAc,GAAG;WACpE,cAAc;KACpB,iCAAiC,KAAK,2BAA2B;KACjE,WAAW,KAAK;;;;;KAKhB,WAAW,wBAAwB,0BAA0B,WAAW;WAClE;OACJ,sBAAsB,KAAK,GAAG,6BAA6B,WAAW;;;;;;;;;;;;;;;KAexE,gBAAgB,wBAAwB,0BAA0B,WAAW;WACvE;MACL;EACJ,SAAS;EACT,UAAU;EACV;KACG,WAAW,SAAS,UAAU;;;;;;;KAO9B,qBAAqB,wBAAwB,4BAA4B;EAC5E,SAAS;EACT,UAAU;EACV;;;;;;;KAOG,gBAAgB,kCAAkC,0BAA0B,WAAW;WACjF;MACL,gBAAgB,kBAAkB,IAAI,SAAS,UAAU;;;;;;;;iBAQ9C,OAAO,gBAAgB,QAAQ,aAAW;;;;iBAI1C,MAAM,GAAG,OAAO,GAAG;EAClC;IACE;;;;;;;;;;iBAUa,QAAQ,iBAAiB;iBACzB,aAAa,iBAAiB,SAAS,WAAW;UACzD,mBAAmB,UAAU;WAC5B;;;;WAIA,gBAAgB,kBAAkB;WAClC,SAAS,IAAI;WACb,UAAU;;;;;iBAKJ,eAAe,UAAU,YAAY,MAAM,mBAAmB,KAAK,WAAW;;;;;;;;;;;;;UAarF;EACR,WAAW,OAAO;;;UAGV;EACR,QAAQ,kBAAkB,MAAM,IAAI;IAClC,SAAS;IACT;;EAEF,QAAQ,kBAAkB,2BAA2B;aAC1C,SAAS;aACT,WAAW;MAClB;IACF,SAAS;IACT,UAAU;;;;;;;;;KAST;WACM;WACA;;;;;;;;;KASN;WACM;;;KAGN,aAAa,SAAS,eAAe,oBAAoB;;;;;;KAMzD,OAAO,aAAa,0BAA0B,WAAW;;;;;UAKpD;WACC,UAAU,SAAS;WACnB;;;;;;;;;;UAUD,YAAY,eAAe,aAAa,SAAS,eAAe,mBAAmB,SAAS,eAAe;;;;;;;;;WAS1G,SAAS;EAClB,YAAY;EACZ,SAAS,aAAa;;cAEV;;;;;;;;;;UAUJ,sBAAsB;YACpB;;;;;;;;UAQF;EACR,SAAS,aAAa;;;;;;;UAOd,+BAA+B;EACvC,WAAW,aAAa,YAAY,MAAM,OAAO,YAAY,OAAO;EACpE,iBAAiB;;;KAGd,aAAa,SAAS,yBAAyB,QAAQ,0BAA0B;;KAEjF,sBAAsB,SAAS,yBAAyB,QAAQ,0BAA0B;;KAE1F,uBAAuB,WAAW,cAAc,WAAW;;KAE3D,sBAAsB,uBAAuB;;;;;;;;iBAQjC,aAAa,SAAS,iBAAiB,aAAa,iBAAiB;iBACrE,aAAa,SAAS,kBAAkB"}
@@ -0,0 +1,22 @@
1
+ import { c as AnyExpression } from "./types-DriMIMNQ-BkbsW7w3.mjs";
2
+ import { o as Expression, x as ScopeField } from "./expression-6ld_ZQL6-fOuazzzm.mjs";
3
+ //#region ../../../2-sql-family/4-lanes/relational-core/dist/expression-CieaNuRM.d.mts
4
+ //#region src/expression-impl.d.ts
5
+ /**
6
+ * Runtime wrapper around a relational-core AST expression node. Carries ScopeField metadata (codecId, nullable) so aggregate-like combinators can propagate the input codec onto their result.
7
+ *
8
+ * `returnType.codec` records the column-bound codec ref when the field-proxy knows the binding — both the namespaced form (`f.user.email` → `ColumnRef`) and the top-level shortcut (`f.email` → `IdentifierRef`) stamp the ref derived from contract storage. `codecOf(expression)` exposes it for operation implementations forwarding the ref to `toExpr`.
9
+ *
10
+ * `projectionAst` carries the descriptor-lowered rendering of the expression, where a target declares one (e.g. SQLite's `CAST(count(*) AS TEXT)`). Lowering exists to carry the value across the driver boundary, so only the projection site consumes it — predicate and ordering positions (`buildAst()`) keep the plain form, where the rendering would change SQL semantics.
11
+ */
12
+ declare class ExpressionImpl<T extends ScopeField = ScopeField> implements Expression<T> {
13
+ private readonly ast;
14
+ private readonly projectionAst;
15
+ readonly returnType: T;
16
+ constructor(ast: AnyExpression, returnType: T, projectionAst?: AnyExpression);
17
+ buildAst(): AnyExpression;
18
+ buildProjectionAst(): AnyExpression;
19
+ }
20
+ //#endregion
21
+ export { ExpressionImpl as t };
22
+ //# sourceMappingURL=expression-CieaNuRM-B1uVqxwd.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-CieaNuRM-B1uVqxwd.d.mts","names":[],"sources":["../../../../2-sql-family/4-lanes/relational-core/dist/expression-CieaNuRM.d.mts"],"mappings":";;;;;;;;;;;cAUc,eAAe,UAAU,aAAa,uBAAuB,WAAW;mBACnE;mBACA;WACR,YAAY;EACrB,YAAY,KAAK,eAAe,YAAY,GAAG,gBAAgB;EAC/D,YAAY;EACZ,sBAAsB"}
@@ -0,0 +1,2 @@
1
+ import "./expression-6ld_ZQL6-fOuazzzm.mjs";
2
+ import "./expression-CieaNuRM-B1uVqxwd.mjs";