@prisma/orm-toolchain 8.0.0-rc.1-dev.44 → 8.0.0-rc.1-dev.46
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.
- package/README.md +3 -3
- package/dist/{aggregate-BBsCbXgJ.mjs → aggregate-CPZB020V.mjs} +9 -9
- package/dist/{aggregate-BBsCbXgJ.mjs.map → aggregate-CPZB020V.mjs.map} +1 -1
- package/dist/{aggregate-CA6bJ8UO.d.mts → aggregate-DLUJLq5Y.d.mts} +3 -3
- package/dist/{aggregate-CA6bJ8UO.d.mts.map → aggregate-DLUJLq5Y.d.mts.map} +1 -1
- package/dist/cli-telemetry.d.mts +19 -5
- package/dist/cli-telemetry.d.mts.map +1 -1
- package/dist/cli-telemetry.mjs +287 -8
- package/dist/cli-telemetry.mjs.map +1 -1
- package/dist/cli.d.mts +11 -13
- package/dist/cli.d.mts.map +1 -1
- package/dist/cli.mjs +5382 -1095
- package/dist/cli.mjs.map +1 -1
- package/dist/cli__control-api.d.mts +298 -27
- package/dist/cli__control-api.d.mts.map +1 -1
- package/dist/cli__control-api.mjs +2 -19
- package/dist/cli__control-api__testing.d.mts +1 -1
- package/dist/cli__control-api__testing.mjs.map +1 -1
- package/dist/cli__init-output.d.mts +0 -1
- package/dist/cli__init-output.d.mts.map +1 -1
- package/dist/cli__init-output.mjs +1 -1
- package/dist/cli__migration-cli.mjs +9 -9
- package/dist/cli__migration-cli.mjs.map +1 -1
- package/dist/config-loader.d.mts +1 -1
- package/dist/config-loader.mjs +1 -1
- package/dist/{contract-snapshot-store-B0G1Fw_F-C4JjmWEA.mjs → contract-snapshot-store-B0G1Fw_F-CHc4QfKb.mjs} +4 -4
- package/dist/{contract-snapshot-store-B0G1Fw_F-C4JjmWEA.mjs.map → contract-snapshot-store-B0G1Fw_F-CHc4QfKb.mjs.map} +1 -1
- package/dist/{cli-errors-iquUoY6O-BFboxglv.d.mts → db-verify-BwgNK50T-DGvKgFCK.d.mts} +81 -81
- package/dist/db-verify-BwgNK50T-DGvKgFCK.d.mts.map +1 -0
- package/dist/emitter.d.mts +1 -1
- package/dist/{errors-CXbGUWGu-BQi6YS-H.mjs → errors-CXbGUWGu-CstQHPh6.mjs} +2 -2
- package/dist/{errors-CXbGUWGu-BQi6YS-H.mjs.map → errors-CXbGUWGu-CstQHPh6.mjs.map} +1 -1
- package/dist/{errors-KWM8yBAL.d.mts → errors-D59OCpoI.d.mts} +2 -2
- package/dist/{errors-KWM8yBAL.d.mts.map → errors-D59OCpoI.d.mts.map} +1 -1
- package/dist/{exports-B3xY_FHp.mjs → exports-8ZUN43ve.mjs} +6 -6
- package/dist/exports-8ZUN43ve.mjs.map +1 -0
- package/dist/{exports-BZLNbtkY.mjs → exports-BZaG8_w_.mjs} +64 -36
- package/dist/exports-BZaG8_w_.mjs.map +1 -0
- package/dist/{graph-membership-BViWUMpP-Cgu4Z2ox.mjs → graph-membership-BViWUMpP-C4lYYJdU.mjs} +2 -2
- package/dist/{graph-membership-BViWUMpP-Cgu4Z2ox.mjs.map → graph-membership-BViWUMpP-C4lYYJdU.mjs.map} +1 -1
- package/dist/{import-roots-NDOIEDVj.mjs → import-roots-CNFBPAT1.mjs} +10 -3
- package/dist/{import-roots-NDOIEDVj.mjs.map → import-roots-CNFBPAT1.mjs.map} +1 -1
- package/dist/{import-roots-B6CtsWXb.d.mts → import-roots-CfoYgejL.d.mts} +2 -2
- package/dist/{import-roots-B6CtsWXb.d.mts.map → import-roots-CfoYgejL.d.mts.map} +1 -1
- package/dist/{index-mCsi_ND5.d.mts → index-DRs7L6N0.d.mts} +11 -3
- package/dist/index-DRs7L6N0.d.mts.map +1 -0
- package/dist/{index-CnOyYxmv.d.mts → index-Dgwl8Tzs.d.mts} +2 -2
- package/dist/{index-CnOyYxmv.d.mts.map → index-Dgwl8Tzs.d.mts.map} +1 -1
- package/dist/{invariants-CTHy88OP-DJ-i5yTz.mjs → invariants-CTHy88OP-CYI2a8IO.mjs} +2 -2
- package/dist/{invariants-CTHy88OP-DJ-i5yTz.mjs.map → invariants-CTHy88OP-CYI2a8IO.mjs.map} +1 -1
- package/dist/{io-635GlNx1-D94PxRc-.mjs → io-635GlNx1-D3zrw2qu.mjs} +4 -4
- package/dist/{io-635GlNx1-D94PxRc-.mjs.map → io-635GlNx1-D3zrw2qu.mjs.map} +1 -1
- package/dist/{migration-graph-_SJImD5V-D5RCc651.mjs → migration-graph-_SJImD5V-BURyY1KM.mjs} +2 -2
- package/dist/{migration-graph-_SJImD5V-D5RCc651.mjs.map → migration-graph-_SJImD5V-BURyY1KM.mjs.map} +1 -1
- package/dist/{migration-gubSSeMk.mjs → migration-hspPIEeV.mjs} +4 -4
- package/dist/{migration-gubSSeMk.mjs.map → migration-hspPIEeV.mjs.map} +1 -1
- package/dist/migration-tools.d.mts +4 -4
- package/dist/migration-tools.mjs +13 -13
- package/dist/migration-tools__aggregate.d.mts +1 -1
- package/dist/migration-tools__aggregate.mjs +1 -1
- package/dist/migration-tools__contract-snapshot-store.mjs +1 -1
- package/dist/migration-tools__errors.d.mts +1 -1
- package/dist/migration-tools__errors.mjs +1 -1
- package/dist/migration-tools__invariants.mjs +1 -1
- package/dist/migration-tools__io.mjs +1 -1
- package/dist/migration-tools__migration-graph.mjs +2 -2
- package/dist/migration-tools__migration-ts.mjs +1 -1
- package/dist/migration-tools__migration.mjs +1 -1
- package/dist/migration-tools__ref-resolution.mjs +1 -1
- package/dist/migration-tools__refs.mjs +1 -1
- package/dist/migration-tools__spaces.d.mts +2 -2
- package/dist/migration-tools__spaces.mjs +2 -2
- package/dist/{migration-ts-BoHxxGvi.mjs → migration-ts-DdVm0rws.mjs} +2 -2
- package/dist/{migration-ts-BoHxxGvi.mjs.map → migration-ts-DdVm0rws.mjs.map} +1 -1
- package/dist/{output-DP3woAjV-BxCr9nHA.mjs → output-CovTDY14-CUoAqLML.mjs} +3 -45
- package/dist/output-CovTDY14-CUoAqLML.mjs.map +1 -0
- package/dist/publish-surface.d.mts +2 -2
- package/dist/publish-surface.mjs +2 -2
- package/dist/publish-surface__import-roots.d.mts +1 -1
- package/dist/publish-surface__import-roots.mjs +1 -1
- package/dist/publish-surface__shells.d.mts +1 -1
- package/dist/publish-surface__shells.mjs +1 -1
- package/dist/quick-reference-mongo.md +12 -9
- package/dist/quick-reference-postgres.md +12 -9
- package/dist/readme-mongo.md +2 -2
- package/dist/readme-postgres.md +2 -2
- package/dist/ref-h6InR6dO-rGfl18Jv.mjs +4686 -0
- package/dist/ref-h6InR6dO-rGfl18Jv.mjs.map +1 -0
- package/dist/{ref-resolution-sGcINe7o.mjs → ref-resolution-HeNBXW53.mjs} +2 -2
- package/dist/{ref-resolution-sGcINe7o.mjs.map → ref-resolution-HeNBXW53.mjs.map} +1 -1
- package/dist/{refs-WK86uYYp-B6EZkmmT.mjs → refs-WK86uYYp-gM8tvWQP.mjs} +2 -2
- package/dist/{refs-WK86uYYp-B6EZkmmT.mjs.map → refs-WK86uYYp-gM8tvWQP.mjs.map} +1 -1
- package/dist/{shells-BenrJHp2.mjs → shells-C4HbRAr5.mjs} +13 -14
- package/dist/shells-C4HbRAr5.mjs.map +1 -0
- package/dist/{shells-COHV_Ozf.d.mts → shells-CIUmT4u4.d.mts} +14 -20
- package/dist/shells-CIUmT4u4.d.mts.map +1 -0
- package/dist/{spaces-BG2w0P8d.mjs → spaces-4qMOAYE9.mjs} +7 -7
- package/dist/{spaces-BG2w0P8d.mjs.map → spaces-4qMOAYE9.mjs.map} +1 -1
- package/dist/{spaces-tWQi7CUv.d.mts → spaces-Dj65JrwZ.d.mts} +2 -2
- package/dist/{spaces-tWQi7CUv.d.mts.map → spaces-Dj65JrwZ.d.mts.map} +1 -1
- package/dist/{verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts → verify-contract-spaces-C3PiFBk3-DfomYyOE.d.mts} +3 -3
- package/dist/{verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts.map → verify-contract-spaces-C3PiFBk3-DfomYyOE.d.mts.map} +1 -1
- package/dist/{verify-contract-spaces-DhJTb0zM-_oh6W6lp.mjs → verify-contract-spaces-DhJTb0zM-B62maCfE.mjs} +4 -4
- package/dist/{verify-contract-spaces-DhJTb0zM-_oh6W6lp.mjs.map → verify-contract-spaces-DhJTb0zM-B62maCfE.mjs.map} +1 -1
- package/dist/vite-plugin-contract-emit.d.mts +2 -2
- package/dist/vite-plugin-contract-emit.mjs +5 -5
- package/dist/vite-plugin-contract-emit.mjs.map +1 -1
- package/package.json +14 -38
- package/dist/bin__prisma-next.mjs +0 -512
- package/dist/bin__prisma-next.mjs.map +0 -1
- package/dist/caught-errors-BZo7zcRc-C-pIEasG.mjs +0 -14
- package/dist/caught-errors-BZo7zcRc-C-pIEasG.mjs.map +0 -1
- package/dist/cli-errors-B4zTLaqQ-CXgjO9t4.mjs +0 -347
- package/dist/cli-errors-B4zTLaqQ-CXgjO9t4.mjs.map +0 -1
- package/dist/cli-errors-iquUoY6O-BFboxglv.d.mts.map +0 -1
- package/dist/cli__commands__contract-emit.d.mts +0 -2
- package/dist/cli__commands__contract-emit.mjs +0 -2
- package/dist/cli__commands__contract-infer.d.mts +0 -7
- package/dist/cli__commands__contract-infer.d.mts.map +0 -1
- package/dist/cli__commands__contract-infer.mjs +0 -2
- package/dist/cli__commands__db-init.d.mts +0 -7
- package/dist/cli__commands__db-init.d.mts.map +0 -1
- package/dist/cli__commands__db-init.mjs +0 -2
- package/dist/cli__commands__db-schema.d.mts +0 -7
- package/dist/cli__commands__db-schema.d.mts.map +0 -1
- package/dist/cli__commands__db-schema.mjs +0 -2
- package/dist/cli__commands__db-sign.d.mts +0 -7
- package/dist/cli__commands__db-sign.d.mts.map +0 -1
- package/dist/cli__commands__db-sign.mjs +0 -2
- package/dist/cli__commands__db-update.d.mts +0 -7
- package/dist/cli__commands__db-update.d.mts.map +0 -1
- package/dist/cli__commands__db-update.mjs +0 -2
- package/dist/cli__commands__db-verify.d.mts +0 -7
- package/dist/cli__commands__db-verify.d.mts.map +0 -1
- package/dist/cli__commands__db-verify.mjs +0 -2
- package/dist/cli__commands__migrate.d.mts +0 -57
- package/dist/cli__commands__migrate.d.mts.map +0 -1
- package/dist/cli__commands__migrate.mjs +0 -2
- package/dist/cli__commands__migration-check.d.mts +0 -8
- package/dist/cli__commands__migration-check.d.mts.map +0 -1
- package/dist/cli__commands__migration-check.mjs +0 -3
- package/dist/cli__commands__migration-graph.d.mts +0 -38
- package/dist/cli__commands__migration-graph.d.mts.map +0 -1
- package/dist/cli__commands__migration-graph.mjs +0 -2
- package/dist/cli__commands__migration-list.d.mts +0 -39
- package/dist/cli__commands__migration-list.d.mts.map +0 -1
- package/dist/cli__commands__migration-list.mjs +0 -2
- package/dist/cli__commands__migration-log.d.mts +0 -20
- package/dist/cli__commands__migration-log.d.mts.map +0 -1
- package/dist/cli__commands__migration-log.mjs +0 -2
- package/dist/cli__commands__migration-new.d.mts +0 -7
- package/dist/cli__commands__migration-new.d.mts.map +0 -1
- package/dist/cli__commands__migration-new.mjs +0 -2
- package/dist/cli__commands__migration-plan.d.mts +0 -34
- package/dist/cli__commands__migration-plan.d.mts.map +0 -1
- package/dist/cli__commands__migration-plan.mjs +0 -2
- package/dist/cli__commands__migration-show.d.mts +0 -27
- package/dist/cli__commands__migration-show.d.mts.map +0 -1
- package/dist/cli__commands__migration-show.mjs +0 -2
- package/dist/cli__commands__migration-status.d.mts +0 -55
- package/dist/cli__commands__migration-status.d.mts.map +0 -1
- package/dist/cli__commands__migration-status.mjs +0 -3
- package/dist/cli__commands__ref.d.mts +0 -7
- package/dist/cli__commands__ref.d.mts.map +0 -1
- package/dist/cli__commands__ref.mjs +0 -2
- package/dist/cli__commands__telemetry.d.mts +0 -7
- package/dist/cli__commands__telemetry.d.mts.map +0 -1
- package/dist/cli__commands__telemetry.mjs +0 -2
- package/dist/client-C6Qp5ujC-Dxb7r79B.mjs +0 -1653
- package/dist/client-C6Qp5ujC-Dxb7r79B.mjs.map +0 -1
- package/dist/code-templates-D_sGnEF6-DRLPzlq8.mjs +0 -295
- package/dist/code-templates-D_sGnEF6-DRLPzlq8.mjs.map +0 -1
- package/dist/combine-verify-results-B87B_pMc-D4l22OqY.mjs +0 -65
- package/dist/combine-verify-results-B87B_pMc-D4l22OqY.mjs.map +0 -1
- package/dist/command-helpers-BCgwcqTe-lNCtppzM.mjs +0 -776
- package/dist/command-helpers-BCgwcqTe-lNCtppzM.mjs.map +0 -1
- package/dist/contract-at-errors-BSoDI0Hw-BXeUNE3s.mjs +0 -44
- package/dist/contract-at-errors-BSoDI0Hw-BXeUNE3s.mjs.map +0 -1
- package/dist/contract-emit-BG7KL4zk-_a0J310Z.mjs +0 -331
- package/dist/contract-emit-BG7KL4zk-_a0J310Z.mjs.map +0 -1
- package/dist/contract-emit-BkEj3siG-C8M-IyvS.mjs +0 -2
- package/dist/contract-emit-CvwNE4R1-DEn1V1Zo.d.mts +0 -7
- package/dist/contract-emit-CvwNE4R1-DEn1V1Zo.d.mts.map +0 -1
- package/dist/contract-emit-GknCmgn_-BSWdFprC.mjs +0 -154
- package/dist/contract-emit-GknCmgn_-BSWdFprC.mjs.map +0 -1
- package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs +0 -56
- package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs.map +0 -1
- package/dist/contract-infer-BwIDGl7v-CZrdWXAr.mjs +0 -74
- package/dist/contract-infer-BwIDGl7v-CZrdWXAr.mjs.map +0 -1
- package/dist/contract-snapshot-resolution-De2VvOJn-DqIAV9cr.mjs +0 -82
- package/dist/contract-snapshot-resolution-De2VvOJn-DqIAV9cr.mjs.map +0 -1
- package/dist/contract-space-aggregate-loader-fa04OIaL-B7LXHle3.mjs +0 -303
- package/dist/contract-space-aggregate-loader-fa04OIaL-B7LXHle3.mjs.map +0 -1
- package/dist/db-init-BolXrKAI-CwG-zEDW.mjs +0 -109
- package/dist/db-init-BolXrKAI-CwG-zEDW.mjs.map +0 -1
- package/dist/db-init-failure-B5cQML4A-5zr-99Ek.mjs +0 -44
- package/dist/db-init-failure-B5cQML4A-5zr-99Ek.mjs.map +0 -1
- package/dist/db-schema-DvdLBdEY-Dl6e1d_Y.mjs +0 -48
- package/dist/db-schema-DvdLBdEY-Dl6e1d_Y.mjs.map +0 -1
- package/dist/db-sign-DCp4c8CA-B3tun-kh.mjs +0 -172
- package/dist/db-sign-DCp4c8CA-B3tun-kh.mjs.map +0 -1
- package/dist/db-update-CfayE8WE-CPhQyDaZ.mjs +0 -171
- package/dist/db-update-CfayE8WE-CPhQyDaZ.mjs.map +0 -1
- package/dist/db-verify-BN7IrOAL-kEzRNJUl.mjs +0 -358
- package/dist/db-verify-BN7IrOAL-kEzRNJUl.mjs.map +0 -1
- package/dist/exports-B3xY_FHp.mjs.map +0 -1
- package/dist/exports-BZLNbtkY.mjs.map +0 -1
- package/dist/exports-CqNUihkI.mjs +0 -276
- package/dist/exports-CqNUihkI.mjs.map +0 -1
- package/dist/format-Ca7dUE6B-BMFqrc6D.mjs +0 -110
- package/dist/format-Ca7dUE6B-BMFqrc6D.mjs.map +0 -1
- package/dist/framework-components-Bau7o1-J-DTp6AUoq.mjs +0 -60
- package/dist/framework-components-Bau7o1-J-DTp6AUoq.mjs.map +0 -1
- package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts +0 -35
- package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts.map +0 -1
- package/dist/index-mCsi_ND5.d.mts.map +0 -1
- package/dist/init-B86mXFNC-C2HAUCRn.mjs +0 -800
- package/dist/init-B86mXFNC-C2HAUCRn.mjs.map +0 -1
- package/dist/inspect-live-schema-BPHXdvqW-DrzL2ZkQ.mjs +0 -95
- package/dist/inspect-live-schema-BPHXdvqW-DrzL2ZkQ.mjs.map +0 -1
- package/dist/integrity-violation-to-check-failure-BmWMLAae-DqiC4_3p.mjs +0 -115
- package/dist/integrity-violation-to-check-failure-BmWMLAae-DqiC4_3p.mjs.map +0 -1
- package/dist/invariants-Bltd8DyA-Cg_1Lu0q.mjs +0 -53
- package/dist/invariants-Bltd8DyA-Cg_1Lu0q.mjs.map +0 -1
- package/dist/legend-DGv9e2_0-BtetgRz4.mjs +0 -22
- package/dist/legend-DGv9e2_0-BtetgRz4.mjs.map +0 -1
- package/dist/migrate-BXATUjYE-Do79Imf-.mjs +0 -343
- package/dist/migrate-BXATUjYE-Do79Imf-.mjs.map +0 -1
- package/dist/migrate-failure-D4NvkoCk-0bttmQs2.mjs +0 -96
- package/dist/migrate-failure-D4NvkoCk-0bttmQs2.mjs.map +0 -1
- package/dist/migrate-show-B8UJ9dmb-C4RTPbDk.d.mts +0 -63
- package/dist/migrate-show-B8UJ9dmb-C4RTPbDk.d.mts.map +0 -1
- package/dist/migrate-show-C_9xR4Qt-B-Y0PGKw.mjs +0 -199
- package/dist/migrate-show-C_9xR4Qt-B-Y0PGKw.mjs.map +0 -1
- package/dist/migration-check-Bbdw7t-r-C2VTMK61.mjs +0 -358
- package/dist/migration-check-Bbdw7t-r-C2VTMK61.mjs.map +0 -1
- package/dist/migration-check-DbHgYK7F-7mtYNVFu.mjs +0 -163
- package/dist/migration-check-DbHgYK7F-7mtYNVFu.mjs.map +0 -1
- package/dist/migration-command-scaffold-SzjR2naH-Yi3-rNfX.mjs +0 -121
- package/dist/migration-command-scaffold-SzjR2naH-Yi3-rNfX.mjs.map +0 -1
- package/dist/migration-graph-B8WxW_tm-qGNf7jQh.mjs +0 -35
- package/dist/migration-graph-B8WxW_tm-qGNf7jQh.mjs.map +0 -1
- package/dist/migration-graph-BOwu76mF-kOTWFvfV.mjs +0 -144
- package/dist/migration-graph-BOwu76mF-kOTWFvfV.mjs.map +0 -1
- package/dist/migration-graph-command-render-h0VdTkSM-C3rPZEw1.mjs +0 -2127
- package/dist/migration-graph-command-render-h0VdTkSM-C3rPZEw1.mjs.map +0 -1
- package/dist/migration-graph-sections-BBHPOFN--COKyUKQ4.mjs +0 -69
- package/dist/migration-graph-sections-BBHPOFN--COKyUKQ4.mjs.map +0 -1
- package/dist/migration-list-CKuYcMQq-CubZzE9i.mjs +0 -130
- package/dist/migration-list-CKuYcMQq-CubZzE9i.mjs.map +0 -1
- package/dist/migration-list-CY08bD8I-PoXuv94c.mjs +0 -102
- package/dist/migration-list-CY08bD8I-PoXuv94c.mjs.map +0 -1
- package/dist/migration-log-CUbGla-9-BLIrWjwN.mjs +0 -123
- package/dist/migration-log-CUbGla-9-BLIrWjwN.mjs.map +0 -1
- package/dist/migration-log-table-eES9lPjv-BCFm8qJr.mjs +0 -116
- package/dist/migration-log-table-eES9lPjv-BCFm8qJr.mjs.map +0 -1
- package/dist/migration-new-ChvZjf5X-BFhEM0BF.mjs +0 -70
- package/dist/migration-new-ChvZjf5X-BFhEM0BF.mjs.map +0 -1
- package/dist/migration-new-DXMvJdbB-BkrpDfcr.mjs +0 -130
- package/dist/migration-new-DXMvJdbB-BkrpDfcr.mjs.map +0 -1
- package/dist/migration-path-target-JDWqF9kj-B7zoMq6X.mjs +0 -38
- package/dist/migration-path-target-JDWqF9kj-B7zoMq6X.mjs.map +0 -1
- package/dist/migration-plan-BV9f5Xjq-DiyscOMc.d.mts +0 -164
- package/dist/migration-plan-BV9f5Xjq-DiyscOMc.d.mts.map +0 -1
- package/dist/migration-plan-Bz1hOTHF-CFCtPuOv.mjs +0 -192
- package/dist/migration-plan-Bz1hOTHF-CFCtPuOv.mjs.map +0 -1
- package/dist/migration-plan-Cfz0efEL-DMNFq5b2.mjs +0 -621
- package/dist/migration-plan-Cfz0efEL-DMNFq5b2.mjs.map +0 -1
- package/dist/migration-show-BGdR1xnT-Cg3M0FPh.mjs +0 -178
- package/dist/migration-show-BGdR1xnT-Cg3M0FPh.mjs.map +0 -1
- package/dist/migration-status-BIrAJ5af-D-_mMBUA.mjs +0 -427
- package/dist/migration-status-BIrAJ5af-D-_mMBUA.mjs.map +0 -1
- package/dist/output-DP3woAjV-BxCr9nHA.mjs.map +0 -1
- package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs +0 -43
- package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs.map +0 -1
- package/dist/project-import-root-B4nM-VWX-D__g0hTb.mjs +0 -101
- package/dist/project-import-root-B4nM-VWX-D__g0hTb.mjs.map +0 -1
- package/dist/redact-secrets-ojVi2cpy-CLyiSDk5.mjs +0 -1476
- package/dist/redact-secrets-ojVi2cpy-CLyiSDk5.mjs.map +0 -1
- package/dist/ref-4x6BGSsd-ClaoZIQh.mjs +0 -95
- package/dist/ref-4x6BGSsd-ClaoZIQh.mjs.map +0 -1
- package/dist/ref-WXLIR9Xm-12IUtoBU.mjs +0 -104
- package/dist/ref-WXLIR9Xm-12IUtoBU.mjs.map +0 -1
- package/dist/ref-advancement-DaZBzm7m-WoqnFAyr.mjs +0 -96
- package/dist/ref-advancement-DaZBzm7m-WoqnFAyr.mjs.map +0 -1
- package/dist/ref-resolution-BSN1amKm-C6-TTM2N.mjs +0 -16
- package/dist/ref-resolution-BSN1amKm-C6-TTM2N.mjs.map +0 -1
- package/dist/refs-fQLFcMoq-aTBeUU9H.mjs +0 -47
- package/dist/refs-fQLFcMoq-aTBeUU9H.mjs.map +0 -1
- package/dist/schemas-BGgjiKV0-Rh8RlMCl.d.mts +0 -206
- package/dist/schemas-BGgjiKV0-Rh8RlMCl.d.mts.map +0 -1
- package/dist/schemas-CYSD83Cu-Bff4PPoi.mjs +0 -119
- package/dist/schemas-CYSD83Cu-Bff4PPoi.mjs.map +0 -1
- package/dist/shells-BenrJHp2.mjs.map +0 -1
- package/dist/shells-COHV_Ozf.d.mts.map +0 -1
- package/dist/telemetry-BD52LETE-Cqeb7ebh.mjs +0 -121
- package/dist/telemetry-BD52LETE-Cqeb7ebh.mjs.map +0 -1
- package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts +0 -133
- package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts.map +0 -1
- package/dist/terminal-ui-Cqz4LVL7-B0mcVdLy.mjs +0 -676
- package/dist/terminal-ui-Cqz4LVL7-B0mcVdLy.mjs.map +0 -1
- package/dist/verify-Cogr_Fj9-D3lCWA6t.mjs +0 -283
- package/dist/verify-Cogr_Fj9-D3lCWA6t.mjs.map +0 -1
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
import { o as loadConfigForSections } from "./exports-BZLNbtkY.mjs";
|
|
2
|
-
import { A as errorRuntime$1, F as errorUnexpected, P as errorTargetMismatch, f as errorDriverRequired, l as errorContractValidationFailed, m as errorHashMismatch, p as errorFileNotFound, t as CliStructuredError$1, u as errorDatabaseConnectionRequired, y as errorMarkerMissing } from "./cli-errors-B4zTLaqQ-CXgjO9t4.mjs";
|
|
3
|
-
import { r as createTerminalUI } from "./terminal-ui-Cqz4LVL7-B0mcVdLy.mjs";
|
|
4
|
-
import { _ as resolveMigrationPaths, b as setCommandExamples, f as maskConnectionUrl, g as resolveContractPath, m as parseGlobalFlagsOrExit, n as closeQuietly, s as formatStyledHeader, t as addGlobalOptions, u as handleResult, y as setCommandDescriptions } from "./command-helpers-BCgwcqTe-lNCtppzM.mjs";
|
|
5
|
-
import { t as createProgressAdapter } from "./progress-adapter-CjAeTxY_-BXYSd1eY.mjs";
|
|
6
|
-
import { t as createControlClient } from "./client-C6Qp5ujC-Dxb7r79B.mjs";
|
|
7
|
-
import { t as combineVerifyResults } from "./combine-verify-results-B87B_pMc-D4l22OqY.mjs";
|
|
8
|
-
import { c as formatVerifyOutput, i as formatSchemaVerifyOutput, r as formatSchemaVerifyJson, s as formatVerifyJson } from "./verify-Cogr_Fj9-D3lCWA6t.mjs";
|
|
9
|
-
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
10
|
-
import { relative, resolve } from "pathe";
|
|
11
|
-
import { isStructuredError } from "@prisma/orm-framework/utils/structured-error";
|
|
12
|
-
import { readFile } from "node:fs/promises";
|
|
13
|
-
import { VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, createControlStack } from "@prisma/orm-framework/components/control";
|
|
14
|
-
import { notOk, ok } from "@prisma/orm-framework/utils/result";
|
|
15
|
-
import { Command } from "commander";
|
|
16
|
-
//#region ../../../1-framework/3-tooling/cli/dist/db-verify-BN7IrOAL.mjs
|
|
17
|
-
/**
|
|
18
|
-
* Maps a VerifyDatabaseResult failure to a CliStructuredError.
|
|
19
|
-
*/
|
|
20
|
-
function mapVerifyFailure(verifyResult) {
|
|
21
|
-
if (!verifyResult.ok && verifyResult.code) {
|
|
22
|
-
if (verifyResult.code === VERIFY_CODE_MARKER_MISSING) return errorMarkerMissing();
|
|
23
|
-
if (verifyResult.code === VERIFY_CODE_HASH_MISMATCH) {
|
|
24
|
-
const storageMatch = verifyResult.marker?.storageHash === verifyResult.contract.storageHash;
|
|
25
|
-
const profileMatch = !verifyResult.contract.profileHash || verifyResult.marker?.profileHash === verifyResult.contract.profileHash;
|
|
26
|
-
if (!storageMatch) return errorHashMismatch({
|
|
27
|
-
why: "Contract storageHash does not match database marker",
|
|
28
|
-
expected: verifyResult.contract.storageHash,
|
|
29
|
-
...ifDefined("actual", verifyResult.marker?.storageHash)
|
|
30
|
-
});
|
|
31
|
-
return errorHashMismatch({
|
|
32
|
-
why: profileMatch ? "Contract hash does not match database marker" : "Contract profileHash does not match database marker",
|
|
33
|
-
...ifDefined("expected", verifyResult.contract.profileHash),
|
|
34
|
-
...ifDefined("actual", verifyResult.marker?.profileHash)
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
if (verifyResult.code === VERIFY_CODE_TARGET_MISMATCH) return errorTargetMismatch(verifyResult.target.expected, verifyResult.target.actual ?? "unknown");
|
|
38
|
-
}
|
|
39
|
-
return errorRuntime$1("CONTRACT.VERIFY_FAILED", verifyResult.summary, {
|
|
40
|
-
why: "Verification failed",
|
|
41
|
-
fix: "Check contract and database state"
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
function errorInvalidVerifyMode(options) {
|
|
45
|
-
return new CliStructuredError$1("CLI.INVALID_VERIFY_MODE", "Invalid verify mode", {
|
|
46
|
-
why: options.why,
|
|
47
|
-
fix: options.fix,
|
|
48
|
-
docsUrl: "https://pris.ly/db-verify"
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
function resolveDbVerifyMode(options) {
|
|
52
|
-
if (options.markerOnly && options.schemaOnly) return notOk(errorInvalidVerifyMode({
|
|
53
|
-
why: "`--marker-only` and `--schema-only` cannot be used together",
|
|
54
|
-
fix: "Choose one mode: omit both to check the marker and schema, use `--marker-only` to check only the marker, or use `--schema-only` to check only the live schema."
|
|
55
|
-
}));
|
|
56
|
-
if (options.markerOnly && options.strict) return notOk(errorInvalidVerifyMode({
|
|
57
|
-
why: "`--strict` requires schema verification, but `--marker-only` skips it",
|
|
58
|
-
fix: "Remove `--strict`, or use `db verify` / `db verify --schema-only` when you want to check the live schema in strict mode."
|
|
59
|
-
}));
|
|
60
|
-
if (options.schemaOnly) return ok("schema-only");
|
|
61
|
-
if (options.markerOnly) return ok("marker-only");
|
|
62
|
-
return ok("full");
|
|
63
|
-
}
|
|
64
|
-
function formatDbVerifyModeLabel(mode, strict) {
|
|
65
|
-
if (mode === "marker-only") return "marker only";
|
|
66
|
-
if (mode === "schema-only") return `schema only (${strict ? "strict" : "tolerant"})`;
|
|
67
|
-
return `full (marker + schema, ${strict ? "strict" : "tolerant"})`;
|
|
68
|
-
}
|
|
69
|
-
function formatDbVerifyInvocation(mode, strict) {
|
|
70
|
-
const args = ["db verify"];
|
|
71
|
-
if (mode === "marker-only") args.push("--marker-only");
|
|
72
|
-
if (mode === "schema-only") args.push("--schema-only");
|
|
73
|
-
if (strict) args.push("--strict");
|
|
74
|
-
return args.join(" ");
|
|
75
|
-
}
|
|
76
|
-
function createDbVerifyConnectionRequiredError(options) {
|
|
77
|
-
const invocation = formatDbVerifyInvocation(options.mode, options.strict);
|
|
78
|
-
return errorDatabaseConnectionRequired({
|
|
79
|
-
why: `Database connection is required for ${invocation} (set db.connection in ${options.configPath}, or pass --db <url>)`,
|
|
80
|
-
retryCommand: `prisma-next ${invocation} --db <url>`
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function renderVerifyHeader(paths, options, mode, flags, ui) {
|
|
84
|
-
if (flags.json || flags.quiet) return;
|
|
85
|
-
const description = mode === "schema-only" ? "Check whether the live database schema matches your contract" : mode === "marker-only" ? "Check whether the database marker matches your contract" : "Check whether the database marker and live schema match your contract";
|
|
86
|
-
const details = [
|
|
87
|
-
{
|
|
88
|
-
label: "config",
|
|
89
|
-
value: paths.configPath
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
label: "contract",
|
|
93
|
-
value: paths.contractPath
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
label: "mode",
|
|
97
|
-
value: formatDbVerifyModeLabel(mode, options.strict ?? false)
|
|
98
|
-
}
|
|
99
|
-
];
|
|
100
|
-
if (options.db) details.push({
|
|
101
|
-
label: "database",
|
|
102
|
-
value: maskConnectionUrl(options.db)
|
|
103
|
-
});
|
|
104
|
-
ui.stderr(formatStyledHeader({
|
|
105
|
-
command: "db verify",
|
|
106
|
-
description,
|
|
107
|
-
url: "https://pris.ly/db-verify",
|
|
108
|
-
details,
|
|
109
|
-
flags
|
|
110
|
-
}));
|
|
111
|
-
}
|
|
112
|
-
async function resolveVerifyPaths(options) {
|
|
113
|
-
const configResult = await loadConfigForSections(options.config, [
|
|
114
|
-
"family",
|
|
115
|
-
"target",
|
|
116
|
-
"adapter",
|
|
117
|
-
"driver",
|
|
118
|
-
"extensions",
|
|
119
|
-
"db",
|
|
120
|
-
"migrations",
|
|
121
|
-
"contract"
|
|
122
|
-
]);
|
|
123
|
-
if (!configResult.ok) return configResult;
|
|
124
|
-
const config = configResult.value;
|
|
125
|
-
const configPath = options.config ? relative(process.cwd(), resolve(options.config)) : "prisma-next.config.ts";
|
|
126
|
-
const contractPathAbsolute = resolveContractPath(config);
|
|
127
|
-
return ok({
|
|
128
|
-
config,
|
|
129
|
-
configPath,
|
|
130
|
-
contractPathAbsolute,
|
|
131
|
-
contractPath: relative(process.cwd(), contractPathAbsolute)
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
async function resolveVerifySetup(paths, options, mode) {
|
|
135
|
-
const { config, configPath, contractPathAbsolute, contractPath } = paths;
|
|
136
|
-
let contractJsonContent;
|
|
137
|
-
try {
|
|
138
|
-
contractJsonContent = await readFile(contractPathAbsolute, "utf-8");
|
|
139
|
-
} catch (error) {
|
|
140
|
-
if (error instanceof Error && error.code === "ENOENT") return notOk(errorFileNotFound(contractPathAbsolute, {
|
|
141
|
-
why: `Contract file not found at ${contractPathAbsolute}`,
|
|
142
|
-
fix: `Run \`prisma-next contract emit\` to generate ${contractPath}, or update \`config.contract.output\` in ${configPath}`
|
|
143
|
-
}));
|
|
144
|
-
return notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to read contract file: ${error instanceof Error ? error.message : String(error)}` }));
|
|
145
|
-
}
|
|
146
|
-
const stack = createControlStack(config);
|
|
147
|
-
const familyInstance = config.family.create(stack);
|
|
148
|
-
let contractJson;
|
|
149
|
-
try {
|
|
150
|
-
contractJson = familyInstance.deserializeContract(JSON.parse(contractJsonContent));
|
|
151
|
-
} catch (error) {
|
|
152
|
-
if (isStructuredError(error) && error.code === "CONTRACT.VALIDATION_FAILED") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));
|
|
153
|
-
return notOk(errorContractValidationFailed(`Contract JSON is invalid: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));
|
|
154
|
-
}
|
|
155
|
-
const dbConnection = options.db ?? config.db?.connection;
|
|
156
|
-
if (typeof dbConnection !== "string" || dbConnection.length === 0) return notOk(createDbVerifyConnectionRequiredError({
|
|
157
|
-
configPath,
|
|
158
|
-
mode,
|
|
159
|
-
strict: options.strict ?? false
|
|
160
|
-
}));
|
|
161
|
-
if (!config.driver) return notOk(errorDriverRequired({ why: `Config.driver is required for ${formatDbVerifyInvocation(mode, options.strict ?? false)}` }));
|
|
162
|
-
return ok({
|
|
163
|
-
...paths,
|
|
164
|
-
contractJson,
|
|
165
|
-
dbConnection
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
function createVerifyClient(setup) {
|
|
169
|
-
return createControlClient({
|
|
170
|
-
family: setup.config.family,
|
|
171
|
-
target: setup.config.target,
|
|
172
|
-
adapter: setup.config.adapter,
|
|
173
|
-
driver: setup.config.driver,
|
|
174
|
-
extensions: setup.config.extensions ?? []
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
function wrapVerifyError(error, contractPathAbsolute, modeLabel) {
|
|
178
|
-
if (CliStructuredError$1.is(error)) return notOk(error);
|
|
179
|
-
if (isStructuredError(error) && error.code === "CONTRACT.VALIDATION_FAILED") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));
|
|
180
|
-
return notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Unexpected error during ${modeLabel}: ${error instanceof Error ? error.message : String(error)}` }));
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Executes the db verify command and returns a structured Result.
|
|
184
|
-
*/
|
|
185
|
-
async function executeDbVerifyCommand(options, flags, ui, mode) {
|
|
186
|
-
const startTime = Date.now();
|
|
187
|
-
const pathsResult = await resolveVerifyPaths(options);
|
|
188
|
-
if (!pathsResult.ok) return pathsResult;
|
|
189
|
-
const paths = pathsResult.value;
|
|
190
|
-
renderVerifyHeader(paths, options, mode, flags, ui);
|
|
191
|
-
const setupResult = await resolveVerifySetup(paths, options, mode);
|
|
192
|
-
if (!setupResult.ok) return setupResult;
|
|
193
|
-
const { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;
|
|
194
|
-
const { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config, process.cwd());
|
|
195
|
-
const client = createVerifyClient(setupResult.value);
|
|
196
|
-
const onProgress = createProgressAdapter({
|
|
197
|
-
ui,
|
|
198
|
-
flags
|
|
199
|
-
});
|
|
200
|
-
try {
|
|
201
|
-
const verifyResult = await client.verify({
|
|
202
|
-
contract: contractJson,
|
|
203
|
-
connection: dbConnection,
|
|
204
|
-
onProgress
|
|
205
|
-
});
|
|
206
|
-
if (!verifyResult.ok) return notOk(mapVerifyFailure(verifyResult));
|
|
207
|
-
const aggregateResult = await client.dbVerify({
|
|
208
|
-
contract: contractJson,
|
|
209
|
-
migrationsDir,
|
|
210
|
-
strict: options.strict ?? false,
|
|
211
|
-
skipSchema: mode === "marker-only",
|
|
212
|
-
skipMarker: false,
|
|
213
|
-
onProgress
|
|
214
|
-
});
|
|
215
|
-
if (!aggregateResult.ok) return notOk(aggregateResult.failure);
|
|
216
|
-
if (aggregateResult.value.markerDrift !== null) return notOk(aggregateResult.value.markerDrift);
|
|
217
|
-
if (mode === "marker-only") return ok({
|
|
218
|
-
ok: true,
|
|
219
|
-
mode: "marker-only",
|
|
220
|
-
summary: "Database marker matches contract",
|
|
221
|
-
contract: verifyResult.contract,
|
|
222
|
-
marker: verifyResult.marker,
|
|
223
|
-
target: verifyResult.target,
|
|
224
|
-
...ifDefined("missingCodecs", verifyResult.missingCodecs),
|
|
225
|
-
...ifDefined("codecCoverageSkipped", verifyResult.codecCoverageSkipped),
|
|
226
|
-
warning: "Schema verification skipped because --marker-only was provided",
|
|
227
|
-
meta: {
|
|
228
|
-
...verifyResult.meta ?? {},
|
|
229
|
-
schemaVerification: "skipped"
|
|
230
|
-
},
|
|
231
|
-
timings: { total: Date.now() - startTime }
|
|
232
|
-
});
|
|
233
|
-
const combined = combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed);
|
|
234
|
-
if (!combined.result.ok) return notOk(combined);
|
|
235
|
-
return ok({
|
|
236
|
-
ok: true,
|
|
237
|
-
mode: "full",
|
|
238
|
-
summary: "Database marker and schema match contract",
|
|
239
|
-
contract: verifyResult.contract,
|
|
240
|
-
marker: verifyResult.marker,
|
|
241
|
-
target: verifyResult.target,
|
|
242
|
-
...ifDefined("missingCodecs", verifyResult.missingCodecs),
|
|
243
|
-
...ifDefined("codecCoverageSkipped", verifyResult.codecCoverageSkipped),
|
|
244
|
-
schema: {
|
|
245
|
-
summary: combined.result.summary,
|
|
246
|
-
strict: combined.result.meta?.strict ?? false,
|
|
247
|
-
warnings: (combined.result.schema.warnings?.issues ?? []).map((issue) => issue.path.join("/"))
|
|
248
|
-
},
|
|
249
|
-
unclaimed: combined.unclaimed,
|
|
250
|
-
meta: {
|
|
251
|
-
...verifyResult.meta ?? {},
|
|
252
|
-
schemaVerification: "performed"
|
|
253
|
-
},
|
|
254
|
-
timings: { total: Date.now() - startTime }
|
|
255
|
-
});
|
|
256
|
-
} catch (error) {
|
|
257
|
-
return wrapVerifyError(error, contractPathAbsolute, "db verify");
|
|
258
|
-
} finally {
|
|
259
|
-
await closeQuietly(client);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
async function executeDbSchemaOnlyVerifyCommand(options, flags, ui) {
|
|
263
|
-
const pathsResult = await resolveVerifyPaths(options);
|
|
264
|
-
if (!pathsResult.ok) return pathsResult;
|
|
265
|
-
const paths = pathsResult.value;
|
|
266
|
-
renderVerifyHeader(paths, options, "schema-only", flags, ui);
|
|
267
|
-
const setupResult = await resolveVerifySetup(paths, options, "schema-only");
|
|
268
|
-
if (!setupResult.ok) return setupResult;
|
|
269
|
-
const { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;
|
|
270
|
-
const { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config, process.cwd());
|
|
271
|
-
const client = createVerifyClient(setupResult.value);
|
|
272
|
-
const onProgress = createProgressAdapter({
|
|
273
|
-
ui,
|
|
274
|
-
flags
|
|
275
|
-
});
|
|
276
|
-
try {
|
|
277
|
-
await client.connect(dbConnection);
|
|
278
|
-
const aggregateResult = await client.dbVerify({
|
|
279
|
-
contract: contractJson,
|
|
280
|
-
migrationsDir,
|
|
281
|
-
strict: options.strict ?? false,
|
|
282
|
-
skipSchema: false,
|
|
283
|
-
skipMarker: true,
|
|
284
|
-
onProgress
|
|
285
|
-
});
|
|
286
|
-
if (!aggregateResult.ok) return notOk(aggregateResult.failure);
|
|
287
|
-
return ok(combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed));
|
|
288
|
-
} catch (error) {
|
|
289
|
-
return wrapVerifyError(error, contractPathAbsolute, "db verify --schema-only");
|
|
290
|
-
} finally {
|
|
291
|
-
await closeQuietly(client);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
function createDbVerifyCommand() {
|
|
295
|
-
const command = new Command("verify");
|
|
296
|
-
setCommandDescriptions(command, "Check whether the database marker and live schema match your contract", "Verifies the database marker first, then checks the database schema matches your contract.\nUse `--marker-only` for marker-only verification, `--schema-only` to skip marker checks and\ninspect only the live schema, and `--strict` to fail if the database includes elements\nnot present in the contract.");
|
|
297
|
-
setCommandExamples(command, [
|
|
298
|
-
"prisma-next db verify --db $DATABASE_URL",
|
|
299
|
-
"prisma-next db verify --db $DATABASE_URL --strict",
|
|
300
|
-
"prisma-next db verify --db $DATABASE_URL --schema-only",
|
|
301
|
-
"prisma-next db verify --db $DATABASE_URL --schema-only --strict",
|
|
302
|
-
"prisma-next db verify --db $DATABASE_URL --marker-only",
|
|
303
|
-
"prisma-next db verify --db $DATABASE_URL --json"
|
|
304
|
-
]);
|
|
305
|
-
addGlobalOptions(command).option("--db <url>", "Database connection string").option("--config <path>", "Path to prisma-next.config.ts").option("--marker-only", "Skip schema verification and only check the database marker").option("--schema-only", "Skip marker verification and only check whether the live schema satisfies the contract").option("--strict", "Strict mode: schema elements not present in the contract are considered an error", false).action(async (options) => {
|
|
306
|
-
const flags = parseGlobalFlagsOrExit(options);
|
|
307
|
-
const ui = createTerminalUI(flags);
|
|
308
|
-
const modeResult = resolveDbVerifyMode(options);
|
|
309
|
-
if (!modeResult.ok) {
|
|
310
|
-
const exitCode = handleResult(modeResult, flags, ui);
|
|
311
|
-
process.exit(exitCode);
|
|
312
|
-
}
|
|
313
|
-
const mode = modeResult.value;
|
|
314
|
-
if (mode === "schema-only") {
|
|
315
|
-
const result = await executeDbSchemaOnlyVerifyCommand(options, flags, ui);
|
|
316
|
-
const exitCode = handleResult(result, flags, ui, (combined) => {
|
|
317
|
-
if (flags.json) ui.output(formatSchemaVerifyJson(combined.result, combined.unclaimed));
|
|
318
|
-
else {
|
|
319
|
-
const renderFlags = combined.result.ok ? flags : {
|
|
320
|
-
...flags,
|
|
321
|
-
quiet: false
|
|
322
|
-
};
|
|
323
|
-
const output = formatSchemaVerifyOutput(combined.result, renderFlags, combined.unclaimed);
|
|
324
|
-
if (output) ui.log(output);
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
|
-
if (result.ok && !result.value.result.ok) process.exit(1);
|
|
328
|
-
process.exit(exitCode);
|
|
329
|
-
}
|
|
330
|
-
const result = await executeDbVerifyCommand(options, flags, ui, mode);
|
|
331
|
-
if (result.ok) {
|
|
332
|
-
if (flags.json) ui.output(formatVerifyJson(result.value));
|
|
333
|
-
else {
|
|
334
|
-
const output = formatVerifyOutput(result.value, flags);
|
|
335
|
-
if (output) ui.log(output);
|
|
336
|
-
}
|
|
337
|
-
process.exit(0);
|
|
338
|
-
}
|
|
339
|
-
if (CliStructuredError$1.is(result.failure)) {
|
|
340
|
-
const exitCode = handleResult(result, flags, ui);
|
|
341
|
-
process.exit(exitCode);
|
|
342
|
-
}
|
|
343
|
-
if (flags.json) ui.output(formatSchemaVerifyJson(result.failure.result, result.failure.unclaimed));
|
|
344
|
-
else {
|
|
345
|
-
const output = formatSchemaVerifyOutput(result.failure.result, {
|
|
346
|
-
...flags,
|
|
347
|
-
quiet: false
|
|
348
|
-
}, result.failure.unclaimed);
|
|
349
|
-
if (output) ui.log(output);
|
|
350
|
-
}
|
|
351
|
-
process.exit(1);
|
|
352
|
-
});
|
|
353
|
-
return command;
|
|
354
|
-
}
|
|
355
|
-
//#endregion
|
|
356
|
-
export { createDbVerifyCommand as t };
|
|
357
|
-
|
|
358
|
-
//# sourceMappingURL=db-verify-BN7IrOAL-kEzRNJUl.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-verify-BN7IrOAL-kEzRNJUl.mjs","names":["errorRuntime","CliStructuredError"],"sources":["../../../../1-framework/3-tooling/cli/dist/db-verify-BN7IrOAL.mjs"],"sourcesContent":["import { N as errorTargetMismatch, P as errorUnexpected, c as errorContractValidationFailed, d as errorDriverRequired, f as errorFileNotFound, k as errorRuntime, l as errorDatabaseConnectionRequired, p as errorHashMismatch, t as CliStructuredError, v as errorMarkerMissing } from \"./cli-errors-B4zTLaqQ.mjs\";\nimport { t as createTerminalUI } from \"./terminal-ui-Cqz4LVL7.mjs\";\nimport { S as formatStyledHeader, _ as parseGlobalFlagsOrExit, a as maskConnectionUrl, c as resolveMigrationPaths, d as setCommandExamples, n as closeQuietly, s as resolveContractPath, t as addGlobalOptions, u as setCommandDescriptions, v as handleResult } from \"./command-helpers-BCgwcqTe.mjs\";\nimport { t as createProgressAdapter } from \"./progress-adapter-CjAeTxY_.mjs\";\nimport { t as createControlClient } from \"./client-C6Qp5ujC.mjs\";\nimport { c as formatVerifyOutput, i as formatSchemaVerifyOutput, r as formatSchemaVerifyJson, s as formatVerifyJson } from \"./verify-Cogr_Fj9.mjs\";\nimport { t as combineVerifyResults } from \"./combine-verify-results-B87B_pMc.mjs\";\nimport { Command } from \"commander\";\nimport { loadConfigForSections } from \"@internal/config-loader\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { notOk, ok } from \"@internal/utils/result\";\nimport { relative, resolve } from \"pathe\";\nimport { readFile } from \"node:fs/promises\";\nimport { VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, createControlStack } from \"@internal/framework-components/control\";\nimport { isStructuredError } from \"@internal/utils/structured-error\";\n//#region src/commands/db-verify.ts\n/**\n* Maps a VerifyDatabaseResult failure to a CliStructuredError.\n*/\nfunction mapVerifyFailure(verifyResult) {\n\tif (!verifyResult.ok && verifyResult.code) {\n\t\tif (verifyResult.code === VERIFY_CODE_MARKER_MISSING) return errorMarkerMissing();\n\t\tif (verifyResult.code === VERIFY_CODE_HASH_MISMATCH) {\n\t\t\tconst storageMatch = verifyResult.marker?.storageHash === verifyResult.contract.storageHash;\n\t\t\tconst profileMatch = !verifyResult.contract.profileHash || verifyResult.marker?.profileHash === verifyResult.contract.profileHash;\n\t\t\tif (!storageMatch) return errorHashMismatch({\n\t\t\t\twhy: \"Contract storageHash does not match database marker\",\n\t\t\t\texpected: verifyResult.contract.storageHash,\n\t\t\t\t...ifDefined(\"actual\", verifyResult.marker?.storageHash)\n\t\t\t});\n\t\t\treturn errorHashMismatch({\n\t\t\t\twhy: profileMatch ? \"Contract hash does not match database marker\" : \"Contract profileHash does not match database marker\",\n\t\t\t\t...ifDefined(\"expected\", verifyResult.contract.profileHash),\n\t\t\t\t...ifDefined(\"actual\", verifyResult.marker?.profileHash)\n\t\t\t});\n\t\t}\n\t\tif (verifyResult.code === VERIFY_CODE_TARGET_MISMATCH) return errorTargetMismatch(verifyResult.target.expected, verifyResult.target.actual ?? \"unknown\");\n\t}\n\treturn errorRuntime(\"CONTRACT.VERIFY_FAILED\", verifyResult.summary, {\n\t\twhy: \"Verification failed\",\n\t\tfix: \"Check contract and database state\"\n\t});\n}\nfunction errorInvalidVerifyMode(options) {\n\treturn new CliStructuredError(\"CLI.INVALID_VERIFY_MODE\", \"Invalid verify mode\", {\n\t\twhy: options.why,\n\t\tfix: options.fix,\n\t\tdocsUrl: \"https://pris.ly/db-verify\"\n\t});\n}\nfunction resolveDbVerifyMode(options) {\n\tif (options.markerOnly && options.schemaOnly) return notOk(errorInvalidVerifyMode({\n\t\twhy: \"`--marker-only` and `--schema-only` cannot be used together\",\n\t\tfix: \"Choose one mode: omit both to check the marker and schema, use `--marker-only` to check only the marker, or use `--schema-only` to check only the live schema.\"\n\t}));\n\tif (options.markerOnly && options.strict) return notOk(errorInvalidVerifyMode({\n\t\twhy: \"`--strict` requires schema verification, but `--marker-only` skips it\",\n\t\tfix: \"Remove `--strict`, or use `db verify` / `db verify --schema-only` when you want to check the live schema in strict mode.\"\n\t}));\n\tif (options.schemaOnly) return ok(\"schema-only\");\n\tif (options.markerOnly) return ok(\"marker-only\");\n\treturn ok(\"full\");\n}\nfunction formatDbVerifyModeLabel(mode, strict) {\n\tif (mode === \"marker-only\") return \"marker only\";\n\tif (mode === \"schema-only\") return `schema only (${strict ? \"strict\" : \"tolerant\"})`;\n\treturn `full (marker + schema, ${strict ? \"strict\" : \"tolerant\"})`;\n}\nfunction formatDbVerifyInvocation(mode, strict) {\n\tconst args = [\"db verify\"];\n\tif (mode === \"marker-only\") args.push(\"--marker-only\");\n\tif (mode === \"schema-only\") args.push(\"--schema-only\");\n\tif (strict) args.push(\"--strict\");\n\treturn args.join(\" \");\n}\nfunction createDbVerifyConnectionRequiredError(options) {\n\tconst invocation = formatDbVerifyInvocation(options.mode, options.strict);\n\treturn errorDatabaseConnectionRequired({\n\t\twhy: `Database connection is required for ${invocation} (set db.connection in ${options.configPath}, or pass --db <url>)`,\n\t\tretryCommand: `prisma-next ${invocation} --db <url>`\n\t});\n}\nfunction renderVerifyHeader(paths, options, mode, flags, ui) {\n\tif (flags.json || flags.quiet) return;\n\tconst description = mode === \"schema-only\" ? \"Check whether the live database schema matches your contract\" : mode === \"marker-only\" ? \"Check whether the database marker matches your contract\" : \"Check whether the database marker and live schema match your contract\";\n\tconst details = [\n\t\t{\n\t\t\tlabel: \"config\",\n\t\t\tvalue: paths.configPath\n\t\t},\n\t\t{\n\t\t\tlabel: \"contract\",\n\t\t\tvalue: paths.contractPath\n\t\t},\n\t\t{\n\t\t\tlabel: \"mode\",\n\t\t\tvalue: formatDbVerifyModeLabel(mode, options.strict ?? false)\n\t\t}\n\t];\n\tif (options.db) details.push({\n\t\tlabel: \"database\",\n\t\tvalue: maskConnectionUrl(options.db)\n\t});\n\tui.stderr(formatStyledHeader({\n\t\tcommand: \"db verify\",\n\t\tdescription,\n\t\turl: \"https://pris.ly/db-verify\",\n\t\tdetails,\n\t\tflags\n\t}));\n}\nasync function resolveVerifyPaths(options) {\n\tconst configResult = await loadConfigForSections(options.config, [\n\t\t\"family\",\n\t\t\"target\",\n\t\t\"adapter\",\n\t\t\"driver\",\n\t\t\"extensions\",\n\t\t\"db\",\n\t\t\"migrations\",\n\t\t\"contract\"\n\t]);\n\tif (!configResult.ok) return configResult;\n\tconst config = configResult.value;\n\tconst configPath = options.config ? relative(process.cwd(), resolve(options.config)) : \"prisma-next.config.ts\";\n\tconst contractPathAbsolute = resolveContractPath(config);\n\treturn ok({\n\t\tconfig,\n\t\tconfigPath,\n\t\tcontractPathAbsolute,\n\t\tcontractPath: relative(process.cwd(), contractPathAbsolute)\n\t});\n}\nasync function resolveVerifySetup(paths, options, mode) {\n\tconst { config, configPath, contractPathAbsolute, contractPath } = paths;\n\tlet contractJsonContent;\n\ttry {\n\t\tcontractJsonContent = await readFile(contractPathAbsolute, \"utf-8\");\n\t} catch (error) {\n\t\tif (error instanceof Error && error.code === \"ENOENT\") return notOk(errorFileNotFound(contractPathAbsolute, {\n\t\t\twhy: `Contract file not found at ${contractPathAbsolute}`,\n\t\t\tfix: `Run \\`prisma-next contract emit\\` to generate ${contractPath}, or update \\`config.contract.output\\` in ${configPath}`\n\t\t}));\n\t\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Failed to read contract file: ${error instanceof Error ? error.message : String(error)}` }));\n\t}\n\tconst stack = createControlStack(config);\n\tconst familyInstance = config.family.create(stack);\n\tlet contractJson;\n\ttry {\n\t\tcontractJson = familyInstance.deserializeContract(JSON.parse(contractJsonContent));\n\t} catch (error) {\n\t\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\t\treturn notOk(errorContractValidationFailed(`Contract JSON is invalid: ${error instanceof Error ? error.message : String(error)}`, { where: { path: contractPathAbsolute } }));\n\t}\n\tconst dbConnection = options.db ?? config.db?.connection;\n\tif (typeof dbConnection !== \"string\" || dbConnection.length === 0) return notOk(createDbVerifyConnectionRequiredError({\n\t\tconfigPath,\n\t\tmode,\n\t\tstrict: options.strict ?? false\n\t}));\n\tif (!config.driver) return notOk(errorDriverRequired({ why: `Config.driver is required for ${formatDbVerifyInvocation(mode, options.strict ?? false)}` }));\n\treturn ok({\n\t\t...paths,\n\t\tcontractJson,\n\t\tdbConnection\n\t});\n}\nfunction createVerifyClient(setup) {\n\treturn createControlClient({\n\t\tfamily: setup.config.family,\n\t\ttarget: setup.config.target,\n\t\tadapter: setup.config.adapter,\n\t\tdriver: setup.config.driver,\n\t\textensions: setup.config.extensions ?? []\n\t});\n}\nfunction wrapVerifyError(error, contractPathAbsolute, modeLabel) {\n\tif (CliStructuredError.is(error)) return notOk(error);\n\tif (isStructuredError(error) && error.code === \"CONTRACT.VALIDATION_FAILED\") return notOk(errorContractValidationFailed(`Contract validation failed: ${error.message}`, { where: { path: contractPathAbsolute } }));\n\treturn notOk(errorUnexpected(error instanceof Error ? error.message : String(error), { why: `Unexpected error during ${modeLabel}: ${error instanceof Error ? error.message : String(error)}` }));\n}\n/**\n* Executes the db verify command and returns a structured Result.\n*/\nasync function executeDbVerifyCommand(options, flags, ui, mode) {\n\tconst startTime = Date.now();\n\tconst pathsResult = await resolveVerifyPaths(options);\n\tif (!pathsResult.ok) return pathsResult;\n\tconst paths = pathsResult.value;\n\trenderVerifyHeader(paths, options, mode, flags, ui);\n\tconst setupResult = await resolveVerifySetup(paths, options, mode);\n\tif (!setupResult.ok) return setupResult;\n\tconst { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;\n\tconst { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config, process.cwd());\n\tconst client = createVerifyClient(setupResult.value);\n\tconst onProgress = createProgressAdapter({\n\t\tui,\n\t\tflags\n\t});\n\ttry {\n\t\tconst verifyResult = await client.verify({\n\t\t\tcontract: contractJson,\n\t\t\tconnection: dbConnection,\n\t\t\tonProgress\n\t\t});\n\t\tif (!verifyResult.ok) return notOk(mapVerifyFailure(verifyResult));\n\t\tconst aggregateResult = await client.dbVerify({\n\t\t\tcontract: contractJson,\n\t\t\tmigrationsDir,\n\t\t\tstrict: options.strict ?? false,\n\t\t\tskipSchema: mode === \"marker-only\",\n\t\t\tskipMarker: false,\n\t\t\tonProgress\n\t\t});\n\t\tif (!aggregateResult.ok) return notOk(aggregateResult.failure);\n\t\tif (aggregateResult.value.markerDrift !== null) return notOk(aggregateResult.value.markerDrift);\n\t\tif (mode === \"marker-only\") return ok({\n\t\t\tok: true,\n\t\t\tmode: \"marker-only\",\n\t\t\tsummary: \"Database marker matches contract\",\n\t\t\tcontract: verifyResult.contract,\n\t\t\tmarker: verifyResult.marker,\n\t\t\ttarget: verifyResult.target,\n\t\t\t...ifDefined(\"missingCodecs\", verifyResult.missingCodecs),\n\t\t\t...ifDefined(\"codecCoverageSkipped\", verifyResult.codecCoverageSkipped),\n\t\t\twarning: \"Schema verification skipped because --marker-only was provided\",\n\t\t\tmeta: {\n\t\t\t\t...verifyResult.meta ?? {},\n\t\t\t\tschemaVerification: \"skipped\"\n\t\t\t},\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t\tconst combined = combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed);\n\t\tif (!combined.result.ok) return notOk(combined);\n\t\treturn ok({\n\t\t\tok: true,\n\t\t\tmode: \"full\",\n\t\t\tsummary: \"Database marker and schema match contract\",\n\t\t\tcontract: verifyResult.contract,\n\t\t\tmarker: verifyResult.marker,\n\t\t\ttarget: verifyResult.target,\n\t\t\t...ifDefined(\"missingCodecs\", verifyResult.missingCodecs),\n\t\t\t...ifDefined(\"codecCoverageSkipped\", verifyResult.codecCoverageSkipped),\n\t\t\tschema: {\n\t\t\t\tsummary: combined.result.summary,\n\t\t\t\tstrict: combined.result.meta?.strict ?? false,\n\t\t\t\twarnings: (combined.result.schema.warnings?.issues ?? []).map((issue) => issue.path.join(\"/\"))\n\t\t\t},\n\t\t\tunclaimed: combined.unclaimed,\n\t\t\tmeta: {\n\t\t\t\t...verifyResult.meta ?? {},\n\t\t\t\tschemaVerification: \"performed\"\n\t\t\t},\n\t\t\ttimings: { total: Date.now() - startTime }\n\t\t});\n\t} catch (error) {\n\t\treturn wrapVerifyError(error, contractPathAbsolute, \"db verify\");\n\t} finally {\n\t\tawait closeQuietly(client);\n\t}\n}\nasync function executeDbSchemaOnlyVerifyCommand(options, flags, ui) {\n\tconst pathsResult = await resolveVerifyPaths(options);\n\tif (!pathsResult.ok) return pathsResult;\n\tconst paths = pathsResult.value;\n\trenderVerifyHeader(paths, options, \"schema-only\", flags, ui);\n\tconst setupResult = await resolveVerifySetup(paths, options, \"schema-only\");\n\tif (!setupResult.ok) return setupResult;\n\tconst { contractJson, dbConnection, contractPathAbsolute } = setupResult.value;\n\tconst { migrationsDir } = resolveMigrationPaths(options.config, setupResult.value.config, process.cwd());\n\tconst client = createVerifyClient(setupResult.value);\n\tconst onProgress = createProgressAdapter({\n\t\tui,\n\t\tflags\n\t});\n\ttry {\n\t\tawait client.connect(dbConnection);\n\t\tconst aggregateResult = await client.dbVerify({\n\t\t\tcontract: contractJson,\n\t\t\tmigrationsDir,\n\t\t\tstrict: options.strict ?? false,\n\t\t\tskipSchema: false,\n\t\t\tskipMarker: true,\n\t\t\tonProgress\n\t\t});\n\t\tif (!aggregateResult.ok) return notOk(aggregateResult.failure);\n\t\treturn ok(combineVerifyResults(aggregateResult.value.schemaResults, aggregateResult.value.appSpaceId, options.strict ?? false, aggregateResult.value.unclaimed));\n\t} catch (error) {\n\t\treturn wrapVerifyError(error, contractPathAbsolute, \"db verify --schema-only\");\n\t} finally {\n\t\tawait closeQuietly(client);\n\t}\n}\nfunction createDbVerifyCommand() {\n\tconst command = new Command(\"verify\");\n\tsetCommandDescriptions(command, \"Check whether the database marker and live schema match your contract\", \"Verifies the database marker first, then checks the database schema matches your contract.\\nUse `--marker-only` for marker-only verification, `--schema-only` to skip marker checks and\\ninspect only the live schema, and `--strict` to fail if the database includes elements\\nnot present in the contract.\");\n\tsetCommandExamples(command, [\n\t\t\"prisma-next db verify --db $DATABASE_URL\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --strict\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --schema-only\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --schema-only --strict\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --marker-only\",\n\t\t\"prisma-next db verify --db $DATABASE_URL --json\"\n\t]);\n\taddGlobalOptions(command).option(\"--db <url>\", \"Database connection string\").option(\"--config <path>\", \"Path to prisma-next.config.ts\").option(\"--marker-only\", \"Skip schema verification and only check the database marker\").option(\"--schema-only\", \"Skip marker verification and only check whether the live schema satisfies the contract\").option(\"--strict\", \"Strict mode: schema elements not present in the contract are considered an error\", false).action(async (options) => {\n\t\tconst flags = parseGlobalFlagsOrExit(options);\n\t\tconst ui = createTerminalUI(flags);\n\t\tconst modeResult = resolveDbVerifyMode(options);\n\t\tif (!modeResult.ok) {\n\t\t\tconst exitCode = handleResult(modeResult, flags, ui);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tconst mode = modeResult.value;\n\t\tif (mode === \"schema-only\") {\n\t\t\tconst result = await executeDbSchemaOnlyVerifyCommand(options, flags, ui);\n\t\t\tconst exitCode = handleResult(result, flags, ui, (combined) => {\n\t\t\t\tif (flags.json) ui.output(formatSchemaVerifyJson(combined.result, combined.unclaimed));\n\t\t\t\telse {\n\t\t\t\t\tconst renderFlags = combined.result.ok ? flags : {\n\t\t\t\t\t\t...flags,\n\t\t\t\t\t\tquiet: false\n\t\t\t\t\t};\n\t\t\t\t\tconst output = formatSchemaVerifyOutput(combined.result, renderFlags, combined.unclaimed);\n\t\t\t\t\tif (output) ui.log(output);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (result.ok && !result.value.result.ok) process.exit(1);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tconst result = await executeDbVerifyCommand(options, flags, ui, mode);\n\t\tif (result.ok) {\n\t\t\tif (flags.json) ui.output(formatVerifyJson(result.value));\n\t\t\telse {\n\t\t\t\tconst output = formatVerifyOutput(result.value, flags);\n\t\t\t\tif (output) ui.log(output);\n\t\t\t}\n\t\t\tprocess.exit(0);\n\t\t}\n\t\tif (CliStructuredError.is(result.failure)) {\n\t\t\tconst exitCode = handleResult(result, flags, ui);\n\t\t\tprocess.exit(exitCode);\n\t\t}\n\t\tif (flags.json) ui.output(formatSchemaVerifyJson(result.failure.result, result.failure.unclaimed));\n\t\telse {\n\t\t\tconst output = formatSchemaVerifyOutput(result.failure.result, {\n\t\t\t\t...flags,\n\t\t\t\tquiet: false\n\t\t\t}, result.failure.unclaimed);\n\t\t\tif (output) ui.log(output);\n\t\t}\n\t\tprocess.exit(1);\n\t});\n\treturn command;\n}\n//#endregion\nexport { createDbVerifyCommand as t };\n\n//# sourceMappingURL=db-verify-BN7IrOAL.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,SAAS,iBAAiB,cAAc;CACvC,IAAI,CAAC,aAAa,MAAM,aAAa,MAAM;EAC1C,IAAI,aAAa,SAAS,4BAA4B,OAAO,mBAAmB;EAChF,IAAI,aAAa,SAAS,2BAA2B;GACpD,MAAM,eAAe,aAAa,QAAQ,gBAAgB,aAAa,SAAS;GAChF,MAAM,eAAe,CAAC,aAAa,SAAS,eAAe,aAAa,QAAQ,gBAAgB,aAAa,SAAS;GACtH,IAAI,CAAC,cAAc,OAAO,kBAAkB;IAC3C,KAAK;IACL,UAAU,aAAa,SAAS;IAChC,GAAG,UAAU,UAAU,aAAa,QAAQ,WAAW;GACxD,CAAC;GACD,OAAO,kBAAkB;IACxB,KAAK,eAAe,iDAAiD;IACrE,GAAG,UAAU,YAAY,aAAa,SAAS,WAAW;IAC1D,GAAG,UAAU,UAAU,aAAa,QAAQ,WAAW;GACxD,CAAC;EACF;EACA,IAAI,aAAa,SAAS,6BAA6B,OAAO,oBAAoB,aAAa,OAAO,UAAU,aAAa,OAAO,UAAU,SAAS;CACxJ;CACA,OAAOA,eAAa,0BAA0B,aAAa,SAAS;EACnE,KAAK;EACL,KAAK;CACN,CAAC;AACF;AACA,SAAS,uBAAuB,SAAS;CACxC,OAAO,IAAIC,qBAAmB,2BAA2B,uBAAuB;EAC/E,KAAK,QAAQ;EACb,KAAK,QAAQ;EACb,SAAS;CACV,CAAC;AACF;AACA,SAAS,oBAAoB,SAAS;CACrC,IAAI,QAAQ,cAAc,QAAQ,YAAY,OAAO,MAAM,uBAAuB;EACjF,KAAK;EACL,KAAK;CACN,CAAC,CAAC;CACF,IAAI,QAAQ,cAAc,QAAQ,QAAQ,OAAO,MAAM,uBAAuB;EAC7E,KAAK;EACL,KAAK;CACN,CAAC,CAAC;CACF,IAAI,QAAQ,YAAY,OAAO,GAAG,aAAa;CAC/C,IAAI,QAAQ,YAAY,OAAO,GAAG,aAAa;CAC/C,OAAO,GAAG,MAAM;AACjB;AACA,SAAS,wBAAwB,MAAM,QAAQ;CAC9C,IAAI,SAAS,eAAe,OAAO;CACnC,IAAI,SAAS,eAAe,OAAO,gBAAgB,SAAS,WAAW,WAAW;CAClF,OAAO,0BAA0B,SAAS,WAAW,WAAW;AACjE;AACA,SAAS,yBAAyB,MAAM,QAAQ;CAC/C,MAAM,OAAO,CAAC,WAAW;CACzB,IAAI,SAAS,eAAe,KAAK,KAAK,eAAe;CACrD,IAAI,SAAS,eAAe,KAAK,KAAK,eAAe;CACrD,IAAI,QAAQ,KAAK,KAAK,UAAU;CAChC,OAAO,KAAK,KAAK,GAAG;AACrB;AACA,SAAS,sCAAsC,SAAS;CACvD,MAAM,aAAa,yBAAyB,QAAQ,MAAM,QAAQ,MAAM;CACxE,OAAO,gCAAgC;EACtC,KAAK,uCAAuC,WAAW,yBAAyB,QAAQ,WAAW;EACnG,cAAc,eAAe,WAAW;CACzC,CAAC;AACF;AACA,SAAS,mBAAmB,OAAO,SAAS,MAAM,OAAO,IAAI;CAC5D,IAAI,MAAM,QAAQ,MAAM,OAAO;CAC/B,MAAM,cAAc,SAAS,gBAAgB,iEAAiE,SAAS,gBAAgB,4DAA4D;CACnM,MAAM,UAAU;EACf;GACC,OAAO;GACP,OAAO,MAAM;EACd;EACA;GACC,OAAO;GACP,OAAO,MAAM;EACd;EACA;GACC,OAAO;GACP,OAAO,wBAAwB,MAAM,QAAQ,UAAU,KAAK;EAC7D;CACD;CACA,IAAI,QAAQ,IAAI,QAAQ,KAAK;EAC5B,OAAO;EACP,OAAO,kBAAkB,QAAQ,EAAE;CACpC,CAAC;CACD,GAAG,OAAO,mBAAmB;EAC5B,SAAS;EACT;EACA,KAAK;EACL;EACA;CACD,CAAC,CAAC;AACH;AACA,eAAe,mBAAmB,SAAS;CAC1C,MAAM,eAAe,MAAM,sBAAsB,QAAQ,QAAQ;EAChE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,CAAC;CACD,IAAI,CAAC,aAAa,IAAI,OAAO;CAC7B,MAAM,SAAS,aAAa;CAC5B,MAAM,aAAa,QAAQ,SAAS,SAAS,QAAQ,IAAI,GAAG,QAAQ,QAAQ,MAAM,CAAC,IAAI;CACvF,MAAM,uBAAuB,oBAAoB,MAAM;CACvD,OAAO,GAAG;EACT;EACA;EACA;EACA,cAAc,SAAS,QAAQ,IAAI,GAAG,oBAAoB;CAC3D,CAAC;AACF;AACA,eAAe,mBAAmB,OAAO,SAAS,MAAM;CACvD,MAAM,EAAE,QAAQ,YAAY,sBAAsB,iBAAiB;CACnE,IAAI;CACJ,IAAI;EACH,sBAAsB,MAAM,SAAS,sBAAsB,OAAO;CACnE,SAAS,OAAO;EACf,IAAI,iBAAiB,SAAS,MAAM,SAAS,UAAU,OAAO,MAAM,kBAAkB,sBAAsB;GAC3G,KAAK,8BAA8B;GACnC,KAAK,iDAAiD,aAAa,4CAA4C;EAChH,CAAC,CAAC;EACF,OAAO,MAAM,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,KAAK,iCAAiC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,IAAI,CAAC,CAAC;CACzL;CACA,MAAM,QAAQ,mBAAmB,MAAM;CACvC,MAAM,iBAAiB,OAAO,OAAO,OAAO,KAAK;CACjD,IAAI;CACJ,IAAI;EACH,eAAe,eAAe,oBAAoB,KAAK,MAAM,mBAAmB,CAAC;CAClF,SAAS,OAAO;EACf,IAAI,kBAAkB,KAAK,KAAK,MAAM,SAAS,8BAA8B,OAAO,MAAM,8BAA8B,+BAA+B,MAAM,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,EAAE,CAAC,CAAC;EAClN,OAAO,MAAM,8BAA8B,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,EAAE,CAAC,CAAC;CAC7K;CACA,MAAM,eAAe,QAAQ,MAAM,OAAO,IAAI;CAC9C,IAAI,OAAO,iBAAiB,YAAY,aAAa,WAAW,GAAG,OAAO,MAAM,sCAAsC;EACrH;EACA;EACA,QAAQ,QAAQ,UAAU;CAC3B,CAAC,CAAC;CACF,IAAI,CAAC,OAAO,QAAQ,OAAO,MAAM,oBAAoB,EAAE,KAAK,iCAAiC,yBAAyB,MAAM,QAAQ,UAAU,KAAK,IAAI,CAAC,CAAC;CACzJ,OAAO,GAAG;EACT,GAAG;EACH;EACA;CACD,CAAC;AACF;AACA,SAAS,mBAAmB,OAAO;CAClC,OAAO,oBAAoB;EAC1B,QAAQ,MAAM,OAAO;EACrB,QAAQ,MAAM,OAAO;EACrB,SAAS,MAAM,OAAO;EACtB,QAAQ,MAAM,OAAO;EACrB,YAAY,MAAM,OAAO,cAAc,CAAC;CACzC,CAAC;AACF;AACA,SAAS,gBAAgB,OAAO,sBAAsB,WAAW;CAChE,IAAIA,qBAAmB,GAAG,KAAK,GAAG,OAAO,MAAM,KAAK;CACpD,IAAI,kBAAkB,KAAK,KAAK,MAAM,SAAS,8BAA8B,OAAO,MAAM,8BAA8B,+BAA+B,MAAM,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,EAAE,CAAC,CAAC;CAClN,OAAO,MAAM,gBAAgB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,KAAK,2BAA2B,UAAU,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,IAAI,CAAC,CAAC;AACjM;;;;AAIA,eAAe,uBAAuB,SAAS,OAAO,IAAI,MAAM;CAC/D,MAAM,YAAY,KAAK,IAAI;CAC3B,MAAM,cAAc,MAAM,mBAAmB,OAAO;CACpD,IAAI,CAAC,YAAY,IAAI,OAAO;CAC5B,MAAM,QAAQ,YAAY;CAC1B,mBAAmB,OAAO,SAAS,MAAM,OAAO,EAAE;CAClD,MAAM,cAAc,MAAM,mBAAmB,OAAO,SAAS,IAAI;CACjE,IAAI,CAAC,YAAY,IAAI,OAAO;CAC5B,MAAM,EAAE,cAAc,cAAc,yBAAyB,YAAY;CACzE,MAAM,EAAE,kBAAkB,sBAAsB,QAAQ,QAAQ,YAAY,MAAM,QAAQ,QAAQ,IAAI,CAAC;CACvG,MAAM,SAAS,mBAAmB,YAAY,KAAK;CACnD,MAAM,aAAa,sBAAsB;EACxC;EACA;CACD,CAAC;CACD,IAAI;EACH,MAAM,eAAe,MAAM,OAAO,OAAO;GACxC,UAAU;GACV,YAAY;GACZ;EACD,CAAC;EACD,IAAI,CAAC,aAAa,IAAI,OAAO,MAAM,iBAAiB,YAAY,CAAC;EACjE,MAAM,kBAAkB,MAAM,OAAO,SAAS;GAC7C,UAAU;GACV;GACA,QAAQ,QAAQ,UAAU;GAC1B,YAAY,SAAS;GACrB,YAAY;GACZ;EACD,CAAC;EACD,IAAI,CAAC,gBAAgB,IAAI,OAAO,MAAM,gBAAgB,OAAO;EAC7D,IAAI,gBAAgB,MAAM,gBAAgB,MAAM,OAAO,MAAM,gBAAgB,MAAM,WAAW;EAC9F,IAAI,SAAS,eAAe,OAAO,GAAG;GACrC,IAAI;GACJ,MAAM;GACN,SAAS;GACT,UAAU,aAAa;GACvB,QAAQ,aAAa;GACrB,QAAQ,aAAa;GACrB,GAAG,UAAU,iBAAiB,aAAa,aAAa;GACxD,GAAG,UAAU,wBAAwB,aAAa,oBAAoB;GACtE,SAAS;GACT,MAAM;IACL,GAAG,aAAa,QAAQ,CAAC;IACzB,oBAAoB;GACrB;GACA,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,UAAU;EAC1C,CAAC;EACD,MAAM,WAAW,qBAAqB,gBAAgB,MAAM,eAAe,gBAAgB,MAAM,YAAY,QAAQ,UAAU,OAAO,gBAAgB,MAAM,SAAS;EACrK,IAAI,CAAC,SAAS,OAAO,IAAI,OAAO,MAAM,QAAQ;EAC9C,OAAO,GAAG;GACT,IAAI;GACJ,MAAM;GACN,SAAS;GACT,UAAU,aAAa;GACvB,QAAQ,aAAa;GACrB,QAAQ,aAAa;GACrB,GAAG,UAAU,iBAAiB,aAAa,aAAa;GACxD,GAAG,UAAU,wBAAwB,aAAa,oBAAoB;GACtE,QAAQ;IACP,SAAS,SAAS,OAAO;IACzB,QAAQ,SAAS,OAAO,MAAM,UAAU;IACxC,WAAW,SAAS,OAAO,OAAO,UAAU,UAAU,CAAC,EAAA,CAAG,KAAK,UAAU,MAAM,KAAK,KAAK,GAAG,CAAC;GAC9F;GACA,WAAW,SAAS;GACpB,MAAM;IACL,GAAG,aAAa,QAAQ,CAAC;IACzB,oBAAoB;GACrB;GACA,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,UAAU;EAC1C,CAAC;CACF,SAAS,OAAO;EACf,OAAO,gBAAgB,OAAO,sBAAsB,WAAW;CAChE,UAAU;EACT,MAAM,aAAa,MAAM;CAC1B;AACD;AACA,eAAe,iCAAiC,SAAS,OAAO,IAAI;CACnE,MAAM,cAAc,MAAM,mBAAmB,OAAO;CACpD,IAAI,CAAC,YAAY,IAAI,OAAO;CAC5B,MAAM,QAAQ,YAAY;CAC1B,mBAAmB,OAAO,SAAS,eAAe,OAAO,EAAE;CAC3D,MAAM,cAAc,MAAM,mBAAmB,OAAO,SAAS,aAAa;CAC1E,IAAI,CAAC,YAAY,IAAI,OAAO;CAC5B,MAAM,EAAE,cAAc,cAAc,yBAAyB,YAAY;CACzE,MAAM,EAAE,kBAAkB,sBAAsB,QAAQ,QAAQ,YAAY,MAAM,QAAQ,QAAQ,IAAI,CAAC;CACvG,MAAM,SAAS,mBAAmB,YAAY,KAAK;CACnD,MAAM,aAAa,sBAAsB;EACxC;EACA;CACD,CAAC;CACD,IAAI;EACH,MAAM,OAAO,QAAQ,YAAY;EACjC,MAAM,kBAAkB,MAAM,OAAO,SAAS;GAC7C,UAAU;GACV;GACA,QAAQ,QAAQ,UAAU;GAC1B,YAAY;GACZ,YAAY;GACZ;EACD,CAAC;EACD,IAAI,CAAC,gBAAgB,IAAI,OAAO,MAAM,gBAAgB,OAAO;EAC7D,OAAO,GAAG,qBAAqB,gBAAgB,MAAM,eAAe,gBAAgB,MAAM,YAAY,QAAQ,UAAU,OAAO,gBAAgB,MAAM,SAAS,CAAC;CAChK,SAAS,OAAO;EACf,OAAO,gBAAgB,OAAO,sBAAsB,yBAAyB;CAC9E,UAAU;EACT,MAAM,aAAa,MAAM;CAC1B;AACD;AACA,SAAS,wBAAwB;CAChC,MAAM,UAAU,IAAI,QAAQ,QAAQ;CACpC,uBAAuB,SAAS,yEAAyE,+SAA+S;CACxZ,mBAAmB,SAAS;EAC3B;EACA;EACA;EACA;EACA;EACA;CACD,CAAC;CACD,iBAAiB,OAAO,CAAC,CAAC,OAAO,cAAc,4BAA4B,CAAC,CAAC,OAAO,mBAAmB,+BAA+B,CAAC,CAAC,OAAO,iBAAiB,6DAA6D,CAAC,CAAC,OAAO,iBAAiB,wFAAwF,CAAC,CAAC,OAAO,YAAY,oFAAoF,KAAK,CAAC,CAAC,OAAO,OAAO,YAAY;EACxd,MAAM,QAAQ,uBAAuB,OAAO;EAC5C,MAAM,KAAK,iBAAiB,KAAK;EACjC,MAAM,aAAa,oBAAoB,OAAO;EAC9C,IAAI,CAAC,WAAW,IAAI;GACnB,MAAM,WAAW,aAAa,YAAY,OAAO,EAAE;GACnD,QAAQ,KAAK,QAAQ;EACtB;EACA,MAAM,OAAO,WAAW;EACxB,IAAI,SAAS,eAAe;GAC3B,MAAM,SAAS,MAAM,iCAAiC,SAAS,OAAO,EAAE;GACxE,MAAM,WAAW,aAAa,QAAQ,OAAO,KAAK,aAAa;IAC9D,IAAI,MAAM,MAAM,GAAG,OAAO,uBAAuB,SAAS,QAAQ,SAAS,SAAS,CAAC;SAChF;KACJ,MAAM,cAAc,SAAS,OAAO,KAAK,QAAQ;MAChD,GAAG;MACH,OAAO;KACR;KACA,MAAM,SAAS,yBAAyB,SAAS,QAAQ,aAAa,SAAS,SAAS;KACxF,IAAI,QAAQ,GAAG,IAAI,MAAM;IAC1B;GACD,CAAC;GACD,IAAI,OAAO,MAAM,CAAC,OAAO,MAAM,OAAO,IAAI,QAAQ,KAAK,CAAC;GACxD,QAAQ,KAAK,QAAQ;EACtB;EACA,MAAM,SAAS,MAAM,uBAAuB,SAAS,OAAO,IAAI,IAAI;EACpE,IAAI,OAAO,IAAI;GACd,IAAI,MAAM,MAAM,GAAG,OAAO,iBAAiB,OAAO,KAAK,CAAC;QACnD;IACJ,MAAM,SAAS,mBAAmB,OAAO,OAAO,KAAK;IACrD,IAAI,QAAQ,GAAG,IAAI,MAAM;GAC1B;GACA,QAAQ,KAAK,CAAC;EACf;EACA,IAAIA,qBAAmB,GAAG,OAAO,OAAO,GAAG;GAC1C,MAAM,WAAW,aAAa,QAAQ,OAAO,EAAE;GAC/C,QAAQ,KAAK,QAAQ;EACtB;EACA,IAAI,MAAM,MAAM,GAAG,OAAO,uBAAuB,OAAO,QAAQ,QAAQ,OAAO,QAAQ,SAAS,CAAC;OAC5F;GACJ,MAAM,SAAS,yBAAyB,OAAO,QAAQ,QAAQ;IAC9D,GAAG;IACH,OAAO;GACR,GAAG,OAAO,QAAQ,SAAS;GAC3B,IAAI,QAAQ,GAAG,IAAI,MAAM;EAC1B;EACA,QAAQ,KAAK,CAAC;CACf,CAAC;CACD,OAAO;AACR"}
|