@prisma/orm-toolchain 0.16.0
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/LICENSE +201 -0
- package/README.md +28 -0
- package/dist/aggregate-B4mhR4Sk.mjs +1012 -0
- package/dist/aggregate-B4mhR4Sk.mjs.map +1 -0
- package/dist/aggregate-BflrjWPO.d.mts +803 -0
- package/dist/aggregate-BflrjWPO.d.mts.map +1 -0
- package/dist/bin__prisma-next.mjs +800 -0
- package/dist/bin__prisma-next.mjs.map +1 -0
- package/dist/cli-telemetry.d.mts +367 -0
- package/dist/cli-telemetry.d.mts.map +1 -0
- package/dist/cli-telemetry.mjs +48 -0
- package/dist/cli-telemetry.mjs.map +1 -0
- package/dist/cli-telemetry__sender.d.mts +1 -0
- package/dist/cli-telemetry__sender.mjs +1 -0
- package/dist/cli.d.mts +31 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/cli.mjs +180 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/cli__commands__contract-emit.d.mts +2 -0
- package/dist/cli__commands__contract-emit.mjs +2 -0
- package/dist/cli__commands__contract-infer.d.mts +7 -0
- package/dist/cli__commands__contract-infer.d.mts.map +1 -0
- package/dist/cli__commands__contract-infer.mjs +2 -0
- package/dist/cli__commands__db-init.d.mts +7 -0
- package/dist/cli__commands__db-init.d.mts.map +1 -0
- package/dist/cli__commands__db-init.mjs +2 -0
- package/dist/cli__commands__db-schema.d.mts +7 -0
- package/dist/cli__commands__db-schema.d.mts.map +1 -0
- package/dist/cli__commands__db-schema.mjs +2 -0
- package/dist/cli__commands__db-sign.d.mts +7 -0
- package/dist/cli__commands__db-sign.d.mts.map +1 -0
- package/dist/cli__commands__db-sign.mjs +2 -0
- package/dist/cli__commands__db-update.d.mts +7 -0
- package/dist/cli__commands__db-update.d.mts.map +1 -0
- package/dist/cli__commands__db-update.mjs +2 -0
- package/dist/cli__commands__db-verify.d.mts +7 -0
- package/dist/cli__commands__db-verify.d.mts.map +1 -0
- package/dist/cli__commands__db-verify.mjs +2 -0
- package/dist/cli__commands__migrate.d.mts +66 -0
- package/dist/cli__commands__migrate.d.mts.map +1 -0
- package/dist/cli__commands__migrate.mjs +2 -0
- package/dist/cli__commands__migration-check.d.mts +64 -0
- package/dist/cli__commands__migration-check.d.mts.map +1 -0
- package/dist/cli__commands__migration-check.mjs +3 -0
- package/dist/cli__commands__migration-graph.d.mts +36 -0
- package/dist/cli__commands__migration-graph.d.mts.map +1 -0
- package/dist/cli__commands__migration-graph.mjs +2 -0
- package/dist/cli__commands__migration-list.d.mts +79 -0
- package/dist/cli__commands__migration-list.d.mts.map +1 -0
- package/dist/cli__commands__migration-list.mjs +2 -0
- package/dist/cli__commands__migration-log.d.mts +20 -0
- package/dist/cli__commands__migration-log.d.mts.map +1 -0
- package/dist/cli__commands__migration-log.mjs +2 -0
- package/dist/cli__commands__migration-new.d.mts +7 -0
- package/dist/cli__commands__migration-new.d.mts.map +1 -0
- package/dist/cli__commands__migration-new.mjs +2 -0
- package/dist/cli__commands__migration-plan.d.mts +79 -0
- package/dist/cli__commands__migration-plan.d.mts.map +1 -0
- package/dist/cli__commands__migration-plan.mjs +2 -0
- package/dist/cli__commands__migration-show.d.mts +27 -0
- package/dist/cli__commands__migration-show.d.mts.map +1 -0
- package/dist/cli__commands__migration-show.mjs +2 -0
- package/dist/cli__commands__migration-status.d.mts +55 -0
- package/dist/cli__commands__migration-status.d.mts.map +1 -0
- package/dist/cli__commands__migration-status.mjs +3 -0
- package/dist/cli__commands__ref.d.mts +34 -0
- package/dist/cli__commands__ref.d.mts.map +1 -0
- package/dist/cli__commands__ref.mjs +2 -0
- package/dist/cli__commands__telemetry.d.mts +7 -0
- package/dist/cli__commands__telemetry.d.mts.map +1 -0
- package/dist/cli__commands__telemetry.mjs +2 -0
- package/dist/cli__config-types.d.mts +2 -0
- package/dist/cli__config-types.mjs +2 -0
- package/dist/cli__control-api.d.mts +141 -0
- package/dist/cli__control-api.d.mts.map +1 -0
- package/dist/cli__control-api.mjs +4 -0
- package/dist/cli__init-output.d.mts +37 -0
- package/dist/cli__init-output.d.mts.map +1 -0
- package/dist/cli__init-output.mjs +2 -0
- package/dist/cli__migration-cli.d.mts +79 -0
- package/dist/cli__migration-cli.d.mts.map +1 -0
- package/dist/cli__migration-cli.mjs +407 -0
- package/dist/cli__migration-cli.mjs.map +1 -0
- package/dist/client-75qrAPqf-DZAVUxFa.mjs +1606 -0
- package/dist/client-75qrAPqf-DZAVUxFa.mjs.map +1 -0
- package/dist/command-helpers-CAoXqAY9-DWUBcTXM.mjs +1671 -0
- package/dist/command-helpers-CAoXqAY9-DWUBcTXM.mjs.map +1 -0
- package/dist/config-loader.d.mts +18 -0
- package/dist/config-loader.d.mts.map +1 -0
- package/dist/config-loader.mjs +2 -0
- package/dist/constants-CM-w38DQ-Cz_EXbOc.mjs +10 -0
- package/dist/constants-CM-w38DQ-Cz_EXbOc.mjs.map +1 -0
- package/dist/constants-Dkcn8Qu4.d.mts +10 -0
- package/dist/constants-Dkcn8Qu4.d.mts.map +1 -0
- package/dist/contract-at-errors-BX7w-p19-SxA8eaV2.mjs +36 -0
- package/dist/contract-at-errors-BX7w-p19-SxA8eaV2.mjs.map +1 -0
- package/dist/contract-emit-0hSjbuxp-BBOKldTZ.mjs +148 -0
- package/dist/contract-emit-0hSjbuxp-BBOKldTZ.mjs.map +1 -0
- package/dist/contract-emit-B65_UiFn.d.mts +7 -0
- package/dist/contract-emit-B65_UiFn.d.mts.map +1 -0
- package/dist/contract-emit-B6odMoem-CK3diBPk.mjs +359 -0
- package/dist/contract-emit-B6odMoem-CK3diBPk.mjs.map +1 -0
- package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs +56 -0
- package/dist/contract-enrichment-DrMvvY2A-DxNGeF4d.mjs.map +1 -0
- package/dist/contract-infer-BnkqpftN-DVM2eKJ3.mjs +73 -0
- package/dist/contract-infer-BnkqpftN-DVM2eKJ3.mjs.map +1 -0
- package/dist/contract-snapshot-store-CbqynbtE.d.mts +28 -0
- package/dist/contract-snapshot-store-CbqynbtE.d.mts.map +1 -0
- package/dist/contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs +118 -0
- package/dist/contract-snapshot-store-sf5nP4mb-MLpG-ihh.mjs.map +1 -0
- package/dist/contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs +302 -0
- package/dist/contract-space-aggregate-loader-CFH-336b-BhAyRQEL.mjs.map +1 -0
- package/dist/db-init-Vbkb_TKZ.mjs +153 -0
- package/dist/db-init-Vbkb_TKZ.mjs.map +1 -0
- package/dist/db-schema-ClQCu3xY.mjs +47 -0
- package/dist/db-schema-ClQCu3xY.mjs.map +1 -0
- package/dist/db-sign-jjXDgQ1u.mjs +175 -0
- package/dist/db-sign-jjXDgQ1u.mjs.map +1 -0
- package/dist/db-update-BQlrqtDD.mjs +183 -0
- package/dist/db-update-BQlrqtDD.mjs.map +1 -0
- package/dist/db-verify-CKPsRFrj-3udprZQD.mjs +396 -0
- package/dist/db-verify-CKPsRFrj-3udprZQD.mjs.map +1 -0
- package/dist/domain-type-generation-DAn9y5d2-BgoT5uKI.mjs +334 -0
- package/dist/domain-type-generation-DAn9y5d2-BgoT5uKI.mjs.map +1 -0
- package/dist/domain-type-generation-PkAb39ob-Ct8AGqow.d.mts +63 -0
- package/dist/domain-type-generation-PkAb39ob-Ct8AGqow.d.mts.map +1 -0
- package/dist/emitter.d.mts +75 -0
- package/dist/emitter.d.mts.map +1 -0
- package/dist/emitter.mjs +3 -0
- package/dist/emitter__domain-type-generation.d.mts +2 -0
- package/dist/emitter__domain-type-generation.mjs +2 -0
- package/dist/emitter__type-expression-safety.d.mts +6 -0
- package/dist/emitter__type-expression-safety.d.mts.map +1 -0
- package/dist/emitter__type-expression-safety.mjs +2 -0
- package/dist/errors--qsXZUtL.d.mts +72 -0
- package/dist/errors--qsXZUtL.d.mts.map +1 -0
- package/dist/errors-IpZm1Skp-BH495dRd.mjs +378 -0
- package/dist/errors-IpZm1Skp-BH495dRd.mjs.map +1 -0
- package/dist/exports-BN0vFTxG.mjs +276 -0
- package/dist/exports-BN0vFTxG.mjs.map +1 -0
- package/dist/exports-B_xhKZmC.mjs +1436 -0
- package/dist/exports-B_xhKZmC.mjs.map +1 -0
- package/dist/exports-D3-NwrMA-CadaBGQ3.mjs +154 -0
- package/dist/exports-D3-NwrMA-CadaBGQ3.mjs.map +1 -0
- package/dist/exports-Dl2aGAk7.mjs +119 -0
- package/dist/exports-Dl2aGAk7.mjs.map +1 -0
- package/dist/format-ByDm2goZ-DKLyhNHo.mjs +101 -0
- package/dist/format-ByDm2goZ-DKLyhNHo.mjs.map +1 -0
- package/dist/framework-components-CjshQKHA-Dlp6Leo5.mjs +58 -0
- package/dist/framework-components-CjshQKHA-Dlp6Leo5.mjs.map +1 -0
- package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts +35 -0
- package/dist/global-flags-BpoOYtNZ-CHZD3fud.d.mts.map +1 -0
- package/dist/graph-bDjJ4GL9-BhFevsJS.d.mts +28 -0
- package/dist/graph-bDjJ4GL9-BhFevsJS.d.mts.map +1 -0
- package/dist/graph-membership-DW6nnbyQ-Bp2KcVwR.mjs +14 -0
- package/dist/graph-membership-DW6nnbyQ-Bp2KcVwR.mjs.map +1 -0
- package/dist/hash-DH8hl5Rq-BpM2t3Nu.mjs +64 -0
- package/dist/hash-DH8hl5Rq-BpM2t3Nu.mjs.map +1 -0
- package/dist/hash-XZYYKJ-i.d.mts +53 -0
- package/dist/hash-XZYYKJ-i.d.mts.map +1 -0
- package/dist/import-roots-B6CtsWXb.d.mts +119 -0
- package/dist/import-roots-B6CtsWXb.d.mts.map +1 -0
- package/dist/import-roots-NDOIEDVj.mjs +217 -0
- package/dist/import-roots-NDOIEDVj.mjs.map +1 -0
- package/dist/init-DHctXAI9-DSlaaYXN.mjs +2186 -0
- package/dist/init-DHctXAI9-DSlaaYXN.mjs.map +1 -0
- package/dist/inspect-live-schema-CnwYTRZ0-BErPHMni.mjs +91 -0
- package/dist/inspect-live-schema-CnwYTRZ0-BErPHMni.mjs.map +1 -0
- package/dist/invariants-B5wLrgQS.d.mts +39 -0
- package/dist/invariants-B5wLrgQS.d.mts.map +1 -0
- package/dist/invariants-lXzy6txi-DAoP4nTE.mjs +57 -0
- package/dist/invariants-lXzy6txi-DAoP4nTE.mjs.map +1 -0
- package/dist/io-C8TdyBKt-DloEBi70.mjs +313 -0
- package/dist/io-C8TdyBKt-DloEBi70.mjs.map +1 -0
- package/dist/io-DYfeLJxR.d.mts +1 -0
- package/dist/io-sr4CO9_t-C3eV_kn-.d.mts +125 -0
- package/dist/io-sr4CO9_t-C3eV_kn-.d.mts.map +1 -0
- package/dist/ledger-origin-BGRN77Oy.d.mts +6 -0
- package/dist/ledger-origin-BGRN77Oy.d.mts.map +1 -0
- package/dist/ledger-origin-D7PN4Fon.mjs +9 -0
- package/dist/ledger-origin-D7PN4Fon.mjs.map +1 -0
- package/dist/metadata-2nbOAGsV-uYNeq2Cp.d.mts +2 -0
- package/dist/metadata-BtscDay2.d.mts +1 -0
- package/dist/migrate-Cb_iv264.mjs +500 -0
- package/dist/migrate-Cb_iv264.mjs.map +1 -0
- package/dist/migration-B2ljMJim.d.mts +155 -0
- package/dist/migration-B2ljMJim.d.mts.map +1 -0
- package/dist/migration-BuUmO7It.mjs +209 -0
- package/dist/migration-BuUmO7It.mjs.map +1 -0
- package/dist/migration-check-DcwUnadt-B6Qoh0ot.mjs +597 -0
- package/dist/migration-check-DcwUnadt-B6Qoh0ot.mjs.map +1 -0
- package/dist/migration-command-scaffold-BCuoeAki-B1pVGX8d.mjs +103 -0
- package/dist/migration-command-scaffold-BCuoeAki-B1pVGX8d.mjs.map +1 -0
- package/dist/migration-graph-CBf9ORe7-B4xAF8GN.mjs +500 -0
- package/dist/migration-graph-CBf9ORe7-B4xAF8GN.mjs.map +1 -0
- package/dist/migration-graph-DkoCC0Qy.mjs +185 -0
- package/dist/migration-graph-DkoCC0Qy.mjs.map +1 -0
- package/dist/migration-graph-Dqndu0i5.d.mts +9 -0
- package/dist/migration-graph-Dqndu0i5.d.mts.map +1 -0
- package/dist/migration-graph-command-render-BKrg6BPv-BP8Pfj4J.mjs +1945 -0
- package/dist/migration-graph-command-render-BKrg6BPv-BP8Pfj4J.mjs.map +1 -0
- package/dist/migration-graph-tarTxJ99-BrGBANeE.d.mts +124 -0
- package/dist/migration-graph-tarTxJ99-BrGBANeE.d.mts.map +1 -0
- package/dist/migration-list-BFBeo1_X-c0kqYokL.mjs +228 -0
- package/dist/migration-list-BFBeo1_X-c0kqYokL.mjs.map +1 -0
- package/dist/migration-log-CS5IWcNq-BQ-32Low.mjs +220 -0
- package/dist/migration-log-CS5IWcNq-BQ-32Low.mjs.map +1 -0
- package/dist/migration-new-BurCjyaQ.mjs +168 -0
- package/dist/migration-new-BurCjyaQ.mjs.map +1 -0
- package/dist/migration-path-target-D3Sj55PI-BICblCuk.mjs +38 -0
- package/dist/migration-path-target-D3Sj55PI-BICblCuk.mjs.map +1 -0
- package/dist/migration-plan-q_L84PN1-BWE0LTH6.mjs +759 -0
- package/dist/migration-plan-q_L84PN1-BWE0LTH6.mjs.map +1 -0
- package/dist/migration-show-Bx5I5aW9.mjs +171 -0
- package/dist/migration-show-Bx5I5aW9.mjs.map +1 -0
- package/dist/migration-status-CE7cQLDq-B1jDVmqG.mjs +444 -0
- package/dist/migration-status-CE7cQLDq-B1jDVmqG.mjs.map +1 -0
- package/dist/migration-tools.d.mts +23 -0
- package/dist/migration-tools.mjs +17 -0
- package/dist/migration-tools__aggregate.d.mts +2 -0
- package/dist/migration-tools__aggregate.mjs +2 -0
- package/dist/migration-tools__constants.d.mts +2 -0
- package/dist/migration-tools__constants.mjs +2 -0
- package/dist/migration-tools__contract-snapshot-store.d.mts +2 -0
- package/dist/migration-tools__contract-snapshot-store.mjs +2 -0
- package/dist/migration-tools__errors.d.mts +2 -0
- package/dist/migration-tools__errors.mjs +2 -0
- package/dist/migration-tools__graph.d.mts +2 -0
- package/dist/migration-tools__graph.mjs +1 -0
- package/dist/migration-tools__hash.d.mts +2 -0
- package/dist/migration-tools__hash.mjs +2 -0
- package/dist/migration-tools__invariants.d.mts +2 -0
- package/dist/migration-tools__invariants.mjs +2 -0
- package/dist/migration-tools__io.d.mts +3 -0
- package/dist/migration-tools__io.mjs +2 -0
- package/dist/migration-tools__ledger-origin.d.mts +2 -0
- package/dist/migration-tools__ledger-origin.mjs +2 -0
- package/dist/migration-tools__metadata.d.mts +3 -0
- package/dist/migration-tools__metadata.mjs +1 -0
- package/dist/migration-tools__migration-graph.d.mts +3 -0
- package/dist/migration-tools__migration-graph.mjs +3 -0
- package/dist/migration-tools__migration-ts.d.mts +2 -0
- package/dist/migration-tools__migration-ts.mjs +2 -0
- package/dist/migration-tools__migration.d.mts +2 -0
- package/dist/migration-tools__migration.mjs +2 -0
- package/dist/migration-tools__package.d.mts +3 -0
- package/dist/migration-tools__package.mjs +1 -0
- package/dist/migration-tools__ref-resolution.d.mts +2 -0
- package/dist/migration-tools__ref-resolution.mjs +2 -0
- package/dist/migration-tools__refs.d.mts +2 -0
- package/dist/migration-tools__refs.mjs +2 -0
- package/dist/migration-tools__spaces.d.mts +3 -0
- package/dist/migration-tools__spaces.mjs +3 -0
- package/dist/migration-ts-CNaAtK8C.d.mts +38 -0
- package/dist/migration-ts-CNaAtK8C.d.mts.map +1 -0
- package/dist/migration-ts-FyF55c4M.mjs +67 -0
- package/dist/migration-ts-FyF55c4M.mjs.map +1 -0
- package/dist/op-schema-BSVHzEQN-DIWt28D8.mjs +13 -0
- package/dist/op-schema-BSVHzEQN-DIWt28D8.mjs.map +1 -0
- package/dist/output-DWNYqZGc-D2sRgLAm.mjs +109 -0
- package/dist/output-DWNYqZGc-D2sRgLAm.mjs.map +1 -0
- package/dist/package-CfWiDNrr-ZR4HM_Iz.d.mts +21 -0
- package/dist/package-CfWiDNrr-ZR4HM_Iz.d.mts.map +1 -0
- package/dist/package-N9PPdFV_.d.mts +3 -0
- package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs +43 -0
- package/dist/progress-adapter-CjAeTxY_-BXYSd1eY.mjs.map +1 -0
- package/dist/project-import-root-CpwLCDLY-DkVwAnWj.mjs +99 -0
- package/dist/project-import-root-CpwLCDLY-DkVwAnWj.mjs.map +1 -0
- package/dist/publish-surface.d.mts +3 -0
- package/dist/publish-surface.mjs +3 -0
- package/dist/publish-surface__import-roots.d.mts +2 -0
- package/dist/publish-surface__import-roots.mjs +2 -0
- package/dist/publish-surface__shells.d.mts +2 -0
- package/dist/publish-surface__shells.mjs +2 -0
- package/dist/quick-reference-mongo.md +114 -0
- package/dist/quick-reference-postgres.md +93 -0
- package/dist/readme-mongo.md +35 -0
- package/dist/readme-postgres.md +34 -0
- package/dist/ref-B6cTthTi.mjs +171 -0
- package/dist/ref-B6cTthTi.mjs.map +1 -0
- package/dist/ref-advancement-CSPMoQs3-fEipZrdu.mjs +57 -0
- package/dist/ref-advancement-CSPMoQs3-fEipZrdu.mjs.map +1 -0
- package/dist/ref-resolution-BjJBWPjX.mjs +250 -0
- package/dist/ref-resolution-BjJBWPjX.mjs.map +1 -0
- package/dist/ref-resolution-COGOSL57.d.mts +127 -0
- package/dist/ref-resolution-COGOSL57.d.mts.map +1 -0
- package/dist/refs-BDbB9BRB-D6Za3Q49.mjs +241 -0
- package/dist/refs-BDbB9BRB-D6Za3Q49.mjs.map +1 -0
- package/dist/refs-BNCUu58Y-BIso5Jfg.d.mts +43 -0
- package/dist/refs-BNCUu58Y-BIso5Jfg.d.mts.map +1 -0
- package/dist/schemas-CfGSxH5b-BSjB3nZS.d.mts +192 -0
- package/dist/schemas-CfGSxH5b-BSjB3nZS.d.mts.map +1 -0
- package/dist/schemas-KhXMzNA_-CzZ7GFX_.mjs +112 -0
- package/dist/schemas-KhXMzNA_-CzZ7GFX_.mjs.map +1 -0
- package/dist/shells-BenrJHp2.mjs +602 -0
- package/dist/shells-BenrJHp2.mjs.map +1 -0
- package/dist/shells-COHV_Ozf.d.mts +135 -0
- package/dist/shells-COHV_Ozf.d.mts.map +1 -0
- package/dist/spaces-C27bA-xc.mjs +267 -0
- package/dist/spaces-C27bA-xc.mjs.map +1 -0
- package/dist/spaces-DxFj5y8l.d.mts +415 -0
- package/dist/spaces-DxFj5y8l.d.mts.map +1 -0
- package/dist/telemetry-CmbCa3Ld-CmE5zcIG.mjs +120 -0
- package/dist/telemetry-CmbCa3Ld-CmE5zcIG.mjs.map +1 -0
- package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts +133 -0
- package/dist/terminal-ui-BN4QOsm5-Bf3pim46.d.mts.map +1 -0
- package/dist/type-expression-safety-CgHTWypx.mjs +8 -0
- package/dist/type-expression-safety-CgHTWypx.mjs.map +1 -0
- package/dist/types-DZWEs4si-D8UlyJI0.d.mts +893 -0
- package/dist/types-DZWEs4si-D8UlyJI0.d.mts.map +1 -0
- package/dist/verify-DnVNjc5C-BGdsblBK.mjs +283 -0
- package/dist/verify-DnVNjc5C-BGdsblBK.mjs.map +1 -0
- package/dist/verify-contract-spaces-BZDcJsuA-De8v4Z4T.mjs +252 -0
- package/dist/verify-contract-spaces-BZDcJsuA-De8v4Z4T.mjs.map +1 -0
- package/dist/verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts +136 -0
- package/dist/verify-contract-spaces-Cc1u_wJo-BilPJS2S.d.mts.map +1 -0
- package/dist/vite-plugin-contract-emit.d.mts +54 -0
- package/dist/vite-plugin-contract-emit.d.mts.map +1 -0
- package/dist/vite-plugin-contract-emit.mjs +303 -0
- package/dist/vite-plugin-contract-emit.mjs.map +1 -0
- package/package.json +122 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-B_xhKZmC.mjs","names":["#sourceFile","#rangeOffsets","#intersectsRange","#addMultilineSplitToken","#encode","#data","#first","#previousLine","#previousCharacter"],"sources":["../../../../1-framework/3-tooling/language-server/dist/exports/index.mjs"],"sourcesContent":["import { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { findNearestConfigPathForFile, loadConfig } from \"@internal/config-loader\";\nimport { CliStructuredError } from \"@internal/errors/control\";\nimport { format } from \"@internal/psl-parser/format\";\nimport { join } from \"pathe\";\nimport { CompletionItemKind, DiagnosticSeverity, DidChangeWatchedFilesNotification, DocumentDiagnosticReportKind, FoldingRangeKind, InsertTextFormat, RegistrationRequest, SemanticTokenModifiers, SemanticTokenTypes, TextDocumentSyncKind, TextDocuments } from \"vscode-languageserver\";\nimport { TextDocument } from \"vscode-languageserver-textdocument\";\nimport { ArrayLiteralAst, AttributeArgListAst, BooleanLiteralExprAst, CompositeTypeDeclarationAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamespaceDeclarationAst, NumberLiteralExprAst, ObjectLiteralExprAst, StringLiteralExprAst, TypesBlockAst, any, filterChildren, findChildToken, parse, skipTriviaToken } from \"@internal/psl-parser/syntax\";\nimport { isAuthoringPslBlockDescriptor } from \"@internal/framework-components/authoring\";\nimport { buildSymbolTable, findBlockDescriptor } from \"@internal/psl-parser\";\nimport { createControlStack } from \"@internal/framework-components/control\";\nimport { hasPslInterpreter } from \"@internal/psl-parser/interpret\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { ProposedFeatures, createConnection } from \"vscode-languageserver/node\";\n//#region src/diagnostic-mapping.ts\nconst ParseDiagnosticSeverity = {\n\tError: 1,\n\tWarning: 2,\n\tInformation: 3,\n\tHint: 4\n};\nfunction mapParseDiagnostics(diagnostics) {\n\treturn diagnostics.map((diagnostic) => ({\n\t\trange: diagnostic.range,\n\t\tmessage: diagnostic.message,\n\t\tcode: diagnostic.code,\n\t\tseverity: ParseDiagnosticSeverity.Error\n\t}));\n}\nconst documentStartRange = {\n\tstart: {\n\t\tline: 0,\n\t\tcharacter: 0\n\t},\n\tend: {\n\t\tline: 0,\n\t\tcharacter: 1\n\t}\n};\nfunction mapInterpreterDiagnostics(diagnostics, sourceFile) {\n\treturn diagnostics.map((diagnostic) => ({\n\t\trange: diagnostic.span === void 0 ? documentStartRange : pslSpanToRange(diagnostic.span, sourceFile),\n\t\tmessage: diagnostic.message,\n\t\tcode: diagnostic.code,\n\t\tseverity: ParseDiagnosticSeverity.Error\n\t}));\n}\nfunction pslSpanToRange(span, sourceFile) {\n\treturn {\n\t\tstart: sourceFile.positionAt(span.start.offset),\n\t\tend: sourceFile.positionAt(span.end.offset)\n\t};\n}\n//#endregion\n//#region src/completion-context.ts\nconst UNSUPPORTED = { kind: \"unsupported\" };\nfunction classifyPslCompletionContext(input) {\n\tconst root = input.document.syntax;\n\tconst offset = input.sourceFile.offsetAt(input.position);\n\tconst at = root.tokenAtOffset(offset);\n\tif (at.leftBiased()?.kind === \"Comment\") return UNSUPPORTED;\n\tconst edit = cursorIdentifier(at, offset);\n\tconst preceding = precedingToken(at, edit);\n\tconst precedingNode = preceding?.parent;\n\tconst replacementStartOffset = edit?.offset ?? offset;\n\tconst declarationKeywordContext = classifyDeclarationKeyword({\n\t\tnode: precedingNode,\n\t\toffset,\n\t\treplacementStartOffset\n\t});\n\tif (declarationKeywordContext !== void 0) return declarationKeywordContext;\n\tconst genericBlockContext = classifyGenericBlockParameter({\n\t\toffset,\n\t\tat,\n\t\tprecedingToken: preceding,\n\t\treplacementStartOffset\n\t});\n\tif (genericBlockContext !== void 0) return genericBlockContext;\n\tconst field = fieldForTypeSlot(precedingNode);\n\tif (field === void 0) return UNSUPPORTED;\n\tif (field.syntax.findAncestor(any(ModelDeclarationAst.cast, CompositeTypeDeclarationAst.cast)) === void 0) return UNSUPPORTED;\n\treturn classifyModelFieldType({\n\t\tfield,\n\t\toffset,\n\t\treplacementStartOffset,\n\t\tprecedingToken: preceding\n\t});\n}\n/**\n* Locates the field whose type position the cursor occupies. The preceding token\n* climbs to the field whether the cursor sits inside a present type (the type\n* identifier's predecessor still belongs to the field) or in the empty type slot\n* of a typeless field (whose trailing trivia lives in the enclosing block, so\n* the nearest significant token to the left is the field's own name).\n*/\nfunction fieldForTypeSlot(precedingNode) {\n\treturn precedingNode?.findAncestor(FieldDeclarationAst.cast);\n}\nfunction classifyModelFieldType(input) {\n\tconst fieldName = input.field.name();\n\tif (fieldName === void 0) return UNSUPPORTED;\n\tconst fieldNameText = fieldName.name();\n\tif (fieldNameText === void 0) return UNSUPPORTED;\n\tif (fieldName.syntax.isInside(input.offset)) return UNSUPPORTED;\n\tconst typeAnnotation = input.field.typeAnnotation();\n\tif (typeAnnotation === void 0) {\n\t\tif (input.precedingToken !== void 0 && fieldName.syntax.isInside(input.precedingToken.offset)) return {\n\t\t\tkind: \"modelType\",\n\t\t\toffset: input.offset,\n\t\t\tfieldName: fieldNameText,\n\t\t\treplacementStartOffset: input.offset\n\t\t};\n\t\treturn UNSUPPORTED;\n\t}\n\tif (typeAnnotation.syntax.isOutside(input.offset)) return UNSUPPORTED;\n\tif (typeAnnotation.argList()?.syntax.isInside(input.offset)) return UNSUPPORTED;\n\tconst name = typeAnnotation.name();\n\tif (name === void 0) return UNSUPPORTED;\n\tif (name.syntax.isOutside(input.offset)) return UNSUPPORTED;\n\tif (name.isOverQualified()) return UNSUPPORTED;\n\treturn classifyTypePosition(name, input.offset, fieldNameText, input.replacementStartOffset);\n}\n/**\n* Builds the type-completion context for a qualified name. Roles are read\n* straight off the separator-positional accessors: a populated namespace\n* segment is a `.`-qualified name, a populated space segment is a `:`-qualified\n* name, and the absence of both is a bare model type.\n*\n* Behaviour change: a `:`-qualified name with no `.` (e.g. `supabase:`,\n* `supabase:U`) is a `spaceMember` position rather than falling through to bare\n* model-type completions. A malformed leading-separator name (`:User`, `.User`)\n* carries no populated segment and resolves to `modelType` rather than\n* `unsupported`.\n*/\nfunction classifyTypePosition(name, offset, fieldName, replacementStartOffset) {\n\tconst namespace = name.namespace()?.name();\n\tif (namespace !== void 0 && namespace.length > 0) {\n\t\tconst namespaceSpace = name.space()?.name();\n\t\treturn {\n\t\t\tkind: \"namespaceMember\",\n\t\t\toffset,\n\t\t\tfieldName,\n\t\t\treplacementStartOffset,\n\t\t\tnamespace,\n\t\t\t...namespaceSpace !== void 0 && namespaceSpace.length > 0 ? { space: namespaceSpace } : {}\n\t\t};\n\t}\n\tconst space = name.space()?.name();\n\tif (space !== void 0 && space.length > 0) return {\n\t\tkind: \"spaceMember\",\n\t\toffset,\n\t\tfieldName,\n\t\treplacementStartOffset,\n\t\tspace\n\t};\n\treturn {\n\t\tkind: \"modelType\",\n\t\toffset,\n\t\tfieldName,\n\t\treplacementStartOffset\n\t};\n}\nconst declarationCast = any(ModelDeclarationAst.cast, CompositeTypeDeclarationAst.cast, TypesBlockAst.cast, GenericBlockDeclarationAst.cast, NamespaceDeclarationAst.cast);\nfunction classifyDeclarationKeyword(input) {\n\tconst precedingDeclaration = input.node?.findAncestor(declarationCast);\n\tconst namespace = input.node?.findAncestor(NamespaceDeclarationAst.cast);\n\tconst inNamespaceBody = blockBodyContainsOffset(namespace, input.offset);\n\tif (precedingDeclaration !== void 0 && !canCompleteDeclaration(precedingDeclaration, input.offset, inNamespaceBody)) return;\n\treturn {\n\t\tkind: \"declarationKeyword\",\n\t\toffset: input.offset,\n\t\tscope: inNamespaceBody ? \"namespace\" : \"document\",\n\t\treplacementStartOffset: input.replacementStartOffset\n\t};\n}\n/**\n* Whether a new declaration can begin at the cursor, given the nearest enclosing\n* declaration. Allowed when that declaration is still nascent (only its keyword\n* typed, no name or body yet), when it is a namespace whose body holds further\n* declarations, or when the cursor sits past its closing `}`.\n*/\nfunction canCompleteDeclaration(precedingDeclaration, offset, inNamespaceBody) {\n\tif (precedingDeclaration.lbrace() === void 0 && (precedingDeclaration instanceof TypesBlockAst || precedingDeclaration.name() === void 0)) return true;\n\tif (precedingDeclaration instanceof NamespaceDeclarationAst && inNamespaceBody) return true;\n\tconst rbrace = precedingDeclaration.rbrace();\n\treturn rbrace !== void 0 && offset >= rbrace.endOffset;\n}\nfunction blockBodyContainsOffset(block, offset) {\n\tif (block === void 0) return false;\n\tconst lbrace = block.lbrace();\n\tif (lbrace === void 0) return false;\n\tconst bodyStart = lbrace.endOffset;\n\tconst bodyEnd = block.rbrace()?.offset ?? block.syntax.endOffset;\n\treturn offset >= bodyStart && offset <= bodyEnd;\n}\nfunction classifyGenericBlockParameter(input) {\n\tconst node = input.at.leftBiased()?.parent;\n\tconst block = node?.findAncestor(GenericBlockDeclarationAst.cast);\n\tif (block === void 0) return;\n\tif (hasUnsupportedAncestor(node)) return UNSUPPORTED;\n\tif (!blockBodyContainsOffset(block, input.offset)) return UNSUPPORTED;\n\tif ((node?.findAncestor(FieldDeclarationAst.cast))?.syntax.isInside(input.offset)) return UNSUPPORTED;\n\tconst keyword = block.keyword()?.text;\n\tif (keyword === void 0 || keyword.length === 0) return UNSUPPORTED;\n\tif (input.precedingToken?.kind === \"Equals\") return {\n\t\tkind: \"genericBlockValue\",\n\t\toffset: input.offset,\n\t\tblockKeyword: keyword,\n\t\treplacementStartOffset: input.replacementStartOffset\n\t};\n\tconst activePair = activeKeyValuePair(node, input.offset);\n\tif (activePair !== void 0 && isAfterEquals(activePair, input.offset)) return UNSUPPORTED;\n\treturn {\n\t\tkind: \"genericBlockKey\",\n\t\toffset: input.offset,\n\t\tblockKeyword: keyword,\n\t\treplacementStartOffset: input.replacementStartOffset,\n\t\tblock\n\t};\n}\nfunction activeKeyValuePair(node, offset) {\n\tconst pair = node?.findAncestor(KeyValuePairAst.cast);\n\tif (pair === void 0 || pair.syntax.isOutside(offset)) return;\n\treturn pair;\n}\nfunction isAfterEquals(pair, offset) {\n\tconst equals = pair.equals();\n\treturn equals !== void 0 && offset > equals.offset;\n}\nfunction hasUnsupportedAncestor(node) {\n\treturn node?.findAncestor(any(AttributeArgListAst.cast, FieldAttributeAst.cast, ModelAttributeAst.cast)) !== void 0;\n}\n/** The significant token preceding the cursor — the in-progress edit identifier\n* is skipped, so the result is the token the classifier anchors on. */\nfunction precedingToken(at, edit) {\n\tconst start = edit !== void 0 ? edit.prevToken : at.leftBiased();\n\treturn start === void 0 ? void 0 : skipTriviaToken(start, \"prev\");\n}\n/** The identifier token the cursor is editing, if any. */\nfunction cursorIdentifier(at, offset) {\n\tconst right = at.rightBiased();\n\tif (right?.kind === \"Ident\" && offset < right.endOffset) return right;\n\tconst left = at.leftBiased();\n\tif (left?.kind === \"Ident\" && left.endOffset === offset) return left;\n}\n//#endregion\n//#region src/named-type-classification.ts\n/**\n* Presentation-level classification of a `types {}` binding: a\n* non-constructor binding whose base is a configured scalar type refines that\n* scalar (rendered as a default-library type); everything else reads as a\n* plain alias. The authoritative scalar-or-not pronouncement lives in the\n* interpreter's named-type resolution — this mirrors it for display only.\n*/\nfunction refinesScalarType(symbol, scalarTypes) {\n\treturn !symbol.isConstructor && symbol.baseType !== void 0 && scalarTypes.includes(symbol.baseType);\n}\n//#endregion\n//#region src/completion-provider.ts\nconst categoryOrder = {\n\tconfiguredScalar: 0,\n\ttopLevelModel: 1,\n\ttopLevelCompositeType: 2,\n\tscalar: 3,\n\ttypeAlias: 4,\n\tnamespace: 5,\n\tnamespaceModel: 6,\n\tnamespaceCompositeType: 7\n};\nconst declarationKeywordCategoryOrder = {\n\tnative: 0,\n\tgenericBlock: 1\n};\nconst nameSnippetPlaceholder = \"${1:Name}\";\nconst documentNativeDeclarationKeywords = [\n\tnativeDeclarationKeyword(\"model\", \"model \", `model ${nameSnippetPlaceholder} {\\n $0\\n}`),\n\tnativeDeclarationKeyword(\"type\", \"type \", `type ${nameSnippetPlaceholder} {\\n $0\\n}`),\n\tnativeDeclarationKeyword(\"types\", \"types \", \"types {\\n $0\\n}\"),\n\tnativeDeclarationKeyword(\"namespace\", \"namespace \", `namespace \\${1:name} {\\n $0\\n}`)\n];\nconst namespaceNativeDeclarationKeywords = [nativeDeclarationKeyword(\"model\", \"model \", `model ${nameSnippetPlaceholder} {\\n $0\\n}`), nativeDeclarationKeyword(\"type\", \"type \", `type ${nameSnippetPlaceholder} {\\n $0\\n}`)];\nfunction providePslCompletionItems(input) {\n\tconst { context } = input;\n\tswitch (context.kind) {\n\t\tcase \"unsupported\": return [];\n\t\tcase \"spaceMember\": return [];\n\t\tcase \"genericBlockValue\": return [];\n\t\tcase \"declarationKeyword\": return provideDeclarationKeywordCompletionItems(context, input.sourceFile, input.candidates, input.clientSupportsSnippets);\n\t\tcase \"genericBlockKey\": return provideGenericBlockKeyCompletionItems(context, input.sourceFile, input.candidates);\n\t\tcase \"modelType\": return provideModelTypeCompletionItems(context, input.sourceFile, input.candidates);\n\t\tcase \"namespaceMember\": return provideNamespaceMemberCompletionItems(context, input.sourceFile, input.candidates);\n\t}\n}\nfunction provideDeclarationKeywordCompletionItems(context, sourceFile, source, clientSupportsSnippets) {\n\tconst replacementRange = {\n\t\tstart: sourceFile.positionAt(context.replacementStartOffset),\n\t\tend: sourceFile.positionAt(context.offset)\n\t};\n\treturn declarationKeywordCandidates(context.scope, source).map((candidate) => ({\n\t\tlabel: candidate.label,\n\t\tkind: candidate.kind,\n\t\tdetail: candidate.detail,\n\t\tsortText: declarationKeywordSortText(candidate),\n\t\tfilterText: candidate.label,\n\t\t...clientSupportsSnippets ? { insertTextFormat: InsertTextFormat.Snippet } : {},\n\t\ttextEdit: {\n\t\t\trange: replacementRange,\n\t\t\tnewText: clientSupportsSnippets ? candidate.snippetText : candidate.insertText\n\t\t}\n\t}));\n}\nfunction declarationKeywordCandidates(scope, source) {\n\treturn [...scope === \"namespace\" ? namespaceNativeDeclarationKeywords : documentNativeDeclarationKeywords, ...genericBlockDeclarationKeywordCandidates(source.pslBlockDescriptors)];\n}\nfunction nativeDeclarationKeyword(label, insertText, snippetText) {\n\treturn {\n\t\tcategory: \"native\",\n\t\tlabel,\n\t\tinsertText,\n\t\tsnippetText,\n\t\tdetail: \"PSL declaration keyword\",\n\t\tkind: CompletionItemKind.Keyword\n\t};\n}\nfunction genericBlockDeclarationKeywordCandidates(descriptors) {\n\treturn descriptorBlockKeywords(descriptors).map((keyword) => ({\n\t\tcategory: \"genericBlock\",\n\t\tlabel: keyword,\n\t\tinsertText: `${keyword} `,\n\t\tsnippetText: `${keyword} ${nameSnippetPlaceholder} {\\n $0\\n}`,\n\t\tdetail: \"Generic block keyword\",\n\t\tkind: CompletionItemKind.Keyword\n\t}));\n}\nfunction descriptorBlockKeywords(descriptors) {\n\tconst keywords = [];\n\tcollectDescriptorBlockKeywords(descriptors, keywords);\n\treturn sortedUnique(keywords);\n}\nfunction collectDescriptorBlockKeywords(descriptors, keywords) {\n\tfor (const value of Object.values(descriptors)) {\n\t\tif (isAuthoringPslBlockDescriptor(value)) {\n\t\t\tkeywords.push(value.keyword);\n\t\t\tcontinue;\n\t\t}\n\t\tcollectDescriptorBlockKeywords(value, keywords);\n\t}\n}\nfunction declarationKeywordSortText(candidate) {\n\treturn `${declarationKeywordCategoryOrder[candidate.category]}:${candidate.label}`;\n}\nfunction provideGenericBlockKeyCompletionItems(context, sourceFile, source) {\n\tconst descriptor = findBlockDescriptor(source.pslBlockDescriptors, context.blockKeyword);\n\tif (descriptor === void 0) return [];\n\tconst existing = existingGenericBlockParameterNames(context.block, context.offset);\n\tconst replacementRange = {\n\t\tstart: sourceFile.positionAt(context.replacementStartOffset),\n\t\tend: sourceFile.positionAt(context.offset)\n\t};\n\treturn Object.keys(descriptor.parameters).filter((parameterName) => !existing.has(parameterName)).map((parameterName, index) => ({\n\t\tlabel: parameterName,\n\t\tkind: CompletionItemKind.Property,\n\t\tdetail: \"Generic block parameter\",\n\t\tsortText: genericBlockParameterSortText(index, parameterName),\n\t\tfilterText: parameterName,\n\t\ttextEdit: {\n\t\t\trange: replacementRange,\n\t\t\tnewText: parameterName\n\t\t}\n\t}));\n}\nfunction existingGenericBlockParameterNames(block, cursorOffset) {\n\tconst names = /* @__PURE__ */ new Set();\n\tfor (const entry of block.entries()) {\n\t\tif (!entry.syntax.isOutside(cursorOffset)) continue;\n\t\tconst name = entry.key()?.name();\n\t\tif (name !== void 0) names.add(name);\n\t}\n\treturn names;\n}\nfunction provideModelTypeCompletionItems(context, sourceFile, source) {\n\treturn modelTypeCompletionItems(context, sourceFile, [\n\t\t...configuredScalarCandidates(source.scalarTypes),\n\t\t...topLevelSymbolCandidates(source.symbolTable, source.scalarTypes),\n\t\t...allNamespaceCandidates(source.symbolTable)\n\t]);\n}\nfunction provideNamespaceMemberCompletionItems(context, sourceFile, source) {\n\tif (context.space !== void 0) return [];\n\treturn modelTypeCompletionItems(context, sourceFile, namespaceCandidates(source.symbolTable.topLevel.namespaces[context.namespace]));\n}\nfunction modelTypeCompletionItems(context, sourceFile, candidates) {\n\tconst replacementRange = {\n\t\tstart: sourceFile.positionAt(context.replacementStartOffset),\n\t\tend: sourceFile.positionAt(context.offset)\n\t};\n\treturn candidates.map((candidate) => ({\n\t\tlabel: candidate.label,\n\t\tkind: candidate.kind,\n\t\tdetail: candidate.detail,\n\t\tsortText: sortText(candidate),\n\t\tfilterText: candidate.filterText,\n\t\ttextEdit: {\n\t\t\trange: replacementRange,\n\t\t\tnewText: candidate.insertText\n\t\t}\n\t}));\n}\nfunction configuredScalarCandidates(scalarTypes) {\n\treturn sortedUnique(scalarTypes).map((name) => ({\n\t\tcategory: \"configuredScalar\",\n\t\tlabel: name,\n\t\tinsertText: name,\n\t\tfilterText: name,\n\t\tdetail: \"Configured scalar type\",\n\t\tkind: CompletionItemKind.Keyword\n\t}));\n}\nfunction topLevelSymbolCandidates(symbolTable, scalarTypes) {\n\tconst { topLevel } = symbolTable;\n\tconst namedTypes = Object.values(topLevel.namedTypes);\n\tconst scalarRefinementNames = namedTypes.filter((symbol) => refinesScalarType(symbol, scalarTypes)).map((symbol) => symbol.name).sort(compareNames);\n\tconst aliasNames = namedTypes.filter((symbol) => !refinesScalarType(symbol, scalarTypes)).map((symbol) => symbol.name).sort(compareNames);\n\treturn [\n\t\t...symbolCandidates(recordNames(topLevel.models), \"topLevelModel\", \"Model\", CompletionItemKind.Class),\n\t\t...symbolCandidates(recordNames(topLevel.compositeTypes), \"topLevelCompositeType\", \"Composite type\", CompletionItemKind.Struct),\n\t\t...symbolCandidates(scalarRefinementNames, \"scalar\", \"Scalar type\", CompletionItemKind.Unit),\n\t\t...symbolCandidates(aliasNames, \"typeAlias\", \"Type alias\", CompletionItemKind.Reference)\n\t];\n}\nfunction allNamespaceCandidates(symbolTable) {\n\treturn Object.values(symbolTable.topLevel.namespaces).sort((left, right) => compareNames(left.name, right.name)).map(namespaceQualifierCandidate);\n}\nfunction namespaceCandidates(namespace) {\n\tif (namespace === void 0) return [];\n\treturn [...symbolCandidates(recordNames(namespace.models), \"namespaceModel\", `Model in namespace ${namespace.name}`, CompletionItemKind.Class), ...symbolCandidates(recordNames(namespace.compositeTypes), \"namespaceCompositeType\", `Composite type in namespace ${namespace.name}`, CompletionItemKind.Struct)];\n}\nfunction namespaceQualifierCandidate(namespace) {\n\treturn {\n\t\tcategory: \"namespace\",\n\t\tlabel: namespace.name,\n\t\tinsertText: namespace.name,\n\t\tfilterText: namespace.name,\n\t\tdetail: \"Namespace\",\n\t\tkind: CompletionItemKind.Module\n\t};\n}\nfunction symbolCandidates(names, category, detail, kind) {\n\treturn names.map((name) => ({\n\t\tcategory,\n\t\tlabel: name,\n\t\tinsertText: name,\n\t\tfilterText: name,\n\t\tdetail,\n\t\tkind\n\t}));\n}\nfunction recordNames(record) {\n\treturn Object.values(record).map((symbol) => symbol.name).sort(compareNames);\n}\nfunction sortedUnique(names) {\n\treturn [...new Set(names)].sort(compareNames);\n}\nfunction sortText(candidate) {\n\treturn `${categoryOrder[candidate.category]}:${candidate.label}`;\n}\nfunction genericBlockParameterSortText(index, label) {\n\treturn `${index.toString().padStart(4, \"0\")}:${label}`;\n}\nfunction compareNames(left, right) {\n\tif (left < right) return -1;\n\tif (left > right) return 1;\n\treturn 0;\n}\n//#endregion\n//#region src/schema-inputs.ts\nfunction hasPslInputs(config) {\n\tconst source = config.contract?.source;\n\treturn source?.format === \"psl\" && source.inputs !== void 0;\n}\nfunction resolveSchemaInputs(config) {\n\tconst inputs = hasPslInputs(config) ? config.contract?.source.inputs : void 0;\n\tconst uris = new Set(inputs?.map((input) => pathToFileURL(input).toString()));\n\treturn {\n\t\tincludes: (uri) => uris.has(uri),\n\t\turis: () => uris\n\t};\n}\n//#endregion\n//#region src/config-resolution.ts\nconst CONFIG_FILENAME = \"prisma-next.config.ts\";\nconst emptyPipelineInputs = {\n\tscalarTypes: [],\n\tpslBlockDescriptors: {}\n};\nasync function resolveConfigInputs(configPath) {\n\tconst config = await loadConfig(configPath);\n\tconst inputs = resolveSchemaInputs(config);\n\tif (!hasPslInputs(config)) return {\n\t\tinputs,\n\t\tcontrolStack: emptyPipelineInputs,\n\t\t...config.formatter === void 0 ? {} : { formatter: config.formatter }\n\t};\n\tconst stack = createControlStack(config);\n\tconst interpretation = resolveInterpretation(config, stack, inputs);\n\treturn {\n\t\tinputs,\n\t\tcontrolStack: pipelineInputsFromStack(stack),\n\t\t...config.formatter === void 0 ? {} : { formatter: config.formatter },\n\t\t...interpretation === void 0 ? {} : { interpretation }\n\t};\n}\nfunction pipelineInputsFromStack(stack) {\n\treturn {\n\t\tscalarTypes: [...stack.scalarTypes],\n\t\tpslBlockDescriptors: stack.authoringContributions.pslBlockDescriptors\n\t};\n}\nfunction resolveInterpretation(config, stack, inputs) {\n\tconst source = config.contract?.source;\n\tif (source === void 0 || !hasPslInterpreter(source)) return;\n\treturn {\n\t\tsource,\n\t\tcontext: {\n\t\t\tcomposedExtensions: stack.extensions.map((p) => p.id),\n\t\t\tcomposedExtensionContracts: stack.extensionContracts,\n\t\t\tauthoringContributions: stack.authoringContributions,\n\t\t\tcodecLookup: stack.codecLookup,\n\t\t\tcontrolMutationDefaults: stack.controlMutationDefaults,\n\t\t\tresolvedInputs: [...inputs.uris()],\n\t\t\tcapabilities: stack.capabilities\n\t\t}\n\t};\n}\n//#endregion\n//#region src/folding-ranges.ts\n/**\n* Computes folding ranges for block declarations in a PSL document.\n*\n* Block types that produce folding ranges:\n* - model (e.g., `model User { ... }`)\n* - composite type (e.g., `type Address { ... }`)\n* - namespace (e.g., `namespace billing { ... }`)\n* - generic blocks (generator, datasource, extension blocks)\n* - types block (e.g., `types { ... }`)\n*\n* The range spans from the line containing `{` to the line containing `}`.\n*/\nfunction computeFoldingRanges(document, sourceFile) {\n\tconst ranges = [];\n\tcollectFoldingRanges(document, sourceFile, ranges);\n\treturn ranges;\n}\nfunction collectFoldingRanges(document, sourceFile, ranges) {\n\tfor (const declaration of document.declarations()) {\n\t\taddFoldingRange(declaration, sourceFile, ranges);\n\t\tconst namespace = NamespaceDeclarationAst.cast(declaration.syntax);\n\t\tif (namespace !== void 0) for (const nested of namespace.declarations()) addFoldingRange(nested, sourceFile, ranges);\n\t}\n}\nfunction addFoldingRange(declaration, sourceFile, ranges) {\n\tconst lbrace = declaration.lbrace();\n\tconst rbrace = declaration.rbrace();\n\tif (lbrace === void 0 || rbrace === void 0) return;\n\tconst startLine = sourceFile.positionAt(lbrace.offset).line;\n\tconst endLine = sourceFile.positionAt(rbrace.offset).line;\n\tranges.push({\n\t\tstartLine,\n\t\tendLine,\n\t\tkind: FoldingRangeKind.Region\n\t});\n}\n//#endregion\n//#region src/pipeline.ts\n/**\n* Composes the stages exactly as the contract-psl provider does, so the editor\n* and the build agree: `parse` then `buildSymbolTable`, parse diagnostics ahead\n* of symbol-table diagnostics. Never throws on malformed input — `parse`\n* recovers and `buildSymbolTable` is documented not to throw.\n*/\nfunction runPipeline(text, inputs) {\n\tconst { document, sourceFile, diagnostics: parseDiagnostics } = parse(text);\n\tconst { table: symbolTable, diagnostics: symbolTableDiagnostics } = buildSymbolTable({\n\t\tdocument,\n\t\tsourceFile,\n\t\tpslBlockDescriptors: inputs.pslBlockDescriptors\n\t});\n\treturn {\n\t\tdocument,\n\t\tsourceFile,\n\t\tsymbolTable,\n\t\tdiagnostics: mapParseDiagnostics([...parseDiagnostics, ...symbolTableDiagnostics])\n\t};\n}\n//#endregion\n//#region src/document-diagnostics.ts\n/**\n* `null` (not a configured input) is distinct from a `DocumentDiagnostics` whose\n* `diagnostics` are `[]` (an input that parsed clean): the caller treats both as\n* \"publish no diagnostics\", but only the latter is a document we own and keep\n* diagnosing.\n*/\nfunction computeDocumentDiagnostics(uri, text, inputs, controlStack) {\n\tif (!inputs.includes(uri)) return null;\n\tconst { document, sourceFile, symbolTable, diagnostics } = runPipeline(text, controlStack);\n\treturn {\n\t\tdiagnostics,\n\t\tdocument,\n\t\tsourceFile,\n\t\tsymbolTable\n\t};\n}\n//#endregion\n//#region src/project-artifacts.ts\nfunction createProjectArtifacts(options) {\n\tconst { inputs, controlStack, getText, interpretation } = options;\n\tconst documents = /* @__PURE__ */ new Map();\n\tlet symbolTable;\n\tfunction createInterpretSlot(uri, computed) {\n\t\tif (interpretation === void 0) return () => [];\n\t\tlet memo;\n\t\treturn () => {\n\t\t\tif (memo === void 0) {\n\t\t\t\tconst result = interpretation.source.interpret({\n\t\t\t\t\tdocument: computed.document,\n\t\t\t\t\tsourceFile: computed.sourceFile,\n\t\t\t\t\tsymbolTable: computed.symbolTable,\n\t\t\t\t\tsourceId: uri\n\t\t\t\t}, interpretation.context);\n\t\t\t\tmemo = mapInterpreterDiagnostics(result.ok ? [] : result.failure.diagnostics, computed.sourceFile);\n\t\t\t}\n\t\t\treturn memo;\n\t\t};\n\t}\n\tfunction drop(uri) {\n\t\tif (documents.delete(uri)) symbolTable = void 0;\n\t}\n\tfunction readDocument(uri) {\n\t\tconst existing = documents.get(uri);\n\t\tif (existing !== void 0) return existing;\n\t\tconst text = getText(uri);\n\t\tif (text === void 0) return;\n\t\tconst computed = computeDocumentDiagnostics(uri, text, inputs, controlStack);\n\t\tif (computed === null) return;\n\t\tconst artifacts = {\n\t\t\tdocument: computed.document,\n\t\t\tsourceFile: computed.sourceFile,\n\t\t\tdiagnostics: computed.diagnostics,\n\t\t\tinterpretDiagnostics: createInterpretSlot(uri, computed)\n\t\t};\n\t\tdocuments.set(uri, artifacts);\n\t\tsymbolTable = computed.symbolTable;\n\t\treturn artifacts;\n\t}\n\treturn {\n\t\tdocument: readDocument,\n\t\tsymbolTable: () => {\n\t\t\tif (symbolTable !== void 0) return symbolTable;\n\t\t\tfor (const uri of inputs.uris()) {\n\t\t\t\tconst artifacts = readDocument(uri);\n\t\t\t\tif (artifacts === void 0) continue;\n\t\t\t\tsymbolTable ??= buildSymbolTable({\n\t\t\t\t\tdocument: artifacts.document,\n\t\t\t\t\tsourceFile: artifacts.sourceFile,\n\t\t\t\t\tpslBlockDescriptors: controlStack.pslBlockDescriptors\n\t\t\t\t}).table;\n\t\t\t\treturn symbolTable;\n\t\t\t}\n\t\t\tthrow new InternalError(\"invariant violated: project has no open configured input — the server must drop such projects\");\n\t\t},\n\t\tdocumentChanged: drop,\n\t\tdocumentClosed: drop\n\t};\n}\n//#endregion\n//#region src/semantic-tokens.ts\nconst semanticTokenTypes = [\n\tSemanticTokenTypes.keyword,\n\tSemanticTokenTypes.namespace,\n\tSemanticTokenTypes.class,\n\tSemanticTokenTypes.struct,\n\tSemanticTokenTypes.type,\n\tSemanticTokenTypes.property,\n\tSemanticTokenTypes.decorator,\n\tSemanticTokenTypes.string,\n\tSemanticTokenTypes.number,\n\tSemanticTokenTypes.comment\n];\nconst semanticTokenModifiers = [SemanticTokenModifiers.declaration, SemanticTokenModifiers.defaultLibrary];\nconst semanticTokenModifierIndexes = {\n\tdeclaration: 0,\n\tdefaultLibrary: 1\n};\nconst semanticTokenModifierBits = {\n\tdeclaration: 1 << semanticTokenModifierIndexes.declaration,\n\tdefaultLibrary: 1 << semanticTokenModifierIndexes.defaultLibrary\n};\nconst semanticTokensLegend = {\n\ttokenTypes: [...semanticTokenTypes],\n\ttokenModifiers: [...semanticTokenModifiers]\n};\nfunction buildSemanticTokens(source, range) {\n\tconst builder = new SemanticTokensBuilder(source.sourceFile, range);\n\tfor (const token of collectSemanticTokenEvents(source)) builder.add(token);\n\treturn builder.build();\n}\nfunction collectSemanticTokenEvents(source) {\n\tconst comments = collectCommentTokens(source.document);\n\tconst tokens = [];\n\tcollectDeclarations(source, tokens);\n\treturn mergeSourceOrderedTokens(comments, tokens);\n}\nvar SemanticTokensBuilder = class {\n\t#data = [];\n\t#sourceFile;\n\t#rangeOffsets;\n\t#previousLine = 0;\n\t#previousCharacter = 0;\n\t#first = true;\n\tconstructor(sourceFile, range) {\n\t\tthis.#sourceFile = sourceFile;\n\t\tif (range !== void 0) {\n\t\t\tconst startOffset = sourceFile.offsetAt(range.start);\n\t\t\tconst endOffset = sourceFile.offsetAt(range.end);\n\t\t\tthis.#rangeOffsets = {\n\t\t\t\tlower: Math.min(startOffset, endOffset),\n\t\t\t\tupper: Math.max(startOffset, endOffset)\n\t\t\t};\n\t\t}\n\t}\n\tadd(token) {\n\t\tif (!this.#intersectsRange(token.startOffset, token.endOffset)) return;\n\t\tif (token.splitMultiline) {\n\t\t\tthis.#addMultilineSplitToken(token);\n\t\t\treturn;\n\t\t}\n\t\tthis.#encode(token.startOffset, token.endOffset, token.tokenTypeIndex, token.modifierBitset);\n\t}\n\tbuild() {\n\t\treturn { data: this.#data };\n\t}\n\t#intersectsRange(startOffset, endOffset) {\n\t\tconst rangeOffsets = this.#rangeOffsets;\n\t\treturn rangeOffsets === void 0 || startOffset < rangeOffsets.upper && endOffset > rangeOffsets.lower;\n\t}\n\t#addMultilineSplitToken(token) {\n\t\tconst start = this.#sourceFile.positionAt(token.startOffset);\n\t\tconst end = this.#sourceFile.positionAt(token.endOffset);\n\t\tif (start.line === end.line) {\n\t\t\tthis.#encode(token.startOffset, token.endOffset, token.tokenTypeIndex, token.modifierBitset);\n\t\t\treturn;\n\t\t}\n\t\tfor (let line = start.line; line <= end.line; line++) {\n\t\t\tconst startOffset = line === start.line ? token.startOffset : this.#sourceFile.lineStartOffset(line);\n\t\t\tconst endOffset = line === end.line ? token.endOffset : this.#sourceFile.lineEndOffset(line);\n\t\t\tif (endOffset > startOffset && this.#intersectsRange(startOffset, endOffset)) this.#encode(startOffset, endOffset, token.tokenTypeIndex, token.modifierBitset);\n\t\t}\n\t}\n\t#encode(startOffset, endOffset, tokenTypeIndex, modifierBitset) {\n\t\tconst start = this.#sourceFile.positionAt(startOffset);\n\t\tconst deltaLine = this.#first ? start.line : start.line - this.#previousLine;\n\t\tconst deltaStart = this.#first || deltaLine !== 0 ? start.character : start.character - this.#previousCharacter;\n\t\tthis.#data.push(deltaLine, deltaStart, endOffset - startOffset, tokenTypeIndex, modifierBitset);\n\t\tthis.#previousLine = start.line;\n\t\tthis.#previousCharacter = start.character;\n\t\tthis.#first = false;\n\t}\n};\nfunction collectCommentTokens(document) {\n\tconst tokens = [];\n\tfor (const token of document.syntax.tokens()) if (token.kind === \"Comment\") tokens.push(pendingTokenForToken(token, \"comment\"));\n\treturn tokens;\n}\nfunction collectDeclarations(source, tokens) {\n\tfor (const declaration of source.document.declarations()) collectDeclaration(declaration, source, tokens, void 0);\n}\nfunction collectDeclaration(declaration, source, tokens, namespace) {\n\tif (declaration instanceof ModelDeclarationAst) {\n\t\taddToken(declaration.keyword(), \"keyword\", tokens);\n\t\taddIdentifier(declaration.name(), \"class\", tokens, semanticTokenModifierBits.declaration);\n\t\tcollectBlockMembers(declaration.members(), source, tokens, namespace);\n\t\treturn;\n\t}\n\tif (declaration instanceof CompositeTypeDeclarationAst) {\n\t\taddToken(declaration.keyword(), \"keyword\", tokens);\n\t\taddIdentifier(declaration.name(), \"struct\", tokens, semanticTokenModifierBits.declaration);\n\t\tcollectBlockMembers(declaration.members(), source, tokens, namespace);\n\t\treturn;\n\t}\n\tif (declaration instanceof NamespaceDeclarationAst) {\n\t\taddToken(declaration.keyword(), \"keyword\", tokens);\n\t\taddIdentifier(declaration.name(), \"namespace\", tokens, semanticTokenModifierBits.declaration);\n\t\tconst nestedNamespace = declaration.name()?.name();\n\t\tfor (const nested of declaration.declarations()) collectDeclaration(nested, source, tokens, nestedNamespace);\n\t\treturn;\n\t}\n\tif (declaration instanceof TypesBlockAst) {\n\t\taddToken(declaration.keyword(), \"keyword\", tokens);\n\t\tfor (const namedType of declaration.declarations()) collectNamedTypeDeclaration(namedType, source, tokens, namespace);\n\t\treturn;\n\t}\n\taddToken(declaration.keyword(), \"keyword\", tokens);\n\taddIdentifier(declaration.name(), \"type\", tokens, semanticTokenModifierBits.declaration);\n\tcollectGenericBlockMembers(declaration.members(), source, tokens, namespace);\n}\nfunction collectNamedTypeDeclaration(declaration, source, tokens, namespace) {\n\taddIdentifier(declaration.name(), \"type\", tokens, semanticTokenModifierBits.declaration);\n\tcollectTypeAnnotation(declaration.typeAnnotation(), source, tokens, namespace);\n\tcollectAttributes(declaration.attributes(), source, tokens, namespace);\n}\nfunction collectGenericBlockMembers(members, source, tokens, namespace) {\n\tfor (const member of members) {\n\t\tif (\"key\" in member) {\n\t\t\taddIdentifier(member.key(), \"property\", tokens);\n\t\t\tcollectExpression(member.value(), source, tokens, namespace);\n\t\t\tcontinue;\n\t\t}\n\t\tcollectAttribute(member, source, tokens, namespace);\n\t}\n}\nfunction collectBlockMembers(members, source, tokens, namespace) {\n\tfor (const member of members) {\n\t\tif (member instanceof FieldDeclarationAst) {\n\t\t\tcollectField(member, source, tokens, namespace);\n\t\t\tcontinue;\n\t\t}\n\t\tcollectAttribute(member, source, tokens, namespace);\n\t}\n}\nfunction collectField(field, source, tokens, namespace) {\n\taddIdentifier(field.name(), \"property\", tokens, semanticTokenModifierBits.declaration);\n\tcollectTypeAnnotation(field.typeAnnotation(), source, tokens, namespace);\n\tcollectAttributes(field.attributes(), source, tokens, namespace);\n}\nfunction collectTypeAnnotation(annotation, source, tokens, namespace) {\n\tif (annotation === void 0) return;\n\tcollectTypeReference(annotation.name(), source, tokens, namespace);\n\tcollectAttributeArgList(annotation.argList(), source, tokens, namespace);\n}\nfunction collectAttributes(attributes, source, tokens, namespace) {\n\tfor (const attribute of attributes) collectAttribute(attribute, source, tokens, namespace);\n}\nfunction collectAttribute(attribute, source, tokens, namespace) {\n\tconst marker = findChildToken(attribute.syntax, \"At\") ?? findChildToken(attribute.syntax, \"DoubleAt\");\n\tcollectDecoratorName(attribute.name(), marker, tokens);\n\tcollectAttributeArgList(attribute.argList(), source, tokens, namespace);\n}\nfunction collectDecoratorName(name, marker, tokens) {\n\tif (name === void 0) return;\n\tconst segments = identifierSegments(name);\n\tfor (const [index, segment] of segments.entries()) tokens.push(rangeForDecoratorIdentifier(segment.identifier, index === 0 ? marker : void 0));\n}\nfunction collectAttributeArgList(argList, source, tokens, namespace) {\n\tif (argList === void 0) return;\n\tfor (const arg of argList.args()) collectAttributeArg(arg, source, tokens, namespace);\n}\nfunction collectAttributeArg(arg, source, tokens, namespace) {\n\tconst name = arg.name();\n\taddIdentifier(name, \"property\", tokens);\n\tcollectExpression(arg.value(), source, tokens, namespace, expressionContextForAttributeArg(name));\n}\nfunction collectExpression(expression, source, tokens, namespace, context = {}) {\n\tif (expression === void 0) return;\n\tif (expression instanceof StringLiteralExprAst) {\n\t\taddToken(expression.token(), \"string\", tokens);\n\t\treturn;\n\t}\n\tif (expression instanceof NumberLiteralExprAst) {\n\t\taddToken(expression.token(), \"number\", tokens);\n\t\treturn;\n\t}\n\tif (expression instanceof BooleanLiteralExprAst) {\n\t\taddToken(expression.token(), \"keyword\", tokens);\n\t\treturn;\n\t}\n\tif (expression instanceof FunctionCallAst) {\n\t\tcollectTypeReference(expression.name(), source, tokens, namespace);\n\t\tfor (const arg of expression.args()) collectAttributeArg(arg, source, tokens, namespace);\n\t\treturn;\n\t}\n\tif (expression instanceof ArrayLiteralAst) {\n\t\tfor (const element of expression.elements()) collectExpression(element, source, tokens, namespace, context);\n\t\treturn;\n\t}\n\tif (expression instanceof ObjectLiteralExprAst) {\n\t\tfor (const field of expression.fields()) {\n\t\t\taddIdentifier(field.key(), \"property\", tokens);\n\t\t\tcollectExpression(field.value(), source, tokens, namespace);\n\t\t}\n\t\treturn;\n\t}\n\tcollectIdentifierExpression(expression, source, tokens, namespace, context);\n}\nfunction collectIdentifierExpression(identifier, source, tokens, namespace, context) {\n\tconst text = identifier.name();\n\tif (text === void 0) return;\n\tconst bareIdentifierTokenType = context.bareIdentifierTokenType;\n\tif (bareIdentifierTokenType !== void 0) {\n\t\ttokens.push(rangeForIdentifier(identifier, bareIdentifierTokenType));\n\t\treturn;\n\t}\n\tconst classification = classifyTypeReference([text], source, namespace);\n\ttokens.push(rangeForIdentifier(identifier, classification.tokenType, classification.modifierBitset));\n}\nfunction expressionContextForAttributeArg(name) {\n\tconst argName = name?.name();\n\treturn argName === \"fields\" || argName === \"references\" ? { bareIdentifierTokenType: \"property\" } : {};\n}\nfunction collectTypeReference(name, source, tokens, namespace) {\n\tif (name === void 0) return;\n\tconst segments = identifierSegments(name);\n\tif (segments.length === 0) return;\n\tconst path = segments.map((segment) => segment.text);\n\tfor (const segment of segments.slice(0, -1)) if (isKnownNamespace(segment.text, source.symbolTable)) tokens.push(rangeForIdentifier(segment.identifier, \"namespace\"));\n\tconst finalSegment = segments[segments.length - 1];\n\tif (finalSegment === void 0) return;\n\tconst classification = classifyTypeReference(path, source, namespace);\n\ttokens.push(rangeForIdentifier(finalSegment.identifier, classification.tokenType, classification.modifierBitset));\n}\nfunction classifyTypeReference(path, source, namespace) {\n\tconst name = path[path.length - 1];\n\tif (name === void 0) return { tokenType: \"type\" };\n\tconst table = source.symbolTable;\n\tconst namespaceName = path.length > 1 ? path[path.length - 2] : namespace;\n\tconst namespaceScope = namespaceName !== void 0 ? table.topLevel.namespaces[namespaceName] : void 0;\n\tif (namespaceScope !== void 0) {\n\t\tif (Object.hasOwn(namespaceScope.models, name)) return { tokenType: \"class\" };\n\t\tif (Object.hasOwn(namespaceScope.compositeTypes, name)) return { tokenType: \"struct\" };\n\t\tif (Object.hasOwn(namespaceScope.blocks, name)) return { tokenType: \"type\" };\n\t}\n\tif (Object.hasOwn(table.topLevel.models, name)) return { tokenType: \"class\" };\n\tif (Object.hasOwn(table.topLevel.compositeTypes, name)) return { tokenType: \"struct\" };\n\tconst namedType = table.topLevel.namedTypes[name];\n\tif (namedType !== void 0) return refinesScalarType(namedType, source.scalarTypes) ? {\n\t\ttokenType: \"type\",\n\t\tmodifierBitset: semanticTokenModifierBits.defaultLibrary\n\t} : { tokenType: \"type\" };\n\tif (Object.hasOwn(table.topLevel.blocks, name)) return { tokenType: \"type\" };\n\tif (source.scalarTypes.includes(name)) return {\n\t\ttokenType: \"type\",\n\t\tmodifierBitset: semanticTokenModifierBits.defaultLibrary\n\t};\n\treturn { tokenType: \"type\" };\n}\nfunction isKnownNamespace(name, table) {\n\treturn Object.hasOwn(table.topLevel.namespaces, name);\n}\nfunction identifierSegments(name) {\n\tconst segments = [];\n\tfor (const identifier of filterChildren(name.syntax, IdentifierAst.cast)) {\n\t\tconst text = identifier.name();\n\t\tif (text !== void 0) segments.push({\n\t\t\tidentifier,\n\t\t\ttext\n\t\t});\n\t}\n\treturn segments;\n}\nfunction addIdentifier(identifier, tokenType, tokens, modifierBitset = 0) {\n\tif (identifier === void 0) return;\n\ttokens.push(rangeForIdentifier(identifier, tokenType, modifierBitset));\n}\nfunction addToken(token, tokenType, tokens, modifierBitset = 0) {\n\tif (token === void 0) return;\n\ttokens.push(pendingTokenForToken(token, tokenType, modifierBitset));\n}\nfunction rangeForIdentifier(identifier, tokenType, modifierBitset = 0) {\n\tconst token = identifier.token();\n\tif (token === void 0) return createPendingSemanticToken(identifier.syntax.offset, identifier.syntax.offset, tokenType, modifierBitset);\n\treturn pendingTokenForToken(token, tokenType, modifierBitset);\n}\nfunction rangeForDecoratorIdentifier(identifier, marker) {\n\tconst range = rangeForIdentifier(identifier, \"decorator\");\n\tif (marker === void 0 || marker.offset >= range.startOffset) return range;\n\treturn createPendingSemanticToken(marker.offset, range.endOffset, \"decorator\", range.modifierBitset);\n}\nfunction pendingTokenForToken(token, tokenType, modifierBitset = 0) {\n\treturn createPendingSemanticToken(token.offset, token.offset + token.text.length, tokenType, modifierBitset);\n}\nfunction mergeSourceOrderedTokens(left, right) {\n\tconst result = [];\n\tlet leftIndex = 0;\n\tlet rightIndex = 0;\n\twhile (leftIndex < left.length || rightIndex < right.length) {\n\t\tconst leftToken = left[leftIndex];\n\t\tconst rightToken = right[rightIndex];\n\t\tif (leftToken !== void 0 && (rightToken === void 0 || leftToken.startOffset <= rightToken.startOffset)) {\n\t\t\tresult.push(leftToken);\n\t\t\tleftIndex++;\n\t\t} else if (rightToken !== void 0) {\n\t\t\tresult.push(rightToken);\n\t\t\trightIndex++;\n\t\t}\n\t}\n\treturn result;\n}\nfunction createPendingSemanticToken(startOffset, endOffset, tokenType, modifierBitset = 0) {\n\treturn {\n\t\tstartOffset,\n\t\tendOffset,\n\t\ttokenTypeIndex: tokenTypeIndex(tokenType),\n\t\tmodifierBitset,\n\t\tsplitMultiline: tokenType === \"string\" || tokenType === \"comment\"\n\t};\n}\nfunction tokenTypeIndex(tokenType) {\n\treturn semanticTokenTypes.indexOf(tokenType);\n}\n//#endregion\n//#region src/server.ts\n/** The project a new load of this config could fall back to. */\nfunction lastGoodProject(entry) {\n\tif (entry === void 0 || entry.status === \"failed\") return;\n\treturn entry.status === \"loaded\" ? entry.project : entry.lastGood;\n}\nconst CONFIG_LOAD_FAILED_CODE = \"PRISMA_NEXT_CONFIG_LOAD_FAILED\";\nconst semanticTokenSourceLimit = 1e5;\nfunction createServer(connection) {\n\tconst documents = new TextDocuments(TextDocument);\n\tconst managedProjects = /* @__PURE__ */ new Map();\n\tconst documentConfigPaths = /* @__PURE__ */ new Map();\n\tlet rootPath = process.cwd();\n\tlet watchedConfigGlob = join(rootPath, \"**\", CONFIG_FILENAME);\n\tlet clientCapabilities = noClientCapabilities;\n\tlet disposed = false;\n\tfunction sendDiagnostics(params) {\n\t\tif (disposed) return;\n\t\tconnection.sendDiagnostics(params);\n\t}\n\tfunction logWarn(message) {\n\t\tif (disposed) return;\n\t\tconnection.console.warn(message);\n\t}\n\tasync function publish(uri) {\n\t\tconst project = await resolveProjectForDocument(uri);\n\t\tif (project === void 0) return;\n\t\tif (documents.get(uri) === void 0) {\n\t\t\tdocumentConfigPaths.delete(uri);\n\t\t\treturn;\n\t\t}\n\t\tconst artifacts = project.artifacts.document(uri);\n\t\tif (artifacts === void 0) {\n\t\t\tsendDiagnostics({\n\t\t\t\turi,\n\t\t\t\tdiagnostics: []\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tsendDiagnostics({\n\t\t\turi,\n\t\t\tdiagnostics: combinedDiagnostics(artifacts)\n\t\t});\n\t}\n\tfunction combinedDiagnostics(artifacts) {\n\t\treturn toDiagnostics([...artifacts.diagnostics, ...artifacts.interpretDiagnostics()]);\n\t}\n\t/**\n\t* Project-scoped so a future multi-input symbol table can attach\n\t* `relatedDocuments` for cross-file effects.\n\t*/\n\tfunction buildDocumentDiagnosticReport(project, uri) {\n\t\tconst artifacts = project.artifacts.document(uri);\n\t\treturn {\n\t\t\tkind: DocumentDiagnosticReportKind.Full,\n\t\t\titems: artifacts === void 0 ? [] : combinedDiagnostics(artifacts)\n\t\t};\n\t}\n\tasync function resolveProjectForDocument(uri) {\n\t\tconst project = await projectForNearestConfig(uri);\n\t\tif (project === void 0 || project.inputs.includes(uri)) return project;\n\t\tdocumentConfigPaths.delete(uri);\n\t\tdropProjectWithoutManagedDocuments(project.configPath);\n\t}\n\tasync function projectForNearestConfig(uri) {\n\t\tconst knownConfigPath = documentConfigPaths.get(uri);\n\t\tif (knownConfigPath !== void 0) return resolveProjectIfLoadable(knownConfigPath);\n\t\tconst filePath = filePathFromUri(uri);\n\t\tif (filePath === void 0) return;\n\t\tlet configPath;\n\t\ttry {\n\t\t\tconfigPath = await findNearestConfigPathForFile(filePath);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t\tif (configPath === void 0) return;\n\t\tdocumentConfigPaths.set(uri, configPath);\n\t\treturn resolveProjectIfLoadable(configPath);\n\t}\n\tasync function resolveProjectIfLoadable(configPath) {\n\t\ttry {\n\t\t\treturn await resolveProject(configPath);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t}\n\tasync function resolveProject(configPath) {\n\t\tconst entry = managedProjects.get(configPath);\n\t\tif (entry === void 0 || entry.status === \"failed\") return startProjectLoad(configPath);\n\t\treturn entry.status === \"loaded\" ? entry.project : entry.load;\n\t}\n\tfunction refreshProject(configPath) {\n\t\treturn startProjectLoad(configPath);\n\t}\n\tfunction startProjectLoad(configPath) {\n\t\tconst existing = managedProjects.get(configPath);\n\t\tconst previousLoad = existing?.status === \"loading\" ? existing.load : void 0;\n\t\tconst lastGood = lastGoodProject(existing);\n\t\tconst load = (previousLoad ?? Promise.resolve(void 0)).catch(() => void 0).then(() => loadProject(configPath)).then((project) => {\n\t\t\tif (isCurrentLoad(configPath, load)) {\n\t\t\t\tif (hasManagedDocuments(configPath)) managedProjects.set(configPath, {\n\t\t\t\t\tstatus: \"loaded\",\n\t\t\t\t\tproject\n\t\t\t\t});\n\t\t\t\telse managedProjects.delete(configPath);\n\t\t\t\tclearConfigFailure(configPath);\n\t\t\t}\n\t\t\treturn project;\n\t\t}, (error) => {\n\t\t\tif (isCurrentLoad(configPath, load)) if (!hasManagedDocuments(configPath)) {\n\t\t\t\tmanagedProjects.delete(configPath);\n\t\t\t\tclearConfigFailure(configPath);\n\t\t\t} else {\n\t\t\t\tpublishConfigFailure(configPath, error);\n\t\t\t\tif (lastGood !== void 0) {\n\t\t\t\t\tmanagedProjects.set(configPath, {\n\t\t\t\t\t\tstatus: \"loaded\",\n\t\t\t\t\t\tproject: lastGood\n\t\t\t\t\t});\n\t\t\t\t\treturn lastGood;\n\t\t\t\t}\n\t\t\t\tmanagedProjects.set(configPath, { status: \"failed\" });\n\t\t\t\tunmanageDocuments(configPath);\n\t\t\t}\n\t\t\tthrow error;\n\t\t});\n\t\tmanagedProjects.set(configPath, {\n\t\t\tstatus: \"loading\",\n\t\t\tload,\n\t\t\tlastGood\n\t\t});\n\t\treturn load;\n\t}\n\tfunction publishConfigFailure(configPath, error) {\n\t\tsendDiagnostics({\n\t\t\turi: pathToFileURL(configPath).toString(),\n\t\t\tdiagnostics: [{\n\t\t\t\trange: {\n\t\t\t\t\tstart: {\n\t\t\t\t\t\tline: 0,\n\t\t\t\t\t\tcharacter: 0\n\t\t\t\t\t},\n\t\t\t\t\tend: {\n\t\t\t\t\t\tline: 0,\n\t\t\t\t\t\tcharacter: 1\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmessage: configFailureMessage(error),\n\t\t\t\tcode: CONFIG_LOAD_FAILED_CODE,\n\t\t\t\tseverity: DiagnosticSeverity.Error,\n\t\t\t\tsource: \"prisma-next\"\n\t\t\t}]\n\t\t});\n\t}\n\tfunction configFailureMessage(error) {\n\t\tif (CliStructuredError.is(error)) return error.why ?? error.message;\n\t\treturn error instanceof Error ? error.message : String(error);\n\t}\n\tfunction clearConfigFailure(configPath) {\n\t\tsendDiagnostics({\n\t\t\turi: pathToFileURL(configPath).toString(),\n\t\t\tdiagnostics: []\n\t\t});\n\t}\n\tfunction isCurrentLoad(configPath, load) {\n\t\tconst entry = managedProjects.get(configPath);\n\t\treturn entry?.status === \"loading\" && entry.load === load;\n\t}\n\tasync function loadProject(configPath) {\n\t\tconst resolution = await resolveConfigInputs(configPath);\n\t\tconst artifacts = createProjectArtifacts({\n\t\t\tinputs: resolution.inputs,\n\t\t\tcontrolStack: resolution.controlStack,\n\t\t\tgetText: (uri) => documents.get(uri)?.getText(),\n\t\t\t...resolution.interpretation === void 0 ? {} : { interpretation: resolution.interpretation }\n\t\t});\n\t\treturn {\n\t\t\tconfigPath,\n\t\t\tinputs: resolution.inputs,\n\t\t\tcontrolStack: resolution.controlStack,\n\t\t\tartifacts,\n\t\t\t...resolution.formatter === void 0 ? {} : { formatter: resolution.formatter },\n\t\t\t...resolution.interpretation === void 0 ? {} : { interpretation: resolution.interpretation }\n\t\t};\n\t}\n\tfunction unmanageDocuments(configPath) {\n\t\tfor (const document of documents.all()) if (documentConfigPaths.get(document.uri) === configPath) documentConfigPaths.delete(document.uri);\n\t}\n\tasync function republishOpenDocumentsForConfig(configPath) {\n\t\tfor (const document of documents.all()) {\n\t\t\tif (documentConfigPaths.get(document.uri) === configPath) {\n\t\t\t\tif (await resolveProjectForDocument(document.uri) === void 0) {\n\t\t\t\t\tsendDiagnostics({\n\t\t\t\t\t\turi: document.uri,\n\t\t\t\t\t\tdiagnostics: []\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tawait publish(document.uri);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst filePath = filePathFromUri(document.uri);\n\t\t\tif (filePath === void 0) continue;\n\t\t\tif (await findNearestConfigPathForFile(filePath) === configPath) {\n\t\t\t\tdocumentConfigPaths.set(document.uri, configPath);\n\t\t\t\tawait publish(document.uri);\n\t\t\t}\n\t\t}\n\t}\n\tfunction publishSafely(uri) {\n\t\tpublish(uri).catch((error) => {\n\t\t\tif (disposed) return;\n\t\t\ttry {\n\t\t\t\tconnection.console.error(error instanceof Error ? error.message : String(error));\n\t\t\t} catch {}\n\t\t});\n\t}\n\tasync function formatDocument(uri) {\n\t\tconst document = documents.get(uri);\n\t\tif (document === void 0) return [];\n\t\tconst project = await resolveProjectForDocument(uri);\n\t\tif (project === void 0) return [];\n\t\tconst source = document.getText();\n\t\tlet formatted;\n\t\ttry {\n\t\t\tformatted = format(source, project.formatter);\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t\tif (formatted === source) return [];\n\t\treturn [{\n\t\t\trange: {\n\t\t\t\tstart: {\n\t\t\t\t\tline: 0,\n\t\t\t\t\tcharacter: 0\n\t\t\t\t},\n\t\t\t\tend: document.positionAt(source.length)\n\t\t\t},\n\t\t\tnewText: formatted\n\t\t}];\n\t}\n\tasync function semanticTokensForDocument(uri, range) {\n\t\tconst document = documents.get(uri);\n\t\tif (document === void 0) return emptySemanticTokens();\n\t\tif (document.getText().length > semanticTokenSourceLimit) return emptySemanticTokens();\n\t\tconst project = await resolveProjectForDocument(uri);\n\t\tif (project === void 0) return emptySemanticTokens();\n\t\tconst artifacts = project.artifacts.document(uri);\n\t\tif (artifacts === void 0) return emptySemanticTokens();\n\t\treturn buildSemanticTokens({\n\t\t\tdocument: artifacts.document,\n\t\t\tsourceFile: artifacts.sourceFile,\n\t\t\tsymbolTable: project.artifacts.symbolTable(),\n\t\t\tscalarTypes: project.controlStack.scalarTypes\n\t\t}, range);\n\t}\n\tasync function completeDocument(uri, position) {\n\t\tif (documents.get(uri) === void 0) return [];\n\t\tconst project = await resolveProjectForDocument(uri);\n\t\tif (project === void 0) return [];\n\t\tconst artifacts = project.artifacts.document(uri);\n\t\tif (artifacts === void 0) return [];\n\t\ttry {\n\t\t\treturn [...providePslCompletionItems({\n\t\t\t\tcontext: classifyPslCompletionContext({\n\t\t\t\t\tdocument: artifacts.document,\n\t\t\t\t\tsourceFile: artifacts.sourceFile,\n\t\t\t\t\tposition\n\t\t\t\t}),\n\t\t\t\tsourceFile: artifacts.sourceFile,\n\t\t\t\tcandidates: {\n\t\t\t\t\tscalarTypes: project.controlStack.scalarTypes,\n\t\t\t\t\tpslBlockDescriptors: project.controlStack.pslBlockDescriptors,\n\t\t\t\t\tsymbolTable: project.artifacts.symbolTable()\n\t\t\t\t},\n\t\t\t\tclientSupportsSnippets: clientCapabilities.completionSnippets\n\t\t\t})];\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t}\n\tconnection.onInitialize(async (params) => {\n\t\trootPath = resolveRootPath(params);\n\t\twatchedConfigGlob = join(rootPath, \"**\", CONFIG_FILENAME);\n\t\tclientCapabilities = resolveClientCapabilities(params);\n\t\treturn { capabilities: {\n\t\t\ttextDocumentSync: TextDocumentSyncKind.Incremental,\n\t\t\tdocumentFormattingProvider: true,\n\t\t\tfoldingRangeProvider: true,\n\t\t\tsemanticTokensProvider: {\n\t\t\t\tlegend: semanticTokensLegend,\n\t\t\t\tfull: true,\n\t\t\t\trange: true\n\t\t\t},\n\t\t\tcompletionProvider: { triggerCharacters: [\".\"] },\n\t\t\t...clientCapabilities.pullDiagnostics ? { diagnosticProvider: {\n\t\t\t\tinterFileDependencies: false,\n\t\t\t\tworkspaceDiagnostics: false\n\t\t\t} } : {}\n\t\t} };\n\t});\n\tconnection.onInitialized(() => {\n\t\tif (clientCapabilities.watchedFilesRegistration) connection.sendRequest(RegistrationRequest.type, { registrations: [{\n\t\t\tid: \"prisma-8-config-watcher\",\n\t\t\tmethod: DidChangeWatchedFilesNotification.type.method,\n\t\t\tregisterOptions: { watchers: [{ globPattern: watchedConfigGlob }] }\n\t\t}] }).catch(() => void 0);\n\t\telse logWarn(\"Client does not support dynamic file-watcher registration; Prisma Next config changes will not be picked up without a restart.\");\n\t});\n\tconnection.onDidChangeWatchedFiles(async (params) => {\n\t\tconst changedConfigPaths = configPathsFromWatchedChanges(params.changes.map((change) => filePathFromUri(change.uri)));\n\t\tfor (const configPath of changedConfigPaths) {\n\t\t\tif (managedProjects.has(configPath)) try {\n\t\t\t\tawait refreshProject(configPath);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!clientCapabilities.pullDiagnostics) await republishOpenDocumentsForConfig(configPath);\n\t\t}\n\t\tif (clientCapabilities.pullDiagnostics && clientCapabilities.diagnosticsRefresh && changedConfigPaths.size > 0 && !disposed) connection.languages.diagnostics.refresh().catch(() => void 0);\n\t});\n\tconnection.onDocumentFormatting((params) => formatDocument(params.textDocument.uri));\n\tconnection.onCompletion((params) => completeDocument(params.textDocument.uri, params.position));\n\tconnection.languages.semanticTokens.on((params) => semanticTokensForDocument(params.textDocument.uri));\n\tconnection.languages.semanticTokens.onRange((params) => semanticTokensForDocument(params.textDocument.uri, params.range));\n\tconnection.languages.diagnostics.on(async (params) => {\n\t\tconst project = await resolveProjectForDocument(params.textDocument.uri);\n\t\tif (project === void 0) return {\n\t\t\tkind: DocumentDiagnosticReportKind.Full,\n\t\t\titems: []\n\t\t};\n\t\treturn buildDocumentDiagnosticReport(project, params.textDocument.uri);\n\t});\n\tconnection.onFoldingRanges(async (params) => {\n\t\tconst project = await resolveProjectForDocument(params.textDocument.uri);\n\t\tif (project === void 0) return [];\n\t\tconst artifacts = project.artifacts.document(params.textDocument.uri);\n\t\tif (artifacts === void 0) return [];\n\t\treturn computeFoldingRanges(artifacts.document, artifacts.sourceFile);\n\t});\n\tdocuments.onDidOpen((event) => {\n\t\tartifactsForDocument(event.document.uri)?.documentChanged(event.document.uri);\n\t\tif (clientCapabilities.pullDiagnostics) return;\n\t\tpublishSafely(event.document.uri);\n\t});\n\tdocuments.onDidChangeContent((event) => {\n\t\tartifactsForDocument(event.document.uri)?.documentChanged(event.document.uri);\n\t\tif (clientCapabilities.pullDiagnostics) return;\n\t\tpublishSafely(event.document.uri);\n\t});\n\tdocuments.onDidClose((event) => {\n\t\tconst uri = event.document.uri;\n\t\tconst configPath = documentConfigPaths.get(uri);\n\t\tartifactsForDocument(uri)?.documentClosed(uri);\n\t\tdocumentConfigPaths.delete(uri);\n\t\tif (configPath !== void 0) dropProjectWithoutManagedDocuments(configPath);\n\t\tif (!clientCapabilities.pullDiagnostics) sendDiagnostics({\n\t\t\turi,\n\t\t\tdiagnostics: []\n\t\t});\n\t});\n\tdocuments.listen(connection);\n\tconnection.listen();\n\tfunction artifactsForDocument(uri) {\n\t\tconst configPath = documentConfigPaths.get(uri);\n\t\tif (configPath === void 0) return;\n\t\tconst entry = managedProjects.get(configPath);\n\t\treturn entry?.status === \"loaded\" ? entry.project.artifacts : void 0;\n\t}\n\tfunction hasManagedDocuments(configPath) {\n\t\tfor (const managedConfigPath of documentConfigPaths.values()) if (managedConfigPath === configPath) return true;\n\t\treturn false;\n\t}\n\tfunction dropProjectWithoutManagedDocuments(configPath) {\n\t\tif (hasManagedDocuments(configPath)) return;\n\t\tconst entry = managedProjects.get(configPath);\n\t\tif (entry === void 0 || entry.status === \"loading\") return;\n\t\tmanagedProjects.delete(configPath);\n\t\tclearConfigFailure(configPath);\n\t}\n\treturn {\n\t\tdispose: () => {\n\t\t\tdisposed = true;\n\t\t\tconnection.dispose();\n\t\t},\n\t\tgetDocumentAst: (uri) => artifactsForDocument(uri)?.document(uri),\n\t\tgetProjectSymbolTable: (uri) => artifactsForDocument(uri)?.symbolTable()\n\t};\n}\nfunction emptySemanticTokens() {\n\treturn { data: [] };\n}\nfunction toDiagnostics(computed) {\n\treturn computed.map((diagnostic) => ({\n\t\trange: diagnostic.range,\n\t\tmessage: diagnostic.message,\n\t\tcode: diagnostic.code,\n\t\tseverity: toLspSeverity(diagnostic.severity),\n\t\tsource: \"prisma-next\"\n\t}));\n}\nfunction toLspSeverity(severity) {\n\tswitch (severity) {\n\t\tcase ParseDiagnosticSeverity.Warning: return DiagnosticSeverity.Warning;\n\t\tcase ParseDiagnosticSeverity.Information: return DiagnosticSeverity.Information;\n\t\tcase ParseDiagnosticSeverity.Hint: return DiagnosticSeverity.Hint;\n\t\tdefault: return DiagnosticSeverity.Error;\n\t}\n}\nconst noClientCapabilities = {\n\twatchedFilesRegistration: false,\n\tcompletionSnippets: false,\n\tpullDiagnostics: false,\n\tdiagnosticsRefresh: false\n};\nfunction resolveClientCapabilities(params) {\n\treturn {\n\t\twatchedFilesRegistration: params.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration === true,\n\t\tcompletionSnippets: params.capabilities.textDocument?.completion?.completionItem?.snippetSupport === true,\n\t\tpullDiagnostics: params.capabilities.textDocument?.diagnostic !== void 0,\n\t\tdiagnosticsRefresh: params.capabilities.workspace?.diagnostics?.refreshSupport === true\n\t};\n}\nfunction resolveRootPath(params) {\n\tconst workspaceFolder = params.workspaceFolders?.[0];\n\tif (workspaceFolder !== void 0) return fileURLToPath(workspaceFolder.uri);\n\tif (params.rootUri) return fileURLToPath(params.rootUri);\n\tif (params.rootPath) return params.rootPath;\n\treturn process.cwd();\n}\nfunction filePathFromUri(uri) {\n\ttry {\n\t\treturn fileURLToPath(uri);\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction configPathsFromWatchedChanges(paths) {\n\tconst configPaths = /* @__PURE__ */ new Set();\n\tfor (const path of paths) if (path?.endsWith(\"prisma-next.config.ts\")) configPaths.add(path);\n\treturn configPaths;\n}\n//#endregion\n//#region src/start-server.ts\nfunction startServer() {\n\treturn createServer(createConnection(ProposedFeatures.all));\n}\n//#endregion\nexport { ParseDiagnosticSeverity, createServer, mapParseDiagnostics, startServer };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { D as serializeValue, E as serializeObjectKey, d as generateImportLines, g as generateRootsType, h as generateModelsType, i as generateCodecTypeIntersection, l as generateFieldTypesMapsByNamespace, n as emitterError, t as deduplicateImports, u as generateHashTypeAliases, v as generateValueObjectTypeAliases, w as serializeExecutionType, y as generateValueObjectsDescriptorType } from "./domain-type-generation-DAn9y5d2-BgoT5uKI.mjs";
|
|
2
|
+
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
3
|
+
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
4
|
+
import { InternalError } from "@prisma/orm-framework/utils/internal-error";
|
|
5
|
+
import { canonicalizeContractToObject } from "@prisma/orm-framework/contract/hashing";
|
|
6
|
+
import { keepInternalSpecifiers } from "@prisma/orm-framework/components/emission";
|
|
7
|
+
import { format } from "prettier";
|
|
8
|
+
//#region ../../../1-framework/3-tooling/emitter/dist/exports-D3-NwrMA.mjs
|
|
9
|
+
const JSON_EXTENSION = ".json";
|
|
10
|
+
function getEmittedArtifactPaths(outputJsonPath) {
|
|
11
|
+
if (!outputJsonPath.endsWith(JSON_EXTENSION)) throw emitterError("CONFIG.VALIDATION_FAILED", "Contract output path must end with .json", { meta: {
|
|
12
|
+
field: "contract.output",
|
|
13
|
+
outputJsonPath
|
|
14
|
+
} });
|
|
15
|
+
return {
|
|
16
|
+
jsonPath: outputJsonPath,
|
|
17
|
+
dtsPath: `${outputJsonPath.slice(0, -5)}.d.ts`
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function generateEnumBlockType(enums) {
|
|
21
|
+
return `{ ${Object.entries(enums).map(([name, entry]) => {
|
|
22
|
+
const membersType = `readonly [${entry.members.map((m) => `{ readonly name: ${serializeValue(m.name)}; readonly value: ${serializeValue(m.value)} }`).join(", ")}]`;
|
|
23
|
+
return `readonly ${serializeObjectKey(name)}: { readonly codecId: ${serializeValue(entry.codecId)}; readonly members: ${membersType} }`;
|
|
24
|
+
}).join("; ")} }`;
|
|
25
|
+
}
|
|
26
|
+
function generateContractDts(contract, emitter, codecTypeImports, hashes, options, codecLookup, resolveImportSpecifier = keepInternalSpecifiers) {
|
|
27
|
+
const allImports = [...codecTypeImports];
|
|
28
|
+
if (options?.queryOperationTypeImports) allImports.push(...options.queryOperationTypeImports);
|
|
29
|
+
const importLines = generateImportLines(deduplicateImports(allImports), resolveImportSpecifier);
|
|
30
|
+
const familyImportLines = emitter.getFamilyImports(resolveImportSpecifier);
|
|
31
|
+
const hashAliases = generateHashTypeAliases(hashes);
|
|
32
|
+
const codecTypes = generateCodecTypeIntersection(codecTypeImports, "CodecTypes");
|
|
33
|
+
const familyTypeAliases = emitter.getFamilyTypeAliases(options);
|
|
34
|
+
const typeMapsExpr = emitter.getTypeMapsExpression();
|
|
35
|
+
const storageType = emitter.generateStorageType(contract, "StorageHash");
|
|
36
|
+
const namespaceEntries = Object.entries(contract.domain.namespaces);
|
|
37
|
+
if (namespaceEntries.length === 0) throw emitterError("CONTRACT.NAMESPACE_INVALID", "domain has no namespaces", { meta: { reason: "no-domain-namespaces" } });
|
|
38
|
+
for (const [nsId, ns] of namespaceEntries) if (ns === void 0) throw new InternalError(`domain namespace "${nsId}" is not present on the contract`);
|
|
39
|
+
const rootsType = generateRootsType(contract.roots);
|
|
40
|
+
const flatValueObjects = {};
|
|
41
|
+
for (const [, ns] of namespaceEntries) for (const [voName, vo] of Object.entries(blindCast(ns.valueObjects ?? {}))) if (!(voName in flatValueObjects)) flatValueObjects[voName] = vo;
|
|
42
|
+
const valueObjects = Object.keys(flatValueObjects).length > 0 ? flatValueObjects : void 0;
|
|
43
|
+
const valueObjectTypeAliases = generateValueObjectTypeAliases(valueObjects, codecLookup);
|
|
44
|
+
const valueObjectsDescriptor = generateValueObjectsDescriptorType(valueObjects);
|
|
45
|
+
const domainNamespacesType = namespaceEntries.map(([nsId, ns]) => {
|
|
46
|
+
const nsModels = ns.models;
|
|
47
|
+
const nsModelsType = generateModelsType(nsModels, (name, model) => emitter.generateModelStorageType(name, model));
|
|
48
|
+
const nsValueObjects = blindCast(ns.valueObjects);
|
|
49
|
+
const nsValueObjectsDescriptor = nsValueObjects !== void 0 && Object.keys(nsValueObjects).length > 0 ? generateValueObjectsDescriptorType(nsValueObjects) : void 0;
|
|
50
|
+
const nsEnums = blindCast(ns.enum);
|
|
51
|
+
return [
|
|
52
|
+
nsId,
|
|
53
|
+
nsModelsType,
|
|
54
|
+
nsValueObjectsDescriptor,
|
|
55
|
+
nsEnums !== void 0 && Object.keys(nsEnums).length > 0 ? generateEnumBlockType(nsEnums) : void 0
|
|
56
|
+
];
|
|
57
|
+
}).map(([nsId, nsModelsType, nsValueObjectsDescriptor, nsEnumBlock]) => {
|
|
58
|
+
return ` readonly ${nsId}: {\n readonly models: ${nsModelsType};${nsValueObjectsDescriptor !== void 0 ? `\n readonly valueObjects: ${nsValueObjectsDescriptor};` : ""}${nsEnumBlock !== void 0 ? `\n readonly enum: ${nsEnumBlock};` : ""}\n }`;
|
|
59
|
+
}).join(";\n");
|
|
60
|
+
const executionClause = contract.execution !== void 0 ? `\n readonly execution: ${serializeExecutionType(contract.execution)};` : "";
|
|
61
|
+
const resolveFieldTypeParams = emitter.resolveFieldTypeParams ? (modelName, fieldName, model) => emitter.resolveFieldTypeParams?.(modelName, fieldName, model, contract) : void 0;
|
|
62
|
+
const resolveFieldValueSet = emitter.resolveFieldValueSet ? (modelName, fieldName, model) => emitter.resolveFieldValueSet?.(modelName, fieldName, model, contract) : void 0;
|
|
63
|
+
const fieldTypesMaps = generateFieldTypesMapsByNamespace(namespaceEntries.map(([nsId, ns]) => [nsId, ns.models]), codecLookup, resolveFieldTypeParams, resolveFieldValueSet);
|
|
64
|
+
const extraTypeExports = emitter.getStorageTypeExports?.(contract, codecLookup);
|
|
65
|
+
const contractWrapper = emitter.getContractWrapper("ContractBase", "TypeMaps");
|
|
66
|
+
return `// ⚠️ GENERATED FILE - DO NOT EDIT
|
|
67
|
+
// This file is automatically generated by 'prisma-next contract emit'.
|
|
68
|
+
// To regenerate, run: prisma-next contract emit
|
|
69
|
+
${importLines.join("\n")}
|
|
70
|
+
|
|
71
|
+
${familyImportLines.join("\n")}
|
|
72
|
+
import type {
|
|
73
|
+
Contract as ContractType,
|
|
74
|
+
ExecutionHashBase,
|
|
75
|
+
NamespaceId,
|
|
76
|
+
ProfileHashBase,
|
|
77
|
+
StorageHashBase,
|
|
78
|
+
} from '${resolveImportSpecifier("@internal/contract/types")}';
|
|
79
|
+
|
|
80
|
+
${hashAliases}
|
|
81
|
+
|
|
82
|
+
export type CodecTypes = ${codecTypes};
|
|
83
|
+
${familyTypeAliases}
|
|
84
|
+
${valueObjectTypeAliases}
|
|
85
|
+
export type FieldOutputTypes = ${fieldTypesMaps.output};
|
|
86
|
+
export type FieldInputTypes = ${fieldTypesMaps.input};
|
|
87
|
+
${extraTypeExports ? `${extraTypeExports}\n` : ""}export type TypeMaps = ${typeMapsExpr};
|
|
88
|
+
|
|
89
|
+
type ContractBase = Omit<
|
|
90
|
+
ContractType<${storageType}>,
|
|
91
|
+
'roots' | 'domain'
|
|
92
|
+
> & {
|
|
93
|
+
readonly target: ${serializeValue(contract.target)};
|
|
94
|
+
readonly targetFamily: ${serializeValue(contract.targetFamily)};
|
|
95
|
+
readonly roots: ${rootsType};
|
|
96
|
+
readonly domain: {
|
|
97
|
+
readonly namespaces: {
|
|
98
|
+
${domainNamespacesType};
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
readonly capabilities: ${serializeValue(contract.capabilities)};
|
|
102
|
+
readonly extensions: ${serializeValue(contract.extensions)};${executionClause}
|
|
103
|
+
readonly meta: ${serializeValue(contract.meta)};
|
|
104
|
+
${valueObjects ? `readonly valueObjects: ${valueObjectsDescriptor};` : ""}
|
|
105
|
+
readonly profileHash: ProfileHash;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
${contractWrapper}
|
|
109
|
+
`;
|
|
110
|
+
}
|
|
111
|
+
const SCHEMA_VERSION = "1";
|
|
112
|
+
async function emit(contract, stack, targetFamily, options) {
|
|
113
|
+
if (options.outputJsonPath !== void 0) getEmittedArtifactPaths(options.outputJsonPath);
|
|
114
|
+
const { codecTypeImports, queryOperationTypeImports } = stack;
|
|
115
|
+
const { storageHash } = contract.storage;
|
|
116
|
+
const executionHash = contract.execution?.executionHash;
|
|
117
|
+
const { profileHash } = contract;
|
|
118
|
+
const canonicalized = canonicalizeContractToObject(contract, {
|
|
119
|
+
schemaVersion: SCHEMA_VERSION,
|
|
120
|
+
serializeContract: options.serializeContract,
|
|
121
|
+
...ifDefined("shouldPreserveEmpty", options.shouldPreserveEmpty),
|
|
122
|
+
...ifDefined("sortStorage", options.sortStorage)
|
|
123
|
+
});
|
|
124
|
+
const contractJsonString = JSON.stringify({
|
|
125
|
+
...canonicalized,
|
|
126
|
+
_generated: {
|
|
127
|
+
warning: "⚠️ GENERATED FILE - DO NOT EDIT",
|
|
128
|
+
message: "This file is automatically generated by \"prisma-next contract emit\".",
|
|
129
|
+
regenerate: "To regenerate, run: prisma-next contract emit"
|
|
130
|
+
}
|
|
131
|
+
}, null, 2);
|
|
132
|
+
const generateOptions = queryOperationTypeImports ? { queryOperationTypeImports } : void 0;
|
|
133
|
+
const contractTypeHashes = {
|
|
134
|
+
storageHash,
|
|
135
|
+
...ifDefined("executionHash", executionHash),
|
|
136
|
+
profileHash
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
contractJson: contractJsonString,
|
|
140
|
+
contractDts: await format(generateContractDts(contract, targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {
|
|
141
|
+
parser: "typescript",
|
|
142
|
+
singleQuote: true,
|
|
143
|
+
semi: true,
|
|
144
|
+
printWidth: 100
|
|
145
|
+
}),
|
|
146
|
+
storageHash,
|
|
147
|
+
...ifDefined("executionHash", executionHash),
|
|
148
|
+
profileHash
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
export { generateContractDts as n, getEmittedArtifactPaths as r, emit as t };
|
|
153
|
+
|
|
154
|
+
//# sourceMappingURL=exports-D3-NwrMA-CadaBGQ3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-D3-NwrMA-CadaBGQ3.mjs","names":[],"sources":["../../../../1-framework/3-tooling/emitter/dist/exports-D3-NwrMA.mjs"],"sourcesContent":["import { C as serializeExecutionType, D as emitterError, E as serializeValue, T as serializeObjectKey, _ as generateValueObjectTypeAliases, c as generateFieldTypesMapsByNamespace, h as generateRootsType, l as generateHashTypeAliases, m as generateModelsType, r as generateCodecTypeIntersection, t as deduplicateImports, u as generateImportLines, v as generateValueObjectsDescriptorType } from \"./domain-type-generation-DAn9y5d2.mjs\";\nimport { keepInternalSpecifiers } from \"@internal/framework-components/emission\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { canonicalizeContractToObject } from \"@internal/contract/hashing\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { format } from \"prettier\";\nimport { InternalError } from \"@internal/utils/internal-error\";\n//#region src/artifact-paths.ts\nconst JSON_EXTENSION = \".json\";\nfunction getEmittedArtifactPaths(outputJsonPath) {\n\tif (!outputJsonPath.endsWith(JSON_EXTENSION)) throw emitterError(\"CONFIG.VALIDATION_FAILED\", \"Contract output path must end with .json\", { meta: {\n\t\tfield: \"contract.output\",\n\t\toutputJsonPath\n\t} });\n\treturn {\n\t\tjsonPath: outputJsonPath,\n\t\tdtsPath: `${outputJsonPath.slice(0, -5)}.d.ts`\n\t};\n}\n//#endregion\n//#region src/generate-contract-dts.ts\nfunction generateEnumBlockType(enums) {\n\treturn `{ ${Object.entries(enums).map(([name, entry]) => {\n\t\tconst membersType = `readonly [${entry.members.map((m) => `{ readonly name: ${serializeValue(m.name)}; readonly value: ${serializeValue(m.value)} }`).join(\", \")}]`;\n\t\treturn `readonly ${serializeObjectKey(name)}: { readonly codecId: ${serializeValue(entry.codecId)}; readonly members: ${membersType} }`;\n\t}).join(\"; \")} }`;\n}\nfunction generateContractDts(contract, emitter, codecTypeImports, hashes, options, codecLookup, resolveImportSpecifier = keepInternalSpecifiers) {\n\tconst allImports = [...codecTypeImports];\n\tif (options?.queryOperationTypeImports) allImports.push(...options.queryOperationTypeImports);\n\tconst importLines = generateImportLines(deduplicateImports(allImports), resolveImportSpecifier);\n\tconst familyImportLines = emitter.getFamilyImports(resolveImportSpecifier);\n\tconst hashAliases = generateHashTypeAliases(hashes);\n\tconst codecTypes = generateCodecTypeIntersection(codecTypeImports, \"CodecTypes\");\n\tconst familyTypeAliases = emitter.getFamilyTypeAliases(options);\n\tconst typeMapsExpr = emitter.getTypeMapsExpression();\n\tconst storageType = emitter.generateStorageType(contract, \"StorageHash\");\n\tconst namespaceEntries = Object.entries(contract.domain.namespaces);\n\tif (namespaceEntries.length === 0) throw emitterError(\"CONTRACT.NAMESPACE_INVALID\", \"domain has no namespaces\", { meta: { reason: \"no-domain-namespaces\" } });\n\tfor (const [nsId, ns] of namespaceEntries) if (ns === void 0) throw new InternalError(`domain namespace \"${nsId}\" is not present on the contract`);\n\tconst rootsType = generateRootsType(contract.roots);\n\tconst flatValueObjects = {};\n\tfor (const [, ns] of namespaceEntries) for (const [voName, vo] of Object.entries(blindCast(ns.valueObjects ?? {}))) if (!(voName in flatValueObjects)) flatValueObjects[voName] = vo;\n\tconst valueObjects = Object.keys(flatValueObjects).length > 0 ? flatValueObjects : void 0;\n\tconst valueObjectTypeAliases = generateValueObjectTypeAliases(valueObjects, codecLookup);\n\tconst valueObjectsDescriptor = generateValueObjectsDescriptorType(valueObjects);\n\tconst domainNamespacesType = namespaceEntries.map(([nsId, ns]) => {\n\t\tconst nsModels = ns.models;\n\t\tconst nsModelsType = generateModelsType(nsModels, (name, model) => emitter.generateModelStorageType(name, model));\n\t\tconst nsValueObjects = blindCast(ns.valueObjects);\n\t\tconst nsValueObjectsDescriptor = nsValueObjects !== void 0 && Object.keys(nsValueObjects).length > 0 ? generateValueObjectsDescriptorType(nsValueObjects) : void 0;\n\t\tconst nsEnums = blindCast(ns.enum);\n\t\treturn [\n\t\t\tnsId,\n\t\t\tnsModelsType,\n\t\t\tnsValueObjectsDescriptor,\n\t\t\tnsEnums !== void 0 && Object.keys(nsEnums).length > 0 ? generateEnumBlockType(nsEnums) : void 0\n\t\t];\n\t}).map(([nsId, nsModelsType, nsValueObjectsDescriptor, nsEnumBlock]) => {\n\t\treturn ` readonly ${nsId}: {\\n readonly models: ${nsModelsType};${nsValueObjectsDescriptor !== void 0 ? `\\n readonly valueObjects: ${nsValueObjectsDescriptor};` : \"\"}${nsEnumBlock !== void 0 ? `\\n readonly enum: ${nsEnumBlock};` : \"\"}\\n }`;\n\t}).join(\";\\n\");\n\tconst executionClause = contract.execution !== void 0 ? `\\n readonly execution: ${serializeExecutionType(contract.execution)};` : \"\";\n\tconst resolveFieldTypeParams = emitter.resolveFieldTypeParams ? (modelName, fieldName, model) => emitter.resolveFieldTypeParams?.(modelName, fieldName, model, contract) : void 0;\n\tconst resolveFieldValueSet = emitter.resolveFieldValueSet ? (modelName, fieldName, model) => emitter.resolveFieldValueSet?.(modelName, fieldName, model, contract) : void 0;\n\tconst fieldTypesMaps = generateFieldTypesMapsByNamespace(namespaceEntries.map(([nsId, ns]) => [nsId, ns.models]), codecLookup, resolveFieldTypeParams, resolveFieldValueSet);\n\tconst extraTypeExports = emitter.getStorageTypeExports?.(contract, codecLookup);\n\tconst contractWrapper = emitter.getContractWrapper(\"ContractBase\", \"TypeMaps\");\n\treturn `// ⚠️ GENERATED FILE - DO NOT EDIT\n// This file is automatically generated by 'prisma-next contract emit'.\n// To regenerate, run: prisma-next contract emit\n${importLines.join(\"\\n\")}\n\n${familyImportLines.join(\"\\n\")}\nimport type {\n Contract as ContractType,\n ExecutionHashBase,\n NamespaceId,\n ProfileHashBase,\n StorageHashBase,\n} from '${resolveImportSpecifier(\"@internal/contract/types\")}';\n\n${hashAliases}\n\nexport type CodecTypes = ${codecTypes};\n${familyTypeAliases}\n${valueObjectTypeAliases}\nexport type FieldOutputTypes = ${fieldTypesMaps.output};\nexport type FieldInputTypes = ${fieldTypesMaps.input};\n${extraTypeExports ? `${extraTypeExports}\\n` : \"\"}export type TypeMaps = ${typeMapsExpr};\n\ntype ContractBase = Omit<\n ContractType<${storageType}>,\n 'roots' | 'domain'\n> & {\n readonly target: ${serializeValue(contract.target)};\n readonly targetFamily: ${serializeValue(contract.targetFamily)};\n readonly roots: ${rootsType};\n readonly domain: {\n readonly namespaces: {\n${domainNamespacesType};\n };\n };\n readonly capabilities: ${serializeValue(contract.capabilities)};\n readonly extensions: ${serializeValue(contract.extensions)};${executionClause}\n readonly meta: ${serializeValue(contract.meta)};\n ${valueObjects ? `readonly valueObjects: ${valueObjectsDescriptor};` : \"\"}\n readonly profileHash: ProfileHash;\n};\n\n${contractWrapper}\n`;\n}\n//#endregion\n//#region src/emit.ts\nconst SCHEMA_VERSION = \"1\";\nasync function emit(contract, stack, targetFamily, options) {\n\tif (options.outputJsonPath !== void 0) getEmittedArtifactPaths(options.outputJsonPath);\n\tconst { codecTypeImports, queryOperationTypeImports } = stack;\n\tconst { storageHash } = contract.storage;\n\tconst executionHash = contract.execution?.executionHash;\n\tconst { profileHash } = contract;\n\tconst canonicalized = canonicalizeContractToObject(contract, {\n\t\tschemaVersion: SCHEMA_VERSION,\n\t\tserializeContract: options.serializeContract,\n\t\t...ifDefined(\"shouldPreserveEmpty\", options.shouldPreserveEmpty),\n\t\t...ifDefined(\"sortStorage\", options.sortStorage)\n\t});\n\tconst contractJsonString = JSON.stringify({\n\t\t...canonicalized,\n\t\t_generated: {\n\t\t\twarning: \"⚠️ GENERATED FILE - DO NOT EDIT\",\n\t\t\tmessage: \"This file is automatically generated by \\\"prisma-next contract emit\\\".\",\n\t\t\tregenerate: \"To regenerate, run: prisma-next contract emit\"\n\t\t}\n\t}, null, 2);\n\tconst generateOptions = queryOperationTypeImports ? { queryOperationTypeImports } : void 0;\n\tconst contractTypeHashes = {\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n\treturn {\n\t\tcontractJson: contractJsonString,\n\t\tcontractDts: await format(generateContractDts(contract, targetFamily, codecTypeImports ?? [], contractTypeHashes, generateOptions, stack.codecLookup, options.resolveImportSpecifier ?? keepInternalSpecifiers), {\n\t\t\tparser: \"typescript\",\n\t\t\tsingleQuote: true,\n\t\t\tsemi: true,\n\t\t\tprintWidth: 100\n\t\t}),\n\t\tstorageHash,\n\t\t...ifDefined(\"executionHash\", executionHash),\n\t\tprofileHash\n\t};\n}\n//#endregion\nexport { generateContractDts as n, getEmittedArtifactPaths as r, emit as t };\n\n//# sourceMappingURL=exports-D3-NwrMA.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { r as getEmittedArtifactPaths } from "./exports-D3-NwrMA-CadaBGQ3.mjs";
|
|
2
|
+
import { CliStructuredError, errorConfigFileNotFound, errorConfigValidation, errorUnexpected } from "@prisma/orm-framework/errors/control";
|
|
3
|
+
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
4
|
+
import { dirname, join, resolve } from "pathe";
|
|
5
|
+
import { access } from "node:fs/promises";
|
|
6
|
+
import { normalizeContractConfig } from "@prisma/orm-framework/config/config-types";
|
|
7
|
+
import { validateConfig } from "@prisma/orm-framework/config/config-validation";
|
|
8
|
+
import { isStructuredError, structuredError } from "@prisma/orm-framework/utils/structured-error";
|
|
9
|
+
//#region ../../../1-framework/3-tooling/config-loader/dist/exports/index.mjs
|
|
10
|
+
function finalizeContractSource(source, configDir) {
|
|
11
|
+
const resolvedInputs = source.inputs?.map((input) => resolve(configDir, input));
|
|
12
|
+
if (resolvedInputs === void 0) return source;
|
|
13
|
+
return {
|
|
14
|
+
...source,
|
|
15
|
+
inputs: resolvedInputs
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function finalizeConfig(config, configDir) {
|
|
19
|
+
if (!config.contract) return config;
|
|
20
|
+
const contract = normalizeContractConfig(config.contract);
|
|
21
|
+
const source = finalizeContractSource(contract.source, configDir);
|
|
22
|
+
const output = resolve(configDir, contract.output);
|
|
23
|
+
return {
|
|
24
|
+
...config,
|
|
25
|
+
contract: {
|
|
26
|
+
...contract,
|
|
27
|
+
source,
|
|
28
|
+
output
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const CONFIG_FILENAME = "prisma-next.config.ts";
|
|
33
|
+
function throwValidation(field, why) {
|
|
34
|
+
throw structuredError("CONFIG.VALIDATION_FAILED", why, {
|
|
35
|
+
why,
|
|
36
|
+
meta: { field }
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function validateNoOutputsAreInputs(inputs, output) {
|
|
40
|
+
if (inputs === void 0 || output === void 0) return;
|
|
41
|
+
let emittedArtifactPaths;
|
|
42
|
+
try {
|
|
43
|
+
emittedArtifactPaths = getEmittedArtifactPaths(output);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
throwValidation("contract.output", error instanceof Error ? error.message : String(error));
|
|
46
|
+
}
|
|
47
|
+
const emittedPaths = /* @__PURE__ */ new Set([emittedArtifactPaths.jsonPath, emittedArtifactPaths.dtsPath]);
|
|
48
|
+
for (const input of inputs) if (emittedPaths.has(input)) throwValidation("contract.source.inputs[]", "Config.contract.source.inputs must not include emitted artifact paths derived from contract.output");
|
|
49
|
+
}
|
|
50
|
+
async function findNearestConfigPathForFile(filePath) {
|
|
51
|
+
let current = dirname(resolve(process.cwd(), filePath));
|
|
52
|
+
while (true) {
|
|
53
|
+
const candidate = join(current, CONFIG_FILENAME);
|
|
54
|
+
if (await fileExists(candidate)) return candidate;
|
|
55
|
+
const parent = dirname(current);
|
|
56
|
+
if (parent === current) return;
|
|
57
|
+
current = parent;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async function fileExists(path) {
|
|
61
|
+
try {
|
|
62
|
+
await access(path);
|
|
63
|
+
return true;
|
|
64
|
+
} catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function discoverAndFinalizeConfig(configPath) {
|
|
69
|
+
const cwd = process.cwd();
|
|
70
|
+
const resolvedConfigPath = configPath ? resolve(cwd, configPath) : void 0;
|
|
71
|
+
const configCwd = resolvedConfigPath ? dirname(resolvedConfigPath) : cwd;
|
|
72
|
+
const result = await (await import("c12")).loadConfig({
|
|
73
|
+
name: "prisma-next",
|
|
74
|
+
...ifDefined("configFile", resolvedConfigPath),
|
|
75
|
+
cwd: configCwd
|
|
76
|
+
});
|
|
77
|
+
if (resolvedConfigPath && result.configFile !== resolvedConfigPath) throw errorConfigFileNotFound(resolvedConfigPath);
|
|
78
|
+
if (!result.config || Object.keys(result.config).length === 0) throw errorConfigFileNotFound(result.configFile || resolvedConfigPath || configPath);
|
|
79
|
+
validateConfig(result.config);
|
|
80
|
+
/* v8 ignore next -- @preserve */
|
|
81
|
+
const loadedConfigDir = result.configFile ? dirname(result.configFile) : configCwd;
|
|
82
|
+
const config = finalizeConfig(result.config, loadedConfigDir);
|
|
83
|
+
validateNoOutputsAreInputs(config.contract?.source.inputs, config.contract?.output);
|
|
84
|
+
return config;
|
|
85
|
+
}
|
|
86
|
+
function hasStringCode(error) {
|
|
87
|
+
return "code" in error && typeof error.code === "string";
|
|
88
|
+
}
|
|
89
|
+
function toStructuredConfigError(error, configPath) {
|
|
90
|
+
if (isStructuredError(error) && error.code === "CONFIG.VALIDATION_FAILED" && !(error instanceof CliStructuredError)) return errorConfigValidation(typeof error.meta?.["field"] === "string" ? error.meta["field"] : "config", { why: error.why ?? error.message });
|
|
91
|
+
if (error instanceof Error && hasStringCode(error)) return error;
|
|
92
|
+
if (error instanceof Error) {
|
|
93
|
+
if (error.message.includes("not found") || error.message.includes("Cannot find") || error.message.includes("ENOENT")) return errorConfigFileNotFound(configPath ? resolve(process.cwd(), configPath) : void 0, { why: error.message });
|
|
94
|
+
return errorUnexpected(error.message, { why: `Failed to load config: ${error.message}` });
|
|
95
|
+
}
|
|
96
|
+
return errorUnexpected(String(error));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Loads, validates, and finalizes the Prisma Next config, mapping every failure
|
|
100
|
+
* to a structured `@internal/errors/control` error (`CliStructuredError`).
|
|
101
|
+
* This is the sole public entry point: callers that need to degrade gracefully
|
|
102
|
+
* (e.g. the language server) branch on the structured error's stable `.code`.
|
|
103
|
+
*/
|
|
104
|
+
async function loadConfig(configPath) {
|
|
105
|
+
try {
|
|
106
|
+
return await discoverAndFinalizeConfig(configPath);
|
|
107
|
+
} catch (error) {
|
|
108
|
+
throw toStructuredConfigError(error, configPath);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function loadConfigForFile(filePath) {
|
|
112
|
+
const configPath = await findNearestConfigPathForFile(filePath);
|
|
113
|
+
if (configPath === void 0) throw errorConfigFileNotFound(join(dirname(resolve(process.cwd(), filePath)), CONFIG_FILENAME));
|
|
114
|
+
return loadConfig(configPath);
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { loadConfigForFile as i, findNearestConfigPathForFile as n, loadConfig as r, finalizeConfig as t };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=exports-Dl2aGAk7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports-Dl2aGAk7.mjs","names":[],"sources":["../../../../1-framework/3-tooling/config-loader/dist/exports/index.mjs"],"sourcesContent":["import { normalizeContractConfig } from \"@internal/config/config-types\";\nimport { dirname, join, resolve } from \"pathe\";\nimport { access } from \"node:fs/promises\";\nimport { validateConfig } from \"@internal/config/config-validation\";\nimport { getEmittedArtifactPaths } from \"@internal/emitter\";\nimport { CliStructuredError, errorConfigFileNotFound, errorConfigValidation, errorUnexpected } from \"@internal/errors/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\n//#region src/finalize-config.ts\nfunction finalizeContractSource(source, configDir) {\n\tconst resolvedInputs = source.inputs?.map((input) => resolve(configDir, input));\n\tif (resolvedInputs === void 0) return source;\n\treturn {\n\t\t...source,\n\t\tinputs: resolvedInputs\n\t};\n}\nfunction finalizeConfig(config, configDir) {\n\tif (!config.contract) return config;\n\tconst contract = normalizeContractConfig(config.contract);\n\tconst source = finalizeContractSource(contract.source, configDir);\n\tconst output = resolve(configDir, contract.output);\n\treturn {\n\t\t...config,\n\t\tcontract: {\n\t\t\t...contract,\n\t\t\tsource,\n\t\t\toutput\n\t\t}\n\t};\n}\n//#endregion\n//#region src/load.ts\nconst CONFIG_FILENAME = \"prisma-next.config.ts\";\nfunction throwValidation(field, why) {\n\tthrow structuredError(\"CONFIG.VALIDATION_FAILED\", why, {\n\t\twhy,\n\t\tmeta: { field }\n\t});\n}\nfunction validateNoOutputsAreInputs(inputs, output) {\n\tif (inputs === void 0 || output === void 0) return;\n\tlet emittedArtifactPaths;\n\ttry {\n\t\temittedArtifactPaths = getEmittedArtifactPaths(output);\n\t} catch (error) {\n\t\tthrowValidation(\"contract.output\", error instanceof Error ? error.message : String(error));\n\t}\n\tconst emittedPaths = /* @__PURE__ */ new Set([emittedArtifactPaths.jsonPath, emittedArtifactPaths.dtsPath]);\n\tfor (const input of inputs) if (emittedPaths.has(input)) throwValidation(\"contract.source.inputs[]\", \"Config.contract.source.inputs must not include emitted artifact paths derived from contract.output\");\n}\nasync function findNearestConfigPathForFile(filePath) {\n\tlet current = dirname(resolve(process.cwd(), filePath));\n\twhile (true) {\n\t\tconst candidate = join(current, CONFIG_FILENAME);\n\t\tif (await fileExists(candidate)) return candidate;\n\t\tconst parent = dirname(current);\n\t\tif (parent === current) return;\n\t\tcurrent = parent;\n\t}\n}\nasync function fileExists(path) {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\nasync function discoverAndFinalizeConfig(configPath) {\n\tconst cwd = process.cwd();\n\tconst resolvedConfigPath = configPath ? resolve(cwd, configPath) : void 0;\n\tconst configCwd = resolvedConfigPath ? dirname(resolvedConfigPath) : cwd;\n\tconst result = await (await import(\"c12\")).loadConfig({\n\t\tname: \"prisma-next\",\n\t\t...ifDefined(\"configFile\", resolvedConfigPath),\n\t\tcwd: configCwd\n\t});\n\tif (resolvedConfigPath && result.configFile !== resolvedConfigPath) throw errorConfigFileNotFound(resolvedConfigPath);\n\tif (!result.config || Object.keys(result.config).length === 0) throw errorConfigFileNotFound(result.configFile || resolvedConfigPath || configPath);\n\tvalidateConfig(result.config);\n\t/* v8 ignore next -- @preserve */\n\tconst loadedConfigDir = result.configFile ? dirname(result.configFile) : configCwd;\n\tconst config = finalizeConfig(result.config, loadedConfigDir);\n\tvalidateNoOutputsAreInputs(config.contract?.source.inputs, config.contract?.output);\n\treturn config;\n}\nfunction hasStringCode(error) {\n\treturn \"code\" in error && typeof error.code === \"string\";\n}\nfunction toStructuredConfigError(error, configPath) {\n\tif (isStructuredError(error) && error.code === \"CONFIG.VALIDATION_FAILED\" && !(error instanceof CliStructuredError)) return errorConfigValidation(typeof error.meta?.[\"field\"] === \"string\" ? error.meta[\"field\"] : \"config\", { why: error.why ?? error.message });\n\tif (error instanceof Error && hasStringCode(error)) return error;\n\tif (error instanceof Error) {\n\t\tif (error.message.includes(\"not found\") || error.message.includes(\"Cannot find\") || error.message.includes(\"ENOENT\")) return errorConfigFileNotFound(configPath ? resolve(process.cwd(), configPath) : void 0, { why: error.message });\n\t\treturn errorUnexpected(error.message, { why: `Failed to load config: ${error.message}` });\n\t}\n\treturn errorUnexpected(String(error));\n}\n/**\n* Loads, validates, and finalizes the Prisma Next config, mapping every failure\n* to a structured `@internal/errors/control` error (`CliStructuredError`).\n* This is the sole public entry point: callers that need to degrade gracefully\n* (e.g. the language server) branch on the structured error's stable `.code`.\n*/\nasync function loadConfig(configPath) {\n\ttry {\n\t\treturn await discoverAndFinalizeConfig(configPath);\n\t} catch (error) {\n\t\tthrow toStructuredConfigError(error, configPath);\n\t}\n}\nasync function loadConfigForFile(filePath) {\n\tconst configPath = await findNearestConfigPathForFile(filePath);\n\tif (configPath === void 0) throw errorConfigFileNotFound(join(dirname(resolve(process.cwd(), filePath)), CONFIG_FILENAME));\n\treturn loadConfig(configPath);\n}\n//#endregion\nexport { finalizeConfig, findNearestConfigPathForFile, loadConfig, loadConfigForFile };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}
|