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

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
@@ -1,1360 +0,0 @@
1
- import { t as CheckKind } from "./naming-CV9j2pXl-KARaDReS.mjs";
2
- import { a as ReferentialAction } from "./foreign-key-C-iTPuRT-C9ip8zFx.mjs";
3
- import { t as Index$1 } from "./sql-index-ByAAE7K8-DKj2V86p.mjs";
4
- import { c as SqlStorage, d as StorageTypeInstance, i as SqlNamespaceBase, s as SqlNamespaceInput } from "./sql-storage-8LqxeLAY-DH4DdUXx.mjs";
5
- import { P as TypeMaps, o as ContractWithTypeMaps } from "./types-BDUG29Df-LE85dIXP.mjs";
6
- import "./types-UcHa2cTe.mjs";
7
- import "./derived-checks-DPdD01O0-DGqOFjs6.mjs";
8
- import { r as PackEntityHandle } from "./entity-handle-lowering-hook-CIvRKBfa.mjs";
9
- import { n as AuthoredIndexMethod } from "./index-naming-Ct65z5Xk.mjs";
10
- import { i as IndexTypeRegistration } from "./index-types-DPVhsW0v-D-BikM4h.mjs";
11
- import "./index-types-CNhHgKHi.mjs";
12
- import { AuthoringArgumentDescriptor, AuthoringFieldPresetDescriptor, AuthoringTypeConstructorDescriptor, AuthoringWarning } from "@prisma/orm-framework/components/authoring";
13
- import { StorageType } from "@prisma/orm-framework/components/ir";
14
- import { ColumnDefault, ColumnDefaultLiteralInputValue, Contract, ContractEnum, ContractRelation, ContractValueObject, ControlPolicy, ExecutionMutationDefaultPhases, ExecutionMutationDefaultValue, NamespaceId, StorageHashBase } from "@prisma/orm-framework/contract/types";
15
- import { BoundEnumType, CodecInput, CodecTypeMap, EntityHelpersFromNamespace, EnumMember, EnumTypeHandle, ExtractAuthoringNamespaceFromPack, ForeignKeyDefaultsState, MergeExtensionAuthoringNamespaces, bindEnumType, enumType, member } from "@prisma/orm-framework/contract-authoring";
16
- import { ExtensionPackRef, FamilyPackRef, TargetPackRef } from "@prisma/orm-framework/components/components";
17
- import { CodecLookup, ColumnTypeDescriptor } from "@prisma/orm-framework/components/codec";
18
- //#region ../../../2-sql/2-authoring/contract-ts/dist/contract-builder.d.mts
19
- //#region src/contract-dsl.d.ts
20
- type NamingStrategy = 'identity' | 'snake_case';
21
- type NamingConfig = {
22
- readonly tables?: NamingStrategy;
23
- readonly columns?: NamingStrategy;
24
- };
25
- type NamedStorageTypeRef = string | StorageTypeInstance | EnumTypeHandle;
26
- type NamedConstraintNameSpec<Name extends string = string> = {
27
- readonly name: Name;
28
- };
29
- type ScalarFieldState<Descriptor extends ColumnTypeDescriptor = ColumnTypeDescriptor, TypeRef extends NamedStorageTypeRef | undefined = undefined, Nullable extends boolean = boolean, ColumnName extends string | undefined = string | undefined, IdSpec extends NamedConstraintSpec | undefined = undefined, UniqueSpec extends NamedConstraintSpec | undefined = undefined, Many extends boolean = false> = {
30
- readonly kind: 'scalar';
31
- readonly descriptor?: Descriptor | undefined;
32
- readonly typeRef?: TypeRef | undefined;
33
- readonly nullable: Nullable;
34
- readonly columnName?: ColumnName | undefined;
35
- readonly default?: ColumnDefault | undefined;
36
- readonly executionDefaults?: ExecutionMutationDefaultPhases | undefined;
37
- readonly many?: Many extends true ? true : undefined;
38
- readonly noCheck?: readonly CheckKind[] | undefined;
39
- } & (IdSpec extends NamedConstraintSpec ? {
40
- readonly id: IdSpec;
41
- } : {
42
- readonly id?: undefined;
43
- }) & (UniqueSpec extends NamedConstraintSpec ? {
44
- readonly unique: UniqueSpec;
45
- } : {
46
- readonly unique?: undefined;
47
- });
48
- type AnyScalarFieldState = {
49
- readonly kind: 'scalar';
50
- readonly descriptor?: ColumnTypeDescriptor | undefined;
51
- readonly typeRef?: NamedStorageTypeRef | undefined;
52
- readonly nullable: boolean;
53
- readonly columnName?: string | undefined;
54
- readonly default?: ColumnDefault | undefined;
55
- readonly executionDefaults?: ExecutionMutationDefaultPhases | undefined;
56
- readonly many?: boolean | undefined;
57
- readonly noCheck?: readonly CheckKind[] | undefined;
58
- readonly id?: NamedConstraintSpec | undefined;
59
- readonly unique?: NamedConstraintSpec | undefined;
60
- };
61
- type HasNamedConstraintId<State extends AnyScalarFieldState> = State extends ScalarFieldState<ColumnTypeDescriptor, NamedStorageTypeRef | undefined, boolean, string | undefined, infer IdSpec, NamedConstraintSpec | undefined, boolean> ? IdSpec extends NamedConstraintSpec ? true : false : false;
62
- type HasNamedConstraintUnique<State extends AnyScalarFieldState> = State extends ScalarFieldState<ColumnTypeDescriptor, NamedStorageTypeRef | undefined, boolean, string | undefined, NamedConstraintSpec | undefined, infer UniqueSpec, boolean> ? UniqueSpec extends NamedConstraintSpec ? true : false : false;
63
- type FieldSqlSpecForState<State extends AnyScalarFieldState> = {
64
- readonly column?: string;
65
- } & (HasNamedConstraintId<State> extends true ? {
66
- readonly id?: NamedConstraintNameSpec;
67
- } : Record<never, never>) & (HasNamedConstraintUnique<State> extends true ? {
68
- readonly unique?: NamedConstraintNameSpec;
69
- } : Record<never, never>);
70
- type ApplyFieldSqlSpec<State extends AnyScalarFieldState, Spec extends FieldSqlSpecForState<State>> = State extends ScalarFieldState<infer Descriptor, infer TypeRef, infer Nullable, infer ColumnName, infer IdSpec, infer UniqueSpec, infer Many> ? ScalarFieldState<Descriptor, TypeRef, Nullable, Spec extends {
71
- readonly column: infer NextColumn extends string;
72
- } ? NextColumn : ColumnName, Spec extends {
73
- readonly id: {
74
- readonly name: infer IdName extends string;
75
- };
76
- } ? IdSpec extends NamedConstraintSpec ? NamedConstraintSpec<IdName> : IdSpec : IdSpec, Spec extends {
77
- readonly unique: {
78
- readonly name: infer UniqueName extends string;
79
- };
80
- } ? UniqueSpec extends NamedConstraintSpec ? NamedConstraintSpec<UniqueName> : UniqueSpec : UniqueSpec, Many> : AnyScalarFieldState;
81
- type GeneratedFieldSpec = {
82
- readonly type: ColumnTypeDescriptor;
83
- readonly typeParams?: Record<string, unknown>;
84
- readonly generated: ExecutionMutationDefaultValue;
85
- };
86
- declare class ScalarFieldBuilder<State extends AnyScalarFieldState = AnyScalarFieldState> {
87
- private readonly state;
88
- readonly __state: State;
89
- constructor(state: State);
90
- /**
91
- * Returns the physical column name when `.column(name)` was called, or
92
- * `undefined` when the field uses the default (logical field name) mapping.
93
- * Used by cross-space FK lowering to stamp the physical column name onto
94
- * `TargetFieldRef.columnName` so FK target columns are resolved correctly.
95
- */
96
- get physicalColumnName(): string | undefined;
97
- optional(): ScalarFieldBuilder<State extends ScalarFieldState<infer Descriptor, infer TypeRef, boolean, infer ColumnName, infer IdSpec, infer UniqueSpec, infer Many> ? ScalarFieldState<Descriptor, TypeRef, true, ColumnName, IdSpec, UniqueSpec, Many> : AnyScalarFieldState>;
98
- column<ColumnName extends string>(name: ColumnName): ScalarFieldBuilder<State extends ScalarFieldState<infer Descriptor, infer TypeRef, infer Nullable, string | undefined, infer IdSpec, infer UniqueSpec, infer Many> ? ScalarFieldState<Descriptor, TypeRef, Nullable, ColumnName, IdSpec, UniqueSpec, Many> : AnyScalarFieldState>;
99
- many(): ScalarFieldBuilder<State extends ScalarFieldState<infer Descriptor, infer TypeRef, infer Nullable, infer ColumnName, infer IdSpec, infer UniqueSpec, boolean> ? ScalarFieldState<Descriptor, TypeRef, Nullable, ColumnName, IdSpec, UniqueSpec, true> : AnyScalarFieldState>;
100
- /**
101
- * Declines enforcement of generated CHECK constraints on this column.
102
- * With no arguments, waives every kind the column's shape derives;
103
- * with arguments, waives exactly the named kinds. Declared types are
104
- * unchanged — runtime values may diverge from them once enforcement
105
- * is waived.
106
- */
107
- noCheck(...kinds: readonly CheckKind[]): ScalarFieldBuilder<State>;
108
- default(value: ColumnDefaultLiteralInputValue | ColumnDefault): ScalarFieldBuilder<State>;
109
- defaultSql(expression: string): ScalarFieldBuilder<State>;
110
- id<const Name extends string | undefined = undefined>(options?: NamedConstraintSpec<Name>): ScalarFieldBuilder<State extends ScalarFieldState<infer Descriptor, infer TypeRef, infer Nullable, infer ColumnName, NamedConstraintSpec | undefined, infer UniqueSpec, infer Many> ? ScalarFieldState<Descriptor, TypeRef, Nullable, ColumnName, NamedConstraintSpec<Name>, UniqueSpec, Many> : AnyScalarFieldState>;
111
- unique<const Name extends string | undefined = undefined>(options?: NamedConstraintSpec<Name>): ScalarFieldBuilder<State extends ScalarFieldState<infer Descriptor, infer TypeRef, infer Nullable, infer ColumnName, infer IdSpec, NamedConstraintSpec | undefined, infer Many> ? ScalarFieldState<Descriptor, TypeRef, Nullable, ColumnName, IdSpec, NamedConstraintSpec<Name>, Many> : AnyScalarFieldState>;
112
- sql<const Spec extends FieldSqlSpecForState<State>>(spec: Spec): ScalarFieldBuilder<ApplyFieldSqlSpec<State, Spec>>;
113
- build(): State;
114
- }
115
- declare class EnumScalarFieldBuilder<Handle extends EnumTypeHandle, State extends AnyScalarFieldState = ScalarFieldState<ColumnTypeDescriptor, Handle, false, undefined>> extends ScalarFieldBuilder<State> {
116
- #private;
117
- constructor(state: State, handle: Handle);
118
- default(value: Handle['values'][number]): EnumScalarFieldBuilder<Handle, State>;
119
- defaultSql(_expression: never): never;
120
- }
121
- declare function columnField<Descriptor extends ColumnTypeDescriptor>(descriptor: Descriptor): ScalarFieldBuilder<ScalarFieldState<Descriptor, undefined, false, undefined>>;
122
- declare function generatedField<Descriptor extends ColumnTypeDescriptor>(spec: GeneratedFieldSpec & {
123
- readonly type: Descriptor;
124
- }): ScalarFieldBuilder<ScalarFieldState<Descriptor, undefined, false, undefined>>;
125
- declare function namedTypeField<TypeRef extends string>(typeRef: TypeRef): ScalarFieldBuilder<ScalarFieldState<ColumnTypeDescriptor, TypeRef, false, undefined>>;
126
- declare function namedTypeField<TypeRef extends StorageTypeInstance>(typeRef: TypeRef): ScalarFieldBuilder<ScalarFieldState<ColumnTypeDescriptor<TypeRef['codecId']>, TypeRef, false, undefined>>;
127
- declare function namedTypeField<Handle extends EnumTypeHandle>(typeRef: Handle): EnumScalarFieldBuilder<Handle>;
128
- type RelationModelRefSource = 'string' | 'token' | 'lazyToken';
129
- type TargetFieldRefSource = 'string' | 'token';
130
- type EagerRelationModelName<ModelName extends string = string, Source extends Exclude<RelationModelRefSource, 'lazyToken'> = Exclude<RelationModelRefSource, 'lazyToken'>> = {
131
- readonly kind: 'relationModelName';
132
- readonly source: Source;
133
- readonly modelName: ModelName;
134
- };
135
- type LazyRelationModelName<ModelName extends string = string> = {
136
- readonly kind: 'lazyRelationModelName';
137
- readonly source: 'lazyToken';
138
- readonly resolve: () => ModelName;
139
- };
140
- type RelationModelSource<ModelName extends string = string> = EagerRelationModelName<ModelName> | LazyRelationModelName<ModelName>;
141
- type BelongsToRelation<ToModel extends string = string, FromField extends string | readonly string[] = string | readonly string[], ToField extends string | readonly string[] = string | readonly string[], SqlSpec extends BelongsToRelationSqlSpec | undefined = undefined> = {
142
- readonly kind: 'belongsTo';
143
- readonly toModel: RelationModelSource<ToModel>;
144
- readonly from: FromField;
145
- readonly to: ToField;
146
- readonly sql?: SqlSpec;
147
- /**
148
- * Contract-space identity of the target model. Populated when
149
- * `belongsTo` receives a cross-space branded handle. Absent for
150
- * local (same-space) relations.
151
- */
152
- readonly spaceId?: string;
153
- /**
154
- * Physical table name of the cross-space target model. Only set
155
- * when `spaceId` is present; read from the handle's `tableName`.
156
- */
157
- readonly tableName?: string;
158
- /**
159
- * Namespace coordinate of the cross-space target model.
160
- * Only set when `spaceId` is present.
161
- */
162
- readonly namespaceId?: string;
163
- };
164
- type HasManyRelation<ToModel extends string = string, ByField extends string | readonly string[] = string | readonly string[]> = {
165
- readonly kind: 'hasMany';
166
- readonly toModel: RelationModelSource<ToModel>;
167
- readonly by: ByField;
168
- };
169
- type HasOneRelation<ToModel extends string = string, ByField extends string | readonly string[] = string | readonly string[]> = {
170
- readonly kind: 'hasOne';
171
- readonly toModel: RelationModelSource<ToModel>;
172
- readonly by: ByField;
173
- };
174
- type ManyToManyRelation<ToModel extends string = string, ThroughModel extends string = string, FromField extends string | readonly string[] = string | readonly string[], ToField extends string | readonly string[] = string | readonly string[]> = {
175
- readonly kind: 'manyToMany';
176
- readonly toModel: RelationModelSource<ToModel>;
177
- readonly through: RelationModelSource<ThroughModel>;
178
- readonly from: FromField;
179
- readonly to: ToField;
180
- };
181
- type RelationState = BelongsToRelation<string, string | readonly string[], string | readonly string[], BelongsToRelationSqlSpec | undefined> | HasManyRelation | HasOneRelation | ManyToManyRelation;
182
- type AnyRelationState = RelationState;
183
- type AnyRelationBuilder = RelationBuilder<AnyRelationState>;
184
- type ApplyBelongsToRelationSqlSpec<State extends RelationState, SqlSpec extends BelongsToRelationSqlSpec> = State extends BelongsToRelation<infer ToModel, infer FromField, infer ToField, BelongsToRelationSqlSpec | undefined> ? BelongsToRelation<ToModel, FromField, ToField, SqlSpec> : never;
185
- declare class RelationBuilder<State extends RelationState = AnyRelationState> {
186
- private readonly state;
187
- readonly __state: State;
188
- constructor(state: State);
189
- sql<const SqlSpec extends BelongsToRelationSqlSpec>(this: State extends BelongsToRelation<string, string | readonly string[], string | readonly string[], BelongsToRelationSqlSpec | undefined> ? RelationBuilder<State> : never, spec: SqlSpec): RelationBuilder<ApplyBelongsToRelationSqlSpec<State, SqlSpec>>;
190
- build(): State;
191
- }
192
- /**
193
- * Reference to a column on the current (local) model.
194
- *
195
- * Source columns are always local to the contract being authored. The
196
- * cross-space brand lives on `TargetFieldRef` (the target side of a foreign
197
- * key), not here.
198
- */
199
- type ColumnRef<FieldName extends string = string> = {
200
- readonly kind: 'columnRef';
201
- readonly fieldName: FieldName;
202
- };
203
- /**
204
- * Reference to a field on a target model, produced by model `.refs` and
205
- * `constraints.ref(modelName, fieldName)`.
206
- *
207
- * The `TSpaceId` phantom parameter carries the contract-space identity of the
208
- * target model. Local model handles produce `TSpaceId = '<self>'`; extension
209
- * handles carry the extension's `spaceId`. The brand is propagated from the
210
- * parent `ContractModelBuilder` via the `spaceId?` property: absent means local
211
- * (`'<self>'`), present means cross-space.
212
- */
213
- type TargetFieldRef<ModelName extends string = string, FieldName extends string = string, TSpaceId extends string = string> = {
214
- readonly kind: 'targetFieldRef';
215
- readonly source: TargetFieldRefSource;
216
- readonly modelName: ModelName;
217
- readonly fieldName: FieldName;
218
- /**
219
- * Cross-space discriminator. When present, the referenced model lives in a
220
- * different contract space identified by this value. Absent for local refs.
221
- */
222
- readonly spaceId?: TSpaceId extends '<self>' ? never : TSpaceId;
223
- /**
224
- * Namespace id of the cross-space target model (e.g. `'auth'` for
225
- * `supabase` `auth.User`). Only present for cross-space refs.
226
- */
227
- readonly namespaceId?: string;
228
- /**
229
- * Physical table name of the cross-space target model. Only present for
230
- * cross-space refs; allows the lowering path to bypass the local model
231
- * registry.
232
- */
233
- readonly tableName?: string;
234
- /**
235
- * Physical column name of the target field. Populated for cross-space refs
236
- * when the extension handle's field used `.column(name)` to rename the
237
- * physical column. When absent the logical `fieldName` is used as the column
238
- * name. Only relevant for cross-space FK lowering — local FKs resolve column
239
- * names via the local `fieldToColumn` map.
240
- */
241
- readonly columnName?: string;
242
- };
243
- type ModelTokenRefs<ModelName extends string, Fields extends Record<string, ScalarFieldBuilder>, TSpaceId extends string = '<self>'> = { readonly [K in keyof Fields]: TargetFieldRef<ModelName, K & string, TSpaceId>; };
244
- type ConstraintOptions<Name extends string | undefined = string | undefined> = {
245
- readonly name?: Name;
246
- };
247
- type IndexTypeMap = Record<string, {
248
- readonly options: unknown;
249
- }>;
250
- type IndexOptionsBase<Name extends string | undefined> = {
251
- readonly name?: Name;
252
- /** Exact physical name — adopted verbatim, no wire hash. Xor `name`. */
253
- readonly map?: string;
254
- /** Opaque SQL: partial-index predicate (WHERE body, without the keyword). */
255
- readonly where?: string;
256
- readonly unique?: boolean;
257
- };
258
- type IndexInput<Name extends string | undefined, IndexTypes extends IndexTypeMap> = keyof IndexTypes extends never ? IndexOptionsBase<Name> : (IndexOptionsBase<Name> & {
259
- readonly type?: never;
260
- readonly options?: never;
261
- }) | { readonly [K in keyof IndexTypes & string]: IndexOptionsBase<Name> & {
262
- readonly type: K;
263
- readonly options: IndexTypes[K]['options'];
264
- }; }[keyof IndexTypes & string];
265
- /**
266
- * The expression overload's input: the whole CREATE INDEX element list as
267
- * one opaque string. `name` or `map` is required — enforced at lowering
268
- * with the same diagnostics as PSL.
269
- */
270
- type ExpressionIndexInput<Name extends string | undefined, IndexTypes extends IndexTypeMap> = IndexInput<Name, IndexTypes> & {
271
- readonly expression: string;
272
- };
273
- type ForeignKeyOptions<Name extends string | undefined = string | undefined> = ConstraintOptions<Name> & {
274
- readonly onDelete?: 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
275
- readonly onUpdate?: 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
276
- readonly constraint?: boolean;
277
- readonly index?: boolean;
278
- };
279
- type BelongsToRelationSqlSpec<Name extends string | undefined = string | undefined> = {
280
- readonly fk?: ForeignKeyOptions<Name>;
281
- };
282
- type IdConstraint<FieldNames extends readonly string[] = readonly string[], Name extends string | undefined = string | undefined> = {
283
- readonly kind: 'id';
284
- readonly fields: FieldNames;
285
- readonly name?: Name;
286
- };
287
- type UniqueConstraint<FieldNames extends readonly string[] = readonly string[]> = {
288
- readonly kind: 'unique';
289
- readonly fields: FieldNames;
290
- readonly name?: string;
291
- };
292
- /** An authored index constraint's element structure — field tuple xor expression. */
293
- type IndexConstraintElements<FieldNames extends readonly string[] = readonly string[]> = {
294
- /** Field-name tuple. */
295
- readonly fields: FieldNames;
296
- readonly expression?: never;
297
- } | {
298
- readonly fields?: never;
299
- /** Opaque SQL: the entire CREATE INDEX element list — never parsed. */
300
- readonly expression: string;
301
- };
302
- /** Options only exist as options of a type, so the pair is one union. */
303
- type IndexConstraintMethod = {
304
- readonly type?: undefined;
305
- readonly options?: undefined;
306
- } | {
307
- readonly type: string;
308
- readonly options?: Record<string, unknown>;
309
- };
310
- type IndexConstraint<FieldNames extends readonly string[] = readonly string[], Name extends string | undefined = string | undefined> = IndexConstraintElements<FieldNames> & IndexConstraintMethod & {
311
- readonly kind: 'index';
312
- readonly where?: string;
313
- readonly unique?: boolean;
314
- readonly name?: Name;
315
- readonly map?: string;
316
- };
317
- /**
318
- * An authored check constraint, as returned by {@link check}: `map` adopts an
319
- * exact physical name verbatim, `name` is a wire-name prefix. Unlike an
320
- * index there is no column tuple to derive a default name from, so exactly
321
- * one of `name` or `map` is required — enforced at lowering, same as PSL.
322
- */
323
- type AuthoredCheckConstraint = {
324
- readonly kind: 'check';
325
- readonly expression: string;
326
- readonly name?: string;
327
- readonly map?: string;
328
- };
329
- type ForeignKeyConstraint<SourceFieldNames extends readonly string[] = readonly string[], TargetModelName extends string = string, TargetFieldNames extends readonly string[] = readonly string[], Name extends string | undefined = string | undefined> = {
330
- readonly kind: 'fk';
331
- readonly fields: SourceFieldNames;
332
- readonly targetModel: TargetModelName;
333
- readonly targetFields: TargetFieldNames;
334
- readonly targetSource?: TargetFieldRefSource;
335
- /**
336
- * Cross-space discriminator. When present, the FK target lives in a
337
- * different contract space identified by this value. Absent for local FKs.
338
- */
339
- readonly targetSpaceId?: string;
340
- /**
341
- * Namespace coordinate of the cross-space target model. Populated when
342
- * the target model handle carries a `namespace` (e.g. `auth` for supabase
343
- * `auth.User`). Absent for local FKs.
344
- */
345
- readonly targetNamespaceId?: string;
346
- /**
347
- * Table name of the cross-space target. Populated for cross-space FKs
348
- * so the lowering path doesn't need a local model lookup.
349
- */
350
- readonly targetTableName?: string;
351
- readonly name?: Name;
352
- readonly onDelete?: 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
353
- readonly onUpdate?: 'noAction' | 'restrict' | 'cascade' | 'setNull' | 'setDefault';
354
- readonly constraint?: boolean;
355
- readonly index?: boolean;
356
- };
357
- declare function createConstraintsDsl<IndexTypes extends IndexTypeMap = Record<never, never>>(): {
358
- ref: <ModelName extends string, FieldName extends string>(modelName: ModelName, fieldName: FieldName) => TargetFieldRef<ModelName, FieldName>;
359
- id: {
360
- <FieldName extends string, Name extends string | undefined = undefined>(field: ColumnRef<FieldName>, options?: NamedConstraintSpec<Name>): IdConstraint<readonly [FieldName], Name>;
361
- <FieldNames extends readonly string[], Name extends string | undefined = undefined>(fields: { readonly [K in keyof FieldNames]: ColumnRef<FieldNames[K] & string>; }, options?: NamedConstraintSpec<Name>): IdConstraint<FieldNames, Name>;
362
- };
363
- unique: {
364
- <FieldName extends string>(field: ColumnRef<FieldName>, options?: ConstraintOptions): UniqueConstraint<readonly [FieldName]>;
365
- <FieldNames extends readonly string[]>(fields: { readonly [K in keyof FieldNames]: ColumnRef<FieldNames[K] & string>; }, options?: ConstraintOptions): UniqueConstraint<FieldNames>;
366
- };
367
- index: {
368
- <FieldNames extends readonly string[], Name extends string | undefined = undefined>(fields: { readonly [K in keyof FieldNames]: ColumnRef<FieldNames[K] & string>; }, options?: IndexInput<Name, IndexTypes>): IndexConstraint<FieldNames, Name>;
369
- <Name extends string | undefined = undefined>(options: ExpressionIndexInput<Name, IndexTypes>): IndexConstraint<never, Name>;
370
- };
371
- foreignKey: {
372
- <SourceFieldName extends string, TargetModelName extends string, TargetFieldName extends string, Name extends string | undefined = undefined>(field: ColumnRef<SourceFieldName>, target: TargetFieldRef<TargetModelName, TargetFieldName>, options?: ForeignKeyOptions<Name>): ForeignKeyConstraint<readonly [SourceFieldName], TargetModelName, readonly [TargetFieldName], Name>;
373
- <SourceFieldNames extends readonly string[], TargetModelName extends string, TargetFieldNames extends readonly string[], Name extends string | undefined = undefined>(fields: { readonly [K in keyof SourceFieldNames]: ColumnRef<SourceFieldNames[K] & string>; }, target: { readonly [K in keyof TargetFieldNames]: TargetFieldRef<TargetModelName, TargetFieldNames[K] & string>; }, options?: ForeignKeyOptions<Name>): ForeignKeyConstraint<SourceFieldNames, TargetModelName, TargetFieldNames, Name>;
374
- };
375
- };
376
- type ConstraintsDsl = ReturnType<typeof createConstraintsDsl>;
377
- /**
378
- * Declares an authored CHECK constraint for a model's `.sql({ checks: [...] })`.
379
- * Unlike `index()`, `check()` names no column tuple — the predicate is opaque
380
- * SQL — so it needs no field-ref context and is a plain top-level function
381
- * rather than a method on `constraints`.
382
- */
383
- declare function check(input: {
384
- readonly expression: string;
385
- readonly name?: string;
386
- readonly map?: string;
387
- }): AuthoredCheckConstraint;
388
- type ModelAttributesSpec = {
389
- readonly id?: IdConstraint;
390
- readonly uniques?: readonly UniqueConstraint[];
391
- };
392
- type SqlStageSpec = {
393
- readonly table?: string;
394
- readonly control?: ControlPolicy;
395
- readonly indexes?: readonly IndexConstraint[];
396
- readonly checks?: readonly AuthoredCheckConstraint[];
397
- readonly foreignKeys?: readonly ForeignKeyConstraint[];
398
- };
399
- type FieldRefs<Fields extends Record<string, ScalarFieldBuilder>> = { readonly [K in keyof Fields]: ColumnRef<K & string>; };
400
- type AttributeContext<Fields extends Record<string, ScalarFieldBuilder>> = {
401
- readonly fields: FieldRefs<Fields>;
402
- readonly constraints: Pick<ConstraintsDsl, 'id' | 'unique'>;
403
- };
404
- type PackAwareIndex<IndexTypes extends IndexTypeMap> = {
405
- <FieldNames extends readonly string[], Name extends string | undefined = undefined>(fields: { readonly [K in keyof FieldNames]: ColumnRef<FieldNames[K] & string>; }, options?: IndexInput<Name, IndexTypes>): IndexConstraint<FieldNames, Name>;
406
- <Name extends string | undefined = undefined>(options: ExpressionIndexInput<Name, IndexTypes>): IndexConstraint<never, Name>;
407
- };
408
- type PackAwareSqlConstraints<IndexTypes extends IndexTypeMap> = {
409
- readonly foreignKey: ConstraintsDsl['foreignKey'];
410
- readonly ref: ConstraintsDsl['ref'];
411
- readonly index: PackAwareIndex<IndexTypes>;
412
- };
413
- type SqlContext<Fields extends Record<string, ScalarFieldBuilder>, IndexTypes extends IndexTypeMap = Record<never, never>> = {
414
- readonly cols: FieldRefs<Fields>;
415
- readonly constraints: PackAwareSqlConstraints<IndexTypes>;
416
- };
417
- type StageInput<Context, Spec> = Spec | ((context: Context) => Spec);
418
- type StaticLiteralName<Name> = Name extends string ? (string extends Name ? never : Name) : never;
419
- type NamedConstraintLiteralName<Constraint> = Constraint extends {
420
- readonly name?: infer Name;
421
- } ? StaticLiteralName<Name> : never;
422
- type DuplicateLiteralNames<Items extends readonly unknown[], Seen extends string = never, Duplicates extends string = never> = Items extends readonly [infer First, ...infer Rest extends readonly unknown[]] ? NamedConstraintLiteralName<First> extends (infer Name extends string) ? Name extends Seen ? DuplicateLiteralNames<Rest, Seen, Duplicates | Name> : DuplicateLiteralNames<Rest, Seen | Name, Duplicates> : DuplicateLiteralNames<Rest, Seen, Duplicates> : Duplicates;
423
- type InlineIdLiteralName<Fields extends Record<string, ScalarFieldBuilder>> = { readonly [FieldName in keyof Fields]: FieldStateOf<Fields[FieldName]> extends {
424
- readonly id: {
425
- readonly name?: infer Name;
426
- };
427
- } ? StaticLiteralName<Name> : never; }[keyof Fields];
428
- type AttributeIdLiteralName<AttributesSpec extends ModelAttributesSpec | undefined> = AttributesSpec extends {
429
- readonly id?: {
430
- readonly name?: infer Name;
431
- };
432
- } ? StaticLiteralName<Name> : never;
433
- type ModelIdLiteralName<Fields extends Record<string, ScalarFieldBuilder>, AttributesSpec extends ModelAttributesSpec | undefined> = [AttributeIdLiteralName<AttributesSpec>] extends [never] ? InlineIdLiteralName<Fields> : AttributeIdLiteralName<AttributesSpec>;
434
- type SqlIndexes<SqlSpec extends SqlStageSpec> = SqlSpec extends {
435
- readonly indexes?: infer Indexes extends readonly unknown[];
436
- } ? Indexes : readonly [];
437
- type SqlForeignKeys<SqlSpec extends SqlStageSpec> = SqlSpec extends {
438
- readonly foreignKeys?: infer ForeignKeys extends readonly unknown[];
439
- } ? ForeignKeys : readonly [];
440
- type SqlNamedObjects<SqlSpec extends SqlStageSpec> = [...SqlIndexes<SqlSpec>, ...SqlForeignKeys<SqlSpec>];
441
- type ValidateSqlStageSpec<Fields extends Record<string, ScalarFieldBuilder>, AttributesSpec extends ModelAttributesSpec | undefined, SqlSpec extends SqlStageSpec> = [DuplicateLiteralNames<SqlNamedObjects<SqlSpec>>] extends [never] ? [Extract<ModelIdLiteralName<Fields, AttributesSpec>, NamedConstraintLiteralName<SqlNamedObjects<SqlSpec>[number]>>] extends [never] ? SqlSpec : never : never;
442
- type ValidateAttributesStageSpec<Fields extends Record<string, ScalarFieldBuilder>, SqlSpec extends SqlStageSpec | undefined, AttributesSpec extends ModelAttributesSpec> = SqlSpec extends SqlStageSpec ? [Extract<ModelIdLiteralName<Fields, AttributesSpec>, NamedConstraintLiteralName<SqlNamedObjects<SqlSpec>[number]>>] extends [never] ? AttributesSpec : never : AttributesSpec;
443
- declare class ContractModelBuilder<ModelName extends string | undefined, Fields extends Record<string, ScalarFieldBuilder>, Relations extends Record<string, AnyRelationBuilder> = Record<never, never>, AttributesSpec extends ModelAttributesSpec | undefined = undefined, SqlSpec extends SqlStageSpec | undefined = undefined, IndexTypes extends IndexTypeMap = Record<never, never>, TSpaceId extends string = '<self>'> {
444
- readonly stageOne: {
445
- readonly modelName?: ModelName;
446
- readonly namespace?: string;
447
- readonly fields: Fields;
448
- readonly relations: Relations;
449
- };
450
- readonly attributesFactory?: StageInput<AttributeContext<Fields>, AttributesSpec> | undefined;
451
- readonly sqlFactory?: StageInput<SqlContext<Fields, IndexTypes>, SqlSpec> | undefined;
452
- readonly spaceId?: TSpaceId | undefined;
453
- readonly tableName?: string | undefined;
454
- readonly __name: ModelName;
455
- readonly __fields: Fields;
456
- readonly __relations: Relations;
457
- readonly __attributes: AttributesSpec;
458
- readonly __sql: SqlSpec;
459
- readonly __indexTypes: IndexTypes;
460
- readonly __spaceId: TSpaceId;
461
- readonly refs: ModelName extends string ? ModelTokenRefs<ModelName, Fields, TSpaceId> : never;
462
- constructor(stageOne: {
463
- readonly modelName?: ModelName;
464
- readonly namespace?: string;
465
- readonly fields: Fields;
466
- readonly relations: Relations;
467
- }, attributesFactory?: StageInput<AttributeContext<Fields>, AttributesSpec> | undefined, sqlFactory?: StageInput<SqlContext<Fields, IndexTypes>, SqlSpec> | undefined, spaceId?: TSpaceId | undefined, tableName?: string | undefined);
468
- ref<FieldName extends keyof Fields & string>(this: ModelName extends string ? ContractModelBuilder<ModelName, Fields, Relations, AttributesSpec, SqlSpec, IndexTypes> : never, fieldName: FieldName): TargetFieldRef<ModelName & string, FieldName>;
469
- relations<const NextRelations extends Record<string, AnyRelationBuilder>>(relations: NextRelations): ContractModelBuilder<ModelName, Fields, Relations & NextRelations, AttributesSpec, SqlSpec, IndexTypes, TSpaceId>;
470
- attributes<const NextAttributesSpec extends ModelAttributesSpec>(specOrFactory: StageInput<AttributeContext<Fields>, ValidateAttributesStageSpec<Fields, SqlSpec, NextAttributesSpec>>): ContractModelBuilder<ModelName, Fields, Relations, NextAttributesSpec, SqlSpec, IndexTypes, TSpaceId>;
471
- sql<const NextSqlSpec extends SqlStageSpec>(specOrFactory: StageInput<SqlContext<Fields, IndexTypes>, NextSqlSpec>): [ValidateSqlStageSpec<Fields, AttributesSpec, NextSqlSpec>] extends [never] ? ContractModelBuilder<ModelName, Fields, Relations, AttributesSpec, never, IndexTypes, TSpaceId> : ContractModelBuilder<ModelName, Fields, Relations, AttributesSpec, NextSqlSpec, IndexTypes, TSpaceId>;
472
- buildAttributesSpec(): AttributesSpec;
473
- buildSqlSpec(): SqlSpec;
474
- }
475
- type NamedModelTokenShape<ModelName extends string = string, Fields extends Record<string, ScalarFieldBuilder> = Record<string, ScalarFieldBuilder>> = {
476
- readonly stageOne: {
477
- readonly modelName?: ModelName;
478
- readonly fields: Fields;
479
- };
480
- };
481
- type AnyNamedModelToken = NamedModelTokenShape<string, Record<string, ScalarFieldBuilder>>;
482
- type LazyNamedModelToken<Token extends AnyNamedModelToken = AnyNamedModelToken> = () => Token;
483
- type RelationFieldSelection<FieldName extends string> = FieldName | readonly FieldName[];
484
- type RelationModelName<Target> = Target extends NamedModelTokenShape<infer ModelName extends string, Record<string, ScalarFieldBuilder>> ? ModelName : Target extends (() => infer Token) ? RelationModelName<Token> : never;
485
- type RelationModelFieldNames<Target> = Target extends NamedModelTokenShape<string, infer Fields> ? keyof Fields & string : Target extends (() => infer Token) ? RelationModelFieldNames<Token> : never;
486
- type ContractInput<Family extends FamilyPackRef<string> = FamilyPackRef<string>, Target extends TargetPackRef<'sql', string> = TargetPackRef<'sql', string>, Types extends Record<string, StorageTypeInstance> = Record<never, never>, Models extends Record<string, ContractModelBuilder<string | undefined, Record<string, ScalarFieldBuilder>, Record<string, AnyRelationBuilder>, ModelAttributesSpec | undefined, SqlStageSpec | undefined>> = Record<never, never>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined = undefined> = {
487
- readonly family: Family;
488
- readonly target: Target;
489
- readonly extensions?: Extensions;
490
- readonly naming?: NamingConfig;
491
- readonly storageHash?: string;
492
- readonly foreignKeyDefaults?: ForeignKeyDefaultsState;
493
- readonly defaultControlPolicy?: ControlPolicy;
494
- /**
495
- * Declared namespace coordinates the contract recognises. Per-model
496
- * `namespace` references must reference an entry in this list (or the
497
- * Postgres-specific late-binding keyword `unbound`). Reserved values:
498
- *
499
- * - `__unbound__` — IR sentinel for the late-binding slot.
500
- * - `__unspecified__` — parser-synthesised AST bucket for top-level
501
- * declarations (not a real namespace).
502
- * - `unbound` — Postgres-specific reserved keyword (the PSL surface
503
- * uses `namespace unbound { … }` to opt into late binding).
504
- *
505
- * SQLite contracts must declare an empty list (or omit the field) —
506
- * SQLite has no schema concept and emits unqualified DDL.
507
- *
508
- * Populates `SqlStorage.namespaces` together with the
509
- * {@link ContractInput.createNamespace} factory: each declared name
510
- * (plus the framework-reserved `UNBOUND_NAMESPACE_ID` sentinel) is
511
- * resolved through `createNamespace` and stored as the matching slot
512
- * value. Models reference declared namespaces via their per-model
513
- * `namespace` coordinate; entries that go unreferenced still occupy a
514
- * slot so contracts that pre-declare schemas surface them on the live
515
- * storage walk.
516
- */
517
- readonly namespaces?: readonly string[];
518
- /**
519
- * Target-supplied factory that materialises a `SqlNamespaceBase` concretion
520
- * for a declared namespace coordinate. The SQL family layer is
521
- * target-agnostic and cannot import concretions like
522
- * `PostgresSchema` or `SqliteUnboundDatabase`; the factory is the
523
- * seam by which target packs hand the family the right runtime
524
- * representation.
525
- *
526
- * Called once per distinct namespace id discovered in the contract:
527
- * each entry of {@link ContractInput.namespaces}, every
528
- * `StorageTable.namespaceId` referenced by a model, and the
529
- * framework `UNBOUND_NAMESPACE_ID` sentinel (always present so the
530
- * late-bound slot stays available regardless of authoring choices).
531
- */
532
- readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;
533
- readonly types?: Types;
534
- readonly models?: Models;
535
- readonly codecLookup?: CodecLookup;
536
- /**
537
- * Domain enum handles authored via `enumType()`. Each handle lowers to a
538
- * domain `enum` entry and a storage `valueSet` entry in the target's
539
- * default namespace. Fields reference the enum via `field.namedType(handle)`.
540
- */
541
- readonly enums?: Record<string, EnumTypeHandle>;
542
- /**
543
- * Author-declared pack-entity handles, lowered by the pack that registered
544
- * each handle's `entityKind` (through the SQL-family batch lowering hook)
545
- * into namespace-scoped entry attachments at build time. Generic on
546
- * purpose — neither this type nor the walk names a specific kind; a handle
547
- * whose kind no composed pack registers is a build error. This is the only
548
- * public channel for attaching pack entities.
549
- */
550
- readonly entities?: readonly PackEntityHandle[];
551
- };
552
- declare function model<const ModelName extends string, Fields extends Record<string, ScalarFieldBuilder>, Relations extends Record<string, AnyRelationBuilder> = Record<never, never>>(modelName: ModelName, input: {
553
- readonly fields: Fields;
554
- readonly relations?: Relations;
555
- readonly namespace?: string;
556
- }): ContractModelBuilder<ModelName, Fields, Relations>;
557
- declare function model<Fields extends Record<string, ScalarFieldBuilder>, Relations extends Record<string, AnyRelationBuilder> = Record<never, never>>(input: {
558
- readonly fields: Fields;
559
- readonly relations?: Relations;
560
- readonly namespace?: string;
561
- }): ContractModelBuilder<undefined, Fields, Relations>;
562
- /**
563
- * Factory for building a standalone branded extension model handle.
564
- *
565
- * Use this instead of `new ContractModelBuilder(…)` when constructing handles
566
- * for models that live in a foreign contract space (e.g. a Supabase extension
567
- * model referenced by a user's contract). The `spaceId` brands the returned
568
- * handle so `refs.<field>.spaceId` carries the foreign space identifier.
569
- *
570
- * @param name - The domain model name as declared in the foreign contract
571
- * (e.g. `'AuthUser'`, not a bare table alias like `'User'`).
572
- * @param input.namespace - The namespace within the foreign space (e.g. `'auth'`).
573
- * @param input.fields - Field definitions (use `field.column(…)`).
574
- * @param input.table - The physical table name in the foreign schema.
575
- * @param spaceId - The extension space identifier (e.g. `'supabase'`).
576
- */
577
- declare function extensionModel<const ModelName extends string, Fields extends Record<string, ScalarFieldBuilder>, const TSpaceId extends string>(name: ModelName, input: {
578
- readonly namespace: string;
579
- readonly fields: Fields;
580
- readonly table: string;
581
- }, spaceId: TSpaceId): ContractModelBuilder<ModelName, Fields, Record<never, never>, undefined, undefined, Record<never, never>, TSpaceId>;
582
- declare function belongsTo<Token extends AnyNamedModelToken, FromField extends string | readonly string[], ToField extends RelationFieldSelection<RelationModelFieldNames<Token>>>(toModel: Token | LazyNamedModelToken<Token>, options: {
583
- readonly from: FromField;
584
- readonly to: ToField;
585
- }): RelationBuilder<BelongsToRelation<RelationModelName<Token>, FromField, ToField>>;
586
- declare function belongsTo<ToModel extends string, FromField extends string | readonly string[], ToField extends string | readonly string[]>(toModel: ToModel, options: {
587
- readonly from: FromField;
588
- readonly to: ToField;
589
- }): RelationBuilder<BelongsToRelation<ToModel, FromField, ToField>>;
590
- declare function hasMany<Token extends AnyNamedModelToken, ByField extends RelationFieldSelection<RelationModelFieldNames<Token>>>(toModel: Token | LazyNamedModelToken<Token>, options: {
591
- readonly by: ByField;
592
- }): RelationBuilder<HasManyRelation<RelationModelName<Token>, ByField>>;
593
- declare function hasMany<ToModel extends string, ByField extends string | readonly string[]>(toModel: ToModel, options: {
594
- readonly by: ByField;
595
- }): RelationBuilder<HasManyRelation<ToModel, ByField>>;
596
- declare function hasOne<Token extends AnyNamedModelToken, ByField extends RelationFieldSelection<RelationModelFieldNames<Token>>>(toModel: Token | LazyNamedModelToken<Token>, options: {
597
- readonly by: ByField;
598
- }): RelationBuilder<HasOneRelation<RelationModelName<Token>, ByField>>;
599
- declare function hasOne<ToModel extends string, ByField extends string | readonly string[]>(toModel: ToModel, options: {
600
- readonly by: ByField;
601
- }): RelationBuilder<HasOneRelation<ToModel, ByField>>;
602
- declare function manyToMany<ToToken extends AnyNamedModelToken, ThroughToken extends AnyNamedModelToken, FromField extends RelationFieldSelection<RelationModelFieldNames<ThroughToken>>, ToField extends RelationFieldSelection<RelationModelFieldNames<ThroughToken>>>(toModel: ToToken | LazyNamedModelToken<ToToken>, options: {
603
- readonly through: ThroughToken | LazyNamedModelToken<ThroughToken>;
604
- readonly from: FromField;
605
- readonly to: ToField;
606
- }): RelationBuilder<ManyToManyRelation<RelationModelName<ToToken>, RelationModelName<ThroughToken>, FromField, ToField>>;
607
- declare function manyToMany<ToModel extends string, ThroughModel extends string, FromField extends string | readonly string[], ToField extends string | readonly string[]>(toModel: ToModel, options: {
608
- readonly through: ThroughModel;
609
- readonly from: FromField;
610
- readonly to: ToField;
611
- }): RelationBuilder<ManyToManyRelation<ToModel, ThroughModel, FromField, ToField>>;
612
- declare const rel: {
613
- belongsTo: typeof belongsTo;
614
- hasMany: typeof hasMany;
615
- hasOne: typeof hasOne;
616
- manyToMany: typeof manyToMany;
617
- };
618
- declare const field: {
619
- column: typeof columnField;
620
- generated: typeof generatedField;
621
- namedType: typeof namedTypeField;
622
- };
623
- type FieldStateOf<T> = T extends ScalarFieldBuilder<infer State> ? State : never;
624
- type IdFieldNames<T> = T extends IdConstraint<infer FieldNames> ? FieldNames : readonly string[];
625
- type AttributeStageIdFieldNames<T> = T extends {
626
- readonly id?: infer I;
627
- } ? I extends IdConstraint ? IdFieldNames<I> : undefined : undefined;
628
- //#endregion
629
- //#region src/authoring-type-utils.d.ts
630
- type UnionToIntersection<U> = (U extends unknown ? (value: U) => void : never) extends ((value: infer I) => void) ? I : never;
631
- type NamedConstraintSpec<Name extends string | undefined = string | undefined> = {
632
- readonly name?: Name;
633
- };
634
- type NamedConstraintState<Enabled extends boolean, Name extends string | undefined = undefined> = Enabled extends true ? NamedConstraintSpec<Name> : undefined;
635
- type OptionalObjectArgumentKeys<Properties extends Record<string, AuthoringArgumentDescriptor>> = { readonly [K in keyof Properties]: Properties[K] extends {
636
- readonly optional: true;
637
- } ? K : never; }[keyof Properties];
638
- type RequiredObjectArgumentKeys<Properties extends Record<string, AuthoringArgumentDescriptor>> = Exclude<keyof Properties, OptionalObjectArgumentKeys<Properties>>;
639
- /**
640
- * When every property is optional the result must be a plain weak type rather
641
- * than `{} & { … }`: TypeScript's weak-type check rejects an object sharing
642
- * none of the target's properties, but only when the target is weak — and an
643
- * intersection with `{}` is not. The TS authoring surface runs no runtime
644
- * argument validation, so this check is the only thing rejecting a foreign key
645
- * such as `field.nanoid({ bogus: 1 })`.
646
- */
647
- type ObjectArgumentType<Properties extends Record<string, AuthoringArgumentDescriptor>> = [RequiredObjectArgumentKeys<Properties>] extends [never] ? { readonly [K in OptionalObjectArgumentKeys<Properties>]?: ArgTypeFromDescriptor<Properties[K]>; } : { readonly [K in RequiredObjectArgumentKeys<Properties>]: ArgTypeFromDescriptor<Properties[K]>; } & { readonly [K in OptionalObjectArgumentKeys<Properties>]?: ArgTypeFromDescriptor<Properties[K]>; };
648
- type ArgTypeFromDescriptor<Arg extends AuthoringArgumentDescriptor> = Arg extends {
649
- readonly kind: 'string';
650
- } ? string : Arg extends {
651
- readonly kind: 'boolean';
652
- } ? boolean : Arg extends {
653
- readonly kind: 'number';
654
- } ? number : Arg extends {
655
- readonly kind: 'stringArray';
656
- } ? readonly string[] : Arg extends {
657
- readonly kind: 'option';
658
- readonly values: infer Values extends readonly string[];
659
- } ? Values[number] : Arg extends {
660
- readonly kind: 'object';
661
- readonly properties: infer Properties extends Record<string, AuthoringArgumentDescriptor>;
662
- } ? ObjectArgumentType<Properties> : never;
663
- /**
664
- * Recursive rewrite (not a mapped tuple type) so a descriptor marked
665
- * `optional: true` gets an optional tuple slot (`Type?`), letting callers
666
- * omit it and every optional arg after it. Required args must precede
667
- * optional args in a descriptor's `args` list — TypeScript rejects an
668
- * optional tuple element followed by a required one, and the runtime
669
- * (`validateAuthoringHelperArguments`'s `minimumArgs`) already treats an
670
- * optional-before-required arg as effectively required.
671
- */
672
- type TupleFromArgumentDescriptors<Args extends readonly AuthoringArgumentDescriptor[]> = Args extends readonly [infer Head extends AuthoringArgumentDescriptor, ...infer Tail extends readonly AuthoringArgumentDescriptor[]] ? Head extends {
673
- readonly optional: true;
674
- } ? readonly [ArgTypeFromDescriptor<Head>?, ...TupleFromArgumentDescriptors<Tail>] : readonly [ArgTypeFromDescriptor<Head>, ...TupleFromArgumentDescriptors<Tail>] : readonly [];
675
- type SupportsNamedConstraintOptions<Descriptor extends AuthoringFieldPresetDescriptor> = Descriptor['output'] extends {
676
- readonly id: true;
677
- } ? true : Descriptor['output'] extends {
678
- readonly unique: true;
679
- } ? true : false;
680
- type ResolveTemplateValue<Template, Args extends readonly unknown[]> = Template extends {
681
- readonly kind: 'arg';
682
- readonly index: infer Index extends number;
683
- readonly path?: infer Path extends readonly string[] | undefined;
684
- readonly default?: infer Default;
685
- } ? ResolveTemplateArgValue<Args[Index], Path, Default, Args> : Template extends readonly unknown[] ? { readonly [K in keyof Template]: ResolveTemplateValue<Template[K], Args>; } : Template extends Record<string, unknown> ? { readonly [K in keyof Template]: ResolveTemplateValue<Template[K], Args>; } : Template;
686
- type ResolveTemplatePathValue<Value, Path extends readonly string[] | undefined> = Path extends readonly [infer Segment extends string, ...infer Rest extends readonly string[]] ? Segment extends keyof NonNullable<Value> ? ResolveTemplatePathValue<NonNullable<Value>[Segment], Rest> : never : Value;
687
- type ResolveTemplateDefaultValue<Value, Default, Args extends readonly unknown[]> = Default extends undefined ? Value : [Value] extends [never] ? ResolveTemplateValue<Default, Args> : undefined extends Value ? Exclude<Value, undefined> | ResolveTemplateValue<Default, Args> : Value;
688
- type ResolveTemplateArgValue<Value, Path extends readonly string[] | undefined, Default, Args extends readonly unknown[]> = ResolveTemplateDefaultValue<ResolveTemplatePathValue<Value, Path>, Default, Args>;
689
- type FieldBuilderFromPresetDescriptor<Descriptor extends AuthoringFieldPresetDescriptor, Args extends readonly unknown[] = readonly [], ConstraintName extends string | undefined = undefined> = ScalarFieldBuilder<ScalarFieldState<ColumnTypeDescriptor<ResolveTemplateValue<Descriptor['output']['codecId'], Args> extends string ? ResolveTemplateValue<Descriptor['output']['codecId'], Args> : string>, undefined, ResolveTemplateValue<Descriptor['output']['nullable'], Args> extends true ? true : false, undefined, NamedConstraintState<ResolveTemplateValue<Descriptor['output']['id'], Args> extends true ? true : false, ConstraintName>, NamedConstraintState<ResolveTemplateValue<Descriptor['output']['unique'], Args> extends true ? true : false, ConstraintName>>>;
690
- type FieldHelperFunctionWithoutNamedConstraint<Descriptor extends AuthoringFieldPresetDescriptor> = Descriptor extends {
691
- readonly args: infer Args extends readonly AuthoringArgumentDescriptor[];
692
- } ? <const Params extends TupleFromArgumentDescriptors<Args>>(...args: Params) => FieldBuilderFromPresetDescriptor<Descriptor, Params> : () => FieldBuilderFromPresetDescriptor<Descriptor, readonly []>;
693
- /**
694
- * An intersection of two call signatures rather than one rest-tuple signature
695
- * with a trailing `options?`. Once optional descriptors yield optional tuple
696
- * slots, `Params` can infer as the empty tuple, and a single-argument call
697
- * such as `field.id.nanoid({ size: 16 })` would bind its preset argument to
698
- * the trailing optional `options` parameter. Resolving the no-options
699
- * signature first, and falling through to the options-required signature only
700
- * when the argument list cannot satisfy it, keeps both spellings working.
701
- */
702
- type FieldHelperFunctionWithNamedConstraint<Descriptor extends AuthoringFieldPresetDescriptor> = Descriptor extends {
703
- readonly args: infer Args extends readonly AuthoringArgumentDescriptor[];
704
- } ? (<const Params extends TupleFromArgumentDescriptors<Args>>(...args: Params) => FieldBuilderFromPresetDescriptor<Descriptor, Params>) & (<const Params extends TupleFromArgumentDescriptors<Args>, const Name extends string | undefined = undefined>(...args: [...params: Params, options: NamedConstraintSpec<Name>]) => FieldBuilderFromPresetDescriptor<Descriptor, Params, Name>) : <const Name extends string | undefined = undefined>(options?: NamedConstraintSpec<Name>) => FieldBuilderFromPresetDescriptor<Descriptor, readonly [], Name>;
705
- type FieldHelperFunction<Descriptor extends AuthoringFieldPresetDescriptor> = SupportsNamedConstraintOptions<Descriptor> extends true ? FieldHelperFunctionWithNamedConstraint<Descriptor> : FieldHelperFunctionWithoutNamedConstraint<Descriptor>;
706
- type FieldHelpersFromNamespace<Namespace> = { readonly [K in keyof Namespace]: Namespace[K] extends AuthoringFieldPresetDescriptor ? FieldHelperFunction<Namespace[K]> : Namespace[K] extends Record<string, unknown> ? FieldHelpersFromNamespace<Namespace[K]> : never; };
707
- //#endregion
708
- //#region src/contract-types.d.ts
709
- type PublicCodecTypes<CodecTypes extends Record<string, {
710
- readonly output: unknown;
711
- }>> = { readonly [CodecId in keyof CodecTypes]: Pick<CodecTypes[CodecId], Extract<keyof CodecTypes[CodecId], 'input' | 'output' | 'traits'>>; };
712
- type ExtractCodecTypesFromPack<P> = P extends {
713
- __codecTypes?: infer C extends Record<string, {
714
- readonly output: unknown;
715
- }>;
716
- } ? PublicCodecTypes<C> : Record<string, never>;
717
- type MergeExtensionCodecTypes<Packs extends Record<string, unknown>> = UnionToIntersection<{ [K in keyof Packs]: ExtractCodecTypesFromPack<Packs[K]>; }[keyof Packs]>;
718
- type MergeExtensionCodecTypesSafe<Packs> = Packs extends Record<string, unknown> ? keyof Packs extends never ? Record<string, never> : MergeExtensionCodecTypes<Packs> : Record<string, never>;
719
- type ExtractIndexTypesFromPack<P> = P extends {
720
- readonly indexTypes: IndexTypeRegistration<infer M>;
721
- } ? M : Record<never, never>;
722
- type AllIndexTypeLiterals<Packs> = Packs extends Record<string, unknown> ? { [K in keyof Packs]: keyof ExtractIndexTypesFromPack<Packs[K]>; }[keyof Packs] & string : never;
723
- type MergeExtensionIndexTypes<Packs extends Record<string, unknown>> = { readonly [Lit in AllIndexTypeLiterals<Packs>]: Extract<{ [K in keyof Packs]: Lit extends keyof ExtractIndexTypesFromPack<Packs[K]> ? ExtractIndexTypesFromPack<Packs[K]>[Lit] : never; }[keyof Packs], {
724
- readonly options: unknown;
725
- }>; };
726
- type DefinitionExtensions<Definition> = Definition extends {
727
- readonly extensions?: infer Packs extends Record<string, ExtensionPackRef<'sql', string>>;
728
- } ? Packs : Record<never, never>;
729
- type ExtractPackCapabilities<P> = P extends {
730
- readonly capabilities?: infer Caps extends Record<string, Record<string, boolean>>;
731
- } ? Caps : never;
732
- type MergeExtensionPackCapabilities<Packs> = Packs extends Record<string, unknown> ? keyof Packs extends never ? Record<string, never> : UnionToIntersection<{ [K in keyof Packs]: ExtractPackCapabilities<Packs[K]>; }[keyof Packs]> : Record<string, never>;
733
- type Defaulted<T, Fallback> = [T] extends [never] ? Fallback : T;
734
- type DerivedCapabilities<Definition> = Defaulted<ExtractPackCapabilities<DefinitionTarget<Definition>>, Record<string, never>> & MergeExtensionPackCapabilities<DefinitionExtensions<Definition>>;
735
- type DefinitionTargetId<Definition> = Definition extends {
736
- readonly target: TargetPackRef<'sql', infer Target>;
737
- } ? Target : never;
738
- type Present<T> = Exclude<T, undefined>;
739
- type CodecTypesFromDefinition<Definition> = ExtractCodecTypesFromPack<Definition extends {
740
- readonly target: infer Target;
741
- } ? Target : never> & MergeExtensionCodecTypesSafe<DefinitionExtensions<Definition>>;
742
- type DefinitionTarget<Definition> = Definition extends {
743
- readonly target: infer Target;
744
- } ? Target : never;
745
- type DefinitionModels<Definition> = Definition extends {
746
- readonly models?: unknown;
747
- } ? Present<Definition['models']> extends Record<string, unknown> ? Present<Definition['models']> : Record<never, never> : Record<never, never>;
748
- type DefinitionNamespaces<Definition> = Definition extends {
749
- readonly namespaces?: infer Names extends readonly string[];
750
- } ? string[] extends Names ? never : readonly string[] extends Names ? never : Names[number] : never;
751
- type DefinitionTypes<Definition> = Definition extends {
752
- readonly types?: unknown;
753
- } ? Present<Definition['types']> extends Record<string, StorageType> ? Present<Definition['types']> : Record<never, never> : Record<never, never>;
754
- type DefinitionTableNaming<Definition> = Definition extends {
755
- readonly naming?: {
756
- readonly tables?: infer Strategy extends string;
757
- };
758
- } ? Strategy : undefined;
759
- type DefinitionColumnNaming<Definition> = Definition extends {
760
- readonly naming?: {
761
- readonly columns?: infer Strategy extends string;
762
- };
763
- } ? Strategy : undefined;
764
- type FirstChar<S extends string> = S extends `${infer First}${string}` ? First : '';
765
- type CharKind<C extends string> = C extends '' ? 'end' : C extends Lowercase<C> ? C extends Uppercase<C> ? 'other' : 'lower' : 'upper';
766
- type ShouldInsertSnakeUnderscore<PrevKind extends 'start' | 'lower' | 'upper' | 'other' | 'end', Current extends string, Next extends string> = CharKind<Current> extends 'upper' ? PrevKind extends 'start' ? false : PrevKind extends 'lower' | 'other' ? true : CharKind<Next> extends 'lower' ? true : false : false;
767
- type SnakeCaseInternal<S extends string, PrevKind extends 'start' | 'lower' | 'upper' | 'other' | 'end' = 'start'> = S extends `${infer Current}${infer Rest}` ? `${ShouldInsertSnakeUnderscore<PrevKind, Current, FirstChar<Rest>> extends true ? '_' : ''}${Lowercase<Current>}${SnakeCaseInternal<Rest, CharKind<Current>>}` : '';
768
- type SnakeCase<S extends string> = string extends S ? string : SnakeCaseInternal<S>;
769
- type ApplyNamingType<Name extends string, Strategy extends string | undefined> = string extends Name ? string : Strategy extends 'snake_case' ? SnakeCase<Name> : Name;
770
- type ModelNames<Definition> = keyof DefinitionModels<Definition> & string;
771
- type ModelFields<Definition, ModelName extends ModelNames<Definition>> = DefinitionModels<Definition>[ModelName] extends {
772
- readonly stageOne: {
773
- readonly fields: Record<string, ScalarFieldBuilder>;
774
- };
775
- } ? DefinitionModels<Definition>[ModelName]['stageOne']['fields'] : Record<never, never>;
776
- type ModelFieldNames<Definition, ModelName extends ModelNames<Definition>> = keyof ModelFields<Definition, ModelName> & string;
777
- type StagedModelRelations<Definition, ModelName extends ModelNames<Definition>> = DefinitionModels<Definition>[ModelName] extends {
778
- readonly stageOne: {
779
- readonly relations: infer R;
780
- };
781
- } ? R extends Record<string, unknown> ? R : Record<never, never> : Record<never, never>;
782
- type StagedModelRelationNames<Definition, ModelName extends ModelNames<Definition>> = keyof StagedModelRelations<Definition, ModelName> & string;
783
- type ModelFieldState<Definition, ModelName extends ModelNames<Definition>, FieldName extends ModelFieldNames<Definition, ModelName>> = FieldStateOf<ModelFields<Definition, ModelName>[FieldName]>;
784
- type ModelSql<Definition, ModelName extends ModelNames<Definition>> = DefinitionModels<Definition>[ModelName] extends {
785
- readonly __sql: infer SqlSpec;
786
- } ? SqlSpec : undefined;
787
- type ModelAttributes<Definition, ModelName extends ModelNames<Definition>> = DefinitionModels<Definition>[ModelName] extends {
788
- readonly __attributes: infer AttributesSpec;
789
- } ? AttributesSpec : undefined;
790
- type FieldDescriptorOf<FieldState> = Present<FieldState extends {
791
- readonly descriptor?: infer Descriptor;
792
- } ? Descriptor : never>;
793
- type FieldTypeRefOf<FieldState> = Present<FieldState extends {
794
- readonly typeRef?: infer TypeRef;
795
- } ? TypeRef : never>;
796
- type FieldNullableOf<FieldState> = FieldState extends {
797
- readonly nullable: infer Nullable extends boolean;
798
- } ? Nullable : boolean;
799
- type FieldManyOf<FieldState> = FieldState extends {
800
- readonly many?: true;
801
- } ? true : false;
802
- type FieldColumnOverrideOf<FieldState> = Present<FieldState extends {
803
- readonly columnName?: infer ColumnName;
804
- } ? ColumnName : never>;
805
- type FieldInlineIdSpecOf<FieldState> = Present<FieldState extends {
806
- readonly id?: infer IdSpec;
807
- } ? IdSpec : never>;
808
- type DescriptorCodecId<Descriptor> = Descriptor extends {
809
- readonly codecId: infer CodecId extends string;
810
- } ? CodecId : string;
811
- type DescriptorNativeType<Descriptor> = Descriptor extends {
812
- readonly nativeType: infer NativeType extends string;
813
- } ? NativeType : string;
814
- type DescriptorTypeParams<Descriptor> = Descriptor extends {
815
- readonly typeParams: infer TypeParams extends Record<string, unknown>;
816
- } ? TypeParams : undefined;
817
- type DescriptorTypeRef<Descriptor> = Descriptor extends {
818
- readonly typeRef: infer TypeRef extends string;
819
- } ? TypeRef : undefined;
820
- type LookupNamedStorageTypeKeyByValue<Definition, TypeRef extends StorageType> = { [TypeName in keyof DefinitionTypes<Definition> & string]: [TypeRef] extends [DefinitionTypes<Definition>[TypeName]] ? [DefinitionTypes<Definition>[TypeName]] extends [TypeRef] ? TypeName : never : never; }[keyof DefinitionTypes<Definition> & string];
821
- type ResolveNamedStorageTypeKey<Definition, TypeRef> = TypeRef extends string ? TypeRef : TypeRef extends StorageType ? [LookupNamedStorageTypeKeyByValue<Definition, TypeRef>] extends [never] ? string : LookupNamedStorageTypeKeyByValue<Definition, TypeRef> : never;
822
- type ResolveNamedStorageType<Definition, TypeRef> = ResolveNamedStorageTypeKey<Definition, TypeRef> extends (infer TypeName extends string) ? TypeName extends keyof DefinitionTypes<Definition> ? DefinitionTypes<Definition>[TypeName] : StorageTypeInstance : StorageTypeInstance;
823
- type EnumFieldHandle<FieldState> = [FieldTypeRefOf<FieldState>] extends [never] ? never : FieldTypeRefOf<FieldState> extends EnumTypeHandle ? FieldTypeRefOf<FieldState> : never;
824
- type EnumHandleDescriptor<Handle> = Handle extends {
825
- readonly codecId: infer CodecId extends string;
826
- readonly nativeType: infer NativeType extends string;
827
- } ? {
828
- readonly codecId: CodecId;
829
- readonly nativeType: NativeType;
830
- } : never;
831
- type ResolveFieldDescriptor<Definition, FieldState> = [EnumFieldHandle<FieldState>] extends [never] ? [FieldDescriptorOf<FieldState>] extends [never] ? ResolveNamedStorageType<Definition, FieldTypeRefOf<FieldState>> : FieldDescriptorOf<FieldState> : EnumHandleDescriptor<EnumFieldHandle<FieldState>>;
832
- type ResolveFieldColumnTypeRef<Definition, FieldState> = [EnumFieldHandle<FieldState>] extends [never] ? [FieldTypeRefOf<FieldState>] extends [never] ? DescriptorTypeRef<FieldDescriptorOf<FieldState>> : ResolveNamedStorageTypeKey<Definition, FieldTypeRefOf<FieldState>> : undefined;
833
- type ResolveFieldColumnTypeParams<Definition, FieldState> = [ResolveFieldColumnTypeRef<Definition, FieldState>] extends [string] ? undefined : DescriptorTypeParams<FieldDescriptorOf<FieldState>>;
834
- type ModelTableName<Definition, ModelName extends ModelNames<Definition>> = [Present<ModelSql<Definition, ModelName> extends {
835
- readonly table?: infer TableName;
836
- } ? TableName : never>] extends [never] ? ApplyNamingType<ModelName, DefinitionTableNaming<Definition>> : Present<ModelSql<Definition, ModelName> extends {
837
- readonly table?: infer TableName;
838
- } ? TableName : never> extends (infer ExplicitTableName extends string) ? ExplicitTableName : ApplyNamingType<ModelName, DefinitionTableNaming<Definition>>;
839
- type ModelColumnName<Definition, ModelName extends ModelNames<Definition>, FieldName extends ModelFieldNames<Definition, ModelName>> = [FieldColumnOverrideOf<ModelFieldState<Definition, ModelName, FieldName>>] extends [never] ? ApplyNamingType<FieldName, DefinitionColumnNaming<Definition>> : FieldColumnOverrideOf<ModelFieldState<Definition, ModelName, FieldName>> extends (infer ExplicitColumnName extends string) ? ExplicitColumnName : ApplyNamingType<FieldName, DefinitionColumnNaming<Definition>>;
840
- type FieldNamesToColumnNames<Definition, ModelName extends ModelNames<Definition>, FieldNames extends readonly string[]> = FieldNames extends readonly [] ? readonly [] : FieldNames extends readonly [infer First extends ModelFieldNames<Definition, ModelName>, ...infer Rest extends readonly string[]] ? readonly [ModelColumnName<Definition, ModelName, First>, ...FieldNamesToColumnNames<Definition, ModelName, Rest>] : readonly string[];
841
- type InlineIdFieldName<Definition, ModelName extends ModelNames<Definition>> = { [FieldName in ModelFieldNames<Definition, ModelName>]: [FieldInlineIdSpecOf<ModelFieldState<Definition, ModelName, FieldName>>] extends [never] ? never : FieldName; }[ModelFieldNames<Definition, ModelName>];
842
- type InlineIdFieldNames<Definition, ModelName extends ModelNames<Definition>> = [InlineIdFieldName<Definition, ModelName>] extends [never] ? undefined : readonly [InlineIdFieldName<Definition, ModelName>];
843
- type InlineIdName<Definition, ModelName extends ModelNames<Definition>> = { [FieldName in ModelFieldNames<Definition, ModelName>]: FieldInlineIdSpecOf<ModelFieldState<Definition, ModelName, FieldName>> extends {
844
- readonly name?: infer Name extends string;
845
- } ? Name : never; }[ModelFieldNames<Definition, ModelName>];
846
- type AttributeIdFieldNames<Definition, ModelName extends ModelNames<Definition>> = AttributeStageIdFieldNames<ModelAttributes<Definition, ModelName>>;
847
- type AttributeIdName<Definition, ModelName extends ModelNames<Definition>> = Present<ModelAttributes<Definition, ModelName> extends {
848
- readonly id?: {
849
- readonly name?: infer Name extends string;
850
- };
851
- } ? Name : never>;
852
- type ModelIdFieldNames<Definition, ModelName extends ModelNames<Definition>> = [AttributeIdFieldNames<Definition, ModelName>] extends [undefined] ? InlineIdFieldNames<Definition, ModelName> : AttributeIdFieldNames<Definition, ModelName>;
853
- type ModelIdName<Definition, ModelName extends ModelNames<Definition>> = [AttributeIdName<Definition, ModelName>] extends [never] ? Present<InlineIdName<Definition, ModelName>> : AttributeIdName<Definition, ModelName>;
854
- type StorageColumn<CodecId extends string, Nullable extends boolean, NativeType extends string, TypeRef extends string | undefined = undefined, TypeParams extends Record<string, unknown> | undefined = undefined, Many extends boolean = false> = {
855
- readonly nativeType: NativeType;
856
- readonly codecId: CodecId;
857
- readonly nullable: Nullable;
858
- readonly default?: ColumnDefault;
859
- } & (TypeRef extends string ? {
860
- readonly typeRef: TypeRef;
861
- } : Record<never, never>) & (TypeParams extends Record<string, unknown> ? {
862
- readonly typeParams: TypeParams;
863
- } : Record<never, never>) & (Many extends true ? {
864
- readonly many: true;
865
- } : Record<never, never>);
866
- type ModelStorageColumn<Definition, ModelName extends ModelNames<Definition>, FieldName extends string> = FieldName extends ModelFieldNames<Definition, ModelName> ? StorageColumn<DescriptorCodecId<ResolveFieldDescriptor<Definition, ModelFieldState<Definition, ModelName, FieldName>>>, FieldNullableOf<ModelFieldState<Definition, ModelName, FieldName>>, DescriptorNativeType<ResolveFieldDescriptor<Definition, ModelFieldState<Definition, ModelName, FieldName>>>, ResolveFieldColumnTypeRef<Definition, ModelFieldState<Definition, ModelName, FieldName>>, ResolveFieldColumnTypeParams<Definition, ModelFieldState<Definition, ModelName, FieldName>>, FieldManyOf<ModelFieldState<Definition, ModelName, FieldName>>> : never;
867
- type BuiltModels<Definition> = { readonly [ModelName in ModelNames<Definition>]: {
868
- readonly storage: {
869
- readonly table: ModelTableName<Definition, ModelName>;
870
- readonly fields: { readonly [FieldName in ModelFieldNames<Definition, ModelName>]: {
871
- readonly column: ModelColumnName<Definition, ModelName, FieldName>;
872
- }; };
873
- };
874
- readonly fields: { readonly [FieldName in ModelFieldNames<Definition, ModelName>]: {
875
- readonly nullable: ModelStorageColumn<Definition, ModelName, FieldName>['nullable'];
876
- readonly type: {
877
- readonly kind: 'scalar';
878
- readonly codecId: ModelStorageColumn<Definition, ModelName, FieldName>['codecId'];
879
- };
880
- }; };
881
- readonly relations: { readonly [RelName in StagedModelRelationNames<Definition, ModelName>]: ContractRelation; };
882
- }; };
883
- type BuiltModelColumnMappings<Definition, ModelName extends ModelNames<Definition>> = BuiltModels<Definition>[ModelName]['storage']['fields'];
884
- type BuiltModelTableName<Definition, ModelName extends ModelNames<Definition>> = BuiltModels<Definition>[ModelName]['storage']['table'];
885
- type BuiltStorageTableColumns<Definition, ModelName extends ModelNames<Definition>> = { readonly [FieldName in keyof BuiltModelColumnMappings<Definition, ModelName> & string as BuiltModelColumnMappings<Definition, ModelName>[FieldName]['column']]: ModelStorageColumn<Definition, ModelName, FieldName>; };
886
- type BuiltStorageTables<Definition> = { readonly [ModelName in ModelNames<Definition> as BuiltModelTableName<Definition, ModelName>]: {
887
- readonly columns: BuiltStorageTableColumns<Definition, ModelName>;
888
- readonly uniques: ReadonlyArray<{
889
- readonly columns: readonly string[];
890
- readonly name?: string;
891
- }>;
892
- readonly indexes: ReadonlyArray<Index$1>;
893
- readonly foreignKeys: ReadonlyArray<{
894
- readonly source: {
895
- readonly namespaceId: NamespaceId;
896
- readonly tableName: string;
897
- readonly columns: readonly string[];
898
- };
899
- readonly target: {
900
- readonly namespaceId: NamespaceId;
901
- readonly spaceId?: string;
902
- readonly tableName: string;
903
- readonly columns: readonly string[];
904
- };
905
- readonly name?: string;
906
- readonly onDelete?: ReferentialAction;
907
- readonly onUpdate?: ReferentialAction;
908
- readonly constraint: boolean;
909
- readonly index: boolean;
910
- }>;
911
- } & (ModelIdFieldNames<Definition, ModelName> extends readonly string[] ? {
912
- readonly primaryKey: {
913
- readonly columns: FieldNamesToColumnNames<Definition, ModelName, ModelIdFieldNames<Definition, ModelName>>;
914
- readonly name?: ModelIdName<Definition, ModelName>;
915
- };
916
- } : Record<string, never>); };
917
- type DefinitionEnums<Definition> = Definition extends {
918
- readonly enums?: infer E;
919
- } ? Present<E> extends Record<string, EnumTypeHandle> ? string extends keyof Present<E> ? Record<never, never> : Present<E> : Record<never, never> : Record<never, never>;
920
- type EnumHandleAccessorType<Handle> = Handle extends EnumTypeHandle<infer _Name, infer Values, infer Names, infer MembersMap> ? {
921
- readonly values: Values;
922
- readonly names: Names;
923
- readonly members: MembersMap;
924
- has(v: Values[number]): boolean;
925
- nameOf(v: Values[number]): string | undefined;
926
- ordinalOf(v: Values[number]): number;
927
- } : never;
928
- type BuiltEnumAccessors<Definition> = { readonly [K in keyof DefinitionEnums<Definition>]: EnumHandleAccessorType<DefinitionEnums<Definition>[K]>; };
929
- type BuiltDocumentScopedTypes<Definition> = { readonly [K in keyof DefinitionTypes<Definition> as DefinitionTypes<Definition>[K] extends StorageTypeInstance ? K : never]: DefinitionTypes<Definition>[K]; };
930
- type BuiltDomain<Definition> = BuiltDocumentScopedTypes<Definition> extends Record<never, never> ? Record<string, never> : {
931
- readonly __unbound__: {
932
- readonly types: BuiltDocumentScopedTypes<Definition>;
933
- };
934
- };
935
- type BuiltDomainNamespace<Definition> = {
936
- readonly models: BuiltModels<Definition>;
937
- readonly valueObjects?: Record<string, ContractValueObject>;
938
- readonly enum?: Record<string, ContractEnum>;
939
- };
940
- type DefaultStorageNamespaceId<Definition> = DefinitionTargetId<Definition> extends 'postgres' ? 'public' : '__unbound__';
941
- type BuiltStorage<Definition> = {
942
- readonly storageHash: StorageHashBase<string>;
943
- readonly types?: BuiltDocumentScopedTypes<Definition>;
944
- readonly namespaces: { readonly [K in DefaultStorageNamespaceId<Definition>]: {
945
- readonly id: K;
946
- readonly kind: string;
947
- readonly entries: {
948
- readonly table: BuiltStorageTables<Definition>;
949
- };
950
- }; } & { readonly [Ns in Exclude<DefinitionNamespaces<Definition>, DefaultStorageNamespaceId<Definition>>]: {
951
- readonly id: Ns;
952
- readonly kind: string;
953
- readonly entries: {
954
- readonly table: Record<never, never>;
955
- };
956
- }; };
957
- };
958
- type StorageColumnManyOf<Col> = Col extends {
959
- readonly many: true;
960
- } ? true : false;
961
- type EnumValueUnion<FieldState> = [FieldTypeRefOf<FieldState>] extends [EnumTypeHandle<string, infer Values>] ? readonly unknown[] extends Values ? never : Values[number] : never;
962
- type DescriptorEntityMembers<Descriptor> = Descriptor extends {
963
- readonly entityRef: {
964
- readonly entity: {
965
- readonly members: infer Members extends readonly string[];
966
- };
967
- };
968
- } ? Members : never;
969
- type DescriptorValueSetUnion<FieldState> = [FieldDescriptorOf<FieldState>] extends [never] ? never : readonly string[] extends DescriptorEntityMembers<FieldDescriptorOf<FieldState>> ? never : DescriptorEntityMembers<FieldDescriptorOf<FieldState>>[number];
970
- type CodecChannelType<Definition, ModelName extends ModelNames<Definition>, FieldName extends ModelFieldNames<Definition, ModelName>, Channel extends 'output' | 'input'> = ModelStorageColumn<Definition, ModelName, FieldName>['codecId'] extends (infer Id extends keyof CodecTypesFromDefinition<Definition>) ? CodecTypesFromDefinition<Definition>[Id] extends { readonly [K in Channel]: infer T; } ? StorageColumnManyOf<ModelStorageColumn<Definition, ModelName, FieldName>> extends true ? ReadonlyArray<T> : T : unknown : unknown;
971
- type FieldValueUnion<FieldState> = [EnumValueUnion<FieldState>] extends [never] ? DescriptorValueSetUnion<FieldState> : EnumValueUnion<FieldState>;
972
- type FieldChannelType<Definition, ModelName extends ModelNames<Definition>, FieldName extends ModelFieldNames<Definition, ModelName>, Channel extends 'output' | 'input'> = ([FieldValueUnion<ModelFieldState<Definition, ModelName, FieldName>>] extends [never] ? CodecChannelType<Definition, ModelName, FieldName, Channel> : StorageColumnManyOf<ModelStorageColumn<Definition, ModelName, FieldName>> extends true ? ReadonlyArray<FieldValueUnion<ModelFieldState<Definition, ModelName, FieldName>>> : FieldValueUnion<ModelFieldState<Definition, ModelName, FieldName>>) | (FieldNullableOf<ModelFieldState<Definition, ModelName, FieldName>> extends true ? null : never);
973
- type FieldChannelTypes<Definition, Channel extends 'output' | 'input'> = { readonly [Ns in DefaultStorageNamespaceId<Definition>]: { readonly [ModelName in ModelNames<Definition>]: { readonly [FieldName in ModelFieldNames<Definition, ModelName>]: FieldChannelType<Definition, ModelName, FieldName, Channel>; }; }; };
974
- type StorageColumnChannelTypes<Definition, Channel extends 'output' | 'input'> = { readonly [Ns in DefaultStorageNamespaceId<Definition>]: { readonly [ModelName in ModelNames<Definition> as BuiltModelTableName<Definition, ModelName>]: { readonly [FieldName in ModelFieldNames<Definition, ModelName> as BuiltModelColumnMappings<Definition, ModelName>[FieldName]['column']]: FieldChannelType<Definition, ModelName, FieldName, Channel>; }; }; };
975
- type SqlContractResult<Definition> = ContractWithTypeMaps<Omit<Contract<BuiltStorage<Definition>>, 'domain'> & {
976
- readonly target: DefinitionTargetId<Definition>;
977
- readonly targetFamily: 'sql';
978
- } & {
979
- readonly domain: {
980
- readonly namespaces: Readonly<Record<string, BuiltDomainNamespace<Definition>>>;
981
- } & BuiltDomain<Definition>;
982
- } & {
983
- readonly extensions: keyof DefinitionExtensions<Definition> extends never ? Record<string, never> : DefinitionExtensions<Definition>;
984
- readonly capabilities: DerivedCapabilities<Definition>;
985
- readonly enumAccessors: BuiltEnumAccessors<Definition>;
986
- }, TypeMaps<CodecTypesFromDefinition<Definition>, Record<string, never>, FieldChannelTypes<Definition, 'output'>, FieldChannelTypes<Definition, 'input'>, StorageColumnChannelTypes<Definition, 'output'>, StorageColumnChannelTypes<Definition, 'input'>>>;
987
- //#endregion
988
- //#region src/composed-authoring-helpers.d.ts
989
- type ExtractTypeNamespaceFromPack<Pack> = ExtractAuthoringNamespaceFromPack<Pack, 'type', Record<never, never>>;
990
- type ExtractFieldNamespaceFromPack<Pack> = ExtractAuthoringNamespaceFromPack<Pack, 'field', Record<never, never>>;
991
- type ExtractEntitiesNamespaceFromPack<Pack> = ExtractAuthoringNamespaceFromPack<Pack, 'entityTypes', Record<never, never>>;
992
- type MergeExtensionTypeNamespaces<Extensions> = MergeExtensionAuthoringNamespaces<Extensions, 'type'>;
993
- type MergeExtensionFieldNamespaces<Extensions> = MergeExtensionAuthoringNamespaces<Extensions, 'field'>;
994
- type MergeExtensionEntityNamespaces<Extensions> = MergeExtensionAuthoringNamespaces<Extensions, 'entityTypes'>;
995
- type StorageTypeFromDescriptor<Descriptor extends AuthoringTypeConstructorDescriptor, Args extends readonly unknown[]> = {
996
- readonly kind: 'codec-instance';
997
- readonly codecId: ResolveTemplateValue<Descriptor['output']['codecId'], Args>;
998
- readonly nativeType: ResolveTemplateValue<Descriptor['output']['nativeType'], Args>;
999
- } & (Descriptor['output'] extends {
1000
- readonly typeParams: infer TypeParams extends Record<string, unknown>;
1001
- } ? {
1002
- readonly typeParams: ResolveTemplateValue<TypeParams, Args>;
1003
- } : {
1004
- readonly typeParams: Record<never, never>;
1005
- });
1006
- type TypeHelperFunction<Descriptor extends AuthoringTypeConstructorDescriptor> = Descriptor extends {
1007
- readonly args: infer Args extends readonly AuthoringArgumentDescriptor[];
1008
- } ? <const Params extends TupleFromArgumentDescriptors<Args>>(...args: Params) => StorageTypeFromDescriptor<Descriptor, Params> : () => StorageTypeFromDescriptor<Descriptor, readonly []>;
1009
- type TypeHelpersFromNamespace<Namespace> = { readonly [K in keyof Namespace]: Namespace[K] extends AuthoringTypeConstructorDescriptor ? TypeHelperFunction<Namespace[K]> : Namespace[K] extends Record<string, unknown> ? TypeHelpersFromNamespace<Namespace[K]> : never; };
1010
- type CoreFieldHelpers = Pick<typeof field, 'column' | 'generated' | 'namedType'>;
1011
- type MergeAllPackIndexTypes<Family, Target, Extensions> = MergeExtensionIndexTypes<{
1012
- readonly __family: Family;
1013
- readonly __target: Target;
1014
- } & (Extensions extends Record<string, unknown> ? Extensions : Record<never, never>)>;
1015
- type PackAwareModel<IndexTypes extends IndexTypeMap> = {
1016
- <const ModelName extends string, Fields extends Record<string, ScalarFieldBuilder>, Relations extends Record<string, AnyRelationBuilder> = Record<never, never>>(modelName: ModelName, input: {
1017
- readonly fields: Fields;
1018
- readonly relations?: Relations;
1019
- readonly namespace?: string;
1020
- }): ContractModelBuilder<ModelName, Fields, Relations, undefined, undefined, IndexTypes>;
1021
- <Fields extends Record<string, ScalarFieldBuilder>, Relations extends Record<string, AnyRelationBuilder> = Record<never, never>>(input: {
1022
- readonly fields: Fields;
1023
- readonly relations?: Relations;
1024
- readonly namespace?: string;
1025
- }): ContractModelBuilder<undefined, Fields, Relations, undefined, undefined, IndexTypes>;
1026
- };
1027
- type ComposedAuthoringHelpers<Family extends FamilyPackRef<string>, Target extends TargetPackRef<'sql', string>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined> = EntityHelpersFromNamespace<ExtractEntitiesNamespaceFromPack<Family> & ExtractEntitiesNamespaceFromPack<Target> & MergeExtensionEntityNamespaces<Extensions>> & {
1028
- readonly field: CoreFieldHelpers & FieldHelpersFromNamespace<ExtractFieldNamespaceFromPack<Family> & ExtractFieldNamespaceFromPack<Target> & MergeExtensionFieldNamespaces<Extensions>>;
1029
- readonly model: PackAwareModel<MergeAllPackIndexTypes<Family, Target, Extensions>>;
1030
- readonly rel: typeof rel;
1031
- readonly type: TypeHelpersFromNamespace<ExtractTypeNamespaceFromPack<Family> & ExtractTypeNamespaceFromPack<Target> & MergeExtensionTypeNamespaces<Extensions>>;
1032
- };
1033
- //#endregion
1034
- //#region src/contract-definition.d.ts
1035
- /**
1036
- * Namespace-scoped pack-entity attachments, the internal build IR carrying
1037
- * the lowered `entities` handle list: namespace id → entity kind (the
1038
- * discriminator the target/extension pack registered its
1039
- * `AuthoringContributions.entityTypes` descriptor under, e.g. `native_enum`)
1040
- * → entity name → the lowered entity instance. Generic on purpose — neither
1041
- * the framework nor `contract-ts` names a specific entity kind here; the
1042
- * shape mirrors `SqlNamespaceInput.entries` (`entries.<kind>[name]`), just
1043
- * namespace-nested so an attachment can target any declared namespace
1044
- * (default or named), not only the contract's default namespace. Produced by
1045
- * the generic entity-handle walk in `buildContractDefinition`; never an
1046
- * author-facing input.
1047
- */
1048
- type AttachedEntities = Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
1049
- interface FieldNode {
1050
- readonly fieldName: string;
1051
- readonly columnName: string;
1052
- readonly descriptor: ColumnTypeDescriptor;
1053
- readonly nullable: boolean;
1054
- readonly default?: ColumnDefault;
1055
- readonly executionDefaults?: ExecutionMutationDefaultPhases;
1056
- readonly many?: boolean;
1057
- /**
1058
- * Generated-check kinds the author declined for this column. The PSL
1059
- * interpreter always writes concrete kinds; the TS builder's bare
1060
- * `noCheck()` arrives as `[]` and is resolved to the column shape's
1061
- * derivable kinds at contract build time.
1062
- */
1063
- readonly noCheck?: readonly CheckKind[];
1064
- /** Present when the field was authored with `field.namedType(enumHandle)`. */
1065
- readonly enumTypeHandle?: EnumTypeHandle;
1066
- }
1067
- interface PrimaryKeyNode {
1068
- readonly columns: readonly string[];
1069
- readonly name?: string;
1070
- }
1071
- interface UniqueConstraintNode {
1072
- readonly columns: readonly string[];
1073
- readonly name?: string;
1074
- }
1075
- /** A definition-tree index's element structure — column tuple xor expression. */
1076
- type IndexNodeElements = {
1077
- /** Column tuple. */
1078
- readonly columns: readonly string[];
1079
- readonly expression?: never;
1080
- } | {
1081
- readonly columns?: never;
1082
- /** Opaque SQL: the entire element list of CREATE INDEX — never parsed. */
1083
- readonly expression: string;
1084
- };
1085
- type IndexNode = IndexNodeElements & AuthoredIndexMethod & {
1086
- /** Opaque SQL: partial-index predicate (WHERE body, without the keyword). */
1087
- readonly where: string | undefined;
1088
- readonly unique: boolean | undefined;
1089
- /** Exact physical name (`map:`) — adopted verbatim, no wire hash. */
1090
- readonly map: string | undefined;
1091
- /** Wire-name prefix (`name:`) — lowers to `<name>_<8hex>`. */
1092
- readonly name: string | undefined;
1093
- };
1094
- /**
1095
- * A definition-tree check constraint: `map` adopts an exact physical name
1096
- * verbatim, `name` is a wire-name prefix — exactly one is required (a check
1097
- * has no column tuple to derive a default from, unlike an index).
1098
- */
1099
- type CheckNode = {
1100
- readonly expression: string;
1101
- readonly map: string | undefined;
1102
- readonly name: string | undefined;
1103
- };
1104
- interface ForeignKeyNode {
1105
- readonly columns: readonly string[];
1106
- readonly references: {
1107
- readonly model: string;
1108
- readonly table: string;
1109
- readonly columns: readonly string[];
1110
- /**
1111
- * Namespace coordinate of the referenced table. When omitted the
1112
- * assembler resolves the coordinate from the referenced model node's
1113
- * own `namespaceId`; the field exists so authoring paths that already
1114
- * know the target namespace can stamp it explicitly.
1115
- */
1116
- readonly namespaceId?: string;
1117
- /**
1118
- * Contract-space identity of the referenced table. When present, the
1119
- * table lives in a different contract space (identified by this value)
1120
- * rather than the current contract. Absent for local FKs.
1121
- */
1122
- readonly spaceId?: string;
1123
- };
1124
- readonly name?: string;
1125
- readonly onDelete?: ReferentialAction;
1126
- readonly onUpdate?: ReferentialAction;
1127
- readonly constraint?: boolean;
1128
- readonly index?: boolean;
1129
- }
1130
- interface RelationNode {
1131
- readonly fieldName: string;
1132
- readonly toModel: string;
1133
- readonly toTable: string;
1134
- /**
1135
- * Namespace coordinate of the related model. When omitted the assembler
1136
- * resolves the coordinate from the referenced model node's own
1137
- * `namespaceId`; the field exists so authoring paths that already know the
1138
- * target namespace can stamp it explicitly — required to disambiguate a
1139
- * relation to a model whose bare name also exists in another namespace.
1140
- */
1141
- readonly toNamespaceId?: string;
1142
- readonly cardinality: '1:1' | '1:N' | 'N:1' | 'N:M';
1143
- /**
1144
- * Contract-space identity of the related model. When present, the
1145
- * related model lives in a different contract space. Absent for local
1146
- * (same-space) relations.
1147
- */
1148
- readonly spaceId?: string;
1149
- /**
1150
- * Namespace coordinate of the related model in the foreign space.
1151
- * Only set when `spaceId` is present.
1152
- */
1153
- readonly namespaceId?: string;
1154
- readonly on: {
1155
- readonly parentTable: string;
1156
- readonly parentColumns: readonly string[];
1157
- readonly childTable: string;
1158
- readonly childColumns: readonly string[];
1159
- };
1160
- readonly through?: {
1161
- readonly table: string;
1162
- /**
1163
- * Namespace the junction table lives in. Set from the junction model's
1164
- * declared namespace at lowering time; junction table names are unique per
1165
- * namespace, not globally, so this disambiguates a junction whose bare table
1166
- * name also exists in another namespace. Omitted for a junction in the
1167
- * default namespace (resolved to the target's default at build time).
1168
- */
1169
- readonly namespaceId?: string;
1170
- readonly parentColumns: readonly string[];
1171
- readonly childColumns: readonly string[];
1172
- };
1173
- }
1174
- interface ValueObjectFieldNode {
1175
- readonly fieldName: string;
1176
- readonly columnName: string;
1177
- readonly valueObjectName: string;
1178
- readonly nullable: boolean;
1179
- readonly default?: ColumnDefault;
1180
- readonly executionDefaults?: ExecutionMutationDefaultPhases;
1181
- readonly many?: boolean;
1182
- }
1183
- interface ValueObjectNode {
1184
- readonly name: string;
1185
- readonly fields: readonly (FieldNode | ValueObjectFieldNode)[];
1186
- }
1187
- interface ModelNode {
1188
- readonly modelName: string;
1189
- readonly tableName: string;
1190
- /**
1191
- * Resolved namespace coordinate for this model — the key into the
1192
- * parent contract's `SqlStorage.namespaces` map. Omitting the field
1193
- * (or setting it to the framework's `UNBOUND_NAMESPACE_ID` sentinel)
1194
- * selects the late-bound slot, which renders as unqualified DDL.
1195
- *
1196
- * Populated by per-target PSL interpreters from the resolved
1197
- * `namespace { … }` AST bucket; the TS builder also sets it from the
1198
- * per-model `namespace` field once that authoring surface lands.
1199
- */
1200
- readonly namespaceId?: string;
1201
- readonly fields: readonly (FieldNode | ValueObjectFieldNode)[];
1202
- readonly id?: PrimaryKeyNode;
1203
- readonly uniques?: readonly UniqueConstraintNode[];
1204
- readonly indexes?: readonly IndexNode[];
1205
- readonly checks?: readonly CheckNode[];
1206
- readonly foreignKeys?: readonly ForeignKeyNode[];
1207
- readonly relations?: readonly RelationNode[];
1208
- readonly control?: ControlPolicy;
1209
- /**
1210
- * Single-table-inheritance variants share their base model's storage table:
1211
- * the variant's columns are materialised onto the base `ModelNode`, and this
1212
- * model contributes a domain model but no storage table of its own. When set,
1213
- * the assembler builds the domain model but skips creating a (shadow) storage
1214
- * table and a root for this model — the base owns both.
1215
- */
1216
- readonly sharesBaseTable?: boolean;
1217
- }
1218
- interface ContractDefinition {
1219
- readonly target: TargetPackRef<'sql', string>;
1220
- readonly defaultControlPolicy?: ControlPolicy;
1221
- readonly extensions?: Record<string, ExtensionPackRef<'sql', string>>;
1222
- readonly storageHash?: string;
1223
- readonly foreignKeyDefaults?: ForeignKeyDefaultsState;
1224
- readonly storageTypes?: Record<string, StorageTypeInstance>;
1225
- /**
1226
- * Declared namespace coordinates for this contract — populates
1227
- * `SqlStorage.namespaces` together with `createNamespace`.
1228
- */
1229
- readonly namespaces?: readonly string[];
1230
- /**
1231
- * Authoring warnings collected by the definition producer before the
1232
- * build runs (the PSL interpreter's entity factories run ahead of
1233
- * `buildSqlContractFromDefinition`); seeds the build's single per-build
1234
- * flush. Required key: a producer with nothing collected states
1235
- * `undefined` explicitly.
1236
- */
1237
- readonly warnings: readonly AuthoringWarning[] | undefined;
1238
- /** Target-supplied factory that materialises a `SqlNamespaceBase` concretion for a declared namespace coordinate. */
1239
- readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;
1240
- readonly models: readonly ModelNode[];
1241
- readonly valueObjects?: readonly ValueObjectNode[];
1242
- /**
1243
- * Domain enum handles authored via `enumType()`. Each entry lowers to a
1244
- * domain `enum` entry and a storage `valueSet` entry in the contract's
1245
- * default namespace.
1246
- */
1247
- readonly enums?: Record<string, EnumTypeHandle>;
1248
- /**
1249
- * Pack-entity attachments lowered from the `entities` handle list, keyed by
1250
- * namespace then entity kind then name. Each entity lands in
1251
- * `storage.namespaces[ns].entries.<kind>`; when the registered entity-type
1252
- * descriptor's factory output implements the
1253
- * `SqlValueSetDerivingEntityTypeOutput.deriveValueSet` hook, the derived
1254
- * value-set also folds into `entries.valueSet`, mirroring how `enums` flows
1255
- * there. Internal build IR — populated by `buildContractDefinition`, not an
1256
- * author input.
1257
- */
1258
- readonly attachedEntities?: AttachedEntities;
1259
- }
1260
- //#endregion
1261
- //#region src/build-contract.d.ts
1262
- declare function buildSqlContractFromDefinition(definition: ContractDefinition, codecLookup?: CodecLookup): Contract<SqlStorage>;
1263
- //#endregion
1264
- //#region src/contract-builder.d.ts
1265
- type ModelLike = {
1266
- readonly stageOne: {
1267
- readonly modelName?: string;
1268
- readonly namespace?: string;
1269
- readonly fields: Record<string, ScalarFieldBuilder>;
1270
- readonly relations: Record<string, RelationBuilder<RelationState>>;
1271
- };
1272
- readonly __attributes: ModelAttributesSpec | undefined;
1273
- readonly __sql: SqlStageSpec | undefined;
1274
- buildAttributesSpec(): ModelAttributesSpec | undefined;
1275
- buildSqlSpec(): SqlStageSpec | undefined;
1276
- };
1277
- type ContractDefinition$1<Family extends FamilyPackRef<string>, Target extends TargetPackRef<'sql', string>, Types extends Record<string, StorageTypeInstance>, Models extends Record<string, ModelLike>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined, Naming extends ContractInput['naming'] | undefined, StorageHash extends string | undefined, ForeignKeyDefaults extends ForeignKeyDefaultsState | undefined, Namespaces extends readonly string[] | undefined = undefined, Enums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>> = {
1278
- readonly family: Family;
1279
- readonly target: Target;
1280
- readonly extensions?: Extensions;
1281
- readonly naming?: Naming;
1282
- readonly storageHash?: StorageHash;
1283
- readonly foreignKeyDefaults?: ForeignKeyDefaults;
1284
- readonly defaultControlPolicy?: ControlPolicy;
1285
- readonly namespaces?: Namespaces;
1286
- readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;
1287
- readonly types?: Types;
1288
- readonly models?: Models;
1289
- readonly codecLookup?: CodecLookup;
1290
- readonly enums?: Enums;
1291
- readonly entities?: readonly PackEntityHandle[];
1292
- };
1293
- type ContractScaffold<Family extends FamilyPackRef<string>, Target extends TargetPackRef<'sql', string>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined, Naming extends ContractInput['naming'] | undefined, StorageHash extends string | undefined, ForeignKeyDefaults extends ForeignKeyDefaultsState | undefined, Namespaces extends readonly string[] | undefined = undefined, Enums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>> = {
1294
- readonly family: Family;
1295
- readonly target: Target;
1296
- readonly extensions?: Extensions;
1297
- readonly naming?: Naming;
1298
- readonly storageHash?: StorageHash;
1299
- readonly foreignKeyDefaults?: ForeignKeyDefaults;
1300
- readonly defaultControlPolicy?: ControlPolicy;
1301
- readonly namespaces?: Namespaces;
1302
- readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;
1303
- readonly types?: never;
1304
- readonly models?: never;
1305
- readonly codecLookup?: CodecLookup;
1306
- readonly enums?: Enums;
1307
- readonly entities?: readonly PackEntityHandle[];
1308
- };
1309
- type ContractFactory<Family extends FamilyPackRef<string>, Target extends TargetPackRef<'sql', string>, Types extends Record<string, StorageTypeInstance>, Models extends Record<string, ModelLike>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined, Enums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>> = (helpers: ComposedAuthoringHelpers<Family, Target, Extensions>) => {
1310
- readonly types?: Types;
1311
- readonly models?: Models;
1312
- readonly enums?: Enums;
1313
- readonly entities?: readonly PackEntityHandle[];
1314
- };
1315
- type BoundDefinitionInput<Types extends Record<string, StorageTypeInstance> = Record<never, never>, Models extends Record<string, ModelLike> = Record<never, never>, Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined = undefined, Naming extends ContractInput['naming'] | undefined = undefined, StorageHash extends string | undefined = undefined, ForeignKeyDefaults extends ForeignKeyDefaultsState | undefined = undefined, Namespaces extends readonly string[] | undefined = undefined> = {
1316
- readonly extensions?: Extensions;
1317
- readonly naming?: Naming;
1318
- readonly storageHash?: StorageHash;
1319
- readonly foreignKeyDefaults?: ForeignKeyDefaults;
1320
- readonly defaultControlPolicy?: ControlPolicy;
1321
- readonly namespaces?: Namespaces;
1322
- readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;
1323
- readonly types?: Types;
1324
- readonly models?: Models;
1325
- readonly codecLookup?: CodecLookup;
1326
- readonly enums?: Record<string, EnumTypeHandle>;
1327
- readonly entities?: readonly PackEntityHandle[];
1328
- };
1329
- type LiteralEnums<E extends Record<string, EnumTypeHandle>> = string extends keyof E ? Record<never, never> : E;
1330
- type MergeEnums<ScaffoldEnums extends Record<string, EnumTypeHandle>, FactoryEnums extends Record<string, EnumTypeHandle>> = LiteralEnums<ScaffoldEnums> & LiteralEnums<FactoryEnums>;
1331
- type WithFamilyTarget<Input, F extends FamilyPackRef<string>, T extends TargetPackRef<'sql', string>> = Input & {
1332
- readonly family: F;
1333
- readonly target: T;
1334
- };
1335
- /**
1336
- * Shared builder that assembles a SqlContract with pre-bound family and target.
1337
- * Extension wrappers keep their own public overloads and delegate their impl body here;
1338
- * this is a plain overloaded function (not a factory returning an overloaded function)
1339
- * so no overloaded-function-return cast is needed.
1340
- *
1341
- * Overload 1: definition form (no factory).
1342
- */
1343
- declare function buildBoundContract<const F extends FamilyPackRef<string>, const T extends TargetPackRef<'sql', string>, const Definition extends BoundDefinitionInput<Record<string, StorageTypeInstance>, Record<string, ModelLike>, Record<string, ExtensionPackRef<'sql', string>> | undefined, ContractInput['naming'] | undefined, string | undefined, ForeignKeyDefaultsState | undefined, readonly string[] | undefined>>(family: F, target: T, definition: Definition, factory?: undefined): SqlContractResult<WithFamilyTarget<Definition, F, T>>;
1344
- /**
1345
- * Overload 2: factory form.
1346
- */
1347
- declare function buildBoundContract<const F extends FamilyPackRef<string>, const T extends TargetPackRef<'sql', string>, const Definition extends BoundDefinitionInput<Record<string, StorageTypeInstance>, Record<string, ModelLike>, Record<string, ExtensionPackRef<'sql', string>> | undefined, ContractInput['naming'] | undefined, string | undefined, ForeignKeyDefaultsState | undefined, readonly string[] | undefined>, const Built extends {
1348
- readonly types?: Record<string, StorageTypeInstance>;
1349
- readonly models?: Record<string, ModelLike>;
1350
- readonly enums?: Record<string, EnumTypeHandle>;
1351
- readonly entities?: readonly PackEntityHandle[];
1352
- }>(family: F, target: T, definition: Definition, factory: (helpers: ComposedAuthoringHelpers<F, T, NonNullable<Definition['extensions']>>) => Built): SqlContractResult<WithFamilyTarget<Definition & Built, F, T>>;
1353
- declare function defineContract<const Family extends FamilyPackRef<string>, const Target extends TargetPackRef<'sql', string>, const Types extends Record<string, StorageTypeInstance> = Record<never, never>, const Models extends Record<string, ModelLike> = Record<never, never>, const Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined = undefined, const Naming extends ContractInput['naming'] | undefined = undefined, const StorageHash extends string | undefined = undefined, const ForeignKeyDefaults extends ForeignKeyDefaultsState | undefined = undefined, const Namespaces extends readonly string[] | undefined = undefined, const Enums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>>(definition: ContractDefinition$1<Family, Target, Types, Models, Extensions, Naming, StorageHash, ForeignKeyDefaults, Namespaces, Enums>): SqlContractResult<ContractDefinition$1<Family, Target, Types, Models, Extensions, Naming, StorageHash, ForeignKeyDefaults, Namespaces, Enums>>;
1354
- declare function defineContract<const Family extends FamilyPackRef<string>, const Target extends TargetPackRef<'sql', string>, const Types extends Record<string, StorageTypeInstance> = Record<never, never>, const Models extends Record<string, ModelLike> = Record<never, never>, const Extensions extends Record<string, ExtensionPackRef<'sql', string>> | undefined = undefined, const Naming extends ContractInput['naming'] | undefined = undefined, const StorageHash extends string | undefined = undefined, const ForeignKeyDefaults extends ForeignKeyDefaultsState | undefined = undefined, const Namespaces extends readonly string[] | undefined = undefined, const ScaffoldEnums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>, const FactoryEnums extends Record<string, EnumTypeHandle> = Record<string, EnumTypeHandle>>(definition: ContractScaffold<Family, Target, Extensions, Naming, StorageHash, ForeignKeyDefaults, Namespaces, ScaffoldEnums>, factory: ContractFactory<Family, Target, Types, Models, Extensions, FactoryEnums>): SqlContractResult<ContractDefinition$1<Family, Target, Types, Models, Extensions, Naming, StorageHash, ForeignKeyDefaults, Namespaces, MergeEnums<ScaffoldEnums, FactoryEnums>>>;
1355
- //#endregion
1356
- //#region src/contract-lowering.d.ts
1357
- declare function buildContractDefinition(definition: ContractInput): ContractDefinition;
1358
- //#endregion
1359
- export { enumType as A, UniqueConstraintNode as C, buildSqlContractFromDefinition as D, buildContractDefinition as E, rel as F, field as M, member as N, check as O, model as P, TargetFieldRef as S, buildBoundContract as T, ModelLike as _, CodecTypeMap as a, RelationNode as b, ContractInput as c, EnumTypeHandle as d, ExtractCodecTypesFromPack as f, MergeEnums as g, IndexNode as h, CodecInput as i, extensionModel as j, defineContract as k, ContractModelBuilder as l, ForeignKeyNode as m, BoundEnumType as n, ComposedAuthoringHelpers as o, FieldNode as p, CheckNode as r, ContractDefinition as s, AttachedEntities as t, EnumMember as u, ModelNode as v, bindEnumType as w, ScalarFieldBuilder as x, PrimaryKeyNode as y };
1360
- //# sourceMappingURL=contract-builder-CG_tGDbB.d.mts.map