@prisma/orm-family-sql 8.0.0-rc.14-dev.35 → 8.0.0-rc.14-dev.37

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 (249) hide show
  1. package/dist/{ast-CQZn-6Wd.mjs → ast-B2W9tHy1.mjs} +6 -6
  2. package/dist/ast-B2W9tHy1.mjs.map +1 -0
  3. package/dist/{ast-BUbHXpzG.d.mts → ast-DgUdnFtz.d.mts} +4 -4
  4. package/dist/{ast-BUbHXpzG.d.mts.map → ast-DgUdnFtz.d.mts.map} +1 -1
  5. package/dist/{authoring-entity-types-CZ-vdwYS-C25VGQVB.d.mts → authoring-entity-types-CZ-vdwYS-BDKo-VHB.d.mts} +2 -2
  6. package/dist/{authoring-entity-types-CZ-vdwYS-C25VGQVB.d.mts.map → authoring-entity-types-CZ-vdwYS-BDKo-VHB.d.mts.map} +1 -1
  7. package/dist/{authoring-type-constructors-dihiQslc-hldmqa1r.mjs → authoring-type-constructors-dihiQslc-BcIPoPEn.mjs} +2 -2
  8. package/dist/{authoring-type-constructors-dihiQslc-hldmqa1r.mjs.map → authoring-type-constructors-dihiQslc-BcIPoPEn.mjs.map} +1 -1
  9. package/dist/builder.d.mts +2 -2
  10. package/dist/builder__runtime.d.mts +9 -9
  11. package/dist/builder__runtime.mjs +1 -1
  12. package/dist/builder__types.d.mts +2 -2
  13. package/dist/{codec-descriptor-registry-BW0REwkz.mjs → codec-descriptor-registry-DoGFktu5.mjs} +2 -2
  14. package/dist/{codec-descriptor-registry-BW0REwkz.mjs.map → codec-descriptor-registry-DoGFktu5.mjs.map} +1 -1
  15. package/dist/{config-types-ump1oN82.mjs → config-types-BvoqAKkw.mjs} +2 -2
  16. package/dist/{config-types-ump1oN82.mjs.map → config-types-BvoqAKkw.mjs.map} +1 -1
  17. package/dist/{config-types-Dxhmk983.d.mts → config-types-LClcQOkt.d.mts} +4 -4
  18. package/dist/{config-types-Dxhmk983.d.mts.map → config-types-LClcQOkt.d.mts.map} +1 -1
  19. package/dist/{contract-builder-CQvwPGAW.mjs → contract-builder-BRrG-DWN.mjs} +7 -8
  20. package/dist/contract-builder-BRrG-DWN.mjs.map +1 -0
  21. package/dist/{contract-builder-BXxFihYc.d.mts → contract-builder-DoT-AH8l.d.mts} +24 -27
  22. package/dist/{contract-builder-BXxFihYc.d.mts.map → contract-builder-DoT-AH8l.d.mts.map} +1 -1
  23. package/dist/contract-emitter.mjs +1 -1
  24. package/dist/contract-prisma7__provider.d.mts +2 -2
  25. package/dist/contract-prisma7__provider.mjs +4 -4
  26. package/dist/contract-psl.d.mts +3 -3
  27. package/dist/contract-psl.mjs +1 -1
  28. package/dist/contract-psl__attribute-specs.d.mts +2 -2
  29. package/dist/contract-psl__attribute-specs.mjs +1 -1
  30. package/dist/contract-psl__provider.d.mts +2 -2
  31. package/dist/contract-psl__provider.mjs +2 -2
  32. package/dist/contract-psl__provider.mjs.map +1 -1
  33. package/dist/contract-ts.d.mts +3 -3
  34. package/dist/contract-ts.mjs +3 -3
  35. package/dist/contract-ts__config-types.d.mts +1 -1
  36. package/dist/contract-ts__config-types.mjs +1 -1
  37. package/dist/contract-ts__contract-builder.d.mts +2 -2
  38. package/dist/contract-ts__contract-builder.mjs +2 -2
  39. package/dist/{contract-view-CH3F_tqg.d.mts → contract-view-Cd6_tdxU.d.mts} +2 -2
  40. package/dist/{contract-view-CH3F_tqg.d.mts.map → contract-view-Cd6_tdxU.d.mts.map} +1 -1
  41. package/dist/contract.d.mts +12 -13
  42. package/dist/contract.mjs +8 -8
  43. package/dist/contract__contract-view.d.mts +1 -1
  44. package/dist/contract__data-type-support.d.mts +1 -1
  45. package/dist/contract__data-type-support.mjs +1 -1
  46. package/dist/contract__entity-kinds.d.mts +1 -1
  47. package/dist/contract__entity-kinds.mjs +1 -1
  48. package/dist/contract__factories.d.mts +1 -1
  49. package/dist/contract__factories.mjs +1 -1
  50. package/dist/contract__index-type-validation.d.mts +1 -1
  51. package/dist/contract__resolve-storage-table.d.mts +1 -1
  52. package/dist/contract__types.d.mts +5 -5
  53. package/dist/contract__types.mjs +3 -3
  54. package/dist/contract__validators.d.mts +2 -2
  55. package/dist/contract__validators.mjs +3 -3
  56. package/dist/{control-AYMohAq_.mjs → control-C4PkND9K.mjs} +151 -91
  57. package/dist/control-C4PkND9K.mjs.map +1 -0
  58. package/dist/control-adapter-BoQobwpe.d.mts +1 -0
  59. package/dist/{control-adapter-BVN98SzR-C-H_T7s-.d.mts → control-adapter-CkFfBVei-N-jSb9WR.d.mts} +19 -11
  60. package/dist/{control-adapter-BVN98SzR-C-H_T7s-.d.mts.map → control-adapter-CkFfBVei-N-jSb9WR.d.mts.map} +1 -1
  61. package/dist/{control-Bpk8PtSL.d.mts → control-qkDZstn6.d.mts} +24 -27
  62. package/dist/control-qkDZstn6.d.mts.map +1 -0
  63. package/dist/{data-type-support-rpD1jyZd.mjs → data-type-support-DeL6iJt8.mjs} +2 -2
  64. package/dist/{data-type-support-rpD1jyZd.mjs.map → data-type-support-DeL6iJt8.mjs.map} +1 -1
  65. package/dist/{data-type-support-B_Dr1cxB.d.mts → data-type-support-DoxtCfXq.d.mts} +3 -3
  66. package/dist/{data-type-support-B_Dr1cxB.d.mts.map → data-type-support-DoxtCfXq.d.mts.map} +1 -1
  67. package/dist/{db-DLjWu9-f-T8QbxDGY.d.mts → db-DLjWu9-f-ldboYM8A.d.mts} +9 -9
  68. package/dist/{db-DLjWu9-f-T8QbxDGY.d.mts.map → db-DLjWu9-f-ldboYM8A.d.mts.map} +1 -1
  69. package/dist/{ddl-types-BUqZdoZK-vyWnW2PW.d.mts → ddl-types-CWIiJxsH-BixiHVIr.d.mts} +5 -24
  70. package/dist/ddl-types-CWIiJxsH-BixiHVIr.d.mts.map +1 -0
  71. package/dist/{derived-checks-CILnJKoa-D42YRW01.mjs → derived-checks-CsB3zLJ--C7ymzzbW.mjs} +14 -17
  72. package/dist/derived-checks-CsB3zLJ--C7ymzzbW.mjs.map +1 -0
  73. package/dist/{derived-checks-DPdD01O0-BSShXJmp.d.mts → derived-checks-DPdD01O0-CABDLeK0.d.mts} +3 -3
  74. package/dist/{derived-checks-DPdD01O0-BSShXJmp.d.mts.map → derived-checks-DPdD01O0-CABDLeK0.d.mts.map} +1 -1
  75. package/dist/diff-B16bL_IR.mjs.map +1 -1
  76. package/dist/{diff-BsHizC0z.d.mts → diff-B1ThXQkW.d.mts} +8 -8
  77. package/dist/{diff-BsHizC0z.d.mts.map → diff-B1ThXQkW.d.mts.map} +1 -1
  78. package/dist/{dist-C_HYPisk.mjs → dist-ljGeuCdK.mjs} +8 -8
  79. package/dist/dist-ljGeuCdK.mjs.map +1 -0
  80. package/dist/{driver-types-DYGFEcyv-DPaNalPf.d.mts → driver-types-DRsYeq3j-X_D6hNMZ.d.mts} +8 -2
  81. package/dist/driver-types-DRsYeq3j-X_D6hNMZ.d.mts.map +1 -0
  82. package/dist/{entity-kinds-DRPMASi3.d.mts → entity-kinds-DCwkg9t7.d.mts} +2 -2
  83. package/dist/{entity-kinds-DRPMASi3.d.mts.map → entity-kinds-DCwkg9t7.d.mts.map} +1 -1
  84. package/dist/{entity-kinds-BNQFeECV-BOJmOArY.mjs → entity-kinds-JlqzyFoo-BR7NtlZL.mjs} +6 -5
  85. package/dist/entity-kinds-JlqzyFoo-BR7NtlZL.mjs.map +1 -0
  86. package/dist/{expression-Bf_MkeQS.d.mts → expression-o74FOqh6.d.mts} +8 -8
  87. package/dist/{expression-Bf_MkeQS.d.mts.map → expression-o74FOqh6.d.mts.map} +1 -1
  88. package/dist/{factories-Di9PoiQh.d.mts → factories-CgVRbL8l.d.mts} +4 -4
  89. package/dist/{factories-Di9PoiQh.d.mts.map → factories-CgVRbL8l.d.mts.map} +1 -1
  90. package/dist/{factories-D6haP7by.mjs → factories-WPleYaty.mjs} +4 -4
  91. package/dist/factories-WPleYaty.mjs.map +1 -0
  92. package/dist/family.d.mts +15 -15
  93. package/dist/family.mjs +5 -5
  94. package/dist/family__control-adapter.d.mts +2 -2
  95. package/dist/family__control.d.mts +4 -4
  96. package/dist/family__control.mjs +3 -3
  97. package/dist/family__diff.d.mts +2 -2
  98. package/dist/family__diff.mjs +1 -1
  99. package/dist/family__ir.d.mts +1 -1
  100. package/dist/family__ir.mjs +1 -1
  101. package/dist/family__migration.d.mts +1 -1
  102. package/dist/family__pack.d.mts +1 -1
  103. package/dist/family__pack.mjs +2 -2
  104. package/dist/family__psl-build.d.mts +2 -2
  105. package/dist/family__psl-build.mjs +1 -1
  106. package/dist/family__psl-infer.d.mts +1 -1
  107. package/dist/family__runtime.d.mts +2 -2
  108. package/dist/{index-D2ho4por.d.mts → index-DCKjTi7L.d.mts} +11 -11
  109. package/dist/{index-D2ho4por.d.mts.map → index-DCKjTi7L.d.mts.map} +1 -1
  110. package/dist/{index-DZbfFGBA.d.mts → index-qOLTnfYz.d.mts} +3 -3
  111. package/dist/{index-DZbfFGBA.d.mts.map → index-qOLTnfYz.d.mts.map} +1 -1
  112. package/dist/{index-type-validation-9yBRmaQK.d.mts → index-type-validation-BHppm9U-.d.mts} +3 -3
  113. package/dist/{index-type-validation-9yBRmaQK.d.mts.map → index-type-validation-BHppm9U-.d.mts.map} +1 -1
  114. package/dist/{interpreter-Cn_CHpKv-V5WRLkBQ.mjs → interpreter-D50jf6Dd-DQMtcGPt.mjs} +24 -16
  115. package/dist/interpreter-D50jf6Dd-DQMtcGPt.mjs.map +1 -0
  116. package/dist/{ir-D7wRE9X4.d.mts → ir-BYHqe2mj.d.mts} +3 -3
  117. package/dist/{ir-D7wRE9X4.d.mts.map → ir-BYHqe2mj.d.mts.map} +1 -1
  118. package/dist/ir-I-xciGUH.mjs.map +1 -1
  119. package/dist/middleware-Bn2R6ocx.d.mts +1 -0
  120. package/dist/{middleware-BtMX6nSF-DUnzMyGl.d.mts → middleware-BtMX6nSF-DM55ZeCo.d.mts} +2 -2
  121. package/dist/{middleware-BtMX6nSF-DUnzMyGl.d.mts.map → middleware-BtMX6nSF-DM55ZeCo.d.mts.map} +1 -1
  122. package/dist/{migration-oet2BBxc.d.mts → migration-DV5extx2.d.mts} +4 -4
  123. package/dist/{migration-oet2BBxc.d.mts.map → migration-DV5extx2.d.mts.map} +1 -1
  124. package/dist/{opaque-sql-CwvHZSr8-Ch9goXqx.mjs → opaque-sql-BWxbqe5a-GGKfyakq.mjs} +2 -8
  125. package/dist/opaque-sql-BWxbqe5a-GGKfyakq.mjs.map +1 -0
  126. package/dist/operations.d.mts +1 -1
  127. package/dist/orm-client.d.mts +15 -15
  128. package/dist/orm-client.mjs +2 -2
  129. package/dist/{pack-C-JTs3HQ.d.mts → pack-B-_m58dV.d.mts} +2 -2
  130. package/dist/{pack-C-JTs3HQ.d.mts.map → pack-B-_m58dV.d.mts.map} +1 -1
  131. package/dist/{plan-BlQITcbP-DvbDlHXA.d.mts → plan-BlQITcbP-B2q80evU.d.mts} +4 -4
  132. package/dist/{plan-BlQITcbP-DvbDlHXA.d.mts.map → plan-BlQITcbP-B2q80evU.d.mts.map} +1 -1
  133. package/dist/plan-D11FmUVM.d.mts +2 -0
  134. package/dist/{prepared-statement-Cv54gpY_-dg9Qr8sK.d.mts → prepared-statement-YtgdlN7e-BryEFERH.d.mts} +26 -19
  135. package/dist/{prepared-statement-Cv54gpY_-dg9Qr8sK.d.mts.map → prepared-statement-YtgdlN7e-BryEFERH.d.mts.map} +1 -1
  136. package/dist/{psl-build-B6nw6MAM.mjs → psl-build-C1P-sV0c.mjs} +12 -10
  137. package/dist/psl-build-C1P-sV0c.mjs.map +1 -0
  138. package/dist/{psl-build-BrW7lQMO.d.mts → psl-build-ClK2AyY1.d.mts} +2 -2
  139. package/dist/psl-build-ClK2AyY1.d.mts.map +1 -0
  140. package/dist/{psl-column-resolution-BegCa1-t-BJJ9WB1c.d.mts → psl-column-resolution-BegCa1-t-o2A6uWWC.d.mts} +2 -2
  141. package/dist/{psl-column-resolution-BegCa1-t-BJJ9WB1c.d.mts.map → psl-column-resolution-BegCa1-t-o2A6uWWC.d.mts.map} +1 -1
  142. package/dist/{psl-field-resolution-Bf8vUaoK-CanSt2s1.mjs → psl-field-resolution-Bi-CSeoQ-BjACY_53.mjs} +105 -22
  143. package/dist/psl-field-resolution-Bi-CSeoQ-BjACY_53.mjs.map +1 -0
  144. package/dist/{psl-infer-DzH2Khty.d.mts → psl-infer-B91bSSdN.d.mts} +4 -4
  145. package/dist/{psl-infer-DzH2Khty.d.mts.map → psl-infer-B91bSSdN.d.mts.map} +1 -1
  146. package/dist/{query-lane-context-OSV9X636-CcPv1TZj.d.mts → query-lane-context-OSV9X636-DFRkNeXq.d.mts} +5 -5
  147. package/dist/{query-lane-context-OSV9X636-CcPv1TZj.d.mts.map → query-lane-context-OSV9X636-DFRkNeXq.d.mts.map} +1 -1
  148. package/dist/query-lane-context-SRmvD9-J.d.mts +1 -0
  149. package/dist/relational-core.d.mts +13 -13
  150. package/dist/relational-core.mjs +2 -2
  151. package/dist/relational-core__aggregate-descriptor-registry.d.mts +1 -1
  152. package/dist/relational-core__ast.d.mts +5 -5
  153. package/dist/relational-core__ast.mjs +2 -2
  154. package/dist/relational-core__codec-descriptor-registry.d.mts +4 -4
  155. package/dist/relational-core__codec-descriptor-registry.mjs +1 -1
  156. package/dist/relational-core__contract-free.d.mts +3 -3
  157. package/dist/relational-core__contract-free.mjs +1 -1
  158. package/dist/relational-core__contract-free.mjs.map +1 -1
  159. package/dist/relational-core__expression.d.mts +1 -1
  160. package/dist/relational-core__middleware.d.mts +2 -2
  161. package/dist/relational-core__plan.d.mts +3 -3
  162. package/dist/relational-core__query-lane-context.d.mts +2 -2
  163. package/dist/relational-core__types.d.mts +2 -2
  164. package/dist/{resolve-storage-table-GpIWDdpo.d.mts → resolve-storage-table-Ba33K41A.d.mts} +3 -3
  165. package/dist/{resolve-storage-table-GpIWDdpo.d.mts.map → resolve-storage-table-Ba33K41A.d.mts.map} +1 -1
  166. package/dist/{runtime-BbhrIR5H.d.mts → runtime-BUemUdMk.d.mts} +2 -2
  167. package/dist/{runtime-BbhrIR5H.d.mts.map → runtime-BUemUdMk.d.mts.map} +1 -1
  168. package/dist/runtime.d.mts +4 -4
  169. package/dist/runtime.mjs +87 -45
  170. package/dist/runtime.mjs.map +1 -1
  171. package/dist/runtime__internal__prepared-query.d.mts +1 -1
  172. package/dist/{schema-differ-DpG_gnur-if2KDxZC.d.mts → schema-differ-CqWOkoW9--uxNOini.d.mts} +6 -6
  173. package/dist/{schema-differ-DpG_gnur-if2KDxZC.d.mts.map → schema-differ-CqWOkoW9--uxNOini.d.mts.map} +1 -1
  174. package/dist/schema-ir.d.mts +1 -1
  175. package/dist/schema-ir.mjs +1 -1
  176. package/dist/schema-ir__types.d.mts +2 -2
  177. package/dist/schema-ir__types.mjs +1 -1
  178. package/dist/{schema-verify-lPfqY_aE-CZCO8my1.mjs → schema-verify-DIfHSB4I-BK55V2WO.mjs} +3 -3
  179. package/dist/{schema-verify-lPfqY_aE-CZCO8my1.mjs.map → schema-verify-DIfHSB4I-BK55V2WO.mjs.map} +1 -1
  180. package/dist/{serialized-index-BeGqqsrC-PymnV1h-.mjs → serialized-index-QAYy0fjm-BW4shnLC.mjs} +3 -3
  181. package/dist/{serialized-index-BeGqqsrC-PymnV1h-.mjs.map → serialized-index-QAYy0fjm-BW4shnLC.mjs.map} +1 -1
  182. package/dist/{sql-contract-serializer-C90xg7_q-4UVEMTWO.mjs → sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs} +6 -6
  183. package/dist/sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs.map +1 -0
  184. package/dist/{sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts → sql-execution-plan-CV6K4o9N-B3EzlMwJ.d.mts} +2 -2
  185. package/dist/{sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts.map → sql-execution-plan-CV6K4o9N-B3EzlMwJ.d.mts.map} +1 -1
  186. package/dist/{sql-storage-jJySr7bL-C_xAiyzH.d.mts → sql-storage-DSnnRQAf-DaHPnley.d.mts} +13 -20
  187. package/dist/sql-storage-DSnnRQAf-DaHPnley.d.mts.map +1 -0
  188. package/dist/{storage-table-DLFvP77v-DLfqYsHX.d.mts → storage-table-BBcKoAuF-CssyCQhM.d.mts} +5 -4
  189. package/dist/storage-table-BBcKoAuF-CssyCQhM.d.mts.map +1 -0
  190. package/dist/{storage-table-BwwDKQkD-BN9cZrGX.mjs → storage-table-CyL4CNMi-zOQ-vTUd.mjs} +4 -4
  191. package/dist/{storage-table-BwwDKQkD-BN9cZrGX.mjs.map → storage-table-CyL4CNMi-zOQ-vTUd.mjs.map} +1 -1
  192. package/dist/{type-map-DmIbL4o--BfPMblbZ.d.mts → type-map-dnvRKl9o-avUb9OLv.d.mts} +5 -5
  193. package/dist/type-map-dnvRKl9o-avUb9OLv.d.mts.map +1 -0
  194. package/dist/types-Bb6De1yt.d.mts +1 -0
  195. package/dist/{types-Cn4JEguu.mjs → types-BlcZJEoC.mjs} +4 -4
  196. package/dist/types-BlcZJEoC.mjs.map +1 -0
  197. package/dist/{types-Da1Y_OI7-BPyFwdFU.d.mts → types-CLsPsUiw-Db1BsN9R.d.mts} +25 -19
  198. package/dist/types-CLsPsUiw-Db1BsN9R.d.mts.map +1 -0
  199. package/dist/{types-CcGO_LSh-BKHiJvvA.d.mts → types-CvuS68sy-CIYfMFuu.d.mts} +10 -11
  200. package/dist/{types-CcGO_LSh-BKHiJvvA.d.mts.map → types-CvuS68sy-CIYfMFuu.d.mts.map} +1 -1
  201. package/dist/types-D6XuABFQ.d.mts +1 -0
  202. package/dist/{types-Bl6ohp1g-CL4_GDuc.d.mts → types-DV040Uuq-Bu8CnbMa.d.mts} +4 -4
  203. package/dist/{types-Bl6ohp1g-CL4_GDuc.d.mts.map → types-DV040Uuq-Bu8CnbMa.d.mts.map} +1 -1
  204. package/dist/{types-CyPuXMTn-pumFirZ6.mjs → types-D_7dH1ie-CN5Dgmgh.mjs} +17 -16
  205. package/dist/types-D_7dH1ie-CN5Dgmgh.mjs.map +1 -0
  206. package/dist/{types-B11MGgKr.d.mts → types-DkOYK86-.d.mts} +4 -4
  207. package/dist/{types-B11MGgKr.d.mts.map → types-DkOYK86-.d.mts.map} +1 -1
  208. package/dist/{types-Dskga3R1-BtXuRmbf.d.mts → types-Dskga3R1-DeSwpS4A.d.mts} +2 -2
  209. package/dist/{types-Dskga3R1-BtXuRmbf.d.mts.map → types-Dskga3R1-DeSwpS4A.d.mts.map} +1 -1
  210. package/dist/{types-DpwLgzPO-Cb9nQ-Wt.d.mts → types-flbim7l7-BbzcJZpz.d.mts} +12 -12
  211. package/dist/{types-DpwLgzPO-Cb9nQ-Wt.d.mts.map → types-flbim7l7-BbzcJZpz.d.mts.map} +1 -1
  212. package/dist/{validators-IGdAEEIM.mjs → validators-BF_JSK38.mjs} +50 -27
  213. package/dist/validators-BF_JSK38.mjs.map +1 -0
  214. package/dist/{validators-B-4g3vwP.d.mts → validators-BLkHaNpd.d.mts} +10 -8
  215. package/dist/{validators-B-4g3vwP.d.mts.map → validators-BLkHaNpd.d.mts.map} +1 -1
  216. package/package.json +18 -19
  217. package/dist/ast-CQZn-6Wd.mjs.map +0 -1
  218. package/dist/contract-builder-CQvwPGAW.mjs.map +0 -1
  219. package/dist/contract__pack-types.d.mts +0 -2
  220. package/dist/contract__pack-types.mjs +0 -1
  221. package/dist/control-AYMohAq_.mjs.map +0 -1
  222. package/dist/control-Bpk8PtSL.d.mts.map +0 -1
  223. package/dist/control-adapter-DSGwSagr.d.mts +0 -1
  224. package/dist/ddl-types-BUqZdoZK-vyWnW2PW.d.mts.map +0 -1
  225. package/dist/derived-checks-CILnJKoa-D42YRW01.mjs.map +0 -1
  226. package/dist/dist-C_HYPisk.mjs.map +0 -1
  227. package/dist/driver-types-DYGFEcyv-DPaNalPf.d.mts.map +0 -1
  228. package/dist/entity-kinds-BNQFeECV-BOJmOArY.mjs.map +0 -1
  229. package/dist/factories-D6haP7by.mjs.map +0 -1
  230. package/dist/interpreter-Cn_CHpKv-V5WRLkBQ.mjs.map +0 -1
  231. package/dist/middleware-pBMsszaq.d.mts +0 -1
  232. package/dist/opaque-sql-CwvHZSr8-Ch9goXqx.mjs.map +0 -1
  233. package/dist/pack-types-BcLTpwbv.d.mts +0 -14
  234. package/dist/pack-types-BcLTpwbv.d.mts.map +0 -1
  235. package/dist/plan-BbkBYyGR.d.mts +0 -2
  236. package/dist/psl-build-B6nw6MAM.mjs.map +0 -1
  237. package/dist/psl-build-BrW7lQMO.d.mts.map +0 -1
  238. package/dist/psl-field-resolution-Bf8vUaoK-CanSt2s1.mjs.map +0 -1
  239. package/dist/query-lane-context-CLtywrTY.d.mts +0 -1
  240. package/dist/sql-contract-serializer-C90xg7_q-4UVEMTWO.mjs.map +0 -1
  241. package/dist/sql-storage-jJySr7bL-C_xAiyzH.d.mts.map +0 -1
  242. package/dist/storage-table-DLFvP77v-DLfqYsHX.d.mts.map +0 -1
  243. package/dist/type-map-DmIbL4o--BfPMblbZ.d.mts.map +0 -1
  244. package/dist/types-Cn4JEguu.mjs.map +0 -1
  245. package/dist/types-CyPuXMTn-pumFirZ6.mjs.map +0 -1
  246. package/dist/types-DZA5xxDT.d.mts +0 -1
  247. package/dist/types-Da1Y_OI7-BPyFwdFU.d.mts.map +0 -1
  248. package/dist/types-QvcS13Qc.d.mts +0 -1
  249. package/dist/validators-IGdAEEIM.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- import { c as SqlStorage } from "./sql-storage-jJySr7bL-C_xAiyzH.mjs";
2
- import "./types-B11MGgKr.mjs";
3
- import { y as SqlSchemaIRNode } from "./types-Da1Y_OI7-BPyFwdFU.mjs";
4
- import "./types-DZA5xxDT.mjs";
1
+ import { l as SqlStorage } from "./sql-storage-DSnnRQAf-DaHPnley.mjs";
2
+ import "./types-DkOYK86-.mjs";
3
+ import { y as SqlSchemaIRNode } from "./types-CLsPsUiw-Db1BsN9R.mjs";
4
+ import "./types-D6XuABFQ.mjs";
5
5
  import { Contract, ControlPolicy } from "@prisma/orm-framework/contract/types";
6
6
  import { TargetBoundComponentDescriptor } from "@prisma/orm-framework/components/components";
7
7
  import { SchemaDiffIssue } from "@prisma/orm-framework/components/control";
8
- //#region ../../../2-sql/9-family/dist/schema-differ-DpG_gnur.d.mts
8
+ //#region ../../../2-sql/9-family/dist/schema-differ-CqWOkoW9.d.mts
9
9
  //#region src/core/migrations/schema-differ.d.ts
10
10
  /**
11
11
  * The full-tree node diff a SQL target produces for the family verify
@@ -44,4 +44,4 @@ interface SqlSchemaDiffInput {
44
44
  type SqlSchemaDiffFn = (input: SqlSchemaDiffInput) => SqlSchemaDiffResult;
45
45
  //#endregion
46
46
  export { SqlSchemaDiffInput as n, SqlSchemaDiffResult as r, SqlSchemaDiffFn as t };
47
- //# sourceMappingURL=schema-differ-DpG_gnur-if2KDxZC.d.mts.map
47
+ //# sourceMappingURL=schema-differ-CqWOkoW9--uxNOini.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-differ-DpG_gnur-if2KDxZC.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/schema-differ-DpG_gnur.d.mts"],"mappings":";;;;;;;;;;;;;;;;;UAcU;;WAEC,iBAAiB;;;;;;;;;WASjB,uBAAuB,OAAO,oBAAoB;;;;;;WAMlD,gBAAgB;aACd,QAAQ;;;UAGX;WACC,UAAU,SAAS;WACnB,QAAQ;WACR,qBAAqB,cAAc;;KAEzC,mBAAmB,OAAO,uBAAuB"}
1
+ {"version":3,"file":"schema-differ-CqWOkoW9--uxNOini.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/schema-differ-CqWOkoW9.d.mts"],"mappings":";;;;;;;;;;;;;;;;;UAcU;;WAEC,iBAAiB;;;;;;;;;WASjB,uBAAuB,OAAO,oBAAoB;;;;;;WAMlD,gBAAgB;aACd,QAAQ;;;UAGX;WACC,UAAU,SAAS;WACnB,QAAQ;WACR,qBAAqB,cAAc;;KAEzC,mBAAmB,OAAO,uBAAuB"}
@@ -1,2 +1,2 @@
1
- import { C as SqlUniqueIRInput, D as defineNonEnumerable, E as defaultInCanonicalForm, O as relationalNodeEntityKind, S as SqlUniqueIR, T as contractDefaultRefusal, _ as SqlSchemaIR, a as SqlAnnotations, b as SqlTableIR, c as SqlColumnDefaultIR, d as SqlColumnIRInput, f as SqlForeignKeyIR, g as SqlReferentialAction, h as SqlIndexIRInput, i as RelationalSchemaNodeKind, k as relationalNodeGranularity, l as SqlColumnDefaultIRInput, m as SqlIndexIR, n as PrimaryKey, o as SqlCheckConstraintIR, p as SqlForeignKeyIRInput, r as PrimaryKeyInput, s as SqlCheckConstraintIRInput, t as DefaultInCanonicalForm, u as SqlColumnIR, v as SqlSchemaIRInput, w as assertNode, x as SqlTableIRInput, y as SqlSchemaIRNode } from "./types-Da1Y_OI7-BPyFwdFU.mjs";
1
+ import { C as SqlUniqueIRInput, D as defineNonEnumerable, E as defaultInCanonicalForm, O as relationalNodeEntityKind, S as SqlUniqueIR, T as contractDefaultRefusal, _ as SqlSchemaIR, a as SqlAnnotations, b as SqlTableIR, c as SqlColumnDefaultIR, d as SqlColumnIRInput, f as SqlForeignKeyIR, g as SqlReferentialAction, h as SqlIndexIRInput, i as RelationalSchemaNodeKind, k as relationalNodeGranularity, l as SqlColumnDefaultIRInput, m as SqlIndexIR, n as PrimaryKey, o as SqlCheckConstraintIR, p as SqlForeignKeyIRInput, r as PrimaryKeyInput, s as SqlCheckConstraintIRInput, t as DefaultInCanonicalForm, u as SqlColumnIR, v as SqlSchemaIRInput, w as assertNode, x as SqlTableIRInput, y as SqlSchemaIRNode } from "./types-CLsPsUiw-Db1BsN9R.mjs";
2
2
  export { type DefaultInCanonicalForm, PrimaryKey, type PrimaryKeyInput, RelationalSchemaNodeKind, type SqlAnnotations, SqlCheckConstraintIR, type SqlCheckConstraintIRInput, SqlColumnDefaultIR, type SqlColumnDefaultIRInput, SqlColumnIR, type SqlColumnIRInput, SqlForeignKeyIR, type SqlForeignKeyIRInput, SqlIndexIR, type SqlIndexIRInput, type SqlReferentialAction, SqlSchemaIR, type SqlSchemaIRInput, SqlSchemaIRNode, SqlTableIR, type SqlTableIRInput, SqlUniqueIR, type SqlUniqueIRInput, assertNode, contractDefaultRefusal, defaultInCanonicalForm, defineNonEnumerable, relationalNodeEntityKind, relationalNodeGranularity };
@@ -1,2 +1,2 @@
1
- import { _ as relationalNodeGranularity, a as SqlColumnIR, c as SqlSchemaIR, d as SqlUniqueIR, f as assertNode, g as relationalNodeEntityKind, h as defineNonEnumerable, i as SqlColumnDefaultIR, l as SqlSchemaIRNode, m as defaultInCanonicalForm, n as RelationalSchemaNodeKind, o as SqlForeignKeyIR, p as contractDefaultRefusal, r as SqlCheckConstraintIR, s as SqlIndexIR, t as PrimaryKey, u as SqlTableIR } from "./types-CyPuXMTn-pumFirZ6.mjs";
1
+ import { _ as relationalNodeGranularity, a as SqlColumnIR, c as SqlSchemaIR, d as SqlUniqueIR, f as assertNode, g as relationalNodeEntityKind, h as defineNonEnumerable, i as SqlColumnDefaultIR, l as SqlSchemaIRNode, m as defaultInCanonicalForm, n as RelationalSchemaNodeKind, o as SqlForeignKeyIR, p as contractDefaultRefusal, r as SqlCheckConstraintIR, s as SqlIndexIR, t as PrimaryKey, u as SqlTableIR } from "./types-D_7dH1ie-CN5Dgmgh.mjs";
2
2
  export { PrimaryKey, RelationalSchemaNodeKind, SqlCheckConstraintIR, SqlColumnDefaultIR, SqlColumnIR, SqlForeignKeyIR, SqlIndexIR, SqlSchemaIR, SqlSchemaIRNode, SqlTableIR, SqlUniqueIR, assertNode, contractDefaultRefusal, defaultInCanonicalForm, defineNonEnumerable, relationalNodeEntityKind, relationalNodeGranularity };
@@ -1,3 +1,3 @@
1
- import { C as SqlUniqueIRInput, D as defineNonEnumerable, E as defaultInCanonicalForm, O as relationalNodeEntityKind, S as SqlUniqueIR, T as contractDefaultRefusal, _ as SqlSchemaIR, a as SqlAnnotations, b as SqlTableIR, c as SqlColumnDefaultIR, d as SqlColumnIRInput, f as SqlForeignKeyIR, g as SqlReferentialAction, h as SqlIndexIRInput, i as RelationalSchemaNodeKind, k as relationalNodeGranularity, l as SqlColumnDefaultIRInput, m as SqlIndexIR, n as PrimaryKey, o as SqlCheckConstraintIR, p as SqlForeignKeyIRInput, r as PrimaryKeyInput, s as SqlCheckConstraintIRInput, t as DefaultInCanonicalForm, u as SqlColumnIR, v as SqlSchemaIRInput, w as assertNode, x as SqlTableIRInput, y as SqlSchemaIRNode } from "./types-Da1Y_OI7-BPyFwdFU.mjs";
2
- import "./types-DZA5xxDT.mjs";
1
+ import { C as SqlUniqueIRInput, D as defineNonEnumerable, E as defaultInCanonicalForm, O as relationalNodeEntityKind, S as SqlUniqueIR, T as contractDefaultRefusal, _ as SqlSchemaIR, a as SqlAnnotations, b as SqlTableIR, c as SqlColumnDefaultIR, d as SqlColumnIRInput, f as SqlForeignKeyIR, g as SqlReferentialAction, h as SqlIndexIRInput, i as RelationalSchemaNodeKind, k as relationalNodeGranularity, l as SqlColumnDefaultIRInput, m as SqlIndexIR, n as PrimaryKey, o as SqlCheckConstraintIR, p as SqlForeignKeyIRInput, r as PrimaryKeyInput, s as SqlCheckConstraintIRInput, t as DefaultInCanonicalForm, u as SqlColumnIR, v as SqlSchemaIRInput, w as assertNode, x as SqlTableIRInput, y as SqlSchemaIRNode } from "./types-CLsPsUiw-Db1BsN9R.mjs";
2
+ import "./types-D6XuABFQ.mjs";
3
3
  export { type DefaultInCanonicalForm, PrimaryKey, type PrimaryKeyInput, RelationalSchemaNodeKind, type SqlAnnotations, SqlCheckConstraintIR, type SqlCheckConstraintIRInput, SqlColumnDefaultIR, type SqlColumnDefaultIRInput, SqlColumnIR, type SqlColumnIRInput, SqlForeignKeyIR, type SqlForeignKeyIRInput, SqlIndexIR, type SqlIndexIRInput, type SqlReferentialAction, SqlSchemaIR, type SqlSchemaIRInput, SqlSchemaIRNode, SqlTableIR, type SqlTableIRInput, SqlUniqueIR, type SqlUniqueIRInput, assertNode, contractDefaultRefusal, defaultInCanonicalForm, defineNonEnumerable, relationalNodeEntityKind, relationalNodeGranularity };
@@ -1,2 +1,2 @@
1
- import { _ as relationalNodeGranularity, a as SqlColumnIR, c as SqlSchemaIR, d as SqlUniqueIR, f as assertNode, g as relationalNodeEntityKind, h as defineNonEnumerable, i as SqlColumnDefaultIR, l as SqlSchemaIRNode, m as defaultInCanonicalForm, n as RelationalSchemaNodeKind, o as SqlForeignKeyIR, p as contractDefaultRefusal, r as SqlCheckConstraintIR, s as SqlIndexIR, t as PrimaryKey, u as SqlTableIR } from "./types-CyPuXMTn-pumFirZ6.mjs";
1
+ import { _ as relationalNodeGranularity, a as SqlColumnIR, c as SqlSchemaIR, d as SqlUniqueIR, f as assertNode, g as relationalNodeEntityKind, h as defineNonEnumerable, i as SqlColumnDefaultIR, l as SqlSchemaIRNode, m as defaultInCanonicalForm, n as RelationalSchemaNodeKind, o as SqlForeignKeyIR, p as contractDefaultRefusal, r as SqlCheckConstraintIR, s as SqlIndexIR, t as PrimaryKey, u as SqlTableIR } from "./types-D_7dH1ie-CN5Dgmgh.mjs";
2
2
  export { PrimaryKey, RelationalSchemaNodeKind, SqlCheckConstraintIR, SqlColumnDefaultIR, SqlColumnIR, SqlForeignKeyIR, SqlIndexIR, SqlSchemaIR, SqlSchemaIRNode, SqlTableIR, SqlUniqueIR, assertNode, contractDefaultRefusal, defaultInCanonicalForm, defineNonEnumerable, relationalNodeEntityKind, relationalNodeGranularity };
@@ -1,12 +1,12 @@
1
1
  import { n as findSqlDataTypeCollision, r as isSqlDataType } from "./data-type-CAPmGXg9.mjs";
2
2
  import { r as assertNothingCastsFromSqlExpression } from "./sql-expression-D7GsLgDM.mjs";
3
- import { u as isStorageTypeInstance } from "./types-Cn4JEguu.mjs";
3
+ import { u as isStorageTypeInstance } from "./types-BlcZJEoC.mjs";
4
4
  import { blindCast } from "@prisma/orm-framework/utils/casts";
5
5
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
6
6
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
7
7
  import { effectiveControlPolicy } from "@prisma/orm-framework/contract/types";
8
8
  import { VERIFY_CODE_SCHEMA_FAILURE, assertUniqueCodecOwner, dispositionForCategory, issueOutcome } from "@prisma/orm-framework/components/control";
9
- //#region ../../../2-sql/9-family/dist/schema-verify-lPfqY_aE.mjs
9
+ //#region ../../../2-sql/9-family/dist/schema-verify-DIfHSB4I.mjs
10
10
  function hasCodecControlHooks(descriptor) {
11
11
  if (typeof descriptor !== "object" || descriptor === null) return false;
12
12
  const hooks = blindCast(descriptor).types?.codecTypes?.controlPlaneHooks;
@@ -243,4 +243,4 @@ function verifySqlSchemaByDiff(input) {
243
243
  //#endregion
244
244
  export { computeStorageTypeVerdict as a, verifySqlSchemaByDiff as c, computeSqlDiffVerdict as i, classifyDiffSubjectGranularity as n, enforceSqlDataTypeInvariants as o, classifySqlDiffIssue as r, extractCodecControlHooks as s, classifyDiffEntityKind as t };
245
245
 
246
- //# sourceMappingURL=schema-verify-lPfqY_aE-CZCO8my1.mjs.map
246
+ //# sourceMappingURL=schema-verify-DIfHSB4I-BK55V2WO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-verify-lPfqY_aE-CZCO8my1.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/schema-verify-lPfqY_aE.mjs"],"sourcesContent":["import { assertNothingCastsFromSqlExpression } from \"@internal/sql-contract/sql-expression\";\nimport { VERIFY_CODE_SCHEMA_FAILURE, assertUniqueCodecOwner, dispositionForCategory, issueOutcome } from \"@internal/framework-components/control\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { findSqlDataTypeCollision, isSqlDataType } from \"@internal/sql-contract/data-type\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\nimport { isStorageTypeInstance } from \"@internal/sql-contract/types\";\n//#region src/core/assembly.ts\nfunction hasCodecControlHooks(descriptor) {\n\tif (typeof descriptor !== \"object\" || descriptor === null) return false;\n\tconst hooks = blindCast(descriptor).types?.codecTypes?.controlPlaneHooks;\n\treturn hooks !== null && hooks !== void 0 && typeof hooks === \"object\";\n}\nfunction extractCodecControlHooks(descriptors) {\n\tconst hooks = /* @__PURE__ */ new Map();\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tif (typeof descriptor !== \"object\" || descriptor === null) continue;\n\t\tif (!hasCodecControlHooks(descriptor)) continue;\n\t\tconst controlPlaneHooks = descriptor.types.codecTypes.controlPlaneHooks;\n\t\tfor (const [codecId, hook] of Object.entries(controlPlaneHooks)) {\n\t\t\tassertUniqueCodecOwner({\n\t\t\t\tcodecId,\n\t\t\t\towners,\n\t\t\t\tdescriptorId: descriptor.id,\n\t\t\t\tentityLabel: \"control hooks\",\n\t\t\t\tentityOwnershipLabel: \"owner\"\n\t\t\t});\n\t\t\thooks.set(codecId, hook);\n\t\t\towners.set(codecId, descriptor.id);\n\t\t}\n\t}\n\treturn hooks;\n}\n/**\n* The SQL family's checks of the stack's data types and codecs, each naming the contributor:\n* no two SQL data types would both recognise one reported type, by colliding claiming texts or by\n* claiming the same kind; no data type casts from `sql/expression`; and every codec represents a\n* SQL data type, because a codec represents a column's type and `sql/expression` is the one data\n* type no column has.\n*/\nfunction enforceSqlDataTypeInvariants(declaredDataTypes, codecDescriptors) {\n\tconst declaredById = new Map(declaredDataTypes.map((declared) => [declared.type.id, declared]));\n\tconst describe = (type) => `data type \"${type.id}\" contributed by \"${declaredById.get(type.id)?.contributedBy ?? \"<unknown>\"}\"`;\n\tconst collision = findSqlDataTypeCollision(declaredDataTypes.map(({ type }) => type));\n\tif (collision !== void 0) {\n\t\tconst { first, second, claims } = collision;\n\t\tif (claims.by === \"kind\") throw new InternalError(`The ${describe(first)} and the ${describe(second)} both claim the kind \"${claims.kind}\".`);\n\t\tthrow new InternalError(`The ${describe(first)} claims the text \"${claims.first}\", which collides with the text \"${claims.second}\" claimed by the ${describe(second)}.`);\n\t}\n\tassertNothingCastsFromSqlExpression(declaredDataTypes);\n\tfor (const codec of codecDescriptors) {\n\t\tconst represented = declaredById.get(codec.dataType)?.type;\n\t\tif (represented === void 0 || isSqlDataType(represented)) continue;\n\t\tthrow new InternalError(`Codec \"${codec.codecId}\" represents ${describe(represented)}, which is not a SQL data type. In a SQL stack a codec represents a column's type, so its data type is declared with sqlDataType.`);\n\t}\n}\n//#endregion\n//#region src/core/diff/verifier-disposition.ts\n/**\n* Classifies a codec `verifyType` hook finding into the target-neutral\n* categories the framework grades. A storage type is a named type instance\n* (e.g. a native enum); the only shape divergence it can carry is a change\n* to its value set, so a paired mismatch always classifies as `valueDrift`.\n*/\nfunction classifyStorageTypeDiffIssue(issue) {\n\tif (issueOutcome(issue) === \"not-found\") return \"declaredMissing\";\n\tif (issueOutcome(issue) === \"not-expected\") return \"extraAuxiliary\";\n\treturn \"valueDrift\";\n}\nfunction verifierDisposition(controlPolicy, issue) {\n\treturn dispositionForCategory(controlPolicy, classifyStorageTypeDiffIssue(issue));\n}\n//#endregion\n//#region src/core/diff/schema-verify.ts\nfunction issueNode(issue) {\n\tconst node = issue.expected ?? issue.actual;\n\tif (node === void 0) return void 0;\n\treturn blindCast(node);\n}\n/**\n* Resolves an issue's framework-neutral {@link DiffSubjectGranularity} on\n* demand, from the issue's node's `nodeKind` via the target-provided\n* `granularityOf` map. The node carries only its `nodeKind` identity, never a\n* classification, and nothing is stamped onto the issue — every consumer\n* (the family verdict below, the framework aggregate's unclaimed-elements\n* sweep via {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable})\n* calls this the same way, resolved by the family/target that owns the node\n* vocabulary. `undefined` for an issue with no node.\n*/\nfunction classifyDiffSubjectGranularity(issue, granularityOf) {\n\tconst node = issueNode(issue);\n\treturn node === void 0 ? void 0 : granularityOf(node.nodeKind);\n}\n/**\n* Resolves an issue's storage `entityKind` on demand, from the issue's\n* node's `nodeKind` via the target-provided `entityKindOf` map — the sibling\n* of {@link classifyDiffSubjectGranularity}, called the same way by the same\n* consumers (via\n* {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}).\n* `undefined` for an issue with no node, or for a node kind with no storage\n* entity of its own.\n*/\nfunction classifyDiffEntityKind(issue, entityKindOf) {\n\tconst node = issueNode(issue);\n\treturn node === void 0 ? void 0 : entityKindOf(node.nodeKind);\n}\n/**\n* Re-keys the legacy `classifySqlVerifierIssueKind` category mapping on the\n* issue's {@link DiffSubjectGranularity} (resolved via `granularityOf`) + the\n* issue reason. The vocabulary maps one-to-one: an undeclared live entity or\n* namespace is `extraTopLevelObject`, an undeclared live field\n* `extraNestedElement`, undeclared auxiliaries (constraints, indexes,\n* defaults) and structural leaves (policies) `extraAuxiliary`; every paired\n* divergence is `declaredIncompatible`; anything the database lacks is\n* `declaredMissing`.\n* `granularityOf` is the target's classifier, so target and extension node\n* kinds classify without the family importing them.\n*/\nfunction classifySqlDiffIssue(issue, granularityOf) {\n\tif (issueOutcome(issue) === \"not-found\") return \"declaredMissing\";\n\tif (issueOutcome(issue) === \"not-expected\") {\n\t\tconst granularity = classifyDiffSubjectGranularity(issue, granularityOf);\n\t\tif (granularity === \"entity\" || granularity === \"namespace\") return \"extraTopLevelObject\";\n\t\tif (granularity === \"field\") return \"extraNestedElement\";\n\t\treturn \"extraAuxiliary\";\n\t}\n\treturn \"declaredIncompatible\";\n}\n/**\n* Whether a `not-expected` issue is a strict-mode-only finding. The legacy\n* walk detected every relational extra (namespaces, entities, fields, and\n* their auxiliaries) only under `--strict`; the structural diff (roots, RLS\n* policies, roles) was never strict-gated — its extras fail in both modes.\n* Keyed on the issue's granularity, resolved via `granularityOf`.\n*/\nfunction isStrictOnlyExtra(issue, granularityOf) {\n\tconst granularity = classifyDiffSubjectGranularity(issue, granularityOf);\n\treturn granularity === \"namespace\" || granularity === \"entity\" || granularity === \"field\" || granularity === \"auxiliary\";\n}\n/**\n* Applies the two consumer filters to a diff issue list: strict gating\n* (relational `not-expected` findings drop in lenient mode) and\n* control-policy disposition (each surviving issue grades against its\n* subject table's effective policy; suppressed issues drop, `observed`\n* subjects warn). The verify verdict is `failures.length === 0`.\n*/\nfunction computeSqlDiffVerdict(input) {\n\tconst failures = [];\n\tconst warnings = [];\n\tfor (const issue of input.issues) {\n\t\tif (!input.strict && issueOutcome(issue) === \"not-expected\" && isStrictOnlyExtra(issue, input.granularityOf)) continue;\n\t\tconst disposition = dispositionForCategory(effectiveControlPolicy(input.resolveControlPolicy(issue), input.defaultControlPolicy), classifySqlDiffIssue(issue, input.granularityOf));\n\t\tif (disposition === \"suppress\") continue;\n\t\tif (disposition === \"warn\") {\n\t\t\twarnings.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tfailures.push(issue);\n\t}\n\treturn {\n\t\tfailures,\n\t\twarnings\n\t};\n}\nfunction computeStorageTypeVerdict(input) {\n\tconst failures = [];\n\tconst warnings = [];\n\tconst policy = effectiveControlPolicy(void 0, input.contract.defaultControlPolicy);\n\tfor (const pair of input.namespacePairs) {\n\t\tif (pair.actual === void 0) continue;\n\t\tfor (const [typeName, typeInstance] of Object.entries(input.contract.storage.types ?? {})) {\n\t\t\tif (!isStorageTypeInstance(typeInstance)) continue;\n\t\t\tconst hook = input.codecHooks.get(typeInstance.codecId);\n\t\t\tif (!hook?.verifyType) continue;\n\t\t\tconst typeIssues = hook.verifyType({\n\t\t\t\ttypeName,\n\t\t\t\ttypeInstance,\n\t\t\t\tschema: pair.actual\n\t\t\t});\n\t\t\tfor (const issue of typeIssues) {\n\t\t\t\tconst disposition = verifierDisposition(policy, issue);\n\t\t\t\tif (disposition === \"suppress\") continue;\n\t\t\t\tif (disposition === \"warn\") {\n\t\t\t\t\twarnings.push(issue);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfailures.push(issue);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tfailures,\n\t\twarnings\n\t};\n}\n/**\n* THE SQL schema verify: runs the target's full-tree node diff, grades it\n* through the family's post-diff filters (strict gating + control-policy\n* disposition) plus the codec `verifyType` hook findings, and wraps the\n* verdict in the issue-based result envelope. `ok` holds exactly when both\n* issue lists are empty — the lists carry the verdict's failures.\n*/\nfunction verifySqlSchemaByDiff(input) {\n\tconst startTime = Date.now();\n\tconst verdictDiff = input.diffSchema({\n\t\tcontract: input.contract,\n\t\tschema: input.schema,\n\t\tframeworkComponents: input.frameworkComponents\n\t});\n\tconst diffVerdict = computeSqlDiffVerdict({\n\t\tissues: verdictDiff.issues,\n\t\tresolveControlPolicy: verdictDiff.resolveControlPolicy,\n\t\tstrict: input.strict,\n\t\tdefaultControlPolicy: input.contract.defaultControlPolicy,\n\t\tgranularityOf: input.granularityOf\n\t});\n\tconst storageTypeVerdict = computeStorageTypeVerdict({\n\t\tcontract: input.contract,\n\t\tnamespacePairs: verdictDiff.namespacePairs,\n\t\tcodecHooks: extractCodecControlHooks(input.frameworkComponents)\n\t});\n\tconst failCount = diffVerdict.failures.length + storageTypeVerdict.failures.length;\n\tconst ok = failCount === 0;\n\tconst profileHash = \"profileHash\" in input.contract && typeof input.contract.profileHash === \"string\" ? input.contract.profileHash : void 0;\n\treturn {\n\t\tok,\n\t\t...ok ? {} : { code: VERIFY_CODE_SCHEMA_FAILURE },\n\t\tsummary: ok ? \"Database schema satisfies contract\" : `Database schema does not satisfy contract (${failCount} failure${failCount === 1 ? \"\" : \"s\"})`,\n\t\tcontract: {\n\t\t\tstorageHash: input.contract.storage.storageHash,\n\t\t\t...ifDefined(\"profileHash\", profileHash)\n\t\t},\n\t\ttarget: {\n\t\t\texpected: input.contract.target,\n\t\t\tactual: input.contract.target\n\t\t},\n\t\tschema: {\n\t\t\tissues: [...diffVerdict.failures, ...storageTypeVerdict.failures],\n\t\t\twarnings: { issues: [...diffVerdict.warnings, ...storageTypeVerdict.warnings] }\n\t\t},\n\t\tmeta: { strict: input.strict },\n\t\ttimings: { total: Date.now() - startTime }\n\t};\n}\n//#endregion\nexport { computeStorageTypeVerdict as a, extractCodecControlHooks as c, computeSqlDiffVerdict as i, classifyDiffSubjectGranularity as n, verifySqlSchemaByDiff as o, classifySqlDiffIssue as r, enforceSqlDataTypeInvariants as s, classifyDiffEntityKind as t };\n\n//# sourceMappingURL=schema-verify-lPfqY_aE.mjs.map"],"mappings":";;;;;;;;;AASA,SAAS,qBAAqB,YAAY;CACzC,IAAI,OAAO,eAAe,YAAY,eAAe,MAAM,OAAO;CAClE,MAAM,QAAQ,UAAU,UAAU,CAAC,CAAC,OAAO,YAAY;CACvD,OAAO,UAAU,QAAQ,UAAU,KAAK,KAAK,OAAO,UAAU;AAC/D;AACA,SAAS,yBAAyB,aAAa;CAC9C,MAAM,wBAAwB,IAAI,IAAI;CACtC,MAAM,yBAAyB,IAAI,IAAI;CACvC,KAAK,MAAM,cAAc,aAAa;EACrC,IAAI,OAAO,eAAe,YAAY,eAAe,MAAM;EAC3D,IAAI,CAAC,qBAAqB,UAAU,GAAG;EACvC,MAAM,oBAAoB,WAAW,MAAM,WAAW;EACtD,KAAK,MAAM,CAAC,SAAS,SAAS,OAAO,QAAQ,iBAAiB,GAAG;GAChE,uBAAuB;IACtB;IACA;IACA,cAAc,WAAW;IACzB,aAAa;IACb,sBAAsB;GACvB,CAAC;GACD,MAAM,IAAI,SAAS,IAAI;GACvB,OAAO,IAAI,SAAS,WAAW,EAAE;EAClC;CACD;CACA,OAAO;AACR;;;;;;;;AAQA,SAAS,6BAA6B,mBAAmB,kBAAkB;CAC1E,MAAM,eAAe,IAAI,IAAI,kBAAkB,KAAK,aAAa,CAAC,SAAS,KAAK,IAAI,QAAQ,CAAC,CAAC;CAC9F,MAAM,YAAY,SAAS,cAAc,KAAK,GAAG,oBAAoB,aAAa,IAAI,KAAK,EAAE,CAAC,EAAE,iBAAiB,YAAY;CAC7H,MAAM,YAAY,yBAAyB,kBAAkB,KAAK,EAAE,WAAW,IAAI,CAAC;CACpF,IAAI,cAAc,KAAK,GAAG;EACzB,MAAM,EAAE,OAAO,QAAQ,WAAW;EAClC,IAAI,OAAO,OAAO,QAAQ,MAAM,IAAI,cAAc,OAAO,SAAS,KAAK,EAAE,WAAW,SAAS,MAAM,EAAE,wBAAwB,OAAO,KAAK,GAAG;EAC5I,MAAM,IAAI,cAAc,OAAO,SAAS,KAAK,EAAE,oBAAoB,OAAO,MAAM,mCAAmC,OAAO,OAAO,mBAAmB,SAAS,MAAM,EAAE,EAAE;CACxK;CACA,oCAAoC,iBAAiB;CACrD,KAAK,MAAM,SAAS,kBAAkB;EACrC,MAAM,cAAc,aAAa,IAAI,MAAM,QAAQ,CAAC,EAAE;EACtD,IAAI,gBAAgB,KAAK,KAAK,cAAc,WAAW,GAAG;EAC1D,MAAM,IAAI,cAAc,UAAU,MAAM,QAAQ,eAAe,SAAS,WAAW,EAAE,kIAAkI;CACxN;AACD;;;;;;;AASA,SAAS,6BAA6B,OAAO;CAC5C,IAAI,aAAa,KAAK,MAAM,aAAa,OAAO;CAChD,IAAI,aAAa,KAAK,MAAM,gBAAgB,OAAO;CACnD,OAAO;AACR;AACA,SAAS,oBAAoB,eAAe,OAAO;CAClD,OAAO,uBAAuB,eAAe,6BAA6B,KAAK,CAAC;AACjF;AAGA,SAAS,UAAU,OAAO;CACzB,MAAM,OAAO,MAAM,YAAY,MAAM;CACrC,IAAI,SAAS,KAAK,GAAG,OAAO,KAAK;CACjC,OAAO,UAAU,IAAI;AACtB;;;;;;;;;;;AAWA,SAAS,+BAA+B,OAAO,eAAe;CAC7D,MAAM,OAAO,UAAU,KAAK;CAC5B,OAAO,SAAS,KAAK,IAAI,KAAK,IAAI,cAAc,KAAK,QAAQ;AAC9D;;;;;;;;;;AAUA,SAAS,uBAAuB,OAAO,cAAc;CACpD,MAAM,OAAO,UAAU,KAAK;CAC5B,OAAO,SAAS,KAAK,IAAI,KAAK,IAAI,aAAa,KAAK,QAAQ;AAC7D;;;;;;;;;;;;;AAaA,SAAS,qBAAqB,OAAO,eAAe;CACnD,IAAI,aAAa,KAAK,MAAM,aAAa,OAAO;CAChD,IAAI,aAAa,KAAK,MAAM,gBAAgB;EAC3C,MAAM,cAAc,+BAA+B,OAAO,aAAa;EACvE,IAAI,gBAAgB,YAAY,gBAAgB,aAAa,OAAO;EACpE,IAAI,gBAAgB,SAAS,OAAO;EACpC,OAAO;CACR;CACA,OAAO;AACR;;;;;;;;AAQA,SAAS,kBAAkB,OAAO,eAAe;CAChD,MAAM,cAAc,+BAA+B,OAAO,aAAa;CACvE,OAAO,gBAAgB,eAAe,gBAAgB,YAAY,gBAAgB,WAAW,gBAAgB;AAC9G;;;;;;;;AAQA,SAAS,sBAAsB,OAAO;CACrC,MAAM,WAAW,CAAC;CAClB,MAAM,WAAW,CAAC;CAClB,KAAK,MAAM,SAAS,MAAM,QAAQ;EACjC,IAAI,CAAC,MAAM,UAAU,aAAa,KAAK,MAAM,kBAAkB,kBAAkB,OAAO,MAAM,aAAa,GAAG;EAC9G,MAAM,cAAc,uBAAuB,uBAAuB,MAAM,qBAAqB,KAAK,GAAG,MAAM,oBAAoB,GAAG,qBAAqB,OAAO,MAAM,aAAa,CAAC;EAClL,IAAI,gBAAgB,YAAY;EAChC,IAAI,gBAAgB,QAAQ;GAC3B,SAAS,KAAK,KAAK;GACnB;EACD;EACA,SAAS,KAAK,KAAK;CACpB;CACA,OAAO;EACN;EACA;CACD;AACD;AACA,SAAS,0BAA0B,OAAO;CACzC,MAAM,WAAW,CAAC;CAClB,MAAM,WAAW,CAAC;CAClB,MAAM,SAAS,uBAAuB,KAAK,GAAG,MAAM,SAAS,oBAAoB;CACjF,KAAK,MAAM,QAAQ,MAAM,gBAAgB;EACxC,IAAI,KAAK,WAAW,KAAK,GAAG;EAC5B,KAAK,MAAM,CAAC,UAAU,iBAAiB,OAAO,QAAQ,MAAM,SAAS,QAAQ,SAAS,CAAC,CAAC,GAAG;GAC1F,IAAI,CAAC,sBAAsB,YAAY,GAAG;GAC1C,MAAM,OAAO,MAAM,WAAW,IAAI,aAAa,OAAO;GACtD,IAAI,CAAC,MAAM,YAAY;GACvB,MAAM,aAAa,KAAK,WAAW;IAClC;IACA;IACA,QAAQ,KAAK;GACd,CAAC;GACD,KAAK,MAAM,SAAS,YAAY;IAC/B,MAAM,cAAc,oBAAoB,QAAQ,KAAK;IACrD,IAAI,gBAAgB,YAAY;IAChC,IAAI,gBAAgB,QAAQ;KAC3B,SAAS,KAAK,KAAK;KACnB;IACD;IACA,SAAS,KAAK,KAAK;GACpB;EACD;CACD;CACA,OAAO;EACN;EACA;CACD;AACD;;;;;;;;AAQA,SAAS,sBAAsB,OAAO;CACrC,MAAM,YAAY,KAAK,IAAI;CAC3B,MAAM,cAAc,MAAM,WAAW;EACpC,UAAU,MAAM;EAChB,QAAQ,MAAM;EACd,qBAAqB,MAAM;CAC5B,CAAC;CACD,MAAM,cAAc,sBAAsB;EACzC,QAAQ,YAAY;EACpB,sBAAsB,YAAY;EAClC,QAAQ,MAAM;EACd,sBAAsB,MAAM,SAAS;EACrC,eAAe,MAAM;CACtB,CAAC;CACD,MAAM,qBAAqB,0BAA0B;EACpD,UAAU,MAAM;EAChB,gBAAgB,YAAY;EAC5B,YAAY,yBAAyB,MAAM,mBAAmB;CAC/D,CAAC;CACD,MAAM,YAAY,YAAY,SAAS,SAAS,mBAAmB,SAAS;CAC5E,MAAM,KAAK,cAAc;CACzB,MAAM,cAAc,iBAAiB,MAAM,YAAY,OAAO,MAAM,SAAS,gBAAgB,WAAW,MAAM,SAAS,cAAc,KAAK;CAC1I,OAAO;EACN;EACA,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,2BAA2B;EAChD,SAAS,KAAK,uCAAuC,8CAA8C,UAAU,UAAU,cAAc,IAAI,KAAK,IAAI;EAClJ,UAAU;GACT,aAAa,MAAM,SAAS,QAAQ;GACpC,GAAG,UAAU,eAAe,WAAW;EACxC;EACA,QAAQ;GACP,UAAU,MAAM,SAAS;GACzB,QAAQ,MAAM,SAAS;EACxB;EACA,QAAQ;GACP,QAAQ,CAAC,GAAG,YAAY,UAAU,GAAG,mBAAmB,QAAQ;GAChE,UAAU,EAAE,QAAQ,CAAC,GAAG,YAAY,UAAU,GAAG,mBAAmB,QAAQ,EAAE;EAC/E;EACA,MAAM,EAAE,QAAQ,MAAM,OAAO;EAC7B,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,UAAU;CAC1C;AACD"}
1
+ {"version":3,"file":"schema-verify-DIfHSB4I-BK55V2WO.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/schema-verify-DIfHSB4I.mjs"],"sourcesContent":["import { assertNothingCastsFromSqlExpression } from \"@internal/sql-contract/sql-expression\";\nimport { VERIFY_CODE_SCHEMA_FAILURE, assertUniqueCodecOwner, dispositionForCategory, issueOutcome } from \"@internal/framework-components/control\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { findSqlDataTypeCollision, isSqlDataType } from \"@internal/sql-contract/data-type\";\nimport { isStorageTypeInstance } from \"@internal/sql-contract/types\";\nimport { effectiveControlPolicy } from \"@internal/contract/types\";\n//#region src/core/assembly.ts\nfunction hasCodecControlHooks(descriptor) {\n\tif (typeof descriptor !== \"object\" || descriptor === null) return false;\n\tconst hooks = blindCast(descriptor).types?.codecTypes?.controlPlaneHooks;\n\treturn hooks !== null && hooks !== void 0 && typeof hooks === \"object\";\n}\nfunction extractCodecControlHooks(descriptors) {\n\tconst hooks = /* @__PURE__ */ new Map();\n\tconst owners = /* @__PURE__ */ new Map();\n\tfor (const descriptor of descriptors) {\n\t\tif (typeof descriptor !== \"object\" || descriptor === null) continue;\n\t\tif (!hasCodecControlHooks(descriptor)) continue;\n\t\tconst controlPlaneHooks = descriptor.types.codecTypes.controlPlaneHooks;\n\t\tfor (const [codecId, hook] of Object.entries(controlPlaneHooks)) {\n\t\t\tassertUniqueCodecOwner({\n\t\t\t\tcodecId,\n\t\t\t\towners,\n\t\t\t\tdescriptorId: descriptor.id,\n\t\t\t\tentityLabel: \"control hooks\",\n\t\t\t\tentityOwnershipLabel: \"owner\"\n\t\t\t});\n\t\t\thooks.set(codecId, hook);\n\t\t\towners.set(codecId, descriptor.id);\n\t\t}\n\t}\n\treturn hooks;\n}\n/**\n* The SQL family's checks of the stack's data types and codecs, each naming the contributor:\n* no two SQL data types would both recognise one reported type, by colliding claiming texts or by\n* claiming the same kind; no data type casts from `sql/expression`; and every codec represents a\n* SQL data type, because a codec represents a column's type and `sql/expression` is the one data\n* type no column has.\n*/\nfunction enforceSqlDataTypeInvariants(declaredDataTypes, codecDescriptors) {\n\tconst declaredById = new Map(declaredDataTypes.map((declared) => [declared.type.id, declared]));\n\tconst describe = (type) => `data type \"${type.id}\" contributed by \"${declaredById.get(type.id)?.contributedBy ?? \"<unknown>\"}\"`;\n\tconst collision = findSqlDataTypeCollision(declaredDataTypes.map(({ type }) => type));\n\tif (collision !== void 0) {\n\t\tconst { first, second, claims } = collision;\n\t\tif (claims.by === \"kind\") throw new InternalError(`The ${describe(first)} and the ${describe(second)} both claim the kind \"${claims.kind}\".`);\n\t\tthrow new InternalError(`The ${describe(first)} claims the text \"${claims.first}\", which collides with the text \"${claims.second}\" claimed by the ${describe(second)}.`);\n\t}\n\tassertNothingCastsFromSqlExpression(declaredDataTypes);\n\tfor (const codec of codecDescriptors) {\n\t\tconst represented = declaredById.get(codec.dataType)?.type;\n\t\tif (represented === void 0 || isSqlDataType(represented)) continue;\n\t\tthrow new InternalError(`Codec \"${codec.codecId}\" represents ${describe(represented)}, which is not a SQL data type. In a SQL stack a codec represents a column's type, so its data type is declared with sqlDataType.`);\n\t}\n}\n//#endregion\n//#region src/core/diff/verifier-disposition.ts\n/**\n* Classifies a codec `verifyType` hook finding into the target-neutral\n* categories the framework grades. A storage type is a named type instance\n* (e.g. a native enum); the only shape divergence it can carry is a change\n* to its value set, so a paired mismatch always classifies as `valueDrift`.\n*/\nfunction classifyStorageTypeDiffIssue(issue) {\n\tif (issueOutcome(issue) === \"not-found\") return \"declaredMissing\";\n\tif (issueOutcome(issue) === \"not-expected\") return \"extraAuxiliary\";\n\treturn \"valueDrift\";\n}\nfunction verifierDisposition(controlPolicy, issue) {\n\treturn dispositionForCategory(controlPolicy, classifyStorageTypeDiffIssue(issue));\n}\n//#endregion\n//#region src/core/diff/schema-verify.ts\nfunction issueNode(issue) {\n\tconst node = issue.expected ?? issue.actual;\n\tif (node === void 0) return void 0;\n\treturn blindCast(node);\n}\n/**\n* Resolves an issue's framework-neutral {@link DiffSubjectGranularity} on\n* demand, from the issue's node's `nodeKind` via the target-provided\n* `granularityOf` map. The node carries only its `nodeKind` identity, never a\n* classification, and nothing is stamped onto the issue — every consumer\n* (the family verdict below, the framework aggregate's unclaimed-elements\n* sweep via {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable})\n* calls this the same way, resolved by the family/target that owns the node\n* vocabulary. `undefined` for an issue with no node.\n*/\nfunction classifyDiffSubjectGranularity(issue, granularityOf) {\n\tconst node = issueNode(issue);\n\treturn node === void 0 ? void 0 : granularityOf(node.nodeKind);\n}\n/**\n* Resolves an issue's storage `entityKind` on demand, from the issue's\n* node's `nodeKind` via the target-provided `entityKindOf` map — the sibling\n* of {@link classifyDiffSubjectGranularity}, called the same way by the same\n* consumers (via\n* {@link import('@internal/framework-components/control').SchemaSubjectClassifierCapable}).\n* `undefined` for an issue with no node, or for a node kind with no storage\n* entity of its own.\n*/\nfunction classifyDiffEntityKind(issue, entityKindOf) {\n\tconst node = issueNode(issue);\n\treturn node === void 0 ? void 0 : entityKindOf(node.nodeKind);\n}\n/**\n* Re-keys the legacy `classifySqlVerifierIssueKind` category mapping on the\n* issue's {@link DiffSubjectGranularity} (resolved via `granularityOf`) + the\n* issue reason. The vocabulary maps one-to-one: an undeclared live entity or\n* namespace is `extraTopLevelObject`, an undeclared live field\n* `extraNestedElement`, undeclared auxiliaries (constraints, indexes,\n* defaults) and structural leaves (policies) `extraAuxiliary`; every paired\n* divergence is `declaredIncompatible`; anything the database lacks is\n* `declaredMissing`.\n* `granularityOf` is the target's classifier, so target and extension node\n* kinds classify without the family importing them.\n*/\nfunction classifySqlDiffIssue(issue, granularityOf) {\n\tif (issueOutcome(issue) === \"not-found\") return \"declaredMissing\";\n\tif (issueOutcome(issue) === \"not-expected\") {\n\t\tconst granularity = classifyDiffSubjectGranularity(issue, granularityOf);\n\t\tif (granularity === \"entity\" || granularity === \"namespace\") return \"extraTopLevelObject\";\n\t\tif (granularity === \"field\") return \"extraNestedElement\";\n\t\treturn \"extraAuxiliary\";\n\t}\n\treturn \"declaredIncompatible\";\n}\n/**\n* Whether a `not-expected` issue is a strict-mode-only finding. The legacy\n* walk detected every relational extra (namespaces, entities, fields, and\n* their auxiliaries) only under `--strict`; the structural diff (roots, RLS\n* policies, roles) was never strict-gated — its extras fail in both modes.\n* Keyed on the issue's granularity, resolved via `granularityOf`.\n*/\nfunction isStrictOnlyExtra(issue, granularityOf) {\n\tconst granularity = classifyDiffSubjectGranularity(issue, granularityOf);\n\treturn granularity === \"namespace\" || granularity === \"entity\" || granularity === \"field\" || granularity === \"auxiliary\";\n}\n/**\n* Applies the two consumer filters to a diff issue list: strict gating\n* (relational `not-expected` findings drop in lenient mode) and\n* control-policy disposition (each surviving issue grades against its\n* subject table's effective policy; suppressed issues drop, `observed`\n* subjects warn). The verify verdict is `failures.length === 0`.\n*/\nfunction computeSqlDiffVerdict(input) {\n\tconst failures = [];\n\tconst warnings = [];\n\tfor (const issue of input.issues) {\n\t\tif (!input.strict && issueOutcome(issue) === \"not-expected\" && isStrictOnlyExtra(issue, input.granularityOf)) continue;\n\t\tconst disposition = dispositionForCategory(effectiveControlPolicy(input.resolveControlPolicy(issue), input.defaultControlPolicy), classifySqlDiffIssue(issue, input.granularityOf));\n\t\tif (disposition === \"suppress\") continue;\n\t\tif (disposition === \"warn\") {\n\t\t\twarnings.push(issue);\n\t\t\tcontinue;\n\t\t}\n\t\tfailures.push(issue);\n\t}\n\treturn {\n\t\tfailures,\n\t\twarnings\n\t};\n}\nfunction computeStorageTypeVerdict(input) {\n\tconst failures = [];\n\tconst warnings = [];\n\tconst policy = effectiveControlPolicy(void 0, input.contract.defaultControlPolicy);\n\tfor (const pair of input.namespacePairs) {\n\t\tif (pair.actual === void 0) continue;\n\t\tfor (const [typeName, typeInstance] of Object.entries(input.contract.storage.types ?? {})) {\n\t\t\tif (!isStorageTypeInstance(typeInstance)) continue;\n\t\t\tconst hook = input.codecHooks.get(typeInstance.codecId);\n\t\t\tif (!hook?.verifyType) continue;\n\t\t\tconst typeIssues = hook.verifyType({\n\t\t\t\ttypeName,\n\t\t\t\ttypeInstance,\n\t\t\t\tschema: pair.actual\n\t\t\t});\n\t\t\tfor (const issue of typeIssues) {\n\t\t\t\tconst disposition = verifierDisposition(policy, issue);\n\t\t\t\tif (disposition === \"suppress\") continue;\n\t\t\t\tif (disposition === \"warn\") {\n\t\t\t\t\twarnings.push(issue);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfailures.push(issue);\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tfailures,\n\t\twarnings\n\t};\n}\n/**\n* THE SQL schema verify: runs the target's full-tree node diff, grades it\n* through the family's post-diff filters (strict gating + control-policy\n* disposition) plus the codec `verifyType` hook findings, and wraps the\n* verdict in the issue-based result envelope. `ok` holds exactly when both\n* issue lists are empty — the lists carry the verdict's failures.\n*/\nfunction verifySqlSchemaByDiff(input) {\n\tconst startTime = Date.now();\n\tconst verdictDiff = input.diffSchema({\n\t\tcontract: input.contract,\n\t\tschema: input.schema,\n\t\tframeworkComponents: input.frameworkComponents\n\t});\n\tconst diffVerdict = computeSqlDiffVerdict({\n\t\tissues: verdictDiff.issues,\n\t\tresolveControlPolicy: verdictDiff.resolveControlPolicy,\n\t\tstrict: input.strict,\n\t\tdefaultControlPolicy: input.contract.defaultControlPolicy,\n\t\tgranularityOf: input.granularityOf\n\t});\n\tconst storageTypeVerdict = computeStorageTypeVerdict({\n\t\tcontract: input.contract,\n\t\tnamespacePairs: verdictDiff.namespacePairs,\n\t\tcodecHooks: extractCodecControlHooks(input.frameworkComponents)\n\t});\n\tconst failCount = diffVerdict.failures.length + storageTypeVerdict.failures.length;\n\tconst ok = failCount === 0;\n\tconst profileHash = \"profileHash\" in input.contract && typeof input.contract.profileHash === \"string\" ? input.contract.profileHash : void 0;\n\treturn {\n\t\tok,\n\t\t...ok ? {} : { code: VERIFY_CODE_SCHEMA_FAILURE },\n\t\tsummary: ok ? \"Database schema satisfies contract\" : `Database schema does not satisfy contract (${failCount} failure${failCount === 1 ? \"\" : \"s\"})`,\n\t\tcontract: {\n\t\t\tstorageHash: input.contract.storage.storageHash,\n\t\t\t...ifDefined(\"profileHash\", profileHash)\n\t\t},\n\t\ttarget: {\n\t\t\texpected: input.contract.target,\n\t\t\tactual: input.contract.target\n\t\t},\n\t\tschema: {\n\t\t\tissues: [...diffVerdict.failures, ...storageTypeVerdict.failures],\n\t\t\twarnings: { issues: [...diffVerdict.warnings, ...storageTypeVerdict.warnings] }\n\t\t},\n\t\tmeta: { strict: input.strict },\n\t\ttimings: { total: Date.now() - startTime }\n\t};\n}\n//#endregion\nexport { computeStorageTypeVerdict as a, extractCodecControlHooks as c, computeSqlDiffVerdict as i, classifyDiffSubjectGranularity as n, verifySqlSchemaByDiff as o, classifySqlDiffIssue as r, enforceSqlDataTypeInvariants as s, classifyDiffEntityKind as t };\n\n//# sourceMappingURL=schema-verify-DIfHSB4I.mjs.map"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { m as parseNaming } from "./naming-BLraiRfc-DKPaCL0a.mjs";
2
- import { o as SqlNode } from "./storage-table-BwwDKQkD-BN9cZrGX.mjs";
2
+ import { o as SqlNode } from "./storage-table-CyL4CNMi-zOQ-vTUd.mjs";
3
3
  import { ContractValidationError } from "@prisma/orm-framework/contract/contract-validation-error";
4
4
  import { freezeNode } from "@prisma/orm-framework/components/ir";
5
- //#region ../../../2-sql/1-core/contract/dist/serialized-index-BeGqqsrC.mjs
5
+ //#region ../../../2-sql/1-core/contract/dist/serialized-index-QAYy0fjm.mjs
6
6
  /**
7
7
  * SQL Contract IR node for a value-set entry in a namespace's `valueSet`
8
8
  * map (`SqlNamespace.entries.valueSet`).
@@ -71,4 +71,4 @@ function indexInputFromSerialized(flat) {
71
71
  //#endregion
72
72
  export { isStorageValueSet as i, checkConstraintInputFromSerialized as n, indexInputFromSerialized as r, StorageValueSet as t };
73
73
 
74
- //# sourceMappingURL=serialized-index-BeGqqsrC-PymnV1h-.mjs.map
74
+ //# sourceMappingURL=serialized-index-QAYy0fjm-BW4shnLC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialized-index-BeGqqsrC-PymnV1h-.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/serialized-index-BeGqqsrC.mjs"],"sourcesContent":["import { l as SqlNode } from \"./storage-table-BwwDKQkD.mjs\";\nimport { parseNaming } from \"@internal/sql-schema-ir/naming\";\nimport { freezeNode } from \"@internal/framework-components/ir\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\n//#region src/ir/storage-value-set.ts\n/**\n* SQL Contract IR node for a value-set entry in a namespace's `valueSet`\n* map (`SqlNamespace.entries.valueSet`).\n*\n* A value-set records the ordered set of permitted codec-encoded values for\n* an enum-like column restriction. It does not carry a `codecId` — the\n* column that references it already holds the codec; the value-set holds\n* only the permitted values.\n*\n* The node's `kind` is enumerable (`'valueSet'`) so the JSON envelope\n* carries the discriminator and the serializer hydration walker can\n* dispatch on it. This follows the per-leaf enumerable-kind convention\n* established in the SQL-node comment (future polymorphic dispatch on\n* namespace entries needs the discriminator in JSON).\n*\n* The entry's name is not on the class — value-sets are keyed by name in\n* the parent namespace's `valueSet: Record<string, StorageValueSet>` map.\n*/\nvar StorageValueSet = class extends SqlNode {\n\tkind = \"valueSet\";\n\tvalues;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.values = Object.freeze([...input.values]);\n\t\tfreezeNode(this);\n\t}\n};\nfunction isStorageValueSet(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn \"kind\" in value && value.kind === \"valueSet\" && \"values\" in value;\n}\n//#endregion\n//#region src/serialized-check-constraint.ts\n/**\n* Hydrates one stored check constraint into constructor input. `parseNaming`\n* is what rejects a hand-edited file whose `prefix` and `name` disagree.\n*/\nfunction checkConstraintInputFromSerialized(flat) {\n\treturn {\n\t\tnaming: parseNaming(flat.name, flat.prefix),\n\t\texpression: flat.expression\n\t};\n}\n//#endregion\n//#region src/serialized-index.ts\n/**\n* Hydrates one stored index into constructor input. The parameter is typed\n* but the values are whatever the file held, so each field the union depends\n* on is checked here rather than downstream — by the time `Index` sees the\n* data it is already a valid union.\n*/\nfunction indexInputFromSerialized(flat) {\n\tif (flat.name === void 0 || flat.name.length === 0) throw new ContractValidationError(\"Index: every index carries a full physical name; an expression index must be explicitly named (a default name cannot be derived from an expression).\", \"storage\");\n\tif (flat.columns === void 0 === (flat.expression === void 0)) throw new ContractValidationError(`Index \"${flat.name}\": exactly one of columns or expression must be set.`, \"storage\");\n\tconst carried = {\n\t\tnaming: parseNaming(flat.name, flat.prefix),\n\t\twhere: flat.where,\n\t\tunique: flat.unique,\n\t\ttype: flat.type,\n\t\toptions: flat.options\n\t};\n\treturn flat.expression !== void 0 ? {\n\t\t...carried,\n\t\texpression: flat.expression\n\t} : {\n\t\t...carried,\n\t\tcolumns: flat.columns ?? []\n\t};\n}\n//#endregion\nexport { isStorageValueSet as i, checkConstraintInputFromSerialized as n, StorageValueSet as r, indexInputFromSerialized as t };\n\n//# sourceMappingURL=serialized-index-BeGqqsrC.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAI,kBAAkB,cAAc,QAAQ;CAC3C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC;EAC7C,WAAW,IAAI;CAChB;AACD;AACA,SAAS,kBAAkB,OAAO;CACjC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,OAAO,UAAU,SAAS,MAAM,SAAS,cAAc,YAAY;AACpE;;;;;AAOA,SAAS,mCAAmC,MAAM;CACjD,OAAO;EACN,QAAQ,YAAY,KAAK,MAAM,KAAK,MAAM;EAC1C,YAAY,KAAK;CAClB;AACD;;;;;;;AASA,SAAS,yBAAyB,MAAM;CACvC,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK,WAAW,GAAG,MAAM,IAAI,wBAAwB,wJAAwJ,SAAS;CACvP,IAAI,KAAK,YAAY,KAAK,OAAO,KAAK,eAAe,KAAK,IAAI,MAAM,IAAI,wBAAwB,UAAU,KAAK,KAAK,uDAAuD,SAAS;CACpL,MAAM,UAAU;EACf,QAAQ,YAAY,KAAK,MAAM,KAAK,MAAM;EAC1C,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,MAAM,KAAK;EACX,SAAS,KAAK;CACf;CACA,OAAO,KAAK,eAAe,KAAK,IAAI;EACnC,GAAG;EACH,YAAY,KAAK;CAClB,IAAI;EACH,GAAG;EACH,SAAS,KAAK,WAAW,CAAC;CAC3B;AACD"}
1
+ {"version":3,"file":"serialized-index-QAYy0fjm-BW4shnLC.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/serialized-index-QAYy0fjm.mjs"],"sourcesContent":["import { l as SqlNode } from \"./storage-table-CyL4CNMi.mjs\";\nimport { parseNaming } from \"@internal/sql-schema-ir/naming\";\nimport { freezeNode } from \"@internal/framework-components/ir\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\n//#region src/ir/storage-value-set.ts\n/**\n* SQL Contract IR node for a value-set entry in a namespace's `valueSet`\n* map (`SqlNamespace.entries.valueSet`).\n*\n* A value-set records the ordered set of permitted codec-encoded values for\n* an enum-like column restriction. It does not carry a `codecId` — the\n* column that references it already holds the codec; the value-set holds\n* only the permitted values.\n*\n* The node's `kind` is enumerable (`'valueSet'`) so the JSON envelope\n* carries the discriminator and the serializer hydration walker can\n* dispatch on it. This follows the per-leaf enumerable-kind convention\n* established in the SQL-node comment (future polymorphic dispatch on\n* namespace entries needs the discriminator in JSON).\n*\n* The entry's name is not on the class — value-sets are keyed by name in\n* the parent namespace's `valueSet: Record<string, StorageValueSet>` map.\n*/\nvar StorageValueSet = class extends SqlNode {\n\tkind = \"valueSet\";\n\tvalues;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.values = Object.freeze([...input.values]);\n\t\tfreezeNode(this);\n\t}\n};\nfunction isStorageValueSet(value) {\n\tif (typeof value !== \"object\" || value === null) return false;\n\treturn \"kind\" in value && value.kind === \"valueSet\" && \"values\" in value;\n}\n//#endregion\n//#region src/serialized-check-constraint.ts\n/**\n* Hydrates one stored check constraint into constructor input. `parseNaming`\n* is what rejects a hand-edited file whose `prefix` and `name` disagree.\n*/\nfunction checkConstraintInputFromSerialized(flat) {\n\treturn {\n\t\tnaming: parseNaming(flat.name, flat.prefix),\n\t\texpression: flat.expression\n\t};\n}\n//#endregion\n//#region src/serialized-index.ts\n/**\n* Hydrates one stored index into constructor input. The parameter is typed\n* but the values are whatever the file held, so each field the union depends\n* on is checked here rather than downstream — by the time `Index` sees the\n* data it is already a valid union.\n*/\nfunction indexInputFromSerialized(flat) {\n\tif (flat.name === void 0 || flat.name.length === 0) throw new ContractValidationError(\"Index: every index carries a full physical name; an expression index must be explicitly named (a default name cannot be derived from an expression).\", \"storage\");\n\tif (flat.columns === void 0 === (flat.expression === void 0)) throw new ContractValidationError(`Index \"${flat.name}\": exactly one of columns or expression must be set.`, \"storage\");\n\tconst carried = {\n\t\tnaming: parseNaming(flat.name, flat.prefix),\n\t\twhere: flat.where,\n\t\tunique: flat.unique,\n\t\ttype: flat.type,\n\t\toptions: flat.options\n\t};\n\treturn flat.expression !== void 0 ? {\n\t\t...carried,\n\t\texpression: flat.expression\n\t} : {\n\t\t...carried,\n\t\tcolumns: flat.columns ?? []\n\t};\n}\n//#endregion\nexport { isStorageValueSet as i, checkConstraintInputFromSerialized as n, StorageValueSet as r, indexInputFromSerialized as t };\n\n//# sourceMappingURL=serialized-index-QAYy0fjm.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAI,kBAAkB,cAAc,QAAQ;CAC3C,OAAO;CACP;CACA,YAAY,OAAO;EAClB,MAAM;EACN,KAAK,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC;EAC7C,WAAW,IAAI;CAChB;AACD;AACA,SAAS,kBAAkB,OAAO;CACjC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM,OAAO;CACxD,OAAO,UAAU,SAAS,MAAM,SAAS,cAAc,YAAY;AACpE;;;;;AAOA,SAAS,mCAAmC,MAAM;CACjD,OAAO;EACN,QAAQ,YAAY,KAAK,MAAM,KAAK,MAAM;EAC1C,YAAY,KAAK;CAClB;AACD;;;;;;;AASA,SAAS,yBAAyB,MAAM;CACvC,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK,WAAW,GAAG,MAAM,IAAI,wBAAwB,wJAAwJ,SAAS;CACvP,IAAI,KAAK,YAAY,KAAK,OAAO,KAAK,eAAe,KAAK,IAAI,MAAM,IAAI,wBAAwB,UAAU,KAAK,KAAK,uDAAuD,SAAS;CACpL,MAAM,UAAU;EACf,QAAQ,YAAY,KAAK,MAAM,KAAK,MAAM;EAC1C,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,MAAM,KAAK;EACX,SAAS,KAAK;CACf;CACA,OAAO,KAAK,eAAe,KAAK,IAAI;EACnC,GAAG;EACH,YAAY,KAAK;CAClB,IAAI;EACH,GAAG;EACH,SAAS,KAAK,WAAW,CAAC;CAC3B;AACD"}
@@ -1,7 +1,7 @@
1
1
  import { t as sqlContractCanonicalizationHooks } from "./canonicalization-hooks-dmXkOR4a.mjs";
2
- import { f as composeSqlEntityKinds } from "./entity-kinds-BNQFeECV-BOJmOArY.mjs";
3
- import { c as isMaterializedSqlNamespace, o as SqlStorage } from "./types-Cn4JEguu.mjs";
4
- import { i as createSqlContractSchema, s as resolveSqlToOneRelationStorage, u as validateSqlContractFully } from "./validators-IGdAEEIM.mjs";
2
+ import { f as composeSqlEntityKinds } from "./entity-kinds-JlqzyFoo-BR7NtlZL.mjs";
3
+ import { c as isMaterializedSqlNamespace, o as SqlStorage } from "./types-BlcZJEoC.mjs";
4
+ import { i as createSqlContractSchema, s as resolveSqlToOneRelationStorage, u as validateSqlContractFully } from "./validators-BF_JSK38.mjs";
5
5
  import { t as sqlFamilyError } from "./errors-B5g0xWro-mWH2C07F.mjs";
6
6
  import { ContractValidationError } from "@prisma/orm-framework/contract/contract-validation-error";
7
7
  import { hydrateNamespaceEntities } from "@prisma/orm-framework/components/ir";
@@ -10,7 +10,7 @@ import { ifDefined } from "@prisma/orm-framework/utils/defined";
10
10
  import { type } from "arktype";
11
11
  import { withDerivedToOneRelationNullability } from "@prisma/orm-framework/contract-authoring";
12
12
  import { isPlainRecord as isPlainRecord$1 } from "@prisma/orm-framework/contract/is-plain-record";
13
- //#region ../../../2-sql/9-family/dist/sql-contract-serializer-C90xg7_q.mjs
13
+ //#region ../../../2-sql/9-family/dist/sql-contract-serializer-DDaAVCQr.mjs
14
14
  const NamespaceRawSchema = type({
15
15
  id: "string",
16
16
  "kind?": "string",
@@ -127,7 +127,7 @@ var SqlContractSerializerBase = class {
127
127
  }
128
128
  hydrateStorageTypeEntry(entry) {
129
129
  if (typeof entry !== "object" || entry === null) return entry;
130
- const kind = isPlainRecord$1(entry) ? entry["kind"] : void 0;
130
+ const kind = isPlainRecord$1(entry) && "kind" in entry ? entry.kind : void 0;
131
131
  if (typeof kind !== "string") return entry;
132
132
  const factory = this.entityHydrationRegistry.get(kind);
133
133
  if (factory === void 0) return entry;
@@ -188,4 +188,4 @@ var SqlContractSerializer = class extends SqlContractSerializerBase {
188
188
  //#endregion
189
189
  export { SqlContractSerializerBase as n, SqlContractSerializer as t };
190
190
 
191
- //# sourceMappingURL=sql-contract-serializer-C90xg7_q-4UVEMTWO.mjs.map
191
+ //# sourceMappingURL=sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-contract-serializer-DDaAVCQr-h_U10PEJ.mjs","names":[],"sources":["../../../../2-sql/9-family/dist/sql-contract-serializer-DDaAVCQr.mjs"],"sourcesContent":["import { t as sqlFamilyError } from \"./errors-B5g0xWro.mjs\";\nimport { hydrateNamespaceEntities } from \"@internal/framework-components/ir\";\nimport { sqlContractCanonicalizationHooks } from \"@internal/sql-contract/canonicalization-hooks\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { SqlStorage, isMaterializedSqlNamespace } from \"@internal/sql-contract/types\";\nimport { createSqlContractSchema, resolveSqlToOneRelationStorage, validateSqlContractFully } from \"@internal/sql-contract/validators\";\nimport { isPlainRecord as isPlainRecord$1 } from \"@internal/contract/is-plain-record\";\nimport { withDerivedToOneRelationNullability } from \"@internal/contract-authoring\";\nimport { composeSqlEntityKinds } from \"@internal/sql-contract/entity-kinds\";\nimport { type } from \"arktype\";\n//#region src/core/ir/sql-contract-serializer-base.ts\nconst NamespaceRawSchema = type({\n\tid: \"string\",\n\t\"kind?\": \"string\",\n\tentries: type({ \"+\": \"ignore\" })\n});\n/**\n* A `contract.json` written before to-one relations recorded `nullable` (rc.9 and earlier)\n* loads with the flag derived from storage: nullable when any local FK column is nullable or\n* cannot be resolved.\n*/\nfunction withSqlToOneRelationNullability(contract) {\n\tconst domain = withDerivedToOneRelationNullability(contract.domain, ({ model, relation }) => {\n\t\tconst { ownsForeignKey, columns } = resolveSqlToOneRelationStorage(contract, blindCast(model.storage), relation);\n\t\treturn {\n\t\t\townsReference: ownsForeignKey,\n\t\t\tlocalFieldNullability: columns.map((column) => column.nullable)\n\t\t};\n\t});\n\treturn {\n\t\t...contract,\n\t\tdomain\n\t};\n}\n/**\n* SQL family `ContractSerializer` abstract base. Carries the SQL-shared\n* deserialization pipeline:\n*\n* 1. `parseSqlContractStructure` validates the on-disk JSON envelope\n* against the SQL contract arktype schema (`validateSqlContractFully`)\n* and returns the validated flat-data shape.\n* 2. `hydrateSqlStorage` walks the validated `storage` subtree and\n* constructs the family-shared SQL Contract IR class hierarchy\n* (`SqlStorage` -> `StorageTable` -> `StorageColumn` / `PrimaryKey`\n* / …). The rest of the contract envelope is JSON-clean primitive\n* data and passes through unchanged.\n* 3. `constructTargetContract` is the target-specific extension hook;\n* defaults to identity. Targets that need to attach target-only\n* fields (e.g. target-specific derived storage fields) override it.\n*\n* Default `serializeContract` is identity over the contract — concrete\n* SQL targets ship JSON-clean class instances, so the contract value\n* can be stringified directly. The non-enumerable family-level `kind`\n* discriminator on `SqlNode` instances stays out of the persisted\n* envelope automatically. Targets that need to canonicalize on the way\n* out (key ordering, dropping computed-only fields) override\n* `serializeContract` directly.\n*/\nvar SqlContractSerializerBase = class {\n\tentityHydrationRegistry;\n\tcontractSchema;\n\tentryKinds;\n\tconstructor(entityHydrationRegistry = /* @__PURE__ */ new Map(), packEntityKinds = []) {\n\t\tthis.entityHydrationRegistry = entityHydrationRegistry;\n\t\tthis.entryKinds = composeSqlEntityKinds(packEntityKinds);\n\t\tthis.contractSchema = packEntityKinds.length > 0 ? createSqlContractSchema(this.entryKinds) : void 0;\n\t}\n\tdeserializeContract(json) {\n\t\tconst validated = withSqlToOneRelationNullability(this.parseSqlContractStructure(json));\n\t\tconst hydrated = this.hydrateSqlStorage(validated);\n\t\treturn blindCast(this.constructTargetContract(hydrated));\n\t}\n\tserializeContract(contract) {\n\t\treturn blindCast(contract);\n\t}\n\tshouldPreserveEmpty = sqlContractCanonicalizationHooks.shouldPreserveEmpty;\n\tsortStorage = sqlContractCanonicalizationHooks.sortStorage;\n\thashCanonicalizationHooks = sqlContractCanonicalizationHooks;\n\tparseSqlContractStructure(json) {\n\t\treturn validateSqlContractFully(json, this.contractSchema !== void 0 ? { contractSchema: this.contractSchema } : void 0);\n\t}\n\thydrateSqlStorage(validated) {\n\t\tconst types = validated.storage.types;\n\t\tconst hydratedTypes = types !== void 0 ? Object.fromEntries(Object.entries(types).map(([name, entry]) => [name, this.hydrateStorageTypeEntry(entry)])) : void 0;\n\t\tconst rawNamespaces = validated.storage.namespaces;\n\t\tif (rawNamespaces === void 0) throw new ContractValidationError(\"Contract storage.namespaces is required after structural validation\", \"structural\");\n\t\tconst hydratedNamespaces = this.hydrateSqlNamespaceMap(blindCast(rawNamespaces));\n\t\treturn {\n\t\t\t...validated,\n\t\t\tstorage: new SqlStorage({\n\t\t\t\tstorageHash: validated.storage.storageHash,\n\t\t\t\t...ifDefined(\"types\", hydratedTypes),\n\t\t\t\tnamespaces: blindCast(hydratedNamespaces)\n\t\t\t})\n\t\t};\n\t}\n\thydrateSqlNamespaceMap(namespaces) {\n\t\treturn Object.fromEntries(Object.entries(namespaces).map(([nsId, namespaceEntryRaw]) => {\n\t\t\tconst namespaceHydrated = this.hydrateSqlNamespaceEntry(nsId, namespaceEntryRaw);\n\t\t\tif (!isMaterializedSqlNamespace(namespaceHydrated)) throw sqlFamilyError(\"CONTRACT.PACK_CONTRIBUTION_INVALID\", `Target serializer bug: hydrateSqlNamespaceEntry for namespace \"${nsId}\" returned a non-NamespaceBase value. Override hydrateSqlNamespaceEntry to produce a target namespace concretion.`, {\n\t\t\t\twhy: \"The target contract serializer hydrated a namespace into a value that is not a materialized namespace concretion.\",\n\t\t\t\tfix: \"Fix the target package: its hydrateSqlNamespaceEntry override must return a target namespace concretion.\",\n\t\t\t\tmeta: { namespaceId: nsId }\n\t\t\t});\n\t\t\treturn [nsId, namespaceHydrated];\n\t\t}));\n\t}\n\thydrateSqlNamespaceEntry(nsId, raw) {\n\t\tconst id = typeof raw[\"id\"] === \"string\" ? raw[\"id\"] : nsId;\n\t\tconst parsed = NamespaceRawSchema({\n\t\t\t...raw,\n\t\t\tid\n\t\t});\n\t\tif (parsed instanceof type.errors) throw new ContractValidationError(`Namespace hydration failed: ${parsed.map((p) => p.message).join(\"; \")}`, \"structural\");\n\t\tconst entriesRaw = parsed.entries;\n\t\tconst rawEntriesMap = isPlainRecord$1(entriesRaw) ? entriesRaw : {};\n\t\tconst entriesInput = {};\n\t\tfor (const [key, innerMap] of Object.entries(rawEntriesMap)) entriesInput[key] = isPlainRecord$1(innerMap) ? innerMap : Object.freeze({});\n\t\tconst entriesOutput = hydrateNamespaceEntities(entriesInput, this.entryKinds, \"fail\", id);\n\t\tif (!Object.hasOwn(entriesOutput, \"table\")) entriesOutput[\"table\"] = {};\n\t\treturn blindCast({\n\t\t\tid,\n\t\t\tentries: entriesOutput\n\t\t});\n\t}\n\thydrateStorageTypeEntry(entry) {\n\t\tif (typeof entry !== \"object\" || entry === null) return entry;\n\t\tconst kind = isPlainRecord$1(entry) && \"kind\" in entry ? entry.kind : void 0;\n\t\tif (typeof kind !== \"string\") return entry;\n\t\tconst factory = this.entityHydrationRegistry.get(kind);\n\t\tif (factory === void 0) return entry;\n\t\treturn blindCast(factory(entry));\n\t}\n\tconstructTargetContract(hydrated) {\n\t\treturn blindCast(hydrated);\n\t}\n\t/**\n\t* Serializes a namespace's `entries` dict by walking every enumerable\n\t* kind — no kind is named here, mirroring the generic hydrate walk in\n\t* `hydrateSqlNamespaceEntry` above. `table` is the SQL family's one\n\t* universal base kind (every namespace carries it), so it is always\n\t* emitted, even when empty; every other kind — target- or\n\t* pack-contributed — is emitted only when it holds at least one entry.\n\t* A kind carried non-enumerable on `entries` is excluded here for free,\n\t* since `Object.entries` honors enumerability.\n\t*/\n\tserializeNamespaceEntries(entries) {\n\t\tconst out = { table: this.serializeEntries(entries[\"table\"] ?? {}) };\n\t\tfor (const [kind, record] of Object.entries(entries)) {\n\t\t\tif (kind === \"table\" || record == null || Object.keys(record).length === 0) continue;\n\t\t\tout[kind] = this.serializeEntries(record);\n\t\t}\n\t\treturn out;\n\t}\n\tserializeEntries(entries) {\n\t\tconst out = {};\n\t\tfor (const [name, entry] of Object.entries(entries)) out[name] = this.serializeJsonObject(entry);\n\t\treturn out;\n\t}\n\tserializeJsonObject(value) {\n\t\treturn blindCast(this.serializeJsonValue(value));\n\t}\n\tserializeJsonValue(value) {\n\t\treturn blindCast(JSON.parse(JSON.stringify(value)));\n\t}\n};\n//#endregion\n//#region src/core/ir/sql-contract-serializer.ts\n/**\n* Default SQL family `ContractSerializer` concretion. Inherits the\n* full SQL-shared deserialization pipeline (structural validation +\n* IR-class hydration) without pack-registered `storage.types`\n* hydration factories — targets that emit polymorphic JSON outside the\n* codec-typed envelope wire a target-specific subclass with a populated\n* registry (see Postgres). Family-level call sites instantiate this\n* default directly when no target serializer is supplied.\n*\n* Because this serializer has no target concretion, deserialization of\n* contracts that include namespace entries from JSON will throw unless\n* the caller provides pre-hydrated `NamespaceBase` instances. Production\n* paths always supply a target-specific serializer.\n*/\nvar SqlContractSerializer = class extends SqlContractSerializerBase {\n\tconstructor() {\n\t\tsuper(/* @__PURE__ */ new Map());\n\t}\n};\n//#endregion\nexport { SqlContractSerializerBase as n, SqlContractSerializer as t };\n\n//# sourceMappingURL=sql-contract-serializer-DDaAVCQr.mjs.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { h as AnyQueryAst } from "./types-Dskga3R1-BtXuRmbf.mjs";
1
+ import { h as AnyQueryAst } from "./types-Dskga3R1-DeSwpS4A.mjs";
2
2
  import { ExecutionPlan } from "@prisma/orm-framework/components/runtime";
3
3
  //#region ../../../2-sql/4-lanes/relational-core/dist/sql-execution-plan-CV6K4o9N.d.mts
4
4
  //#region src/sql-execution-plan.d.ts
@@ -28,4 +28,4 @@ interface SqlExecutionPlan<Row = unknown> extends ExecutionPlan<Row> {
28
28
  }
29
29
  //#endregion
30
30
  export { SqlExecutionPlan as t };
31
- //# sourceMappingURL=sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts.map
31
+ //# sourceMappingURL=sql-execution-plan-CV6K4o9N-B3EzlMwJ.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-execution-plan-CV6K4o9N-DAIvJbkb.d.mts","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/sql-execution-plan-CV6K4o9N.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;UAsBU,iBAAiB,uBAAuB,cAAc;WACrD;WACA;WACA,KAAK"}
1
+ {"version":3,"file":"sql-execution-plan-CV6K4o9N-B3EzlMwJ.d.mts","names":[],"sources":["../../../../2-sql/4-lanes/relational-core/dist/sql-execution-plan-CV6K4o9N.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;UAsBU,iBAAiB,uBAAuB,cAAc;WACrD;WACA;WACA,KAAK"}
@@ -1,10 +1,10 @@
1
1
  import { t as SqlNode } from "./sql-node-kEz6YFZo-v2F7delx.mjs";
2
- import { r as StorageTable } from "./storage-table-DLFvP77v-DLfqYsHX.mjs";
2
+ import { r as StorageTable } from "./storage-table-BBcKoAuF-CssyCQhM.mjs";
3
3
  import { t as StorageValueSet } from "./storage-value-set-BGlj5Uus-CvZD--GG.mjs";
4
4
  import { AuthoringContributions } from "@prisma/orm-framework/components/authoring";
5
5
  import { Namespace, NamespaceBase, Storage, StorageType } from "@prisma/orm-framework/components/ir";
6
6
  import { StorageHashBase } from "@prisma/orm-framework/contract/types";
7
- //#region ../../../2-sql/1-core/contract/dist/sql-storage-jJySr7bL.d.mts
7
+ //#region ../../../2-sql/1-core/contract/dist/sql-storage-DSnnRQAf.d.mts
8
8
  //#region src/ir/storage-type-instance.d.ts
9
9
  /**
10
10
  * Sentinel kind for the legacy codec-triple shape persisted under
@@ -15,31 +15,24 @@ import { StorageHashBase } from "@prisma/orm-framework/contract/types";
15
15
  */
16
16
  declare const CODEC_INSTANCE_KIND: "codec-instance";
17
17
  /**
18
- * Structural sub-interface of {@link StorageType} for codec-typed entries
19
- * in `SqlStorage.types`. These are plain object literals — there is no
20
- * runtime IR class, the JSON envelope round-trips through the slot
21
- * unchanged. The `kind: 'codec-instance'` discriminator is the dispatch
22
- * key that distinguishes codec-typed entries from any class-instance
23
- * kinds a target pack contributes to the polymorphic slot.
18
+ * A codec-typed entry in `SqlStorage.types`, as `contract.json` stores it and the contract IR holds it. These are plain object literals with no runtime IR class; the JSON envelope round-trips through the slot unchanged. The `kind: 'codec-instance'` discriminator distinguishes them from any class-instance kinds a target pack contributes to the slot.
24
19
  */
25
20
  interface StorageTypeInstance extends StorageType {
26
21
  readonly kind: typeof CODEC_INSTANCE_KIND;
27
22
  readonly codecId: string;
28
- readonly nativeType: string;
23
+ readonly dataType: string;
29
24
  readonly typeParams: Record<string, unknown>;
30
25
  }
31
26
  /**
32
- * Construction-time input for a codec-triple entry. Symmetric with the
33
- * structural runtime shape minus the `kind` discriminator — callers may
34
- * omit `kind`; the helper {@link toStorageTypeInstance} stamps it on.
35
- * `typeParams` may be omitted on input; the constructor normalises a
36
- * missing value to `{}` so the in-memory shape is always present.
27
+ * A `storage.types` entry as authored, by a `type.*` helper or a PSL `types {}` alias: a {@link StorageTypeInstance} before the contract build adds the id of the data type its codec represents.
37
28
  */
38
- interface StorageTypeInstanceInput {
39
- readonly codecId: string;
40
- readonly nativeType: string;
29
+ type AuthoredStorageTypeInstance = Omit<StorageTypeInstance, 'dataType'>;
30
+ /**
31
+ * A `storage.types` entry as `SqlStorage` and {@link toStorageTypeInstance} take it: a {@link StorageTypeInstance} whose `kind` and `typeParams` may be left out. {@link toStorageTypeInstance} stamps the `kind` and normalises a missing `typeParams` to `{}`.
32
+ */
33
+ type StorageTypeInstanceInput = Omit<StorageTypeInstance, 'kind' | 'typeParams'> & {
41
34
  readonly typeParams?: Record<string, unknown>;
42
- }
35
+ };
43
36
  /**
44
37
  * Stamp the codec-instance `kind` discriminator on a caller-supplied
45
38
  * codec triple. Idempotent: input that already carries the discriminator
@@ -174,5 +167,5 @@ declare class SqlStorage<THash extends string = string> extends SqlNode implemen
174
167
  constructor(input: SqlStorageInput<THash>);
175
168
  }
176
169
  //#endregion
177
- export { toStorageTypeInstance as _, SqlNamespaceEntries as a, SqlStorage as c, StorageTypeInstance as d, StorageTypeInstanceInput as f, resolvedTypeParams as g, isStorageTypeInstance as h, SqlNamespaceBase as i, SqlStorageInput as l, isSqlAuthoringContributions as m, SqlAuthoringContributions as n, SqlNamespaceFactory as o, isMaterializedSqlNamespace as p, SqlNamespace as r, SqlNamespaceInput as s, CODEC_INSTANCE_KIND as t, SqlStorageTypeEntry as u };
178
- //# sourceMappingURL=sql-storage-jJySr7bL-C_xAiyzH.d.mts.map
170
+ export { resolvedTypeParams as _, SqlNamespaceBase as a, SqlNamespaceInput as c, SqlStorageTypeEntry as d, StorageTypeInstance as f, isStorageTypeInstance as g, isSqlAuthoringContributions as h, SqlNamespace as i, SqlStorage as l, isMaterializedSqlNamespace as m, CODEC_INSTANCE_KIND as n, SqlNamespaceEntries as o, StorageTypeInstanceInput as p, SqlAuthoringContributions as r, SqlNamespaceFactory as s, AuthoredStorageTypeInstance as t, SqlStorageInput as u, toStorageTypeInstance as v };
171
+ //# sourceMappingURL=sql-storage-DSnnRQAf-DaHPnley.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-storage-DSnnRQAf-DaHPnley.d.mts","names":[],"sources":["../../../../2-sql/1-core/contract/dist/sql-storage-DSnnRQAf.d.mts"],"mappings":";;;;;;;;;;;;;;;cAcc;;;;UAIJ,4BAA4B;WAC3B,aAAa;WACb;WACA;WACA,YAAY;;;;;KAKlB,8BAA8B,KAAK;;;;KAInC,2BAA2B,KAAK;WAC1B,aAAa;;;;;;;iBAOP,sBAAsB,OAAO,2BAA2B;;;;iBAIxD,mBAAmB;WACzB,aAAa;WACb;GACR,YAAY,SAAS,eAAe,KAAK,wDAAwD;;;;;;iBAMnF,sBAAsB,iBAAiB,SAAS;;;;;;;;;;KAU5D,sBAAsB,sBAAsB;UACvC;WACC;WACA,SAAS,SAAS,eAAe,SAAS;;;;;;KAMhD,uBAAuB,OAAO,sBAAsB;;;;;;;;UAQ/C,kCAAkC;WACjC,kBAAkB;;;;;;iBAMZ,4BAA4B,WAAW,qCAAqC,aAAa;UAChG,gBAAgB;WACf,aAAa,gBAAgB;WAC7B,QAAQ,eAAe;WACvB,YAAY,SAAS,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B1C,sBAAsB,SAAS,eAAe,SAAS;WACjD,QAAQ,SAAS,eAAe;WAChC,WAAW,SAAS,eAAe;;;;;;;;;;;UAWpC;WACC;WACA;WACA,SAAS;WACT;EACT,cAAc;;;;;;;;uBAQO,yBAAyB,yBAAyB;oBACrD;oBACA,SAAS;WAClB,aAAa;;;;;;;;;;;;iBAYP,2BAA2B,aAAa,KAAK;cAChD,WAAW,uCAAuC,mBAAmB;WACxE,aAAa,gBAAgB;WAC7B,YAAY,SAAS,eAAe;WACpC,QAAQ,SAAS,eAAe;EACzC,YAAY,OAAO,gBAAgB"}
@@ -5,7 +5,7 @@ import { n as ForeignKeyInput, t as ForeignKey } from "./foreign-key-C-iTPuRT-C9
5
5
  import { i as UniqueConstraintInput, n as PrimaryKeyInput, r as UniqueConstraint, t as PrimaryKey } from "./unique-constraint-M5TlQnJQ-BiIHJ85k.mjs";
6
6
  import { r as IndexInput, t as Index } from "./sql-index-ByAAE7K8-DPkZtr7t.mjs";
7
7
  import { ColumnDefault, ControlPolicy, ValueSetRef } from "@prisma/orm-framework/contract/types";
8
- //#region ../../../2-sql/1-core/contract/dist/storage-table-DLFvP77v.d.mts
8
+ //#region ../../../2-sql/1-core/contract/dist/storage-table-BBcKoAuF.d.mts
9
9
  //#region src/ir/storage-column.d.ts
10
10
  /**
11
11
  * Hydration / construction input shape for {@link StorageColumn}. Mirrors
@@ -21,7 +21,8 @@ type StorageColumnMultiplicity = false | {
21
21
  readonly elementNullable: boolean;
22
22
  };
23
23
  type StorageColumnInput = {
24
- readonly nativeType: string;
24
+ /** The id of the data type the column stores, which its codec represents. */
25
+ readonly dataType: string;
25
26
  readonly codecId: string;
26
27
  readonly nullable: boolean;
27
28
  readonly typeParams?: Record<string, unknown>;
@@ -47,7 +48,7 @@ type StorageColumnInput = {
47
48
  * map, so a `name` field would be redundant with the key.
48
49
  */
49
50
  declare class StorageColumn extends SqlNode {
50
- readonly nativeType: string;
51
+ readonly dataType: string;
51
52
  readonly codecId: string;
52
53
  readonly nullable: boolean;
53
54
  readonly many: StorageColumnMultiplicity;
@@ -105,4 +106,4 @@ declare class StorageTable extends SqlNode {
105
106
  }
106
107
  //#endregion
107
108
  export { StorageTableInput as i, StorageColumnInput as n, StorageTable as r, StorageColumn as t };
108
- //# sourceMappingURL=storage-table-DLFvP77v-DLfqYsHX.d.mts.map
109
+ //# sourceMappingURL=storage-table-BBcKoAuF-CssyCQhM.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-table-BBcKoAuF-CssyCQhM.d.mts","names":[],"sources":["../../../../2-sql/1-core/contract/dist/storage-table-BBcKoAuF.d.mts"],"mappings":";;;;;;;;;;;;;;;;;;;KAkBK;WACM;;KAEN;;WAEM;WACA;WACA;WACA,aAAa;WACb;WACA,UAAU;WACV,UAAU;WACV,WAAW;;WAEX,mBAAmB;WACnB,OAAO;;;;;;;;;;;;;;;cAeJ,sBAAsB;WACzB;WACA;WACA;WACA,MAAM;WACN,aAAa;WACb;WACA,UAAU;WACV,UAAU;WACV,WAAW;;WAEX,mBAAmB;EAC5B,YAAY,OAAO;SACZ,KAAK,OAAO,gBAAgB,qBAAqB;;;;UAIhD;WACC,SAAS,eAAe,gBAAgB;WACxC,aAAa,aAAa;WAC1B,SAAS,cAAc,mBAAmB;WAC1C,SAAS,cAAc,QAAQ;WAC/B,aAAa,cAAc,aAAa;WACxC,UAAU;WACV,SAAS,cAAc,kBAAkB;;;;;;;;;;;;;;cActC,qBAAqB;WACxB,SAAS,SAAS,eAAe;WACjC,SAAS,cAAc;WACvB,SAAS,cAAc;WACvB,aAAa,cAAc;WAC3B,aAAa;WACb,UAAU;WACV,SAAS,cAAc;EAChC,YAAY,OAAO;;;;;;;;SAQZ,GAAG,OAAO,2BAA2B,SAAS;SAC9C,OAAO,OAAO,0BAA0B,6BAA6B,SAAS"}
@@ -4,7 +4,7 @@ import { ContractValidationError } from "@prisma/orm-framework/contract/contract
4
4
  import { IRNodeBase, freezeNode } from "@prisma/orm-framework/components/ir";
5
5
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
6
6
  import { asNamespaceId } from "@prisma/orm-framework/contract/types";
7
- //#region ../../../2-sql/1-core/contract/dist/storage-table-BwwDKQkD.mjs
7
+ //#region ../../../2-sql/1-core/contract/dist/storage-table-CyL4CNMi.mjs
8
8
  /**
9
9
  * SQL family IR node base. Carries the family-level `kind` discriminator
10
10
  * `'sql'` and inherits the framework's `freezeNode` affordance.
@@ -221,14 +221,14 @@ var PrimaryKey = class PrimaryKey extends SqlNode {
221
221
  * map, so a `name` field would be redundant with the key.
222
222
  */
223
223
  var StorageColumn = class StorageColumn extends SqlNode {
224
- nativeType;
224
+ dataType;
225
225
  codecId;
226
226
  nullable;
227
227
  many;
228
228
  constructor(input) {
229
229
  super();
230
230
  if (Object.hasOwn(input, "elementNullable")) throw contractError("CONTRACT.ARGUMENT_INVALID", "StorageColumn elementNullable must be nested under many.", { meta: { reason: "sibling-elementNullable" } });
231
- this.nativeType = input.nativeType;
231
+ this.dataType = input.dataType;
232
232
  this.codecId = input.codecId;
233
233
  this.nullable = input.nullable;
234
234
  this.many = input.many ?? false;
@@ -305,4 +305,4 @@ var StorageTable = class StorageTable extends SqlNode {
305
305
  //#endregion
306
306
  export { PrimaryKey as a, StorageTable as c, Index as i, UniqueConstraint as l, ForeignKey as n, SqlNode as o, ForeignKeyReference as r, StorageColumn as s, CheckConstraint as t };
307
307
 
308
- //# sourceMappingURL=storage-table-BwwDKQkD-BN9cZrGX.mjs.map
308
+ //# sourceMappingURL=storage-table-CyL4CNMi-zOQ-vTUd.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-table-BwwDKQkD-BN9cZrGX.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/storage-table-BwwDKQkD.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { nameOf } from \"@internal/sql-schema-ir/naming\";\nimport { IRNodeBase, freezeNode } from \"@internal/framework-components/ir\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { asNamespaceId } from \"@internal/contract/types\";\n//#region src/ir/sql-node.ts\n/**\n* SQL family IR node base. Carries the family-level `kind` discriminator\n* `'sql'` and inherits the framework's `freezeNode` affordance.\n*\n* Single family-level discriminator (not per-leaf) reflects the fact that\n* SQL IR has no polymorphic dispatch today — verifiers and serializers\n* walk by structural position (`storage.tables[name].columns[name]`),\n* not by inspecting `kind`. The abstract bar for per-leaf discriminators\n* isn't earned until a future polymorphic consumer arrives.\n*\n* `kind` is installed as a non-enumerable own property on every instance,\n* which keeps three things clean simultaneously:\n*\n* - `JSON.stringify(node)` produces the canonical pre-lift JSON envelope\n* shape (no `kind` field), so emitted contract.json files and the\n* `validateSqlContractFully` arktype schemas stay unchanged.\n* - Test assertions that use `toEqual({...})` against the pre-lift flat\n* shape continue to pass — only enumerable own properties are\n* compared.\n* - Direct access (`node.kind`) and runtime narrowing\n* (`if (node.kind === 'sql')`) still work, so future polymorphic\n* dispatch can begin reading `kind` without a runtime change.\n*\n* Future per-leaf overrides land cleanly: a class that gains a\n* polymorphic-dispatch consumer (e.g. an enum type instance walked\n* alongside other types) overrides `kind` with its narrower literal\n* at that leaf level. Per-leaf overrides will use enumerable kind\n* (matching the Mongo per-class-discriminator precedent) because they\n* encode dispatch-relevant information that callers need to see in\n* JSON envelopes; the family-level `'sql'` is uniform across all SQL\n* IR and carries no dispatch-relevant information.\n*/\nvar SqlNode = class extends IRNodeBase {\n\tkind;\n\tconstructor() {\n\t\tsuper();\n\t\tObject.defineProperty(this, \"kind\", {\n\t\t\tvalue: \"sql\",\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true\n\t\t});\n\t}\n};\n//#endregion\n//#region src/ir/check-constraint.ts\n/**\n* SQL Contract IR node for a table-level check constraint, name-identified:\n* `name` is the full physical name; a present `prefix` marks the constraint as\n* wire-named (`name` is `formatWireName(prefix, <8hex>)` over the expression's\n* content hash), an absent `prefix` marks it exact (the name is adopted\n* verbatim). This is the convention indexes and RLS policies already use — see\n* ADR 234, \"Content-addressed wire names for Postgres-normalized objects\".\n*\n* The predicate is opaque: one SQL string, never parsed and never rendered\n* from structured parts. A database reprints predicates in its own normalized\n* form, so a wire-named check is compared by name — the hash already commits\n* to the expression the contract declared.\n*/\nvar CheckConstraint = class CheckConstraint extends SqlNode {\n\tname;\n\texpression;\n\tconstructor(input) {\n\t\tsuper();\n\t\tconst name = nameOf(input.naming);\n\t\tif (name.length === 0) throw new ContractValidationError(\"CheckConstraint: every check constraint carries a full physical name.\", \"storage\");\n\t\tthis.name = name;\n\t\tif (input.naming.kind === \"wire\") this.prefix = input.naming.prefix;\n\t\tthis.expression = input.expression;\n\t\tfreezeNode(this);\n\t}\n\t/**\n\t* Normalizes either shape into an instance: an existing `CheckConstraint`\n\t* passes through, canonical input is constructed. Callers that accept\n\t* \"instance or input\" go through this, so the constructor keeps one\n\t* canonical shape instead of widening to a union.\n\t*/\n\tstatic from(value) {\n\t\treturn value instanceof CheckConstraint ? value : new CheckConstraint(value);\n\t}\n};\n//#endregion\n//#region src/ir/sql-index.ts\n/**\n* SQL Contract IR node for a table-level secondary index, name-identified:\n* `name` is the full physical name; a present `prefix` marks the index as\n* wire-named (`name` is `formatWireName(prefix, <8hex>)`), an absent `prefix`\n* marks it exact (the name is adopted verbatim).\n*\n* `expression`, `where`, and `unique` are genuine SQL-family attributes —\n* functional and partial indexes are standard SQL supported natively by\n* Postgres and SQLite alike, and the family IR must be able to represent\n* anything any SQL target can introspect. A target declining to AUTHOR them\n* (SQLite's rejection at namespace construction) is a capability decision,\n* not evidence of target-specificity.\n*\n* Note that this class shadows the global TypeScript `Index` lib type\n* at the family-shared name; consumer files that need both should\n* alias one (e.g.\n* `import { Index as SqlIndexNode } from '@internal/sql-contract/types'`).\n*/\nvar Index = class Index extends SqlNode {\n\tname;\n\tunique;\n\tconstructor(input) {\n\t\tsuper();\n\t\tconst name = nameOf(input.naming);\n\t\tif (name.length === 0) throw new ContractValidationError(\"Index: every index carries a full physical name; an expression index must be explicitly named (a default name cannot be derived from an expression).\", \"storage\");\n\t\tif (input.columns === void 0 === (input.expression === void 0)) throw new ContractValidationError(`Index \"${name}\": exactly one of columns or expression must be set.`, \"storage\");\n\t\tthis.name = name;\n\t\tthis.unique = input.unique;\n\t\tif (input.naming.kind === \"wire\") this.prefix = input.naming.prefix;\n\t\tif (input.columns !== void 0) this.columns = input.columns;\n\t\tif (input.expression !== void 0) this.expression = input.expression;\n\t\tif (input.where !== void 0) this.where = input.where;\n\t\tif (input.type !== void 0) this.type = input.type;\n\t\tif (input.options !== void 0) this.options = input.options;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof Index ? value : new Index(value);\n\t}\n};\n//#endregion\n//#region src/ir/foreign-key-reference.ts\n/**\n* SQL Contract IR node for one side (source or target) of a foreign-key\n* declaration. Carries the full coordinate: namespace, table, and columns.\n*\n* Cross-space discrimination is based on `spaceId` presence: absent means\n* local (same contract-space); present means cross-space (the referenced\n* table lives in the contract-space identified by `spaceId`).\n*\n* For local references `spaceId` is absent from JSON, keeping the serialized\n* shape byte-identical to contracts authored before cross-space support was\n* added. For cross-space references `spaceId` appears in JSON so round-trips\n* are lossless.\n*\n* Use `UNBOUND_NAMESPACE_ID` from `@internal/framework-components/ir`\n* as the sentinel `namespaceId` for single-namespace (unbound) references.\n*/\nvar ForeignKeyReference = class ForeignKeyReference extends SqlNode {\n\tnamespaceId;\n\ttableName;\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.namespaceId = asNamespaceId(input.namespaceId);\n\t\tthis.tableName = input.tableName;\n\t\tthis.columns = input.columns;\n\t\tif (input.spaceId !== void 0) this.spaceId = input.spaceId;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof ForeignKeyReference ? value : new ForeignKeyReference(value);\n\t}\n};\n//#endregion\n//#region src/ir/foreign-key.ts\n/**\n* SQL Contract IR node for a table-level foreign-key declaration — the\n* referential constraint only (source, target, `onDelete`/`onUpdate`).\n*\n* A persisted `foreignKeys[]` entry always denotes a real constraint: whether\n* to emit the constraint at all, and whether to back it with an index, are\n* authoring-time decisions (PSL `@relation(index:)`, TS `fk({ constraint,\n* index })`) resolved once at `contract emit` — a `constraint: false` FK\n* simply has no entry here, and a backing index (if any) is its own discrete,\n* named entry in the table's `indexes[]`.\n*\n* Each FK carries explicit `source` and `target` {@link ForeignKeyReference}\n* coordinates (namespace, table, columns). For single-namespace contracts the\n* sentinel `UNBOUND_NAMESPACE_ID` appears on both sides.\n*\n* The nested references are normalised to {@link ForeignKeyReference}\n* instances inside the constructor so downstream walks see a uniform AST\n* regardless of whether the input was a JSON literal or an already-constructed\n* class instance.\n*/\nvar ForeignKey = class ForeignKey extends SqlNode {\n\tsource;\n\ttarget;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.source = ForeignKeyReference.from(input.source);\n\t\tthis.target = ForeignKeyReference.from(input.target);\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tif (input.onDelete !== void 0) this.onDelete = input.onDelete;\n\t\tif (input.onUpdate !== void 0) this.onUpdate = input.onUpdate;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof ForeignKey ? value : new ForeignKey(value);\n\t}\n};\n//#endregion\n//#region src/ir/primary-key.ts\n/**\n* SQL Contract IR node for a table's primary-key constraint.\n*/\nvar PrimaryKey = class PrimaryKey extends SqlNode {\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = input.columns;\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof PrimaryKey ? value : new PrimaryKey(value);\n\t}\n};\n//#endregion\n//#region src/ir/storage-column.ts\n/**\n* SQL Contract IR node for a single column entry in `StorageTable.columns`.\n*\n* Single concrete family-shared class — every SQL target reads the\n* same column shape today, so there is no per-target subclass. The\n* class type accepts any caller that constructs via\n* `new StorageColumn(input)`; literal construction sites must pass\n* through the constructor or the family-base hydration walker.\n*\n* The column's `name` is not on the class — columns are keyed by name\n* in the parent `StorageTable.columns: Record<string, StorageColumn>`\n* map, so a `name` field would be redundant with the key.\n*/\nvar StorageColumn = class StorageColumn extends SqlNode {\n\tnativeType;\n\tcodecId;\n\tnullable;\n\tmany;\n\tconstructor(input) {\n\t\tsuper();\n\t\tif (Object.hasOwn(input, \"elementNullable\")) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"StorageColumn elementNullable must be nested under many.\", { meta: { reason: \"sibling-elementNullable\" } });\n\t\tthis.nativeType = input.nativeType;\n\t\tthis.codecId = input.codecId;\n\t\tthis.nullable = input.nullable;\n\t\tthis.many = input.many ?? false;\n\t\tif (input.noCheck !== void 0) this.noCheck = input.noCheck;\n\t\tif (input.typeParams !== void 0) this.typeParams = input.typeParams;\n\t\tif (input.typeRef !== void 0) this.typeRef = input.typeRef;\n\t\tif (input.default !== void 0) this.default = input.default;\n\t\tif (input.control !== void 0) this.control = input.control;\n\t\tif (input.valueSet !== void 0) this.valueSet = input.valueSet;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof StorageColumn ? value : new StorageColumn(value);\n\t}\n};\n//#endregion\n//#region src/ir/unique-constraint.ts\n/**\n* SQL Contract IR node for a table-level unique constraint.\n*/\nvar UniqueConstraint = class UniqueConstraint extends SqlNode {\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = input.columns;\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof UniqueConstraint ? value : new UniqueConstraint(value);\n\t}\n};\n//#endregion\n//#region src/ir/storage-table.ts\n/**\n* SQL Contract IR node for a single table entry in a namespace's\n* `tables` map.\n*\n* The constructor normalises nested IR-class fields (columns, primary\n* key, uniques, indexes, foreign keys) into the appropriate class\n* instances so downstream walks see a uniform AST regardless of whether\n* the input was a JSON literal or an already-constructed class.\n*\n* The table's `name` is not on the class — tables are keyed by name in\n* the parent namespace's `tables: Record<string, StorageTable>` map.\n*/\nvar StorageTable = class StorageTable extends SqlNode {\n\tcolumns;\n\tuniques;\n\tindexes;\n\tforeignKeys;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = Object.freeze(Object.fromEntries(Object.entries(input.columns).map(([name, col]) => [name, StorageColumn.from(col)])));\n\t\tif (input.primaryKey !== void 0) this.primaryKey = PrimaryKey.from(input.primaryKey);\n\t\tthis.uniques = Object.freeze(input.uniques.map(UniqueConstraint.from));\n\t\tthis.indexes = Object.freeze(input.indexes.map(Index.from));\n\t\tthis.foreignKeys = Object.freeze(input.foreignKeys.map(ForeignKey.from));\n\t\tif (input.control !== void 0) this.control = input.control;\n\t\tif (input.checks !== void 0 && input.checks.length > 0) this.checks = Object.freeze(input.checks.map(CheckConstraint.from));\n\t\tfreezeNode(this);\n\t}\n\t/**\n\t* Runtime guard that a namespace `table` entry is really a `StorageTable`.\n\t* The compiler already types the entry as `StorageTable`, but a\n\t* freshly-deserialized contract may carry plain JSON at that slot until\n\t* hydration; this duck-types the structural shape. Accepts `undefined` so\n\t* optional-chained entry lookups pass straight through.\n\t*/\n\tstatic is(value) {\n\t\tif (typeof value !== \"object\" || value === null) return false;\n\t\treturn \"columns\" in value && \"uniques\" in value && \"indexes\" in value && \"foreignKeys\" in value;\n\t}\n\tstatic assert(value, coordinate) {\n\t\tif (!StorageTable.is(value)) throw new InternalError(`Expected a StorageTable at ${coordinate}`);\n\t}\n};\n//#endregion\nexport { ForeignKey as a, CheckConstraint as c, PrimaryKey as i, SqlNode as l, UniqueConstraint as n, ForeignKeyReference as o, StorageColumn as r, Index as s, StorageTable as t };\n\n//# sourceMappingURL=storage-table-BwwDKQkD.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"storage-table-CyL4CNMi-zOQ-vTUd.mjs","names":[],"sources":["../../../../2-sql/1-core/contract/dist/storage-table-CyL4CNMi.mjs"],"sourcesContent":["import { t as contractError } from \"./contract-errors-BCN6RVI5.mjs\";\nimport { nameOf } from \"@internal/sql-schema-ir/naming\";\nimport { IRNodeBase, freezeNode } from \"@internal/framework-components/ir\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { ContractValidationError } from \"@internal/contract/contract-validation-error\";\nimport { asNamespaceId } from \"@internal/contract/types\";\n//#region src/ir/sql-node.ts\n/**\n* SQL family IR node base. Carries the family-level `kind` discriminator\n* `'sql'` and inherits the framework's `freezeNode` affordance.\n*\n* Single family-level discriminator (not per-leaf) reflects the fact that\n* SQL IR has no polymorphic dispatch today — verifiers and serializers\n* walk by structural position (`storage.tables[name].columns[name]`),\n* not by inspecting `kind`. The abstract bar for per-leaf discriminators\n* isn't earned until a future polymorphic consumer arrives.\n*\n* `kind` is installed as a non-enumerable own property on every instance,\n* which keeps three things clean simultaneously:\n*\n* - `JSON.stringify(node)` produces the canonical pre-lift JSON envelope\n* shape (no `kind` field), so emitted contract.json files and the\n* `validateSqlContractFully` arktype schemas stay unchanged.\n* - Test assertions that use `toEqual({...})` against the pre-lift flat\n* shape continue to pass — only enumerable own properties are\n* compared.\n* - Direct access (`node.kind`) and runtime narrowing\n* (`if (node.kind === 'sql')`) still work, so future polymorphic\n* dispatch can begin reading `kind` without a runtime change.\n*\n* Future per-leaf overrides land cleanly: a class that gains a\n* polymorphic-dispatch consumer (e.g. an enum type instance walked\n* alongside other types) overrides `kind` with its narrower literal\n* at that leaf level. Per-leaf overrides will use enumerable kind\n* (matching the Mongo per-class-discriminator precedent) because they\n* encode dispatch-relevant information that callers need to see in\n* JSON envelopes; the family-level `'sql'` is uniform across all SQL\n* IR and carries no dispatch-relevant information.\n*/\nvar SqlNode = class extends IRNodeBase {\n\tkind;\n\tconstructor() {\n\t\tsuper();\n\t\tObject.defineProperty(this, \"kind\", {\n\t\t\tvalue: \"sql\",\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true\n\t\t});\n\t}\n};\n//#endregion\n//#region src/ir/check-constraint.ts\n/**\n* SQL Contract IR node for a table-level check constraint, name-identified:\n* `name` is the full physical name; a present `prefix` marks the constraint as\n* wire-named (`name` is `formatWireName(prefix, <8hex>)` over the expression's\n* content hash), an absent `prefix` marks it exact (the name is adopted\n* verbatim). This is the convention indexes and RLS policies already use — see\n* ADR 234, \"Content-addressed wire names for Postgres-normalized objects\".\n*\n* The predicate is opaque: one SQL string, never parsed and never rendered\n* from structured parts. A database reprints predicates in its own normalized\n* form, so a wire-named check is compared by name — the hash already commits\n* to the expression the contract declared.\n*/\nvar CheckConstraint = class CheckConstraint extends SqlNode {\n\tname;\n\texpression;\n\tconstructor(input) {\n\t\tsuper();\n\t\tconst name = nameOf(input.naming);\n\t\tif (name.length === 0) throw new ContractValidationError(\"CheckConstraint: every check constraint carries a full physical name.\", \"storage\");\n\t\tthis.name = name;\n\t\tif (input.naming.kind === \"wire\") this.prefix = input.naming.prefix;\n\t\tthis.expression = input.expression;\n\t\tfreezeNode(this);\n\t}\n\t/**\n\t* Normalizes either shape into an instance: an existing `CheckConstraint`\n\t* passes through, canonical input is constructed. Callers that accept\n\t* \"instance or input\" go through this, so the constructor keeps one\n\t* canonical shape instead of widening to a union.\n\t*/\n\tstatic from(value) {\n\t\treturn value instanceof CheckConstraint ? value : new CheckConstraint(value);\n\t}\n};\n//#endregion\n//#region src/ir/sql-index.ts\n/**\n* SQL Contract IR node for a table-level secondary index, name-identified:\n* `name` is the full physical name; a present `prefix` marks the index as\n* wire-named (`name` is `formatWireName(prefix, <8hex>)`), an absent `prefix`\n* marks it exact (the name is adopted verbatim).\n*\n* `expression`, `where`, and `unique` are genuine SQL-family attributes —\n* functional and partial indexes are standard SQL supported natively by\n* Postgres and SQLite alike, and the family IR must be able to represent\n* anything any SQL target can introspect. A target declining to AUTHOR them\n* (SQLite's rejection at namespace construction) is a capability decision,\n* not evidence of target-specificity.\n*\n* Note that this class shadows the global TypeScript `Index` lib type\n* at the family-shared name; consumer files that need both should\n* alias one (e.g.\n* `import { Index as SqlIndexNode } from '@internal/sql-contract/types'`).\n*/\nvar Index = class Index extends SqlNode {\n\tname;\n\tunique;\n\tconstructor(input) {\n\t\tsuper();\n\t\tconst name = nameOf(input.naming);\n\t\tif (name.length === 0) throw new ContractValidationError(\"Index: every index carries a full physical name; an expression index must be explicitly named (a default name cannot be derived from an expression).\", \"storage\");\n\t\tif (input.columns === void 0 === (input.expression === void 0)) throw new ContractValidationError(`Index \"${name}\": exactly one of columns or expression must be set.`, \"storage\");\n\t\tthis.name = name;\n\t\tthis.unique = input.unique;\n\t\tif (input.naming.kind === \"wire\") this.prefix = input.naming.prefix;\n\t\tif (input.columns !== void 0) this.columns = input.columns;\n\t\tif (input.expression !== void 0) this.expression = input.expression;\n\t\tif (input.where !== void 0) this.where = input.where;\n\t\tif (input.type !== void 0) this.type = input.type;\n\t\tif (input.options !== void 0) this.options = input.options;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof Index ? value : new Index(value);\n\t}\n};\n//#endregion\n//#region src/ir/foreign-key-reference.ts\n/**\n* SQL Contract IR node for one side (source or target) of a foreign-key\n* declaration. Carries the full coordinate: namespace, table, and columns.\n*\n* Cross-space discrimination is based on `spaceId` presence: absent means\n* local (same contract-space); present means cross-space (the referenced\n* table lives in the contract-space identified by `spaceId`).\n*\n* For local references `spaceId` is absent from JSON, keeping the serialized\n* shape byte-identical to contracts authored before cross-space support was\n* added. For cross-space references `spaceId` appears in JSON so round-trips\n* are lossless.\n*\n* Use `UNBOUND_NAMESPACE_ID` from `@internal/framework-components/ir`\n* as the sentinel `namespaceId` for single-namespace (unbound) references.\n*/\nvar ForeignKeyReference = class ForeignKeyReference extends SqlNode {\n\tnamespaceId;\n\ttableName;\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.namespaceId = asNamespaceId(input.namespaceId);\n\t\tthis.tableName = input.tableName;\n\t\tthis.columns = input.columns;\n\t\tif (input.spaceId !== void 0) this.spaceId = input.spaceId;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof ForeignKeyReference ? value : new ForeignKeyReference(value);\n\t}\n};\n//#endregion\n//#region src/ir/foreign-key.ts\n/**\n* SQL Contract IR node for a table-level foreign-key declaration — the\n* referential constraint only (source, target, `onDelete`/`onUpdate`).\n*\n* A persisted `foreignKeys[]` entry always denotes a real constraint: whether\n* to emit the constraint at all, and whether to back it with an index, are\n* authoring-time decisions (PSL `@relation(index:)`, TS `fk({ constraint,\n* index })`) resolved once at `contract emit` — a `constraint: false` FK\n* simply has no entry here, and a backing index (if any) is its own discrete,\n* named entry in the table's `indexes[]`.\n*\n* Each FK carries explicit `source` and `target` {@link ForeignKeyReference}\n* coordinates (namespace, table, columns). For single-namespace contracts the\n* sentinel `UNBOUND_NAMESPACE_ID` appears on both sides.\n*\n* The nested references are normalised to {@link ForeignKeyReference}\n* instances inside the constructor so downstream walks see a uniform AST\n* regardless of whether the input was a JSON literal or an already-constructed\n* class instance.\n*/\nvar ForeignKey = class ForeignKey extends SqlNode {\n\tsource;\n\ttarget;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.source = ForeignKeyReference.from(input.source);\n\t\tthis.target = ForeignKeyReference.from(input.target);\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tif (input.onDelete !== void 0) this.onDelete = input.onDelete;\n\t\tif (input.onUpdate !== void 0) this.onUpdate = input.onUpdate;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof ForeignKey ? value : new ForeignKey(value);\n\t}\n};\n//#endregion\n//#region src/ir/primary-key.ts\n/**\n* SQL Contract IR node for a table's primary-key constraint.\n*/\nvar PrimaryKey = class PrimaryKey extends SqlNode {\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = input.columns;\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof PrimaryKey ? value : new PrimaryKey(value);\n\t}\n};\n//#endregion\n//#region src/ir/storage-column.ts\n/**\n* SQL Contract IR node for a single column entry in `StorageTable.columns`.\n*\n* Single concrete family-shared class — every SQL target reads the\n* same column shape today, so there is no per-target subclass. The\n* class type accepts any caller that constructs via\n* `new StorageColumn(input)`; literal construction sites must pass\n* through the constructor or the family-base hydration walker.\n*\n* The column's `name` is not on the class — columns are keyed by name\n* in the parent `StorageTable.columns: Record<string, StorageColumn>`\n* map, so a `name` field would be redundant with the key.\n*/\nvar StorageColumn = class StorageColumn extends SqlNode {\n\tdataType;\n\tcodecId;\n\tnullable;\n\tmany;\n\tconstructor(input) {\n\t\tsuper();\n\t\tif (Object.hasOwn(input, \"elementNullable\")) throw contractError(\"CONTRACT.ARGUMENT_INVALID\", \"StorageColumn elementNullable must be nested under many.\", { meta: { reason: \"sibling-elementNullable\" } });\n\t\tthis.dataType = input.dataType;\n\t\tthis.codecId = input.codecId;\n\t\tthis.nullable = input.nullable;\n\t\tthis.many = input.many ?? false;\n\t\tif (input.noCheck !== void 0) this.noCheck = input.noCheck;\n\t\tif (input.typeParams !== void 0) this.typeParams = input.typeParams;\n\t\tif (input.typeRef !== void 0) this.typeRef = input.typeRef;\n\t\tif (input.default !== void 0) this.default = input.default;\n\t\tif (input.control !== void 0) this.control = input.control;\n\t\tif (input.valueSet !== void 0) this.valueSet = input.valueSet;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof StorageColumn ? value : new StorageColumn(value);\n\t}\n};\n//#endregion\n//#region src/ir/unique-constraint.ts\n/**\n* SQL Contract IR node for a table-level unique constraint.\n*/\nvar UniqueConstraint = class UniqueConstraint extends SqlNode {\n\tcolumns;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = input.columns;\n\t\tif (input.name !== void 0) this.name = input.name;\n\t\tfreezeNode(this);\n\t}\n\tstatic from(value) {\n\t\treturn value instanceof UniqueConstraint ? value : new UniqueConstraint(value);\n\t}\n};\n//#endregion\n//#region src/ir/storage-table.ts\n/**\n* SQL Contract IR node for a single table entry in a namespace's\n* `tables` map.\n*\n* The constructor normalises nested IR-class fields (columns, primary\n* key, uniques, indexes, foreign keys) into the appropriate class\n* instances so downstream walks see a uniform AST regardless of whether\n* the input was a JSON literal or an already-constructed class.\n*\n* The table's `name` is not on the class — tables are keyed by name in\n* the parent namespace's `tables: Record<string, StorageTable>` map.\n*/\nvar StorageTable = class StorageTable extends SqlNode {\n\tcolumns;\n\tuniques;\n\tindexes;\n\tforeignKeys;\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.columns = Object.freeze(Object.fromEntries(Object.entries(input.columns).map(([name, col]) => [name, StorageColumn.from(col)])));\n\t\tif (input.primaryKey !== void 0) this.primaryKey = PrimaryKey.from(input.primaryKey);\n\t\tthis.uniques = Object.freeze(input.uniques.map(UniqueConstraint.from));\n\t\tthis.indexes = Object.freeze(input.indexes.map(Index.from));\n\t\tthis.foreignKeys = Object.freeze(input.foreignKeys.map(ForeignKey.from));\n\t\tif (input.control !== void 0) this.control = input.control;\n\t\tif (input.checks !== void 0 && input.checks.length > 0) this.checks = Object.freeze(input.checks.map(CheckConstraint.from));\n\t\tfreezeNode(this);\n\t}\n\t/**\n\t* Runtime guard that a namespace `table` entry is really a `StorageTable`.\n\t* The compiler already types the entry as `StorageTable`, but a\n\t* freshly-deserialized contract may carry plain JSON at that slot until\n\t* hydration; this duck-types the structural shape. Accepts `undefined` so\n\t* optional-chained entry lookups pass straight through.\n\t*/\n\tstatic is(value) {\n\t\tif (typeof value !== \"object\" || value === null) return false;\n\t\treturn \"columns\" in value && \"uniques\" in value && \"indexes\" in value && \"foreignKeys\" in value;\n\t}\n\tstatic assert(value, coordinate) {\n\t\tif (!StorageTable.is(value)) throw new InternalError(`Expected a StorageTable at ${coordinate}`);\n\t}\n};\n//#endregion\nexport { ForeignKey as a, CheckConstraint as c, PrimaryKey as i, SqlNode as l, UniqueConstraint as n, ForeignKeyReference as o, StorageColumn as r, Index as s, StorageTable as t };\n\n//# sourceMappingURL=storage-table-CyL4CNMi.mjs.map"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DataTypeAuthoringEntry } from "@prisma/orm-framework/components/authoring";
2
- import { DataTypeId, DataTypeLookup } from "@prisma/orm-framework/components/codec";
2
+ import { CodecDescriptor, DataTypeLookup } from "@prisma/orm-framework/components/codec";
3
3
  import { ColumnDefault } from "@prisma/orm-framework/contract/types";
4
- //#region ../../../2-sql/9-family/dist/type-map-DmIbL4o-.d.mts
4
+ //#region ../../../2-sql/9-family/dist/type-map-dnvRKl9o.d.mts
5
5
  //#region src/core/psl-build/default-mapping.d.ts
6
6
  interface DefaultMappingOptions {
7
7
  readonly functionAttributes?: Readonly<Record<string, string>>;
@@ -9,8 +9,8 @@ interface DefaultMappingOptions {
9
9
  readonly dataTypeEntries?: Readonly<Record<string, DataTypeAuthoringEntry>> | undefined;
10
10
  /** The stack's data types, whose casts say which other types' values each one takes. */
11
11
  readonly dataTypeLookup?: DataTypeLookup | undefined;
12
- /** The data type of the column's codec. */
13
- readonly columnDataType?: DataTypeId | undefined;
12
+ /** The column's codec: the data type a default is written in, and the canonical form of its values. */
13
+ readonly columnCodec?: Pick<CodecDescriptor, 'dataType' | 'toCanonicalForm'> | undefined;
14
14
  /**
15
15
  * Whether the column is a list, whose elements each carry the column's own data type. A written
16
16
  * list on a scalar column goes through that type's list cast instead.
@@ -46,4 +46,4 @@ interface PslTypeMap {
46
46
  }
47
47
  //#endregion
48
48
  export { PslTypeResolution as a, PslTypeReference as i, DefaultMappingResult as n, mapDefault as o, PslTypeMap as r, DefaultMappingOptions as t };
49
- //# sourceMappingURL=type-map-DmIbL4o--BfPMblbZ.d.mts.map
49
+ //# sourceMappingURL=type-map-dnvRKl9o-avUb9OLv.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-map-dnvRKl9o-avUb9OLv.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/type-map-dnvRKl9o.d.mts"],"mappings":";;;;;UAIU;WACC,qBAAqB,SAAS;;WAE9B,kBAAkB,SAAS,eAAe;;WAE1C,iBAAiB;;WAEjB,cAAc,KAAK;;;;;WAKnB;;KAEN;WACM;;;;;;iBAMM,WAAW,eAAe,eAAe,UAAU,wBAAwB;;;;KAIvF;WACM;WACA;;KAEN;WACM,SAAS;WACT;WACA,aAAa;;WAEb;WACA;;;UAGD;EACR,QAAQ,oBAAoB,cAAc,0BAA0B"}
@@ -0,0 +1 @@
1
+ import "./types-flbim7l7-BbzcJZpz.mjs";