@prisma/orm-toolchain 8.0.0-rc.1-dev.45 → 8.0.0-rc.10

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 (327) hide show
  1. package/README.md +3 -7
  2. package/dist/{aggregate-BBsCbXgJ.mjs → aggregate-B4HKshLQ.mjs} +11 -11
  3. package/dist/aggregate-B4HKshLQ.mjs.map +1 -0
  4. package/dist/{aggregate-CA6bJ8UO.d.mts → aggregate-D_eX4zoo.d.mts} +5 -5
  5. package/dist/{aggregate-CA6bJ8UO.d.mts.map → aggregate-D_eX4zoo.d.mts.map} +1 -1
  6. package/dist/cli-telemetry.d.mts +27 -12
  7. package/dist/cli-telemetry.d.mts.map +1 -1
  8. package/dist/cli-telemetry.mjs +286 -9
  9. package/dist/cli-telemetry.mjs.map +1 -1
  10. package/dist/cli.d.mts +7 -13
  11. package/dist/cli.d.mts.map +1 -1
  12. package/dist/cli.mjs +4871 -567
  13. package/dist/cli.mjs.map +1 -1
  14. package/dist/cli__control-api.d.mts +314 -34
  15. package/dist/cli__control-api.d.mts.map +1 -1
  16. package/dist/cli__control-api.mjs +2 -19
  17. package/dist/cli__control-api__testing.d.mts +1 -1
  18. package/dist/cli__control-api__testing.mjs.map +1 -1
  19. package/dist/cli__init-output.d.mts +0 -1
  20. package/dist/cli__init-output.d.mts.map +1 -1
  21. package/dist/cli__init-output.mjs +1 -1
  22. package/dist/cli__migration-cli.mjs +10 -10
  23. package/dist/cli__migration-cli.mjs.map +1 -1
  24. package/dist/config-loader.d.mts +1 -1
  25. package/dist/config-loader.mjs +1 -1
  26. package/dist/{contract-snapshot-store-B0G1Fw_F-C4JjmWEA.mjs → contract-snapshot-store-qGrwlGmt-Cf2NFzRL.mjs} +5 -5
  27. package/dist/{contract-snapshot-store-B0G1Fw_F-C4JjmWEA.mjs.map → contract-snapshot-store-qGrwlGmt-Cf2NFzRL.mjs.map} +1 -1
  28. package/dist/{cli-errors-iquUoY6O-BFboxglv.d.mts → db-verify-Yih5kWtB-B1kv76ec.d.mts} +84 -84
  29. package/dist/db-verify-Yih5kWtB-B1kv76ec.d.mts.map +1 -0
  30. package/dist/{domain-type-generation-bpSO3Y0L-jo2C7LlH.mjs → domain-type-generation-CR9ECUau-DOlKbcaE.mjs} +20 -6
  31. package/dist/domain-type-generation-CR9ECUau-DOlKbcaE.mjs.map +1 -0
  32. package/dist/{domain-type-generation-PkAb39ob-Ct8AGqow.d.mts → domain-type-generation-X6-AaL1U-DHEoRf_y.d.mts} +14 -3
  33. package/dist/domain-type-generation-X6-AaL1U-DHEoRf_y.d.mts.map +1 -0
  34. package/dist/emitter.d.mts +2 -2
  35. package/dist/emitter.mjs +2 -2
  36. package/dist/emitter__domain-type-generation.d.mts +2 -2
  37. package/dist/emitter__domain-type-generation.mjs +2 -2
  38. package/dist/{errors-KWM8yBAL.d.mts → errors-D59OCpoI.d.mts} +2 -2
  39. package/dist/{errors-KWM8yBAL.d.mts.map → errors-D59OCpoI.d.mts.map} +1 -1
  40. package/dist/{errors-CXbGUWGu-BQi6YS-H.mjs → errors-SoLLYLtw-DMxVbVs9.mjs} +10 -10
  41. package/dist/errors-SoLLYLtw-DMxVbVs9.mjs.map +1 -0
  42. package/dist/{exports-BZLNbtkY.mjs → exports-BXXeNWlj.mjs} +42 -36
  43. package/dist/exports-BXXeNWlj.mjs.map +1 -0
  44. package/dist/exports-CE6OD63o-4Qpqr2W7.mjs +398 -0
  45. package/dist/exports-CE6OD63o-4Qpqr2W7.mjs.map +1 -0
  46. package/dist/{exports-B3xY_FHp.mjs → exports-CYa2di3d.mjs} +386 -26
  47. package/dist/exports-CYa2di3d.mjs.map +1 -0
  48. package/dist/{graph-membership-BViWUMpP-Cgu4Z2ox.mjs → graph-membership-DY1Onbc3-CwBd6wuB.mjs} +3 -3
  49. package/dist/{graph-membership-BViWUMpP-Cgu4Z2ox.mjs.map → graph-membership-DY1Onbc3-CwBd6wuB.mjs.map} +1 -1
  50. package/dist/{import-roots-B6CtsWXb.d.mts → import-roots-ARK1wjzc.d.mts} +4 -4
  51. package/dist/{import-roots-B6CtsWXb.d.mts.map → import-roots-ARK1wjzc.d.mts.map} +1 -1
  52. package/dist/{import-roots-NDOIEDVj.mjs → import-roots-BHOrDJbI.mjs} +13 -6
  53. package/dist/import-roots-BHOrDJbI.mjs.map +1 -0
  54. package/dist/{index-CnOyYxmv.d.mts → index-D217lbiW.d.mts} +8 -4
  55. package/dist/index-D217lbiW.d.mts.map +1 -0
  56. package/dist/{index-mCsi_ND5.d.mts → index-u5RdrumF.d.mts} +2 -11
  57. package/dist/index-u5RdrumF.d.mts.map +1 -0
  58. package/dist/{invariants-CTHy88OP-DJ-i5yTz.mjs → invariants-Cww4bv0v-BEiFxmbX.mjs} +3 -3
  59. package/dist/{invariants-CTHy88OP-DJ-i5yTz.mjs.map → invariants-Cww4bv0v-BEiFxmbX.mjs.map} +1 -1
  60. package/dist/{io-635GlNx1-D94PxRc-.mjs → io-BmWQNxRP-DQqbcPsS.mjs} +5 -5
  61. package/dist/{io-635GlNx1-D94PxRc-.mjs.map → io-BmWQNxRP-DQqbcPsS.mjs.map} +1 -1
  62. package/dist/{migration-gubSSeMk.mjs → migration-B9w-7dKe.mjs} +3 -3
  63. package/dist/{migration-gubSSeMk.mjs.map → migration-B9w-7dKe.mjs.map} +1 -1
  64. package/dist/{migration-graph-_SJImD5V-D5RCc651.mjs → migration-graph-CW4bMmTz-B5xFtFVB.mjs} +3 -3
  65. package/dist/{migration-graph-_SJImD5V-D5RCc651.mjs.map → migration-graph-CW4bMmTz-B5xFtFVB.mjs.map} +1 -1
  66. package/dist/migration-tools.d.mts +5 -5
  67. package/dist/migration-tools.mjs +13 -13
  68. package/dist/migration-tools__aggregate.d.mts +1 -1
  69. package/dist/migration-tools__aggregate.mjs +1 -1
  70. package/dist/migration-tools__contract-snapshot-store.mjs +1 -1
  71. package/dist/migration-tools__errors.d.mts +1 -1
  72. package/dist/migration-tools__errors.mjs +1 -1
  73. package/dist/migration-tools__invariants.mjs +1 -1
  74. package/dist/migration-tools__io.mjs +1 -1
  75. package/dist/migration-tools__migration-graph.mjs +2 -2
  76. package/dist/migration-tools__migration-ts.mjs +1 -1
  77. package/dist/migration-tools__migration.mjs +1 -1
  78. package/dist/migration-tools__ref-resolution.d.mts +1 -1
  79. package/dist/migration-tools__ref-resolution.mjs +1 -1
  80. package/dist/migration-tools__refs.mjs +1 -1
  81. package/dist/migration-tools__spaces.d.mts +2 -2
  82. package/dist/migration-tools__spaces.mjs +2 -2
  83. package/dist/{migration-ts-BoHxxGvi.mjs → migration-ts-DdVm0rws.mjs} +2 -2
  84. package/dist/{migration-ts-BoHxxGvi.mjs.map → migration-ts-DdVm0rws.mjs.map} +1 -1
  85. package/dist/{output-DP3woAjV-BxCr9nHA.mjs → output-D83nTTpC-XlvN30yS.mjs} +5 -47
  86. package/dist/output-D83nTTpC-XlvN30yS.mjs.map +1 -0
  87. package/dist/publish-surface.d.mts +2 -2
  88. package/dist/publish-surface.mjs +2 -2
  89. package/dist/publish-surface__import-roots.d.mts +1 -1
  90. package/dist/publish-surface__import-roots.mjs +1 -1
  91. package/dist/publish-surface__shells.d.mts +1 -1
  92. package/dist/publish-surface__shells.mjs +1 -1
  93. package/dist/quick-reference-mongo.md +21 -18
  94. package/dist/quick-reference-postgres.md +20 -17
  95. package/dist/readme-mongo.md +7 -7
  96. package/dist/readme-postgres.md +7 -7
  97. package/dist/ref-DcqFmceq-QaUjgZeM.mjs +4789 -0
  98. package/dist/ref-DcqFmceq-QaUjgZeM.mjs.map +1 -0
  99. package/dist/{ref-resolution-sGcINe7o.mjs → ref-resolution-BWpwb8_b.mjs} +9 -2
  100. package/dist/ref-resolution-BWpwb8_b.mjs.map +1 -0
  101. package/dist/{ref-resolution-COGOSL57.d.mts → ref-resolution-CaHQJXE0.d.mts} +11 -1
  102. package/dist/ref-resolution-CaHQJXE0.d.mts.map +1 -0
  103. package/dist/{refs-WK86uYYp-B6EZkmmT.mjs → refs-BpSpzdYB-BcDelHGt.mjs} +9 -9
  104. package/dist/refs-BpSpzdYB-BcDelHGt.mjs.map +1 -0
  105. package/dist/{shells-BenrJHp2.mjs → shells-BIdFZwUY.mjs} +13 -19
  106. package/dist/shells-BIdFZwUY.mjs.map +1 -0
  107. package/dist/{shells-COHV_Ozf.d.mts → shells-CIUmT4u4.d.mts} +14 -20
  108. package/dist/shells-CIUmT4u4.d.mts.map +1 -0
  109. package/dist/{spaces-tWQi7CUv.d.mts → spaces-B20bgxF9.d.mts} +3 -3
  110. package/dist/{spaces-tWQi7CUv.d.mts.map → spaces-B20bgxF9.d.mts.map} +1 -1
  111. package/dist/{spaces-BG2w0P8d.mjs → spaces-BCZiAZQn.mjs} +8 -8
  112. package/dist/spaces-BCZiAZQn.mjs.map +1 -0
  113. package/dist/{verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts → verify-contract-spaces-C3PiFBk3-DfomYyOE.d.mts} +3 -3
  114. package/dist/{verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts.map → verify-contract-spaces-C3PiFBk3-DfomYyOE.d.mts.map} +1 -1
  115. package/dist/{verify-contract-spaces-DhJTb0zM-_oh6W6lp.mjs → verify-contract-spaces-CrxvgpwD-D5LLXGci.mjs} +8 -8
  116. package/dist/{verify-contract-spaces-DhJTb0zM-_oh6W6lp.mjs.map → verify-contract-spaces-CrxvgpwD-D5LLXGci.mjs.map} +1 -1
  117. package/dist/vite-plugin-contract-emit.d.mts +3 -3
  118. package/dist/vite-plugin-contract-emit.mjs +10 -10
  119. package/dist/vite-plugin-contract-emit.mjs.map +1 -1
  120. package/package.json +16 -40
  121. package/dist/aggregate-BBsCbXgJ.mjs.map +0 -1
  122. package/dist/bin__prisma-next.mjs +0 -512
  123. package/dist/bin__prisma-next.mjs.map +0 -1
  124. package/dist/caught-errors-BZo7zcRc-C-pIEasG.mjs +0 -14
  125. package/dist/caught-errors-BZo7zcRc-C-pIEasG.mjs.map +0 -1
  126. package/dist/cli-errors-B4zTLaqQ-CXgjO9t4.mjs +0 -347
  127. package/dist/cli-errors-B4zTLaqQ-CXgjO9t4.mjs.map +0 -1
  128. package/dist/cli-errors-iquUoY6O-BFboxglv.d.mts.map +0 -1
  129. package/dist/cli__commands__contract-emit.d.mts +0 -2
  130. package/dist/cli__commands__contract-emit.mjs +0 -2
  131. package/dist/cli__commands__contract-infer.d.mts +0 -7
  132. package/dist/cli__commands__contract-infer.d.mts.map +0 -1
  133. package/dist/cli__commands__contract-infer.mjs +0 -2
  134. package/dist/cli__commands__db-init.d.mts +0 -7
  135. package/dist/cli__commands__db-init.d.mts.map +0 -1
  136. package/dist/cli__commands__db-init.mjs +0 -2
  137. package/dist/cli__commands__db-schema.d.mts +0 -7
  138. package/dist/cli__commands__db-schema.d.mts.map +0 -1
  139. package/dist/cli__commands__db-schema.mjs +0 -2
  140. package/dist/cli__commands__db-sign.d.mts +0 -7
  141. package/dist/cli__commands__db-sign.d.mts.map +0 -1
  142. package/dist/cli__commands__db-sign.mjs +0 -2
  143. package/dist/cli__commands__db-update.d.mts +0 -7
  144. package/dist/cli__commands__db-update.d.mts.map +0 -1
  145. package/dist/cli__commands__db-update.mjs +0 -2
  146. package/dist/cli__commands__db-verify.d.mts +0 -7
  147. package/dist/cli__commands__db-verify.d.mts.map +0 -1
  148. package/dist/cli__commands__db-verify.mjs +0 -2
  149. package/dist/cli__commands__migrate.d.mts +0 -57
  150. package/dist/cli__commands__migrate.d.mts.map +0 -1
  151. package/dist/cli__commands__migrate.mjs +0 -2
  152. package/dist/cli__commands__migration-check.d.mts +0 -8
  153. package/dist/cli__commands__migration-check.d.mts.map +0 -1
  154. package/dist/cli__commands__migration-check.mjs +0 -3
  155. package/dist/cli__commands__migration-graph.d.mts +0 -38
  156. package/dist/cli__commands__migration-graph.d.mts.map +0 -1
  157. package/dist/cli__commands__migration-graph.mjs +0 -2
  158. package/dist/cli__commands__migration-list.d.mts +0 -39
  159. package/dist/cli__commands__migration-list.d.mts.map +0 -1
  160. package/dist/cli__commands__migration-list.mjs +0 -2
  161. package/dist/cli__commands__migration-log.d.mts +0 -20
  162. package/dist/cli__commands__migration-log.d.mts.map +0 -1
  163. package/dist/cli__commands__migration-log.mjs +0 -2
  164. package/dist/cli__commands__migration-new.d.mts +0 -7
  165. package/dist/cli__commands__migration-new.d.mts.map +0 -1
  166. package/dist/cli__commands__migration-new.mjs +0 -2
  167. package/dist/cli__commands__migration-plan.d.mts +0 -34
  168. package/dist/cli__commands__migration-plan.d.mts.map +0 -1
  169. package/dist/cli__commands__migration-plan.mjs +0 -2
  170. package/dist/cli__commands__migration-show.d.mts +0 -27
  171. package/dist/cli__commands__migration-show.d.mts.map +0 -1
  172. package/dist/cli__commands__migration-show.mjs +0 -2
  173. package/dist/cli__commands__migration-status.d.mts +0 -55
  174. package/dist/cli__commands__migration-status.d.mts.map +0 -1
  175. package/dist/cli__commands__migration-status.mjs +0 -3
  176. package/dist/cli__commands__ref.d.mts +0 -7
  177. package/dist/cli__commands__ref.d.mts.map +0 -1
  178. package/dist/cli__commands__ref.mjs +0 -2
  179. package/dist/cli__commands__telemetry.d.mts +0 -7
  180. package/dist/cli__commands__telemetry.d.mts.map +0 -1
  181. package/dist/cli__commands__telemetry.mjs +0 -2
  182. package/dist/client-C6Qp5ujC-Dxb7r79B.mjs +0 -1653
  183. package/dist/client-C6Qp5ujC-Dxb7r79B.mjs.map +0 -1
  184. package/dist/code-templates-C-jirr19-DDQB0WGo.mjs +0 -295
  185. package/dist/code-templates-C-jirr19-DDQB0WGo.mjs.map +0 -1
  186. package/dist/combine-verify-results-B87B_pMc-D4l22OqY.mjs +0 -65
  187. package/dist/combine-verify-results-B87B_pMc-D4l22OqY.mjs.map +0 -1
  188. package/dist/command-helpers-BCgwcqTe-lNCtppzM.mjs +0 -776
  189. package/dist/command-helpers-BCgwcqTe-lNCtppzM.mjs.map +0 -1
  190. package/dist/contract-at-errors-BSoDI0Hw-BXeUNE3s.mjs +0 -44
  191. package/dist/contract-at-errors-BSoDI0Hw-BXeUNE3s.mjs.map +0 -1
  192. package/dist/contract-emit-BG7KL4zk-_a0J310Z.mjs +0 -331
  193. package/dist/contract-emit-BG7KL4zk-_a0J310Z.mjs.map +0 -1
  194. package/dist/contract-emit-BkEj3siG-C8M-IyvS.mjs +0 -2
  195. package/dist/contract-emit-CvwNE4R1-DEn1V1Zo.d.mts +0 -7
  196. package/dist/contract-emit-CvwNE4R1-DEn1V1Zo.d.mts.map +0 -1
  197. package/dist/contract-emit-GknCmgn_-BSWdFprC.mjs +0 -154
  198. package/dist/contract-emit-GknCmgn_-BSWdFprC.mjs.map +0 -1
  199. package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs +0 -56
  200. package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs.map +0 -1
  201. package/dist/contract-infer-BwIDGl7v-CZrdWXAr.mjs +0 -74
  202. package/dist/contract-infer-BwIDGl7v-CZrdWXAr.mjs.map +0 -1
  203. package/dist/contract-snapshot-resolution-De2VvOJn-DqIAV9cr.mjs +0 -82
  204. package/dist/contract-snapshot-resolution-De2VvOJn-DqIAV9cr.mjs.map +0 -1
  205. package/dist/contract-space-aggregate-loader-fa04OIaL-B7LXHle3.mjs +0 -303
  206. package/dist/contract-space-aggregate-loader-fa04OIaL-B7LXHle3.mjs.map +0 -1
  207. package/dist/db-init-BolXrKAI-CwG-zEDW.mjs +0 -109
  208. package/dist/db-init-BolXrKAI-CwG-zEDW.mjs.map +0 -1
  209. package/dist/db-init-failure-B5cQML4A-5zr-99Ek.mjs +0 -44
  210. package/dist/db-init-failure-B5cQML4A-5zr-99Ek.mjs.map +0 -1
  211. package/dist/db-schema-DvdLBdEY-Dl6e1d_Y.mjs +0 -48
  212. package/dist/db-schema-DvdLBdEY-Dl6e1d_Y.mjs.map +0 -1
  213. package/dist/db-sign-DCp4c8CA-B3tun-kh.mjs +0 -172
  214. package/dist/db-sign-DCp4c8CA-B3tun-kh.mjs.map +0 -1
  215. package/dist/db-update-CfayE8WE-CPhQyDaZ.mjs +0 -171
  216. package/dist/db-update-CfayE8WE-CPhQyDaZ.mjs.map +0 -1
  217. package/dist/db-verify-BN7IrOAL-kEzRNJUl.mjs +0 -358
  218. package/dist/db-verify-BN7IrOAL-kEzRNJUl.mjs.map +0 -1
  219. package/dist/domain-type-generation-PkAb39ob-Ct8AGqow.d.mts.map +0 -1
  220. package/dist/domain-type-generation-bpSO3Y0L-jo2C7LlH.mjs.map +0 -1
  221. package/dist/errors-CXbGUWGu-BQi6YS-H.mjs.map +0 -1
  222. package/dist/exports-B3xY_FHp.mjs.map +0 -1
  223. package/dist/exports-BCLg4CiV-05kuwcb0.mjs +0 -160
  224. package/dist/exports-BCLg4CiV-05kuwcb0.mjs.map +0 -1
  225. package/dist/exports-BZLNbtkY.mjs.map +0 -1
  226. package/dist/exports-CqNUihkI.mjs +0 -276
  227. package/dist/exports-CqNUihkI.mjs.map +0 -1
  228. package/dist/format-Ca7dUE6B-BMFqrc6D.mjs +0 -110
  229. package/dist/format-Ca7dUE6B-BMFqrc6D.mjs.map +0 -1
  230. package/dist/framework-components-Bau7o1-J-DTp6AUoq.mjs +0 -60
  231. package/dist/framework-components-Bau7o1-J-DTp6AUoq.mjs.map +0 -1
  232. package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts +0 -35
  233. package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts.map +0 -1
  234. package/dist/import-roots-NDOIEDVj.mjs.map +0 -1
  235. package/dist/index-CnOyYxmv.d.mts.map +0 -1
  236. package/dist/index-mCsi_ND5.d.mts.map +0 -1
  237. package/dist/init-DC7zPKka-BSiUrPw3.mjs +0 -800
  238. package/dist/init-DC7zPKka-BSiUrPw3.mjs.map +0 -1
  239. package/dist/inspect-live-schema-BPHXdvqW-DrzL2ZkQ.mjs +0 -95
  240. package/dist/inspect-live-schema-BPHXdvqW-DrzL2ZkQ.mjs.map +0 -1
  241. package/dist/integrity-violation-to-check-failure-BmWMLAae-DqiC4_3p.mjs +0 -115
  242. package/dist/integrity-violation-to-check-failure-BmWMLAae-DqiC4_3p.mjs.map +0 -1
  243. package/dist/invariants-Bltd8DyA-Cg_1Lu0q.mjs +0 -53
  244. package/dist/invariants-Bltd8DyA-Cg_1Lu0q.mjs.map +0 -1
  245. package/dist/legend-DGv9e2_0-BtetgRz4.mjs +0 -22
  246. package/dist/legend-DGv9e2_0-BtetgRz4.mjs.map +0 -1
  247. package/dist/migrate-BXATUjYE-Do79Imf-.mjs +0 -343
  248. package/dist/migrate-BXATUjYE-Do79Imf-.mjs.map +0 -1
  249. package/dist/migrate-failure-D4NvkoCk-0bttmQs2.mjs +0 -96
  250. package/dist/migrate-failure-D4NvkoCk-0bttmQs2.mjs.map +0 -1
  251. package/dist/migrate-show-B8UJ9dmb-C4RTPbDk.d.mts +0 -63
  252. package/dist/migrate-show-B8UJ9dmb-C4RTPbDk.d.mts.map +0 -1
  253. package/dist/migrate-show-C_9xR4Qt-B-Y0PGKw.mjs +0 -199
  254. package/dist/migrate-show-C_9xR4Qt-B-Y0PGKw.mjs.map +0 -1
  255. package/dist/migration-check-Bbdw7t-r-C2VTMK61.mjs +0 -358
  256. package/dist/migration-check-Bbdw7t-r-C2VTMK61.mjs.map +0 -1
  257. package/dist/migration-check-DbHgYK7F-7mtYNVFu.mjs +0 -163
  258. package/dist/migration-check-DbHgYK7F-7mtYNVFu.mjs.map +0 -1
  259. package/dist/migration-command-scaffold-SzjR2naH-Yi3-rNfX.mjs +0 -121
  260. package/dist/migration-command-scaffold-SzjR2naH-Yi3-rNfX.mjs.map +0 -1
  261. package/dist/migration-graph-B8WxW_tm-qGNf7jQh.mjs +0 -35
  262. package/dist/migration-graph-B8WxW_tm-qGNf7jQh.mjs.map +0 -1
  263. package/dist/migration-graph-BOwu76mF-kOTWFvfV.mjs +0 -144
  264. package/dist/migration-graph-BOwu76mF-kOTWFvfV.mjs.map +0 -1
  265. package/dist/migration-graph-command-render-h0VdTkSM-C3rPZEw1.mjs +0 -2127
  266. package/dist/migration-graph-command-render-h0VdTkSM-C3rPZEw1.mjs.map +0 -1
  267. package/dist/migration-graph-sections-BBHPOFN--COKyUKQ4.mjs +0 -69
  268. package/dist/migration-graph-sections-BBHPOFN--COKyUKQ4.mjs.map +0 -1
  269. package/dist/migration-list-CKuYcMQq-CubZzE9i.mjs +0 -130
  270. package/dist/migration-list-CKuYcMQq-CubZzE9i.mjs.map +0 -1
  271. package/dist/migration-list-CY08bD8I-PoXuv94c.mjs +0 -102
  272. package/dist/migration-list-CY08bD8I-PoXuv94c.mjs.map +0 -1
  273. package/dist/migration-log-CUbGla-9-BLIrWjwN.mjs +0 -123
  274. package/dist/migration-log-CUbGla-9-BLIrWjwN.mjs.map +0 -1
  275. package/dist/migration-log-table-eES9lPjv-BCFm8qJr.mjs +0 -116
  276. package/dist/migration-log-table-eES9lPjv-BCFm8qJr.mjs.map +0 -1
  277. package/dist/migration-new-ChvZjf5X-BFhEM0BF.mjs +0 -70
  278. package/dist/migration-new-ChvZjf5X-BFhEM0BF.mjs.map +0 -1
  279. package/dist/migration-new-DXMvJdbB-BkrpDfcr.mjs +0 -130
  280. package/dist/migration-new-DXMvJdbB-BkrpDfcr.mjs.map +0 -1
  281. package/dist/migration-path-target-JDWqF9kj-B7zoMq6X.mjs +0 -38
  282. package/dist/migration-path-target-JDWqF9kj-B7zoMq6X.mjs.map +0 -1
  283. package/dist/migration-plan-BV9f5Xjq-DiyscOMc.d.mts +0 -164
  284. package/dist/migration-plan-BV9f5Xjq-DiyscOMc.d.mts.map +0 -1
  285. package/dist/migration-plan-Bz1hOTHF-CFCtPuOv.mjs +0 -192
  286. package/dist/migration-plan-Bz1hOTHF-CFCtPuOv.mjs.map +0 -1
  287. package/dist/migration-plan-Cfz0efEL-DMNFq5b2.mjs +0 -621
  288. package/dist/migration-plan-Cfz0efEL-DMNFq5b2.mjs.map +0 -1
  289. package/dist/migration-show-BGdR1xnT-Cg3M0FPh.mjs +0 -178
  290. package/dist/migration-show-BGdR1xnT-Cg3M0FPh.mjs.map +0 -1
  291. package/dist/migration-status-BIrAJ5af-D-_mMBUA.mjs +0 -427
  292. package/dist/migration-status-BIrAJ5af-D-_mMBUA.mjs.map +0 -1
  293. package/dist/output-DP3woAjV-BxCr9nHA.mjs.map +0 -1
  294. package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs +0 -43
  295. package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs.map +0 -1
  296. package/dist/project-import-root-B4nM-VWX-D__g0hTb.mjs +0 -101
  297. package/dist/project-import-root-B4nM-VWX-D__g0hTb.mjs.map +0 -1
  298. package/dist/redact-secrets-DuKoiMax-Cfe2XVhc.mjs +0 -1476
  299. package/dist/redact-secrets-DuKoiMax-Cfe2XVhc.mjs.map +0 -1
  300. package/dist/ref-4x6BGSsd-ClaoZIQh.mjs +0 -95
  301. package/dist/ref-4x6BGSsd-ClaoZIQh.mjs.map +0 -1
  302. package/dist/ref-WXLIR9Xm-12IUtoBU.mjs +0 -104
  303. package/dist/ref-WXLIR9Xm-12IUtoBU.mjs.map +0 -1
  304. package/dist/ref-advancement-DaZBzm7m-WoqnFAyr.mjs +0 -96
  305. package/dist/ref-advancement-DaZBzm7m-WoqnFAyr.mjs.map +0 -1
  306. package/dist/ref-resolution-BSN1amKm-C6-TTM2N.mjs +0 -16
  307. package/dist/ref-resolution-BSN1amKm-C6-TTM2N.mjs.map +0 -1
  308. package/dist/ref-resolution-COGOSL57.d.mts.map +0 -1
  309. package/dist/ref-resolution-sGcINe7o.mjs.map +0 -1
  310. package/dist/refs-WK86uYYp-B6EZkmmT.mjs.map +0 -1
  311. package/dist/refs-fQLFcMoq-aTBeUU9H.mjs +0 -47
  312. package/dist/refs-fQLFcMoq-aTBeUU9H.mjs.map +0 -1
  313. package/dist/schemas-BGgjiKV0-Rh8RlMCl.d.mts +0 -206
  314. package/dist/schemas-BGgjiKV0-Rh8RlMCl.d.mts.map +0 -1
  315. package/dist/schemas-CYSD83Cu-Bff4PPoi.mjs +0 -119
  316. package/dist/schemas-CYSD83Cu-Bff4PPoi.mjs.map +0 -1
  317. package/dist/shells-BenrJHp2.mjs.map +0 -1
  318. package/dist/shells-COHV_Ozf.d.mts.map +0 -1
  319. package/dist/spaces-BG2w0P8d.mjs.map +0 -1
  320. package/dist/telemetry-BD52LETE-Cqeb7ebh.mjs +0 -121
  321. package/dist/telemetry-BD52LETE-Cqeb7ebh.mjs.map +0 -1
  322. package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts +0 -133
  323. package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts.map +0 -1
  324. package/dist/terminal-ui-Cqz4LVL7-B0mcVdLy.mjs +0 -676
  325. package/dist/terminal-ui-Cqz4LVL7-B0mcVdLy.mjs.map +0 -1
  326. package/dist/verify-Cogr_Fj9-D3lCWA6t.mjs +0 -283
  327. package/dist/verify-Cogr_Fj9-D3lCWA6t.mjs.map +0 -1
@@ -1,276 +0,0 @@
1
- import { ifDefined } from "@prisma/orm-framework/utils/defined";
2
- import { dirname, join } from "pathe";
3
- import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
4
- import { randomUUID } from "node:crypto";
5
- import { homedir } from "node:os";
6
- import { fileURLToPath } from "node:url";
7
- import { fork } from "node:child_process";
8
- //#region ../../../1-framework/3-tooling/cli-telemetry/dist/exports/index.mjs
9
- /**
10
- * Production endpoint pinned to the deployed Prisma Compute backend.
11
- * Compiled as a build-time constant; not user-configurable.
12
- */
13
- const TELEMETRY_BACKEND_URL = "https://cmpbfbsdp09hr3jf7pojjs5qs.ewr.prisma.build";
14
- /**
15
- * Path within the backend that accepts telemetry POSTs.
16
- */
17
- const TELEMETRY_ENDPOINT_PATH = "/events";
18
- /**
19
- * Resolve the full POST URL the sender targets. The
20
- * `PRISMA_NEXT_TELEMETRY_ENDPOINT` env var is an integration-testing
21
- * affordance only — it lets the test suite spin up a mock HTTP server
22
- * on an ephemeral port and point the spawned sender at it. The override
23
- * is intentionally undocumented in user-facing material.
24
- *
25
- * Fail-open: a malformed override (typo in a dev shell, bad CI config)
26
- * silently falls back to the production backend rather than throwing,
27
- * matching the telemetry layer's broader silent-on-failure contract.
28
- */
29
- function resolveTelemetryEndpoint(env = process.env) {
30
- const override = env["PRISMA_NEXT_TELEMETRY_ENDPOINT"];
31
- const base = override !== void 0 && override.length > 0 ? override : TELEMETRY_BACKEND_URL;
32
- try {
33
- return new URL(TELEMETRY_ENDPOINT_PATH, base).toString();
34
- } catch {
35
- return new URL(TELEMETRY_ENDPOINT_PATH, TELEMETRY_BACKEND_URL).toString();
36
- }
37
- }
38
- /**
39
- * A `PRISMA_NEXT_DISABLE_TELEMETRY` value counts as an opt-out only if
40
- * it parses as a truthy string. The set-but-falsy spellings (`''`,
41
- * `'0'`, `'false'`) are intentionally treated as not-set so a parent
42
- * shell that exports the variable to a benign value doesn't accidentally
43
- * disable telemetry for child processes.
44
- */
45
- function isTruthyOptOut(raw) {
46
- if (raw === void 0) return false;
47
- const normalised = raw.trim().toLowerCase();
48
- if (normalised === "") return false;
49
- if (normalised === "0") return false;
50
- if (normalised === "false") return false;
51
- return true;
52
- }
53
- /**
54
- * Pure-function resolution of the gating decision. Same input → same
55
- * output; no I/O. The caller is responsible for reading the env and the
56
- * user config.
57
- *
58
- * Decision order:
59
- * 1. Env-var override (`PRISMA_NEXT_DISABLE_TELEMETRY` truthy, or
60
- * `DO_NOT_TRACK=1`) → disabled. The env check runs first, so an
61
- * opt-out env var wins over any stored or unset preference.
62
- * 2. Stored `enableTelemetry === false` → disabled (`stored-opt-out`).
63
- * 3. Stored `enableTelemetry === true` → enabled.
64
- * 4. Stored `enableTelemetry === undefined` (file missing, or field
65
- * not set) → ENABLED. This is the opt-out default: absence of an
66
- * explicit choice means telemetry is on. This is the load-bearing,
67
- * counter-intuitive branch — do not "fix" it to default-off.
68
- *
69
- * Telemetry is disabled only when an env override is active or
70
- * `enableTelemetry` is explicitly `false`.
71
- */
72
- function resolveGating(inputs) {
73
- if (isTruthyOptOut(inputs.env["PRISMA_NEXT_DISABLE_TELEMETRY"]) || inputs.env["DO_NOT_TRACK"] === "1") return {
74
- enabled: false,
75
- reason: "env-override"
76
- };
77
- if (inputs.config.enableTelemetry === false) return {
78
- enabled: false,
79
- reason: "stored-opt-out"
80
- };
81
- return { enabled: true };
82
- }
83
- function flagNameFromLongName(longName) {
84
- if (longName === null || !longName.startsWith("--")) return null;
85
- const withoutPrefix = longName.slice(2);
86
- return withoutPrefix.length > 0 ? withoutPrefix : null;
87
- }
88
- /**
89
- * Project commander's parsed result into the wire-shape command and
90
- * flag-name list. Pure; the only allowed inputs are the fields of
91
- * `CommanderResultShape`.
92
- *
93
- * Sanitiser contract — no flag values, no positionals, no raw argv:
94
- * - Drop the root program name (`commandPath[0]`); the wire ships
95
- * `migration new`, not `prisma-next migration new`.
96
- * - Emit only options whose Commander source is `cli`.
97
- * - Emit the long user-facing flag spelling without the `--` prefix;
98
- * never emit Commander's camelCase attribute names.
99
- * - `positionalArgs` is accepted but never consumed; the field exists
100
- * in the input type to make it obvious at the call site that
101
- * positionals were deliberately excluded.
102
- */
103
- function sanitizeCommanderResult(input) {
104
- return {
105
- command: input.commandPath.slice(1).join(" "),
106
- flags: input.options.flatMap((option) => {
107
- if (option.source !== "cli") return [];
108
- const flagName = flagNameFromLongName(option.longName);
109
- return flagName === null ? [] : [flagName];
110
- })
111
- };
112
- }
113
- const APP_DIR = "prisma-next";
114
- const FILE_NAME = "config.json";
115
- /**
116
- * Resolves the user-level config directory:
117
- * - Windows: `%APPDATA%\prisma-next\` (fallback: `%USERPROFILE%\AppData\Roaming\prisma-next\`).
118
- * - Unix (incl. macOS): `$XDG_CONFIG_HOME/prisma-next/` if set, else
119
- * `$HOME/.config/prisma-next/` per the XDG Base Directory Specification.
120
- *
121
- * The spec deliberately picks XDG over the macOS-native
122
- * `~/Library/Preferences/` convention so the path resolution is
123
- * test-overridable via `XDG_CONFIG_HOME` and matches the documented
124
- * behaviour on all *nix platforms. We intentionally do not use
125
- * `env-paths`: its macOS choice of `~/Library/Preferences` is for
126
- * OS-managed plist preferences, not arbitrary JSON files. Apple documents
127
- * that apps access that directory through system APIs such as
128
- * `NSUserDefaults`, while cross-platform CLI and developer tools conventionally
129
- * use `~/.config` on macOS too:
130
- * https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/MacOSXDirectories/MacOSXDirectories.html
131
- */
132
- function configDir() {
133
- if (process.platform === "win32") {
134
- const appData = process.env["APPDATA"];
135
- if (appData !== void 0 && appData.length > 0) return join(appData, APP_DIR);
136
- return join(homedir(), "AppData", "Roaming", APP_DIR);
137
- }
138
- const xdg = process.env["XDG_CONFIG_HOME"];
139
- if (xdg !== void 0 && xdg.length > 0) return join(xdg, APP_DIR);
140
- return join(homedir(), ".config", APP_DIR);
141
- }
142
- /**
143
- * Path to the user-level config file. Resolved per call so test
144
- * harnesses can mutate `$XDG_CONFIG_HOME` between cases.
145
- */
146
- function userConfigPath() {
147
- return join(configDir(), FILE_NAME);
148
- }
149
- /**
150
- * Reads the user-level config. File-missing, unreadable, or malformed →
151
- * `{}` (the absence of consent is the same answer in every error mode).
152
- * Unknown fields from a future client are passed through verbatim.
153
- */
154
- function readUserConfig() {
155
- const path = userConfigPath();
156
- if (!existsSync(path)) return {};
157
- try {
158
- const raw = readFileSync(path, "utf-8");
159
- const parsed = JSON.parse(raw);
160
- if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
161
- return {};
162
- } catch {
163
- return {};
164
- }
165
- }
166
- /**
167
- * Merges `partial` into the current config and writes the result
168
- * atomically (temp file + rename) so a crash mid-write never leaves a
169
- * half-baked file readable on disk. Unknown fields already on disk are
170
- * preserved.
171
- *
172
- * When `partial.enableTelemetry === true` and no `installationId` is
173
- * stored yet, generates a v4 random UUID and persists both fields in
174
- * the same write. An existing `installationId` is never rotated. This is
175
- * the *explicit-consent* mint path: a `false` answer
176
- * (`writeUserConfig({ enableTelemetry: false })`) writes no id, and a bare
177
- * `writeUserConfig({ installationId })` mints nothing extra. The default-on
178
- * first-send path mints its id separately via {@link ensureInstallationId},
179
- * which records no consent answer.
180
- */
181
- function writeUserConfig(partial) {
182
- const merged = {
183
- ...readUserConfig(),
184
- ...partial
185
- };
186
- if (partial.enableTelemetry === true && merged["installationId"] === void 0) merged["installationId"] = randomUUID();
187
- const path = userConfigPath();
188
- const dir = dirname(path);
189
- if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
190
- const tmpPath = `${path}.${process.pid}.tmp`;
191
- writeFileSync(tmpPath, `${JSON.stringify(merged, null, 2)}\n`, "utf-8");
192
- renameSync(tmpPath, path);
193
- }
194
- /**
195
- * Returns the stored `installationId`, minting and persisting a fresh v4
196
- * UUID when none exists yet. Crucially, this persists *only* the id —
197
- * `enableTelemetry` is left untouched (stays `undefined` on a default-on
198
- * first run), so the interactive `init` consent prompt is not wrongly
199
- * suppressed and no explicit consent the user never gave is recorded.
200
- *
201
- * Used by the default-on first-run fire path: the gate has already
202
- * resolved enabled, so this only ever runs when telemetry is on.
203
- */
204
- function ensureInstallationId() {
205
- const existing = readUserConfig().installationId;
206
- if (typeof existing === "string" && existing.length > 0) return existing;
207
- const installationId = randomUUID();
208
- writeUserConfig({ installationId });
209
- return installationId;
210
- }
211
- function runTelemetry(inputs) {
212
- const env = inputs.env ?? process.env;
213
- if (inputs.isCI) return {
214
- spawned: false,
215
- reason: "ci"
216
- };
217
- const config = inputs.userConfig ?? readUserConfig();
218
- if (!resolveGating({
219
- env,
220
- config
221
- }).enabled) return {
222
- spawned: false,
223
- reason: "gated-off"
224
- };
225
- const sanitised = sanitizeCommanderResult(inputs.command);
226
- if (typeof config.installationId !== "string" || config.installationId.length === 0) return {
227
- spawned: false,
228
- reason: "gated-off"
229
- };
230
- const payload = {
231
- installationId: config.installationId,
232
- version: inputs.version,
233
- command: sanitised.command,
234
- flags: sanitised.flags,
235
- projectRoot: inputs.projectRoot,
236
- endpoint: resolveTelemetryEndpoint(env),
237
- ...ifDefined("databaseTarget", inputs.databaseTarget)
238
- };
239
- try {
240
- const child = fork(inputs.senderPath, [], {
241
- detached: true,
242
- stdio: [
243
- "pipe",
244
- "ignore",
245
- "ignore",
246
- "ipc"
247
- ]
248
- });
249
- child.send(payload, (err) => {
250
- if (err !== null && process.env["PRISMA_NEXT_DEBUG"] === "1") process.stderr.write(`[cli-telemetry] parent send error: ${String(err)}\n`);
251
- });
252
- child.disconnect();
253
- child.unref();
254
- return { spawned: true };
255
- } catch (err) {
256
- if (process.env["PRISMA_NEXT_DEBUG"] === "1") process.stderr.write(`[cli-telemetry] parent fork failed: ${String(err)}\n`);
257
- return {
258
- spawned: false,
259
- reason: "fork-failed"
260
- };
261
- }
262
- }
263
- /**
264
- * Resolve the path to the compiled sender entry relative to a consumer
265
- * that has captured its own `import.meta.url`. The CLI's
266
- * `tsdown`-emitted entry sits at `<package>/dist/sender.mjs`; the
267
- * consumer asks `senderModuleUrl()` and forwards the result to
268
- * `runTelemetry({ senderPath })`.
269
- */
270
- function senderModuleUrl(importMetaUrl) {
271
- return fileURLToPath(new URL("./sender.mjs", importMetaUrl));
272
- }
273
- //#endregion
274
- export { resolveGating as a, sanitizeCommanderResult as c, writeUserConfig as d, readUserConfig as i, senderModuleUrl as l, TELEMETRY_ENDPOINT_PATH as n, resolveTelemetryEndpoint as o, ensureInstallationId as r, runTelemetry as s, TELEMETRY_BACKEND_URL as t, userConfigPath as u };
275
-
276
- //# sourceMappingURL=exports-CqNUihkI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exports-CqNUihkI.mjs","names":[],"sources":["../../../../1-framework/3-tooling/cli-telemetry/dist/exports/index.mjs"],"sourcesContent":["import { n as loadProjectConfig } from \"../enrich-BKPD0fEi.mjs\";\nimport { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"pathe\";\nimport { fork } from \"node:child_process\";\nimport { fileURLToPath } from \"node:url\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { randomUUID } from \"node:crypto\";\nimport { homedir } from \"node:os\";\n//#region src/endpoint.ts\n/**\n* Production endpoint pinned to the deployed Prisma Compute backend.\n* Compiled as a build-time constant; not user-configurable.\n*/\nconst TELEMETRY_BACKEND_URL = \"https://cmpbfbsdp09hr3jf7pojjs5qs.ewr.prisma.build\";\n/**\n* Path within the backend that accepts telemetry POSTs.\n*/\nconst TELEMETRY_ENDPOINT_PATH = \"/events\";\n/**\n* Resolve the full POST URL the sender targets. The\n* `PRISMA_NEXT_TELEMETRY_ENDPOINT` env var is an integration-testing\n* affordance only — it lets the test suite spin up a mock HTTP server\n* on an ephemeral port and point the spawned sender at it. The override\n* is intentionally undocumented in user-facing material.\n*\n* Fail-open: a malformed override (typo in a dev shell, bad CI config)\n* silently falls back to the production backend rather than throwing,\n* matching the telemetry layer's broader silent-on-failure contract.\n*/\nfunction resolveTelemetryEndpoint(env = process.env) {\n\tconst override = env[\"PRISMA_NEXT_TELEMETRY_ENDPOINT\"];\n\tconst base = override !== void 0 && override.length > 0 ? override : TELEMETRY_BACKEND_URL;\n\ttry {\n\t\treturn new URL(TELEMETRY_ENDPOINT_PATH, base).toString();\n\t} catch {\n\t\treturn new URL(TELEMETRY_ENDPOINT_PATH, TELEMETRY_BACKEND_URL).toString();\n\t}\n}\n//#endregion\n//#region src/gating.ts\n/**\n* A `PRISMA_NEXT_DISABLE_TELEMETRY` value counts as an opt-out only if\n* it parses as a truthy string. The set-but-falsy spellings (`''`,\n* `'0'`, `'false'`) are intentionally treated as not-set so a parent\n* shell that exports the variable to a benign value doesn't accidentally\n* disable telemetry for child processes.\n*/\nfunction isTruthyOptOut(raw) {\n\tif (raw === void 0) return false;\n\tconst normalised = raw.trim().toLowerCase();\n\tif (normalised === \"\") return false;\n\tif (normalised === \"0\") return false;\n\tif (normalised === \"false\") return false;\n\treturn true;\n}\n/**\n* Pure-function resolution of the gating decision. Same input → same\n* output; no I/O. The caller is responsible for reading the env and the\n* user config.\n*\n* Decision order:\n* 1. Env-var override (`PRISMA_NEXT_DISABLE_TELEMETRY` truthy, or\n* `DO_NOT_TRACK=1`) → disabled. The env check runs first, so an\n* opt-out env var wins over any stored or unset preference.\n* 2. Stored `enableTelemetry === false` → disabled (`stored-opt-out`).\n* 3. Stored `enableTelemetry === true` → enabled.\n* 4. Stored `enableTelemetry === undefined` (file missing, or field\n* not set) → ENABLED. This is the opt-out default: absence of an\n* explicit choice means telemetry is on. This is the load-bearing,\n* counter-intuitive branch — do not \"fix\" it to default-off.\n*\n* Telemetry is disabled only when an env override is active or\n* `enableTelemetry` is explicitly `false`.\n*/\nfunction resolveGating(inputs) {\n\tif (isTruthyOptOut(inputs.env[\"PRISMA_NEXT_DISABLE_TELEMETRY\"]) || inputs.env[\"DO_NOT_TRACK\"] === \"1\") return {\n\t\tenabled: false,\n\t\treason: \"env-override\"\n\t};\n\tif (inputs.config.enableTelemetry === false) return {\n\t\tenabled: false,\n\t\treason: \"stored-opt-out\"\n\t};\n\treturn { enabled: true };\n}\n//#endregion\n//#region src/sanitize.ts\nfunction flagNameFromLongName(longName) {\n\tif (longName === null || !longName.startsWith(\"--\")) return null;\n\tconst withoutPrefix = longName.slice(2);\n\treturn withoutPrefix.length > 0 ? withoutPrefix : null;\n}\n/**\n* Project commander's parsed result into the wire-shape command and\n* flag-name list. Pure; the only allowed inputs are the fields of\n* `CommanderResultShape`.\n*\n* Sanitiser contract — no flag values, no positionals, no raw argv:\n* - Drop the root program name (`commandPath[0]`); the wire ships\n* `migration new`, not `prisma-next migration new`.\n* - Emit only options whose Commander source is `cli`.\n* - Emit the long user-facing flag spelling without the `--` prefix;\n* never emit Commander's camelCase attribute names.\n* - `positionalArgs` is accepted but never consumed; the field exists\n* in the input type to make it obvious at the call site that\n* positionals were deliberately excluded.\n*/\nfunction sanitizeCommanderResult(input) {\n\treturn {\n\t\tcommand: input.commandPath.slice(1).join(\" \"),\n\t\tflags: input.options.flatMap((option) => {\n\t\t\tif (option.source !== \"cli\") return [];\n\t\t\tconst flagName = flagNameFromLongName(option.longName);\n\t\t\treturn flagName === null ? [] : [flagName];\n\t\t})\n\t};\n}\n//#endregion\n//#region src/user-config.ts\nconst APP_DIR = \"prisma-next\";\nconst FILE_NAME = \"config.json\";\n/**\n* Resolves the user-level config directory:\n* - Windows: `%APPDATA%\\prisma-next\\` (fallback: `%USERPROFILE%\\AppData\\Roaming\\prisma-next\\`).\n* - Unix (incl. macOS): `$XDG_CONFIG_HOME/prisma-next/` if set, else\n* `$HOME/.config/prisma-next/` per the XDG Base Directory Specification.\n*\n* The spec deliberately picks XDG over the macOS-native\n* `~/Library/Preferences/` convention so the path resolution is\n* test-overridable via `XDG_CONFIG_HOME` and matches the documented\n* behaviour on all *nix platforms. We intentionally do not use\n* `env-paths`: its macOS choice of `~/Library/Preferences` is for\n* OS-managed plist preferences, not arbitrary JSON files. Apple documents\n* that apps access that directory through system APIs such as\n* `NSUserDefaults`, while cross-platform CLI and developer tools conventionally\n* use `~/.config` on macOS too:\n* https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/MacOSXDirectories/MacOSXDirectories.html\n*/\nfunction configDir() {\n\tif (process.platform === \"win32\") {\n\t\tconst appData = process.env[\"APPDATA\"];\n\t\tif (appData !== void 0 && appData.length > 0) return join(appData, APP_DIR);\n\t\treturn join(homedir(), \"AppData\", \"Roaming\", APP_DIR);\n\t}\n\tconst xdg = process.env[\"XDG_CONFIG_HOME\"];\n\tif (xdg !== void 0 && xdg.length > 0) return join(xdg, APP_DIR);\n\treturn join(homedir(), \".config\", APP_DIR);\n}\n/**\n* Path to the user-level config file. Resolved per call so test\n* harnesses can mutate `$XDG_CONFIG_HOME` between cases.\n*/\nfunction userConfigPath() {\n\treturn join(configDir(), FILE_NAME);\n}\n/**\n* Reads the user-level config. File-missing, unreadable, or malformed →\n* `{}` (the absence of consent is the same answer in every error mode).\n* Unknown fields from a future client are passed through verbatim.\n*/\nfunction readUserConfig() {\n\tconst path = userConfigPath();\n\tif (!existsSync(path)) return {};\n\ttry {\n\t\tconst raw = readFileSync(path, \"utf-8\");\n\t\tconst parsed = JSON.parse(raw);\n\t\tif (parsed !== null && typeof parsed === \"object\" && !Array.isArray(parsed)) return parsed;\n\t\treturn {};\n\t} catch {\n\t\treturn {};\n\t}\n}\n/**\n* Merges `partial` into the current config and writes the result\n* atomically (temp file + rename) so a crash mid-write never leaves a\n* half-baked file readable on disk. Unknown fields already on disk are\n* preserved.\n*\n* When `partial.enableTelemetry === true` and no `installationId` is\n* stored yet, generates a v4 random UUID and persists both fields in\n* the same write. An existing `installationId` is never rotated. This is\n* the *explicit-consent* mint path: a `false` answer\n* (`writeUserConfig({ enableTelemetry: false })`) writes no id, and a bare\n* `writeUserConfig({ installationId })` mints nothing extra. The default-on\n* first-send path mints its id separately via {@link ensureInstallationId},\n* which records no consent answer.\n*/\nfunction writeUserConfig(partial) {\n\tconst merged = {\n\t\t...readUserConfig(),\n\t\t...partial\n\t};\n\tif (partial.enableTelemetry === true && merged[\"installationId\"] === void 0) merged[\"installationId\"] = randomUUID();\n\tconst path = userConfigPath();\n\tconst dir = dirname(path);\n\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\tconst tmpPath = `${path}.${process.pid}.tmp`;\n\twriteFileSync(tmpPath, `${JSON.stringify(merged, null, 2)}\\n`, \"utf-8\");\n\trenameSync(tmpPath, path);\n}\n/**\n* Returns the stored `installationId`, minting and persisting a fresh v4\n* UUID when none exists yet. Crucially, this persists *only* the id —\n* `enableTelemetry` is left untouched (stays `undefined` on a default-on\n* first run), so the interactive `init` consent prompt is not wrongly\n* suppressed and no explicit consent the user never gave is recorded.\n*\n* Used by the default-on first-run fire path: the gate has already\n* resolved enabled, so this only ever runs when telemetry is on.\n*/\nfunction ensureInstallationId() {\n\tconst existing = readUserConfig().installationId;\n\tif (typeof existing === \"string\" && existing.length > 0) return existing;\n\tconst installationId = randomUUID();\n\twriteUserConfig({ installationId });\n\treturn installationId;\n}\n//#endregion\n//#region src/spawn.ts\nfunction runTelemetry(inputs) {\n\tconst env = inputs.env ?? process.env;\n\tif (inputs.isCI) return {\n\t\tspawned: false,\n\t\treason: \"ci\"\n\t};\n\tconst config = inputs.userConfig ?? readUserConfig();\n\tif (!resolveGating({\n\t\tenv,\n\t\tconfig\n\t}).enabled) return {\n\t\tspawned: false,\n\t\treason: \"gated-off\"\n\t};\n\tconst sanitised = sanitizeCommanderResult(inputs.command);\n\tif (typeof config.installationId !== \"string\" || config.installationId.length === 0) return {\n\t\tspawned: false,\n\t\treason: \"gated-off\"\n\t};\n\tconst payload = {\n\t\tinstallationId: config.installationId,\n\t\tversion: inputs.version,\n\t\tcommand: sanitised.command,\n\t\tflags: sanitised.flags,\n\t\tprojectRoot: inputs.projectRoot,\n\t\tendpoint: resolveTelemetryEndpoint(env),\n\t\t...ifDefined(\"databaseTarget\", inputs.databaseTarget)\n\t};\n\ttry {\n\t\tconst child = fork(inputs.senderPath, [], {\n\t\t\tdetached: true,\n\t\t\tstdio: [\n\t\t\t\t\"pipe\",\n\t\t\t\t\"ignore\",\n\t\t\t\t\"ignore\",\n\t\t\t\t\"ipc\"\n\t\t\t]\n\t\t});\n\t\tchild.send(payload, (err) => {\n\t\t\tif (err !== null && process.env[\"PRISMA_NEXT_DEBUG\"] === \"1\") process.stderr.write(`[cli-telemetry] parent send error: ${String(err)}\\n`);\n\t\t});\n\t\tchild.disconnect();\n\t\tchild.unref();\n\t\treturn { spawned: true };\n\t} catch (err) {\n\t\tif (process.env[\"PRISMA_NEXT_DEBUG\"] === \"1\") process.stderr.write(`[cli-telemetry] parent fork failed: ${String(err)}\\n`);\n\t\treturn {\n\t\t\tspawned: false,\n\t\t\treason: \"fork-failed\"\n\t\t};\n\t}\n}\n/**\n* Resolve the path to the compiled sender entry relative to a consumer\n* that has captured its own `import.meta.url`. The CLI's\n* `tsdown`-emitted entry sits at `<package>/dist/sender.mjs`; the\n* consumer asks `senderModuleUrl()` and forwards the result to\n* `runTelemetry({ senderPath })`.\n*/\nfunction senderModuleUrl(importMetaUrl) {\n\treturn fileURLToPath(new URL(\"./sender.mjs\", importMetaUrl));\n}\n//#endregion\nexport { TELEMETRY_BACKEND_URL, TELEMETRY_ENDPOINT_PATH, ensureInstallationId, loadProjectConfig, readUserConfig, resolveGating, resolveTelemetryEndpoint, runTelemetry, sanitizeCommanderResult, senderModuleUrl, userConfigPath, writeUserConfig };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- import { o as loadConfigForSections } from "./exports-BZLNbtkY.mjs";
2
- import { A as errorRuntime$1, F as errorUnexpected } from "./cli-errors-B4zTLaqQ-CXgjO9t4.mjs";
3
- import { r as createTerminalUI } from "./terminal-ui-Cqz4LVL7-B0mcVdLy.mjs";
4
- import { b as setCommandExamples, m as parseGlobalFlagsOrExit, s as formatStyledHeader, t as addGlobalOptions, u as handleResult, y as setCommandDescriptions } from "./command-helpers-BCgwcqTe-lNCtppzM.mjs";
5
- import { relative, resolve } from "pathe";
6
- import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
7
- import { readFile, writeFile } from "node:fs/promises";
8
- import { notOk, ok } from "@prisma/orm-framework/utils/result";
9
- import { Command } from "commander";
10
- import { EOL } from "node:os";
11
- import { format } from "@prisma/orm-framework/psl-parser/format";
12
- //#region ../../../1-framework/3-tooling/cli/dist/format-DrW250a2.mjs
13
- function resolveNewline(formatterNewline, eol) {
14
- if (formatterNewline !== void 0) return formatterNewline;
15
- return eol === "\r\n" ? "CRLF" : "LF";
16
- }
17
- async function executeFormat(options) {
18
- const eol = options.eol ?? EOL;
19
- const config = options.config;
20
- const source = config.contract?.source;
21
- if (source?.format !== "psl") return ok({ formatted: false });
22
- const declaredPath = source.inputs?.[0];
23
- if (declaredPath === void 0) return ok({ formatted: false });
24
- const inputPath = resolve(options.cwd, declaredPath);
25
- let contents;
26
- try {
27
- contents = await readFile(inputPath, "utf-8");
28
- } catch (error) {
29
- return notOk(errorRuntime$1("CONTRACT.SOURCE_LOAD_FAILED", "Failed to read contract source file", {
30
- why: error instanceof Error ? error.message : String(error),
31
- fix: `Check that ${inputPath} exists and is readable.`,
32
- cause: error
33
- }));
34
- }
35
- const formatOptions = {
36
- indent: config.formatter?.indent ?? 2,
37
- newline: resolveNewline(config.formatter?.newline, eol)
38
- };
39
- let formatted;
40
- try {
41
- formatted = format(contents, formatOptions);
42
- } catch (error) {
43
- if (isStructuredError(error) && error.code === "PSL.PARSE_FAILED") return notOk(errorRuntime$1("PSL.PARSE_FAILED", "Cannot format PSL with parse errors", {
44
- why: error.message,
45
- fix: "Fix the parse errors in your schema and try again.",
46
- meta: { diagnostics: error.meta?.["diagnostics"] },
47
- cause: error
48
- }));
49
- return notOk(errorUnexpected(error instanceof Error ? error.message : String(error)));
50
- }
51
- try {
52
- await writeFile(inputPath, formatted, "utf-8");
53
- } catch (error) {
54
- return notOk(errorRuntime$1("CLI.FILE_WRITE_FAILED", "Failed to write formatted contract source file", {
55
- why: error instanceof Error ? error.message : String(error),
56
- fix: `Check that ${inputPath} is writable.`,
57
- cause: error
58
- }));
59
- }
60
- return ok({
61
- formatted: true,
62
- path: inputPath
63
- });
64
- }
65
- //#endregion
66
- //#region ../../../1-framework/3-tooling/cli/dist/format-Ca7dUE6B.mjs
67
- async function runFormat(options) {
68
- const configResult = await loadConfigForSections(options.config, ["contract", "formatter"]);
69
- if (!configResult.ok) return configResult;
70
- return executeFormat({
71
- config: configResult.value,
72
- cwd: process.cwd()
73
- });
74
- }
75
- function createFormatCommand() {
76
- const command = new Command("format");
77
- setCommandDescriptions(command, "Format your PSL contract source", "Formats the Prisma schema (PSL) contract source declared in your config\n(contract.source.inputs[0]) in place. Only runs when contract.source.format\nis 'psl'; a TypeScript or unset source is left untouched. Indent and newline are\nread from the optional formatter config section, defaulting to two spaces and the\nsystem newline.");
78
- setCommandExamples(command, ["prisma-next format", "prisma-next format --config ./custom-config.ts"]);
79
- addGlobalOptions(command).option("--config <path>", "Path to prisma-next.config.ts").action(async (options) => {
80
- const flags = parseGlobalFlagsOrExit(options);
81
- const ui = createTerminalUI(flags);
82
- if (!flags.json && !flags.quiet) {
83
- const displayConfigPath = options.config ? relative(process.cwd(), resolve(options.config)) : "prisma-next.config.ts";
84
- ui.stderr(formatStyledHeader({
85
- command: "format",
86
- description: "Format your PSL contract source",
87
- details: [{
88
- label: "config",
89
- value: displayConfigPath
90
- }],
91
- flags
92
- }));
93
- }
94
- const exitCode = handleResult(await runFormat(options), flags, ui, (value) => {
95
- if (flags.json) {
96
- ui.output(JSON.stringify(value));
97
- return;
98
- }
99
- if (flags.quiet) return;
100
- if (value.formatted) ui.success(`Formatted ${relative(process.cwd(), value.path ?? "")}`);
101
- else ui.info("Nothing to format (contract source is not PSL).");
102
- });
103
- process.exit(exitCode);
104
- });
105
- return command;
106
- }
107
- //#endregion
108
- export { executeFormat as n, createFormatCommand as t };
109
-
110
- //# sourceMappingURL=format-Ca7dUE6B-BMFqrc6D.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-Ca7dUE6B-BMFqrc6D.mjs","names":["errorRuntime"],"sources":["../../../../1-framework/3-tooling/cli/dist/format-DrW250a2.mjs","../../../../1-framework/3-tooling/cli/dist/format-Ca7dUE6B.mjs"],"sourcesContent":["import { P as errorUnexpected, k as errorRuntime } from \"./cli-errors-B4zTLaqQ.mjs\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { resolve } from \"pathe\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\nimport { EOL } from \"node:os\";\nimport { format } from \"@internal/psl-parser/format\";\n//#region src/control-api/operations/format.ts\nfunction resolveNewline(formatterNewline, eol) {\n\tif (formatterNewline !== void 0) return formatterNewline;\n\treturn eol === \"\\r\\n\" ? \"CRLF\" : \"LF\";\n}\nasync function executeFormat(options) {\n\tconst eol = options.eol ?? EOL;\n\tconst config = options.config;\n\tconst source = config.contract?.source;\n\tif (source?.format !== \"psl\") return ok({ formatted: false });\n\tconst declaredPath = source.inputs?.[0];\n\tif (declaredPath === void 0) return ok({ formatted: false });\n\tconst inputPath = resolve(options.cwd, declaredPath);\n\tlet contents;\n\ttry {\n\t\tcontents = await readFile(inputPath, \"utf-8\");\n\t} catch (error) {\n\t\treturn notOk(errorRuntime(\"CONTRACT.SOURCE_LOAD_FAILED\", \"Failed to read contract source file\", {\n\t\t\twhy: error instanceof Error ? error.message : String(error),\n\t\t\tfix: `Check that ${inputPath} exists and is readable.`,\n\t\t\tcause: error\n\t\t}));\n\t}\n\tconst formatOptions = {\n\t\tindent: config.formatter?.indent ?? 2,\n\t\tnewline: resolveNewline(config.formatter?.newline, eol)\n\t};\n\tlet formatted;\n\ttry {\n\t\tformatted = format(contents, formatOptions);\n\t} catch (error) {\n\t\tif (isStructuredError(error) && error.code === \"PSL.PARSE_FAILED\") return notOk(errorRuntime(\"PSL.PARSE_FAILED\", \"Cannot format PSL with parse errors\", {\n\t\t\twhy: error.message,\n\t\t\tfix: \"Fix the parse errors in your schema and try again.\",\n\t\t\tmeta: { diagnostics: error.meta?.[\"diagnostics\"] },\n\t\t\tcause: error\n\t\t}));\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error)));\n\t}\n\ttry {\n\t\tawait writeFile(inputPath, formatted, \"utf-8\");\n\t} catch (error) {\n\t\treturn notOk(errorRuntime(\"CLI.FILE_WRITE_FAILED\", \"Failed to write formatted contract source file\", {\n\t\t\twhy: error instanceof Error ? error.message : String(error),\n\t\t\tfix: `Check that ${inputPath} is writable.`,\n\t\t\tcause: error\n\t\t}));\n\t}\n\treturn ok({\n\t\tformatted: true,\n\t\tpath: inputPath\n\t});\n}\n//#endregion\nexport { executeFormat as t };\n\n//# sourceMappingURL=format-DrW250a2.mjs.map","import { t as createTerminalUI } from \"./terminal-ui-Cqz4LVL7.mjs\";\nimport { S as formatStyledHeader, _ as parseGlobalFlagsOrExit, d as setCommandExamples, t as addGlobalOptions, u as setCommandDescriptions, v as handleResult } from \"./command-helpers-BCgwcqTe.mjs\";\nimport { t as executeFormat } from \"./format-DrW250a2.mjs\";\nimport { Command } from \"commander\";\nimport { loadConfigForSections } from \"@internal/config-loader\";\nimport { relative, resolve } from \"pathe\";\n//#region src/commands/format.ts\nasync function runFormat(options) {\n\tconst configResult = await loadConfigForSections(options.config, [\"contract\", \"formatter\"]);\n\tif (!configResult.ok) return configResult;\n\treturn executeFormat({\n\t\tconfig: configResult.value,\n\t\tcwd: process.cwd()\n\t});\n}\nfunction createFormatCommand() {\n\tconst command = new Command(\"format\");\n\tsetCommandDescriptions(command, \"Format your PSL contract source\", \"Formats the Prisma schema (PSL) contract source declared in your config\\n(contract.source.inputs[0]) in place. Only runs when contract.source.format\\nis 'psl'; a TypeScript or unset source is left untouched. Indent and newline are\\nread from the optional formatter config section, defaulting to two spaces and the\\nsystem newline.\");\n\tsetCommandExamples(command, [\"prisma-next format\", \"prisma-next format --config ./custom-config.ts\"]);\n\taddGlobalOptions(command).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\tif (!flags.json && !flags.quiet) {\n\t\t\tconst displayConfigPath = options.config ? relative(process.cwd(), resolve(options.config)) : \"prisma-next.config.ts\";\n\t\t\tui.stderr(formatStyledHeader({\n\t\t\t\tcommand: \"format\",\n\t\t\t\tdescription: \"Format your PSL contract source\",\n\t\t\t\tdetails: [{\n\t\t\t\t\tlabel: \"config\",\n\t\t\t\t\tvalue: displayConfigPath\n\t\t\t\t}],\n\t\t\t\tflags\n\t\t\t}));\n\t\t}\n\t\tconst exitCode = handleResult(await runFormat(options), flags, ui, (value) => {\n\t\t\tif (flags.json) {\n\t\t\t\tui.output(JSON.stringify(value));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (flags.quiet) return;\n\t\t\tif (value.formatted) ui.success(`Formatted ${relative(process.cwd(), value.path ?? \"\")}`);\n\t\t\telse ui.info(\"Nothing to format (contract source is not PSL).\");\n\t\t});\n\t\tprocess.exit(exitCode);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createFormatCommand as t };\n\n//# sourceMappingURL=format-Ca7dUE6B.mjs.map"],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { a as errorConfigValidation } from "./cli-errors-B4zTLaqQ-CXgjO9t4.mjs";
2
- import "@prisma/orm-framework/components/components";
3
- //#region ../../../1-framework/3-tooling/cli/dist/framework-components-Bau7o1-J.mjs
4
- /**
5
- * Asserts that all framework components are compatible with the expected family and target.
6
- *
7
- * This function validates that each component in the framework components array:
8
- * - Has kind 'target', 'adapter', 'extension', or 'driver'
9
- * - Has familyId matching expectedFamilyId
10
- * - Has targetId matching expectedTargetId
11
- *
12
- * This validation happens at the CLI composition boundary, before passing components
13
- * to typed planner/runner instances. It fills the gap between runtime validation
14
- * (via the config loader's `collectConfigIssues` diagnostics) and compile-time
15
- * type enforcement.
16
- *
17
- * @param expectedFamilyId - The expected family ID (e.g., 'sql')
18
- * @param expectedTargetId - The expected target ID (e.g., 'postgres')
19
- * @param frameworkComponents - Array of framework components to validate
20
- * @returns The same array typed as TargetBoundComponentDescriptor
21
- * @throws CliStructuredError if any component is incompatible
22
- *
23
- * @example
24
- * ```ts
25
- * const configResult = await loadConfigForSections(undefined, ['family', 'target', 'adapter', 'extensions']);
26
- * const config = configResult.assertOk();
27
- * const frameworkComponents = [config.target, config.adapter, ...(config.extensions ?? [])];
28
- *
29
- * // Validate and type-narrow components before passing to planner
30
- * const typedComponents = assertFrameworkComponentsCompatible(
31
- * config.family.familyId,
32
- * config.target.targetId,
33
- * frameworkComponents
34
- * );
35
- *
36
- * const planner = target.migrations.createPlanner(familyInstance);
37
- * planner.plan({ contract, schema, policy, frameworkComponents: typedComponents });
38
- * ```
39
- */
40
- function assertFrameworkComponentsCompatible(expectedFamilyId, expectedTargetId, frameworkComponents) {
41
- for (let i = 0; i < frameworkComponents.length; i++) {
42
- const component = frameworkComponents[i];
43
- if (typeof component !== "object" || component === null) throw errorConfigValidation("frameworkComponents[]", { why: `Framework component at index ${i} must be an object` });
44
- const record = component;
45
- if (!Object.hasOwn(record, "kind")) throw errorConfigValidation("frameworkComponents[].kind", { why: `Framework component at index ${i} must have 'kind' property` });
46
- const kind = record["kind"];
47
- if (kind !== "target" && kind !== "adapter" && kind !== "extension" && kind !== "driver") throw errorConfigValidation("frameworkComponents[].kind", { why: `Framework component at index ${i} has invalid kind '${String(kind)}' (must be 'target', 'adapter', 'extension', or 'driver')` });
48
- if (!Object.hasOwn(record, "familyId")) throw errorConfigValidation("frameworkComponents[].familyId", { why: `Framework component at index ${i} (kind: ${String(kind)}) must have 'familyId' property` });
49
- const familyId = record["familyId"];
50
- if (familyId !== expectedFamilyId) throw errorConfigValidation("frameworkComponents[].familyId", { why: `Framework component at index ${i} (kind: ${String(kind)}) has familyId '${String(familyId)}' but expected '${expectedFamilyId}'` });
51
- if (!Object.hasOwn(record, "targetId")) throw errorConfigValidation("frameworkComponents[].targetId", { why: `Framework component at index ${i} (kind: ${String(kind)}) must have 'targetId' property` });
52
- const targetId = record["targetId"];
53
- if (targetId !== expectedTargetId) throw errorConfigValidation("frameworkComponents[].targetId", { why: `Framework component at index ${i} (kind: ${String(kind)}) has targetId '${String(targetId)}' but expected '${expectedTargetId}'` });
54
- }
55
- return frameworkComponents;
56
- }
57
- //#endregion
58
- export { assertFrameworkComponentsCompatible as t };
59
-
60
- //# sourceMappingURL=framework-components-Bau7o1-J-DTp6AUoq.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"framework-components-Bau7o1-J-DTp6AUoq.mjs","names":[],"sources":["../../../../1-framework/3-tooling/cli/dist/framework-components-Bau7o1-J.mjs"],"sourcesContent":["import { i as errorConfigValidation } from \"./cli-errors-B4zTLaqQ.mjs\";\nimport \"@internal/framework-components/components\";\n//#region src/utils/framework-components.ts\n/**\n* Asserts that all framework components are compatible with the expected family and target.\n*\n* This function validates that each component in the framework components array:\n* - Has kind 'target', 'adapter', 'extension', or 'driver'\n* - Has familyId matching expectedFamilyId\n* - Has targetId matching expectedTargetId\n*\n* This validation happens at the CLI composition boundary, before passing components\n* to typed planner/runner instances. It fills the gap between runtime validation\n* (via the config loader's `collectConfigIssues` diagnostics) and compile-time\n* type enforcement.\n*\n* @param expectedFamilyId - The expected family ID (e.g., 'sql')\n* @param expectedTargetId - The expected target ID (e.g., 'postgres')\n* @param frameworkComponents - Array of framework components to validate\n* @returns The same array typed as TargetBoundComponentDescriptor\n* @throws CliStructuredError if any component is incompatible\n*\n* @example\n* ```ts\n* const configResult = await loadConfigForSections(undefined, ['family', 'target', 'adapter', 'extensions']);\n* const config = configResult.assertOk();\n* const frameworkComponents = [config.target, config.adapter, ...(config.extensions ?? [])];\n*\n* // Validate and type-narrow components before passing to planner\n* const typedComponents = assertFrameworkComponentsCompatible(\n* config.family.familyId,\n* config.target.targetId,\n* frameworkComponents\n* );\n*\n* const planner = target.migrations.createPlanner(familyInstance);\n* planner.plan({ contract, schema, policy, frameworkComponents: typedComponents });\n* ```\n*/\nfunction assertFrameworkComponentsCompatible(expectedFamilyId, expectedTargetId, frameworkComponents) {\n\tfor (let i = 0; i < frameworkComponents.length; i++) {\n\t\tconst component = frameworkComponents[i];\n\t\tif (typeof component !== \"object\" || component === null) throw errorConfigValidation(\"frameworkComponents[]\", { why: `Framework component at index ${i} must be an object` });\n\t\tconst record = component;\n\t\tif (!Object.hasOwn(record, \"kind\")) throw errorConfigValidation(\"frameworkComponents[].kind\", { why: `Framework component at index ${i} must have 'kind' property` });\n\t\tconst kind = record[\"kind\"];\n\t\tif (kind !== \"target\" && kind !== \"adapter\" && kind !== \"extension\" && kind !== \"driver\") throw errorConfigValidation(\"frameworkComponents[].kind\", { why: `Framework component at index ${i} has invalid kind '${String(kind)}' (must be 'target', 'adapter', 'extension', or 'driver')` });\n\t\tif (!Object.hasOwn(record, \"familyId\")) throw errorConfigValidation(\"frameworkComponents[].familyId\", { why: `Framework component at index ${i} (kind: ${String(kind)}) must have 'familyId' property` });\n\t\tconst familyId = record[\"familyId\"];\n\t\tif (familyId !== expectedFamilyId) throw errorConfigValidation(\"frameworkComponents[].familyId\", { why: `Framework component at index ${i} (kind: ${String(kind)}) has familyId '${String(familyId)}' but expected '${expectedFamilyId}'` });\n\t\tif (!Object.hasOwn(record, \"targetId\")) throw errorConfigValidation(\"frameworkComponents[].targetId\", { why: `Framework component at index ${i} (kind: ${String(kind)}) must have 'targetId' property` });\n\t\tconst targetId = record[\"targetId\"];\n\t\tif (targetId !== expectedTargetId) throw errorConfigValidation(\"frameworkComponents[].targetId\", { why: `Framework component at index ${i} (kind: ${String(kind)}) has targetId '${String(targetId)}' but expected '${expectedTargetId}'` });\n\t}\n\treturn frameworkComponents;\n}\n//#endregion\nexport { assertFrameworkComponentsCompatible as t };\n\n//# sourceMappingURL=framework-components-Bau7o1-J.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAS,oCAAoC,kBAAkB,kBAAkB,qBAAqB;CACrG,KAAK,IAAI,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;EACpD,MAAM,YAAY,oBAAoB;EACtC,IAAI,OAAO,cAAc,YAAY,cAAc,MAAM,MAAM,sBAAsB,yBAAyB,EAAE,KAAK,gCAAgC,EAAE,oBAAoB,CAAC;EAC5K,MAAM,SAAS;EACf,IAAI,CAAC,OAAO,OAAO,QAAQ,MAAM,GAAG,MAAM,sBAAsB,8BAA8B,EAAE,KAAK,gCAAgC,EAAE,4BAA4B,CAAC;EACpK,MAAM,OAAO,OAAO;EACpB,IAAI,SAAS,YAAY,SAAS,aAAa,SAAS,eAAe,SAAS,UAAU,MAAM,sBAAsB,8BAA8B,EAAE,KAAK,gCAAgC,EAAE,qBAAqB,OAAO,IAAI,EAAE,2DAA2D,CAAC;EAC3R,IAAI,CAAC,OAAO,OAAO,QAAQ,UAAU,GAAG,MAAM,sBAAsB,kCAAkC,EAAE,KAAK,gCAAgC,EAAE,UAAU,OAAO,IAAI,EAAE,iCAAiC,CAAC;EACxM,MAAM,WAAW,OAAO;EACxB,IAAI,aAAa,kBAAkB,MAAM,sBAAsB,kCAAkC,EAAE,KAAK,gCAAgC,EAAE,UAAU,OAAO,IAAI,EAAE,kBAAkB,OAAO,QAAQ,EAAE,kBAAkB,iBAAiB,GAAG,CAAC;EAC3O,IAAI,CAAC,OAAO,OAAO,QAAQ,UAAU,GAAG,MAAM,sBAAsB,kCAAkC,EAAE,KAAK,gCAAgC,EAAE,UAAU,OAAO,IAAI,EAAE,iCAAiC,CAAC;EACxM,MAAM,WAAW,OAAO;EACxB,IAAI,aAAa,kBAAkB,MAAM,sBAAsB,kCAAkC,EAAE,KAAK,gCAAgC,EAAE,UAAU,OAAO,IAAI,EAAE,kBAAkB,OAAO,QAAQ,EAAE,kBAAkB,iBAAiB,GAAG,CAAC;CAC5O;CACA,OAAO;AACR"}
@@ -1,35 +0,0 @@
1
- //#region ../../../1-framework/3-tooling/cli/dist/global-flags-BpoOYtNZ.d.mts
2
- //#region src/utils/global-flags.d.ts
3
- type OutputFormat = 'pretty' | 'json';
4
- interface GlobalFlags {
5
- readonly format: OutputFormat;
6
- readonly explicitFormat: boolean;
7
- readonly json?: boolean;
8
- readonly quiet?: boolean;
9
- readonly verbose?: number;
10
- readonly color?: boolean;
11
- readonly interactive?: boolean;
12
- readonly yes?: boolean;
13
- }
14
- /**
15
- * Common options parsed by Commander.js for every command.
16
- * Extend this for command-specific options instead of duplicating these fields.
17
- */
18
- interface CommonCommandOptions {
19
- readonly format?: string;
20
- readonly json?: string | boolean;
21
- readonly quiet?: boolean;
22
- readonly q?: boolean;
23
- readonly verbose?: boolean;
24
- readonly v?: boolean;
25
- readonly trace?: boolean;
26
- readonly color?: boolean;
27
- readonly 'no-color'?: boolean;
28
- readonly interactive?: boolean;
29
- readonly 'no-interactive'?: boolean;
30
- readonly yes?: boolean;
31
- readonly y?: boolean;
32
- }
33
- //#endregion
34
- export { GlobalFlags as n, CommonCommandOptions as t };
35
- //# sourceMappingURL=global-flags-BpoOYtNZ-CHZD3fud.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-flags-BpoOYtNZ-CHZD3fud.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/cli/dist/global-flags-BpoOYtNZ.d.mts"],"mappings":";;KACK;UACK;WACC,QAAQ;WACR;WACA;WACA;WACA;WACA;WACA;WACA;;;;;;UAMD;WACC;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-roots-NDOIEDVj.mjs","names":[],"sources":["../../../../0-shared/publish-surface/dist/import-roots.mjs"],"sourcesContent":["import { publicShells } from \"./shells.mjs\";\n//#region src/import-roots.ts\n/**\n* Import-root resolution: the one place that turns an internal workspace\n* specifier into the name generated code should carry.\n*\n* Emission writes package names into files the user keeps — generated\n* contract types, scaffolded migrations, `prisma-next init` output. Which\n* name is correct depends on how the application installed Prisma Next, so\n* every emitter resolves through an {@link ImportRoot} rather than hardcoding\n* a specifier. The mapping itself is `./shells`; nothing here duplicates it.\n*/\nconst INTERNAL_SCOPE = \"@internal/\";\nconst PUBLISHED_SCOPE = \"@prisma/\";\n/** An import root that emitted code cannot express. */\nvar ImportRootError = class extends Error {};\nconst internalImportRoot = { mode: \"internal\" };\n/**\n* The import root an application's own dependency list expresses.\n*\n* Emission has to name packages the application can actually resolve, and the\n* application already states which those are. Reading its manifest keeps the\n* two from drifting and lets consumers move to published names one project at\n* a time instead of behind a repository-wide switch.\n*\n* A project that names exactly one facade is on the facade root; one that\n* names platform shells without a facade is a decomposed install; anything\n* else — including a project with no `@prisma/orm-*` dependency at all — is on\n* the internal root, which emits workspace names unchanged.\n*\n* @throws {ImportRootError} when the project depends on two facades, which no\n* single generated file can be emitted for.\n*/\nfunction importRootForDependencies(dependencies) {\n\tconst named = new Set(dependencies);\n\tconst facades = [];\n\tlet hasPlatform = false;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (!named.has(shell)) continue;\n\t\tif (definition.kind === \"facade\") facades.push(shell);\n\t\tif (definition.kind === \"platform\") hasPlatform = true;\n\t}\n\tif (facades.length > 1) throw new ImportRootError(`an application may depend on only one database facade, but this one depends on ${facades.join(\" and \")}`);\n\tconst [facade] = facades;\n\tif (facade !== void 0) return {\n\t\tmode: \"facade\",\n\t\tfacade\n\t};\n\treturn hasPlatform ? { mode: \"platform\" } : internalImportRoot;\n}\nconst owners = buildOwnerIndex(publicShells);\n/**\n* Takes the shell map as an argument rather than closing over `publicShells`\n* so the duplicate-owner guard is reachable from a test: the real map is\n* valid by construction, and a guard nothing can exercise is a guard nobody\n* knows still works.\n*/\nfunction buildOwnerIndex(shells) {\n\tconst index = /* @__PURE__ */ new Map();\n\tfor (const [shell, definition] of shells) for (const pkg of definition.packages) {\n\t\tconst existing = index.get(pkg.name);\n\t\tif (existing !== void 0) throw new ImportRootError(`${pkg.name} is mapped to both ${existing.shell} and ${shell}; one module may live in only one published package (ADR 242)`);\n\t\tindex.set(pkg.name, {\n\t\t\tshell,\n\t\t\tentry: pkg.entry\n\t\t});\n\t}\n\treturn index;\n}\nfunction splitSpecifier(specifier) {\n\tconst [scope, pkg, ...rest] = specifier.split(\"/\");\n\treturn {\n\t\tname: `${scope}/${pkg}`,\n\t\tsubpath: rest.join(\"/\")\n\t};\n}\nfunction joinEntrypoint(shell, entry, subpath) {\n\tconst tail = [entry, subpath].filter(Boolean).join(\"/\");\n\treturn tail === \"\" ? shell : `${shell}/${tail}`;\n}\n/**\n* The shells an application installs directly under this root. Emitted code\n* may name only these: a package manager puts a package's own dependencies in\n* its own `node_modules`, so importing a transitively installed package fails\n* to resolve at run time even though the files are on disk.\n*/\nfunction directDependencyShells(root) {\n\tconst direct = /* @__PURE__ */ new Set();\n\tif (root.mode === \"internal\") return direct;\n\tfor (const [shell, definition] of publicShells) {\n\t\tif (definition.kind === \"extension\") direct.add(shell);\n\t\tif (root.mode === \"platform\" && definition.kind === \"platform\") direct.add(shell);\n\t}\n\tif (root.mode === \"facade\") direct.add(root.facade);\n\treturn direct;\n}\nfunction owningShell(specifier, name) {\n\tconst owner = owners.get(name);\n\tif (owner === void 0) throw new ImportRootError(`${specifier} is not mapped to any published shell`);\n\treturn owner;\n}\n/**\n* The platform-install name for an internal specifier, with the shell that\n* owns it. The shell build needs both: an import that stays inside the shell\n* being built is bundled rather than externalized.\n*/\nfunction platformEntrypointOf(specifier) {\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tconst owner = owningShell(specifier, name);\n\treturn {\n\t\tshell: owner.shell,\n\t\tid: joinEntrypoint(owner.shell, owner.entry, subpath)\n\t};\n}\n/**\n* The facade's own name for an internal specifier it republishes, or\n* `undefined` when the facade does not carry that surface.\n*/\nfunction facadeEntrypoint(facade, name, subpath) {\n\tconst definition = publicShells.get(facade);\n\t/* v8 ignore next -- @preserve: every ShellName is a key of publicShells */\n\tif (definition === void 0) throw new ImportRootError(`unknown shell ${facade}`);\n\tif (definition.kind !== \"facade\") throw new ImportRootError(`${facade} is a ${definition.kind} shell, not a facade`);\n\tfor (const reexport of definition.reexports ?? []) {\n\t\tif (reexport.package !== name) continue;\n\t\tif (subpath === \"\" && reexport.root === false) return void 0;\n\t\tif (reexport.subpaths !== void 0 && !reexport.subpaths.includes(subpath)) return void 0;\n\t\treturn joinEntrypoint(facade, reexport.entry, subpath);\n\t}\n}\nfunction describe(root) {\n\treturn root.mode === \"facade\" ? `${root.mode} (${root.facade})` : root.mode;\n}\nfunction resolveImportSpecifier(specifier, root) {\n\tif (root.mode === \"internal\") return specifier;\n\tif (!specifier.startsWith(INTERNAL_SCOPE)) return specifier;\n\tconst { name, subpath } = splitSpecifier(specifier);\n\tif (root.mode === \"facade\") {\n\t\tconst republished = facadeEntrypoint(root.facade, name, subpath);\n\t\tif (republished !== void 0) return republished;\n\t}\n\tconst owner = owningShell(specifier, name);\n\tconst published = joinEntrypoint(owner.shell, owner.entry, subpath);\n\tif (!directDependencyShells(root).has(owner.shell)) throw new ImportRootError(unreachableUnder(specifier, published, root));\n\treturn published;\n}\n/**\n* Why a specifier has no name under `root`.\n*\n* The facade wording deliberately does not say \"not a direct dependency\":\n* under ADR 242 the answer to that is never \"install the platform package\n* too\", it is that the facade has to republish the surface.\n*/\nfunction unreachableUnder(specifier, published, root) {\n\tif (root.mode === \"facade\") return `${specifier} has no name under ${root.facade}: the facade does not republish ${published}. An application installs one facade and nothing else, so every surface it reaches has to be one of that facade’s own entrypoints (ADR 242).`;\n\treturn `${specifier} resolves to ${published}, which an application on the ${describe(root)} import root does not depend on directly. Emitted code may name only direct dependencies (ADR 242).`;\n}\nfunction createImportSpecifierResolver(root) {\n\tif (root.mode === \"internal\") return (specifier) => specifier;\n\treturn (specifier) => resolveImportSpecifier(specifier, root);\n}\n/**\n* Builds the resolver `prisma-next init` scaffolds with. Identical to\n* {@link createImportSpecifierResolver} except that it will not accept a root\n* a scaffold cannot express, so the impossible case is rejected where the\n* resolver is made rather than when a template happens to hit a name.\n*/\nfunction createScaffoldSpecifierResolver(root) {\n\treturn createImportSpecifierResolver(root);\n}\nconst MODULE_SPECIFIER = /\\b(?:from|import)\\s*\\(?\\s*(['\"])([^'\"\\n]+)\\1/g;\n/**\n* True when `source` contains module syntax that must carry a quoted\n* specifier: `import '<s>'`, `import('<s>')`, or an import/export clause\n* followed by `from '<s>'`.\n*\n* Deliberately independent of {@link MODULE_SPECIFIER} — it exists to notice\n* when that scanner has stopped matching, so it accepts any quote character,\n* including the backtick a renderer must never emit. It does still require a\n* quote: the word \"import\" on its own appears in prose and comments all the\n* time, and treating that as module syntax made the check below fire on files\n* that have no imports at all.\n*/\nconst HAS_IMPORT_SYNTAX = /(?:^|[\\s(;}])import\\s*[('\"`]|(?:^|[\\s;}])(?:import|export)\\b[\\w$*,{}\\s]*?\\bfrom\\s*['\"`]/;\n/** The module specifiers a generated source file names. */\nfunction importedSpecifiers(source) {\n\treturn [...source.matchAll(MODULE_SPECIFIER)].map(([, , specifier]) => specifier ?? \"\");\n}\n/**\n* The specifiers in a generated file that the application would not have as a\n* direct dependency under `root` — the thing no emitted file may contain.\n*\n* Under the `internal` root nothing is reported: those names are the\n* repository's own, and every in-repo consumer resolves them through the\n* workspace.\n*\n* Throws rather than returning `[]` when the source plainly has imports but\n* the scan found none. An audit whose scanner has stopped matching would\n* otherwise report every file as clean, which is the one failure mode that\n* makes the audit worse than not having it.\n*/\nfunction transitiveImports(source, root) {\n\tconst specifiers = importedSpecifiers(source);\n\tif (specifiers.length === 0 && HAS_IMPORT_SYNTAX.test(source)) throw new ImportRootError(\"source contains import syntax but no specifier was recognised; the audit would pass vacuously\");\n\tif (root.mode === \"internal\") return [];\n\tconst direct = new Set(directDependencyShells(root));\n\treturn specifiers.filter((specifier) => {\n\t\tif (specifier.startsWith(INTERNAL_SCOPE)) return true;\n\t\tif (!specifier.startsWith(PUBLISHED_SCOPE)) return false;\n\t\tconst [scope, shell] = specifier.split(\"/\");\n\t\treturn !direct.has(`${scope}/${shell}`);\n\t});\n}\n//#endregion\nexport { ImportRootError, buildOwnerIndex, createImportSpecifierResolver, createScaffoldSpecifierResolver, directDependencyShells, importRootForDependencies, importedSpecifiers, internalImportRoot, platformEntrypointOf, resolveImportSpecifier, transitiveImports };\n\n//# sourceMappingURL=import-roots.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CnOyYxmv.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/index-uXQjRiyo.d.mts"],"mappings":";;;;;;;;UAOU;WACC;WACA;;iBAEM,wBAAwB,yBAAyB;;;;;;;;UAQxD;WACC,mBAAmB,cAAc;WACjC,4BAA4B,cAAc;WAC1C,eAAe;WACf,cAAc;WACd,mBAAmB,cAAc;WACjC,uBAAuB,cAAc;;UAEtC;WACC;;;;;;;;;;WAUA,mBAAmB;;;;;WAKnB,sBAAsB;;;;;WAKtB,cAAc;;;;;;;WAOd,yBAAyB;;UAE1B;WACC;WACA;WACA;WACA;WACA;;;;iBAIM,KAAK,UAAU,UAAU,OAAO,gBAAgB,cAAc,aAAa,SAAS,cAAc,QAAQ;;;iBAG1G,oBAAoB,UAAU,UAAU,SAAS,aAAa,kBAAkB,cAAc,kBAAkB;WACtH;WACA;WACA;GACR,UAAU,8BAA8B,cAAc,aAAa,yBAAyB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-mCsi_ND5.d.mts","names":[],"sources":["../../../../1-framework/3-tooling/config-loader/dist/exports/index.d.mts"],"mappings":";;;;;;iBAKiB,eAAe,QAAQ,kBAAoB,oBAAoB;;;;;;;;;;UAUtE;WACC,QAAQ;WACR,sBAAsB;;iBAEhB,6BAA6B,mBAAmB;;;;;;;;;;iBAUhD,WAAW,qBAAqB;WACtC;IACP,QAAQ,OAAO,cAAc;;;;;;iBAMhB,sBAAsB,QAAQ,cAAc,mBAAmB,kBAAkB,OAAO,kBAAoB;;;;;;iBAM5G,sBAAsB,gCAAgC,mBAAmB,kBAAkB,QAAQ,OAAO,kBAAoB;iBAC9H,kBAAkB,mBAAmB,QAAQ,OAAO,cAAc"}