@prisma/orm-toolchain 8.0.0-rc.1-dev.5 → 8.0.0-rc.1-dev.7

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 (217) hide show
  1. package/dist/{aggregate-B4mhR4Sk.mjs → aggregate-D53gnb7v.mjs} +8 -8
  2. package/dist/{aggregate-B4mhR4Sk.mjs.map → aggregate-D53gnb7v.mjs.map} +1 -1
  3. package/dist/bin__prisma-next.mjs +22 -22
  4. package/dist/bin__prisma-next.mjs.map +1 -1
  5. package/dist/caught-errors-D7Qznyrm-BzYooF6H.mjs +14 -0
  6. package/dist/caught-errors-D7Qznyrm-BzYooF6H.mjs.map +1 -0
  7. package/dist/{types-DZWEs4si-D8UlyJI0.d.mts → cli-errors-CDr3WcJP-NFry5GHb.d.mts} +8 -2
  8. package/dist/cli-errors-CDr3WcJP-NFry5GHb.d.mts.map +1 -0
  9. package/dist/cli.mjs +2 -2
  10. package/dist/cli.mjs.map +1 -1
  11. package/dist/cli__commands__contract-emit.mjs +1 -1
  12. package/dist/cli__commands__contract-infer.mjs +1 -1
  13. package/dist/cli__commands__db-init.mjs +1 -1
  14. package/dist/cli__commands__db-schema.mjs +1 -1
  15. package/dist/cli__commands__db-sign.mjs +1 -1
  16. package/dist/cli__commands__db-update.mjs +1 -1
  17. package/dist/cli__commands__db-verify.mjs +1 -1
  18. package/dist/cli__commands__migrate.d.mts +3 -12
  19. package/dist/cli__commands__migrate.d.mts.map +1 -1
  20. package/dist/cli__commands__migrate.mjs +1 -1
  21. package/dist/cli__commands__migration-check.d.mts +1 -57
  22. package/dist/cli__commands__migration-check.d.mts.map +1 -1
  23. package/dist/cli__commands__migration-check.mjs +2 -2
  24. package/dist/cli__commands__migration-graph.d.mts +1 -1
  25. package/dist/cli__commands__migration-graph.mjs +1 -1
  26. package/dist/cli__commands__migration-list.d.mts +4 -44
  27. package/dist/cli__commands__migration-list.d.mts.map +1 -1
  28. package/dist/cli__commands__migration-list.mjs +2 -2
  29. package/dist/cli__commands__migration-log.d.mts +1 -1
  30. package/dist/cli__commands__migration-log.mjs +1 -1
  31. package/dist/cli__commands__migration-new.mjs +1 -1
  32. package/dist/cli__commands__migration-plan.d.mts +2 -47
  33. package/dist/cli__commands__migration-plan.d.mts.map +1 -1
  34. package/dist/cli__commands__migration-plan.mjs +1 -1
  35. package/dist/cli__commands__migration-show.mjs +1 -1
  36. package/dist/cli__commands__migration-status.d.mts +1 -1
  37. package/dist/cli__commands__migration-status.mjs +1 -1
  38. package/dist/cli__commands__ref.d.mts +1 -28
  39. package/dist/cli__commands__ref.d.mts.map +1 -1
  40. package/dist/cli__commands__ref.mjs +2 -2
  41. package/dist/cli__commands__telemetry.mjs +1 -1
  42. package/dist/cli__control-api.d.mts +502 -2
  43. package/dist/cli__control-api.d.mts.map +1 -1
  44. package/dist/cli__control-api.mjs +18 -3
  45. package/dist/cli__migration-cli.mjs +3 -6
  46. package/dist/cli__migration-cli.mjs.map +1 -1
  47. package/dist/{client-75qrAPqf-7l0C0H_b.mjs → client-Y6qbDk7X-BzKLmBZo.mjs} +16 -12
  48. package/dist/client-Y6qbDk7X-BzKLmBZo.mjs.map +1 -0
  49. package/dist/{command-helpers-CAoXqAY9-DWUBcTXM.mjs → command-helpers-C4WpR-QE-DE494TSG.mjs} +30 -74
  50. package/dist/command-helpers-C4WpR-QE-DE494TSG.mjs.map +1 -0
  51. package/dist/config-loader.d.mts +2 -18
  52. package/dist/contract-at-errors-Dv1mxKYO-C29YB4RC.mjs +44 -0
  53. package/dist/contract-at-errors-Dv1mxKYO-C29YB4RC.mjs.map +1 -0
  54. package/dist/{contract-emit-B6odMoem-C87PBvmo.mjs → contract-emit-CTm2zfuG-7PV9SBY6.mjs} +12 -11
  55. package/dist/contract-emit-CTm2zfuG-7PV9SBY6.mjs.map +1 -0
  56. package/dist/{contract-emit-0hSjbuxp-BJLC-VgC.mjs → contract-emit-D8IXP9Qp-Df6NwXn8.mjs} +4 -4
  57. package/dist/{contract-emit-0hSjbuxp-BJLC-VgC.mjs.map → contract-emit-D8IXP9Qp-Df6NwXn8.mjs.map} +1 -1
  58. package/dist/{contract-infer-BnkqpftN-DwBzasOu.mjs → contract-infer-BwT7ngoo-Dx6aAwIN.mjs} +5 -5
  59. package/dist/contract-infer-BwT7ngoo-Dx6aAwIN.mjs.map +1 -0
  60. package/dist/contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs +82 -0
  61. package/dist/contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs.map +1 -0
  62. package/dist/{contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs → contract-snapshot-store-C9-J6OBn-ByElY0EC.mjs} +3 -3
  63. package/dist/{contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs.map → contract-snapshot-store-C9-J6OBn-ByElY0EC.mjs.map} +1 -1
  64. package/dist/{contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs → contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs} +7 -7
  65. package/dist/contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs.map +1 -0
  66. package/dist/{db-init-bd0_x2Q8.mjs → db-init-CBj_EWg3.mjs} +18 -32
  67. package/dist/db-init-CBj_EWg3.mjs.map +1 -0
  68. package/dist/{db-schema-CwgAWTqG.mjs → db-schema-BWpeh0Q_.mjs} +4 -4
  69. package/dist/{db-schema-CwgAWTqG.mjs.map → db-schema-BWpeh0Q_.mjs.map} +1 -1
  70. package/dist/{db-sign-vqiYfpjI.mjs → db-sign-DCb_DKtv.mjs} +13 -29
  71. package/dist/db-sign-DCb_DKtv.mjs.map +1 -0
  72. package/dist/{db-update-Br0diOCo.mjs → db-update-WX0KitcX.mjs} +29 -52
  73. package/dist/db-update-WX0KitcX.mjs.map +1 -0
  74. package/dist/{db-verify-CKPsRFrj-T7nSt7yT.mjs → db-verify-B8ax2Y_x-Bp4s5Ra6.mjs} +9 -6
  75. package/dist/db-verify-B8ax2Y_x-Bp4s5Ra6.mjs.map +1 -0
  76. package/dist/{errors-IpZm1Skp-BH495dRd.mjs → errors-Co-8oaiB-CB-6Uqki.mjs} +45 -53
  77. package/dist/errors-Co-8oaiB-CB-6Uqki.mjs.map +1 -0
  78. package/dist/{errors--qsXZUtL.d.mts → errors-NRmFpwR1.d.mts} +13 -9
  79. package/dist/errors-NRmFpwR1.d.mts.map +1 -0
  80. package/dist/{format-ByDm2goZ-BIRlFoo6.mjs → format-Bw3LVJ1v-BJ6lVFMA.mjs} +12 -9
  81. package/dist/format-Bw3LVJ1v-BJ6lVFMA.mjs.map +1 -0
  82. package/dist/{framework-components-CjshQKHA-Dlp6Leo5.mjs → framework-components-3DdB31mk-BHyX-OlJ.mjs} +3 -3
  83. package/dist/{framework-components-CjshQKHA-Dlp6Leo5.mjs.map → framework-components-3DdB31mk-BHyX-OlJ.mjs.map} +1 -1
  84. package/dist/{graph-membership-DW6nnbyQ-Bp2KcVwR.mjs → graph-membership-BEmNEMtP-rz61CLM5.mjs} +3 -3
  85. package/dist/{graph-membership-DW6nnbyQ-Bp2KcVwR.mjs.map → graph-membership-BEmNEMtP-rz61CLM5.mjs.map} +1 -1
  86. package/dist/index-Df9igRvP.d.mts +18 -0
  87. package/dist/index-Df9igRvP.d.mts.map +1 -0
  88. package/dist/{init-BGm77aWc-jHVUn63W.mjs → init-CPB89WK2-DPZRZ9Ee.mjs} +4 -4
  89. package/dist/{init-BGm77aWc-jHVUn63W.mjs.map → init-CPB89WK2-DPZRZ9Ee.mjs.map} +1 -1
  90. package/dist/{inspect-live-schema-CnwYTRZ0-P-6asJFl.mjs → inspect-live-schema-Da76TWOs-CAFqkhGb.mjs} +4 -4
  91. package/dist/{inspect-live-schema-CnwYTRZ0-P-6asJFl.mjs.map → inspect-live-schema-Da76TWOs-CAFqkhGb.mjs.map} +1 -1
  92. package/dist/invariants-BzYfO9IL-BXTvx0z9.mjs +52 -0
  93. package/dist/invariants-BzYfO9IL-BXTvx0z9.mjs.map +1 -0
  94. package/dist/{invariants-lXzy6txi-DAoP4nTE.mjs → invariants-C1WVUAH7-DlOBTTkM.mjs} +3 -3
  95. package/dist/{invariants-lXzy6txi-DAoP4nTE.mjs.map → invariants-C1WVUAH7-DlOBTTkM.mjs.map} +1 -1
  96. package/dist/{io-C8TdyBKt-DloEBi70.mjs → io-CHUUeHh0-CoCBe9eN.mjs} +8 -8
  97. package/dist/{io-C8TdyBKt-DloEBi70.mjs.map → io-CHUUeHh0-CoCBe9eN.mjs.map} +1 -1
  98. package/dist/legend-5iwwlLU2-CB8bdQKJ.mjs +22 -0
  99. package/dist/legend-5iwwlLU2-CB8bdQKJ.mjs.map +1 -0
  100. package/dist/{migrate-BdVFDKF2.mjs → migrate-B-NAuO90.mjs} +90 -227
  101. package/dist/migrate-B-NAuO90.mjs.map +1 -0
  102. package/dist/migrate-show-60NNqVia-oGqMaVA9.d.mts +56 -0
  103. package/dist/migrate-show-60NNqVia-oGqMaVA9.d.mts.map +1 -0
  104. package/dist/migrate-show-B2LkXkoB-D1ZNl84C.mjs +202 -0
  105. package/dist/migrate-show-B2LkXkoB-D1ZNl84C.mjs.map +1 -0
  106. package/dist/{migration-BuUmO7It.mjs → migration-DAJY-NmR.mjs} +3 -3
  107. package/dist/{migration-BuUmO7It.mjs.map → migration-DAJY-NmR.mjs.map} +1 -1
  108. package/dist/migration-check-BDjtAn7x-B0nEBR0k.mjs +254 -0
  109. package/dist/migration-check-BDjtAn7x-B0nEBR0k.mjs.map +1 -0
  110. package/dist/{migration-check-DcwUnadt-jamDqOmM.mjs → migration-check-DONPyXff-CGTUpLv-.mjs} +12 -254
  111. package/dist/migration-check-DONPyXff-CGTUpLv-.mjs.map +1 -0
  112. package/dist/{migration-command-scaffold-BCuoeAki-DMy_5ztW.mjs → migration-command-scaffold-BPqXPCFV-Bls2Wwg7.mjs} +4 -4
  113. package/dist/{migration-command-scaffold-BCuoeAki-DMy_5ztW.mjs.map → migration-command-scaffold-BPqXPCFV-Bls2Wwg7.mjs.map} +1 -1
  114. package/dist/{migration-graph-CBf9ORe7-B4xAF8GN.mjs → migration-graph-DDaOHo10-yJFAbKCu.mjs} +3 -3
  115. package/dist/{migration-graph-CBf9ORe7-B4xAF8GN.mjs.map → migration-graph-DDaOHo10-yJFAbKCu.mjs.map} +1 -1
  116. package/dist/{migration-graph-vmgkL3k4.mjs → migration-graph-Dn469b0l.mjs} +10 -19
  117. package/dist/migration-graph-Dn469b0l.mjs.map +1 -0
  118. package/dist/migration-graph-HKch1Xk4-DyWhXtjZ.mjs +35 -0
  119. package/dist/migration-graph-HKch1Xk4-DyWhXtjZ.mjs.map +1 -0
  120. package/dist/migration-list-C9OPCMt--C28yBgVr.mjs +102 -0
  121. package/dist/migration-list-C9OPCMt--C28yBgVr.mjs.map +1 -0
  122. package/dist/migration-list-jk4iCtmO.mjs +120 -0
  123. package/dist/migration-list-jk4iCtmO.mjs.map +1 -0
  124. package/dist/{migration-log-CS5IWcNq-DI7FTHCA.mjs → migration-log-DQzUBrm8-D3m9wcuf.mjs} +7 -7
  125. package/dist/migration-log-DQzUBrm8-D3m9wcuf.mjs.map +1 -0
  126. package/dist/migration-new-BkSY6m0t.mjs +50 -0
  127. package/dist/migration-new-BkSY6m0t.mjs.map +1 -0
  128. package/dist/{migration-new-GmW2anVb.mjs → migration-new-g98oB3nC-BcrkxAAt.mjs} +19 -58
  129. package/dist/migration-new-g98oB3nC-BcrkxAAt.mjs.map +1 -0
  130. package/dist/{migration-path-target-D3Sj55PI-BICblCuk.mjs → migration-path-target-BPYp3LNc-DsDdLU0J.mjs} +4 -4
  131. package/dist/migration-path-target-BPYp3LNc-DsDdLU0J.mjs.map +1 -0
  132. package/dist/migration-plan-BsOYRogP-CC1UFAbu.d.mts +159 -0
  133. package/dist/migration-plan-BsOYRogP-CC1UFAbu.d.mts.map +1 -0
  134. package/dist/migration-plan-CjIYMJZy.mjs +172 -0
  135. package/dist/migration-plan-CjIYMJZy.mjs.map +1 -0
  136. package/dist/{migration-plan-q_L84PN1-ClkGgtVz.mjs → migration-plan-CwuZLXVE-DAJ-JUQT.mjs} +46 -185
  137. package/dist/migration-plan-CwuZLXVE-DAJ-JUQT.mjs.map +1 -0
  138. package/dist/{migration-show--pW4XhKs.mjs → migration-show-CW6EKtfw.mjs} +16 -12
  139. package/dist/migration-show-CW6EKtfw.mjs.map +1 -0
  140. package/dist/{migration-status-CE7cQLDq-P1x1-BsZ.mjs → migration-status-DSQcBhiN.mjs} +37 -68
  141. package/dist/migration-status-DSQcBhiN.mjs.map +1 -0
  142. package/dist/migration-tools.d.mts +5 -5
  143. package/dist/migration-tools.mjs +13 -13
  144. package/dist/migration-tools__aggregate.mjs +1 -1
  145. package/dist/migration-tools__contract-snapshot-store.mjs +1 -1
  146. package/dist/migration-tools__errors.d.mts +2 -2
  147. package/dist/migration-tools__errors.mjs +2 -2
  148. package/dist/migration-tools__invariants.mjs +1 -1
  149. package/dist/migration-tools__io.mjs +1 -1
  150. package/dist/migration-tools__migration-graph.mjs +2 -2
  151. package/dist/migration-tools__migration.mjs +1 -1
  152. package/dist/migration-tools__ref-resolution.mjs +1 -1
  153. package/dist/migration-tools__refs.mjs +1 -1
  154. package/dist/migration-tools__spaces.d.mts +1 -1
  155. package/dist/migration-tools__spaces.mjs +2 -2
  156. package/dist/{project-import-root-CpwLCDLY-DkVwAnWj.mjs → project-import-root-C_bd0ooL-WkbJLnAA.mjs} +10 -8
  157. package/dist/project-import-root-C_bd0ooL-WkbJLnAA.mjs.map +1 -0
  158. package/dist/ref-DSAZime8.mjs +72 -0
  159. package/dist/ref-DSAZime8.mjs.map +1 -0
  160. package/dist/ref-advancement-DaZBzm7m-BZQtedYC.mjs +96 -0
  161. package/dist/ref-advancement-DaZBzm7m-BZQtedYC.mjs.map +1 -0
  162. package/dist/ref-eJjxzYTh-CNiyDL4p.mjs +109 -0
  163. package/dist/ref-eJjxzYTh-CNiyDL4p.mjs.map +1 -0
  164. package/dist/{ref-resolution-BjJBWPjX.mjs → ref-resolution-Ct2GMcNB.mjs} +2 -2
  165. package/dist/{ref-resolution-BjJBWPjX.mjs.map → ref-resolution-Ct2GMcNB.mjs.map} +1 -1
  166. package/dist/ref-resolution-_S4xTT2L-BE5zgO2W.mjs +16 -0
  167. package/dist/ref-resolution-_S4xTT2L-BE5zgO2W.mjs.map +1 -0
  168. package/dist/{refs-BDbB9BRB-D6Za3Q49.mjs → refs-B2BL8z3i-DGGFB7Mj.mjs} +6 -6
  169. package/dist/refs-B2BL8z3i-DGGFB7Mj.mjs.map +1 -0
  170. package/dist/refs-fQLFcMoq-UTlvnijY.mjs +47 -0
  171. package/dist/refs-fQLFcMoq-UTlvnijY.mjs.map +1 -0
  172. package/dist/{spaces-DxFj5y8l.d.mts → spaces-D5qtTlhj.d.mts} +2 -2
  173. package/dist/{spaces-DxFj5y8l.d.mts.map → spaces-D5qtTlhj.d.mts.map} +1 -1
  174. package/dist/{spaces-C27bA-xc.mjs → spaces-DxuvClN9.mjs} +7 -7
  175. package/dist/spaces-DxuvClN9.mjs.map +1 -0
  176. package/dist/{telemetry-CmbCa3Ld-CmE5zcIG.mjs → telemetry-DVBHDQd6-Ckn5oClN.mjs} +3 -3
  177. package/dist/{telemetry-CmbCa3Ld-CmE5zcIG.mjs.map → telemetry-DVBHDQd6-Ckn5oClN.mjs.map} +1 -1
  178. package/dist/{verify-DnVNjc5C-BGdsblBK.mjs → verify-C6L_hiJU-B4V3bqvG.mjs} +3 -3
  179. package/dist/{verify-DnVNjc5C-BGdsblBK.mjs.map → verify-C6L_hiJU-B4V3bqvG.mjs.map} +1 -1
  180. package/dist/{verify-contract-spaces-BZDcJsuA-De8v4Z4T.mjs → verify-contract-spaces-WvjSiWcB-zGhaCnfs.mjs} +4 -4
  181. package/dist/{verify-contract-spaces-BZDcJsuA-De8v4Z4T.mjs.map → verify-contract-spaces-WvjSiWcB-zGhaCnfs.mjs.map} +1 -1
  182. package/dist/vite-plugin-contract-emit.mjs +1 -1
  183. package/package.json +12 -12
  184. package/dist/client-75qrAPqf-7l0C0H_b.mjs.map +0 -1
  185. package/dist/command-helpers-CAoXqAY9-DWUBcTXM.mjs.map +0 -1
  186. package/dist/config-loader.d.mts.map +0 -1
  187. package/dist/contract-at-errors-BX7w-p19-SxA8eaV2.mjs +0 -36
  188. package/dist/contract-at-errors-BX7w-p19-SxA8eaV2.mjs.map +0 -1
  189. package/dist/contract-emit-B6odMoem-C87PBvmo.mjs.map +0 -1
  190. package/dist/contract-infer-BnkqpftN-DwBzasOu.mjs.map +0 -1
  191. package/dist/contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs.map +0 -1
  192. package/dist/db-init-bd0_x2Q8.mjs.map +0 -1
  193. package/dist/db-sign-vqiYfpjI.mjs.map +0 -1
  194. package/dist/db-update-Br0diOCo.mjs.map +0 -1
  195. package/dist/db-verify-CKPsRFrj-T7nSt7yT.mjs.map +0 -1
  196. package/dist/errors--qsXZUtL.d.mts.map +0 -1
  197. package/dist/errors-IpZm1Skp-BH495dRd.mjs.map +0 -1
  198. package/dist/format-ByDm2goZ-BIRlFoo6.mjs.map +0 -1
  199. package/dist/migrate-BdVFDKF2.mjs.map +0 -1
  200. package/dist/migration-check-DcwUnadt-jamDqOmM.mjs.map +0 -1
  201. package/dist/migration-graph-vmgkL3k4.mjs.map +0 -1
  202. package/dist/migration-list-BFBeo1_X-ckYMhETH.mjs +0 -228
  203. package/dist/migration-list-BFBeo1_X-ckYMhETH.mjs.map +0 -1
  204. package/dist/migration-log-CS5IWcNq-DI7FTHCA.mjs.map +0 -1
  205. package/dist/migration-new-GmW2anVb.mjs.map +0 -1
  206. package/dist/migration-path-target-D3Sj55PI-BICblCuk.mjs.map +0 -1
  207. package/dist/migration-plan-q_L84PN1-ClkGgtVz.mjs.map +0 -1
  208. package/dist/migration-show--pW4XhKs.mjs.map +0 -1
  209. package/dist/migration-status-CE7cQLDq-P1x1-BsZ.mjs.map +0 -1
  210. package/dist/project-import-root-CpwLCDLY-DkVwAnWj.mjs.map +0 -1
  211. package/dist/ref-advancement-CSPMoQs3-fEipZrdu.mjs +0 -57
  212. package/dist/ref-advancement-CSPMoQs3-fEipZrdu.mjs.map +0 -1
  213. package/dist/ref-sHE8zOcm.mjs +0 -171
  214. package/dist/ref-sHE8zOcm.mjs.map +0 -1
  215. package/dist/refs-BDbB9BRB-D6Za3Q49.mjs.map +0 -1
  216. package/dist/spaces-C27bA-xc.mjs.map +0 -1
  217. package/dist/types-DZWEs4si-D8UlyJI0.d.mts.map +0 -1
@@ -1,6 +1,6 @@
1
- import { ct as setCommandExamples, o as createTerminalUI, q as handleResult, r as addGlobalOptions, st as setCommandDescriptions, tt as parseGlobalFlagsOrExit } from "./command-helpers-CAoXqAY9-DWUBcTXM.mjs";
2
- import { t as inspectLiveSchema } from "./inspect-live-schema-CnwYTRZ0-P-6asJFl.mjs";
3
- import { n as formatIntrospectOutput, t as formatIntrospectJson } from "./verify-DnVNjc5C-BGdsblBK.mjs";
1
+ import { et as parseGlobalFlagsOrExit, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, st as setCommandExamples } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
2
+ import { t as inspectLiveSchema } from "./inspect-live-schema-Da76TWOs-CAFqkhGb.mjs";
3
+ import { n as formatIntrospectOutput, t as formatIntrospectJson } from "./verify-C6L_hiJU-B4V3bqvG.mjs";
4
4
  import { Command } from "commander";
5
5
  //#region ../../../1-framework/3-tooling/cli/dist/commands/db-schema.mjs
6
6
  function toIntrospectSchemaResult(result) {
@@ -44,4 +44,4 @@ function createDbSchemaCommand() {
44
44
  //#endregion
45
45
  export { createDbSchemaCommand as t };
46
46
 
47
- //# sourceMappingURL=db-schema-CwgAWTqG.mjs.map
47
+ //# sourceMappingURL=db-schema-BWpeh0Q_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema-CwgAWTqG.mjs","names":[],"sources":["../../../../1-framework/3-tooling/cli/dist/commands/db-schema.mjs"],"sourcesContent":["import { _ as createTerminalUI, g as parseGlobalFlagsOrExit, l as setCommandDescriptions, t as addGlobalOptions, u as setCommandExamples, y as handleResult } from \"../command-helpers-CAoXqAY9.mjs\";\nimport { t as inspectLiveSchema } from \"../inspect-live-schema-CnwYTRZ0.mjs\";\nimport { n as formatIntrospectOutput, t as formatIntrospectJson } from \"../verify-DnVNjc5C.mjs\";\nimport { Command } from \"commander\";\n//#region src/commands/db-schema.ts\nfunction toIntrospectSchemaResult(result) {\n\treturn {\n\t\tok: true,\n\t\tsummary: \"Schema read successfully\",\n\t\ttarget: result.target,\n\t\tschema: result.schema,\n\t\tmeta: result.meta,\n\t\ttimings: result.timings\n\t};\n}\nfunction createDbSchemaCommand() {\n\tconst command = new Command(\"schema\");\n\tsetCommandDescriptions(command, \"Inspect the live database schema\", \"Reads the live database schema and prints it as a tree by default or as JSON with\\n--json. This command is always read-only and never writes files. To save machine-\\nreadable output, use shell redirection, for example `prisma-next db schema --json > schema.json`.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next db schema --db $DATABASE_URL\",\n\t\t\"prisma-next db schema --db $DATABASE_URL --json\",\n\t\t\"prisma-next db schema --db $DATABASE_URL --json > schema.json\"\n\t]);\n\taddGlobalOptions(command).option(\"--db <url>\", \"Database connection string\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").action(async (options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst exitCode = handleResult(await inspectLiveSchema(options, flags, ui, Date.now(), {\n\t\t\tcommandName: \"db schema\",\n\t\t\tdescription: \"Inspect the live database schema\",\n\t\t\turl: \"https://pris.ly/db-schema\"\n\t\t}), flags, ui, (value) => {\n\t\t\tconst introspectResult = toIntrospectSchemaResult(value);\n\t\t\tif (flags.json) {\n\t\t\t\tui.output(formatIntrospectJson(introspectResult));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst output = formatIntrospectOutput(introspectResult, value.schemaView, flags);\n\t\t\tif (output) ui.log(output);\n\t\t});\n\t\tprocess.exit(exitCode);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbSchemaCommand };\n\n//# sourceMappingURL=db-schema.mjs.map"],"mappings":";;;;;AAKA,SAAS,yBAAyB,QAAQ;CACzC,OAAO;EACN,IAAI;EACJ,SAAS;EACT,QAAQ,OAAO;EACf,QAAQ,OAAO;EACf,MAAM,OAAO;EACb,SAAS,OAAO;CACjB;AACD;AACA,SAAS,wBAAwB;CAChC,MAAM,UAAU,IAAI,QAAQ,QAAQ;CACpC,uBAAuB,SAAS,oCAAoC,yQAAyQ;CAC7U,mBAAmB,SAAS;EAC3B;EACA;EACA;CACD,CAAC;CACD,iBAAiB,OAAO,CAAC,CAAC,OAAO,cAAc,4BAA4B,CAAC,CAAC,OAAO,mBAAmB,+BAA+B,CAAC,CAAC,OAAO,OAAO,YAAY;EACjK,MAAM,QAAQ,uBAAuB,OAAO;EAC5C,MAAM,KAAK,iBAAiB,KAAK;EACjC,MAAM,WAAW,aAAa,MAAM,kBAAkB,SAAS,OAAO,IAAI,KAAK,IAAI,GAAG;GACrF,aAAa;GACb,aAAa;GACb,KAAK;EACN,CAAC,GAAG,OAAO,KAAK,UAAU;GACzB,MAAM,mBAAmB,yBAAyB,KAAK;GACvD,IAAI,MAAM,MAAM;IACf,GAAG,OAAO,qBAAqB,gBAAgB,CAAC;IAChD;GACD;GACA,MAAM,SAAS,uBAAuB,kBAAkB,MAAM,YAAY,KAAK;GAC/E,IAAI,QAAQ,GAAG,IAAI,MAAM;EAC1B,CAAC;EACD,QAAQ,KAAK,QAAQ;CACtB,CAAC;CACD,OAAO;AACR"}
1
+ {"version":3,"file":"db-schema-BWpeh0Q_.mjs","names":[],"sources":["../../../../1-framework/3-tooling/cli/dist/commands/db-schema.mjs"],"sourcesContent":["import { _ as createTerminalUI, g as parseGlobalFlagsOrExit, l as setCommandDescriptions, t as addGlobalOptions, u as setCommandExamples, y as handleResult } from \"../command-helpers-C4WpR-QE.mjs\";\nimport { t as inspectLiveSchema } from \"../inspect-live-schema-Da76TWOs.mjs\";\nimport { n as formatIntrospectOutput, t as formatIntrospectJson } from \"../verify-C6L_hiJU.mjs\";\nimport { Command } from \"commander\";\n//#region src/commands/db-schema.ts\nfunction toIntrospectSchemaResult(result) {\n\treturn {\n\t\tok: true,\n\t\tsummary: \"Schema read successfully\",\n\t\ttarget: result.target,\n\t\tschema: result.schema,\n\t\tmeta: result.meta,\n\t\ttimings: result.timings\n\t};\n}\nfunction createDbSchemaCommand() {\n\tconst command = new Command(\"schema\");\n\tsetCommandDescriptions(command, \"Inspect the live database schema\", \"Reads the live database schema and prints it as a tree by default or as JSON with\\n--json. This command is always read-only and never writes files. To save machine-\\nreadable output, use shell redirection, for example `prisma-next db schema --json > schema.json`.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next db schema --db $DATABASE_URL\",\n\t\t\"prisma-next db schema --db $DATABASE_URL --json\",\n\t\t\"prisma-next db schema --db $DATABASE_URL --json > schema.json\"\n\t]);\n\taddGlobalOptions(command).option(\"--db <url>\", \"Database connection string\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").action(async (options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst exitCode = handleResult(await inspectLiveSchema(options, flags, ui, Date.now(), {\n\t\t\tcommandName: \"db schema\",\n\t\t\tdescription: \"Inspect the live database schema\",\n\t\t\turl: \"https://pris.ly/db-schema\"\n\t\t}), flags, ui, (value) => {\n\t\t\tconst introspectResult = toIntrospectSchemaResult(value);\n\t\t\tif (flags.json) {\n\t\t\t\tui.output(formatIntrospectJson(introspectResult));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst output = formatIntrospectOutput(introspectResult, value.schemaView, flags);\n\t\t\tif (output) ui.log(output);\n\t\t});\n\t\tprocess.exit(exitCode);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbSchemaCommand };\n\n//# sourceMappingURL=db-schema.mjs.map"],"mappings":";;;;;AAKA,SAAS,yBAAyB,QAAQ;CACzC,OAAO;EACN,IAAI;EACJ,SAAS;EACT,QAAQ,OAAO;EACf,QAAQ,OAAO;EACf,MAAM,OAAO;EACb,SAAS,OAAO;CACjB;AACD;AACA,SAAS,wBAAwB;CAChC,MAAM,UAAU,IAAI,QAAQ,QAAQ;CACpC,uBAAuB,SAAS,oCAAoC,yQAAyQ;CAC7U,mBAAmB,SAAS;EAC3B;EACA;EACA;CACD,CAAC;CACD,iBAAiB,OAAO,CAAC,CAAC,OAAO,cAAc,4BAA4B,CAAC,CAAC,OAAO,mBAAmB,+BAA+B,CAAC,CAAC,OAAO,OAAO,YAAY;EACjK,MAAM,QAAQ,uBAAuB,OAAO;EAC5C,MAAM,KAAK,iBAAiB,KAAK;EACjC,MAAM,WAAW,aAAa,MAAM,kBAAkB,SAAS,OAAO,IAAI,KAAK,IAAI,GAAG;GACrF,aAAa;GACb,aAAa;GACb,KAAK;EACN,CAAC,GAAG,OAAO,KAAK,UAAU;GACzB,MAAM,mBAAmB,yBAAyB,KAAK;GACvD,IAAI,MAAM,MAAM;IACf,GAAG,OAAO,qBAAqB,gBAAgB,CAAC;IAChD;GACD;GACA,MAAM,SAAS,uBAAuB,kBAAkB,MAAM,YAAY,KAAK;GAC/E,IAAI,QAAQ,GAAG,IAAI,MAAM;EAC1B,CAAC;EACD,QAAQ,KAAK,QAAQ;CACtB,CAAC;CACD,OAAO;AACR"}
@@ -1,12 +1,9 @@
1
- import { t as MigrationToolsError } from "./errors-IpZm1Skp-BH495dRd.mjs";
2
- import { r as readContractSnapshotJson } from "./contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs";
3
- import { $ as maskConnectionUrl, N as errorUnexpected, O as errorRuntime$1, Q as mapRefResolutionError, W as formatStyledHeader, Z as mapMigrationToolsError, at as resolveMigrationPaths, ct as setCommandExamples, d as errorContractValidationFailed, f as errorDatabaseConnectionRequired, h as errorFileNotFound, it as resolveContractPath, m as errorDriverRequired, o as createTerminalUI, q as handleResult, r as addGlobalOptions, st as setCommandDescriptions, t as CliStructuredError$1, tt as parseGlobalFlagsOrExit } from "./command-helpers-CAoXqAY9-DWUBcTXM.mjs";
1
+ import { N as errorUnexpected, Q as maskConnectionUrl, W as formatStyledHeader, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, f as errorDatabaseConnectionRequired, h as errorFileNotFound, it as resolveMigrationPaths, m as errorDriverRequired, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, rt as resolveContractPath, st as setCommandExamples, t as CliStructuredError$1 } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
4
2
  import { r as loadConfig } from "./exports-CDX9kZuw.mjs";
5
3
  import { t as createProgressAdapter } from "./progress-adapter-CjAeTxY_-BXYSd1eY.mjs";
6
- import { n as buildReadAggregate } from "./contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs";
7
- import { t as createControlClient } from "./client-75qrAPqf-7l0C0H_b.mjs";
8
- import { n as parseContractRef } from "./ref-resolution-BjJBWPjX.mjs";
9
- import { a as formatSignJson, i as formatSchemaVerifyOutput, o as formatSignOutput, r as formatSchemaVerifyJson } from "./verify-DnVNjc5C-BGdsblBK.mjs";
4
+ import { t as createControlClient } from "./client-Y6qbDk7X-BzKLmBZo.mjs";
5
+ import { t as resolveContractRefToSnapshot } from "./contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs";
6
+ import { a as formatSignJson, i as formatSchemaVerifyOutput, o as formatSignOutput, r as formatSchemaVerifyJson } from "./verify-C6L_hiJU-B4V3bqvG.mjs";
10
7
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
11
8
  import { relative, resolve } from "pathe";
12
9
  import { readFile } from "node:fs/promises";
@@ -48,29 +45,16 @@ async function executeDbSignCommand(contractArg, options, flags, ui) {
48
45
  let contractJson;
49
46
  if (effectiveContractArg) try {
50
47
  const { migrationsDir } = resolveMigrationPaths(options.config, config);
51
- const loaded = await buildReadAggregate(config, { migrationsDir });
52
- if (!loaded.ok) return notOk(loaded.failure);
53
- const graph = loaded.value.aggregate.app.graph();
54
- const bundles = loaded.value.aggregate.app.packages;
55
- const refs = loaded.value.aggregate.app.refs;
56
- const refResult = parseContractRef(effectiveContractArg, {
57
- graph,
58
- refs
48
+ const resolved = await resolveContractRefToSnapshot({
49
+ config,
50
+ migrationsDir,
51
+ refInput: effectiveContractArg,
52
+ contractPathAbsolute,
53
+ fallbackToEmitted: true
59
54
  });
60
- if (!refResult.ok) return notOk(mapRefResolutionError(refResult.failure));
61
- const targetHash = refResult.value.hash;
62
- if (bundles.find((p) => p.metadata.to === targetHash)) contractJson = await readContractSnapshotJson(migrationsDir, targetHash);
63
- else {
64
- const defaultRaw = await readFile(contractPathAbsolute, "utf-8");
65
- const defaultContract = JSON.parse(defaultRaw);
66
- if (defaultContract["storage"]?.["storageHash"] === targetHash) contractJson = defaultContract;
67
- else return notOk(errorRuntime$1(`No contract file found for hash "${targetHash}"`, {
68
- why: `Resolved contract reference "${effectiveContractArg}" to hash "${targetHash}" but no migration produces that hash and the emitted contract does not match.`,
69
- fix: "Ensure the target contract exists on disk — either as a migration endpoint or as the emitted contract.json."
70
- }));
71
- }
55
+ if (!resolved.ok) return notOk(resolved.failure);
56
+ contractJson = resolved.value.contractJson;
72
57
  } catch (error) {
73
- if (MigrationToolsError.is(error)) return notOk(mapMigrationToolsError(error));
74
58
  if (error instanceof CliStructuredError$1) return notOk(error);
75
59
  return notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to resolve contract reference: ${error instanceof Error ? error.message : String(error)}` }));
76
60
  }
@@ -172,4 +156,4 @@ function createDbSignCommand() {
172
156
  //#endregion
173
157
  export { createDbSignCommand as t };
174
158
 
175
- //# sourceMappingURL=db-sign-vqiYfpjI.mjs.map
159
+ //# sourceMappingURL=db-sign-DCb_DKtv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-sign-DCb_DKtv.mjs","names":["CliStructuredError"],"sources":["../../../../1-framework/3-tooling/cli/dist/commands/db-sign.mjs"],"sourcesContent":["import { A as formatStyledHeader, B as errorContractValidationFailed, F as CliStructuredError, U as errorDriverRequired, V as errorDatabaseConnectionRequired, W as errorFileNotFound, _ as createTerminalUI, ct as errorUnexpected, g as parseGlobalFlagsOrExit, i as maskConnectionUrl, l as setCommandDescriptions, o as resolveContractPath, s as resolveMigrationPaths, t as addGlobalOptions, u as setCommandExamples, y as handleResult } from \"../command-helpers-C4WpR-QE.mjs\";\nimport { t as createProgressAdapter } from \"../progress-adapter-CjAeTxY_.mjs\";\nimport { t as createControlClient } from \"../client-Y6qbDk7X.mjs\";\nimport { a as formatSignJson, i as formatSchemaVerifyOutput, o as formatSignOutput, r as formatSchemaVerifyJson } from \"../verify-C6L_hiJU.mjs\";\nimport { t as resolveContractRefToSnapshot } from \"../contract-snapshot-resolution-SATuw0JW.mjs\";\nimport { Command } from \"commander\";\nimport { loadConfig } from \"@internal/config-loader\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { relative, resolve } from \"pathe\";\nimport { readFile } from \"node:fs/promises\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/commands/db-sign.ts\n/**\n* Executes the db sign command and returns a structured Result.\n* Success: SignDatabaseResult (sign happened)\n* Failure: CliStructuredError (infra error) or VerifyDatabaseSchemaResult (schema mismatch)\n*/\nasync function executeDbSignCommand(contractArg, options, flags, ui) {\n\tconst config = await loadConfig(options.config);\n\tconst configPath = options.config ? relative(process.cwd(), resolve(options.config)) : \"prisma-next.config.ts\";\n\tconst contractPathAbsolute = resolveContractPath(config);\n\tconst contractPath = relative(process.cwd(), contractPathAbsolute);\n\tconst effectiveContractArg = contractArg ?? options.contract;\n\tif (!flags.json && !flags.quiet) {\n\t\tconst details = [{\n\t\t\tlabel: \"config\",\n\t\t\tvalue: configPath\n\t\t}, {\n\t\t\tlabel: \"contract\",\n\t\t\tvalue: effectiveContractArg ?? contractPath\n\t\t}];\n\t\tif (options.db) details.push({\n\t\t\tlabel: \"database\",\n\t\t\tvalue: maskConnectionUrl(options.db)\n\t\t});\n\t\tconst header = formatStyledHeader({\n\t\t\tcommand: \"db sign\",\n\t\t\tdescription: \"Sign the database with your contract so you can safely run queries\",\n\t\t\turl: \"https://pris.ly/db-sign\",\n\t\t\tdetails,\n\t\t\tflags\n\t\t});\n\t\tui.stderr(header);\n\t}\n\tlet contractJson;\n\tif (effectiveContractArg) try {\n\t\tconst { migrationsDir } = resolveMigrationPaths(options.config, config);\n\t\tconst resolved = await resolveContractRefToSnapshot({\n\t\t\tconfig,\n\t\t\tmigrationsDir,\n\t\t\trefInput: effectiveContractArg,\n\t\t\tcontractPathAbsolute,\n\t\t\tfallbackToEmitted: true\n\t\t});\n\t\tif (!resolved.ok) return notOk(resolved.failure);\n\t\tcontractJson = resolved.value.contractJson;\n\t} catch (error) {\n\t\tif (error instanceof CliStructuredError) return notOk(error);\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to resolve contract reference: ${error instanceof Error ? error.message : String(error)}` }));\n\t}\n\telse {\n\t\tlet contractJsonContent;\n\t\ttry {\n\t\t\tcontractJsonContent = await readFile(contractPathAbsolute, \"utf-8\");\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.code === \"ENOENT\") return notOk(errorFileNotFound(contractPathAbsolute, {\n\t\t\t\twhy: `Contract file not found at ${contractPathAbsolute}`,\n\t\t\t\tfix: `Run \\`prisma-next contract emit\\` to generate ${contractPath}, or update \\`config.contract.output\\` in ${configPath}`\n\t\t\t}));\n\t\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to read contract file: ${error instanceof Error ? error.message : String(error)}` }));\n\t\t}\n\t\ttry {\n\t\t\tcontractJson = JSON.parse(contractJsonContent);\n\t\t} catch (error) {\n\t\t\treturn notOk(errorContractValidationFailed(`Contract JSON is invalid: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));\n\t\t}\n\t}\n\tconst dbConnection = options.db ?? config.db?.connection;\n\tif (!dbConnection) return notOk(errorDatabaseConnectionRequired({\n\t\twhy: `Database connection is required for db sign (set db.connection in ${configPath}, or pass --db <url>)`,\n\t\tcommandName: \"db sign\"\n\t}));\n\tif (!config.driver) return notOk(errorDriverRequired({ why: \"Config.driver is required for db sign\" }));\n\tconst client = createControlClient({\n\t\tfamily: config.family,\n\t\ttarget: config.target,\n\t\tadapter: config.adapter,\n\t\tdriver: config.driver,\n\t\textensions: config.extensions ?? []\n\t});\n\tconst onProgress = createProgressAdapter({\n\t\tui,\n\t\tflags\n\t});\n\ttry {\n\t\tconst schemaVerifyResult = await client.schemaVerify({\n\t\t\tcontract: contractJson,\n\t\t\tstrict: false,\n\t\t\tconnection: dbConnection,\n\t\t\tonProgress\n\t\t});\n\t\tif (!schemaVerifyResult.ok) return notOk(schemaVerifyResult);\n\t\treturn ok(await client.sign({\n\t\t\tcontract: contractJson,\n\t\t\tcontractPath,\n\t\t\tconfigPath,\n\t\t\tonProgress\n\t\t}));\n\t} catch (error) {\n\t\tif (error instanceof CliStructuredError) return notOk(error);\n\t\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Unexpected error during db sign: ${error instanceof Error ? error.message : String(error)}` }));\n\t} finally {\n\t\tawait client.close();\n\t}\n}\nfunction createDbSignCommand() {\n\tconst command = new Command(\"sign\");\n\tsetCommandDescriptions(command, \"Sign the database with your contract so you can safely run queries\", \"Verifies that your database schema satisfies the emitted contract, and if so, writes or\\nupdates the database signature. This command is idempotent and safe to run\\nin CI/deployment pipelines. The signature records that this database instance is aligned\\nwith a specific contract version.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next db sign --db $DATABASE_URL\",\n\t\t\"prisma-next db sign production --db $DATABASE_URL\",\n\t\t\"prisma-next db sign --contract production --db $DATABASE_URL\"\n\t]);\n\taddGlobalOptions(command).argument(\"[contract]\", \"Contract reference (hash, prefix, ref name, or migration dir name)\").option(\"--db <url>\", \"Database connection string\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").option(\"--contract <contract>\", \"Contract reference (hash, prefix, ref name, migration dir name, <dir>^, or ./path)\").action(async (positionalContract, options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tif (positionalContract && options.contract) {\n\t\t\tprocess.stderr.write(\"Cannot specify both a positional contract argument and --contract flag.\\n\");\n\t\t\tprocess.exit(2);\n\t\t\treturn;\n\t\t}\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst result = await executeDbSignCommand(positionalContract, options, flags, ui);\n\t\tif (result.ok) {\n\t\t\tif (flags.json) ui.output(formatSignJson(result.value));\n\t\t\telse {\n\t\t\t\tconst output = formatSignOutput(result.value, flags);\n\t\t\t\tif (output) ui.log(output);\n\t\t\t}\n\t\t\tprocess.exit(0);\n\t\t}\n\t\tconst failure = result.failure;\n\t\tif (failure instanceof CliStructuredError) {\n\t\t\tconst exitCode = handleResult(result, flags, ui);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tif (flags.json) ui.output(formatSchemaVerifyJson(failure));\n\t\telse {\n\t\t\tconst output = formatSchemaVerifyOutput(failure, flags);\n\t\t\tif (output) ui.log(output);\n\t\t}\n\t\tprocess.exit(1);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbSignCommand };\n\n//# sourceMappingURL=db-sign.mjs.map"],"mappings":"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"}
@@ -1,13 +1,9 @@
1
- import { t as MigrationToolsError } from "./errors-IpZm1Skp-BH495dRd.mjs";
2
- import { r as readContractSnapshotJson, t as contractSnapshotDir } from "./contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs";
3
- import { B as formatMigrationJson, D as errorRunnerFailed, N as errorUnexpected, Q as mapRefResolutionError, V as formatMigrationPlanOutput, Z as mapMigrationToolsError, at as resolveMigrationPaths, ct as setCommandExamples, d as errorContractValidationFailed, n as ERROR_CODE_DESTRUCTIVE_CHANGES, o as createTerminalUI, ot as sanitizeErrorMessage, p as errorDestructiveChanges, q as handleResult, st as setCommandDescriptions, t as CliStructuredError$1, tt as parseGlobalFlagsOrExit, x as errorMigrationPlanningFailed, z as formatMigrationApplyOutput } from "./command-helpers-CAoXqAY9-DWUBcTXM.mjs";
4
- import { n as buildReadAggregate } from "./contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs";
5
- import { n as prepareMigrationContext, t as addMigrationCommandOptions } from "./migration-command-scaffold-BCuoeAki-DMy_5ztW.mjs";
6
- import { i as readContractIR, n as computeRefAdvancementName, t as buildRefAdvancementFields } from "./ref-advancement-CSPMoQs3-fEipZrdu.mjs";
7
- import { n as parseContractRef } from "./ref-resolution-BjJBWPjX.mjs";
1
+ import { B as formatMigrationJson, D as errorRunnerFailed, N as errorUnexpected, V as formatMigrationPlanOutput, at as sanitizeErrorMessage, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, it as resolveMigrationPaths, n as ERROR_CODE_DESTRUCTIVE_CHANGES, o as createTerminalUI, ot as setCommandDescriptions, p as errorDestructiveChanges, q as handleResult, st as setCommandExamples, t as CliStructuredError$1, x as errorMigrationPlanningFailed, z as formatMigrationApplyOutput } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
2
+ import { o as resolveRefAdvancementFields } from "./ref-advancement-DaZBzm7m-BZQtedYC.mjs";
3
+ import { n as prepareMigrationContext, t as addMigrationCommandOptions } from "./migration-command-scaffold-BPqXPCFV-Bls2Wwg7.mjs";
4
+ import { t as resolveContractRefToSnapshot } from "./contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs";
8
5
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
9
6
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
10
- import { join } from "pathe";
11
7
  import { assertNever } from "@prisma/orm-framework/utils/internal-error";
12
8
  import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
13
9
  import { Command } from "commander";
@@ -25,7 +21,8 @@ function mapDbUpdateFailure(failure) {
25
21
  meta: {
26
22
  ...failure.meta,
27
23
  ...failure.warnings && failure.warnings.length > 0 ? { plannerWarnings: failure.warnings } : {}
28
- }
24
+ },
25
+ ...ifDefined("cause", failure.cause)
29
26
  });
30
27
  }
31
28
  if (failure.code === "DESTRUCTIVE_CHANGES") return errorDestructiveChanges(failure.summary, {
@@ -50,28 +47,18 @@ async function executeDbUpdateCommand(options, flags, ui, startTime) {
50
47
  let { contractJson } = ctxResult.value;
51
48
  let contractJsonPathForSnapshot = contractPathAbsolute;
52
49
  const { migrationsDir, refsDir } = resolveMigrationPaths(options.config, config);
53
- if (options.to) try {
54
- const loaded = await buildReadAggregate(config, { migrationsDir });
55
- if (!loaded.ok) return notOk(loaded.failure);
56
- const graph = loaded.value.aggregate.app.graph();
57
- const bundles = loaded.value.aggregate.app.packages;
58
- const refs = loaded.value.aggregate.app.refs;
59
- const refResult = parseContractRef(options.to, {
60
- graph,
61
- refs
50
+ if (options.to) {
51
+ const resolved = await resolveContractRefToSnapshot({
52
+ config,
53
+ migrationsDir,
54
+ refInput: options.to,
55
+ contractPathAbsolute,
56
+ fallbackToEmitted: false,
57
+ missingBundleFlag: "--to"
62
58
  });
63
- if (!refResult.ok) return notOk(mapRefResolutionError(refResult.failure));
64
- const targetHash = refResult.value.hash;
65
- if (!bundles.find((p) => p.metadata.to === targetHash)) return notOk(errorUnexpected(`No migration bundle found for --to "${options.to}" (resolved hash: ${targetHash})`, {
66
- why: `The ref resolved successfully but no on-disk migration package has a destination (\`to\`) hash matching ${targetHash}.`,
67
- fix: "Provide a ref or hash that corresponds to an existing migration package, or run `migration list` to see available migrations."
68
- }));
69
- contractJson = await readContractSnapshotJson(migrationsDir, targetHash);
70
- contractJsonPathForSnapshot = join(contractSnapshotDir(migrationsDir, targetHash), "contract.json");
71
- } catch (error) {
72
- if (MigrationToolsError.is(error)) return notOk(mapMigrationToolsError(error));
73
- if (CliStructuredError$1.is(error)) return notOk(error);
74
- throw error;
59
+ if (!resolved.ok) return notOk(resolved.failure);
60
+ contractJson = resolved.value.contractJson;
61
+ contractJsonPathForSnapshot = resolved.value.contractJsonPath;
75
62
  }
76
63
  try {
77
64
  await client.connect(dbConnection);
@@ -84,28 +71,18 @@ async function executeDbUpdateCommand(options, flags, ui, startTime) {
84
71
  });
85
72
  if (!result.ok) return notOk(mapDbUpdateFailure(result.failure));
86
73
  const advancementHash = result.value.mode === "apply" ? result.value.marker?.storageHash ?? result.value.destination.storageHash : result.value.destination.storageHash;
87
- let refAdvancementFields = {
88
- advancedRef: null,
89
- plannedAdvanceRef: null
90
- };
91
- if (computeRefAdvancementName({
74
+ const advancement = await resolveRefAdvancementFields({
92
75
  ...ifDefined("advanceRef", options.advanceRef),
93
- ...ifDefined("db", options.db)
94
- }) !== null) try {
95
- const contractIR = await readContractIR(contractJson, contractJsonPathForSnapshot);
96
- refAdvancementFields = await buildRefAdvancementFields({
97
- ...ifDefined("advanceRef", options.advanceRef),
98
- ...ifDefined("db", options.db),
99
- refsDir,
100
- migrationsDir,
101
- contractIR,
102
- mode: result.value.mode,
103
- hash: advancementHash
104
- });
105
- } catch (error) {
106
- if (MigrationToolsError.is(error)) return notOk(mapMigrationToolsError(error));
107
- throw error;
108
- }
76
+ ...ifDefined("db", options.db),
77
+ refsDir,
78
+ migrationsDir,
79
+ contractJson,
80
+ contractJsonPath: contractJsonPathForSnapshot,
81
+ mode: result.value.mode,
82
+ hash: advancementHash
83
+ });
84
+ if (!advancement.ok) return notOk(advancement.failure);
85
+ const refAdvancementFields = advancement.value;
109
86
  return ok({
110
87
  ok: true,
111
88
  mode: result.value.mode,
@@ -180,4 +157,4 @@ function createDbUpdateCommand() {
180
157
  //#endregion
181
158
  export { createDbUpdateCommand as t };
182
159
 
183
- //# sourceMappingURL=db-update-Br0diOCo.mjs.map
160
+ //# sourceMappingURL=db-update-WX0KitcX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-update-WX0KitcX.mjs","names":["CliStructuredError"],"sources":["../../../../1-framework/3-tooling/cli/dist/commands/db-update.mjs"],"sourcesContent":["import { B as errorContractValidationFailed, C as formatMigrationApplyOutput, F as CliStructuredError, H as errorDestructiveChanges, I as ERROR_CODE_DESTRUCTIVE_CHANGES, T as formatMigrationPlanOutput, X as errorMigrationPlanningFailed, _ as createTerminalUI, c as sanitizeErrorMessage, ct as errorUnexpected, g as parseGlobalFlagsOrExit, l as setCommandDescriptions, nt as errorRunnerFailed, s as resolveMigrationPaths, u as setCommandExamples, w as formatMigrationJson, y as handleResult } from \"../command-helpers-C4WpR-QE.mjs\";\nimport { o as resolveRefAdvancementFields } from \"../ref-advancement-DaZBzm7m.mjs\";\nimport { n as prepareMigrationContext, t as addMigrationCommandOptions } from \"../migration-command-scaffold-BPqXPCFV.mjs\";\nimport { t as resolveContractRefToSnapshot } from \"../contract-snapshot-resolution-SATuw0JW.mjs\";\nimport { Command } from \"commander\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { assertNever } from \"@internal/utils/internal-error\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/commands/db-update.ts\n/**\n* Maps a DbUpdateFailure to a CliStructuredError for consistent error handling.\n*/\nfunction mapDbUpdateFailure(failure) {\n\tif (failure.code === \"PLANNING_FAILED\") return errorMigrationPlanningFailed({ conflicts: failure.conflicts ?? [] });\n\tif (failure.code === \"RUNNER_FAILED\") {\n\t\tconst fix = (typeof failure.meta?.[\"runnerErrorCode\"] === \"string\" ? failure.meta[\"runnerErrorCode\"] : void 0) === \"MIGRATION.LEGACY_MARKER_SHAPE\" ? \"Legacy marker-table shape detected. Drop `prisma_contract.marker` (Postgres) or `_prisma_marker` (SQLite) and re-run `prisma-next db init` to recreate it with the current per-space schema.\" : \"Inspect the reported conflict, reconcile schema drift if needed, then re-run `prisma-next db update`\";\n\t\treturn errorRunnerFailed(failure.summary, {\n\t\t\twhy: failure.why ?? \"Migration runner failed\",\n\t\t\tfix,\n\t\t\tmeta: {\n\t\t\t\t...failure.meta,\n\t\t\t\t...failure.warnings && failure.warnings.length > 0 ? { plannerWarnings: failure.warnings } : {}\n\t\t\t},\n\t\t\t...ifDefined(\"cause\", failure.cause)\n\t\t});\n\t}\n\tif (failure.code === \"DESTRUCTIVE_CHANGES\") return errorDestructiveChanges(failure.summary, {\n\t\t...ifDefined(\"why\", failure.why),\n\t\tfix: \"Re-run with `-y` to apply destructive changes, or use `--dry-run` to preview first\",\n\t\t...ifDefined(\"meta\", failure.meta)\n\t});\n\tconst exhaustive = failure.code;\n\treturn assertNever(exhaustive, `Unhandled DbUpdateFailure code: ${String(exhaustive)}`);\n}\n/**\n* Executes the db update command and returns a structured Result.\n*/\nasync function executeDbUpdateCommand(options, flags, ui, startTime) {\n\tconst ctxResult = await prepareMigrationContext(options, flags, ui, {\n\t\tcommandName: \"db update\",\n\t\tdescription: \"Update your database schema to match your contract\",\n\t\turl: \"https://pris.ly/db-update\"\n\t});\n\tif (!ctxResult.ok) return ctxResult;\n\tconst { client, config, dbConnection, onProgress, contractPathAbsolute } = ctxResult.value;\n\tlet { contractJson } = ctxResult.value;\n\tlet contractJsonPathForSnapshot = contractPathAbsolute;\n\tconst { migrationsDir, refsDir } = resolveMigrationPaths(options.config, config);\n\tif (options.to) {\n\t\tconst resolved = await resolveContractRefToSnapshot({\n\t\t\tconfig,\n\t\t\tmigrationsDir,\n\t\t\trefInput: options.to,\n\t\t\tcontractPathAbsolute,\n\t\t\tfallbackToEmitted: false,\n\t\t\tmissingBundleFlag: \"--to\"\n\t\t});\n\t\tif (!resolved.ok) return notOk(resolved.failure);\n\t\tcontractJson = resolved.value.contractJson;\n\t\tcontractJsonPathForSnapshot = resolved.value.contractJsonPath;\n\t}\n\ttry {\n\t\tawait client.connect(dbConnection);\n\t\tconst result = await client.dbUpdate({\n\t\t\tcontract: contractJson,\n\t\t\tmode: options.dryRun ? \"plan\" : \"apply\",\n\t\t\tmigrationsDir,\n\t\t\t...flags.yes ? { acceptDataLoss: true } : {},\n\t\t\tonProgress\n\t\t});\n\t\tif (!result.ok) return notOk(mapDbUpdateFailure(result.failure));\n\t\tconst advancementHash = result.value.mode === \"apply\" ? result.value.marker?.storageHash ?? result.value.destination.storageHash : result.value.destination.storageHash;\n\t\tconst advancement = await resolveRefAdvancementFields({\n\t\t\t...ifDefined(\"advanceRef\", options.advanceRef),\n\t\t\t...ifDefined(\"db\", options.db),\n\t\t\trefsDir,\n\t\t\tmigrationsDir,\n\t\t\tcontractJson,\n\t\t\tcontractJsonPath: contractJsonPathForSnapshot,\n\t\t\tmode: result.value.mode,\n\t\t\thash: advancementHash\n\t\t});\n\t\tif (!advancement.ok) return notOk(advancement.failure);\n\t\tconst refAdvancementFields = advancement.value;\n\t\treturn ok({\n\t\t\tok: true,\n\t\t\tmode: result.value.mode,\n\t\t\tplan: {\n\t\t\t\ttargetId: ctxResult.value.config.target.targetId,\n\t\t\t\tdestination: {\n\t\t\t\t\tstorageHash: result.value.destination.storageHash,\n\t\t\t\t\t...ifDefined(\"profileHash\", result.value.destination.profileHash)\n\t\t\t\t},\n\t\t\t\toperations: result.value.plan.operations.map((op) => ({\n\t\t\t\t\tid: op.id,\n\t\t\t\t\tlabel: op.label,\n\t\t\t\t\toperationClass: op.operationClass\n\t\t\t\t})),\n\t\t\t\t...ifDefined(\"preview\", result.value.plan.preview)\n\t\t\t},\n\t\t\t...ifDefined(\"execution\", result.value.execution ? {\n\t\t\t\toperationsPlanned: result.value.execution.operationsPlanned,\n\t\t\t\toperationsExecuted: result.value.execution.operationsExecuted\n\t\t\t} : void 0),\n\t\t\t...ifDefined(\"marker\", result.value.marker ? {\n\t\t\t\tstorageHash: result.value.marker.storageHash,\n\t\t\t\t...ifDefined(\"profileHash\", result.value.marker.profileHash)\n\t\t\t} : void 0),\n\t\t\t...ifDefined(\"perSpace\", result.value.perSpace),\n\t\t\t...ifDefined(\"warnings\", result.value.warnings),\n\t\t\tadvancedRef: refAdvancementFields.advancedRef,\n\t\t\tplannedAdvanceRef: refAdvancementFields.plannedAdvanceRef,\n\t\t\tsummary: result.value.summary,\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t} catch (error) {\n\t\tif (CliStructuredError.is(error)) return notOk(error);\n\t\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\t\tconst safeMessage = sanitizeErrorMessage(error instanceof Error ? error.message : String(error), typeof dbConnection === \"string\" ? dbConnection : void 0);\n\t\treturn notOk(errorUnexpected(safeMessage, { why: `Unexpected error during db update: ${safeMessage}` }));\n\t} finally {\n\t\tawait client.close();\n\t}\n}\nfunction createDbUpdateCommand() {\n\tconst command = new Command(\"update\");\n\tsetCommandDescriptions(command, \"Update your database schema to match your contract\", \"Compares your database schema to the emitted contract and applies the necessary\\nchanges. Works on any database, whether or not it has been initialized with `db init`.\\nDestructive operations prompt for confirmation in interactive mode. Use -y to\\nauto-accept or --dry-run to preview first.\");\n\tsetCommandExamples(command, [\"prisma-next db update --db $DATABASE_URL\", \"prisma-next db update --db $DATABASE_URL --dry-run\"]);\n\taddMigrationCommandOptions(command);\n\tcommand.option(\"--to <contract>\", \"Target contract reference (hash, prefix, ref name, migration dir name, <dir>^, or ./path)\");\n\tcommand.option(\"--advance-ref <name>\", \"Ref to advance to the post-command contract hash\");\n\tcommand.action(async (options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst startTime = Date.now();\n\t\tconst ui = createTerminalUI(flags);\n\t\tlet result = await executeDbUpdateCommand(options, flags, ui, startTime);\n\t\tif (!result.ok && result.failure.code === ERROR_CODE_DESTRUCTIVE_CHANGES && flags.interactive && !flags.json && !flags.yes) {\n\t\t\tconst destructiveOps = result.failure.meta?.destructiveOperations ?? [];\n\t\t\tif (destructiveOps.length > 0) ui.warn(`${destructiveOps.length} destructive operation(s) that may cause data loss:\\n${destructiveOps.map((op) => ` ${ui.yellow(\"▸\")} ${op.label}`).join(\"\\n\")}`);\n\t\t\tif (await ui.confirm(\"Apply destructive changes? This cannot be undone.\")) result = await executeDbUpdateCommand(options, {\n\t\t\t\t...flags,\n\t\t\t\tyes: true\n\t\t\t}, ui, Date.now());\n\t\t}\n\t\tconst exitCode = handleResult(result, flags, ui, (dbUpdateResult) => {\n\t\t\tif (flags.json) ui.output(formatMigrationJson(dbUpdateResult));\n\t\t\telse {\n\t\t\t\tconst output = dbUpdateResult.mode === \"plan\" ? formatMigrationPlanOutput(dbUpdateResult, flags) : formatMigrationApplyOutput(dbUpdateResult, flags);\n\t\t\t\tif (output) ui.log(output);\n\t\t\t}\n\t\t});\n\t\tprocess.exit(exitCode);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbUpdateCommand };\n\n//# sourceMappingURL=db-update.mjs.map"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { $ as maskConnectionUrl, M as errorTargetMismatch, N as errorUnexpected, O as errorRuntime$1, W as formatStyledHeader, at as resolveMigrationPaths, b as errorMarkerMissing, ct as setCommandExamples, d as errorContractValidationFailed, f as errorDatabaseConnectionRequired, g as errorHashMismatch, h as errorFileNotFound, it as resolveContractPath, m as errorDriverRequired, o as createTerminalUI, q as handleResult, r as addGlobalOptions, st as setCommandDescriptions, t as CliStructuredError$1, tt as parseGlobalFlagsOrExit } from "./command-helpers-CAoXqAY9-DWUBcTXM.mjs";
1
+ import { M as errorTargetMismatch, N as errorUnexpected, O as errorRuntime$1, Q as maskConnectionUrl, W as formatStyledHeader, b as errorMarkerMissing, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, f as errorDatabaseConnectionRequired, g as errorHashMismatch, h as errorFileNotFound, it as resolveMigrationPaths, m as errorDriverRequired, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, rt as resolveContractPath, st as setCommandExamples, t as CliStructuredError$1 } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
2
2
  import { r as loadConfig } from "./exports-CDX9kZuw.mjs";
3
3
  import { t as createProgressAdapter } from "./progress-adapter-CjAeTxY_-BXYSd1eY.mjs";
4
- import { t as createControlClient } from "./client-75qrAPqf-7l0C0H_b.mjs";
5
- import { c as formatVerifyOutput, i as formatSchemaVerifyOutput, r as formatSchemaVerifyJson, s as formatVerifyJson } from "./verify-DnVNjc5C-BGdsblBK.mjs";
4
+ import { t as createControlClient } from "./client-Y6qbDk7X-BzKLmBZo.mjs";
5
+ import { c as formatVerifyOutput, i as formatSchemaVerifyOutput, r as formatSchemaVerifyJson, s as formatVerifyJson } from "./verify-C6L_hiJU-B4V3bqvG.mjs";
6
6
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
7
7
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
8
8
  import { relative, resolve } from "pathe";
@@ -11,7 +11,7 @@ import { VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARG
11
11
  import { InternalError } from "@prisma/orm-framework/utils/internal-error";
12
12
  import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
13
13
  import { Command } from "commander";
14
- //#region ../../../1-framework/3-tooling/cli/dist/db-verify-CKPsRFrj.mjs
14
+ //#region ../../../1-framework/3-tooling/cli/dist/db-verify-B8ax2Y_x.mjs
15
15
  /**
16
16
  * Collapse the aggregate verifier's per-space contract-satisfaction results
17
17
  * into a single {@link VerifyDatabaseSchemaResult} for the CLI display
@@ -93,7 +93,10 @@ function mapVerifyFailure(verifyResult) {
93
93
  }
94
94
  if (verifyResult.code === VERIFY_CODE_TARGET_MISMATCH) return errorTargetMismatch(verifyResult.target.expected, verifyResult.target.actual ?? "unknown");
95
95
  }
96
- return errorRuntime$1(verifyResult.summary);
96
+ return errorRuntime$1("CONTRACT.VERIFY_FAILED", verifyResult.summary, {
97
+ why: "Verification failed",
98
+ fix: "Check contract and database state"
99
+ });
97
100
  }
98
101
  function errorInvalidVerifyMode(options) {
99
102
  return new CliStructuredError$1("CLI.INVALID_VERIFY_MODE", "Invalid verify mode", {
@@ -393,4 +396,4 @@ function createDbVerifyCommand() {
393
396
  //#endregion
394
397
  export { createDbVerifyCommand as t };
395
398
 
396
- //# sourceMappingURL=db-verify-CKPsRFrj-T7nSt7yT.mjs.map
399
+ //# sourceMappingURL=db-verify-B8ax2Y_x-Bp4s5Ra6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-verify-B8ax2Y_x-Bp4s5Ra6.mjs","names":["errorRuntime","CliStructuredError"],"sources":["../../../../1-framework/3-tooling/cli/dist/db-verify-B8ax2Y_x.mjs"],"sourcesContent":["import { A as formatStyledHeader, B as errorContractValidationFailed, F as CliStructuredError, G as errorHashMismatch, U as errorDriverRequired, V as errorDatabaseConnectionRequired, W as errorFileNotFound, Y as errorMarkerMissing, _ as createTerminalUI, ct as errorUnexpected, g as parseGlobalFlagsOrExit, i as maskConnectionUrl, l as setCommandDescriptions, o as resolveContractPath, rt as errorRuntime, s as resolveMigrationPaths, st as errorTargetMismatch, t as addGlobalOptions, u as setCommandExamples, y as handleResult } from \"./command-helpers-C4WpR-QE.mjs\";\nimport { t as createProgressAdapter } from \"./progress-adapter-CjAeTxY_.mjs\";\nimport { t as createControlClient } from \"./client-Y6qbDk7X.mjs\";\nimport { c as formatVerifyOutput, i as formatSchemaVerifyOutput, r as formatSchemaVerifyJson, s as formatVerifyJson } from \"./verify-C6L_hiJU.mjs\";\nimport { Command } from \"commander\";\nimport { loadConfig } from \"@internal/config-loader\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { relative, resolve } from \"pathe\";\nimport { readFile } from \"node:fs/promises\";\nimport { VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, createControlStack } from \"@internal/framework-components/control\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/utils/combine-verify-results.ts\n/**\n* Collapse the aggregate verifier's per-space contract-satisfaction results\n* into a single {@link VerifyDatabaseSchemaResult} for the CLI display\n* surface, and carry the deduplicated unclaimed-elements list alongside it.\n* Concatenates the issue lists across spaces; uses the app space's result as\n* the structural envelope (storage hash, target). Extras are already\n* stripped from each per-space result, so nothing here duplicates an\n* unclaimed element per space.\n*\n* **Unclaimed disposition.** In strict mode a non-empty `unclaimed` list fails\n* the combined verdict (`ok: false`); in lenient mode it is carried for\n* informational rendering only. The list itself is returned unchanged for the\n* renderer.\n*\n* **Summary policy.** Preserve the per-family phrasing whenever the\n* combined `ok` flag agrees with the app space's `ok` flag — this is\n* the common case (single-family deployments, single-app deployments)\n* and the family's \"satisfies / does not satisfy contract\" phrasing\n* stays user-visible. When the app passes but an extension fails (or\n* vice versa) the app's summary contradicts the envelope, so fall back\n* to the first failing space's summary. This keeps family phrasing\n* intact and the envelope internally consistent (`ok: false` ↔ failure\n* summary).\n*/\nfunction combineVerifyResults(perSpace, appSpaceId, strict, unclaimed) {\n\tconst appResult = perSpace.get(appSpaceId) ?? perSpace.values().next().value;\n\tif (appResult === void 0) throw new InternalError(\"Aggregate verifier returned no per-space verify results — this is a wiring bug.\");\n\tlet okAll = true;\n\tlet firstFailure;\n\tlet issues = [];\n\tlet warningIssues = [];\n\tfor (const [, result] of perSpace) {\n\t\tif (!result.ok) {\n\t\t\tokAll = false;\n\t\t\tif (firstFailure === void 0) firstFailure = result;\n\t\t}\n\t\tissues = [...issues, ...result.schema.issues];\n\t\twarningIssues = [...warningIssues, ...result.schema.warnings?.issues ?? []];\n\t}\n\tconst unclaimedFails = strict && unclaimed.length > 0;\n\tconst ok = okAll && !unclaimedFails;\n\tconst summary = okAll ? unclaimedFails ? `Database schema has ${unclaimed.length} unclaimed element${unclaimed.length === 1 ? \"\" : \"s\"} (not in any contract)` : appResult.summary : appResult.ok ? firstFailure?.summary ?? appResult.summary : appResult.summary;\n\treturn {\n\t\tresult: {\n\t\t\tok,\n\t\t\t...ok ? {} : { code: appResult.code ?? \"CONTRACT.MARKER_REQUIRED\" },\n\t\t\tsummary,\n\t\t\tcontract: appResult.contract,\n\t\t\ttarget: appResult.target,\n\t\t\tschema: {\n\t\t\t\tissues,\n\t\t\t\twarnings: { issues: warningIssues }\n\t\t\t},\n\t\t\tmeta: { strict },\n\t\t\ttimings: { total: 0 }\n\t\t},\n\t\tunclaimed\n\t};\n}\n//#endregion\n//#region src/commands/db-verify.ts\n/**\n* Maps a VerifyDatabaseResult failure to a CliStructuredError.\n*/\nfunction mapVerifyFailure(verifyResult) {\n\tif (!verifyResult.ok && verifyResult.code) {\n\t\tif (verifyResult.code === VERIFY_CODE_MARKER_MISSING) return errorMarkerMissing();\n\t\tif (verifyResult.code === VERIFY_CODE_HASH_MISMATCH) {\n\t\t\tconst storageMatch = verifyResult.marker?.storageHash === verifyResult.contract.storageHash;\n\t\t\tconst profileMatch = !verifyResult.contract.profileHash || verifyResult.marker?.profileHash === verifyResult.contract.profileHash;\n\t\t\tif (!storageMatch) return errorHashMismatch({\n\t\t\t\twhy: \"Contract storageHash does not match database marker\",\n\t\t\t\texpected: verifyResult.contract.storageHash,\n\t\t\t\t...ifDefined(\"actual\", verifyResult.marker?.storageHash)\n\t\t\t});\n\t\t\treturn errorHashMismatch({\n\t\t\t\twhy: profileMatch ? \"Contract hash does not match database marker\" : \"Contract profileHash does not match database marker\",\n\t\t\t\t...ifDefined(\"expected\", verifyResult.contract.profileHash),\n\t\t\t\t...ifDefined(\"actual\", verifyResult.marker?.profileHash)\n\t\t\t});\n\t\t}\n\t\tif (verifyResult.code === VERIFY_CODE_TARGET_MISMATCH) return errorTargetMismatch(verifyResult.target.expected, verifyResult.target.actual ?? \"unknown\");\n\t}\n\treturn errorRuntime(\"CONTRACT.VERIFY_FAILED\", verifyResult.summary, {\n\t\twhy: \"Verification failed\",\n\t\tfix: \"Check contract and database state\"\n\t});\n}\nfunction errorInvalidVerifyMode(options) {\n\treturn new CliStructuredError(\"CLI.INVALID_VERIFY_MODE\", \"Invalid verify mode\", {\n\t\twhy: options.why,\n\t\tfix: options.fix,\n\t\tdocsUrl: \"https://pris.ly/db-verify\"\n\t});\n}\nfunction resolveDbVerifyMode(options) {\n\tif (options.markerOnly && options.schemaOnly) return notOk(errorInvalidVerifyMode({\n\t\twhy: \"`--marker-only` and `--schema-only` cannot be used together\",\n\t\tfix: \"Choose one mode: omit both to check the marker and schema, use `--marker-only` to check only the marker, or use `--schema-only` to check only the live schema.\"\n\t}));\n\tif (options.markerOnly && options.strict) return notOk(errorInvalidVerifyMode({\n\t\twhy: \"`--strict` requires schema verification, but `--marker-only` skips it\",\n\t\tfix: \"Remove `--strict`, or use `db verify` / `db verify --schema-only` when you want to check the live schema in strict mode.\"\n\t}));\n\tif (options.schemaOnly) return ok(\"schema-only\");\n\tif (options.markerOnly) return ok(\"marker-only\");\n\treturn ok(\"full\");\n}\nfunction formatDbVerifyModeLabel(mode, strict) {\n\tif (mode === \"marker-only\") return \"marker only\";\n\tif (mode === \"schema-only\") return `schema only (${strict ? \"strict\" : \"tolerant\"})`;\n\treturn `full (marker + schema, ${strict ? \"strict\" : \"tolerant\"})`;\n}\nfunction formatDbVerifyInvocation(mode, strict) {\n\tconst args = [\"db verify\"];\n\tif (mode === \"marker-only\") args.push(\"--marker-only\");\n\tif (mode === \"schema-only\") args.push(\"--schema-only\");\n\tif (strict) args.push(\"--strict\");\n\treturn args.join(\" \");\n}\nfunction createDbVerifyConnectionRequiredError(options) {\n\tconst invocation = formatDbVerifyInvocation(options.mode, options.strict);\n\treturn errorDatabaseConnectionRequired({\n\t\twhy: `Database connection is required for ${invocation} (set db.connection in ${options.configPath}, or pass --db <url>)`,\n\t\tretryCommand: `prisma-next ${invocation} --db <url>`\n\t});\n}\nfunction renderVerifyHeader(paths, options, mode, flags, ui) {\n\tif (flags.json || flags.quiet) return;\n\tconst description = mode === \"schema-only\" ? \"Check whether the live database schema matches your contract\" : mode === \"marker-only\" ? \"Check whether the database marker matches your contract\" : \"Check whether the database marker and live schema match your contract\";\n\tconst details = [\n\t\t{\n\t\t\tlabel: \"config\",\n\t\t\tvalue: paths.configPath\n\t\t},\n\t\t{\n\t\t\tlabel: \"contract\",\n\t\t\tvalue: paths.contractPath\n\t\t},\n\t\t{\n\t\t\tlabel: \"mode\",\n\t\t\tvalue: formatDbVerifyModeLabel(mode, options.strict ?? false)\n\t\t}\n\t];\n\tif (options.db) details.push({\n\t\tlabel: \"database\",\n\t\tvalue: maskConnectionUrl(options.db)\n\t});\n\tui.stderr(formatStyledHeader({\n\t\tcommand: \"db verify\",\n\t\tdescription,\n\t\turl: \"https://pris.ly/db-verify\",\n\t\tdetails,\n\t\tflags\n\t}));\n}\nasync function resolveVerifyPaths(options) {\n\tconst config = await loadConfig(options.config);\n\tconst configPath = options.config ? relative(process.cwd(), resolve(options.config)) : \"prisma-next.config.ts\";\n\tconst contractPathAbsolute = resolveContractPath(config);\n\treturn {\n\t\tconfig,\n\t\tconfigPath,\n\t\tcontractPathAbsolute,\n\t\tcontractPath: relative(process.cwd(), contractPathAbsolute)\n\t};\n}\nasync function resolveVerifySetup(paths, options, mode) {\n\tconst { config, configPath, contractPathAbsolute, contractPath } = paths;\n\tlet contractJsonContent;\n\ttry {\n\t\tcontractJsonContent = await readFile(contractPathAbsolute, \"utf-8\");\n\t} catch (error) {\n\t\tif (error instanceof Error && error.code === \"ENOENT\") return notOk(errorFileNotFound(contractPathAbsolute, {\n\t\t\twhy: `Contract file not found at ${contractPathAbsolute}`,\n\t\t\tfix: `Run \\`prisma-next contract emit\\` to generate ${contractPath}, or update \\`config.contract.output\\` in ${configPath}`\n\t\t}));\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to read contract file: ${error instanceof Error ? error.message : String(error)}` }));\n\t}\n\tconst stack = createControlStack(config);\n\tconst familyInstance = config.family.create(stack);\n\tlet contractJson;\n\ttry {\n\t\tcontractJson = familyInstance.deserializeContract(JSON.parse(contractJsonContent));\n\t} catch (error) {\n\t\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\t\treturn notOk(errorContractValidationFailed(`Contract JSON is invalid: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));\n\t}\n\tconst dbConnection = options.db ?? config.db?.connection;\n\tif (typeof dbConnection !== \"string\" || dbConnection.length === 0) return notOk(createDbVerifyConnectionRequiredError({\n\t\tconfigPath,\n\t\tmode,\n\t\tstrict: options.strict ?? false\n\t}));\n\tif (!config.driver) return notOk(errorDriverRequired({ why: `Config.driver is required for ${formatDbVerifyInvocation(mode, options.strict ?? false)}` }));\n\treturn ok({\n\t\t...paths,\n\t\tcontractJson,\n\t\tdbConnection\n\t});\n}\nfunction createVerifyClient(setup) {\n\treturn createControlClient({\n\t\tfamily: setup.config.family,\n\t\ttarget: setup.config.target,\n\t\tadapter: setup.config.adapter,\n\t\tdriver: setup.config.driver,\n\t\textensions: setup.config.extensions ?? []\n\t});\n}\nfunction wrapVerifyError(error, contractPathAbsolute, modeLabel) {\n\tif (CliStructuredError.is(error)) return notOk(error);\n\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Unexpected error during ${modeLabel}: ${error instanceof Error ? error.message : String(error)}` }));\n}\n/**\n* Executes the db verify command and returns a structured Result.\n*/\nasync function executeDbVerifyCommand(options, flags, ui, mode) {\n\tconst startTime = Date.now();\n\tconst paths = await resolveVerifyPaths(options);\n\trenderVerifyHeader(paths, options, mode, flags, ui);\n\tconst setupResult = await resolveVerifySetup(paths, options, mode);\n\tif (!setupResult.ok) return setupResult;\n\tconst { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;\n\tconst { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config);\n\tconst client = createVerifyClient(setupResult.value);\n\tconst onProgress = createProgressAdapter({\n\t\tui,\n\t\tflags\n\t});\n\ttry {\n\t\tconst verifyResult = await client.verify({\n\t\t\tcontract: contractJson,\n\t\t\tconnection: dbConnection,\n\t\t\tonProgress\n\t\t});\n\t\tif (!verifyResult.ok) return notOk(mapVerifyFailure(verifyResult));\n\t\tconst aggregateResult = await client.dbVerify({\n\t\t\tcontract: contractJson,\n\t\t\tmigrationsDir,\n\t\t\tstrict: options.strict ?? false,\n\t\t\tskipSchema: mode === \"marker-only\",\n\t\t\tskipMarker: false,\n\t\t\tonProgress\n\t\t});\n\t\tif (!aggregateResult.ok) return notOk(aggregateResult.failure);\n\t\tif (mode === \"marker-only\") return ok({\n\t\t\tok: true,\n\t\t\tmode: \"marker-only\",\n\t\t\tsummary: \"Database marker matches contract\",\n\t\t\tcontract: verifyResult.contract,\n\t\t\tmarker: verifyResult.marker,\n\t\t\ttarget: verifyResult.target,\n\t\t\t...ifDefined(\"missingCodecs\", verifyResult.missingCodecs),\n\t\t\t...ifDefined(\"codecCoverageSkipped\", verifyResult.codecCoverageSkipped),\n\t\t\twarning: \"Schema verification skipped because --marker-only was provided\",\n\t\t\tmeta: {\n\t\t\t\t...verifyResult.meta ?? {},\n\t\t\t\tschemaVerification: \"skipped\"\n\t\t\t},\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t\tconst combined = combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed);\n\t\tif (!combined.result.ok) return notOk(combined);\n\t\treturn ok({\n\t\t\tok: true,\n\t\t\tmode: \"full\",\n\t\t\tsummary: \"Database marker and schema match contract\",\n\t\t\tcontract: verifyResult.contract,\n\t\t\tmarker: verifyResult.marker,\n\t\t\ttarget: verifyResult.target,\n\t\t\t...ifDefined(\"missingCodecs\", verifyResult.missingCodecs),\n\t\t\t...ifDefined(\"codecCoverageSkipped\", verifyResult.codecCoverageSkipped),\n\t\t\tschema: {\n\t\t\t\tsummary: combined.result.summary,\n\t\t\t\tstrict: combined.result.meta?.strict ?? false,\n\t\t\t\twarnings: (combined.result.schema.warnings?.issues ?? []).map((issue) => issue.path.join(\"/\"))\n\t\t\t},\n\t\t\tunclaimed: combined.unclaimed,\n\t\t\tmeta: {\n\t\t\t\t...verifyResult.meta ?? {},\n\t\t\t\tschemaVerification: \"performed\"\n\t\t\t},\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t} catch (error) {\n\t\treturn wrapVerifyError(error, contractPathAbsolute, \"db verify\");\n\t} finally {\n\t\tawait client.close();\n\t}\n}\nasync function executeDbSchemaOnlyVerifyCommand(options, flags, ui) {\n\tconst paths = await resolveVerifyPaths(options);\n\trenderVerifyHeader(paths, options, \"schema-only\", flags, ui);\n\tconst setupResult = await resolveVerifySetup(paths, options, \"schema-only\");\n\tif (!setupResult.ok) return setupResult;\n\tconst { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;\n\tconst { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config);\n\tconst client = createVerifyClient(setupResult.value);\n\tconst onProgress = createProgressAdapter({\n\t\tui,\n\t\tflags\n\t});\n\ttry {\n\t\tawait client.connect(dbConnection);\n\t\tconst aggregateResult = await client.dbVerify({\n\t\t\tcontract: contractJson,\n\t\t\tmigrationsDir,\n\t\t\tstrict: options.strict ?? false,\n\t\t\tskipSchema: false,\n\t\t\tskipMarker: true,\n\t\t\tonProgress\n\t\t});\n\t\tif (!aggregateResult.ok) return notOk(aggregateResult.failure);\n\t\treturn ok(combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed));\n\t} catch (error) {\n\t\treturn wrapVerifyError(error, contractPathAbsolute, \"db verify --schema-only\");\n\t} finally {\n\t\tawait client.close();\n\t}\n}\nfunction createDbVerifyCommand() {\n\tconst command = new Command(\"verify\");\n\tsetCommandDescriptions(command, \"Check whether the database marker and live schema match your contract\", \"Verifies the database marker first, then checks the database schema matches your contract.\\nUse `--marker-only` for marker-only verification, `--schema-only` to skip marker checks and\\ninspect only the live schema, and `--strict` to fail if the database includes elements\\nnot present in the contract.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next db verify --db $DATABASE_URL\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --strict\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --schema-only\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --schema-only --strict\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --marker-only\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --json\"\n\t]);\n\taddGlobalOptions(command).option(\"--db <url>\", \"Database connection string\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").option(\"--marker-only\", \"Skip schema verification and only check the database marker\").option(\"--schema-only\", \"Skip marker verification and only check whether the live schema satisfies the contract\").option(\"--strict\", \"Strict mode: schema elements not present in the contract are considered an error\", false).action(async (options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst modeResult = resolveDbVerifyMode(options);\n\t\tif (!modeResult.ok) {\n\t\t\tconst exitCode = handleResult(modeResult, flags, ui);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tconst mode = modeResult.value;\n\t\tif (mode === \"schema-only\") {\n\t\t\tconst result = await executeDbSchemaOnlyVerifyCommand(options, flags, ui);\n\t\t\tconst exitCode = handleResult(result, flags, ui, (combined) => {\n\t\t\t\tif (flags.json) ui.output(formatSchemaVerifyJson(combined.result, combined.unclaimed));\n\t\t\t\telse {\n\t\t\t\t\tconst renderFlags = combined.result.ok ? flags : {\n\t\t\t\t\t\t...flags,\n\t\t\t\t\t\tquiet: false\n\t\t\t\t\t};\n\t\t\t\t\tconst output = formatSchemaVerifyOutput(combined.result, renderFlags, combined.unclaimed);\n\t\t\t\t\tif (output) ui.log(output);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (result.ok && !result.value.result.ok) process.exit(1);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tconst result = await executeDbVerifyCommand(options, flags, ui, mode);\n\t\tif (result.ok) {\n\t\t\tif (flags.json) ui.output(formatVerifyJson(result.value));\n\t\t\telse {\n\t\t\t\tconst output = formatVerifyOutput(result.value, flags);\n\t\t\t\tif (output) ui.log(output);\n\t\t\t}\n\t\t\tprocess.exit(0);\n\t\t}\n\t\tif (CliStructuredError.is(result.failure)) {\n\t\t\tconst exitCode = handleResult(result, flags, ui);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tif (flags.json) ui.output(formatSchemaVerifyJson(result.failure.result, result.failure.unclaimed));\n\t\telse {\n\t\t\tconst output = formatSchemaVerifyOutput(result.failure.result, {\n\t\t\t\t...flags,\n\t\t\t\tquiet: false\n\t\t\t}, result.failure.unclaimed);\n\t\t\tif (output) ui.log(output);\n\t\t}\n\t\tprocess.exit(1);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbVerifyCommand as t };\n\n//# sourceMappingURL=db-verify-B8ax2Y_x.mjs.map"],"mappings":"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"}