@prisma/orm-toolchain 8.0.0-rc.1-dev.6 → 8.0.0-rc.1-dev.8

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 (200) hide show
  1. package/dist/{aggregate-i-rfetSO.mjs → aggregate-D53gnb7v.mjs} +8 -8
  2. package/dist/{aggregate-i-rfetSO.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-2n_H3DQ9-Bks8UPEO.d.mts → cli-errors-CDr3WcJP-NFry5GHb.d.mts} +2 -2
  8. package/dist/cli-errors-CDr3WcJP-NFry5GHb.d.mts.map +1 -0
  9. package/dist/cli.mjs +2 -2
  10. package/dist/cli__commands__contract-emit.mjs +1 -1
  11. package/dist/cli__commands__contract-infer.mjs +1 -1
  12. package/dist/cli__commands__db-init.mjs +1 -1
  13. package/dist/cli__commands__db-schema.mjs +1 -1
  14. package/dist/cli__commands__db-sign.mjs +1 -1
  15. package/dist/cli__commands__db-update.mjs +1 -1
  16. package/dist/cli__commands__db-verify.mjs +1 -1
  17. package/dist/cli__commands__migrate.d.mts +3 -12
  18. package/dist/cli__commands__migrate.d.mts.map +1 -1
  19. package/dist/cli__commands__migrate.mjs +1 -1
  20. package/dist/cli__commands__migration-check.d.mts +1 -57
  21. package/dist/cli__commands__migration-check.d.mts.map +1 -1
  22. package/dist/cli__commands__migration-check.mjs +2 -2
  23. package/dist/cli__commands__migration-graph.d.mts +1 -1
  24. package/dist/cli__commands__migration-graph.mjs +1 -1
  25. package/dist/cli__commands__migration-list.d.mts +4 -44
  26. package/dist/cli__commands__migration-list.d.mts.map +1 -1
  27. package/dist/cli__commands__migration-list.mjs +2 -2
  28. package/dist/cli__commands__migration-log.d.mts +1 -1
  29. package/dist/cli__commands__migration-log.mjs +1 -1
  30. package/dist/cli__commands__migration-new.mjs +1 -1
  31. package/dist/cli__commands__migration-plan.d.mts +2 -47
  32. package/dist/cli__commands__migration-plan.d.mts.map +1 -1
  33. package/dist/cli__commands__migration-plan.mjs +1 -1
  34. package/dist/cli__commands__migration-show.mjs +1 -1
  35. package/dist/cli__commands__migration-status.d.mts +1 -1
  36. package/dist/cli__commands__migration-status.mjs +1 -1
  37. package/dist/cli__commands__ref.d.mts +1 -28
  38. package/dist/cli__commands__ref.d.mts.map +1 -1
  39. package/dist/cli__commands__ref.mjs +2 -2
  40. package/dist/cli__commands__telemetry.mjs +1 -1
  41. package/dist/cli__control-api.d.mts +502 -2
  42. package/dist/cli__control-api.d.mts.map +1 -1
  43. package/dist/cli__control-api.mjs +18 -3
  44. package/dist/cli__migration-cli.mjs +2 -2
  45. package/dist/{client-7aUYC7ci-Bh9mLxkl.mjs → client-Y6qbDk7X-BzKLmBZo.mjs} +8 -8
  46. package/dist/{client-7aUYC7ci-Bh9mLxkl.mjs.map → client-Y6qbDk7X-BzKLmBZo.mjs.map} +1 -1
  47. package/dist/{command-helpers-C4WpR-QE-CK2gkj6l.mjs → command-helpers-C4WpR-QE-DE494TSG.mjs} +2 -2
  48. package/dist/{command-helpers-C4WpR-QE-CK2gkj6l.mjs.map → command-helpers-C4WpR-QE-DE494TSG.mjs.map} +1 -1
  49. package/dist/config-loader.d.mts +2 -18
  50. package/dist/{contract-at-errors-YdCQ5OOk-okxG7Eaj.mjs → contract-at-errors-Dv1mxKYO-C29YB4RC.mjs} +4 -4
  51. package/dist/contract-at-errors-Dv1mxKYO-C29YB4RC.mjs.map +1 -0
  52. package/dist/{contract-emit-CTm2zfuG-8mtkxW8M.mjs → contract-emit-CTm2zfuG-7PV9SBY6.mjs} +4 -4
  53. package/dist/{contract-emit-CTm2zfuG-8mtkxW8M.mjs.map → contract-emit-CTm2zfuG-7PV9SBY6.mjs.map} +1 -1
  54. package/dist/{contract-emit-D8IXP9Qp-CecAQio1.mjs → contract-emit-D8IXP9Qp-Df6NwXn8.mjs} +3 -3
  55. package/dist/{contract-emit-D8IXP9Qp-CecAQio1.mjs.map → contract-emit-D8IXP9Qp-Df6NwXn8.mjs.map} +1 -1
  56. package/dist/{contract-infer-C8-RqHeK-D_dm3onP.mjs → contract-infer-BwT7ngoo-Dx6aAwIN.mjs} +4 -4
  57. package/dist/{contract-infer-C8-RqHeK-D_dm3onP.mjs.map → contract-infer-BwT7ngoo-Dx6aAwIN.mjs.map} +1 -1
  58. package/dist/contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs +82 -0
  59. package/dist/contract-snapshot-resolution-SATuw0JW-CsYq7g_n.mjs.map +1 -0
  60. package/dist/{contract-snapshot-store-DNTOE6fB-BDpjbdCJ.mjs → contract-snapshot-store-C9-J6OBn-ByElY0EC.mjs} +3 -3
  61. package/dist/{contract-snapshot-store-DNTOE6fB-BDpjbdCJ.mjs.map → contract-snapshot-store-C9-J6OBn-ByElY0EC.mjs.map} +1 -1
  62. package/dist/{contract-space-aggregate-loader-CziO_ZRW-DIoQOL0P.mjs → contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs} +6 -6
  63. package/dist/contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs.map +1 -0
  64. package/dist/{db-init-CXMcvoIA.mjs → db-init-CBj_EWg3.mjs} +15 -26
  65. package/dist/db-init-CBj_EWg3.mjs.map +1 -0
  66. package/dist/{db-schema-j8DERh4t.mjs → db-schema-BWpeh0Q_.mjs} +4 -4
  67. package/dist/{db-schema-j8DERh4t.mjs.map → db-schema-BWpeh0Q_.mjs.map} +1 -1
  68. package/dist/{db-sign-xV_rpoIc.mjs → db-sign-DCb_DKtv.mjs} +13 -29
  69. package/dist/db-sign-DCb_DKtv.mjs.map +1 -0
  70. package/dist/{db-update-DXa2DIvu.mjs → db-update-WX0KitcX.mjs} +27 -50
  71. package/dist/db-update-WX0KitcX.mjs.map +1 -0
  72. package/dist/{db-verify-YWHjuKC7-DidK1gx1.mjs → db-verify-B8ax2Y_x-Bp4s5Ra6.mjs} +5 -5
  73. package/dist/{db-verify-YWHjuKC7-DidK1gx1.mjs.map → db-verify-B8ax2Y_x-Bp4s5Ra6.mjs.map} +1 -1
  74. package/dist/{errors-BwusfLIN-BXM7K-ww.mjs → errors-Co-8oaiB-CB-6Uqki.mjs} +5 -4
  75. package/dist/{errors-BwusfLIN-BXM7K-ww.mjs.map → errors-Co-8oaiB-CB-6Uqki.mjs.map} +1 -1
  76. package/dist/{errors-AkMBj-YP.d.mts → errors-NRmFpwR1.d.mts} +6 -2
  77. package/dist/errors-NRmFpwR1.d.mts.map +1 -0
  78. package/dist/{format-Bw3LVJ1v-D10inUT9.mjs → format-Bw3LVJ1v-BJ6lVFMA.mjs} +2 -2
  79. package/dist/{format-Bw3LVJ1v-D10inUT9.mjs.map → format-Bw3LVJ1v-BJ6lVFMA.mjs.map} +1 -1
  80. package/dist/{framework-components-3DdB31mk-BPGSuOyZ.mjs → framework-components-3DdB31mk-BHyX-OlJ.mjs} +2 -2
  81. package/dist/{framework-components-3DdB31mk-BPGSuOyZ.mjs.map → framework-components-3DdB31mk-BHyX-OlJ.mjs.map} +1 -1
  82. package/dist/{graph-membership-h9ejuZla-ewjYM5wz.mjs → graph-membership-BEmNEMtP-rz61CLM5.mjs} +3 -3
  83. package/dist/{graph-membership-h9ejuZla-ewjYM5wz.mjs.map → graph-membership-BEmNEMtP-rz61CLM5.mjs.map} +1 -1
  84. package/dist/index-Df9igRvP.d.mts +18 -0
  85. package/dist/index-Df9igRvP.d.mts.map +1 -0
  86. package/dist/{init-CPB89WK2-Di4kgP6B.mjs → init-CPB89WK2-DPZRZ9Ee.mjs} +3 -3
  87. package/dist/{init-CPB89WK2-Di4kgP6B.mjs.map → init-CPB89WK2-DPZRZ9Ee.mjs.map} +1 -1
  88. package/dist/{inspect-live-schema-DEYE4EHW-DmSfKdpv.mjs → inspect-live-schema-Da76TWOs-CAFqkhGb.mjs} +4 -4
  89. package/dist/{inspect-live-schema-DEYE4EHW-DmSfKdpv.mjs.map → inspect-live-schema-Da76TWOs-CAFqkhGb.mjs.map} +1 -1
  90. package/dist/invariants-BzYfO9IL-BXTvx0z9.mjs +52 -0
  91. package/dist/invariants-BzYfO9IL-BXTvx0z9.mjs.map +1 -0
  92. package/dist/{invariants-CMcQxRas-CXX9uhQW.mjs → invariants-C1WVUAH7-DlOBTTkM.mjs} +3 -3
  93. package/dist/{invariants-CMcQxRas-CXX9uhQW.mjs.map → invariants-C1WVUAH7-DlOBTTkM.mjs.map} +1 -1
  94. package/dist/{io-CL3hSv42-DGZtTs89.mjs → io-CHUUeHh0-CoCBe9eN.mjs} +5 -5
  95. package/dist/{io-CL3hSv42-DGZtTs89.mjs.map → io-CHUUeHh0-CoCBe9eN.mjs.map} +1 -1
  96. package/dist/legend-5iwwlLU2-CB8bdQKJ.mjs +22 -0
  97. package/dist/legend-5iwwlLU2-CB8bdQKJ.mjs.map +1 -0
  98. package/dist/{migrate-COusRrm7.mjs → migrate-B-NAuO90.mjs} +87 -230
  99. package/dist/migrate-B-NAuO90.mjs.map +1 -0
  100. package/dist/migrate-show-60NNqVia-oGqMaVA9.d.mts +56 -0
  101. package/dist/migrate-show-60NNqVia-oGqMaVA9.d.mts.map +1 -0
  102. package/dist/migrate-show-B2LkXkoB-D1ZNl84C.mjs +202 -0
  103. package/dist/migrate-show-B2LkXkoB-D1ZNl84C.mjs.map +1 -0
  104. package/dist/{migration-diUAhNaa.mjs → migration-DAJY-NmR.mjs} +3 -3
  105. package/dist/{migration-diUAhNaa.mjs.map → migration-DAJY-NmR.mjs.map} +1 -1
  106. package/dist/migration-check-BDjtAn7x-B0nEBR0k.mjs +254 -0
  107. package/dist/migration-check-BDjtAn7x-B0nEBR0k.mjs.map +1 -0
  108. package/dist/{migration-check-CueEJelQ-J81XR_ns.mjs → migration-check-DONPyXff-CGTUpLv-.mjs} +12 -254
  109. package/dist/migration-check-DONPyXff-CGTUpLv-.mjs.map +1 -0
  110. package/dist/{migration-command-scaffold-DNRo4exb-9JCezdoT.mjs → migration-command-scaffold-BPqXPCFV-Bls2Wwg7.mjs} +4 -4
  111. package/dist/{migration-command-scaffold-DNRo4exb-9JCezdoT.mjs.map → migration-command-scaffold-BPqXPCFV-Bls2Wwg7.mjs.map} +1 -1
  112. package/dist/{migration-graph-D6bN-mX0-DwMWY8DA.mjs → migration-graph-DDaOHo10-yJFAbKCu.mjs} +3 -3
  113. package/dist/{migration-graph-D6bN-mX0-DwMWY8DA.mjs.map → migration-graph-DDaOHo10-yJFAbKCu.mjs.map} +1 -1
  114. package/dist/{migration-graph-BL6vfLcE.mjs → migration-graph-Dn469b0l.mjs} +10 -19
  115. package/dist/migration-graph-Dn469b0l.mjs.map +1 -0
  116. package/dist/migration-graph-HKch1Xk4-DyWhXtjZ.mjs +35 -0
  117. package/dist/migration-graph-HKch1Xk4-DyWhXtjZ.mjs.map +1 -0
  118. package/dist/migration-list-C9OPCMt--C28yBgVr.mjs +102 -0
  119. package/dist/migration-list-C9OPCMt--C28yBgVr.mjs.map +1 -0
  120. package/dist/migration-list-jk4iCtmO.mjs +120 -0
  121. package/dist/migration-list-jk4iCtmO.mjs.map +1 -0
  122. package/dist/{migration-log-BXbz6-Lj-CKHbat5f.mjs → migration-log-DQzUBrm8-D3m9wcuf.mjs} +7 -5
  123. package/dist/migration-log-DQzUBrm8-D3m9wcuf.mjs.map +1 -0
  124. package/dist/migration-new-BkSY6m0t.mjs +50 -0
  125. package/dist/migration-new-BkSY6m0t.mjs.map +1 -0
  126. package/dist/{migration-new-szZFsA3C.mjs → migration-new-g98oB3nC-BcrkxAAt.mjs} +12 -52
  127. package/dist/migration-new-g98oB3nC-BcrkxAAt.mjs.map +1 -0
  128. package/dist/{migration-path-target-BPYp3LNc-qRQlG_Yn.mjs → migration-path-target-BPYp3LNc-DsDdLU0J.mjs} +2 -2
  129. package/dist/{migration-path-target-BPYp3LNc-qRQlG_Yn.mjs.map → migration-path-target-BPYp3LNc-DsDdLU0J.mjs.map} +1 -1
  130. package/dist/migration-plan-BsOYRogP-CC1UFAbu.d.mts +159 -0
  131. package/dist/migration-plan-BsOYRogP-CC1UFAbu.d.mts.map +1 -0
  132. package/dist/migration-plan-CjIYMJZy.mjs +172 -0
  133. package/dist/migration-plan-CjIYMJZy.mjs.map +1 -0
  134. package/dist/{migration-plan-CxXAXYc8-Dnp-v8Nl.mjs → migration-plan-CwuZLXVE-DAJ-JUQT.mjs} +45 -183
  135. package/dist/migration-plan-CwuZLXVE-DAJ-JUQT.mjs.map +1 -0
  136. package/dist/{migration-show-BKsIh7Uz.mjs → migration-show-CW6EKtfw.mjs} +13 -9
  137. package/dist/migration-show-CW6EKtfw.mjs.map +1 -0
  138. package/dist/{migration-status-CNnRInne--cvmx56T.mjs → migration-status-DSQcBhiN.mjs} +37 -68
  139. package/dist/migration-status-DSQcBhiN.mjs.map +1 -0
  140. package/dist/migration-tools.d.mts +4 -4
  141. package/dist/migration-tools.mjs +13 -13
  142. package/dist/migration-tools__aggregate.mjs +1 -1
  143. package/dist/migration-tools__contract-snapshot-store.mjs +1 -1
  144. package/dist/migration-tools__errors.d.mts +2 -2
  145. package/dist/migration-tools__errors.mjs +2 -2
  146. package/dist/migration-tools__invariants.mjs +1 -1
  147. package/dist/migration-tools__io.mjs +1 -1
  148. package/dist/migration-tools__migration-graph.mjs +2 -2
  149. package/dist/migration-tools__migration.mjs +1 -1
  150. package/dist/migration-tools__ref-resolution.mjs +1 -1
  151. package/dist/migration-tools__refs.mjs +1 -1
  152. package/dist/migration-tools__spaces.mjs +2 -2
  153. package/dist/{project-import-root-C_bd0ooL-CLXW-gp6.mjs → project-import-root-C_bd0ooL-WkbJLnAA.mjs} +2 -2
  154. package/dist/{project-import-root-C_bd0ooL-CLXW-gp6.mjs.map → project-import-root-C_bd0ooL-WkbJLnAA.mjs.map} +1 -1
  155. package/dist/ref-DSAZime8.mjs +72 -0
  156. package/dist/ref-DSAZime8.mjs.map +1 -0
  157. package/dist/ref-advancement-DaZBzm7m-BZQtedYC.mjs +96 -0
  158. package/dist/ref-advancement-DaZBzm7m-BZQtedYC.mjs.map +1 -0
  159. package/dist/ref-eJjxzYTh-CNiyDL4p.mjs +109 -0
  160. package/dist/ref-eJjxzYTh-CNiyDL4p.mjs.map +1 -0
  161. package/dist/{ref-resolution-BsdziDFA.mjs → ref-resolution-Ct2GMcNB.mjs} +2 -2
  162. package/dist/{ref-resolution-BsdziDFA.mjs.map → ref-resolution-Ct2GMcNB.mjs.map} +1 -1
  163. package/dist/ref-resolution-_S4xTT2L-BE5zgO2W.mjs +16 -0
  164. package/dist/ref-resolution-_S4xTT2L-BE5zgO2W.mjs.map +1 -0
  165. package/dist/{refs-DtoeUivZ-qay0UMSP.mjs → refs-B2BL8z3i-DGGFB7Mj.mjs} +3 -3
  166. package/dist/{refs-DtoeUivZ-qay0UMSP.mjs.map → refs-B2BL8z3i-DGGFB7Mj.mjs.map} +1 -1
  167. package/dist/refs-fQLFcMoq-UTlvnijY.mjs +47 -0
  168. package/dist/refs-fQLFcMoq-UTlvnijY.mjs.map +1 -0
  169. package/dist/{spaces-BNd2Tlk0.mjs → spaces-DxuvClN9.mjs} +6 -6
  170. package/dist/{spaces-BNd2Tlk0.mjs.map → spaces-DxuvClN9.mjs.map} +1 -1
  171. package/dist/{telemetry-DVBHDQd6-BEdoMii0.mjs → telemetry-DVBHDQd6-Ckn5oClN.mjs} +2 -2
  172. package/dist/{telemetry-DVBHDQd6-BEdoMii0.mjs.map → telemetry-DVBHDQd6-Ckn5oClN.mjs.map} +1 -1
  173. package/dist/{verify-C6L_hiJU-CN3eEe3Y.mjs → verify-C6L_hiJU-B4V3bqvG.mjs} +2 -2
  174. package/dist/{verify-C6L_hiJU-CN3eEe3Y.mjs.map → verify-C6L_hiJU-B4V3bqvG.mjs.map} +1 -1
  175. package/dist/{verify-contract-spaces-Ak73-zQK-y4qVyu-y.mjs → verify-contract-spaces-WvjSiWcB-zGhaCnfs.mjs} +4 -4
  176. package/dist/{verify-contract-spaces-Ak73-zQK-y4qVyu-y.mjs.map → verify-contract-spaces-WvjSiWcB-zGhaCnfs.mjs.map} +1 -1
  177. package/dist/vite-plugin-contract-emit.mjs +1 -1
  178. package/package.json +12 -12
  179. package/dist/config-loader.d.mts.map +0 -1
  180. package/dist/contract-at-errors-YdCQ5OOk-okxG7Eaj.mjs.map +0 -1
  181. package/dist/contract-space-aggregate-loader-CziO_ZRW-DIoQOL0P.mjs.map +0 -1
  182. package/dist/db-init-CXMcvoIA.mjs.map +0 -1
  183. package/dist/db-sign-xV_rpoIc.mjs.map +0 -1
  184. package/dist/db-update-DXa2DIvu.mjs.map +0 -1
  185. package/dist/errors-AkMBj-YP.d.mts.map +0 -1
  186. package/dist/migrate-COusRrm7.mjs.map +0 -1
  187. package/dist/migration-check-CueEJelQ-J81XR_ns.mjs.map +0 -1
  188. package/dist/migration-graph-BL6vfLcE.mjs.map +0 -1
  189. package/dist/migration-list-D2_JdzWC-MRHYYVQE.mjs +0 -228
  190. package/dist/migration-list-D2_JdzWC-MRHYYVQE.mjs.map +0 -1
  191. package/dist/migration-log-BXbz6-Lj-CKHbat5f.mjs.map +0 -1
  192. package/dist/migration-new-szZFsA3C.mjs.map +0 -1
  193. package/dist/migration-plan-CxXAXYc8-Dnp-v8Nl.mjs.map +0 -1
  194. package/dist/migration-show-BKsIh7Uz.mjs.map +0 -1
  195. package/dist/migration-status-CNnRInne--cvmx56T.mjs.map +0 -1
  196. package/dist/ref-DjZ5Y8ju.mjs +0 -171
  197. package/dist/ref-DjZ5Y8ju.mjs.map +0 -1
  198. package/dist/ref-advancement-CSPMoQs3-CPkL3IFF.mjs +0 -57
  199. package/dist/ref-advancement-CSPMoQs3-CPkL3IFF.mjs.map +0 -1
  200. package/dist/types-2n_H3DQ9-Bks8UPEO.d.mts.map +0 -1
@@ -1,27 +1,27 @@
1
- import { t as MigrationToolsError } from "./errors-BwusfLIN-BXM7K-ww.mjs";
2
- import { a as snapshotsImportPathFrom, o as writeContractSnapshot } from "./contract-snapshot-store-DNTOE6fB-BDpjbdCJ.mjs";
1
+ import { t as MigrationToolsError } from "./errors-Co-8oaiB-CB-6Uqki.mjs";
2
+ import { a as snapshotsImportPathFrom, o as writeContractSnapshot } from "./contract-snapshot-store-C9-J6OBn-ByElY0EC.mjs";
3
3
  import { t as computeMigrationHash } from "./hash-DH8hl5Rq-BpM2t3Nu.mjs";
4
- import { t as deriveProvidedInvariants } from "./invariants-CMcQxRas-CXX9uhQW.mjs";
5
- import { i as materialiseExtensionMigrationPackageIfMissing, r as formatMigrationDirName, u as writeMigrationPackage } from "./io-CL3hSv42-DGZtTs89.mjs";
6
- import { r as findLatestMigration } from "./migration-graph-D6bN-mX0-DwMWY8DA.mjs";
7
- import { c as spaceMigrationDirectory, s as readContractSpaceHeadRef } from "./verify-contract-spaces-Ak73-zQK-y4qVyu-y.mjs";
8
- import { i as emitContractSpaceArtifacts, o as planAllSpaces } from "./spaces-BNd2Tlk0.mjs";
9
- import { C as errorPlanForgotTheFlag, K as getTargetMigrations, N as errorUnexpected, W as formatStyledHeader, Z as mapRefResolutionError, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, h as errorFileNotFound, it as resolveMigrationPaths, j as errorTargetMigrationNotSupported, k as errorSnapshotMissing, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, rt as resolveContractPath, st as setCommandExamples, t as CliStructuredError$1, x as errorMigrationPlanningFailed } from "./command-helpers-C4WpR-QE-CK2gkj6l.mjs";
10
- import { t as assertFrameworkComponentsCompatible } from "./framework-components-3DdB31mk-BPGSuOyZ.mjs";
11
- import { t as createProjectSpecifierResolver } from "./project-import-root-C_bd0ooL-CLXW-gp6.mjs";
4
+ import { t as deriveProvidedInvariants } from "./invariants-C1WVUAH7-DlOBTTkM.mjs";
5
+ import { i as materialiseExtensionMigrationPackageIfMissing, r as formatMigrationDirName, u as writeMigrationPackage } from "./io-CHUUeHh0-CoCBe9eN.mjs";
6
+ import { r as findLatestMigration } from "./migration-graph-DDaOHo10-yJFAbKCu.mjs";
7
+ import { c as spaceMigrationDirectory, s as readContractSpaceHeadRef } from "./verify-contract-spaces-WvjSiWcB-zGhaCnfs.mjs";
8
+ import { i as emitContractSpaceArtifacts, o as planAllSpaces } from "./spaces-DxuvClN9.mjs";
9
+ import { C as errorPlanForgotTheFlag, K as getTargetMigrations, N as errorUnexpected, Z as mapRefResolutionError, d as errorContractValidationFailed, h as errorFileNotFound, it as resolveMigrationPaths, j as errorTargetMigrationNotSupported, k as errorSnapshotMissing, rt as resolveContractPath, t as CliStructuredError$1, x as errorMigrationPlanningFailed } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
10
+ import { t as assertFrameworkComponentsCompatible } from "./framework-components-3DdB31mk-BHyX-OlJ.mjs";
11
+ import { t as createProjectSpecifierResolver } from "./project-import-root-C_bd0ooL-WkbJLnAA.mjs";
12
12
  import { r as getEmittedArtifactPaths } from "./exports-BCLg4CiV-okAfZydo.mjs";
13
13
  import { r as loadConfig } from "./exports-CDX9kZuw.mjs";
14
- import { n as isGraphNode, t as assertHashIsGraphNode } from "./graph-membership-h9ejuZla-ewjYM5wz.mjs";
15
- import { c as toExtensionInputs, i as loadContractSpaceAggregateForCli, t as buildContractSpaceAggregate } from "./contract-space-aggregate-loader-CziO_ZRW-DIoQOL0P.mjs";
16
- import { n as parseContractRef } from "./ref-resolution-BsdziDFA.mjs";
14
+ import { n as isGraphNode, t as assertHashIsGraphNode } from "./graph-membership-BEmNEMtP-rz61CLM5.mjs";
15
+ import { a as loadContractSpaceAggregateForCli, d as toExtensionInputs, n as buildContractSpaceAggregate } from "./contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs";
16
+ import { n as parseContractRef } from "./ref-resolution-Ct2GMcNB.mjs";
17
17
  import { i as writeMigrationTs } from "./migration-ts-FyF55c4M.mjs";
18
- import { t as mapContractAtError } from "./contract-at-errors-YdCQ5OOk-okxG7Eaj.mjs";
18
+ import { t as mapContractAtError } from "./contract-at-errors-Dv1mxKYO-C29YB4RC.mjs";
19
19
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
20
20
  import { join, relative } from "pathe";
21
21
  import { readFile } from "node:fs/promises";
22
22
  import { createControlStack, hasOperationPreview } from "@prisma/orm-framework/components/control";
23
- import { Command } from "commander";
24
- //#region ../../../1-framework/3-tooling/cli/dist/migration-plan-CxXAXYc8.mjs
23
+ import { castAs } from "@prisma/orm-framework/utils/casts";
24
+ //#region ../../../1-framework/3-tooling/cli/dist/migration-plan-CwuZLXVE.mjs
25
25
  /**
26
26
  * Phase-1 of the two-phase `migration plan` pipeline (sub-spec § 4).
27
27
  *
@@ -247,6 +247,12 @@ async function resolveToForPlan(optionsTo, input) {
247
247
  contractDts
248
248
  });
249
249
  }
250
+ /**
251
+ * Policy core of `migration plan`: resolves from/to contracts, runs the planner legs, and writes the planned migration packages.
252
+ */
253
+ function isEnoent(error) {
254
+ return error instanceof Error && "code" in error && error.code === "ENOENT";
255
+ }
250
256
  async function runPlannerLeg(planner, migrations, frameworkComponents, contract, fromContract, spaceId, ownership, snapshotsImportPath, resolveImportSpecifier) {
251
257
  const fromSchema = migrations.contractToSchema(fromContract, frameworkComponents);
252
258
  const plannerResult = planner.plan({
@@ -264,7 +270,7 @@ async function runPlannerLeg(planner, migrations, frameworkComponents, contract,
264
270
  ownership,
265
271
  snapshotsImportPath
266
272
  });
267
- if (plannerResult.kind === "failure") return notOk(errorMigrationPlanningFailed({ conflicts: plannerResult.conflicts }));
273
+ if (plannerResult.kind === "failure") return notOk(errorMigrationPlanningFailed({ conflicts: castAs(plannerResult.conflicts) }));
268
274
  let plannedOps = [];
269
275
  let hasPlaceholders = false;
270
276
  try {
@@ -297,52 +303,30 @@ async function writePlannedMigrationPackage(packageDir, fromHash, toHash, create
297
303
  }, opsForWrite);
298
304
  await writeMigrationTs(packageDir, leg.migrationTsContent);
299
305
  }
300
- async function executeMigrationPlanCommand(options, flags, ui, startTime) {
306
+ async function executeMigrationPlanCommand(options, startTime, callbacks) {
307
+ try {
308
+ return await executeMigrationPlanCommandInner(options, startTime, callbacks);
309
+ } catch (error) {
310
+ if (CliStructuredError$1.is(error)) return notOk(error);
311
+ const message = error instanceof Error ? error.message : String(error);
312
+ return notOk(errorUnexpected(message, { why: `Unexpected error during migration plan: ${message}` }));
313
+ }
314
+ }
315
+ async function executeMigrationPlanCommandInner(options, startTime, callbacks) {
301
316
  const config = await loadConfig(options.config);
302
317
  const { configPath, migrationsDir, appMigrationsDir, appMigrationsRelative } = resolveMigrationPaths(options.config, config);
303
318
  const contractPathAbsolute = resolveContractPath(config);
304
319
  const contractPath = relative(process.cwd(), contractPathAbsolute);
305
- if (!flags.json && !flags.quiet) {
306
- const details = [
307
- {
308
- label: "config",
309
- value: configPath
310
- },
311
- {
312
- label: "contract",
313
- value: contractPath
314
- },
315
- {
316
- label: "migrations",
317
- value: appMigrationsRelative
318
- }
319
- ];
320
- if (options.from) details.push({
321
- label: "from",
322
- value: options.from
323
- });
324
- if (options.to) details.push({
325
- label: "to",
326
- value: options.to
327
- });
328
- if (options.name) details.push({
329
- label: "name",
330
- value: options.name
331
- });
332
- const header = formatStyledHeader({
333
- command: "migration plan",
334
- description: "Plan a migration from contract changes",
335
- url: "https://pris.ly/migration-plan",
336
- details,
337
- flags
338
- });
339
- ui.stderr(header);
340
- }
320
+ callbacks?.onContextResolved?.({
321
+ configPath,
322
+ contractPath,
323
+ appMigrationsRelative
324
+ });
341
325
  let contractJsonContent;
342
326
  try {
343
327
  contractJsonContent = await readFile(contractPathAbsolute, "utf-8");
344
328
  } catch (error) {
345
- if (error instanceof Error && error.code === "ENOENT") return notOk(errorFileNotFound(contractPathAbsolute, {
329
+ if (isEnoent(error)) return notOk(errorFileNotFound(contractPathAbsolute, {
346
330
  why: `Contract file not found at ${contractPathAbsolute}`,
347
331
  fix: `Run \`prisma-next contract emit\` to generate ${contractPath}, or update \`config.contract.output\` in ${configPath}`
348
332
  }));
@@ -353,7 +337,7 @@ async function executeMigrationPlanCommand(options, flags, ui, startTime) {
353
337
  const controlAdapter = config.adapter.create(stack);
354
338
  let toContract;
355
339
  try {
356
- toContract = familyInstance.deserializeContract(JSON.parse(contractJsonContent));
340
+ toContract = familyInstance.deserializeContract(castAs(JSON.parse(contractJsonContent)));
357
341
  } catch (error) {
358
342
  return notOk(errorContractValidationFailed(`Contract at ${contractPathAbsolute} failed to deserialize: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));
359
343
  }
@@ -420,12 +404,7 @@ async function executeMigrationPlanCommand(options, flags, ui, startTime) {
420
404
  migrationsDir,
421
405
  extensions: toExtensionInputs(config.extensions ?? [])
422
406
  });
423
- if (!flags.json && !flags.quiet) {
424
- for (const record of seedResult.seeded) if (record.action === "updated") {
425
- const pkgSuffix = record.newMigrationDirs.length > 0 ? `; ${record.newMigrationDirs.length} new migration package(s) materialised` : "";
426
- ui.step(`Updated ${record.spaceId} to ${record.newHash}${pkgSuffix}`);
427
- }
428
- }
407
+ for (const record of seedResult.seeded) callbacks?.onSeeded?.(record);
429
408
  const emittedExtensionDirs = seedResult.seeded.flatMap((r) => r.newMigrationDirs.map((dirName) => ({
430
409
  spaceId: r.spaceId,
431
410
  dirName
@@ -467,7 +446,7 @@ async function executeMigrationPlanCommand(options, flags, ui, startTime) {
467
446
  const destinationArtifacts = getEmittedArtifactPaths(contractPathAbsolute);
468
447
  const [contractJsonRaw, contractDts] = await Promise.all([readFile(destinationArtifacts.jsonPath, "utf-8"), readFile(destinationArtifacts.dtsPath, "utf-8")]);
469
448
  await writeContractSnapshot(migrationsDir, destHash, {
470
- contractJson: JSON.parse(contractJsonRaw),
449
+ contractJson: castAs(JSON.parse(contractJsonRaw)),
471
450
  contractDts
472
451
  });
473
452
  }
@@ -606,30 +585,11 @@ async function executeMigrationPlanCommand(options, flags, ui, startTime) {
606
585
  });
607
586
  } catch (error) {
608
587
  if (CliStructuredError$1.is(error)) return notOk(error);
588
+ if (MigrationToolsError.is(error)) return notOk(error);
609
589
  const message = error instanceof Error ? error.message : String(error);
610
590
  return notOk(errorUnexpected(message, { why: `Unexpected error during migration plan: ${message}` }));
611
591
  }
612
592
  }
613
- function createMigrationPlanCommand() {
614
- const command = new Command("plan");
615
- setCommandDescriptions(command, "Plan a migration from contract changes", "Compares the emitted contract against the latest on-disk migration state and\nproduces a new migration package with the required operations. No database\nconnection is needed — this is a fully offline operation.");
616
- setCommandExamples(command, [
617
- "prisma-next migration plan",
618
- "prisma-next migration plan --name add-users-table",
619
- "prisma-next migration plan --to <migration-dir>^ --name rollback"
620
- ]);
621
- addGlobalOptions(command).option("--config <path>", "Path to prisma-next.config.ts").option("--name <slug>", "Name slug for the migration directory", "migration").option("--from <contract>", "Starting contract reference (hash, prefix, ref name, migration dir name, <dir>^, or ./path)").option("--to <contract>", "Destination contract reference (hash, prefix, ref name, migration dir name, <dir>^, or ./path); defaults to the emitted contract").action(async (options) => {
622
- const flags = parseGlobalFlagsOrExit(options);
623
- const startTime = Date.now();
624
- const ui = createTerminalUI(flags);
625
- const exitCode = handleResult(await executeMigrationPlanCommand(options, flags, ui, startTime), flags, ui, (planResult) => {
626
- if (flags.json) ui.output(JSON.stringify(planResult, null, 2));
627
- else if (!flags.quiet) ui.log(formatMigrationPlanOutput(planResult, flags));
628
- });
629
- process.exit(exitCode);
630
- });
631
- return command;
632
- }
633
593
  /**
634
594
  * Compose the success-line summary so the cross-space side effect
635
595
  * (extension-space migration packages materialised on disk during
@@ -654,105 +614,7 @@ function buildAutoBaselinePlanSummary(deltaOpsCount, emittedExtensionDirsCount)
654
614
  if (emittedExtensionDirsCount === 0) return base;
655
615
  return `${base}; materialised ${emittedExtensionDirsCount} ${emittedExtensionDirsCount === 1 ? "extension-space migration" : "extension-space migrations"}`;
656
616
  }
657
- function formatMigrationPlanOutput(result, flags) {
658
- const lines = [];
659
- const useColor = flags.color !== false;
660
- const green_ = useColor ? (s) => `\x1b[32m${s}\x1b[0m` : (s) => s;
661
- const yellow_ = useColor ? (s) => `\x1b[33m${s}\x1b[0m` : (s) => s;
662
- const dim_ = useColor ? (s) => `\x1b[2m${s}\x1b[0m` : (s) => s;
663
- function appendEmittedExtensions() {
664
- if (result.emittedExtensionDirs.length === 0) return;
665
- lines.push("");
666
- lines.push(dim_("Emitted extension migrations:"));
667
- for (const entry of result.emittedExtensionDirs) lines.push(dim_(` ${entry.spaceId} → migrations/${entry.spaceId}/${entry.dirName}`));
668
- lines.push("");
669
- lines.push(`Next: review the extension migrations above, then run ${green_("prisma-next migrate")}.`);
670
- }
671
- if (result.noOp) {
672
- lines.push(`${green_("✔")} No changes detected`);
673
- lines.push(dim_(` from: ${result.from}`));
674
- lines.push(dim_(` to: ${result.to}`));
675
- appendEmittedExtensions();
676
- return lines.join("\n");
677
- }
678
- if (result.pendingPlaceholders) {
679
- lines.push(`${yellow_("⚠")} ${result.summary}`);
680
- lines.push("");
681
- lines.push(dim_(`from: ${result.from}`));
682
- lines.push(dim_(`to: ${result.to}`));
683
- if (result.dir) lines.push(dim_(`dir: ${result.dir}`));
684
- lines.push("");
685
- lines.push("Open migration.ts and replace each `placeholder(...)` call with your actual query.");
686
- lines.push(`Then run: ${green_(`node ${result.dir ?? "<dir>"}/migration.ts`)}`);
687
- appendEmittedExtensions();
688
- return lines.join("\n");
689
- }
690
- lines.push(`${green_("✔")} ${result.summary}`);
691
- lines.push("");
692
- if (result.operations.length > 0) {
693
- lines.push(dim_("│"));
694
- for (let i = 0; i < result.operations.length; i++) {
695
- const op = result.operations[i];
696
- const treeChar = i === result.operations.length - 1 ? "└" : "├";
697
- const destructiveMarker = op.operationClass === "destructive" ? ` ${yellow_("(destructive)")}` : "";
698
- lines.push(`${dim_(treeChar)}─ ${op.label}${destructiveMarker}`);
699
- }
700
- if (result.operations.some((op) => op.operationClass === "destructive")) {
701
- lines.push("");
702
- lines.push(`${yellow_("⚠")} This migration contains destructive operations that may cause data loss.`);
703
- }
704
- lines.push("");
705
- }
706
- lines.push(dim_(`from: ${result.from}`));
707
- lines.push(dim_(`to: ${result.to}`));
708
- if (result.baselineDir) lines.push(dim_(`Baseline → ${result.baselineDir}`));
709
- if (result.dir) lines.push(dim_(`App space → ${result.dir}`));
710
- for (const entry of result.emittedExtensionDirs) lines.push(dim_(`Extension space ${entry.spaceId} → migrations/${entry.spaceId}/${entry.dirName}`));
711
- lines.push("");
712
- const reviewTarget = result.baselineDir !== void 0 && result.dir !== void 0 ? `${result.baselineDir} and ${result.dir}` : result.baselineDir ?? result.dir ?? "<dir>";
713
- lines.push(`Next: review ${green_(reviewTarget)} if needed, then run ${green_("prisma-next migrate")}.`);
714
- if (result.preview && result.preview.statements.length > 0) {
715
- const allSql = result.preview.statements.every((s) => s.language === "sql");
716
- lines.push("");
717
- lines.push(dim_(allSql ? "DDL preview" : "Operation preview"));
718
- lines.push("");
719
- for (const statement of result.preview.statements) {
720
- const trimmed = statement.text.trim();
721
- if (!trimmed) continue;
722
- const line = statement.language === "sql" && !trimmed.endsWith(";") ? `${trimmed};` : trimmed;
723
- lines.push(line);
724
- }
725
- }
726
- if (flags.verbose && result.timings) {
727
- lines.push("");
728
- lines.push(dim_(`Total time: ${result.timings.total}ms`));
729
- }
730
- return lines.join("\n");
731
- }
732
- /**
733
- * Resolve a migration package by **target contract hash** (`metadata.to`)
734
- * using exact match or prefix match.
735
- *
736
- * Note: matches `metadata.to` (the contract hash this migration produces),
737
- * not `metadata.migrationHash` (the package's content-addressed identity).
738
- * Tries exact match first, then prefix match. Returns the matched package on
739
- * success, or a discriminated failure indicating whether the prefix was
740
- * ambiguous or simply not found.
741
- *
742
- * @internal Exported for testing only.
743
- */
744
- function resolveBundleByPrefix(bundles, needle) {
745
- const exact = bundles.find((p) => p.metadata.to === needle);
746
- if (exact) return ok(exact);
747
- const candidates = bundles.filter((p) => p.metadata.to.startsWith(needle));
748
- if (candidates.length === 1) return ok(candidates[0]);
749
- if (candidates.length > 1) return notOk({
750
- reason: "ambiguous",
751
- count: candidates.length
752
- });
753
- return notOk({ reason: "not-found" });
754
- }
755
617
  //#endregion
756
- export { formatMigrationPlanOutput as n, resolveBundleByPrefix as r, createMigrationPlanCommand as t };
618
+ export { runContractSpaceSeedPhase as i, resolveFromForPlan as n, resolveToForPlan as r, executeMigrationPlanCommand as t };
757
619
 
758
- //# sourceMappingURL=migration-plan-CxXAXYc8-Dnp-v8Nl.mjs.map
620
+ //# sourceMappingURL=migration-plan-CwuZLXVE-DAJ-JUQT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-plan-CwuZLXVE-DAJ-JUQT.mjs","names":["CliStructuredError"],"sources":["../../../../1-framework/3-tooling/cli/dist/migration-plan-CwuZLXVE.mjs"],"sourcesContent":["import { B as errorContractValidationFailed, F as CliStructuredError, Q as errorPlanForgotTheFlag, W as errorFileNotFound, X as errorMigrationPlanningFailed, ct as errorUnexpected, it as errorSnapshotMissing, lt as mapRefResolutionError, o as resolveContractPath, ot as errorTargetMigrationNotSupported, r as getTargetMigrations, s as resolveMigrationPaths } from \"./command-helpers-C4WpR-QE.mjs\";\nimport { t as assertFrameworkComponentsCompatible } from \"./framework-components-3DdB31mk.mjs\";\nimport { t as createProjectSpecifierResolver } from \"./project-import-root-C_bd0ooL.mjs\";\nimport { a as loadContractSpaceAggregateForCli, d as toExtensionInputs, n as buildContractSpaceAggregate } from \"./contract-space-aggregate-loader-C5r12INu.mjs\";\nimport { t as mapContractAtError } from \"./contract-at-errors-Dv1mxKYO.mjs\";\nimport { loadConfig } from \"@internal/config-loader\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { join, relative } from \"pathe\";\nimport { readFile } from \"node:fs/promises\";\nimport { createControlStack, hasOperationPreview } from \"@internal/framework-components/control\";\nimport { emitContractSpaceArtifacts, planAllSpaces, readContractSpaceHeadRef, spaceMigrationDirectory } from \"@internal/migration-tools/spaces\";\nimport { castAs } from \"@internal/utils/casts\";\nimport { MigrationToolsError } from \"@internal/migration-tools/errors\";\nimport { assertHashIsGraphNode, findLatestMigration, isGraphNode } from \"@internal/migration-tools/migration-graph\";\nimport { snapshotsImportPathFrom, writeContractSnapshot } from \"@internal/migration-tools/contract-snapshot-store\";\nimport { parseContractRef } from \"@internal/migration-tools/ref-resolution\";\nimport { computeMigrationHash } from \"@internal/migration-tools/hash\";\nimport { formatMigrationDirName, materialiseExtensionMigrationPackageIfMissing, writeMigrationPackage } from \"@internal/migration-tools/io\";\nimport { writeMigrationTs } from \"@internal/migration-tools/migration-ts\";\nimport { deriveProvidedInvariants } from \"@internal/migration-tools/invariants\";\n//#region src/control-api/operations/contract-space-seed-phase.ts\n/**\n* Phase-1 of the two-phase `migration plan` pipeline (sub-spec § 4).\n*\n* For every extension that exposes a `contractSpace`:\n*\n* 1. Read the on-disk head ref (returns `null` on first emit).\n* 2. Write the head contract into the migrations-root snapshot store\n* (write-if-absent, keyed by hash) and unconditionally re-emit\n* `refs/head.json`, via {@link emitContractSpaceArtifacts}. The\n* framework owns `refs/head.json`; re-emit is the contract for that\n* file. The snapshot itself is only written once per distinct hash.\n* 3. Materialise any descriptor-shipped migration packages not yet on\n* disk via {@link materialiseExtensionMigrationPackageIfMissing}.\n* Existing packages are left untouched (by-existence skip).\n*\n* The return value lets the caller render a per-space status line and\n* lets the phase-2 aggregate loader run on a now-consistent disk state\n* (every loaded extension is guaranteed to have its head ref pinned\n* to the descriptor's hash and to ship every package the descriptor\n* declares).\n*\n* Output ordering is deterministic and alphabetical by spaceId (via\n* {@link planAllSpaces}, which also detects duplicate spaceIds). This\n* matches the canonical sort order used by every other aggregate\n* surface (`migrate`, `migration status`, the runner).\n*/\nasync function runContractSpaceSeedPhase(inputs) {\n\tconst planned = planAllSpaces(inputs.extensions.filter((pack) => pack.contractSpace !== void 0).map((pack) => ({\n\t\tspaceId: pack.id,\n\t\tpriorContract: null,\n\t\tnewContract: pack.contractSpace.contractJson,\n\t\t__pack: pack.contractSpace\n\t})), (input) => input.__pack.migrations);\n\tconst descriptorBySpace = /* @__PURE__ */ new Map();\n\tfor (const pack of inputs.extensions) if (pack.contractSpace !== void 0) descriptorBySpace.set(pack.id, pack.contractSpace);\n\tconst seeded = [];\n\tfor (const space of planned) {\n\t\tconst descriptor = descriptorBySpace.get(space.spaceId);\n\t\tif (descriptor === void 0) continue;\n\t\tconst priorHash = (await readContractSpaceHeadRef(inputs.migrationsDir, space.spaceId))?.hash ?? null;\n\t\tawait emitContractSpaceArtifacts(inputs.migrationsDir, space.spaceId, {\n\t\t\tcontract: descriptor.contractJson,\n\t\t\tcontractDts: buildPlaceholderContractDts(space.spaceId),\n\t\t\theadRef: {\n\t\t\t\thash: descriptor.headRef.hash,\n\t\t\t\tinvariants: descriptor.headRef.invariants\n\t\t\t}\n\t\t});\n\t\tconst spaceDir = spaceMigrationDirectory(inputs.migrationsDir, space.spaceId);\n\t\tconst newMigrationDirs = [];\n\t\tfor (const pkg of space.migrationPackages) {\n\t\t\tconst { written } = await materialiseExtensionMigrationPackageIfMissing(spaceDir, pkg);\n\t\t\tif (written) newMigrationDirs.push(pkg.dirName);\n\t\t}\n\t\tconst action = priorHash !== descriptor.headRef.hash || newMigrationDirs.length > 0 ? \"updated\" : \"unchanged\";\n\t\tseeded.push({\n\t\t\tspaceId: space.spaceId,\n\t\t\taction,\n\t\t\tpriorHash,\n\t\t\tnewHash: descriptor.headRef.hash,\n\t\t\tnewMigrationDirs\n\t\t});\n\t}\n\treturn { seeded };\n}\n/**\n* Placeholder `.d.ts` content for an extension space's on-disk mirror.\n*\n* Rendering a fully-typed `.d.ts` for an extension contract requires\n* the SQL-family renderer with the codec / typemap registry threaded\n* through; until that integration ships, the on-disk `.d.ts` is a\n* stub `export {};` module that documents how consumers should\n* validate the sibling `contract.json`. The stub typechecks on its\n* own and does not need any TypeScript suppressions.\n*/\nfunction buildPlaceholderContractDts(spaceId) {\n\treturn [\n\t\t\"/**\",\n\t\t` * Placeholder \\`.d.ts\\` for extension space \"${spaceId}\".`,\n\t\t\" *\",\n\t\t\" * The framework re-emits this file on every `migration plan` run\",\n\t\t\" * alongside `contract.json` and `refs/head.json`. A typed `.d.ts`\",\n\t\t\" * rendering pass for extension contracts is tracked separately;\",\n\t\t\" * until that ships, consumers should import `contract.json`\",\n\t\t\" * and pass it through the target descriptor’s `contractSerializer`.\",\n\t\t\" */\",\n\t\t\"export {};\",\n\t\t\"\"\n\t].join(\"\\n\");\n}\n//#endregion\n//#region src/control-api/operations/plan-resolution.ts\nconst FULL_HASH_PATTERN = /^([0-9a-f]{64}|empty)$/;\nfunction looksLikeFullHash(input) {\n\treturn FULL_HASH_PATTERN.test(input);\n}\nfunction graphIsEmpty(space) {\n\treturn space.packages.length === 0;\n}\nfunction getReachableRefs(refs, graph) {\n\treturn Object.entries(refs).flatMap(([name, entry]) => entry && isGraphNode(entry.hash, graph) ? [{\n\t\tname,\n\t\thash: entry.hash\n\t}] : []).sort((a, b) => a.name.localeCompare(b.name));\n}\nfunction assertFromIsGraphNode(fromHash, graph, refs, graphTipHash) {\n\ttry {\n\t\tassertHashIsGraphNode(fromHash, graph);\n\t} catch (error) {\n\t\tif (MigrationToolsError.is(error) && error.code === \"MIGRATION.HASH_NOT_IN_GRAPH\") throw errorPlanForgotTheFlag(fromHash, getReachableRefs(refs, graph), graphTipHash, { cause: error });\n\t\tthrow error;\n\t}\n}\nasync function resolveContractRef(parsed, space, options) {\n\tconst { hash, provenance } = parsed;\n\tconst refName = provenance.kind === \"ref\" ? provenance.refName : void 0;\n\ttry {\n\t\tconst at = await space.contractAt(hash, refName !== void 0 ? { refName } : void 0);\n\t\tif (at.provenance === \"ref\") return ok({\n\t\t\tkind: \"ref\",\n\t\t\thash: at.hash,\n\t\t\tcontract: at.contract,\n\t\t\tcontractJson: at.contractJson,\n\t\t\tcontractDts: at.contractDts\n\t\t});\n\t\treturn ok({\n\t\t\tkind: \"graph-node\",\n\t\t\thash: at.hash,\n\t\t\tcontract: at.contract,\n\t\t\tcontractJson: at.contractJson,\n\t\t\tcontractDts: at.contractDts\n\t\t});\n\t} catch (error) {\n\t\treturn mapContractAtError(error, options?.artifactRole !== void 0 ? { artifactRole: options.artifactRole } : void 0);\n\t}\n}\nasync function resolveFromPolicy(parsed, input, refs, explicitFromLabel) {\n\tconst resolution = await resolveContractRef(parsed, input.space, {\n\t\t...explicitFromLabel !== void 0 ? { explicitLabel: explicitFromLabel } : {},\n\t\tartifactRole: \"from\"\n\t});\n\tif (!resolution.ok) return resolution;\n\tif (resolution.value.kind === \"graph-node\") return ok({\n\t\tkind: \"graph-node\",\n\t\tfromHash: resolution.value.hash,\n\t\tfromContract: resolution.value.contract\n\t});\n\tconst { hash, contract, contractJson, contractDts } = resolution.value;\n\tif (graphIsEmpty(input.space)) return ok({\n\t\tkind: \"auto-baseline\",\n\t\tfromHash: hash,\n\t\tfromContract: contract,\n\t\tcontractDts,\n\t\tcontractJson\n\t});\n\tconst graph = input.space.graph();\n\tconst graphTip = findLatestMigration(graph)?.to ?? null;\n\ttry {\n\t\tassertFromIsGraphNode(hash, graph, refs, graphTip);\n\t} catch (error) {\n\t\tif (CliStructuredError.is(error)) return notOk(error);\n\t\tthrow error;\n\t}\n\treturn ok({\n\t\tkind: \"ref\",\n\t\tfromHash: hash,\n\t\tfromContract: contract,\n\t\tcontractDts,\n\t\tcontractJson\n\t});\n}\nasync function resolveFromForPlan(input) {\n\tconst { optionsFrom, space } = input;\n\tconst graph = space.graph();\n\tconst refs = space.refs;\n\tif (optionsFrom === void 0) {\n\t\tconst dbRef = refs[\"db\"];\n\t\tif (!dbRef) return ok({\n\t\t\tkind: \"greenfield\",\n\t\t\tfromHash: null,\n\t\t\tfromContract: null\n\t\t});\n\t\treturn resolveFromPolicy({\n\t\t\thash: dbRef.hash,\n\t\t\tprovenance: {\n\t\t\t\tkind: \"ref\",\n\t\t\t\trefName: \"db\"\n\t\t\t}\n\t\t}, input, refs);\n\t}\n\tconst refResult = parseContractRef(optionsFrom, {\n\t\tgraph,\n\t\trefs\n\t});\n\tif (!refResult.ok) {\n\t\tif (looksLikeFullHash(optionsFrom)) {\n\t\t\tconst empty = graphIsEmpty(space);\n\t\t\tconst graphTip = findLatestMigration(graph)?.to ?? null;\n\t\t\tif (empty) return notOk(errorSnapshotMissing(optionsFrom, { viaRef: false }));\n\t\t\treturn notOk(errorPlanForgotTheFlag(optionsFrom, getReachableRefs(refs, graph), graphTip));\n\t\t}\n\t\treturn notOk(mapRefResolutionError(refResult.failure));\n\t}\n\treturn resolveFromPolicy(refResult.value, input, refs, optionsFrom);\n}\nasync function resolveToForPlan(optionsTo, input) {\n\tconst { space } = input;\n\tconst graph = space.graph();\n\tconst refs = space.refs;\n\tconst refResult = parseContractRef(optionsTo, {\n\t\tgraph,\n\t\trefs\n\t});\n\tif (!refResult.ok) return notOk(mapRefResolutionError(refResult.failure));\n\tconst resolution = await resolveContractRef(refResult.value, space, {\n\t\texplicitLabel: optionsTo,\n\t\tartifactRole: \"to\"\n\t});\n\tif (!resolution.ok) return resolution;\n\tconst { hash, contract, contractJson, contractDts } = resolution.value;\n\treturn ok({\n\t\thash,\n\t\tcontract,\n\t\tcontractJson,\n\t\tcontractDts\n\t});\n}\n//#endregion\n//#region src/control-api/operations/migration-plan.ts\n/**\n* Policy core of `migration plan`: resolves from/to contracts, runs the planner legs, and writes the planned migration packages.\n*/\nfunction isEnoent(error) {\n\treturn error instanceof Error && \"code\" in error && error.code === \"ENOENT\";\n}\nasync function runPlannerLeg(planner, migrations, frameworkComponents, contract, fromContract, spaceId, ownership, snapshotsImportPath, resolveImportSpecifier) {\n\tconst fromSchema = migrations.contractToSchema(fromContract, frameworkComponents);\n\tconst plannerResult = planner.plan({\n\t\tcontract,\n\t\tschema: fromSchema,\n\t\tpolicy: { allowedOperationClasses: [\n\t\t\t\"additive\",\n\t\t\t\"widening\",\n\t\t\t\"destructive\",\n\t\t\t\"data\"\n\t\t] },\n\t\tfromContract,\n\t\tframeworkComponents,\n\t\tspaceId,\n\t\townership,\n\t\tsnapshotsImportPath\n\t});\n\tif (plannerResult.kind === \"failure\") return notOk(errorMigrationPlanningFailed({ conflicts: castAs(plannerResult.conflicts) }));\n\tlet plannedOps = [];\n\tlet hasPlaceholders = false;\n\ttry {\n\t\tplannedOps = await Promise.all(plannerResult.plan.operations);\n\t\tif (plannedOps.length === 0) return notOk(errorMigrationPlanningFailed({ conflicts: [{\n\t\t\tkind: \"unsupportedChange\",\n\t\t\tsummary: \"Contract changed but planner produced no operations. This indicates unsupported or ignored changes.\"\n\t\t}] }));\n\t} catch (e) {\n\t\tif (CliStructuredError.is(e) && e.code === \"MIGRATION.UNFILLED_PLACEHOLDER\") hasPlaceholders = true;\n\t\telse throw e;\n\t}\n\treturn ok({\n\t\tplannedOps,\n\t\tmigrationTsContent: plannerResult.plan.renderTypeScript(resolveImportSpecifier),\n\t\thasPlaceholders\n\t});\n}\nasync function writePlannedMigrationPackage(packageDir, fromHash, toHash, createdAt, leg) {\n\tconst opsForWrite = leg.hasPlaceholders ? [] : leg.plannedOps;\n\tconst metadataWithInvariants = {\n\t\tfrom: fromHash,\n\t\tto: toHash,\n\t\tprovidedInvariants: deriveProvidedInvariants(opsForWrite),\n\t\tcreatedAt: createdAt.toISOString()\n\t};\n\tawait writeMigrationPackage(packageDir, {\n\t\t...metadataWithInvariants,\n\t\tmigrationHash: computeMigrationHash(metadataWithInvariants, opsForWrite)\n\t}, opsForWrite);\n\tawait writeMigrationTs(packageDir, leg.migrationTsContent);\n}\nasync function executeMigrationPlanCommand(options, startTime, callbacks) {\n\ttry {\n\t\treturn await executeMigrationPlanCommandInner(options, startTime, callbacks);\n\t} catch (error) {\n\t\tif (CliStructuredError.is(error)) return notOk(error);\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\treturn notOk(errorUnexpected(message, { why: `Unexpected error during migration plan: ${message}` }));\n\t}\n}\nasync function executeMigrationPlanCommandInner(options, startTime, callbacks) {\n\tconst config = await loadConfig(options.config);\n\tconst { configPath, migrationsDir, appMigrationsDir, appMigrationsRelative } = resolveMigrationPaths(options.config, config);\n\tconst contractPathAbsolute = resolveContractPath(config);\n\tconst contractPath = relative(process.cwd(), contractPathAbsolute);\n\tcallbacks?.onContextResolved?.({\n\t\tconfigPath,\n\t\tcontractPath,\n\t\tappMigrationsRelative\n\t});\n\tlet contractJsonContent;\n\ttry {\n\t\tcontractJsonContent = await readFile(contractPathAbsolute, \"utf-8\");\n\t} catch (error) {\n\t\tif (isEnoent(error)) 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\tconst controlAdapter = config.adapter.create(stack);\n\tlet toContract;\n\ttry {\n\t\ttoContract = familyInstance.deserializeContract(castAs(JSON.parse(contractJsonContent)));\n\t} catch (error) {\n\t\treturn notOk(errorContractValidationFailed(`Contract at ${contractPathAbsolute} failed to deserialize: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));\n\t}\n\tconst rawStorageHash = toContract.storage?.storageHash;\n\tif (typeof rawStorageHash !== \"string\") return notOk(errorContractValidationFailed(\"Contract is missing storageHash\", { where: { path: contractPathAbsolute } }));\n\tlet toStorageHash = rawStorageHash;\n\tlet toArtifacts = null;\n\tlet fromContract = null;\n\tlet fromHash = null;\n\tlet snapshotStartContract = null;\n\tlet isAutoBaseline = false;\n\tconst tolerantAggregateResult = await loadContractSpaceAggregateForCli({\n\t\ttargetId: config.target.targetId,\n\t\tmigrationsDir,\n\t\tappContract: toContract,\n\t\textensions: config.extensions ?? [],\n\t\tdeserializeContract: (json) => familyInstance.deserializeContract(json)\n\t});\n\tif (!tolerantAggregateResult.ok) return notOk(tolerantAggregateResult.failure);\n\tconst resolutionSpace = tolerantAggregateResult.value.app;\n\tconst resolutionResult = await resolveFromForPlan({\n\t\toptionsFrom: options.from,\n\t\tspace: resolutionSpace\n\t});\n\tif (!resolutionResult.ok) return notOk(resolutionResult.failure);\n\tswitch (resolutionResult.value.kind) {\n\t\tcase \"greenfield\": break;\n\t\tcase \"graph-node\":\n\t\t\tfromHash = resolutionResult.value.fromHash;\n\t\t\tfromContract = resolutionResult.value.fromContract;\n\t\t\tbreak;\n\t\tcase \"ref\":\n\t\t\tfromHash = resolutionResult.value.fromHash;\n\t\t\tfromContract = resolutionResult.value.fromContract;\n\t\t\tsnapshotStartContract = {\n\t\t\t\tfromHash: resolutionResult.value.fromHash,\n\t\t\t\tcontractJson: resolutionResult.value.contractJson,\n\t\t\t\tcontractDts: resolutionResult.value.contractDts\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"auto-baseline\":\n\t\t\tfromHash = resolutionResult.value.fromHash;\n\t\t\tfromContract = resolutionResult.value.fromContract;\n\t\t\tsnapshotStartContract = {\n\t\t\t\tfromHash: resolutionResult.value.fromHash,\n\t\t\t\tcontractJson: resolutionResult.value.contractJson,\n\t\t\t\tcontractDts: resolutionResult.value.contractDts\n\t\t\t};\n\t\t\tisAutoBaseline = true;\n\t\t\tbreak;\n\t}\n\tif (options.to !== void 0) {\n\t\tconst toResolution = await resolveToForPlan(options.to, { space: resolutionSpace });\n\t\tif (!toResolution.ok) return notOk(toResolution.failure);\n\t\ttoContract = toResolution.value.contract;\n\t\ttoStorageHash = toResolution.value.hash;\n\t\ttoArtifacts = {\n\t\t\tcontractJson: toResolution.value.contractJson,\n\t\t\tcontractDts: toResolution.value.contractDts\n\t\t};\n\t}\n\tconst resolveImportSpecifier = createProjectSpecifierResolver(options.config);\n\tconst seedResult = await runContractSpaceSeedPhase({\n\t\tmigrationsDir,\n\t\textensions: toExtensionInputs(config.extensions ?? [])\n\t});\n\tfor (const record of seedResult.seeded) callbacks?.onSeeded?.(record);\n\tconst emittedExtensionDirs = seedResult.seeded.flatMap((r) => r.newMigrationDirs.map((dirName) => ({\n\t\tspaceId: r.spaceId,\n\t\tdirName\n\t})));\n\tif (fromHash === toStorageHash && !isAutoBaseline) return ok({\n\t\tok: true,\n\t\tnoOp: true,\n\t\tfrom: fromHash,\n\t\tto: toStorageHash,\n\t\toperations: [],\n\t\temittedExtensionDirs,\n\t\tsummary: \"No changes detected between contracts\",\n\t\ttimings: { total: Date.now() - startTime }\n\t});\n\tconst migrations = getTargetMigrations(config.target);\n\tif (!migrations) return notOk(errorTargetMigrationNotSupported({ why: `Target \"${config.target.id}\" does not support migrations` }));\n\tconst aggregateResult = await buildContractSpaceAggregate({\n\t\ttargetId: config.target.targetId,\n\t\tmigrationsDir,\n\t\tappContract: toContract,\n\t\textensions: config.extensions ?? [],\n\t\tdeserializeContract: (json) => familyInstance.deserializeContract(json)\n\t});\n\tif (!aggregateResult.ok) return notOk(aggregateResult.failure);\n\tconst aggregate = aggregateResult.value;\n\tconst frameworkComponents = assertFrameworkComponentsCompatible(config.family.familyId, config.target.targetId, [\n\t\tconfig.target,\n\t\tconfig.adapter,\n\t\t...config.extensions ?? []\n\t]);\n\tasync function writeDestinationSnapshot(destHash) {\n\t\tif (toArtifacts !== null) {\n\t\t\tawait writeContractSnapshot(migrationsDir, destHash, {\n\t\t\t\tcontractJson: toArtifacts.contractJson,\n\t\t\t\tcontractDts: toArtifacts.contractDts\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst destinationArtifacts = getEmittedArtifactPaths(contractPathAbsolute);\n\t\tconst [contractJsonRaw, contractDts] = await Promise.all([readFile(destinationArtifacts.jsonPath, \"utf-8\"), readFile(destinationArtifacts.dtsPath, \"utf-8\")]);\n\t\tawait writeContractSnapshot(migrationsDir, destHash, {\n\t\t\tcontractJson: castAs(JSON.parse(contractJsonRaw)),\n\t\t\tcontractDts\n\t\t});\n\t}\n\ttry {\n\t\tconst planner = migrations.createPlanner(controlAdapter);\n\t\tif (isAutoBaseline && fromHash !== null && fromContract !== null && snapshotStartContract !== null) {\n\t\t\tconst baselineTimestamp = /* @__PURE__ */ new Date();\n\t\t\tconst deltaTimestamp = new Date(baselineTimestamp.getTime() + 6e4);\n\t\t\tconst baselineDirName = formatMigrationDirName(baselineTimestamp, \"baseline\");\n\t\t\tconst deltaDirName = formatMigrationDirName(deltaTimestamp, options.name ?? \"migration\");\n\t\t\tconst baselinePackageDir = join(appMigrationsDir, baselineDirName);\n\t\t\tconst deltaPackageDir = join(appMigrationsDir, deltaDirName);\n\t\t\tconst baselineLeg = await runPlannerLeg(planner, migrations, frameworkComponents, fromContract, null, aggregate.app.spaceId, aggregate, snapshotsImportPathFrom(baselinePackageDir, migrationsDir), resolveImportSpecifier);\n\t\t\tif (!baselineLeg.ok) return notOk(baselineLeg.failure);\n\t\t\tawait writePlannedMigrationPackage(baselinePackageDir, null, fromHash, baselineTimestamp, baselineLeg.value);\n\t\t\tawait writeContractSnapshot(migrationsDir, fromHash, {\n\t\t\t\tcontractJson: snapshotStartContract.contractJson,\n\t\t\t\tcontractDts: snapshotStartContract.contractDts\n\t\t\t});\n\t\t\tif (fromHash === toStorageHash) {\n\t\t\t\tconst baselineOps = baselineLeg.value.hasPlaceholders ? [] : baselineLeg.value.plannedOps;\n\t\t\t\tif (baselineLeg.value.hasPlaceholders) {\n\t\t\t\t\tconst baselineDir = relative(process.cwd(), baselinePackageDir);\n\t\t\t\t\treturn ok({\n\t\t\t\t\t\tok: true,\n\t\t\t\t\t\tnoOp: false,\n\t\t\t\t\t\tfrom: fromHash,\n\t\t\t\t\t\tto: toStorageHash,\n\t\t\t\t\t\tdir: baselineDir,\n\t\t\t\t\t\tbaselineDir,\n\t\t\t\t\t\toperations: [],\n\t\t\t\t\t\temittedExtensionDirs,\n\t\t\t\t\t\tpendingPlaceholders: true,\n\t\t\t\t\t\tsummary: \"Planned baseline with placeholder(s) — edit migration.ts then run `node migration.ts` to self-emit\",\n\t\t\t\t\t\ttimings: { total: Date.now() - startTime }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tconst preview = hasOperationPreview(familyInstance) ? familyInstance.toOperationPreview(baselineOps) : void 0;\n\t\t\t\treturn ok({\n\t\t\t\t\tok: true,\n\t\t\t\t\tnoOp: false,\n\t\t\t\t\tfrom: fromHash,\n\t\t\t\t\tto: toStorageHash,\n\t\t\t\t\tbaselineDir: relative(process.cwd(), baselinePackageDir),\n\t\t\t\t\toperations: baselineOps.map((op) => ({\n\t\t\t\t\t\tid: op.id,\n\t\t\t\t\t\tlabel: op.label,\n\t\t\t\t\t\toperationClass: op.operationClass\n\t\t\t\t\t})),\n\t\t\t\t\temittedExtensionDirs,\n\t\t\t\t\t...preview !== void 0 ? { preview } : {},\n\t\t\t\t\tsummary: buildAutoBaselinePlanSummary(0, emittedExtensionDirs.length),\n\t\t\t\t\ttimings: { total: Date.now() - startTime }\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst deltaLeg = await runPlannerLeg(planner, migrations, frameworkComponents, aggregate.app.contract(), fromContract, aggregate.app.spaceId, aggregate, snapshotsImportPathFrom(deltaPackageDir, migrationsDir), resolveImportSpecifier);\n\t\t\tif (!deltaLeg.ok) return notOk(deltaLeg.failure);\n\t\t\tawait writePlannedMigrationPackage(deltaPackageDir, fromHash, toStorageHash, deltaTimestamp, deltaLeg.value);\n\t\t\tawait writeDestinationSnapshot(toStorageHash);\n\t\t\tawait writeContractSnapshot(migrationsDir, fromHash, {\n\t\t\t\tcontractJson: snapshotStartContract.contractJson,\n\t\t\t\tcontractDts: snapshotStartContract.contractDts\n\t\t\t});\n\t\t\tconst deltaOps = deltaLeg.value.hasPlaceholders ? [] : deltaLeg.value.plannedOps;\n\t\t\tif (deltaLeg.value.hasPlaceholders) return ok({\n\t\t\t\tok: true,\n\t\t\t\tnoOp: false,\n\t\t\t\tfrom: fromHash,\n\t\t\t\tto: toStorageHash,\n\t\t\t\tdir: relative(process.cwd(), deltaPackageDir),\n\t\t\t\tbaselineDir: relative(process.cwd(), baselinePackageDir),\n\t\t\t\toperations: [],\n\t\t\t\temittedExtensionDirs,\n\t\t\t\tpendingPlaceholders: true,\n\t\t\t\tsummary: \"Planned baseline + migration with placeholder(s) — edit migration.ts then run `node migration.ts` to self-emit\",\n\t\t\t\ttimings: { total: Date.now() - startTime }\n\t\t\t});\n\t\t\tconst preview = hasOperationPreview(familyInstance) ? familyInstance.toOperationPreview(deltaOps) : void 0;\n\t\t\treturn ok({\n\t\t\t\tok: true,\n\t\t\t\tnoOp: false,\n\t\t\t\tfrom: fromHash,\n\t\t\t\tto: toStorageHash,\n\t\t\t\tdir: relative(process.cwd(), deltaPackageDir),\n\t\t\t\tbaselineDir: relative(process.cwd(), baselinePackageDir),\n\t\t\t\toperations: deltaOps.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\temittedExtensionDirs,\n\t\t\t\t...preview !== void 0 ? { preview } : {},\n\t\t\t\tsummary: buildAutoBaselinePlanSummary(deltaOps.length, emittedExtensionDirs.length),\n\t\t\t\ttimings: { total: Date.now() - startTime }\n\t\t\t});\n\t\t}\n\t\tconst timestamp = /* @__PURE__ */ new Date();\n\t\tconst packageDir = join(appMigrationsDir, formatMigrationDirName(timestamp, options.name ?? \"migration\"));\n\t\tconst deltaLeg = await runPlannerLeg(planner, migrations, frameworkComponents, aggregate.app.contract(), fromContract, aggregate.app.spaceId, aggregate, snapshotsImportPathFrom(packageDir, migrationsDir), resolveImportSpecifier);\n\t\tif (!deltaLeg.ok) return notOk(deltaLeg.failure);\n\t\tawait writePlannedMigrationPackage(packageDir, fromHash, toStorageHash, timestamp, deltaLeg.value);\n\t\tawait writeDestinationSnapshot(toStorageHash);\n\t\tif (snapshotStartContract !== null) await writeContractSnapshot(migrationsDir, snapshotStartContract.fromHash, {\n\t\t\tcontractJson: snapshotStartContract.contractJson,\n\t\t\tcontractDts: snapshotStartContract.contractDts\n\t\t});\n\t\tif (deltaLeg.value.hasPlaceholders) return ok({\n\t\t\tok: true,\n\t\t\tnoOp: false,\n\t\t\tfrom: fromHash,\n\t\t\tto: toStorageHash,\n\t\t\tdir: relative(process.cwd(), packageDir),\n\t\t\toperations: [],\n\t\t\temittedExtensionDirs,\n\t\t\tpendingPlaceholders: true,\n\t\t\tsummary: \"Planned migration with placeholder(s) — edit migration.ts then run `node migration.ts` to self-emit\",\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t\tconst plannedOps = deltaLeg.value.plannedOps;\n\t\tconst preview = hasOperationPreview(familyInstance) ? familyInstance.toOperationPreview(plannedOps) : void 0;\n\t\treturn ok({\n\t\t\tok: true,\n\t\t\tnoOp: false,\n\t\t\tfrom: fromHash,\n\t\t\tto: toStorageHash,\n\t\t\tdir: relative(process.cwd(), packageDir),\n\t\t\toperations: plannedOps.map((op) => ({\n\t\t\t\tid: op.id,\n\t\t\t\tlabel: op.label,\n\t\t\t\toperationClass: op.operationClass\n\t\t\t})),\n\t\t\temittedExtensionDirs,\n\t\t\t...preview !== void 0 ? { preview } : {},\n\t\t\tsummary: buildPlanSummary(plannedOps.length, emittedExtensionDirs.length),\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 (MigrationToolsError.is(error)) return notOk(error);\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\treturn notOk(errorUnexpected(message, { why: `Unexpected error during migration plan: ${message}` }));\n\t}\n}\n/**\n* Compose the success-line summary so the cross-space side effect\n* (extension-space migration packages materialised on disk during\n* this `plan` run) is visible in the top line — not just in the\n* step log above it.\n*\n* Example outputs:\n* - `Planned 3 operation(s)` (app-space-only project)\n* - `Planned 3 operation(s); materialised 1 extension-space migration` (one extension)\n* - `Planned 3 operation(s); materialised 2 extension-space migrations` (two extensions)\n*\n* Locks AC3 at the summary-line level: a reader of the success line\n* can tell that something happened beyond the app space.\n*/\nfunction buildPlanSummary(plannedOpsCount, emittedExtensionDirsCount) {\n\tconst base = `Planned ${plannedOpsCount} operation(s)`;\n\tif (emittedExtensionDirsCount === 0) return base;\n\treturn `${base}; materialised ${emittedExtensionDirsCount} ${emittedExtensionDirsCount === 1 ? \"extension-space migration\" : \"extension-space migrations\"}`;\n}\nfunction buildAutoBaselinePlanSummary(deltaOpsCount, emittedExtensionDirsCount) {\n\tconst base = `Planned baseline + ${deltaOpsCount} operation(s)`;\n\tif (emittedExtensionDirsCount === 0) return base;\n\treturn `${base}; materialised ${emittedExtensionDirsCount} ${emittedExtensionDirsCount === 1 ? \"extension-space migration\" : \"extension-space migrations\"}`;\n}\n//#endregion\nexport { runContractSpaceSeedPhase as i, resolveFromForPlan as n, resolveToForPlan as r, executeMigrationPlanCommand as t };\n\n//# sourceMappingURL=migration-plan-CwuZLXVE.mjs.map"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { H as formatMigrationShowOutput, N as errorUnexpected, O as errorRuntime$1, W as formatStyledHeader, Z as mapRefResolutionError, ct as setCommandSeeAlso, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, h as errorFileNotFound, it as resolveMigrationPaths, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, rt as resolveContractPath, st as setCommandExamples } from "./command-helpers-C4WpR-QE-CK2gkj6l.mjs";
1
+ import { H as formatMigrationShowOutput, N as errorUnexpected, O as errorRuntime$1, W as formatStyledHeader, ct as setCommandSeeAlso, d as errorContractValidationFailed, et as parseGlobalFlagsOrExit, h as errorFileNotFound, it as resolveMigrationPaths, o as createTerminalUI, ot as setCommandDescriptions, q as handleResult, r as addGlobalOptions, rt as resolveContractPath, st as setCommandExamples } from "./command-helpers-C4WpR-QE-DE494TSG.mjs";
2
2
  import { r as loadConfig } from "./exports-CDX9kZuw.mjs";
3
- import { s as loadContractSpaceAggregate } from "./aggregate-i-rfetSO.mjs";
4
- import { t as createControlClient } from "./client-7aUYC7ci-Bh9mLxkl.mjs";
5
- import { r as parseMigrationRef } from "./ref-resolution-BsdziDFA.mjs";
6
- import { n as looksLikePath, r as resolveAppTargetPath, t as findPackageByDirPath } from "./migration-path-target-BPYp3LNc-qRQlG_Yn.mjs";
3
+ import { a as loadContractSpaceAggregateForCli } from "./contract-space-aggregate-loader-C5r12INu-Db_pa3rX.mjs";
4
+ import { t as createControlClient } from "./client-Y6qbDk7X-BzKLmBZo.mjs";
5
+ import { n as resolveMigrationRef } from "./ref-resolution-_S4xTT2L-BE5zgO2W.mjs";
6
+ import { n as looksLikePath, r as resolveAppTargetPath, t as findPackageByDirPath } from "./migration-path-target-BPYp3LNc-DsDdLU0J.mjs";
7
7
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
8
8
  import { notOk, ok } from "@prisma/orm-framework/utils/result";
9
9
  import { relative } from "pathe";
@@ -86,11 +86,15 @@ async function executeMigrationShowCommand(target, options, flags, ui) {
86
86
  } catch (error) {
87
87
  return notOk(errorContractValidationFailed(`Contract at ${contractPathAbsolute} failed to deserialize: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));
88
88
  }
89
- const aggregate = await loadContractSpaceAggregate({
89
+ const loadedAggregate = await loadContractSpaceAggregateForCli({
90
+ targetId: config.target.targetId,
90
91
  migrationsDir,
91
92
  appContract,
93
+ extensions: [],
92
94
  deserializeContract: (json) => familyInstance.deserializeContract(json)
93
95
  });
96
+ if (!loadedAggregate.ok) return notOk(loadedAggregate.failure);
97
+ const aggregate = loadedAggregate.value;
94
98
  const packages = aggregate.app.packages;
95
99
  const graph = aggregate.app.graph();
96
100
  const refs = aggregate.app.refs;
@@ -109,11 +113,11 @@ async function executeMigrationShowCommand(target, options, flags, ui) {
109
113
  why: `No migration packages found in ${appMigrationsRelative}`,
110
114
  fix: "Run `prisma-next migration plan` to create a migration first."
111
115
  }));
112
- const migResult = parseMigrationRef(target, {
116
+ const migResult = resolveMigrationRef(target, {
113
117
  graph,
114
118
  refs
115
119
  });
116
- if (!migResult.ok) return notOk(mapRefResolutionError(migResult.failure));
120
+ if (!migResult.ok) return notOk(migResult.failure);
117
121
  const matchedPkg = packages.find((p) => p.metadata.migrationHash === migResult.value.migrationHash);
118
122
  if (!matchedPkg) return notOk(errorRuntime$1("MIGRATION.PACKAGE_NOT_FOUND", "Migration package not found", {
119
123
  why: `Resolved migration "${migResult.value.dirName}" but the package was not loaded`,
@@ -168,4 +172,4 @@ function createMigrationShowCommand() {
168
172
  //#endregion
169
173
  export { createMigrationShowCommand as t };
170
174
 
171
- //# sourceMappingURL=migration-show-BKsIh7Uz.mjs.map
175
+ //# sourceMappingURL=migration-show-CW6EKtfw.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-show-CW6EKtfw.mjs","names":["errorRuntime"],"sources":["../../../../1-framework/3-tooling/cli/dist/commands/migration-show.mjs"],"sourcesContent":["import { A as formatStyledHeader, B as errorContractValidationFailed, E as formatMigrationShowOutput, W as errorFileNotFound, _ as createTerminalUI, ct as errorUnexpected, d as setCommandSeeAlso, g as parseGlobalFlagsOrExit, l as setCommandDescriptions, o as resolveContractPath, rt as errorRuntime, s as resolveMigrationPaths, t as addGlobalOptions, u as setCommandExamples, y as handleResult } from \"../command-helpers-C4WpR-QE.mjs\";\nimport { a as loadContractSpaceAggregateForCli } from \"../contract-space-aggregate-loader-C5r12INu.mjs\";\nimport { t as createControlClient } from \"../client-Y6qbDk7X.mjs\";\nimport { n as resolveMigrationRef } from \"../ref-resolution-_S4xTT2L.mjs\";\nimport { n as looksLikePath, r as resolveAppTargetPath, t as findPackageByDirPath } from \"../migration-path-target-BPYp3LNc.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 } from \"pathe\";\nimport { readFile } from \"node:fs/promises\";\nimport { APP_SPACE_ID, createControlStack } from \"@internal/framework-components/control\";\nimport { castAs } from \"@internal/utils/casts\";\n//#region src/commands/migration-show.ts\nfunction pkgToPresent(spaceId, pkg, client) {\n\tconst ops = castAs(pkg.ops);\n\tconst rawPreview = client.toOperationPreview(ops) ?? { statements: [] };\n\treturn {\n\t\tspace: spaceId,\n\t\tname: pkg.dirName,\n\t\tfromContract: pkg.metadata.from,\n\t\ttoContract: pkg.metadata.to,\n\t\thash: pkg.metadata.migrationHash,\n\t\tcreatedAt: pkg.metadata.createdAt,\n\t\toperations: ops.map((op) => ({\n\t\t\tid: op.id,\n\t\t\tlabel: op.label,\n\t\t\toperationClass: op.operationClass\n\t\t})),\n\t\tpreview: { statements: [...rawPreview.statements] }\n\t};\n}\nasync function executeMigrationShowCommand(target, options, flags, ui) {\n\tconst config = await loadConfig(options.config);\n\tconst { configPath, migrationsDir, appMigrationsDir, appMigrationsRelative } = resolveMigrationPaths(options.config, config);\n\tconst contractPathAbsolute = resolveContractPath(config);\n\tconst contractPath = relative(process.cwd(), contractPathAbsolute);\n\tif (!flags.json && !flags.quiet) {\n\t\tconst header = formatStyledHeader({\n\t\t\tcommand: \"migration show\",\n\t\t\tdescription: \"Display migration package contents\",\n\t\t\tdetails: [\n\t\t\t\t{\n\t\t\t\t\tlabel: \"config\",\n\t\t\t\t\tvalue: configPath\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: \"contract\",\n\t\t\t\t\tvalue: contractPath\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: \"migrations\",\n\t\t\t\t\tvalue: appMigrationsRelative\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: \"target\",\n\t\t\t\t\tvalue: target\n\t\t\t\t}\n\t\t\t],\n\t\t\tflags\n\t\t});\n\t\tui.stderr(header);\n\t}\n\tconst client = createControlClient({\n\t\tfamily: config.family,\n\t\ttarget: config.target,\n\t\tadapter: config.adapter,\n\t\t...ifDefined(\"driver\", config.driver),\n\t\textensions: config.extensions ?? []\n\t});\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}`\n\t\t}));\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: \"Failed to read contract file\" }));\n\t}\n\tconst stack = createControlStack(config);\n\tconst familyInstance = config.family.create(stack);\n\tlet appContract;\n\ttry {\n\t\tappContract = familyInstance.deserializeContract(castAs(JSON.parse(contractJsonContent)));\n\t} catch (error) {\n\t\treturn notOk(errorContractValidationFailed(`Contract at ${contractPathAbsolute} failed to deserialize: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));\n\t}\n\tconst loadedAggregate = await loadContractSpaceAggregateForCli({\n\t\ttargetId: config.target.targetId,\n\t\tmigrationsDir,\n\t\tappContract,\n\t\textensions: [],\n\t\tdeserializeContract: (json) => familyInstance.deserializeContract(json)\n\t});\n\tif (!loadedAggregate.ok) return notOk(loadedAggregate.failure);\n\tconst aggregate = loadedAggregate.value;\n\tconst packages = aggregate.app.packages;\n\tconst graph = aggregate.app.graph();\n\tconst refs = aggregate.app.refs;\n\tlet appPkg;\n\tif (looksLikePath(target)) {\n\t\tconst resolved = resolveAppTargetPath(target, appMigrationsDir, appMigrationsRelative);\n\t\tif (!resolved.ok) return resolved;\n\t\tconst matched = findPackageByDirPath(packages, resolved.value);\n\t\tif (!matched) return notOk(errorRuntime(\"MIGRATION.PACKAGE_NOT_FOUND\", \"Migration package not found\", {\n\t\t\twhy: `No loaded migration package at ${relative(process.cwd(), resolved.value)}`,\n\t\t\tfix: \"Pass a directory name, hash prefix, or path to an on-disk app-space migration package.\"\n\t\t}));\n\t\tappPkg = matched;\n\t} else {\n\t\tif (packages.length === 0) return notOk(errorRuntime(\"MIGRATION.NO_MIGRATIONS\", \"No migrations found\", {\n\t\t\twhy: `No migration packages found in ${appMigrationsRelative}`,\n\t\t\tfix: \"Run `prisma-next migration plan` to create a migration first.\"\n\t\t}));\n\t\tconst migResult = resolveMigrationRef(target, {\n\t\t\tgraph,\n\t\t\trefs\n\t\t});\n\t\tif (!migResult.ok) return notOk(migResult.failure);\n\t\tconst matchedPkg = packages.find((p) => p.metadata.migrationHash === migResult.value.migrationHash);\n\t\tif (!matchedPkg) return notOk(errorRuntime(\"MIGRATION.PACKAGE_NOT_FOUND\", \"Migration package not found\", {\n\t\t\twhy: `Resolved migration \"${migResult.value.dirName}\" but the package was not loaded`,\n\t\t\tfix: \"The migrations directory may be corrupted. Inspect the migration.json files.\"\n\t\t}));\n\t\tappPkg = matchedPkg;\n\t}\n\tconst migration = pkgToPresent(APP_SPACE_ID, appPkg, client);\n\treturn ok({\n\t\tok: true,\n\t\tsummary: `Migration ${migration.name} in ${migration.space}: ${migration.operations.length} operation(s)`,\n\t\tmigration\n\t});\n}\nfunction createMigrationShowCommand() {\n\tconst command = new Command(\"show\");\n\tsetCommandDescriptions(command, \"Display migration package contents\", \"Shows the operations, statement preview, and metadata for one app-space migration.\\nAccepts a directory path, directory name, or hash prefix.\\nOffline — does not consult the database.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next migration show 20260101_100000_add_user\",\n\t\t\"prisma-next migration show a1b2c3\",\n\t\t\"prisma-next migration show 20260101_100000_add_user --json\"\n\t]);\n\tsetCommandSeeAlso(command, [\n\t\t{\n\t\t\tverb: \"migration status\",\n\t\t\toneLiner: \"Show migration path and pending status\"\n\t\t},\n\t\t{\n\t\t\tverb: \"migration log\",\n\t\t\toneLiner: \"Show executed migration history\"\n\t\t},\n\t\t{\n\t\t\tverb: \"migration list\",\n\t\t\toneLiner: \"List on-disk migrations\"\n\t\t},\n\t\t{\n\t\t\tverb: \"migration graph\",\n\t\t\toneLiner: \"Show the migration graph topology\"\n\t\t}\n\t]);\n\taddGlobalOptions(command).argument(\"<target>\", \"Migration reference: directory name, hash/prefix, ref, or path\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").action(async (target, options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst exitCode = handleResult(await executeMigrationShowCommand(target, options, flags, ui), flags, ui, (showResult) => {\n\t\t\tif (flags.json) ui.output(JSON.stringify(showResult, null, 2));\n\t\t\telse if (!flags.quiet) ui.log(formatMigrationShowOutput(showResult, flags));\n\t\t});\n\t\tprocess.exit(exitCode);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createMigrationShowCommand };\n\n//# sourceMappingURL=migration-show.mjs.map"],"mappings":"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"}