cf 0.9.1 → 0.10.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/README.md +5 -0
- package/dist/_meta/agent-context.json +34 -35
- package/dist/_meta/commands.json +6834 -10044
- package/dist/_meta/schemas.json +11228 -12752
- package/dist/{abuse-reports-CzDAjFpo.mjs → abuse-reports-CGF4zcKf.mjs} +2 -2
- package/dist/{access-CxyW_sIW.mjs → access-lhLJo1v2.mjs} +1 -1
- package/dist/{account-Dd4-tDYJ.mjs → account-CYRm3yoN.mjs} +1 -1
- package/dist/account-tags-B88TotoH.mjs +9 -0
- package/dist/accounts-BSIAT_iP.mjs +28 -0
- package/dist/{acm-CHacxa3s.mjs → acm-VULm1djv.mjs} +1 -1
- package/dist/{addressing-BnqNmmYN.mjs → addressing-BHPBIkRY.mjs} +1 -1
- package/dist/{agent-context-Bu6yvDqA.mjs → agent-context-KBy48G1b.mjs} +1 -1
- package/dist/{agent-memory-D--BQS0W.mjs → agent-memory-DDv_Gxr7.mjs} +2 -2
- package/dist/{ai-audit-CfpDKXkD.mjs → ai-audit-BWZGvbca.mjs} +1 -1
- package/dist/{ai-gateway-oG4j_oYN.mjs → ai-gateway-jeB-sAgP.mjs} +1 -1
- package/dist/ai-search-BmdskMjR.mjs +7 -0
- package/dist/{ai-security-byjIIrfl.mjs → ai-security-CsmfcaUx.mjs} +1 -1
- package/dist/{ai-BnVlQDiI.mjs → ai-viHB1tgI.mjs} +1 -1
- package/dist/{alerting-qa8SkXlD.mjs → alerting-Bl8OqViR.mjs} +4 -4
- package/dist/analytics-vOxw8Hy0.mjs +3 -0
- package/dist/{analytics_engine-BnECMIWJ.mjs → analytics_engine-DO4-C0wD.mjs} +1 -1
- package/dist/{api-security-MfHbfZyf.mjs → api-security-4FVrD4n8.mjs} +1 -1
- package/dist/argo-CQfCgazW.mjs +2 -0
- package/dist/args-DlUhyGU0.mjs +2 -0
- package/dist/artifacts-CVDGnr2V.mjs +4 -0
- package/dist/{audit-logs-retFtvow.mjs → audit-logs-CzpwvQ6A.mjs} +1 -1
- package/dist/{auth-aazs91XL.mjs → auth-D0xZxAEa.mjs} +1 -1
- package/dist/{auth-DuLchM18.mjs → auth-MQEamPN9.mjs} +2 -2
- package/dist/{billing-CxQVqpGZ.mjs → billing-aJgapeRm.mjs} +2 -2
- package/dist/{bot-management-Rli7v7tg.mjs → bot-management-Y2q5d-pi.mjs} +1 -1
- package/dist/{botnet-feed-Cw6XSEf8.mjs → botnet-feed-DANJqfmE.mjs} +1 -1
- package/dist/{brand-protection-CTvnHGfV.mjs → brand-protection-CjpZWBjp.mjs} +1 -1
- package/dist/{browser-extension-q79xHrVW.mjs → browser-extension-BtpCbh-2.mjs} +1 -1
- package/dist/browser-run-BFn9h2Tz.mjs +4 -0
- package/dist/{build-Dji9BYmV.mjs → build-DcflwvqN.mjs} +1 -1
- package/dist/{cache-Cl7vKJwH.mjs → cache-VyWK1SjY.mjs} +1 -1
- package/dist/{calls-DtK_ANxq.mjs → calls-BxoRYxs4.mjs} +1 -1
- package/dist/{certificate-authorities-DZP1RzAs.mjs → certificate-authorities-D7OAFxF_.mjs} +1 -1
- package/dist/{cf-oSz9pud_.mjs → cf-C7DU4819.mjs} +1 -1
- package/dist/{chunk-LQW53VED-Xakf_rUn.mjs → chunk-LQW53VED-DLrXV-hE.mjs} +2 -2
- package/dist/{client-certificates-BtPU9GsQ.mjs → client-certificates-DDUv8K0a.mjs} +1 -1
- package/dist/{client-side-security-DAn-3jwp.mjs → client-side-security-D4ysjwWT.mjs} +1 -1
- package/dist/{cloud-connector-BpVcvhjZ.mjs → cloud-connector-Bhec6z2P.mjs} +1 -1
- package/dist/cloudforce-one-J_hn9ss9.mjs +36 -0
- package/dist/config.mjs +1 -1
- package/dist/connector-interrupts-Dycx8zFx.mjs +2 -0
- package/dist/{connector-telemetry-events-D5_3X7XW.mjs → connector-telemetry-events-BmxOSNtN.mjs} +1 -1
- package/dist/connector-telemetry-events-latest-BY2556uL.mjs +2 -0
- package/dist/{connector-telemetry-snapshots-CJ9gLRFR.mjs → connector-telemetry-snapshots-CdcqfKnH.mjs} +1 -1
- package/dist/connector-telemetry-snapshots-latest-BHYdxUEF.mjs +2 -0
- package/dist/{connectors-Bo6ZT8PT.mjs → connectors-BqxYMMtQ.mjs} +1 -1
- package/dist/{containers-Bog7j0Hw.mjs → containers-CKW081JA.mjs} +8 -8
- package/dist/{content-scan-D03UfK2X.mjs → content-scan-Dgd7A8KF.mjs} +1 -1
- package/dist/{csamScanner-DgS-7ADh.mjs → csamScanner-DYL37wLc.mjs} +1 -1
- package/dist/{ct-alerting-8AKtNnUg.mjs → ct-alerting-CkhSbfAs.mjs} +1 -1
- package/dist/{custom-certificates-4y35UC1X.mjs → custom-certificates-BzAOnEoT.mjs} +1 -1
- package/dist/custom-csrs-CgzG3pd3.mjs +3 -0
- package/dist/{custom-hostnames-CDIAnsRa.mjs → custom-hostnames-q_nsnlye.mjs} +4 -4
- package/dist/custom-nameservers-BUBmfhUe.mjs +3 -0
- package/dist/custom-pages-M7jA2Hit.mjs +3 -0
- package/dist/{d1-Cllm-iTT.mjs → d1-BFvMd6-S.mjs} +1 -1
- package/dist/{data-security-rnoSCEdL.mjs → data-security-Bji4Or_j.mjs} +2 -2
- package/dist/{dcv-delegation-DCRCOL6l.mjs → dcv-delegation-BuoRQ1Yh.mjs} +1 -1
- package/dist/{deploy-DGlmjPTS.mjs → deploy-CZ7bgNDu.mjs} +1 -1
- package/dist/{deploy-input-DhCo1I0I.mjs → deploy-input-CrvuoDGJ.mjs} +1 -1
- package/dist/{dev-BbLV0Ti-.mjs → dev-V10MG-Bg.mjs} +1 -1
- package/dist/{diagnostics-D5Yo2xqx.mjs → diagnostics-BTH-8nJH.mjs} +2 -2
- package/dist/{directory-CCndFkbQ.mjs → directory-BlH6N6Qy.mjs} +1 -1
- package/dist/{dispatch-namespaces-C48JQ9EA.mjs → dispatch-namespaces-BCjH1JzB.mjs} +1 -1
- package/dist/{dist-COfwjT96.mjs → dist-CgrMkXFx.mjs} +1 -1
- package/dist/{dls-BBq99pjI.mjs → dls-BF5iN78p.mjs} +1 -1
- package/dist/{dns-DdQYtenF.mjs → dns-CeCTNqRk.mjs} +11 -11
- package/dist/{dns-firewall-DdwVtm12.mjs → dns-firewall-B54MaLGm.mjs} +1 -1
- package/dist/{dot-prop-6SRZBKHT-C_xd7eTS.mjs → dot-prop-6SRZBKHT-wIVDg_fl.mjs} +1 -1
- package/dist/{durable-objects-BvxXBht_.mjs → durable-objects-D8FQORrL.mjs} +1 -1
- package/dist/{email-auth-DFvXKSkg.mjs → email-auth-DJK0Eb30.mjs} +1 -1
- package/dist/email-routing-NpmiKIrl.mjs +6 -0
- package/dist/{email-security-BFagcRPP.mjs → email-security-BLZ7WZ9Z.mjs} +2 -2
- package/dist/email-sending-dn-353Nx.mjs +7 -0
- package/dist/fieldExtractors-ahysj57J.mjs +3 -0
- package/dist/firewall-CBPGJ43p.mjs +11 -0
- package/dist/{flagship-FJHc4mFi.mjs → flagship-BusjRNIb.mjs} +3 -3
- package/dist/{fraud-AH47n-wL.mjs → fraud-BIhS8pLf.mjs} +1 -1
- package/dist/{google-tag-gateway-149kbuG_.mjs → google-tag-gateway-TZZ3F1tV.mjs} +1 -1
- package/dist/{healthchecks-DfEUG007.mjs → healthchecks-FiXIk-KP.mjs} +2 -2
- package/dist/{hostnames-DQUiD3Vr.mjs → hostnames-Bx0mykMR.mjs} +1 -1
- package/dist/{hyperdrive-RyQboMWI.mjs → hyperdrive-C8qCabBF.mjs} +1 -1
- package/dist/{iam-BhHYhMXO.mjs → iam-Cj63Kjc6.mjs} +1 -1
- package/dist/{images-CDViyKtZ.mjs → images-CBWXCDhy.mjs} +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{intel-YHZbPlS3.mjs → intel-B-9Z_sJs.mjs} +2 -2
- package/dist/{interactive-mV8PABm6.mjs → interactive-DtsCYfrK.mjs} +1 -1
- package/dist/{ips-BpCdldFx.mjs → ips-qs9eGJnI.mjs} +1 -1
- package/dist/{keyless-certificates-oNu5jWKF.mjs → keyless-certificates-THHvoXX3.mjs} +1 -1
- package/dist/{keys-yYtv7Ztr.mjs → keys-D7N0j4-x.mjs} +1 -1
- package/dist/{kv-Bi9B4E0A.mjs → kv-BFDUCnft.mjs} +1 -1
- package/dist/{leaked-credential-checks-DKRjBLcr.mjs → leaked-credential-checks-DUlUCOoJ.mjs} +1 -1
- package/dist/load-balancers-D2zbQ8fT.mjs +6 -0
- package/dist/{local-DTyuGwTw.mjs → local-D-aVNu6A.mjs} +1 -1
- package/dist/{local-runtime-IAXhEugU.mjs → local-runtime-Dh3keC5v.mjs} +1 -1
- package/dist/logexplorer-CUsfZ_bS.mjs +13 -0
- package/dist/{logo-matches-LyDAYPbI.mjs → logo-matches-CJcthPHf.mjs} +1 -1
- package/dist/{logos-O9f5bGSB.mjs → logos-BS65zN8q.mjs} +1 -1
- package/dist/logpush-BK34mMQs.mjs +4 -0
- package/dist/{logs-DmWWL5f9.mjs → logs-CLAqX9h2.mjs} +1 -1
- package/dist/{magic-cloud-networking-XbTa6P52.mjs → magic-cloud-networking-h_ozrC5S.mjs} +1 -1
- package/dist/magic-network-monitoring-C7tAPNKP.mjs +4 -0
- package/dist/{magic-transit-DwgZeIj-.mjs → magic-transit-BtsFePMx.mjs} +5 -5
- package/dist/{managed-transforms-DCmogkxv.mjs → managed-transforms-Cm_KVCMB.mjs} +1 -1
- package/dist/{matches-BAeN8VM1.mjs → matches-InA1hwII.mjs} +1 -1
- package/dist/{mcp-DKZ2D050.mjs → mcp-mJ7bekNJ.mjs} +1 -1
- package/dist/mesh-BK4S1Ezy.mjs +4 -0
- package/dist/{moq-CJpE-eNj.mjs → moq-qmuVPAO0.mjs} +1 -1
- package/dist/{mtls-certificates-Bbm_1lQI.mjs → mtls-certificates-CU4OAAXY.mjs} +1 -1
- package/dist/{network-D2WRXCDe.mjs → network-D74cSy3t.mjs} +1 -1
- package/dist/{network-interconnects-Clq4X1U8.mjs → network-interconnects-BJ0Nc48J.mjs} +1 -1
- package/dist/{oauth-BPizUUqP.mjs → oauth-B0ETkNcX.mjs} +2 -2
- package/dist/{oauth-clients-hilWfAlm.mjs → oauth-clients-Br-smLxQ.mjs} +1 -1
- package/dist/{oauth-scopes-CmbgsPYd.mjs → oauth-scopes-D5bF11ju.mjs} +1 -1
- package/dist/observability-BWE0Gg3V.mjs +4 -0
- package/dist/{open-PBXRGS4R-C46yIm3u.mjs → open-PBXRGS4R-R-qesf18.mjs} +1 -1
- package/dist/{organization-D41rIvJa.mjs → organization-NX7yCZrq.mjs} +1 -1
- package/dist/{organizations-eNzfOwlP.mjs → organizations-DLhiRt8g.mjs} +1 -1
- package/dist/{origin-ca-certificates-DaiAmw45.mjs → origin-ca-certificates-Ff4McZRQ.mjs} +1 -1
- package/dist/{origin-post-quantum-encryption-7YztBged.mjs → origin-post-quantum-encryption-UuTr4_SW.mjs} +1 -1
- package/dist/{origin-tls-client-auth-DRwURM8s.mjs → origin-tls-client-auth-DOJ1zlH3.mjs} +1 -1
- package/dist/{output-DgW1hQGX.mjs → output-DrpYYfnB.mjs} +1 -1
- package/dist/{page-rules-B2Csdc4h.mjs → page-rules-BSz1gO-_.mjs} +1 -1
- package/dist/{pages-BAL6Q7OY.mjs → pages-DVDogxPs.mjs} +4 -4
- package/dist/{pay-per-crawl-C-1-ZAtn.mjs → pay-per-crawl-BrLXK7gT.mjs} +1 -1
- package/dist/{pipelines-cyQOuFLb.mjs → pipelines-BszRk4sM.mjs} +2 -2
- package/dist/{precursor-BrweY39h.mjs → precursor-BPNjQr76.mjs} +1 -1
- package/dist/progress-CsHIt3Tp.mjs +2 -0
- package/dist/{prompt-CDtLWxNv.mjs → prompt-DdegNPpg.mjs} +1 -1
- package/dist/{queries-oM8uGZy5.mjs → queries-JL1H1Biz.mjs} +1 -1
- package/dist/{queues-CTx04ZNw.mjs → queues-DpkYdRUE.mjs} +1 -1
- package/dist/{r2-CnlIUn7R.mjs → r2-CKozthw_.mjs} +4 -4
- package/dist/{r2-data-catalog-DLtf9d6o.mjs → r2-data-catalog-Du7hN9jA.mjs} +1 -1
- package/dist/radar-C-92vggG.mjs +2 -0
- package/dist/{rate-limits-B1YjnGue.mjs → rate-limits-yBF3qoYD.mjs} +1 -1
- package/dist/{raw-fetch-Dz-QBoP_.mjs → raw-fetch-CteyTOM2.mjs} +1 -1
- package/dist/realtimekit-CIP7lP-a.mjs +7 -0
- package/dist/{registrar-BEcb90RX.mjs → registrar-DKKN0M29.mjs} +3 -3
- package/dist/{registrar-sandbox-0i1T3zne.mjs → registrar-sandbox-DiXg8p_1.mjs} +3 -3
- package/dist/{registry-DDcSvd8H.mjs → registry-Bck_zFkz.mjs} +1 -1
- package/dist/{reporting-CLbjHlnw.mjs → reporting-fg_GKXe1.mjs} +1 -1
- package/dist/{request-tracers-BcKpofP1.mjs → request-tracers-CkMya96z.mjs} +1 -1
- package/dist/{resource-sharing-Ctdi9D-j.mjs → resource-sharing-D1pSDvtf.mjs} +1 -1
- package/dist/{resource-tagging-DGEyVTDN.mjs → resource-tagging-z48JGHCq.mjs} +1 -1
- package/dist/{rules-CmuB5rIN.mjs → rules-BTmNjDN-.mjs} +1 -1
- package/dist/rulesets-CsoSM-17.mjs +5 -0
- package/dist/{rum-QT6EP4JK.mjs → rum-DB4iO2q5.mjs} +1 -1
- package/dist/{schema-BeXPWeK9.mjs → schema-B34Q9tLF.mjs} +1 -1
- package/dist/{schema-flags-DHryz6SF.mjs → schema-flags-iGoOriJt.mjs} +1 -1
- package/dist/{scim-BgGsmHrL.mjs → scim-CcSyfKCH.mjs} +1 -1
- package/dist/sdk-ZctLa5jW.mjs +3 -0
- package/dist/{secrets-store-BCpFhYFv.mjs → secrets-store-DFmvtphu.mjs} +1 -1
- package/dist/security-center-DFKeHq5c.mjs +2 -0
- package/dist/{security-txt-Be2Bif0z.mjs → security-txt-DqnFpjMI.mjs} +1 -1
- package/dist/{session-Ckt20hHa.mjs → session-D6KHthHf.mjs} +1 -1
- package/dist/{share-Bz2tFTUP.mjs → share-BuwYUzOL.mjs} +1 -1
- package/dist/{shared-BzPQog8H.mjs → shared-VppSAQf4.mjs} +1 -1
- package/dist/{smart-shield-SODkOUyO.mjs → smart-shield-D6X8L7p8.mjs} +2 -2
- package/dist/{snippets-B5jY8v_7.mjs → snippets-DIpc9pb_.mjs} +1 -1
- package/dist/{spawn-CHkoow5W.mjs → spawn-O1RS01vr.mjs} +2 -2
- package/dist/{spectrum-BA0a42eM.mjs → spectrum-b7N1ZRAm.mjs} +1 -1
- package/dist/{speed-mmOjxOzo.mjs → speed-cw31yFva.mjs} +1 -1
- package/dist/src-D_HETJNy.mjs +108 -0
- package/dist/{ssl-Yr6kELqg.mjs → ssl-CsEhRVTO.mjs} +1 -1
- package/dist/{state-DZC531l2.mjs → state-Bb5Cbc_L.mjs} +1 -1
- package/dist/{stream-Cu0kYWbc.mjs → stream-DFOao6Gu.mjs} +3 -3
- package/dist/{submit-Dl_27e0n.mjs → submit--xTzyNPy.mjs} +1 -1
- package/dist/{tags-Cdo_Pwtr.mjs → tags-efICDkah.mjs} +1 -1
- package/dist/{tenant-EX-ANl6X.mjs → tenant-CerHuToJ.mjs} +1 -1
- package/dist/{tenant-custom-nameservers-BPHUeckw.mjs → tenant-custom-nameservers-C4otMBm2.mjs} +1 -1
- package/dist/{tools-D2Xxfkrc.mjs → tools-BHfBOZOU.mjs} +1 -1
- package/dist/{triggers-Bf9hbP3h.mjs → triggers-BEsiiKAf.mjs} +1 -1
- package/dist/{tunnel-CDYkWjnt.mjs → tunnel-DkMiNtVY.mjs} +1 -1
- package/dist/{tunnels-CgyX8R2J.mjs → tunnels-D0J8lJoI.mjs} +1 -1
- package/dist/{turnstile-BUtzlW-0.mjs → turnstile-CFmtY5bn.mjs} +2 -2
- package/dist/{ui-DIpjthrV.mjs → ui-DE8CNn6c.mjs} +1 -1
- package/dist/{url-info-CJsa1Oc9.mjs → url-info-DBCeRWwb.mjs} +1 -1
- package/dist/{url-normalization-BeKkOZz7.mjs → url-normalization-ClfFiruK.mjs} +1 -1
- package/dist/{url-scanner-Cz-yl0_3.mjs → url-scanner-CNyvg65L.mjs} +1 -1
- package/dist/{user-BxHjEqpd.mjs → user-bifVEQq5.mjs} +2 -2
- package/dist/{values-C43NurfT.mjs → values-OxkdP1tV.mjs} +1 -1
- package/dist/{vectorize-CjXfiFH4.mjs → vectorize-CVKu7lEt.mjs} +1 -1
- package/dist/{versions-BFbc90Wu.mjs → versions-BVL-Ludh.mjs} +1 -1
- package/dist/waiting-rooms-CmRAl51T.mjs +11 -0
- package/dist/{web-assets-BzM5vVzy.mjs → web-assets-C2s9kzWf.mjs} +1 -1
- package/dist/{web3-Ctv9HGiR.mjs → web3-y_cY91V_.mjs} +1 -1
- package/dist/{workers-builds-B44wc67O.mjs → workers-builds-B55-oXOa.mjs} +4 -4
- package/dist/{workers-D-YbIedB.mjs → workers-jDcq14GH.mjs} +6 -6
- package/dist/{workflows-rFuQWClt.mjs → workflows-B-kGHxFu.mjs} +2 -2
- package/dist/{zaraz-BA6kY-b6.mjs → zaraz-27zwjLvv.mjs} +1 -1
- package/dist/zero-trust-DV3sIOvu.mjs +92 -0
- package/dist/{zone-B_rgejLV.mjs → zone-BJix2KQ9.mjs} +1 -1
- package/dist/{zones-DTWO7Vvn.mjs → zones-Bkj5i92c.mjs} +1 -1
- package/package.json +1 -1
- package/dist/account-tags-65fAlHrf.mjs +0 -9
- package/dist/accounts-Bp5KGc6r.mjs +0 -28
- package/dist/ai-search-B2l3B_jn.mjs +0 -7
- package/dist/analytics-DeIKjC9n.mjs +0 -3
- package/dist/argo-DFerMyXF.mjs +0 -2
- package/dist/artifacts-CtyEYYDa.mjs +0 -4
- package/dist/browser-run-FwtwnBzA.mjs +0 -4
- package/dist/cloudforce-one-2PecncfX.mjs +0 -30
- package/dist/connector-interrupts-ollUcksZ.mjs +0 -2
- package/dist/custom-csrs-DwBrLh-H.mjs +0 -4
- package/dist/custom-nameservers-stk7ymnP.mjs +0 -3
- package/dist/custom-pages-vfDxrXbt.mjs +0 -4
- package/dist/email-CGOC_evd.mjs +0 -2
- package/dist/email-routing-QBRPBlyl.mjs +0 -6
- package/dist/email-sending-Ddhe7xjN.mjs +0 -7
- package/dist/filters-CGisPGD1.mjs +0 -4
- package/dist/firewall-DD8U-Brd.mjs +0 -11
- package/dist/load-balancers-jRCN75mX.mjs +0 -7
- package/dist/logexplorer-kO8CULiK.mjs +0 -24
- package/dist/logpush-dtXLu3Ck.mjs +0 -5
- package/dist/magic-network-monitoring-CpfkgZMp.mjs +0 -4
- package/dist/media-CnxgOViL.mjs +0 -2
- package/dist/mesh-CzIPtuaM.mjs +0 -4
- package/dist/observability-DXYgDdU5.mjs +0 -4
- package/dist/progress-B84wYh91.mjs +0 -2
- package/dist/radar-CGNgGh8v.mjs +0 -2
- package/dist/realtimekit-BPwzhNS9.mjs +0 -7
- package/dist/rulesets-CGaMq8vG.mjs +0 -8
- package/dist/sdk-m4xeaua4.mjs +0 -3
- package/dist/security-center-BNm4uPVB.mjs +0 -2
- package/dist/src-CHW7s5IS.mjs +0 -108
- package/dist/waiting-rooms-C5jSQv_r.mjs +0 -11
- package/dist/zero-trust-DOFLlUz1.mjs +0 -102
- package/dist/zone-tags-BWdza4rH.mjs +0 -9
- /package/dist/{Page-C-JHZnIy.mjs → Page-9ry_XAVC.mjs} +0 -0
- /package/dist/{alerts-B85uj2Vx.mjs → alerts-CRmjqOZi.mjs} +0 -0
- /package/dist/{autorag-Do9l_LyY.mjs → autorag-BD7cu5NU.mjs} +0 -0
- /package/dist/{body-parser-CYD7PKFC.mjs → body-parser-C-c9gfH1.mjs} +0 -0
- /package/dist/{brands-DateHCdd.mjs → brands-BhALBkX2.mjs} +0 -0
- /package/dist/{chunk-6EUZQHAF-l8tR2Qyj.mjs → chunk-6EUZQHAF-B7bSMYLe.mjs} +0 -0
- /package/dist/{chunk-Q72B4Q5Z-CPy_WJKU.mjs → chunk-Q72B4Q5Z-DVMMVVEs.mjs} +0 -0
- /package/dist/{clear-CB2kgcEB.mjs → clear-BgF8No7D.mjs} +0 -0
- /package/dist/{cli-types-BWdZbsFE.mjs → cli-types-BsTty22w.mjs} +0 -0
- /package/dist/{domain-info-DJHEt8JJ.mjs → domain-info-C50W5GhA.mjs} +0 -0
- /package/dist/{health-buY5f5pp.mjs → health-BFNZqiAm.mjs} +0 -0
- /package/dist/{input-validation-BBKJRoRB.mjs → input-validation-Bav2M9F-.mjs} +0 -0
- /package/dist/{internal-CwyoJUHh.mjs → internal-BTeSewwB.mjs} +0 -0
- /package/dist/{live-wEpA5V_n.mjs → live-Dkiyu30_.mjs} +0 -0
- /package/dist/{public-BwQqexwo-DbWj8rrr.mjs → public-BwQqexwo-CNW_dPly.mjs} +0 -0
- /package/dist/{rate-limit-analytics-Bf1uT0lT.mjs → rate-limit-analytics-Dz-Wv1T0.mjs} +0 -0
- /package/dist/{ready-CBSCPiHE.mjs → ready-TKOkKeRg.mjs} +0 -0
- /package/dist/{recent-submissions-Dpmq1f7z.mjs → recent-submissions-3Asm6eIi.mjs} +0 -0
- /package/dist/{refute-u7ZPQJZy.mjs → refute-BVz9nMyd.mjs} +0 -0
- /package/dist/{resolve-XgxRJ-Ys.mjs → resolve-CeBbH6Pq.mjs} +0 -0
- /package/dist/{scan-logo-Ba8WZAyp.mjs → scan-logo-ZteA-PUV.mjs} +0 -0
- /package/dist/{scan-page-Bcq3Ei86.mjs → scan-page-DWDSyzQ7.mjs} +0 -0
- /package/dist/{search-D9WDwnV4.mjs → search-DGNc37HK.mjs} +0 -0
- /package/dist/{signed-url-CjPbG5zV.mjs → signed-url-B5Qpn2mn.mjs} +0 -0
- /package/dist/{submission-info-Z9hhp9Rq.mjs → submission-info-FjUolE6A.mjs} +0 -0
- /package/dist/{theme-BePJemMn.mjs → theme-CeVf-5qG.mjs} +0 -0
- /package/dist/{total-queries-aKAYX1iX.mjs → total-queries-NHJj1HGq.mjs} +0 -0
- /package/dist/{tracked-domains-Ck7Jm4Kn.mjs → tracked-domains-CniKVHIp.mjs} +0 -0
- /package/dist/{verify-2yi0H93r.mjs → verify-DS1PWAJe.mjs} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{i as e,r as t,t as n}from"./chunk-vbHwaUoU.mjs";import{t as r}from"./src-
|
|
2
|
+
import{i as e,r as t,t as n}from"./chunk-vbHwaUoU.mjs";import{t as r}from"./src-D_HETJNy.mjs";import{C as i,Ct as a,Dt as o,F as s,I as c,Ot as l,S as u,Tt as d,V as f,X as p,g as m,kt as h,lt as g,ut as _,v,x as y,y as b}from"./chunk-LQW53VED-DLrXV-hE.mjs";import{a as x}from"./theme-CeVf-5qG.mjs";import"./ui-DE8CNn6c.mjs";import{a as S,i as C,n as w,o as T,r as E,s as D,t as O}from"./chunk-6EUZQHAF-B7bSMYLe.mjs";import{i as ee,t as te}from"./dist-CgrMkXFx.mjs";import{_ as ne,a as re,c as k,f as A,g as ie,h as j,i as M,m as ae,n as oe,o as se,p as ce,s as N,u as P,v as le}from"./interactive-DtsCYfrK.mjs";import{t as F}from"./registry-Bck_zFkz.mjs";import{basename as ue,dirname as de,isAbsolute as fe,join as pe,relative as me,resolve as he}from"path";import{promises as ge}from"fs";import{appendFileSync as _e,existsSync as I,mkdirSync as ve,promises as ye,readFileSync as be,statSync as xe,writeFileSync as Se}from"node:fs";import L from"node:assert";import R,{basename as Ce,join as z,relative as we,resolve as Te}from"node:path";import Ee,{constants as De,homedir as Oe}from"node:os";import B,{exit as ke}from"node:process";import Ae from"node:tty";import je,{execFileSync as Me,spawn as Ne}from"node:child_process";import{Buffer as Pe}from"node:buffer";import{fileURLToPath as Fe}from"node:url";import{readFile as Ie,readdir as Le,stat as Re,writeFile as ze}from"node:fs/promises";import{constants as Be}from"os";const{white:Ve,gray:He,dim:V,hidden:Ue,bold:We,cyanBright:Ge,bgCyan:Ke}=p,H=p.hex(`#BD5B08`),qe=p.hex(`#111`),Je=p.hex(`#0E838F`),Ye=qe.bgHex(`#0E838F`),Xe=p.hex(`#AB2526`),Ze=qe.bgHex(`#AB2526`);p.hex(`#218529`);const Qe=qe.bgHex(`#218529`),$e=p.hex(`#7F7322`),et=qe.bgHex(`#7F7322`),tt=process.stdout,nt=process.stderr;se();const U={diamond:`◇`,dash:`─`,radioInactive:`○`,radioActive:`●`,backActive:`◀`,backInactive:`◁`,bar:`│`,leftT:`├`,rigthT:`┤`,arrows:{left:`‹`,right:`›`},corners:{tl:`╭`,bl:`╰`,tr:`╮`,br:`╯`}},rt={error:Ze(` ERROR `),warning:et(` WARNING `),info:Ye(` INFO `),success:Qe(` SUCCESS `),cancel:Ve.bgRed(` X `)},it=(e=1)=>Ue(` `.repeat(e)),at={none:-1,error:0,warn:1,info:2,log:3,debug:4};function ot(){return`log`}const st=e=>{at[ot()]>=at.log&&tt.write(`${e}\n`)},ct=e=>{st(e.split(`
|
|
3
3
|
`).map(e=>`${He(U.bar)}${e.length>0?` `+Ve(e):``}`).join(`
|
|
4
4
|
`))},lt=()=>{ct(``)},ut=(e,{linePrefix:t=He(U.bar),firstLinePrefix:n=t,newlineBefore:r=!1,newlineAfter:i=!1,formatLine:a=e=>Ve(e),multiline:o=!0}={})=>{let s=(o?e.split(`
|
|
5
5
|
`):[e]).map((e,r)=>(r===0?n:t)+it()+a(e));return r&&s.unshift(t),i&&s.push(t),s.join(`
|
|
@@ -487,7 +487,7 @@ export default defineConfig({
|
|
|
487
487
|
);
|
|
488
488
|
`)}C(Ys,`createWakuServerFile`);async function Xs(e){let t=z(e,`waku.config.ts`);if(!I(t))throw Error(`Could not find Waku config file to modify`);dt(`Updating Waku configuration in ${Je(t)}`),Co(t,{visitProgram(e){let t=e.node.body.findLastIndex(e=>e.type===`ImportDeclaration`),n=e.get(`body`,t);if(!e.node.body.some(e=>e.type===`ImportDeclaration`&&e.source.value===`@cloudflare/vite-plugin`)){let e=Ks.importDeclaration([Ks.importSpecifier(Ks.identifier(`cloudflare`))],Ks.stringLiteral(`@cloudflare/vite-plugin`));n.insertAfter(e)}return this.traverse(e)},visitCallExpression:C(function(e){if(e.node.callee.name!==`defineConfig`)return this.traverse(e);let t=e.node.arguments[0];L(qs.ObjectExpression.check(t));let n=t.properties.find(e=>Zs(e))?.value;L(qs.ObjectExpression.check(n));let r=n.properties.find(e=>Qs(e));L(r&&qs.ArrayExpression.check(r.value)),r.value.elements.some(e=>e?.type===`CallExpression`&&e.callee.type===`Identifier`&&e.callee.name===`cloudflare`)||r.value.elements.push(Ks.callExpression(Ks.identifier(`cloudflare`),[Ks.objectExpression([Ks.objectProperty(Ks.identifier(`viteEnvironment`),Ks.objectExpression([Ks.objectProperty(Ks.identifier(`name`),Ks.stringLiteral(`rsc`)),Ks.objectProperty(Ks.identifier(`childEnvironments`),Ks.arrayExpression([Ks.stringLiteral(`ssr`)]))])),Ks.objectProperty(Ks.identifier(`inspectorPort`),Ks.booleanLiteral(!1))])])),this.traverse(e)},`visitCallExpression`)})}C(Xs,`updateWakuConfig`);function Zs(e){return(qs.Property.check(e)||qs.ObjectProperty.check(e))&&qs.Identifier.check(e.key)&&e.key.name===`vite`}C(Zs,`isViteProp`);function Qs(e){return(qs.Property.check(e)||qs.ObjectProperty.check(e))&&qs.Identifier.check(e.key)&&e.key.name===`plugins`}C(Qs,`isPluginsProp`);var $s=[{id:`analog`,name:`Analog`,class:jo,frameworkPackageInfo:{name:`@analogjs/platform`,minimumVersion:`2.0.0`,maximumKnownMajorVersion:`2`},supported:!0},{id:`angular`,name:`Angular`,class:Fo,frameworkPackageInfo:{name:`@angular/core`,minimumVersion:`19.0.0`,maximumKnownMajorVersion:`22`},supported:!0},{id:`astro`,name:`Astro`,class:Vo,frameworkPackageInfo:{name:`astro`,minimumVersion:`4.0.0`,maximumKnownMajorVersion:`6`},supported:!0},{id:`hono`,name:`Hono`,supported:!1},{id:`next`,name:`Next.js`,class:Ko,frameworkPackageInfo:{name:`next`,minimumVersion:`14.2.35`,maximumKnownMajorVersion:`16`},supported:!0},{id:`nuxt`,name:`Nuxt`,class:Yo,frameworkPackageInfo:{name:`nuxt`,minimumVersion:`3.21.0`,maximumKnownMajorVersion:`4`},supported:!0},{id:`qwik`,name:`Qwik`,class:$o,frameworkPackageInfo:{name:`@builder.io/qwik`,minimumVersion:`1.1.0`,maximumKnownMajorVersion:`1`},supported:!0},{id:`react-router`,name:`React Router`,class:Ss,frameworkPackageInfo:{name:`react-router`,minimumVersion:`7.0.0`,maximumKnownMajorVersion:`8`},supported:!0},{id:`solid-start`,name:`Solid Start`,class:ws,frameworkPackageInfo:{name:`@solidjs/start`,minimumVersion:`1.0.0`,maximumKnownMajorVersion:`2`},supported:!0},{id:`svelte-kit`,name:`SvelteKit`,class:Os,frameworkPackageInfo:{name:`@sveltejs/kit`,minimumVersion:`2.20.3`,maximumKnownMajorVersion:`2`},supported:!0},{id:`tanstack-start`,name:`TanStack Start`,class:ks,frameworkPackageInfo:{name:`@tanstack/react-start`,minimumVersion:`1.132.0`,maximumKnownMajorVersion:`1`},supported:!0},{id:`vite`,name:`Vite`,class:Us,frameworkPackageInfo:{name:`vite`,minimumVersion:`6.0.0`,maximumKnownMajorVersion:`8`},supported:!0},{id:`vike`,name:`Vike`,class:Ns,frameworkPackageInfo:{name:`vike`,minimumVersion:`0.0.0`,maximumKnownMajorVersion:`0`},supported:!0},{id:`waku`,name:`Waku`,class:Js,frameworkPackageInfo:{name:`waku`,minimumVersion:`1.0.0-alpha.4`,maximumKnownMajorVersion:`1`},supported:!0},{id:`cloudflare-pages`,name:`Cloudflare Pages`,supported:!1},{id:`hydrogen`,name:`Hydrogen`,supported:!1}],ec={id:`static`,name:`Static`,class:Ds,supported:!0},tc=[ec,...$s];function nc(e){if(e===ec.id)return;let t=$s.find(t=>t.id===e);return L(t,`Could not determine framework package info for ${JSON.stringify(e)}`),L(t.supported,`Framework unexpectedly not supported ${JSON.stringify(e)}`),t.frameworkPackageInfo}C(nc,`getFrameworkPackageInfo`);var rc=class extends Ao{static{C(this,`NoOpFramework`)}async configure(){return{workerConfig:{}}}},ic=new Set(tc.map(({id:e})=>e));function ac(e){return ic.has(e)}C(ac,`isKnownFramework`);function oc(e){let t=tc.find(t=>t.id===e)??ec;return new(t.supported===!1?rc:t.class)({id:t.id,name:t.name})}C(oc,`getFrameworkClassInstance`);function sc(e){let t=tc.find(t=>t.id===e);return L(t,`Unexpected unknown framework id: ${JSON.stringify(e)}`),t.supported}C(sc,`isFrameworkSupported`);var cc;(function(e){e.DEBUG=`debug`,e.LOG=`log`,e.INFO=`info`,e.WARN=`warn`,e.ERROR=`error`})(cc||={});var lc=class{static{C(this,`DefaultLogger`)}logLevel;constructor(e=cc.ERROR){this.logLevel=e}shouldLog(e){let t=[`debug`,`log`,`info`,`warn`,`error`];return t.indexOf(e)>=t.indexOf(this.logLevel)}debug(...e){this.shouldLog(cc.DEBUG)&&console.debug(...e)}log(...e){this.shouldLog(cc.LOG)&&console.log(...e)}info(...e){this.shouldLog(cc.INFO)&&console.info(...e)}warn(...e){this.shouldLog(cc.WARN)&&console.warn(...e)}error(...e){this.shouldLog(cc.ERROR)&&console.error(...e)}};function uc(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r];!i||i===`.`||(i===`..`?n.length&&n[n.length-1]!==`..`?n.pop():t&&n.push(`..`):n.push(i))}return n}C(uc,`normalizePathSegments`);function dc(e){let t=e.startsWith(`/`),n=e&&e[e.length-1]===`/`;return e=uc(e.split(`/`),!t).join(`/`),!e&&!t&&(e=`.`),e&&n&&(e+=`/`),`${t?`/`:``}${e}`}C(dc,`normalize`);function fc(...e){let t=``;for(let n=0,r=e.length;n<r;n++){if(typeof e[n]!=`string`)throw TypeError(`Arguments to join must be strings`);let r=e[n].replace(/\\/gm,`/`);r&&(t.length?t+=`/`+r:t+=r)}return dc(t)}C(fc,`join`);var pc=class{static{C(this,`FileSystem`)}logger=new lc(`error`);cwd=`/`;basename(e){return this.join(e).split(`/`).pop()||``}relative(e,t){let n=this.isAbsolute(e)?e:this.join(this.cwd,e),r=this.isAbsolute(t)?t:this.join(this.cwd,t);if(n===r)return``;let i=[];if(r.startsWith(n))return r.substring(n.length).replace(/^\//,``);let a=this.join(n).split(`/`),o=this.join(r).split(`/`);for(let e=0,t=o.length;e<t&&o[e]===a?.[e];e++)i.push(o[e]);let s=o.length-i.length,c=a.length-i.length,l=c>0?Array(Math.max(s,c)).fill(`..`):[];return s>0&&l.push(...o.slice(-s)),l.join(`/`)}dirname(e){let t=this.join(e).split(`/`);return t.pop(),t.length===1&&t[0]===``?`/`:t.join(`/`)}join(...e){return fc(...e)}async gracefullyReadFile(e){try{return await this.readFile(e)}catch{return null}}async readJSON(e,t={}){try{return JSON.parse(await this.readFile(e))}catch(n){if(t.fail)throw n;let r=`Could not parse JSON file ${e}`;return n instanceof Error&&(r+=`
|
|
489
489
|
${n.name}: ${n.message}
|
|
490
|
-
${n.stack}`),this.logger.error(r),{}}}async findUp(e,t={}){let n=this.resolve(t.cwd||this.cwd),r=C(async()=>{let i=await this.readDir(n,!0),a=Object.entries(i).find(([n,r])=>{if(typeof e==`string`&&n===e||Array.isArray(e)&&e.includes(n))return t.type&&t.type,n});if(a?.[0])return this.join(n,a[0]);if(!(n===`/`||t.stopAt&&this.resolve(t.stopAt)===n))return n=this.join(n,`..`),r()},`readUp`);return r()}async findUpMultiple(e,t={}){let n=this.resolve(t.cwd||this.cwd),r=[],i=C(async()=>{let a=await this.readDir(n,!0);for(let[i,o]of Object.entries(a))(typeof e==`string`&&i===e||Array.isArray(e)&&e.includes(i))&&(t.type&&t.type===o||!t.type)&&r.push(this.resolve(n,i));return n===`/`||t.stopAt&&this.resolve(t.stopAt)===n?r:(n=this.join(n,`..`),i())},`readUp`);return i()}},mc=D(Li(),1),hc=[`dev`,`serve`,`develop`,`start`,`run`,`web`],gc=[`netlify dev`],_c=[`build`],vc=[`netlify build`],yc=C(e=>gc.some(t=>e.includes(t)),`isExcludedDevScript`),bc=C(e=>vc.some(t=>e.includes(t)),`isExcludedBuildScript`),xc=C((e,t)=>e===t||e.endsWith(`:${t}`),`isScript`),Sc=C(e=>e===-1?2**53-1:e,`getSortIndex`),Cc=C(e=>(t,n)=>{let r=e.findIndex(e=>xc(t,e)),i=e.findIndex(e=>xc(n,e));return Sc(r)-Sc(i)},`sortScriptsByRelevance`),wc=C((e,t)=>hc.some(n=>xc(e,n)&&!yc(t)),`isNpmDevScript`),Tc=C((e,t)=>_c.some(n=>xc(e,n)&&!bc(t)),`isNpmBuildScript`);function Ec(e,t={}){let n=Object.entries(t).filter(([,t])=>t.includes(e)).map(([e])=>e).sort(Cc(hc));return n.length>0?n:Object.keys(t).filter(e=>wc(e,t[e])).sort(Cc(hc))}C(Ec,`getDevCommands`);function Dc(e,t={}){let n=Object.entries(t).filter(([,t])=>t.includes(e)).map(([e])=>e).sort(Cc(_c));return n.length>0?n:Object.keys(t).filter(e=>Tc(e,t[e])).sort(Cc(_c))}C(Dc,`getBuildCommands`);var X;(function(e){e.BackendFramework=`backend_framework`,e.FrontendFramework=`frontend_framework`,e.SSG=`static_site_generator`,e.BuildTool=`build_tool`})(X||={});var Oc;(function(e){e[e.Forced=5]=`Forced`,e[e.NPM=4]=`NPM`,e[e.ConfigOnly=3]=`ConfigOnly`,e[e.Config=2]=`Config`,e[e.NPMHoisted=1]=`NPMHoisted`})(Oc||={});var kc;(function(e){e.NodeModules=`node_modules`,e.PackageJSONPinned=`package_json_pinned`,e.PackageJSON=`package_json`})(kc||={});function Ac(e){let t=[];for(let n of e.sort(jc))(t.length===0||t[0].detected.accuracy===n.detected.accuracy)&&t.push(n);return t}C(Ac,`filterByRelevance`);function jc(e,t){let n=t.detected.accuracy-e.detected.accuracy;if(n===0){let n=[X.BackendFramework,X.FrontendFramework,X.BuildTool,X.SSG];return n.indexOf(t.category)-n.indexOf(e.category)}return n}C(jc,`sortFrameworksBasedOnAccuracy`);function Mc(e){let t=e.filter(C(function(e){return!!e},`isDetection`)).sort((e,t)=>e.accuracy>t.accuracy?-1:+(e.accuracy<t.accuracy));if(t.length!==0)return t.slice(1).reduce((e,t)=>(e.config=e.config??t.config,e.configName=e.configName??t.configName,e.package=e.package??t.package,e.packageJSON=e.packageJSON??t.packageJSON,e),t[0])}C(Mc,`mergeDetections`);var Z=class{static{C(this,`BaseFramework`)}project;path;id;name;category;detected;version;configFiles=[];npmDependencies=[];excludedNpmDependencies=[];plugins=[];staticAssetsDirectory;env={};dev;build={command:`npm run build`,directory:`dist`};logo;constructor(e,t){this.project=e,this.path=t,e.packageManager?.runCommand&&(this.build.command=`${e.packageManager.runCommand} build`)}setDetected(e,t){return this.detected={accuracy:e},typeof t==`string`?this.detected.config=t:this.detected.package=t,this}async getVersionFromNodeModules(e){if(this.project.fs.getEnvironment()!==`browser`)try{let t=await this.project.fs.findUp(this.project.fs.join(`node_modules`,e,`package.json`),{cwd:this.path||this.project.baseDirectory,stopAt:this.project.root});if(t){let{version:e}=await this.project.fs.readJSON(t);if(typeof e==`string`)return(0,mc.parse)(e)||void 0}}catch{}}async npmDependenciesUsed(e){let t={...e.dependencies??{},...e.devDependencies??{}},n=Object.keys(t).find(e=>this.npmDependencies.includes(e));if(!Object.keys(t).some(e=>this.excludedNpmDependencies.includes(e))&&n!=null){let e=await this.getVersionFromNodeModules(n);if(e)return{name:n,version:e,versionAccuracy:kc.NodeModules};let r=t[n],i=(0,mc.parse)(r);if(i)return{name:n,version:i,versionAccuracy:kc.PackageJSONPinned};let a=(0,mc.parse)((0,mc.coerce)(r))||void 0;return a?{name:n,version:a,versionAccuracy:kc.PackageJSON}:{name:n,version:void 0,versionAccuracy:void 0}}}async detectNpmDependency(){if(this.npmDependencies.length){let e=this.path||this.project.baseDirectory,t=await this.project.getPackageJSON(e),n=await this.npmDependenciesUsed(t);if(n)return this.version=n.version,{accuracy:this.project.fs.join(e,`package.json`)===t.pkgPath?Oc.NPM:Oc.NPMHoisted,package:n,packageJSON:t}}}async detectConfigFile(e){if(e.length){let t=await this.project.fs.findUp(e,{cwd:this.path||this.project.baseDirectory,stopAt:this.project.root});if(t)return{accuracy:this.npmDependencies.length===0?Oc.ConfigOnly:Oc.Config,config:t,configName:this.project.fs.basename(t)}}}async detect(){let e=await this.detectNpmDependency(),t=await this.detectConfigFile(this.configFiles??[]);if(this.detected=Mc([this.detected?.accuracy===Oc.Forced?this.detected:void 0,e,t]),this.detected)return this}getDevCommands(){if(this.dev?.command===void 0)return[];let e=Ec(this.dev.command,this.detected?.packageJSON?.scripts);return e.length>0?e.map(e=>this.project.getNpmScriptCommand(e)):[this.dev.command]}getBuildCommands(){let e=Dc(this.build.command,this.detected?.packageJSON?.scripts);return e.length>0?e.map(e=>this.project.getNpmScriptCommand(e)):[this.build.command]}toJSON(){return{id:this.id,name:this.name,package:{name:this.detected?.package?.name||this.npmDependencies?.[0],version:this.detected?.package?.version?.raw||`unknown`,versionAccuracy:this.detected?.package?.versionAccuracy},category:this.category,dev:{commands:this.getDevCommands(),port:this.dev?.port,pollingStrategies:this.dev?.pollingStrategies},build:{commands:[this.build.command],directory:this.build.directory},staticAssetsDirectory:this.staticAssetsDirectory,env:this.env,logo:this.logo?Object.entries(this.logo).reduce((e,[t,n])=>({...e,[t]:`https://framework-info.netlify.app${n}`}),{}):void 0,plugins:this.plugins}}},Nc=class extends Z{static{C(this,`Analog`)}id=`analog`;name=`Analog`;configFiles=[];npmDependencies=[`@analogjs/platform`];category=X.SSG;dev={port:5173,command:`ng serve`,pollingStrategies:[{name:`TCP`}]};build={command:`ng build --prod`,directory:`dist/analog/public`};logo={default:`/logos/analog/default.svg`,light:`/logos/analog/default.svg`,dark:`/logos/analog/default.svg`}},Pc=D(Li(),1),Fc=class extends Z{static{C(this,`Angular`)}id=`angular`;name=`Angular`;configFiles=[`angular.json`];npmDependencies=[`@angular/cli`];excludedNpmDependencies=[`@analogjs/platform`];category=X.FrontendFramework;dev={port:4200,command:`ng serve`,pollingStrategies:[{name:`TCP`}]};build={command:`ng build --prod`,directory:`dist/`};logo={default:`/logos/angular/default.svg`,light:`/logos/angular/default.svg`,dark:`/logos/angular/default.svg`};async detect(){if(await super.detect(),this.detected){if(this.version&&(0,Pc.gte)(this.version,`17.0.0-rc`)&&!process.env.NETLIFY_ANGULAR_PLUGIN_SKIP){this.plugins.push(`@netlify/angular-runtime`);let e=await this.project.fs.gracefullyReadFile(`angular.json`);if(e){let{projects:t,defaultProject:n}=JSON.parse(e),r=t[n??Object.keys(t)[0]],i=r?.architect?.build?.options?.outputPath;if(i){let e=r?.architect?.build?.builder?.endsWith(`:application`);this.build.directory=e?this.project.fs.join(i,`browser`):i}}}return this}}},Ic=class extends Z{static{C(this,`Assemble`)}id=`assemble`;name=`Assemble`;npmDependencies=[`assemble`];category=X.SSG;build={command:`grunt build`,directory:`dist`};logo={default:`/logos/assemble/default.png`,light:`/logos/assemble/default.png`,dark:`/logos/assemble/default.png`}},Lc=D(Li(),1),Rc=class extends Z{static{C(this,`Astro`)}id=`astro`;name=`Astro`;configFiles=[`astro.config.mjs`];npmDependencies=[`astro`];category=X.SSG;staticAssetsDirectory=`public`;dev={port:4321,command:`astro dev`,pollingStrategies:[{name:`TCP`}]};build={command:`astro build`,directory:`dist`};logo={default:`/logos/astro/light.svg`,light:`/logos/astro/light.svg`,dark:`/logos/astro/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,Lc.lt)(this.version,`3.0.0`)&&(this.dev.port=3e3),this}},zc=class extends Z{static{C(this,`Blitz`)}id=`blitz`;name=`Blitz.js`;npmDependencies=[`blitz`];category=X.SSG;dev={command:`blitz dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`blitz build`,directory:`out`};logo={default:`/logos/blitz/light.svg`,light:`/logos/blitz/light.svg`,dark:`/logos/blitz/dark.svg`}},Bc=class extends Z{static{C(this,`Brunch`)}id=`brunch`;name=`Brunch`;npmDependencies=[`brunch`];configFiles=[`brunch-config.js`];category=X.BuildTool;dev={command:`brunch watch --server`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`brunch build`,directory:`public`};logo={default:`/logos/brunch/default.svg`,light:`/logos/brunch/default.svg`,dark:`/logos/brunch/default.svg`}},Vc=class extends Z{static{C(this,`Cecil`)}id=`cecil`;name=`Cecil`;configFiles=[`config.yml`];category=X.SSG;dev={command:`cecil serve`,port:8e3,pollingStrategies:[{name:`TCP`}]};build={command:`cecil build`,directory:`_site`};logo={default:`/logos/cecil/default.svg`,light:`/logos/cecil/default.svg`,dark:`/logos/cecil/default.svg`}},Hc=class extends Z{static{C(this,`DocPad`)}id=`docpad`;name=`DocPad`;npmDependencies=[`docpad`];category=X.SSG;dev={command:`docpad run`,port:9778,pollingStrategies:[{name:`TCP`}]};build={command:`docpad generate`,directory:`out`}},Uc=class extends Z{static{C(this,`Docusaurus`)}id=`docusaurus`;name=`Docusaurus`;configFiles=[`docusaurus.config.js`,`siteConfig.js`];npmDependencies=[`@docusaurus/core`,`docusaurus`];category=X.SSG;staticAssetsDirectory=`static`;dev={command:`docusaurus start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`docusaurus build`,directory:`build`};logo={default:`/logos/docusaurus/default.svg`,light:`/logos/docusaurus/default.svg`,dark:`/logos/docusaurus/default.svg`};env={BROWSER:`none`};async detect(){if(await super.detect(),this.detected)return this.isV1(this.detected)&&(this.build.command=`docusaurus-build`,this.build.directory=`build/<project-name>`,this.dev.command=`docusaurus-start`),this}isV1(e){return e.config?.endsWith(`siteConfig.js`)||e.package?.name===`docusaurus`}},Wc=class extends Z{static{C(this,`Eleventy`)}id=`eleventy`;name=`Eleventy`;configFiles=[`.eleventy.js`,`eleventy.config.js`,`eleventy.config.cjs`];npmDependencies=[`@11ty/eleventy`];category=X.SSG;dev={command:`eleventy --serve`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`eleventy`,directory:`_site`};logo={default:`/logos/eleventy/default.svg`,light:`/logos/eleventy/light.svg`,dark:`/logos/eleventy/dark.svg`}},Gc=class extends Z{static{C(this,`Ember`)}id=`ember`;name=`Ember.js`;configFiles=[`ember-cli-build.js`];npmDependencies=[`ember-cli`];category=X.FrontendFramework;dev={command:`ember serve`,port:4200,pollingStrategies:[{name:`TCP`}]};build={command:`ember build`,directory:`dist`};logo={default:`/logos/ember/default.svg`,light:`/logos/ember/light.svg`,dark:`/logos/ember/dark.svg`}},Kc=class extends Z{static{C(this,`Expo`)}id=`expo`;name=`Expo`;configFiles=[`app.json`];npmDependencies=[`expo`];category=X.FrontendFramework;dev={command:`expo start --web`,port:19006,pollingStrategies:[{name:`TCP`}]};build={command:`expo export -p web`,directory:`dist`};logo={default:`/logos/expo/default.svg`,light:`/logos/expo/light.svg`,dark:`/logos/expo/dark.svg`}},qc=D(Li(),1),Jc=class extends Z{static{C(this,`Gatsby`)}id=`gatsby`;name=`Gatsby`;configFiles=[`gatsby-config.js`,`gatsby-config.ts`];npmDependencies=[`gatsby`];category=X.SSG;staticAssetsDirectory=`static`;dev={command:`gatsby develop`,port:8e3,pollingStrategies:[{name:`TCP`}]};build={command:`gatsby build`,directory:`public`};logo={default:`/logos/gatsby/default.svg`,light:`/logos/gatsby/light.svg`,dark:`/logos/gatsby/dark.svg`};env={GATSBY_LOGGER:`yurnalist`,GATSBY_PRECOMPILE_DEVELOP_FUNCTIONS:`true`,AWS_LAMBDA_JS_RUNTIME:`nodejs14.x`,NODE_VERSION:`14`};async detect(){if(await super.detect(),this.detected){this.version&&(0,qc.gte)(this.version,`5.0.0`)&&(this.env.NODE_VERSION=`18`,this.env.AWS_LAMBDA_JS_RUNTIME=`nodejs18.x`);let e=await this.project.getCurrentNodeVersion();return e&&(0,qc.gte)(e,`12.13.0`)&&!process.env.NETLIFY_SKIP_GATSBY_BUILD_PLUGIN&&this.plugins.push(`@netlify/plugin-gatsby`),this}}},Yc=class extends Z{static{C(this,`Gridsome`)}id=`gridsome`;name=`Gridsome`;configFiles=[`gridsome.config.js`];npmDependencies=[`gridsome`];category=X.SSG;dev={command:`gridsome develop`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`gridsome build`,directory:`dist`};logo={default:`/logos/gridsome/default.svg`,light:`/logos/gridsome/light.svg`,dark:`/logos/gridsome/dark.svg`}},Xc=class extends Z{static{C(this,`Grunt`)}id=`grunt`;name=`Grunt`;npmDependencies=[`grunt`];category=X.BuildTool;build={command:`grunt build`,directory:`dist`};logo={default:`/logos/grunt/default.svg`,light:`/logos/grunt/default.svg`,dark:`/logos/grunt/default.svg`}},Zc=class extends Z{static{C(this,`Gulp`)}id=`gulp`;name=`gulp.js`;npmDependencies=[`gulp`];category=X.BuildTool;build={command:`gulp build`,directory:`dist`};logo={default:`/logos/gulp/default.svg`,light:`/logos/gulp/default.svg`,dark:`/logos/gulp/default.svg`}},Qc=class extends Z{static{C(this,`Harp`)}id=`harp`;name=`Harp`;npmDependencies=[`harp`];category=X.SSG;dev={command:`harp server`,port:9e3,pollingStrategies:[{name:`TCP`}]};build={command:`harp compile`,directory:`www`};logo={default:`/logos/harp/default.svg`,light:`/logos/harp/light.svg`,dark:`/logos/harp/default.svg`}},$c=class extends Z{static{C(this,`Hexo`)}id=`hexo`;name=`Hexo`;configFiles=[`_config.yml`];npmDependencies=[`hexo`];category=X.SSG;dev={command:`hexo server`,port:4e3,pollingStrategies:[{name:`TCP`}]};build={command:`hexo generate`,directory:`public`};logo={default:`/logos/hexo/default.svg`,light:`/logos/hexo/light.svg`,dark:`/logos/hexo/dark.svg`}},el=class extends Z{static{C(this,`Hono`)}id=`hono`;name=`Hono`;npmDependencies=[`hono`];category=X.BackendFramework;logo={default:`/logos/hono/default.svg`,light:`/logos/hono/default.svg`,dark:`/logos/hono/default.svg`}},tl=class extends Z{static{C(this,`Hugo`)}id=`hugo`;name=`Hugo`;configFiles=[`config.json`,`config.toml`,`config.yaml`,`hugo.toml`];category=X.SSG;dev={command:`hugo server -w`,port:1313,pollingStrategies:[{name:`TCP`}]};build={command:`hugo`,directory:`public`};logo={default:`/logos/hugo/default.svg`,light:`/logos/hugo/default.svg`,dark:`/logos/hugo/default.svg`}},nl=[`remix.config.js`],rl={command:`remix dev --manual -c "netlify dev"`},il={command:`remix build`,directory:`public`},al=[`vite.config.js`,`vite.config.mjs`,`vite.config.cjs`,`vite.config.ts`,`vite.config.mts`,`vite.config.cts`],ol={command:`shopify hydrogen dev`,port:5173},sl={command:`remix vite:build`,directory:`dist/client`},cl=class extends Z{static{C(this,`Hydrogen`)}id=`hydrogen`;name=`Hydrogen`;npmDependencies=[`@shopify/hydrogen`];configFiles=[...al,...nl];category=X.SSG;logo={default:`/logos/hydrogen/default.svg`,light:`/logos/hydrogen/default.svg`,dark:`/logos/hydrogen/default.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.configName&&al.includes(this.detected.configName)?(this.dev=ol,this.build=sl,this):(this.dev=rl,this.build=il,this)}},ll=class extends Z{static{C(this,`Jekyll`)}id=`jekyll`;name=`Jekyll`;configFiles=[`_config.yml`,`_config.yaml`,`_config.toml`];category=X.SSG;dev={command:`bundle exec jekyll serve -w`,port:4e3,pollingStrategies:[{name:`TCP`}]};build={command:`bundle exec jekyll build`,directory:`_site`};logo={default:`/logos/jekyll/dark.svg`,light:`/logos/jekyll/light.svg`,dark:`/logos/jekyll/dark.svg`}},ul=class extends Z{static{C(this,`Mastra`)}id=`mastra`;name=`Mastra`;npmDependencies=[`@mastra/deployer-netlify`];category=X.BackendFramework;dev={command:`mastra dev`,port:4111};build={command:`mastra build`,directory:`dist`};logo={default:`/logos/mastra/light.svg`,light:`/logos/mastra/light.svg`,dark:`/logos/mastra/dark.svg`}},dl=class extends Z{static{C(this,`Metalsmith`)}id=`metalsmith`;name=`Metalsmith`;npmDependencies=[`metalsmith`];category=X.SSG;build={command:`metalsmith`,directory:`build`};logo={default:`/logos/metalsmith/default.svg`,light:`/logos/metalsmith/default.svg`,dark:`/logos/metalsmith/default.svg`}},fl=class extends Z{static{C(this,`Middleman`)}id=`middleman`;name=`Middleman`;configFiles=[`config.rb`];category=X.SSG;dev={command:`bundle exec middleman server`,port:4567,pollingStrategies:[{name:`TCP`}]};build={command:`bundle exec middleman build`,directory:`build`};logo={default:`/logos/middleman/default.svg`,light:`/logos/middleman/default.svg`,dark:`/logos/middleman/default.svg`}},pl=D(Li(),1),ml=class extends Z{static{C(this,`Next`)}id=`next`;name=`Next.js`;category=X.SSG;npmDependencies=[`next`];excludedNpmDependencies=[`@nrwl/next`];configFiles=[`next.config.js`,`next.config.mjs`,`next.config.ts`];dev={command:`next`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`next build`,directory:`.next`};logo={default:`/logos/nextjs/light.svg`,light:`/logos/nextjs/light.svg`,dark:`/logos/nextjs/dark.svg`};async detect(){if(await super.detect(),this.detected){let e=await this.project.getCurrentNodeVersion();return e&&(0,pl.gte)(e,`10.13.0`)&&!process.env.NETLIFY_NEXT_PLUGIN_SKIP&&this.plugins.push(`@netlify/plugin-nextjs`),this}}},hl=class extends Z{static{C(this,`Nuxt`)}id=`nuxt`;name=`Nuxt`;npmDependencies=[`nuxt`,`nuxt-edge`,`nuxt3`];category=X.SSG;dev={command:`nuxt dev`,port:3e3,pollingStrategies:[{name:`TCP`}],clearPublishDirectory:!0};build={command:`nuxt build`,directory:`dist`};logo={default:`/logos/nuxt/default.svg`,light:`/logos/nuxt/light.svg`,dark:`/logos/nuxt/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.package?.version?.major!==void 0&&this.detected.package.version.major<3&&(this.build.command=`nuxt generate`,this.dev.command=`nuxt`),this}},gl=class extends Z{static{C(this,`Observable`)}id=`observable`;name=`Observable Framework`;npmDependencies=[`@observablehq/framework`];category=X.SSG;dev={command:`observable preview`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`observable build`,directory:`dist`};logo={default:`/logos/observable/default.svg`,light:`/logos/observable/default.svg`,dark:`/logos/observable/default.svg`}},_l=class extends Z{static{C(this,`Parcel`)}id=`parcel`;name=`Parcel`;npmDependencies=[`parcel-bundler`,`parcel`];category=X.BuildTool;dev={command:`parcel`,port:1234,pollingStrategies:[{name:`TCP`}]};build={command:`parcel build`,directory:`dist`};logo={default:`/logos/parcel/default.svg`,light:`/logos/parcel/default.svg`,dark:`/logos/parcel/default.svg`}},vl=class extends Z{static{C(this,`Phenomic`)}id=`phenomic`;name=`Phenomic`;npmDependencies=[`@phenomic/core`];category=X.SSG;dev={command:`phenomic start`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`phenomic build`,directory:`public`};logo={default:`/logos/phenomic/default.svg`,light:`/logos/phenomic/default.svg`,dark:`/logos/phenomic/default.svg`}},yl=class extends Z{static{C(this,`Quasar`)}id=`quasar`;name=`Quasar`;npmDependencies=[`@quasar/app`,`quasar-cli`];category=X.FrontendFramework;dev={command:`quasar dev -p 8081`,port:8081,pollingStrategies:[{name:`TCP`}]};build={command:`quasar build`,directory:`dist/spa`};logo={default:`/logos/quasar/default.svg`,light:`/logos/quasar/default.svg`,dark:`/logos/quasar/default.svg`};async detect(){if(await super.detect(),this.detected)return this.isV017(this.detected)&&(this.name=`Quasar v0.17`,this.build.directory=`.quasar`,this.dev.command=`quasar dev -p 8080`,this.dev.port=8080),this}isV017(e){return e.package?.name===`quasar-cli`}},bl=class extends Z{static{C(this,`Qwik`)}id=`qwik`;name=`Qwik`;npmDependencies=[`@builder.io/qwik`];category=X.SSG;dev={command:`vite`,port:5173,pollingStrategies:[{name:`TCP`}]};logo={default:`/logos/qwik/default.svg`,light:`/logos/qwik/default.svg`,dark:`/logos/qwik/default.svg`}},xl=D(Li(),1),Sl=class extends Z{static{C(this,`ReactRouter`)}id=`react-router`;name=`React Router`;npmDependencies=[`@react-router/dev`];excludedNpmDependencies=[`@shopify/hydrogen`];configFiles=[`react-router.config.ts`,`react-router.config.js`];category=X.SSG;dev={port:5173,command:`react-router dev`};build={command:`react-router build`,directory:`build/client`};logo={default:`/logos/react-router/light.svg`,light:`/logos/react-router/light.svg`,dark:`/logos/react-router/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,xl.lt)(this.version,`7.0.0`)?void 0:this}},Cl=class extends Z{static{C(this,`ReactStatic`)}id=`react-static`;name=`React Static`;npmDependencies=[`react-static`];configFiles=[`static.config.js`];category=X.SSG;dev={command:`react-static start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`react-static build`,directory:`dist`};logo={default:`/logos/react-static/default.png`,light:`/logos/react-static/default.png`,dark:`/logos/react-static/default.png`}},wl=class extends Z{static{C(this,`CreateReactApp`)}id=`create-react-app`;name=`Create React App`;npmDependencies=[`react-scripts`];category=X.FrontendFramework;staticAssetsDirectory=`public`;dev={command:`react-scripts start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`react-scripts build`,directory:`build`};logo={default:`/logos/create-react-app/default.svg`,light:`/logos/create-react-app/default.svg`,dark:`/logos/create-react-app/default.svg`};env={BROWSER:`none`,PORT:`3000`}},Tl=class extends Z{static{C(this,`RedwoodJS`)}id=`redwoodjs`;name=`RedwoodJS`;npmDependencies=[`@redwoodjs/core`];configFiles=[`redwood.toml`];category=X.SSG;staticAssetsDirectory=`public`;dev={command:`yarn rw dev`,port:8910,pollingStrategies:[{name:`TCP`}]};build={command:`rw deploy netlify`,directory:`web/dist`};env={AWS_LAMBDA_JS_RUNTIME:`nodejs20.x`,NODE_VERSION:`20`};logo={default:`/logos/redwoodjs/default.svg`,light:`/logos/redwoodjs/default.svg`,dark:`/logos/redwoodjs/default.svg`}},El=[`remix.config.js`],Dl={command:`remix watch`},Ol={command:`remix build`,directory:`public`},kl=[`vite.config.js`,`vite.config.mjs`,`vite.config.cjs`,`vite.config.ts`,`vite.config.mts`,`vite.config.cts`],Al={command:`remix vite:dev`,port:5173},jl={command:`remix vite:build`,directory:`build/client`},Ml=class extends Z{static{C(this,`Remix`)}id=`remix`;name=`Remix`;npmDependencies=[`@remix-run/react`,`@remix-run/dev`,`@remix-run/server-runtime`,`@netlify/remix-adapter`,`@netlify/remix-edge-adapter`,`@netlify/remix-runtime`,`remix`,`@remix-run/netlify`,`@remix-run/netlify-edge`];excludedNpmDependencies=[`@shopify/hydrogen`];configFiles=[...kl,...El];category=X.SSG;logo={default:`/logos/remix/default.svg`,light:`/logos/remix/light.svg`,dark:`/logos/remix/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.configName&&kl.includes(this.detected.configName)?(this.dev=Al,this.build=jl,this):(this.dev=Dl,this.build=Ol,this)}},Nl=class extends Z{static{C(this,`Roots`)}id=`roots`;name=`Roots`;npmDependencies=[`roots`];category=X.SSG;dev={command:`roots watch`,port:1111,pollingStrategies:[{name:`TCP`}]};build={command:`roots compile`,directory:`public`};logo={default:`/logos/roots/default.svg`,light:`/logos/roots/default.svg`,dark:`/logos/roots/default.svg`}},Pl=class extends Z{static{C(this,`Sapper`)}id=`sapper`;name=`Sapper`;npmDependencies=[`sapper`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`sapper dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`sapper export`,directory:`__sapper__/export`};logo={default:`/logos/sapper/default.svg`,light:`/logos/sapper/default.svg`,dark:`/logos/sapper/default.svg`}},Fl=class extends Z{static{C(this,`SolidJs`)}id=`solid-js`;name=`SolidJS`;npmDependencies=[`solid-js`];excludedNpmDependencies=[`solid-start`,`@solidjs/start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/solid-js/default.svg`,light:`/logos/solid-js/default.svg`,dark:`/logos/solid-js/dark.svg`}},Il=`solid-start`,Ll={command:`solid-start dev`,port:3e3},Rl={command:`solid-start build`,directory:`netlify`},zl=class extends Z{static{C(this,`SolidStart`)}id=`solid-start`;name=`Solid Start`;npmDependencies=[`solid-start`,`@solidjs/start`];category=X.SSG;dev={command:`vinxi dev`,port:3e3};build={command:`vinxi build`,directory:`dist`};logo={default:`/logos/solid-start/default.svg`,light:`/logos/solid-start/default.svg`,dark:`/logos/solid-start/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.package?.name===Il?(this.dev=Ll,this.build=Rl,this):this}},Bl=class extends Z{static{C(this,`Stencil`)}id=`stencil`;name=`Stencil`;npmDependencies=[`@stencil/core`];configFiles=[`stencil.config.ts`];category=X.SSG;dev={command:`stencil build --dev --watch --serve`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`stencil build`,directory:`www`};logo={default:`/logos/stencil/light.svg`,light:`/logos/stencil/light.svg`,dark:`/logos/stencil/dark.svg`};env={BROWSER:`none`,PORT:`3000`}},Vl=class extends Z{static{C(this,`SvelteKit`)}id=`svelte-kit`;name=`SvelteKit`;npmDependencies=[`@sveltejs/kit`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`vite dev`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`build`};logo={default:`/logos/svelte-kit/default.svg`,light:`/logos/svelte-kit/default.svg`,dark:`/logos/svelte-kit/default.svg`}},Hl=class extends Z{static{C(this,`Svelte`)}id=`svelte`;name=`Svelte`;npmDependencies=[`svelte`];excludedNpmDependencies=[`sapper`,`@sveltejs/kit`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`npm run dev`,port:5e3,pollingStrategies:[{name:`TCP`}]};build={command:`npm run build`,directory:`public`};logo={default:`/logos/svelte-kit/default.svg`,light:`/logos/svelte-kit/default.svg`,dark:`/logos/svelte-kit/default.svg`}},Ul=class extends Z{static{C(this,`TanStackRouter`)}id=`tanstack-router`;name=`TanStack Router`;npmDependencies=[`@tanstack/react-router`];excludedNpmDependencies=[`@tanstack/start`,`@tanstack/react-start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/tanstack-router/default.png`,light:`/logos/tanstack-router/default.png`,dark:`/logos/tanstack-router/default.png`}},Wl=D(Li(),1),Gl=class extends Z{static{C(this,`TanStackStart`)}id=`tanstack-start`;name=`TanStack Start`;npmDependencies=[`@tanstack/start`,`@tanstack/react-start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist/client`};logo={default:`/logos/tanstack-start/default.png`,light:`/logos/tanstack-start/default.png`,dark:`/logos/tanstack-start/default.png`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,Wl.lt)(this.version,`1.121.0`)&&(this.dev.command=`vinxi dev`,this.build.command=`vinxi build`),this.version&&(0,Wl.lt)(this.version,`1.132.0`)&&(this.build.directory=`dist`),this}},Kl=class extends Z{static{C(this,`Vike`)}id=`vike`;name=`Vike`;npmDependencies=[`vike`];category=X.SSG;dev={command:`vike dev`,port:3e3};build={command:`vike build`,directory:`dist/client`};logo={default:`/logos/vike/light.svg`,light:`/logos/vite/light.svg`,dark:`/logos/vite/dark.svg`}},ql=class extends Z{static{C(this,`Vite`)}id=`vite`;name=`Vite`;npmDependencies=[`vite`];excludedNpmDependencies=[`@remix-run/react`,`@remix-run/dev`,`@remix-run/server-runtime`,`@shopify/hydrogen`,`@builder.io/qwik`,`solid-start`,`@solidjs/start`,`solid-js`,`@tanstack/react-router`,`@tanstack/start`,`@sveltejs/kit`,`@analogjs/platform`,`@react-router/dev`,`vike`];category=X.BuildTool;dev={command:`vite`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/vite/default.svg`,light:`/logos/vite/default.svg`,dark:`/logos/vite/default.svg`}},Jl=class extends Z{static{C(this,`VitePress`)}id=`vitepress`;name=`VitePress`;npmDependencies=[`vitepress`];category=X.SSG;dev={command:`vitepress dev docs`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vitepress build docs`,directory:`docs/.vitepress/dist`};logo={default:`/logos/vitepress/default.svg`,light:`/logos/vitepress/default.svg`,dark:`/logos/vitepress/default.svg`}},Yl=class extends Z{static{C(this,`Vue`)}id=`vue`;name=`Vue.js`;npmDependencies=[`@vue/cli-service`];category=X.FrontendFramework;dev={command:`vue-cli-service serve`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`vue-cli-service build`,directory:`dist`};logo={default:`/logos/vue/default.svg`,light:`/logos/vue/default.svg`,dark:`/logos/vue/default.svg`}},Xl=class extends Z{static{C(this,`VuePress`)}id=`vuepress`;name=`VuePress`;npmDependencies=[`vuepress`];category=X.SSG;dev={command:`vuepress dev`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`vuepress build`,directory:`.vuepress/dist`};logo={default:`/logos/vuepress/default.svg`,light:`/logos/vuepress/default.svg`,dark:`/logos/vuepress/default.svg`}},Zl=class extends Z{static{C(this,`Waku`)}id=`waku`;name=`Waku`;npmDependencies=[`waku`];configFiles=[`waku.config.ts`,`waku.config.js`];category=X.SSG;dev={command:`waku dev`,port:3e3};build={command:`waku build`,directory:`dist/public`};logo={default:`/logos/waku/light.svg`,light:`/logos/waku/light.svg`,dark:`/logos/waku/dark.svg`}},Ql=class extends Z{static{C(this,`Wintersmith`)}id=`wintersmith`;name=`Wintersmith`;npmDependencies=[`wintersmith`];configFiles=[`config.json`];category=X.SSG;dev={command:`wintersmith preview`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`wintersmith build`,directory:`build`};logo={default:`/logos/wintersmith/default.svg`,light:`/logos/wintersmith/default.svg`,dark:`/logos/wintersmith/default.svg`}},$l=class extends Z{static{C(this,`WMR`)}id=`wmr`;name=`WMR`;npmDependencies=[`wmr`];category=X.BuildTool;dev={command:`wmr`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`wmr build`,directory:`dist`};logo={default:`/logos/wmr/default.svg`,light:`/logos/wmr/default.svg`,dark:`/logos/wmr/default.svg`}},eu=[Rc,Uc,Wc,Jc,Yc,$c,tl,cl,ll,fl,ml,zc,hl,vl,bl,Sl,Cl,Tl,Ml,Fl,zl,Bl,Ul,Gl,Xl,Ic,Hc,Qc,dl,Nl,Ql,Vc,class extends Z{static{C(this,`Zola`)}id=`zola`;name=`Zola`;configFiles=[`config.toml`];category=X.SSG;dev={command:`zola serve`,port:1111,pollingStrategies:[{name:`TCP`}]};build={command:`zola build`,directory:`public`}},gl,Nc,Kl,Zl,Jl,el,ul,Fc,wl,Gc,Kc,yl,Pl,Hl,Vl,Yl,Bc,_l,Zc,Xc,ql,$l];async function tu(e,t){let n=eu.map(e=>new e(t)),r=n.find(({id:t})=>t===e);if(r){r.detected={accuracy:Oc.Forced};let t=await r.detect();if(t)return t;throw Error(`Forced framework "${e}" was not detected.`)}let i=n.map(({id:e})=>e).sort().join(`, `);throw Error(`Invalid framework "${e}". It should be one of: ${i}`)}C(tu,`getFramework`);var nu=D(Li(),1),ru=class{static{C(this,`BaseBuildTool`)}project;id;name;version;configFiles=[];runFromRoot;logo;constructor(e){this.project=e}async detect(){let e=await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root});if(e){let t=await this.project.getPackageJSON(this.project.fs.dirname(e));return this.version=t.devDependencies?.[this.id],this}}toJSON(){return{id:this.id,name:this.name,version:this.version,logo:this.logo?Object.entries(this.logo).reduce((e,[t,n])=>({...e,[t]:`https://framework-info.netlify.app${n}`}),{}):void 0}}},iu=class extends ru{static{C(this,`Bazel`)}id=`bazel`;name=`Bazel`;configFiles=[`.bazelrc`,`WORKSPACE`,`WORKSPACE.bazel`,`BUILD.bazel`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},au=class extends ru{static{C(this,`Buck`)}id=`buck`;name=`Buck`;configFiles=[`.buckconfig`,`BUCK`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},ou=class extends ru{static{C(this,`Gradle`)}id=`gradle`;name=`Gradle`;configFiles=[`build.gradle`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},su=class extends ru{static{C(this,`Lage`)}id=`lage`;name=`Lage`;configFiles=[`lage.config.js`]},cu=class extends ru{static{C(this,`Lerna`)}id=`lerna`;name=`Lerna`;configFiles=[`lerna.json`];logo={default:`/logos/lerna/light.svg`,light:`/logos/lerna/light.svg`,dark:`/logos/lerna/dark.svg`}},lu=class extends ru{static{C(this,`Moon`)}id=`moon`;name=`MoonRepo`;configFiles=[`.moon`];async detect(){let e=await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,type:`directory`,stopAt:this.project.root});if(e){let t=await this.project.getPackageJSON(e);return this.version=t.devDependencies?.[this.id],this}}},uu=class extends ru{static{C(this,`Nix`)}id=`nix`;name=`Nix`;configFiles=[`default.nix`,`shell.nix`,`release.nix`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},du=D(eo(),1),fu=C((e,t,n)=>{let r=e instanceof RegExp?pu(e,n):e,i=t instanceof RegExp?pu(t,n):t,a=r!==null&&i!=null&&mu(r,i,n);return a&&{start:a[0],end:a[1],pre:n.slice(0,a[0]),body:n.slice(a[0]+r.length,a[1]),post:n.slice(a[1]+i.length)}},`balanced`),pu=C((e,t)=>{let n=t.match(e);return n?n[0]:null},`maybeMatch`),mu=C((e,t,n)=>{let r,i,a,o,s,c=n.indexOf(e),l=n.indexOf(t,c+1),u=c;if(c>=0&&l>0){if(e===t)return[c,l];for(r=[],a=n.length;u>=0&&!s;){if(u===c)r.push(u),c=n.indexOf(e,u+1);else if(r.length===1){let e=r.pop();e!==void 0&&(s=[e,l])}else i=r.pop(),i!==void 0&&i<a&&(a=i,o=l),l=n.indexOf(t,u+1);u=c<l&&c>=0?c:l}r.length&&o!==void 0&&(s=[a,o])}return s},`range`),hu=`\0SLASH`+Math.random()+`\0`,gu=`\0OPEN`+Math.random()+`\0`,_u=`\0CLOSE`+Math.random()+`\0`,vu=`\0COMMA`+Math.random()+`\0`,yu=`\0PERIOD`+Math.random()+`\0`,bu=new RegExp(hu,`g`),xu=new RegExp(gu,`g`),Su=new RegExp(_u,`g`),Cu=new RegExp(vu,`g`),wu=new RegExp(yu,`g`),Tu=/\\\\/g,Eu=/\\{/g,Du=/\\}/g,Ou=/\\,/g,ku=/\\\./g,Au=1e5;function ju(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}C(ju,`numeric`);function Mu(e){return e.replace(Tu,hu).replace(Eu,gu).replace(Du,_u).replace(Ou,vu).replace(ku,yu)}C(Mu,`escapeBraces`);function Nu(e){return e.replace(bu,`\\`).replace(xu,`{`).replace(Su,`}`).replace(Cu,`,`).replace(wu,`.`)}C(Nu,`unescapeBraces`);function Pu(e){if(!e)return[``];let t=[],n=fu(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=Pu(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}C(Pu,`parseCommaParts`);function Fu(e,t={}){if(!e)return[];let{max:n=Au}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),Bu(Mu(e),n,!0).map(Nu)}C(Fu,`expand`);function Iu(e){return`{`+e+`}`}C(Iu,`embrace`);function Lu(e){return/^-?0\d/.test(e)}C(Lu,`isPadded`);function Ru(e,t){return e<=t}C(Ru,`lte`);function zu(e,t){return e>=t}C(zu,`gte`);function Bu(e,t,n){let r=[],i=fu(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?Bu(i.post,t,!1):[``];if(/\$$/.test(i.pre))for(let e=0;e<o.length&&e<t;e++){let t=a+`{`+i.body+`}`+o[e];r.push(t)}else{let s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=s||c,u=i.body.indexOf(`,`)>=0;if(!l&&!u)return i.post.match(/,(?!,).*\}/)?(e=i.pre+`{`+i.body+_u+i.post,Bu(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=Pu(i.body),d.length===1&&d[0]!==void 0&&(d=Bu(d[0],t,!1).map(Iu),d.length===1))return o.map(e=>i.pre+d[0]+e);let f;if(l&&d[0]!==void 0&&d[1]!==void 0){let e=ju(d[0]),t=ju(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.max(Math.abs(ju(d[2])),1):1,i=Ru;t<e&&(r*=-1,i=zu);let a=d.some(Lu);f=[];for(let o=e;i(o,t);o+=r){let e;if(c)e=String.fromCharCode(o),e===`\\`&&(e=``);else if(e=String(o),a){let t=n-e.length;if(t>0){let n=Array(t+1).join(`0`);e=o<0?`-`+n+e.slice(1):n+e}}f.push(e)}}else{f=[];for(let e=0;e<d.length;e++)f.push.apply(f,Bu(d[e],t,!1))}for(let e=0;e<f.length;e++)for(let i=0;i<o.length&&r.length<t;i++){let t=a+f[e]+o[i];(!n||l||t)&&r.push(t)}}return r}C(Bu,`expand_`);var Vu=1024*64,Hu=C(e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>Vu)throw TypeError(`pattern is too long`)},`assertValidPattern`),Uu={"[:alnum:]":[`\\p{L}\\p{Nl}\\p{Nd}`,!0],"[:alpha:]":[`\\p{L}\\p{Nl}`,!0],"[:ascii:]":[`\\x00-\\x7f`,!1],"[:blank:]":[`\\p{Zs}\\t`,!0],"[:cntrl:]":[`\\p{Cc}`,!0],"[:digit:]":[`\\p{Nd}`,!0],"[:graph:]":[`\\p{Z}\\p{C}`,!0,!0],"[:lower:]":[`\\p{Ll}`,!0],"[:print:]":[`\\p{C}`,!0],"[:punct:]":[`\\p{P}`,!0],"[:space:]":[`\\p{Z}\\t\\r\\n\\v\\f`,!0],"[:upper:]":[`\\p{Lu}`,!0],"[:word:]":[`\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}`,!0],"[:xdigit:]":[`A-Fa-f0-9`,!1]},Wu=C(e=>e.replace(/[[\]\\-]/g,`\\$&`),`braceEscape`),Gu=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regexpEscape`),Ku=C(e=>e.join(``),`rangesToString`),qu=C((e,t)=>{let n=t;if(e.charAt(n)!==`[`)throw Error(`not in a brace expression`);let r=[],i=[],a=n+1,o=!1,s=!1,c=!1,l=!1,u=n,d=``;WHILE:for(;a<e.length;){let t=e.charAt(a);if((t===`!`||t===`^`)&&a===n+1){l=!0,a++;continue}if(t===`]`&&o&&!c){u=a+1;break}if(o=!0,t===`\\`&&!c){c=!0,a++;continue}if(t===`[`&&!c){for(let[t,[o,c,l]]of Object.entries(Uu))if(e.startsWith(t,a)){if(d)return[`$.`,!1,e.length-n,!0];a+=t.length,l?i.push(o):r.push(o),s||=c;continue WHILE}}if(c=!1,d){t>d?r.push(Wu(d)+`-`+Wu(t)):t===d&&r.push(Wu(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(Wu(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(Wu(t)),a++}if(u<a)return[``,!1,0,!1];if(!r.length&&!i.length)return[`$.`,!1,e.length-n,!0];if(i.length===0&&r.length===1&&/^\\?.$/.test(r[0])&&!l)return[Gu(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+Ku(r)+`]`,p=`[`+(l?``:`^`)+Ku(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},`parseClass`),Ju=C((e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^/\\])\]/g,`$1$2`).replace(/\\([^/])/g,`$1`):t?e.replace(/\[([^/\\{}])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,`$1$2`).replace(/\\([^/{}])/g,`$1`),`unescape`),Yu,Xu=new Set([`!`,`?`,`+`,`*`,`@`]),Zu=C(e=>Xu.has(e),`isExtglobType`),Qu=C(e=>Zu(e.type),`isExtglobAST`),$u=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),ed=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),td=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),nd=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),rd=`(?!(?:^|/)\\.\\.?(?:$|/))`,id=`(?!\\.)`,ad=new Set([`[`,`.`]),od=new Set([`..`,`.`]),sd=new Set(`().*{}+?[]^$\\!`),cd=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regExpEscape`),ld=`[^/]`,ud=ld+`*?`,dd=ld+`+?`,fd=0,pd=class{static{C(this,`AST`)}type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++fd;get depth(){return(this.#i?.depth??-1)+1}[Symbol.for(`nodejs.util.inspect.custom`)](){return{"@@type":`AST`,id:this.id,type:this.type,root:this.#e.id,parent:this.#i?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(e,t,n={}){this.type=e,e&&(this.#t=!0),this.#i=t,this.#e=this.#i?this.#i.#e:this,this.#c=this.#e===this?n:this.#e.#c,this.#o=this.#e===this?[]:this.#e.#o,e===`!`&&!this.#e.#s&&this.#o.push(this),this.#a=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let e of this.#r)if(typeof e!=`string`&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#l===void 0?this.type?this.#l=this.type+`(`+this.#r.map(e=>String(e)).join(`|`)+`)`:this.#l=this.#r.map(e=>String(e)).join(``):this.#l}#d(){if(this!==this.#e)throw Error(`should only call on root`);if(this.#s)return this;this.toString(),this.#s=!0;let e;for(;e=this.#o.pop();){if(e.type!==`!`)continue;let t=e,n=t.#i;for(;n;){for(let r=t.#a+1;!n.type&&r<n.#r.length;r++)for(let t of e.#r){if(typeof t==`string`)throw Error(`string part in extglob AST??`);t.copyIn(n.#r[r])}t=n,n=t.#i}}return this}push(...e){for(let t of e)if(t!==``){if(typeof t!=`string`&&!(t instanceof Yu&&t.#i===this))throw Error(`invalid part: `+t);this.#r.push(t)}}toJSON(){let e=this.type===null?this.#r.slice().map(e=>typeof e==`string`?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#i?.type===`!`)&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#a===0)return!0;let e=this.#i;for(let t=0;t<this.#a;t++){let n=e.#r[t];if(!(n instanceof Yu&&n.type===`!`))return!1}return!0}isEnd(){if(this.#e===this||this.#i?.type===`!`)return!0;if(!this.#i?.isEnd())return!1;if(!this.type)return this.#i?.isEnd();let e=this.#i?this.#i.#r.length:0;return this.#a===e-1}copyIn(e){typeof e==`string`?this.push(e):this.push(e.clone(this))}clone(e){let t=new Yu(this.type,e);for(let e of this.#r)t.copyIn(e);return t}static#f(e,t,n,r,i){let a=r.maxExtglobRecursion??2,o=!1,s=!1,c=-1,l=!1;if(t.type===null){let u=n,d=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,d+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),d+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,d+=n;continue}if(!r.noext&&Zu(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new Yu(n,t);u=Yu.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new Yu(null,t),f=[],p=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,p+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),p+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,p+=n;continue}if(!r.noext&&Zu(n)&&e.charAt(u)===`(`&&(i<=a||t&&t.#h(n))){let a=t&&t.#h(n)?0:1;d.push(p),p=``;let o=new Yu(n,d);d.push(o),u=Yu.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new Yu(null,t);continue}if(n===`)`)return p===``&&t.#r.length===0&&(t.#u=!0),d.push(p),p=``,t.push(...f,d),u;p+=n}return t.type=null,t.#t=void 0,t.#r=[e.substring(n-1)],u}#p(e){return this.#m(e,ed)}#m(e,t=$u){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null)return!1;let n=e.#r[0];return!n||typeof n!=`object`||n.type===null?!1:this.#h(n.type,t)}#h(e,t=td){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new Yu(null,n,this.options);r.#r.push(``),n.push(r),this.#_(e,t)}#_(e,t){let n=e.#r[0];this.#r.splice(t,1,...n.#r);for(let e of n.#r)typeof e==`object`&&(e.#i=this);this.#l=void 0}#v(e){return!!nd.get(this.type)?.has(e)}#y(e){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let t=e.#r[0];return!t||typeof t!=`object`||t.type===null?!1:this.#v(t.type)}#b(e){let t=nd.get(this.type),n=e.#r[0],r=t?.get(n.type);if(!r)return!1;this.#r=n.#r;for(let e of this.#r)typeof e==`object`&&(e.#i=this);this.type=r,this.#l=void 0,this.#u=!1}static fromGlob(e,t={}){let n=new Yu(null,void 0,t);return Yu.#f(e,n,0,t,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,n,r,i]=this.toRegExpSource();if(!(r||this.#t||this.#c.nocase&&!this.#c.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return n;let a=(this.#c.nocase?`i`:``)+(i?`u`:``);return Object.assign(RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#c}toRegExpSource(e){let t=e??!!this.#c.dot;if(this.#e===this&&(this.#x(),this.#d()),!Qu(this)){let n=this.isStart()&&this.isEnd()&&!this.#r.some(e=>typeof e!=`string`),r=this.#r.map(t=>{let[r,i,a,o]=typeof t==`string`?Yu.#C(t,this.#t,n):t.toRegExpSource(e);return this.#t=this.#t||a,this.#n=this.#n||o,r}).join(``),i=``;if(this.isStart()&&typeof this.#r[0]==`string`&&!(this.#r.length===1&&od.has(this.#r[0]))){let n=ad,a=t&&n.has(r.charAt(0))||r.startsWith(`\\.`)&&n.has(r.charAt(2))||r.startsWith(`\\.\\.`)&&n.has(r.charAt(4)),o=!t&&!e&&n.has(r.charAt(0));i=a?rd:o?id:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,Ju(r),this.#t=!!this.#t,this.#n]}let n=this.type===`*`||this.type===`+`,r=this.type===`!`?`(?:(?!(?:`:`(?:`,i=this.#S(t);if(this.isStart()&&this.isEnd()&&!i&&this.type!==`!`){let e=this.toString(),t=this;return t.#r=[e],t.type=null,t.#t=void 0,[e,Ju(this.toString()),!1,!1]}let a=!n||e||t||!id?``:this.#S(!0);a===i&&(a=``),a&&(i=`(?:${i})(?:${a})*?`);let o=``;if(this.type===`!`&&this.#u)o=(this.isStart()&&!t?id:``)+dd;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?id:``)+ud+`)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,Ju(i),this.#t=!!this.#t,this.#n]}#x(){if(Qu(this)){let e=0,t=!1;do{t=!0;for(let e=0;e<this.#r.length;e++){let n=this.#r[e];typeof n==`object`&&(n.#x(),this.#m(n)?(t=!1,this.#_(n,e)):this.#p(n)?(t=!1,this.#g(n,e)):this.#y(n)&&(t=!1,this.#b(n)))}}while(!t&&++e<10)}else for(let e of this.#r)typeof e==`object`&&e.#x();this.#l=void 0}#S(e){return this.#r.map(t=>{if(typeof t==`string`)throw Error(`string type in extglob ast??`);let[n,r,i,a]=t.toRegExpSource(e);return this.#n=this.#n||a,n}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(`|`)}static#C(e,t,n=!1){let r=!1,i=``,a=!1,o=!1;for(let s=0;s<e.length;s++){let c=e.charAt(s);if(r){r=!1,i+=(sd.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?dd:ud,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=qu(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=ld,t=!0;continue}i+=cd(c)}return[i,Ju(e),!!t,a]}};Yu=pd;var md=C((e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),`escape`),hd=C((e,t,n={})=>(Hu(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Kd(t,n).match(e)),`minimatch`),gd=/^\*+([^+@!?*[(]*)$/,_d=C(e=>t=>!t.startsWith(`.`)&&t.endsWith(e),`starDotExtTest`),vd=C(e=>t=>t.endsWith(e),`starDotExtTestDot`),yd=C(e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),`starDotExtTestNocase`),bd=C(e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),`starDotExtTestNocaseDot`),xd=/^\*+\.\*+$/,Sd=C(e=>!e.startsWith(`.`)&&e.includes(`.`),`starDotStarTest`),Cd=C(e=>e!==`.`&&e!==`..`&&e.includes(`.`),`starDotStarTestDot`),wd=/^\.\*+$/,Td=C(e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),`dotStarTest`),Ed=/^\*+$/,Dd=C(e=>e.length!==0&&!e.startsWith(`.`),`starTest`),Od=C(e=>e.length!==0&&e!==`.`&&e!==`..`,`starTestDot`),kd=/^\?+([^+@!?*[(]*)?$/,Ad=C(([e,t=``])=>{let n=Pd([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},`qmarksTestNocase`),jd=C(([e,t=``])=>{let n=Fd([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},`qmarksTestNocaseDot`),Md=C(([e,t=``])=>{let n=Fd([e]);return t?e=>n(e)&&e.endsWith(t):n},`qmarksTestDot`),Nd=C(([e,t=``])=>{let n=Pd([e]);return t?e=>n(e)&&e.endsWith(t):n},`qmarksTest`),Pd=C(([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},`qmarksTestNoExt`),Fd=C(([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},`qmarksTestNoExtDot`),Id=typeof process==`object`&&process?typeof process.env==`object`&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Ld={win32:{sep:`\\`},posix:{sep:`/`}};hd.sep=Id===`win32`?Ld.win32.sep:Ld.posix.sep;var Rd=Symbol(`globstar **`);hd.GLOBSTAR=Rd;var zd=`[^/]*?`,Bd=`(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?`,Vd=`(?:(?!(?:\\/|^)\\.).)*?`;hd.filter=C((e,t={})=>n=>hd(n,e,t),`filter`);var Hd=C((e,t={})=>Object.assign({},e,t),`ext`);hd.defaults=C(e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return hd;let t=hd;return Object.assign(C((n,r,i={})=>t(n,r,Hd(e,i)),`m`),{Minimatch:class extends t.Minimatch{static{C(this,`Minimatch`)}constructor(t,n={}){super(t,Hd(e,n))}static defaults(n){return t.defaults(Hd(e,n)).Minimatch}},AST:class extends t.AST{static{C(this,`AST`)}constructor(t,n,r={}){super(t,n,Hd(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,Hd(e,r))}},unescape:C((n,r={})=>t.unescape(n,Hd(e,r)),`unescape`),escape:C((n,r={})=>t.escape(n,Hd(e,r)),`escape`),filter:C((n,r={})=>t.filter(n,Hd(e,r)),`filter`),defaults:C(n=>t.defaults(Hd(e,n)),`defaults`),makeRe:C((n,r={})=>t.makeRe(n,Hd(e,r)),`makeRe`),braceExpand:C((n,r={})=>t.braceExpand(n,Hd(e,r)),`braceExpand`),match:C((n,r,i={})=>t.match(n,r,Hd(e,i)),`match`),sep:t.sep,GLOBSTAR:Rd})},`defaults`);var Ud=C((e,t={})=>(Hu(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:Fu(e,{max:t.braceExpandMax})),`braceExpand`);hd.braceExpand=Ud,hd.makeRe=C((e,t={})=>new Kd(e,t).makeRe(),`makeRe`),hd.match=C((e,t,n={})=>{let r=new Kd(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e},`match`);var Wd=/[?*]|[+@!]\(.*?\)|\[|\]/,Gd=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regExpEscape`),Kd=class{static{C(this,`Minimatch`)}options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){Hu(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||Id,this.isWindows=this.platform===`win32`,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,`/`)),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot===void 0?!!(this.isWindows&&this.nocase):t.windowsNoMagicRoot,this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!=`string`)return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)===`#`){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(e=>this.slashSplit(e));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map((e,t,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){let t=e[0]===``&&e[1]===``&&(e[2]===`?`||!Wd.test(e[2]))&&!Wd.test(e[3]),n=/^[a-z]:/i.test(e[0]);if(t)return[...e.slice(0,4),...e.slice(4).map(e=>this.parse(e))];if(n)return[e[0],...e.slice(1).map(e=>this.parse(e))]}return e.map(e=>this.parse(e))});if(this.debug(this.pattern,r),this.set=r.filter(e=>e.indexOf(!1)===-1),this.isWindows)for(let e=0;e<this.set.length;e++){let t=this.set[e];t[0]===``&&t[1]===``&&this.globParts[e][2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3])&&(t[2]=`?`)}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let t of e)for(let e=0;e<t.length;e++)t[e]===`**`&&(t[e]=`*`);let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):e=t>=1?this.levelOneOptimize(e):this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(e=>{let t=-1;for(;(t=e.indexOf(`**`,t+1))!==-1;){let n=t;for(;e[n+1]===`**`;)n++;n!==t&&e.splice(t,n-t)}return e})}levelOneOptimize(e){return e.map(e=>(e=e.reduce((e,t)=>{let n=e[e.length-1];return t===`**`&&n===`**`?e:t===`..`&&n&&n!==`..`&&n!==`.`&&n!==`**`?(e.pop(),e):(e.push(t),e)},[]),e.length===0?[``]:e))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let n=1;n<e.length-1;n++){let r=e[n];n===1&&r===``&&e[0]===``||(r===`.`||r===``)&&(t=!0,e.splice(n,1),n--)}e[0]===`.`&&e.length===2&&(e[1]===`.`||e[1]===``)&&(t=!0,e.pop())}let n=0;for(;(n=e.indexOf(`..`,n+1))!==-1;){let r=e[n-1];r&&r!==`.`&&r!==`..`&&r!==`**`&&!(this.isWindows&&/^[a-z]:$/i.test(r))&&(t=!0,e.splice(n-1,2),n-=2)}}while(t);return e.length===0?[``]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let n of e){let r=-1;for(;(r=n.indexOf(`**`,r+1))!==-1;){let i=r;for(;n[i+1]===`**`;)i++;i>r&&n.splice(r+1,i-r);let a=n[r+1],o=n[r+2],s=n[r+3];if(a!==`..`||!o||o===`.`||o===`..`||!s||s===`.`||s===`..`)continue;t=!0,n.splice(r,1);let c=n.slice(0);c[r]=`**`,e.push(c),r--}if(!this.preserveMultipleSlashes){for(let e=1;e<n.length-1;e++){let r=n[e];e===1&&r===``&&n[0]===``||(r===`.`||r===``)&&(t=!0,n.splice(e,1),e--)}n[0]===`.`&&n.length===2&&(n[1]===`.`||n[1]===``)&&(t=!0,n.pop())}let i=0;for(;(i=n.indexOf(`..`,i+1))!==-1;){let e=n[i-1];if(e&&e!==`.`&&e!==`..`&&e!==`**`){t=!0;let e=i===1&&n[i+1]===`**`?[`.`]:[];n.splice(i-1,2,...e),n.length===0&&n.push(``),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let n=t+1;n<e.length;n++){let r=this.partsMatch(e[t],e[n],!this.preserveMultipleSlashes);if(r){e[t]=[],e[n]=r;break}}return e.filter(e=>e.length)}partsMatch(e,t,n=!1){let r=0,i=0,a=[],o=``;for(;r<e.length&&i<t.length;)if(e[r]===t[i])a.push(o===`b`?t[i]:e[r]),r++,i++;else if(n&&e[r]===`**`&&t[i]===e[r+1])a.push(e[r]),r++;else if(n&&t[i]===`**`&&e[r]===t[i+1])a.push(t[i]),i++;else if(e[r]===`*`&&t[i]&&(this.options.dot||!t[i].startsWith(`.`))&&t[i]!==`**`){if(o===`b`)return!1;o=`a`,a.push(e[r]),r++,i++}else if(t[i]===`*`&&e[r]&&(this.options.dot||!e[r].startsWith(`.`))&&e[r]!==`**`){if(o===`a`)return!1;o=`b`,a.push(t[i]),r++,i++}else return!1;return e.length===t.length&&a}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,n=0;for(let r=0;r<e.length&&e.charAt(r)===`!`;r++)t=!t,n++;n&&(this.pattern=e.slice(n)),this.negate=t}matchOne(e,t,n=!1){let r=0,i=0;if(this.isWindows){let n=typeof e[0]==`string`&&/^[a-z]:$/i.test(e[0]),a=!n&&e[0]===``&&e[1]===``&&e[2]===`?`&&/^[a-z]:$/i.test(e[3]),o=typeof t[0]==`string`&&/^[a-z]:$/i.test(t[0]),s=!o&&t[0]===``&&t[1]===``&&t[2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3]),c=a?3:n?0:void 0,l=s?3:o?0:void 0;if(typeof c==`number`&&typeof l==`number`){let[n,a]=[e[c],t[l]];n.toLowerCase()===a.toLowerCase()&&(t[l]=n,i=l,r=c)}}let{optimizationLevel:a=1}=this.options;return a>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(Rd)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Rd,i),o=t.lastIndexOf(Rd),[s,c,l]=n?[t.slice(i,a),t.slice(a+1),[]]:[t.slice(i,a),t.slice(a+1,o),t.slice(o+1)];if(s.length){let t=e.slice(r,r+s.length);if(!this.#n(t,s,n,0,0))return!1;r+=s.length,i+=s.length}let u=0;if(l.length){if(l.length+r>e.length)return!1;let t=e.length-l.length;if(this.#n(e,l,n,t,0))u=l.length;else{if(e[e.length-1]!==``||r+l.length===e.length||(t--,!this.#n(e,l,n,t,0)))return!1;u=l.length+1}}if(!c.length){let t=!!u;for(let n=r;n<e.length-u;n++){let r=String(e[n]);if(t=!0,r===`.`||r===`..`||!this.options.dot&&r.startsWith(`.`))return!1}return n||t}let d=[[[],0]],f=d[0],p=0,m=[0];for(let e of c)e===Rd?(m.push(p),f=[[],0],d.push(f)):(f[0].push(e),p++);let h=d.length-1,g=e.length-u;for(let e of d)e[1]=g-(m[h--]+e[0].length);return!!this.#t(e,d,r,0,n,0,!!u)}#t(e,t,n,r,i,a,o){let s=t[r];if(!s){for(let t=n;t<e.length;t++){o=!0;let n=e[t];if(n===`.`||n===`..`||!this.options.dot&&n.startsWith(`.`))return!1}return o}let[c,l]=s;for(;n<=l;){if(this.#n(e.slice(0,n+c.length),c,i,n,0)&&a<this.maxGlobstarRecursion){let s=this.#t(e,t,n+c.length,r+1,i,a+1,o);if(s!==!1)return s}let s=e[n];if(s===`.`||s===`..`||!this.options.dot&&s.startsWith(`.`))return!1;n++}return i||null}#n(e,t,n,r,i){let a,o,s,c;for(a=r,o=i,c=e.length,s=t.length;a<c&&o<s;a++,o++){this.debug(`matchOne loop`);let n=t[o],r=e[a];if(this.debug(t,n,r),n===!1||n===Rd)return!1;let i;if(typeof n==`string`?(i=r===n,this.debug(`string match`,n,r,i)):(i=n.test(r),this.debug(`pattern match`,n,r,i)),!i)return!1}if(a===c&&o===s)return!0;if(a===c)return n;if(o===s)return a===c-1&&e[a]===``;throw Error(`wtf?`)}braceExpand(){return Ud(this.pattern,this.options)}parse(e){Hu(e);let t=this.options;if(e===`**`)return Rd;if(e===``)return``;let n,r=null;(n=e.match(Ed))?r=t.dot?Od:Dd:(n=e.match(gd))?r=(t.nocase?t.dot?bd:yd:t.dot?vd:_d)(n[1]):(n=e.match(kd))?r=(t.nocase?t.dot?jd:Ad:t.dot?Md:Nd)(n):(n=e.match(xd))?r=t.dot?Cd:Sd:(n=e.match(wd))&&(r=Td);let i=pd.fromGlob(e,this.options).toMMPattern();return r&&typeof i==`object`&&Reflect.defineProperty(i,`test`,{value:r}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,n=t.noglobstar?zd:t.dot?Bd:Vd,r=new Set(t.nocase?[`i`]:[]),i=e.map(e=>{let t=e.map(e=>{if(e instanceof RegExp)for(let t of e.flags.split(``))r.add(t);return typeof e==`string`?Gd(e):e===Rd?Rd:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Rd||a===Rd||(a===void 0?i!==void 0&&i!==Rd?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Rd&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Rd))});let i=t.filter(e=>e!==Rd);if(this.partial&&i.length>=1){let e=[];for(let t=1;t<=i.length;t++)e.push(i.slice(0,t).join(`/`));return`(?:`+e.join(`|`)+`)`}return i.join(`/`)}).join(`|`),[a,o]=e.length>1?[`(?:`,`)`]:[``,``];i=`^`+a+i+o+`$`,this.partial&&(i=`^(?:\\/|`+a+i.slice(1,-1)+o+`)$`),this.negate&&(i=`^(?!`+i+`).+$`);try{this.regexp=new RegExp(i,[...r].join(``))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split(`/`):this.isWindows&&/^\/\/[^/]+/.test(e)?[``,...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug(`match`,e,this.pattern),this.comment)return!1;if(this.empty)return e===``;if(e===`/`&&t)return!0;let n=this.options;this.isWindows&&(e=e.split(`\\`).join(`/`));let r=this.slashSplit(e);this.debug(this.pattern,`split`,r);let i=this.set;this.debug(this.pattern,`set`,i);let a=r[r.length-1];if(!a)for(let e=r.length-2;!a&&e>=0;e--)a=r[e];for(let e of i){let i=r;if(n.matchBase&&e.length===1&&(i=[a]),this.matchOne(i,e,t))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(e){return hd.defaults(e).Minimatch}};hd.AST=pd,hd.Minimatch=Kd,hd.escape=md,hd.unescape=Ju;function qd(e){let t=[],n=e.globParts[0];for(let e=0,r=n.length;e<r;e++){if(n[e].includes(`*`))return{dir:t.join(`/`),depth:n[e]};t.push(n[e])}return{dir:t.join(`/`)}}C(qd,`getDirFromPattern`);var Jd=C(async({entry:e,project:t,directory:n,packagePath:r})=>{if(e===`package.json`){let i={path:r};try{let{name:r}=await t.fs.readJSON(t.fs.join(n,e));i.name=r}catch{}return i}return null},`defaultIdentifyPackage`);async function Yd(e,t,n,r){let i={},a=e.jsWorkspaceRoot?e.fs.resolve(e.jsWorkspaceRoot,t):e.root?e.fs.resolve(e.root,t):e.fs.resolve(t);try{i=await e.fs.readDir(a,!0)}catch{}let o=Object.entries(i).map(async([i,o])=>{let s=await n({entry:i,type:o,packagePath:t,directory:a,project:e});return s?[s]:r&&o===`directory`?Yd(e,e.fs.join(t,i),n,r===`**`?r:void 0):[]});return(await Promise.all(o)).flat()}C(Yd,`findPackages`);async function Xd(e,t=[]){if(!t?.length)return[];let n=(await Promise.all(t.map(t=>{let n=new Kd(t.replace(/^!?(\.\/)/,(e,t)=>e.replace(t,``)));if(n.negate)return;let{dir:r,depth:i}=qd(n);return Yd(e,r,Jd,i)}))).flat().filter(Boolean),r=new Map;for(let i of n)for(let n of t){let t=new Kd(n.replace(/^!?(\.\/)/,(e,t)=>e.replace(t,``)));hd(i.path,t.pattern)&&(r.set(e.fs.join(i.path),i),t.negate&&r.delete(e.fs.join(i.path)))}return[...r.values()]}C(Xd,`getWorkspacePackages`);var Zd=class{static{C(this,`WorkspaceInfo`)}isRoot;rootDir;packages=[];hasPackage(e){return this.packages.findIndex(({path:t})=>t===e)>-1}getPackage(e){return this.packages.find(({path:t})=>t===e)}};async function Qd(e){let t=await e.fs.findUp(`pnpm-workspace.yaml`,{cwd:e.baseDirectory,stopAt:e.root});if(!t)return[];try{let{packages:n=[]}=(0,du.parse)(await e.fs.readFile(t));return n}catch{return[]}}C(Qd,`detectPnpmWorkspaceGlobs`);async function $d(e){return Array.isArray(e.workspaces)?e.workspaces||[]:typeof e.workspaces==`object`&&e.workspaces.packages||[]}C($d,`detectNpmOrYarnWorkspaceGlobs`);async function ef(e){if(e.packageManager===void 0)throw Error(`Please run the packageManager detection before calling the workspace detection!`);if(e.packageManager===null||await e.isRedwoodProject())return null;let t=await e.getRootPackageJSON(),n=e.packageManager.name===`pnpm`?await Qd(e):await $d(t);if(!n||n.length===0)return null;e.events.emit(`detectedWorkspaceGlobs`,void 0);let r=new Zd;r.rootDir=e.jsWorkspaceRoot,r.packages=await Xd(e,n),r.isRoot=e.baseDirectory===e.jsWorkspaceRoot;let i=e.fs.relative(e.jsWorkspaceRoot,e.baseDirectory);return!r.isRoot&&!r.hasPackage(i)?null:r}C(ef,`detectWorkspaces`);var tf=class extends ru{static{C(this,`Nx`)}id=`nx`;name=`Nx`;configFiles=[`nx.json`];logo={default:`/logos/nx/light.svg`,light:`/logos/nx/light.svg`,dark:`/logos/nx/dark.svg`};runFromRoot=!0;isIntegrated=!1;targets=new Map;async getCommands(e){let t=this.project.workspace?.getPackage(e)?.name||``,n=(this.targets.get(e)||[]).map(e=>e.name);try{let r=this.project.resolveFromPackage(e,`package.json`),i=await this.project.fs.readJSON(r,{fail:!0});n.push(...Object.keys(i?.scripts||{})),t=i.name||``}catch{}return t.length!==0&&n.length!==0?n.map(e=>{let n=`unknown`;return hc.includes(e)&&(n=`dev`),_c.includes(e)&&(n=`build`),{type:n,command:`nx run ${t}:${e}`}}):[]}async getDist(e){return this.isIntegrated?this.getOutputFromTarget(e):null}async getPort(e){if(!this.isIntegrated)return null;let t=this.targets.get(e)?.find(e=>hc.includes(e.name)),n=this.getExecutorFromTarget(t);if(!n)return null;switch(n){case`@nxtensions/astro:dev`:return 3e3;case`@nx/next:server`:case`@nrwl/next:server`:case`@nrwl/web:dev-server`:case`@nx/webpack:dev-server`:case`@angular-devkit/build-angular:dev-server`:return 4200;case`@nx-plus/vue:dev-server`:return 8e3;case`nx:run-commands`:case void 0:return null;default:return this.project.report({name:`UndetectedExecutor`,message:`Undetected executor for Nx integrated: ${n}`},{metadata:{executor:n}}),null}}async getOutputFromTarget(e){let{getProperty:t}=await import(`./dot-prop-6SRZBKHT-C_xd7eTS.mjs`);try{let n=this.targets.get(e)?.find(e=>e.name===`build`);if(n){let r=`outputs`in n?n.outputs?.[0]:n.options?.outputPath;if(r){let i=this.project.frameworks?.get(e)?.[0],a=``;return i?.id===`next`&&(a=i.build.directory),this.project.fs.join(r.replace(`{workspaceRoot}/`,``).replace(/\{(.+)\}/g,(r,i)=>t({...n,projectRoot:e},i)),a)}}}catch{}return this.project.fs.join(`dist`,e)}getExecutorFromTarget(e){return e&&(`executor`in e?e.executor:e.builder)}async detectFramework(e){let t=e.find(e=>_c.includes(e.name)),n=this.getExecutorFromTarget(t);if(!(!t||!n))switch(n){case`@nrwl/next:build`:case`@nx/next:build`:return`next`;case`@nxtensions/astro:build`:return`astro`;case`@nx-plus/vue:browser`:return`vue`;case`@angular-devkit/build-angular:browser`:return`angular`;case`@nx/webpack:webpack`:case`@nrwl/web:build`:if(t.options?.webpackConfig?.includes?.(`react`))return`react-static`;this.project.report({name:`UndetectedNrwlWeb`,message:`Undetected @nrwl/web:build framework: ${JSON.stringify({target:t},null,2)}`});return;case`@nx/cypress:cypress`:case`@nrwl/cypress:cypress`:case`@nrwl/node:build`:return;case`nx:run-commands`:case void 0:return;default:this.project.report({name:`UndetectedExecutor`,message:`Undetected executor for Nx integrated: ${n}`},{metadata:{executor:n}})}}async detectWorkspaceFile(){let e=this.project.fs;try{let{projects:t}=await e.readJSON(e.join(this.project.jsWorkspaceRoot,`workspace.json`),{fail:!0}),n=[];for(let[r,{root:i,projectType:a,architect:o}]of Object.entries(t||{})){if(!i||r.endsWith(`-e2e`)||a!==`application`)continue;let t=Object.entries(o||{}).map(([e,t])=>({...t,name:e})),s=await this.detectFramework(t);this.targets.set(e.join(i),t),n.push({name:r,path:e.join(i),forcedFramework:s})}return n}catch{}return[]}async detectProjectJson(){let e=this.project.fs;try{let{workspaceLayout:t}=await e.readJSON(e.join(this.project.jsWorkspaceRoot,`nx.json`),{fail:!0}),n=t?.appsDir?[t.appsDir]:[`apps`,`packages`],r=C(async({entry:t,directory:n,packagePath:r})=>{if(t===`project.json`&&!r.endsWith(`-e2e`))try{let{projectType:i,name:a,targets:o}=await e.readJSON(e.join(n,t));if(i===`application`){let t=Object.entries(o||{}).map(([e,t])=>({...t,name:e})),n=await this.detectFramework(t);return this.targets.set(e.join(r),t),{name:a,path:e.join(r),forcedFramework:n}}}catch{}return null},`identifyPkg`);return(await Promise.all(n.map(async e=>Yd(this.project,e,r,`*`).catch(()=>[])))).flat()}catch{}return[]}async detect(){if(await super.detect()){let e=[...await this.detectWorkspaceFile(),...await this.detectProjectJson()];return e.length&&(this.isIntegrated=!0,this.project.workspace?this.project.workspace.packages.push(...e):(this.project.workspace=new Zd,this.project.workspace.isRoot=this.project.jsWorkspaceRoot===this.project.baseDirectory,this.project.workspace.rootDir=this.project.jsWorkspaceRoot,this.project.workspace.packages=e),this.project.events.emit(`detectWorkspaces`,this.project.workspace)),this}}},nf=class extends ru{static{C(this,`PNPM`)}id=`pnpm`;name=`PNPM`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>{let r=Tc(e,n);return{type:wc(e,n)?`dev`:r?`build`:`unknown`,command:`pnpm --filter ${t}${r?`...`:``} run ${e}`}}):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`pnpm`)return this}},rf=class extends ru{static{C(this,`Yarn`)}id=`yarn`;name=`Yarn`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>({type:wc(e,n)?`dev`:Tc(e,n)?`build`:`unknown`,command:`yarn workspace ${t} ${e}`})):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`yarn`)return this}},af=class extends ru{static{C(this,`NPM`)}id=`npm`;name=`NPM`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>({type:wc(e,n)?`dev`:Tc(e,n)?`build`:`unknown`,command:`npm --workspace ${t} run ${e}`})):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`npm`)return this}},of=[iu,au,ou,su,cu,lu,uu,tf,class extends ru{static{C(this,`Pants`)}id=`pants`;name=`Pants`;configFiles=[`pants.toml`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},class extends ru{static{C(this,`Rush`)}id=`rush`;name=`Rush`;configFiles=[`rush.json`];logo={default:`/logos/rush/light.svg`,light:`/logos/rush/light.svg`,dark:`/logos/rush/dark.svg`}},class extends ru{static{C(this,`Turbo`)}id=`turbo`;name=`TurboRepo`;configFiles=[`turbo.json`];runFromRoot=!0;logo={default:`/logos/turbo/light.svg`,light:`/logos/turbo/light.svg`,dark:`/logos/turbo/dark.svg`};async getCommands(e){let{scripts:t,name:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&t&&Object.values(t).length?Object.keys(t).map(e=>{let t=`unknown`;return hc.includes(e)&&(t=`dev`),_c.includes(e)&&(t=`build`),{type:t,command:`turbo run ${e} --filter ${n}`}}):[]}},nf,af,rf],sf=class{static{C(this,`EventEmitter`)}callbacks=new Map;on(e,t){if(typeof t!=`function`)throw TypeError(`Callback parameter has to be a function.`);this.callbacks.has(e)||this.callbacks.set(e,[]),this.callbacks.get(e)?.push(t)}async emit(e,t){for(let n of this.callbacks.get(e)||[])await n(t)}},{default:cf}=D(fo(),1).default,lf=C(e=>e instanceof Error||typeof e==`object`&&(e.errorClass||e.name)?e:typeof e==`string`?Error(e):typeof e==`object`&&e.message?Error(e.message):Error(`Unexpected error format: ${JSON.stringify(e)}`),`normalizeError`);function uf(e,t={}){let n=lf(e);(t.client||cf).notify(n,n=>{for(let[e,r]of Object.entries(t.metadata||{}))n.addMetadata(e,r);typeof e==`object`&&`documentation_url`in e&&n.addMetadata(`Documentation URL`,e.documentation_url),n.context=t.context,n.severity=t.severity||`error`,n.context=t.context})}C(uf,`report`);var df=D(Li(),1),ff={yarn:{name:`yarn`,installCommand:`yarn install`,runCommand:`yarn run`,localPackageCommand:`yarn`,remotePackageCommand:[`yarn`,`dlx`],lockFiles:[`yarn.lock`],forceEnvironment:`NETLIFY_USE_YARN`},pnpm:{name:`pnpm`,installCommand:`pnpm install`,runCommand:`pnpm run`,localPackageCommand:`pnpm`,remotePackageCommand:[`pnpm`,`dlx`],lockFiles:[`pnpm-lock.yaml`],forceEnvironment:`NETLIFY_USE_PNPM`},npm:{name:`npm`,installCommand:`npm install`,runCommand:`npm run`,localPackageCommand:`npx`,remotePackageCommand:[`npx`],lockFiles:[`package-lock.json`]},bun:{name:`bun`,installCommand:`bun install`,runCommand:`bun run`,localPackageCommand:`bunx`,remotePackageCommand:[`bunx`],lockFiles:[`bun.lockb`,`bun.lock`]}};function pf(e){let t=e.getEnv(`npm_config_user_agent`);if(t!==void 0){if(t.includes(`yarn`))return`yarn`;if(t.includes(`pnpm`))return`pnpm`;if(t.includes(`bun`))return`bun`;if(t.includes(`npm`))return`npm`}}C(pf,`sniffUserAgent`);var mf=Object.values(ff).reduce((e,t)=>t.lockFiles.reduce((e,n)=>({...e,[n]:t}),e),{}),hf=C(async(e,t)=>{let n=t?.enableUserAgentSniffing?pf(e):void 0;try{let t=await e.fs.findUpMultiple(`package.json`,{cwd:e.baseDirectory,stopAt:e.root});if(!t.length)return n?ff[n]:null;for(let n of t){let{packageManager:t}=await e.fs.readJSON(n);if(t){let[e,n]=t.split(`@`);if(ff[e]){let t=ff[e];return t.version=(0,df.parse)(n)||void 0,t}}}for(let t of Object.values(ff))if(t.forceEnvironment&&e.getEnv(t.forceEnvironment)===`true`)return t;let r=await e.fs.findUp(Object.keys(mf),{cwd:e.baseDirectory,stopAt:e.root});if(r){let t=mf[e.fs.basename(r)];if(!(t.forceEnvironment&&e.getEnv(t.forceEnvironment)===`false`))return t}}catch(t){e.report(t)}return n?ff[n]:ff.npm},`detectPackageManager`),gf=class{static{C(this,`LangRuntime`)}project;id;name;configFiles=[];constructor(e){this.project=e}async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}toJSON(){return{id:this.id,name:this.name}}},_f=class extends gf{static{C(this,`Brew`)}id=`brew`;name=`Brew`;configFiles=[`Brewfile.netlify`]},vf=class extends gf{static{C(this,`Bun`)}id=`bun`;name=`Bun`;configFiles=[`bun.lock`,`bun.lockb`,`bunfig.toml`]},yf=class extends gf{static{C(this,`Emacs`)}id=`emacs`;name=`Emacs`;configFiles=[`Cask`]},bf=class extends gf{static{C(this,`Dotnet`)}id=`dotnet`;name=`Dotnet`;configFiles=[`Program.cs`,`appsettings.json`]},xf=class extends gf{static{C(this,`Erlang`)}id=`erlang`;name=`Erlang`;configFiles=[`rebar.config`,`rebar.lock`]},Sf=class extends gf{static{C(this,`Go`)}id=`go`;name=`Go`;configFiles=[`go.mod`,`.go-version`,`go.work`]},Cf=class extends gf{static{C(this,`Java`)}id=`java`;name=`Java`;configFiles=[`project.clj`,`build.boot`]},wf=class extends gf{static{C(this,`Node`)}id=`node`;name=`NodeJS`;configFiles=[`.node-version`,`.nvmrc`,`package.json`]},Tf=class extends gf{static{C(this,`Php`)}id=`php`;name=`Php`;configFiles=[`composer.json`]},Ef=class extends gf{static{C(this,`Python`)}id=`python`;name=`Python`;configFiles=[`requirements.txt`,`Pipfile`]},Df=[wf,class extends gf{static{C(this,`Ruby`)}id=`ruby`;name=`Ruby`;configFiles=[`.ruby-version`,`Gemfile.lock`,`Gemfile`]},_f,vf,bf,yf,xf,Sf,Cf,Tf,class extends gf{static{C(this,`Rust`)}id=`rust`;name=`Rust`;configFiles=[`Cargo.toml`,`Cargo.lock`]},class extends gf{static{C(this,`Swift`)}id=`swift`;name=`Swift`;configFiles=[`.swift-version`,`Package.swift`]},Ef];async function Of(e,t,n){let r=t.buildSystems[0],i={...e};if(n&&r){let t=await r.getCommands?.(n)||[],a=t.find(e=>e.type===`build`),o=t.find(e=>e.type===`dev`),s=await r.getDist?.(n),c=await r.getPort?.(n);i.name=`${r.name} + ${e.name} ${n}`,a&&(i.buildCommand=a.command),o&&(i.devCommand=o.command),s&&(i.dist=s),c!=null&&(i.frameworkPort=c),r.runFromRoot&&a&&o&&(i.baseDirectory=``)}return i}C(Of,`applyBuildSystemOverrides`);async function kf(e,t,n){let r=e.getDevCommands(),i=e.getBuildCommands(),a={name:e.name,buildCommand:i[0],devCommand:r[0],frameworkPort:e.dev?.port,dist:t.fs.join(n,e.build.directory),env:e.env||{},plugins_from_config_file:[],plugins_recommended:e.plugins||[],framework:{id:e.id,name:e.name},baseDirectory:n,packagePath:n,pollingStrategies:e.dev?.pollingStrategies?.map(({name:e})=>e)||[]};return e.dev?.clearPublishDirectory!==void 0&&(a.clearPublishDirectory=e.dev.clearPublishDirectory),n?.length&&t.workspace?.isRoot&&(a.dist=t.fs.join(n,e.build.directory)),Of(a,t,n)}C(kf,`getSettings`);async function Af(e,t){if(e.frameworks===void 0)throw Error(`Please run the framework detection before calling the build settings!`);let n=t??e.relativeBaseDirectory??``,r=[];if(e.logger.debug(`[get-build-settings.ts] getBuildSettings for baseDirectory: ${n}`),e.workspace&&e.workspace.packages.length>0&&n.length===0)for(let[t,n]of[...e.frameworks.entries()])for(let i of n)r.push(kf(i,e,t));else for(let t of e.frameworks.get(n)||[])r.push(kf(t,e,n));return(await Promise.all(r)).filter(Boolean)}C(Af,`getBuildSettings`);var jf=class{static{C(this,`Project`)}fs;root;baseDirectory;relativeBaseDirectory;packageManager;jsWorkspaceRoot;workspace;buildSystems;settings;frameworks;runtimes;#e={};bugsnag;logger;reportFn=uf;events=new sf;_nodeVersion=null;setNodeVersion(e){return this._nodeVersion=(0,nu.parse)((0,nu.coerce)(e),{loose:!0}),this}async getCurrentNodeVersion(){if(this._nodeVersion)return this._nodeVersion;let e=(0,nu.parse)((0,nu.coerce)(this.getEnv(`NODE_VERSION`)),{loose:!0});if(e)return e;let t=await this.fs.gracefullyReadFile(`.nvmrc`);if(t)return(0,nu.parse)((0,nu.coerce)(t,{loose:!0}));let n=await this.fs.gracefullyReadFile(`.node_version`);return n?(0,nu.parse)((0,nu.coerce)(n,{loose:!0})):null}async isRedwoodProject(){return await this.fs.fileExists(this.fs.resolve(this.fs.cwd,`redwood.toml`))}constructor(e,t,n){this.fs=e,this.baseDirectory=e.resolve(n||``,t===void 0?e.cwd:t),this.root=n?e.resolve(e.cwd,n):void 0,this.relativeBaseDirectory=t!==void 0&&!e.isAbsolute(t)?t:e.relative(this.root||e.cwd,this.baseDirectory),this.fs.cwd=this.baseDirectory,this.logger=e.logger}setEnvironment(e){return this.#e=e,this}setReportFn(e){return this.reportFn=e,this}setBugsnag(e){return e&&(this.bugsnag=e),this}getEnv(e){return this.#e[e]}report(e,t={}){this.fs.logger.error(e),this.reportFn(e,{metadata:{build:{baseDirectory:this.baseDirectory,root:this.root},...t.metadata||{}},context:t.context,severity:t.severity,client:this.bugsnag})}getNpmScriptCommand(e){return`${this.packageManager?.runCommand||ff.npm.runCommand} ${e}`}async getRootPackageJSON(){let e=(await this.fs.findUpMultiple(`package.json`,{cwd:this.baseDirectory,stopAt:this.root})).pop();return e?(this.jsWorkspaceRoot=this.fs.dirname(e),this.fs.readJSON(e)):{}}async getPackageJSON(e){let t=await this.fs.findUp(`package.json`,{cwd:e||this.baseDirectory,stopAt:this.root});if(t){let e=await this.fs.readJSON(t);return Object.assign(e,{pkgPath:t})}return{pkgPath:null}}resolveFromPackage(e,...t){return this.jsWorkspaceRoot?this.fs.join(this.jsWorkspaceRoot,e,...t):this.baseDirectory.endsWith(e)&&!this.workspace?.isRoot?this.fs.join(this.baseDirectory,...t):this.fs.resolve(e,...t)}async detectPackageManager(e){if(this.logger.debug(`[project.ts]: detectPackageManager`),this.packageManager!==void 0)return this.packageManager;try{return this.packageManager=await hf(this,e),await this.events.emit(`detectPackageManager`,this.packageManager),this.packageManager}catch{return null}}async detectWorkspaces(){if(this.logger.debug(`[project.ts]: detectWorkspaces`),this.workspace!==void 0)return this.workspace;await this.detectPackageManager();try{return this.workspace=await ef(this),await this.events.emit(`detectWorkspaces`,this.workspace),this.workspace}catch(e){return this.report(e),null}}async detectBuildSystem(){if(this.logger.debug(`[project.ts]: detectBuildSystem`),this.buildSystems!==void 0)return this.buildSystems;await this.detectWorkspaces();try{return this.buildSystems=(await Promise.all(of.map(e=>new e(this).detect()))).filter(Boolean),await this.events.emit(`detectBuildsystems`,this.buildSystems),this.buildSystems}catch(e){return this.report(e),[]}}async detectRuntime(){this.logger.debug(`[project.ts]: detectRuntime`);try{return this.runtimes=(await Promise.all(Df.map(e=>new e(this).detect()))).filter(Boolean),this.events.emit(`detectRuntimes`,this.runtimes),this.runtimes}catch(e){return this.report(e),[]}}async detectFrameworks(){if(this.logger.debug(`[project.ts]: detectFrameworks`),this.frameworks!==void 0)return[...this.frameworks.values()].flat();try{return await this.detectBuildSystem(),this.frameworks=new Map,this.workspace?await Promise.all(this.workspace.packages.map(async({path:e,forcedFramework:t})=>{if(t)try{let n=await tu(t,this);this.frameworks.set(e,[n])}catch{}else if(this.workspace){let t=await this.detectFrameworksInPath(this.fs.join(this.workspace.rootDir,e));this.frameworks.set(e,t)}})):this.frameworks.set(``,await this.detectFrameworksInPath()),await this.events.emit(`detectFrameworks`,this.frameworks),[...this.frameworks.values()].flat()}catch(e){return this.report(e),null}}async detectFrameworksInPath(e){this.logger.debug(`[project.ts]: detectFrameworksInPath - ${e}`);try{return Ac((await Promise.all(eu.map(t=>new t(this,e).detect()))).filter(Boolean))}catch{return[]}}async getBuildSettings(e){if(this.logger.debug(`[project.ts]: getBuildSettings`),this.settings!==void 0)return this.settings;this.settings=[];try{await this.detectFrameworks(),this.settings=await Af(this,e),await this.events.emit(`detectSettings`,this.settings)}catch(e){this.report(e)}return this.settings}},Mf=class{static{C(this,`Node`)}value;next;constructor(e){this.value=e}},Nf=class{static{C(this,`Queue`)}#e;#t;#n;constructor(){this.clear()}enqueue(e){let t=new Mf(e);this.#e?(this.#t.next=t,this.#t=t):(this.#e=t,this.#t=t),this.#n++}dequeue(){let e=this.#e;if(e)return this.#e=this.#e.next,this.#n--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}};function Pf(e){if(!((Number.isInteger(e)||e===1/0)&&e>0))throw TypeError("Expected `concurrency` to be a number from 1 and up");let t=new Nf,n=0,r=C(()=>{n--,t.size>0&&t.dequeue()()},`next`),i=C(async(e,t,i)=>{n++;let a=(async()=>e(...i))();t(a);try{await a}catch{}r()},`run`),a=C((r,a,o)=>{t.enqueue(i.bind(void 0,r,a,o)),(async()=>{await Promise.resolve(),n<e&&t.size>0&&t.dequeue()()})()},`enqueue`),o=C((e,...t)=>new Promise(n=>{a(e,n,t)}),`generator`);return Object.defineProperties(o,{activeCount:{get:C(()=>n,`get`)},pendingCount:{get:C(()=>t.size,`get`)},clearQueue:{value:C(()=>{t.clear()},`value`)}}),o}C(Pf,`pLimit`);var Ff=class extends Error{static{C(this,`EndError`)}constructor(e){super(),this.value=e}},If=C(async(e,t)=>t(await e),`testElement`),Lf=C(async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new Ff(t[0]);return!1},`finder`);async function Rf(e,t,{concurrency:n=1/0,preserveOrder:r=!0}={}){let i=Pf(n),a=[...e].map(e=>[e,i(If,e,t)]),o=Pf(r?1:1/0);try{await Promise.all(a.map(e=>o(Lf,e)))}catch(e){if(e instanceof Ff)return e.value;throw e}}C(Rf,`pLocate`);var zf={directory:`isDirectory`,file:`isFile`};function Bf(e){if(!Object.hasOwnProperty.call(zf,e))throw Error(`Invalid type specified: ${e}`)}C(Bf,`checkType`);var Vf=C((e,t)=>t[zf[e]](),`matchType`),Hf=C(e=>e instanceof URL?Fe(e):e,`toPath`);async function Uf(e,{cwd:t=B.cwd(),type:n=`file`,allowSymlinks:r=!0,concurrency:i,preserveOrder:a}={}){Bf(n),t=Hf(t);let o=r?ye.stat:ye.lstat;return Rf(e,async e=>{try{return Vf(n,await o(R.resolve(t,e)))}catch{return!1}},{concurrency:i,preserveOrder:a})}C(Uf,`locatePath`);function Wf(e){return e instanceof URL?Fe(e):e}C(Wf,`toPath`);var Gf=Symbol(`findUpStop`);async function Kf(e,t={}){let n=R.resolve(Wf(t.cwd)??``),{root:r}=R.parse(n),i=R.resolve(n,Wf(t.stopAt??r)),a=t.limit??1/0,o=[e].flat(),s=C(async t=>{if(typeof e!=`function`)return Uf(o,t);let n=await e(t.cwd);return typeof n==`string`?Uf([n],t):n},`runMatcher`),c=[];for(;;){let e=await s({...t,cwd:n});if(e===Gf||(e&&c.push(R.resolve(n,e)),n===i||c.length>=a))break;n=R.dirname(n)}return c}C(Kf,`findUpMultiple`);async function qf(e,t={}){return(await Kf(e,{...t,limit:1}))[0]}C(qf,`findUp`);var Jf=class extends pc{static{C(this,`NodeFS`)}constructor(){super(),this.cwd=process.cwd()}getEnvironment(){return`node`}isAbsolute(e){return fe(e)}dirname(e){return de(e)}resolve(...e){return he(...e)}relative(e,t){return me(e,t)}basename(e){return ue(e)}join(...e){return pe(...e)}async fileExists(e){try{return await ge.stat(he(e)),!0}catch{return!1}}async readDir(e,t){try{return t?(await ge.readdir(he(e),{withFileTypes:!0})).reduce((e,t)=>({...e,[t.name]:t.isDirectory()?`directory`:`file`}),{}):ge.readdir(he(e))}catch{return[]}}async readFile(e){return(await ge.readFile(he(e),`utf-8`)).toString()}findUp(e,t={}){return qf(e,t)}findUpMultiple(e,t={}){return Kf(e,t)}},Yf=10,Xf=C((e=0)=>t=>`\x1B[${t+e}m`,`wrapAnsi16`),Zf=C((e=0)=>t=>`\x1B[${38+e};5;${t}m`,`wrapAnsi256`),Qf=C((e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,`wrapAnsi16m`),Q={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(Q.modifier);var $f=Object.keys(Q.color),ep=Object.keys(Q.bgColor);[...$f,...ep];function tp(){let e=new Map;for(let[t,n]of Object.entries(Q)){for(let[t,r]of Object.entries(n))Q[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=Q[t],e.set(r[0],r[1]);Object.defineProperty(Q,t,{value:n,enumerable:!1})}return Object.defineProperty(Q,`codes`,{value:e,enumerable:!1}),Q.color.close=`\x1B[39m`,Q.bgColor.close=`\x1B[49m`,Q.color.ansi=Xf(),Q.color.ansi256=Zf(),Q.color.ansi16m=Qf(),Q.bgColor.ansi=Xf(Yf),Q.bgColor.ansi256=Zf(Yf),Q.bgColor.ansi16m=Qf(Yf),Object.defineProperties(Q,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:C(e=>Q.rgbToAnsi256(...Q.hexToRgb(e)),`value`),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:C((e,t,n)=>Q.ansi256ToAnsi(Q.rgbToAnsi256(e,t,n)),`value`),enumerable:!1},hexToAnsi:{value:C(e=>Q.ansi256ToAnsi(Q.hexToAnsi256(e)),`value`),enumerable:!1}}),Q}C(tp,`assembleStyles`);var np=tp();function rp(e,t=globalThis.Deno?globalThis.Deno.args:B.argv){let n=e.startsWith(`-`)?``:e.length===1?`-`:`--`,r=t.indexOf(n+e),i=t.indexOf(`--`);return r!==-1&&(i===-1||r<i)}C(rp,`hasFlag`);var{env:$}=B,ip;rp(`no-color`)||rp(`no-colors`)||rp(`color=false`)||rp(`color=never`)?ip=0:(rp(`color`)||rp(`colors`)||rp(`color=true`)||rp(`color=always`))&&(ip=1);function ap(){if(`FORCE_COLOR`in $)return $.FORCE_COLOR===`true`?1:$.FORCE_COLOR===`false`?0:$.FORCE_COLOR.length===0?1:Math.min(Number.parseInt($.FORCE_COLOR,10),3)}C(ap,`envForceColor`);function op(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}C(op,`translateLevel`);function sp(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=ap();r!==void 0&&(ip=r);let i=n?ip:r;if(i===0)return 0;if(n){if(rp(`color=16m`)||rp(`color=full`)||rp(`color=truecolor`))return 3;if(rp(`color=256`))return 2}if(`TF_BUILD`in $&&`AGENT_NAME`in $)return 1;if(e&&!t&&i===void 0)return 0;let a=i||0;if($.TERM===`dumb`)return a;if(B.platform===`win32`){let e=Ee.release().split(`.`);return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if(`CI`in $)return`GITHUB_ACTIONS`in $||`GITEA_ACTIONS`in $?3:[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`,`BUILDKITE`,`DRONE`].some(e=>e in $)||$.CI_NAME===`codeship`?1:a;if(`TEAMCITY_VERSION`in $)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($.TEAMCITY_VERSION);if($.COLORTERM===`truecolor`||$.TERM===`xterm-kitty`)return 3;if(`TERM_PROGRAM`in $){let e=Number.parseInt(($.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch($.TERM_PROGRAM){case`iTerm.app`:return e>=3?3:2;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test($.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($.TERM)||`COLORTERM`in $?1:a}C(sp,`_supportsColor`);function cp(e,t={}){return op(sp(e,{streamIsTTY:e&&e.isTTY,...t}))}C(cp,`createSupportsColor`);var lp={stdout:cp({isTTY:Ae.isatty(1)}),stderr:cp({isTTY:Ae.isatty(2)})};function up(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}C(up,`stringReplaceAll`);function dp(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
|
|
490
|
+
${n.stack}`),this.logger.error(r),{}}}async findUp(e,t={}){let n=this.resolve(t.cwd||this.cwd),r=C(async()=>{let i=await this.readDir(n,!0),a=Object.entries(i).find(([n,r])=>{if(typeof e==`string`&&n===e||Array.isArray(e)&&e.includes(n))return t.type&&t.type,n});if(a?.[0])return this.join(n,a[0]);if(!(n===`/`||t.stopAt&&this.resolve(t.stopAt)===n))return n=this.join(n,`..`),r()},`readUp`);return r()}async findUpMultiple(e,t={}){let n=this.resolve(t.cwd||this.cwd),r=[],i=C(async()=>{let a=await this.readDir(n,!0);for(let[i,o]of Object.entries(a))(typeof e==`string`&&i===e||Array.isArray(e)&&e.includes(i))&&(t.type&&t.type===o||!t.type)&&r.push(this.resolve(n,i));return n===`/`||t.stopAt&&this.resolve(t.stopAt)===n?r:(n=this.join(n,`..`),i())},`readUp`);return i()}},mc=D(Li(),1),hc=[`dev`,`serve`,`develop`,`start`,`run`,`web`],gc=[`netlify dev`],_c=[`build`],vc=[`netlify build`],yc=C(e=>gc.some(t=>e.includes(t)),`isExcludedDevScript`),bc=C(e=>vc.some(t=>e.includes(t)),`isExcludedBuildScript`),xc=C((e,t)=>e===t||e.endsWith(`:${t}`),`isScript`),Sc=C(e=>e===-1?2**53-1:e,`getSortIndex`),Cc=C(e=>(t,n)=>{let r=e.findIndex(e=>xc(t,e)),i=e.findIndex(e=>xc(n,e));return Sc(r)-Sc(i)},`sortScriptsByRelevance`),wc=C((e,t)=>hc.some(n=>xc(e,n)&&!yc(t)),`isNpmDevScript`),Tc=C((e,t)=>_c.some(n=>xc(e,n)&&!bc(t)),`isNpmBuildScript`);function Ec(e,t={}){let n=Object.entries(t).filter(([,t])=>t.includes(e)).map(([e])=>e).sort(Cc(hc));return n.length>0?n:Object.keys(t).filter(e=>wc(e,t[e])).sort(Cc(hc))}C(Ec,`getDevCommands`);function Dc(e,t={}){let n=Object.entries(t).filter(([,t])=>t.includes(e)).map(([e])=>e).sort(Cc(_c));return n.length>0?n:Object.keys(t).filter(e=>Tc(e,t[e])).sort(Cc(_c))}C(Dc,`getBuildCommands`);var X;(function(e){e.BackendFramework=`backend_framework`,e.FrontendFramework=`frontend_framework`,e.SSG=`static_site_generator`,e.BuildTool=`build_tool`})(X||={});var Oc;(function(e){e[e.Forced=5]=`Forced`,e[e.NPM=4]=`NPM`,e[e.ConfigOnly=3]=`ConfigOnly`,e[e.Config=2]=`Config`,e[e.NPMHoisted=1]=`NPMHoisted`})(Oc||={});var kc;(function(e){e.NodeModules=`node_modules`,e.PackageJSONPinned=`package_json_pinned`,e.PackageJSON=`package_json`})(kc||={});function Ac(e){let t=[];for(let n of e.sort(jc))(t.length===0||t[0].detected.accuracy===n.detected.accuracy)&&t.push(n);return t}C(Ac,`filterByRelevance`);function jc(e,t){let n=t.detected.accuracy-e.detected.accuracy;if(n===0){let n=[X.BackendFramework,X.FrontendFramework,X.BuildTool,X.SSG];return n.indexOf(t.category)-n.indexOf(e.category)}return n}C(jc,`sortFrameworksBasedOnAccuracy`);function Mc(e){let t=e.filter(C(function(e){return!!e},`isDetection`)).sort((e,t)=>e.accuracy>t.accuracy?-1:+(e.accuracy<t.accuracy));if(t.length!==0)return t.slice(1).reduce((e,t)=>(e.config=e.config??t.config,e.configName=e.configName??t.configName,e.package=e.package??t.package,e.packageJSON=e.packageJSON??t.packageJSON,e),t[0])}C(Mc,`mergeDetections`);var Z=class{static{C(this,`BaseFramework`)}project;path;id;name;category;detected;version;configFiles=[];npmDependencies=[];excludedNpmDependencies=[];plugins=[];staticAssetsDirectory;env={};dev;build={command:`npm run build`,directory:`dist`};logo;constructor(e,t){this.project=e,this.path=t,e.packageManager?.runCommand&&(this.build.command=`${e.packageManager.runCommand} build`)}setDetected(e,t){return this.detected={accuracy:e},typeof t==`string`?this.detected.config=t:this.detected.package=t,this}async getVersionFromNodeModules(e){if(this.project.fs.getEnvironment()!==`browser`)try{let t=await this.project.fs.findUp(this.project.fs.join(`node_modules`,e,`package.json`),{cwd:this.path||this.project.baseDirectory,stopAt:this.project.root});if(t){let{version:e}=await this.project.fs.readJSON(t);if(typeof e==`string`)return(0,mc.parse)(e)||void 0}}catch{}}async npmDependenciesUsed(e){let t={...e.dependencies??{},...e.devDependencies??{}},n=Object.keys(t).find(e=>this.npmDependencies.includes(e));if(!Object.keys(t).some(e=>this.excludedNpmDependencies.includes(e))&&n!=null){let e=await this.getVersionFromNodeModules(n);if(e)return{name:n,version:e,versionAccuracy:kc.NodeModules};let r=t[n],i=(0,mc.parse)(r);if(i)return{name:n,version:i,versionAccuracy:kc.PackageJSONPinned};let a=(0,mc.parse)((0,mc.coerce)(r))||void 0;return a?{name:n,version:a,versionAccuracy:kc.PackageJSON}:{name:n,version:void 0,versionAccuracy:void 0}}}async detectNpmDependency(){if(this.npmDependencies.length){let e=this.path||this.project.baseDirectory,t=await this.project.getPackageJSON(e),n=await this.npmDependenciesUsed(t);if(n)return this.version=n.version,{accuracy:this.project.fs.join(e,`package.json`)===t.pkgPath?Oc.NPM:Oc.NPMHoisted,package:n,packageJSON:t}}}async detectConfigFile(e){if(e.length){let t=await this.project.fs.findUp(e,{cwd:this.path||this.project.baseDirectory,stopAt:this.project.root});if(t)return{accuracy:this.npmDependencies.length===0?Oc.ConfigOnly:Oc.Config,config:t,configName:this.project.fs.basename(t)}}}async detect(){let e=await this.detectNpmDependency(),t=await this.detectConfigFile(this.configFiles??[]);if(this.detected=Mc([this.detected?.accuracy===Oc.Forced?this.detected:void 0,e,t]),this.detected)return this}getDevCommands(){if(this.dev?.command===void 0)return[];let e=Ec(this.dev.command,this.detected?.packageJSON?.scripts);return e.length>0?e.map(e=>this.project.getNpmScriptCommand(e)):[this.dev.command]}getBuildCommands(){let e=Dc(this.build.command,this.detected?.packageJSON?.scripts);return e.length>0?e.map(e=>this.project.getNpmScriptCommand(e)):[this.build.command]}toJSON(){return{id:this.id,name:this.name,package:{name:this.detected?.package?.name||this.npmDependencies?.[0],version:this.detected?.package?.version?.raw||`unknown`,versionAccuracy:this.detected?.package?.versionAccuracy},category:this.category,dev:{commands:this.getDevCommands(),port:this.dev?.port,pollingStrategies:this.dev?.pollingStrategies},build:{commands:[this.build.command],directory:this.build.directory},staticAssetsDirectory:this.staticAssetsDirectory,env:this.env,logo:this.logo?Object.entries(this.logo).reduce((e,[t,n])=>({...e,[t]:`https://framework-info.netlify.app${n}`}),{}):void 0,plugins:this.plugins}}},Nc=class extends Z{static{C(this,`Analog`)}id=`analog`;name=`Analog`;configFiles=[];npmDependencies=[`@analogjs/platform`];category=X.SSG;dev={port:5173,command:`ng serve`,pollingStrategies:[{name:`TCP`}]};build={command:`ng build --prod`,directory:`dist/analog/public`};logo={default:`/logos/analog/default.svg`,light:`/logos/analog/default.svg`,dark:`/logos/analog/default.svg`}},Pc=D(Li(),1),Fc=class extends Z{static{C(this,`Angular`)}id=`angular`;name=`Angular`;configFiles=[`angular.json`];npmDependencies=[`@angular/cli`];excludedNpmDependencies=[`@analogjs/platform`];category=X.FrontendFramework;dev={port:4200,command:`ng serve`,pollingStrategies:[{name:`TCP`}]};build={command:`ng build --prod`,directory:`dist/`};logo={default:`/logos/angular/default.svg`,light:`/logos/angular/default.svg`,dark:`/logos/angular/default.svg`};async detect(){if(await super.detect(),this.detected){if(this.version&&(0,Pc.gte)(this.version,`17.0.0-rc`)&&!process.env.NETLIFY_ANGULAR_PLUGIN_SKIP){this.plugins.push(`@netlify/angular-runtime`);let e=await this.project.fs.gracefullyReadFile(`angular.json`);if(e){let{projects:t,defaultProject:n}=JSON.parse(e),r=t[n??Object.keys(t)[0]],i=r?.architect?.build?.options?.outputPath;if(i){let e=r?.architect?.build?.builder?.endsWith(`:application`);this.build.directory=e?this.project.fs.join(i,`browser`):i}}}return this}}},Ic=class extends Z{static{C(this,`Assemble`)}id=`assemble`;name=`Assemble`;npmDependencies=[`assemble`];category=X.SSG;build={command:`grunt build`,directory:`dist`};logo={default:`/logos/assemble/default.png`,light:`/logos/assemble/default.png`,dark:`/logos/assemble/default.png`}},Lc=D(Li(),1),Rc=class extends Z{static{C(this,`Astro`)}id=`astro`;name=`Astro`;configFiles=[`astro.config.mjs`];npmDependencies=[`astro`];category=X.SSG;staticAssetsDirectory=`public`;dev={port:4321,command:`astro dev`,pollingStrategies:[{name:`TCP`}]};build={command:`astro build`,directory:`dist`};logo={default:`/logos/astro/light.svg`,light:`/logos/astro/light.svg`,dark:`/logos/astro/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,Lc.lt)(this.version,`3.0.0`)&&(this.dev.port=3e3),this}},zc=class extends Z{static{C(this,`Blitz`)}id=`blitz`;name=`Blitz.js`;npmDependencies=[`blitz`];category=X.SSG;dev={command:`blitz dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`blitz build`,directory:`out`};logo={default:`/logos/blitz/light.svg`,light:`/logos/blitz/light.svg`,dark:`/logos/blitz/dark.svg`}},Bc=class extends Z{static{C(this,`Brunch`)}id=`brunch`;name=`Brunch`;npmDependencies=[`brunch`];configFiles=[`brunch-config.js`];category=X.BuildTool;dev={command:`brunch watch --server`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`brunch build`,directory:`public`};logo={default:`/logos/brunch/default.svg`,light:`/logos/brunch/default.svg`,dark:`/logos/brunch/default.svg`}},Vc=class extends Z{static{C(this,`Cecil`)}id=`cecil`;name=`Cecil`;configFiles=[`config.yml`];category=X.SSG;dev={command:`cecil serve`,port:8e3,pollingStrategies:[{name:`TCP`}]};build={command:`cecil build`,directory:`_site`};logo={default:`/logos/cecil/default.svg`,light:`/logos/cecil/default.svg`,dark:`/logos/cecil/default.svg`}},Hc=class extends Z{static{C(this,`DocPad`)}id=`docpad`;name=`DocPad`;npmDependencies=[`docpad`];category=X.SSG;dev={command:`docpad run`,port:9778,pollingStrategies:[{name:`TCP`}]};build={command:`docpad generate`,directory:`out`}},Uc=class extends Z{static{C(this,`Docusaurus`)}id=`docusaurus`;name=`Docusaurus`;configFiles=[`docusaurus.config.js`,`siteConfig.js`];npmDependencies=[`@docusaurus/core`,`docusaurus`];category=X.SSG;staticAssetsDirectory=`static`;dev={command:`docusaurus start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`docusaurus build`,directory:`build`};logo={default:`/logos/docusaurus/default.svg`,light:`/logos/docusaurus/default.svg`,dark:`/logos/docusaurus/default.svg`};env={BROWSER:`none`};async detect(){if(await super.detect(),this.detected)return this.isV1(this.detected)&&(this.build.command=`docusaurus-build`,this.build.directory=`build/<project-name>`,this.dev.command=`docusaurus-start`),this}isV1(e){return e.config?.endsWith(`siteConfig.js`)||e.package?.name===`docusaurus`}},Wc=class extends Z{static{C(this,`Eleventy`)}id=`eleventy`;name=`Eleventy`;configFiles=[`.eleventy.js`,`eleventy.config.js`,`eleventy.config.cjs`];npmDependencies=[`@11ty/eleventy`];category=X.SSG;dev={command:`eleventy --serve`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`eleventy`,directory:`_site`};logo={default:`/logos/eleventy/default.svg`,light:`/logos/eleventy/light.svg`,dark:`/logos/eleventy/dark.svg`}},Gc=class extends Z{static{C(this,`Ember`)}id=`ember`;name=`Ember.js`;configFiles=[`ember-cli-build.js`];npmDependencies=[`ember-cli`];category=X.FrontendFramework;dev={command:`ember serve`,port:4200,pollingStrategies:[{name:`TCP`}]};build={command:`ember build`,directory:`dist`};logo={default:`/logos/ember/default.svg`,light:`/logos/ember/light.svg`,dark:`/logos/ember/dark.svg`}},Kc=class extends Z{static{C(this,`Expo`)}id=`expo`;name=`Expo`;configFiles=[`app.json`];npmDependencies=[`expo`];category=X.FrontendFramework;dev={command:`expo start --web`,port:19006,pollingStrategies:[{name:`TCP`}]};build={command:`expo export -p web`,directory:`dist`};logo={default:`/logos/expo/default.svg`,light:`/logos/expo/light.svg`,dark:`/logos/expo/dark.svg`}},qc=D(Li(),1),Jc=class extends Z{static{C(this,`Gatsby`)}id=`gatsby`;name=`Gatsby`;configFiles=[`gatsby-config.js`,`gatsby-config.ts`];npmDependencies=[`gatsby`];category=X.SSG;staticAssetsDirectory=`static`;dev={command:`gatsby develop`,port:8e3,pollingStrategies:[{name:`TCP`}]};build={command:`gatsby build`,directory:`public`};logo={default:`/logos/gatsby/default.svg`,light:`/logos/gatsby/light.svg`,dark:`/logos/gatsby/dark.svg`};env={GATSBY_LOGGER:`yurnalist`,GATSBY_PRECOMPILE_DEVELOP_FUNCTIONS:`true`,AWS_LAMBDA_JS_RUNTIME:`nodejs14.x`,NODE_VERSION:`14`};async detect(){if(await super.detect(),this.detected){this.version&&(0,qc.gte)(this.version,`5.0.0`)&&(this.env.NODE_VERSION=`18`,this.env.AWS_LAMBDA_JS_RUNTIME=`nodejs18.x`);let e=await this.project.getCurrentNodeVersion();return e&&(0,qc.gte)(e,`12.13.0`)&&!process.env.NETLIFY_SKIP_GATSBY_BUILD_PLUGIN&&this.plugins.push(`@netlify/plugin-gatsby`),this}}},Yc=class extends Z{static{C(this,`Gridsome`)}id=`gridsome`;name=`Gridsome`;configFiles=[`gridsome.config.js`];npmDependencies=[`gridsome`];category=X.SSG;dev={command:`gridsome develop`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`gridsome build`,directory:`dist`};logo={default:`/logos/gridsome/default.svg`,light:`/logos/gridsome/light.svg`,dark:`/logos/gridsome/dark.svg`}},Xc=class extends Z{static{C(this,`Grunt`)}id=`grunt`;name=`Grunt`;npmDependencies=[`grunt`];category=X.BuildTool;build={command:`grunt build`,directory:`dist`};logo={default:`/logos/grunt/default.svg`,light:`/logos/grunt/default.svg`,dark:`/logos/grunt/default.svg`}},Zc=class extends Z{static{C(this,`Gulp`)}id=`gulp`;name=`gulp.js`;npmDependencies=[`gulp`];category=X.BuildTool;build={command:`gulp build`,directory:`dist`};logo={default:`/logos/gulp/default.svg`,light:`/logos/gulp/default.svg`,dark:`/logos/gulp/default.svg`}},Qc=class extends Z{static{C(this,`Harp`)}id=`harp`;name=`Harp`;npmDependencies=[`harp`];category=X.SSG;dev={command:`harp server`,port:9e3,pollingStrategies:[{name:`TCP`}]};build={command:`harp compile`,directory:`www`};logo={default:`/logos/harp/default.svg`,light:`/logos/harp/light.svg`,dark:`/logos/harp/default.svg`}},$c=class extends Z{static{C(this,`Hexo`)}id=`hexo`;name=`Hexo`;configFiles=[`_config.yml`];npmDependencies=[`hexo`];category=X.SSG;dev={command:`hexo server`,port:4e3,pollingStrategies:[{name:`TCP`}]};build={command:`hexo generate`,directory:`public`};logo={default:`/logos/hexo/default.svg`,light:`/logos/hexo/light.svg`,dark:`/logos/hexo/dark.svg`}},el=class extends Z{static{C(this,`Hono`)}id=`hono`;name=`Hono`;npmDependencies=[`hono`];category=X.BackendFramework;logo={default:`/logos/hono/default.svg`,light:`/logos/hono/default.svg`,dark:`/logos/hono/default.svg`}},tl=class extends Z{static{C(this,`Hugo`)}id=`hugo`;name=`Hugo`;configFiles=[`config.json`,`config.toml`,`config.yaml`,`hugo.toml`];category=X.SSG;dev={command:`hugo server -w`,port:1313,pollingStrategies:[{name:`TCP`}]};build={command:`hugo`,directory:`public`};logo={default:`/logos/hugo/default.svg`,light:`/logos/hugo/default.svg`,dark:`/logos/hugo/default.svg`}},nl=[`remix.config.js`],rl={command:`remix dev --manual -c "netlify dev"`},il={command:`remix build`,directory:`public`},al=[`vite.config.js`,`vite.config.mjs`,`vite.config.cjs`,`vite.config.ts`,`vite.config.mts`,`vite.config.cts`],ol={command:`shopify hydrogen dev`,port:5173},sl={command:`remix vite:build`,directory:`dist/client`},cl=class extends Z{static{C(this,`Hydrogen`)}id=`hydrogen`;name=`Hydrogen`;npmDependencies=[`@shopify/hydrogen`];configFiles=[...al,...nl];category=X.SSG;logo={default:`/logos/hydrogen/default.svg`,light:`/logos/hydrogen/default.svg`,dark:`/logos/hydrogen/default.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.configName&&al.includes(this.detected.configName)?(this.dev=ol,this.build=sl,this):(this.dev=rl,this.build=il,this)}},ll=class extends Z{static{C(this,`Jekyll`)}id=`jekyll`;name=`Jekyll`;configFiles=[`_config.yml`,`_config.yaml`,`_config.toml`];category=X.SSG;dev={command:`bundle exec jekyll serve -w`,port:4e3,pollingStrategies:[{name:`TCP`}]};build={command:`bundle exec jekyll build`,directory:`_site`};logo={default:`/logos/jekyll/dark.svg`,light:`/logos/jekyll/light.svg`,dark:`/logos/jekyll/dark.svg`}},ul=class extends Z{static{C(this,`Mastra`)}id=`mastra`;name=`Mastra`;npmDependencies=[`@mastra/deployer-netlify`];category=X.BackendFramework;dev={command:`mastra dev`,port:4111};build={command:`mastra build`,directory:`dist`};logo={default:`/logos/mastra/light.svg`,light:`/logos/mastra/light.svg`,dark:`/logos/mastra/dark.svg`}},dl=class extends Z{static{C(this,`Metalsmith`)}id=`metalsmith`;name=`Metalsmith`;npmDependencies=[`metalsmith`];category=X.SSG;build={command:`metalsmith`,directory:`build`};logo={default:`/logos/metalsmith/default.svg`,light:`/logos/metalsmith/default.svg`,dark:`/logos/metalsmith/default.svg`}},fl=class extends Z{static{C(this,`Middleman`)}id=`middleman`;name=`Middleman`;configFiles=[`config.rb`];category=X.SSG;dev={command:`bundle exec middleman server`,port:4567,pollingStrategies:[{name:`TCP`}]};build={command:`bundle exec middleman build`,directory:`build`};logo={default:`/logos/middleman/default.svg`,light:`/logos/middleman/default.svg`,dark:`/logos/middleman/default.svg`}},pl=D(Li(),1),ml=class extends Z{static{C(this,`Next`)}id=`next`;name=`Next.js`;category=X.SSG;npmDependencies=[`next`];excludedNpmDependencies=[`@nrwl/next`];configFiles=[`next.config.js`,`next.config.mjs`,`next.config.ts`];dev={command:`next`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`next build`,directory:`.next`};logo={default:`/logos/nextjs/light.svg`,light:`/logos/nextjs/light.svg`,dark:`/logos/nextjs/dark.svg`};async detect(){if(await super.detect(),this.detected){let e=await this.project.getCurrentNodeVersion();return e&&(0,pl.gte)(e,`10.13.0`)&&!process.env.NETLIFY_NEXT_PLUGIN_SKIP&&this.plugins.push(`@netlify/plugin-nextjs`),this}}},hl=class extends Z{static{C(this,`Nuxt`)}id=`nuxt`;name=`Nuxt`;npmDependencies=[`nuxt`,`nuxt-edge`,`nuxt3`];category=X.SSG;dev={command:`nuxt dev`,port:3e3,pollingStrategies:[{name:`TCP`}],clearPublishDirectory:!0};build={command:`nuxt build`,directory:`dist`};logo={default:`/logos/nuxt/default.svg`,light:`/logos/nuxt/light.svg`,dark:`/logos/nuxt/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.package?.version?.major!==void 0&&this.detected.package.version.major<3&&(this.build.command=`nuxt generate`,this.dev.command=`nuxt`),this}},gl=class extends Z{static{C(this,`Observable`)}id=`observable`;name=`Observable Framework`;npmDependencies=[`@observablehq/framework`];category=X.SSG;dev={command:`observable preview`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`observable build`,directory:`dist`};logo={default:`/logos/observable/default.svg`,light:`/logos/observable/default.svg`,dark:`/logos/observable/default.svg`}},_l=class extends Z{static{C(this,`Parcel`)}id=`parcel`;name=`Parcel`;npmDependencies=[`parcel-bundler`,`parcel`];category=X.BuildTool;dev={command:`parcel`,port:1234,pollingStrategies:[{name:`TCP`}]};build={command:`parcel build`,directory:`dist`};logo={default:`/logos/parcel/default.svg`,light:`/logos/parcel/default.svg`,dark:`/logos/parcel/default.svg`}},vl=class extends Z{static{C(this,`Phenomic`)}id=`phenomic`;name=`Phenomic`;npmDependencies=[`@phenomic/core`];category=X.SSG;dev={command:`phenomic start`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`phenomic build`,directory:`public`};logo={default:`/logos/phenomic/default.svg`,light:`/logos/phenomic/default.svg`,dark:`/logos/phenomic/default.svg`}},yl=class extends Z{static{C(this,`Quasar`)}id=`quasar`;name=`Quasar`;npmDependencies=[`@quasar/app`,`quasar-cli`];category=X.FrontendFramework;dev={command:`quasar dev -p 8081`,port:8081,pollingStrategies:[{name:`TCP`}]};build={command:`quasar build`,directory:`dist/spa`};logo={default:`/logos/quasar/default.svg`,light:`/logos/quasar/default.svg`,dark:`/logos/quasar/default.svg`};async detect(){if(await super.detect(),this.detected)return this.isV017(this.detected)&&(this.name=`Quasar v0.17`,this.build.directory=`.quasar`,this.dev.command=`quasar dev -p 8080`,this.dev.port=8080),this}isV017(e){return e.package?.name===`quasar-cli`}},bl=class extends Z{static{C(this,`Qwik`)}id=`qwik`;name=`Qwik`;npmDependencies=[`@builder.io/qwik`];category=X.SSG;dev={command:`vite`,port:5173,pollingStrategies:[{name:`TCP`}]};logo={default:`/logos/qwik/default.svg`,light:`/logos/qwik/default.svg`,dark:`/logos/qwik/default.svg`}},xl=D(Li(),1),Sl=class extends Z{static{C(this,`ReactRouter`)}id=`react-router`;name=`React Router`;npmDependencies=[`@react-router/dev`];excludedNpmDependencies=[`@shopify/hydrogen`];configFiles=[`react-router.config.ts`,`react-router.config.js`];category=X.SSG;dev={port:5173,command:`react-router dev`};build={command:`react-router build`,directory:`build/client`};logo={default:`/logos/react-router/light.svg`,light:`/logos/react-router/light.svg`,dark:`/logos/react-router/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,xl.lt)(this.version,`7.0.0`)?void 0:this}},Cl=class extends Z{static{C(this,`ReactStatic`)}id=`react-static`;name=`React Static`;npmDependencies=[`react-static`];configFiles=[`static.config.js`];category=X.SSG;dev={command:`react-static start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`react-static build`,directory:`dist`};logo={default:`/logos/react-static/default.png`,light:`/logos/react-static/default.png`,dark:`/logos/react-static/default.png`}},wl=class extends Z{static{C(this,`CreateReactApp`)}id=`create-react-app`;name=`Create React App`;npmDependencies=[`react-scripts`];category=X.FrontendFramework;staticAssetsDirectory=`public`;dev={command:`react-scripts start`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`react-scripts build`,directory:`build`};logo={default:`/logos/create-react-app/default.svg`,light:`/logos/create-react-app/default.svg`,dark:`/logos/create-react-app/default.svg`};env={BROWSER:`none`,PORT:`3000`}},Tl=class extends Z{static{C(this,`RedwoodJS`)}id=`redwoodjs`;name=`RedwoodJS`;npmDependencies=[`@redwoodjs/core`];configFiles=[`redwood.toml`];category=X.SSG;staticAssetsDirectory=`public`;dev={command:`yarn rw dev`,port:8910,pollingStrategies:[{name:`TCP`}]};build={command:`rw deploy netlify`,directory:`web/dist`};env={AWS_LAMBDA_JS_RUNTIME:`nodejs20.x`,NODE_VERSION:`20`};logo={default:`/logos/redwoodjs/default.svg`,light:`/logos/redwoodjs/default.svg`,dark:`/logos/redwoodjs/default.svg`}},El=[`remix.config.js`],Dl={command:`remix watch`},Ol={command:`remix build`,directory:`public`},kl=[`vite.config.js`,`vite.config.mjs`,`vite.config.cjs`,`vite.config.ts`,`vite.config.mts`,`vite.config.cts`],Al={command:`remix vite:dev`,port:5173},jl={command:`remix vite:build`,directory:`build/client`},Ml=class extends Z{static{C(this,`Remix`)}id=`remix`;name=`Remix`;npmDependencies=[`@remix-run/react`,`@remix-run/dev`,`@remix-run/server-runtime`,`@netlify/remix-adapter`,`@netlify/remix-edge-adapter`,`@netlify/remix-runtime`,`remix`,`@remix-run/netlify`,`@remix-run/netlify-edge`];excludedNpmDependencies=[`@shopify/hydrogen`];configFiles=[...kl,...El];category=X.SSG;logo={default:`/logos/remix/default.svg`,light:`/logos/remix/light.svg`,dark:`/logos/remix/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.configName&&kl.includes(this.detected.configName)?(this.dev=Al,this.build=jl,this):(this.dev=Dl,this.build=Ol,this)}},Nl=class extends Z{static{C(this,`Roots`)}id=`roots`;name=`Roots`;npmDependencies=[`roots`];category=X.SSG;dev={command:`roots watch`,port:1111,pollingStrategies:[{name:`TCP`}]};build={command:`roots compile`,directory:`public`};logo={default:`/logos/roots/default.svg`,light:`/logos/roots/default.svg`,dark:`/logos/roots/default.svg`}},Pl=class extends Z{static{C(this,`Sapper`)}id=`sapper`;name=`Sapper`;npmDependencies=[`sapper`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`sapper dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`sapper export`,directory:`__sapper__/export`};logo={default:`/logos/sapper/default.svg`,light:`/logos/sapper/default.svg`,dark:`/logos/sapper/default.svg`}},Fl=class extends Z{static{C(this,`SolidJs`)}id=`solid-js`;name=`SolidJS`;npmDependencies=[`solid-js`];excludedNpmDependencies=[`solid-start`,`@solidjs/start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/solid-js/default.svg`,light:`/logos/solid-js/default.svg`,dark:`/logos/solid-js/dark.svg`}},Il=`solid-start`,Ll={command:`solid-start dev`,port:3e3},Rl={command:`solid-start build`,directory:`netlify`},zl=class extends Z{static{C(this,`SolidStart`)}id=`solid-start`;name=`Solid Start`;npmDependencies=[`solid-start`,`@solidjs/start`];category=X.SSG;dev={command:`vinxi dev`,port:3e3};build={command:`vinxi build`,directory:`dist`};logo={default:`/logos/solid-start/default.svg`,light:`/logos/solid-start/default.svg`,dark:`/logos/solid-start/dark.svg`};async detect(){if(await super.detect(),this.detected)return this.detected.package?.name===Il?(this.dev=Ll,this.build=Rl,this):this}},Bl=class extends Z{static{C(this,`Stencil`)}id=`stencil`;name=`Stencil`;npmDependencies=[`@stencil/core`];configFiles=[`stencil.config.ts`];category=X.SSG;dev={command:`stencil build --dev --watch --serve`,port:3333,pollingStrategies:[{name:`TCP`}]};build={command:`stencil build`,directory:`www`};logo={default:`/logos/stencil/light.svg`,light:`/logos/stencil/light.svg`,dark:`/logos/stencil/dark.svg`};env={BROWSER:`none`,PORT:`3000`}},Vl=class extends Z{static{C(this,`SvelteKit`)}id=`svelte-kit`;name=`SvelteKit`;npmDependencies=[`@sveltejs/kit`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`vite dev`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`build`};logo={default:`/logos/svelte-kit/default.svg`,light:`/logos/svelte-kit/default.svg`,dark:`/logos/svelte-kit/default.svg`}},Hl=class extends Z{static{C(this,`Svelte`)}id=`svelte`;name=`Svelte`;npmDependencies=[`svelte`];excludedNpmDependencies=[`sapper`,`@sveltejs/kit`];category=X.FrontendFramework;staticAssetsDirectory=`static`;dev={command:`npm run dev`,port:5e3,pollingStrategies:[{name:`TCP`}]};build={command:`npm run build`,directory:`public`};logo={default:`/logos/svelte-kit/default.svg`,light:`/logos/svelte-kit/default.svg`,dark:`/logos/svelte-kit/default.svg`}},Ul=class extends Z{static{C(this,`TanStackRouter`)}id=`tanstack-router`;name=`TanStack Router`;npmDependencies=[`@tanstack/react-router`];excludedNpmDependencies=[`@tanstack/start`,`@tanstack/react-start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/tanstack-router/default.png`,light:`/logos/tanstack-router/default.png`,dark:`/logos/tanstack-router/default.png`}},Wl=D(Li(),1),Gl=class extends Z{static{C(this,`TanStackStart`)}id=`tanstack-start`;name=`TanStack Start`;npmDependencies=[`@tanstack/start`,`@tanstack/react-start`,`@tanstack/solid-start`];category=X.SSG;dev={command:`vite dev`,port:3e3,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist/client`};logo={default:`/logos/tanstack-start/default.png`,light:`/logos/tanstack-start/default.png`,dark:`/logos/tanstack-start/default.png`};async detect(){if(await super.detect(),this.detected)return this.version&&(0,Wl.lt)(this.version,`1.121.0`)&&(this.dev.command=`vinxi dev`,this.build.command=`vinxi build`),this.version&&(0,Wl.lt)(this.version,`1.132.0`)&&(this.build.directory=`dist`),this}},Kl=class extends Z{static{C(this,`Vike`)}id=`vike`;name=`Vike`;npmDependencies=[`vike`];category=X.SSG;dev={command:`vike dev`,port:3e3};build={command:`vike build`,directory:`dist/client`};logo={default:`/logos/vike/light.svg`,light:`/logos/vite/light.svg`,dark:`/logos/vite/dark.svg`}},ql=class extends Z{static{C(this,`Vite`)}id=`vite`;name=`Vite`;npmDependencies=[`vite`];excludedNpmDependencies=[`@remix-run/react`,`@remix-run/dev`,`@remix-run/server-runtime`,`@shopify/hydrogen`,`@builder.io/qwik`,`solid-start`,`@solidjs/start`,`solid-js`,`@tanstack/react-router`,`@tanstack/start`,`@sveltejs/kit`,`@analogjs/platform`,`@react-router/dev`,`vike`];category=X.BuildTool;dev={command:`vite`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vite build`,directory:`dist`};logo={default:`/logos/vite/default.svg`,light:`/logos/vite/default.svg`,dark:`/logos/vite/default.svg`}},Jl=class extends Z{static{C(this,`VitePress`)}id=`vitepress`;name=`VitePress`;npmDependencies=[`vitepress`];category=X.SSG;dev={command:`vitepress dev docs`,port:5173,pollingStrategies:[{name:`TCP`}]};build={command:`vitepress build docs`,directory:`docs/.vitepress/dist`};logo={default:`/logos/vitepress/default.svg`,light:`/logos/vitepress/default.svg`,dark:`/logos/vitepress/default.svg`}},Yl=class extends Z{static{C(this,`Vue`)}id=`vue`;name=`Vue.js`;npmDependencies=[`@vue/cli-service`];category=X.FrontendFramework;dev={command:`vue-cli-service serve`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`vue-cli-service build`,directory:`dist`};logo={default:`/logos/vue/default.svg`,light:`/logos/vue/default.svg`,dark:`/logos/vue/default.svg`}},Xl=class extends Z{static{C(this,`VuePress`)}id=`vuepress`;name=`VuePress`;npmDependencies=[`vuepress`];category=X.SSG;dev={command:`vuepress dev`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`vuepress build`,directory:`.vuepress/dist`};logo={default:`/logos/vuepress/default.svg`,light:`/logos/vuepress/default.svg`,dark:`/logos/vuepress/default.svg`}},Zl=class extends Z{static{C(this,`Waku`)}id=`waku`;name=`Waku`;npmDependencies=[`waku`];configFiles=[`waku.config.ts`,`waku.config.js`];category=X.SSG;dev={command:`waku dev`,port:3e3};build={command:`waku build`,directory:`dist/public`};logo={default:`/logos/waku/light.svg`,light:`/logos/waku/light.svg`,dark:`/logos/waku/dark.svg`}},Ql=class extends Z{static{C(this,`Wintersmith`)}id=`wintersmith`;name=`Wintersmith`;npmDependencies=[`wintersmith`];configFiles=[`config.json`];category=X.SSG;dev={command:`wintersmith preview`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`wintersmith build`,directory:`build`};logo={default:`/logos/wintersmith/default.svg`,light:`/logos/wintersmith/default.svg`,dark:`/logos/wintersmith/default.svg`}},$l=class extends Z{static{C(this,`WMR`)}id=`wmr`;name=`WMR`;npmDependencies=[`wmr`];category=X.BuildTool;dev={command:`wmr`,port:8080,pollingStrategies:[{name:`TCP`}]};build={command:`wmr build`,directory:`dist`};logo={default:`/logos/wmr/default.svg`,light:`/logos/wmr/default.svg`,dark:`/logos/wmr/default.svg`}},eu=[Rc,Uc,Wc,Jc,Yc,$c,tl,cl,ll,fl,ml,zc,hl,vl,bl,Sl,Cl,Tl,Ml,Fl,zl,Bl,Ul,Gl,Xl,Ic,Hc,Qc,dl,Nl,Ql,Vc,class extends Z{static{C(this,`Zola`)}id=`zola`;name=`Zola`;configFiles=[`config.toml`];category=X.SSG;dev={command:`zola serve`,port:1111,pollingStrategies:[{name:`TCP`}]};build={command:`zola build`,directory:`public`}},gl,Nc,Kl,Zl,Jl,el,ul,Fc,wl,Gc,Kc,yl,Pl,Hl,Vl,Yl,Bc,_l,Zc,Xc,ql,$l];async function tu(e,t){let n=eu.map(e=>new e(t)),r=n.find(({id:t})=>t===e);if(r){r.detected={accuracy:Oc.Forced};let t=await r.detect();if(t)return t;throw Error(`Forced framework "${e}" was not detected.`)}let i=n.map(({id:e})=>e).sort().join(`, `);throw Error(`Invalid framework "${e}". It should be one of: ${i}`)}C(tu,`getFramework`);var nu=D(Li(),1),ru=class{static{C(this,`BaseBuildTool`)}project;id;name;version;configFiles=[];runFromRoot;logo;constructor(e){this.project=e}async detect(){let e=await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root});if(e){let t=await this.project.getPackageJSON(this.project.fs.dirname(e));return this.version=t.devDependencies?.[this.id],this}}toJSON(){return{id:this.id,name:this.name,version:this.version,logo:this.logo?Object.entries(this.logo).reduce((e,[t,n])=>({...e,[t]:`https://framework-info.netlify.app${n}`}),{}):void 0}}},iu=class extends ru{static{C(this,`Bazel`)}id=`bazel`;name=`Bazel`;configFiles=[`.bazelrc`,`WORKSPACE`,`WORKSPACE.bazel`,`BUILD.bazel`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},au=class extends ru{static{C(this,`Buck`)}id=`buck`;name=`Buck`;configFiles=[`.buckconfig`,`BUCK`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},ou=class extends ru{static{C(this,`Gradle`)}id=`gradle`;name=`Gradle`;configFiles=[`build.gradle`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},su=class extends ru{static{C(this,`Lage`)}id=`lage`;name=`Lage`;configFiles=[`lage.config.js`]},cu=class extends ru{static{C(this,`Lerna`)}id=`lerna`;name=`Lerna`;configFiles=[`lerna.json`];logo={default:`/logos/lerna/light.svg`,light:`/logos/lerna/light.svg`,dark:`/logos/lerna/dark.svg`}},lu=class extends ru{static{C(this,`Moon`)}id=`moon`;name=`MoonRepo`;configFiles=[`.moon`];async detect(){let e=await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,type:`directory`,stopAt:this.project.root});if(e){let t=await this.project.getPackageJSON(e);return this.version=t.devDependencies?.[this.id],this}}},uu=class extends ru{static{C(this,`Nix`)}id=`nix`;name=`Nix`;configFiles=[`default.nix`,`shell.nix`,`release.nix`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},du=D(eo(),1),fu=C((e,t,n)=>{let r=e instanceof RegExp?pu(e,n):e,i=t instanceof RegExp?pu(t,n):t,a=r!==null&&i!=null&&mu(r,i,n);return a&&{start:a[0],end:a[1],pre:n.slice(0,a[0]),body:n.slice(a[0]+r.length,a[1]),post:n.slice(a[1]+i.length)}},`balanced`),pu=C((e,t)=>{let n=t.match(e);return n?n[0]:null},`maybeMatch`),mu=C((e,t,n)=>{let r,i,a,o,s,c=n.indexOf(e),l=n.indexOf(t,c+1),u=c;if(c>=0&&l>0){if(e===t)return[c,l];for(r=[],a=n.length;u>=0&&!s;){if(u===c)r.push(u),c=n.indexOf(e,u+1);else if(r.length===1){let e=r.pop();e!==void 0&&(s=[e,l])}else i=r.pop(),i!==void 0&&i<a&&(a=i,o=l),l=n.indexOf(t,u+1);u=c<l&&c>=0?c:l}r.length&&o!==void 0&&(s=[a,o])}return s},`range`),hu=`\0SLASH`+Math.random()+`\0`,gu=`\0OPEN`+Math.random()+`\0`,_u=`\0CLOSE`+Math.random()+`\0`,vu=`\0COMMA`+Math.random()+`\0`,yu=`\0PERIOD`+Math.random()+`\0`,bu=new RegExp(hu,`g`),xu=new RegExp(gu,`g`),Su=new RegExp(_u,`g`),Cu=new RegExp(vu,`g`),wu=new RegExp(yu,`g`),Tu=/\\\\/g,Eu=/\\{/g,Du=/\\}/g,Ou=/\\,/g,ku=/\\\./g,Au=1e5;function ju(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}C(ju,`numeric`);function Mu(e){return e.replace(Tu,hu).replace(Eu,gu).replace(Du,_u).replace(Ou,vu).replace(ku,yu)}C(Mu,`escapeBraces`);function Nu(e){return e.replace(bu,`\\`).replace(xu,`{`).replace(Su,`}`).replace(Cu,`,`).replace(wu,`.`)}C(Nu,`unescapeBraces`);function Pu(e){if(!e)return[``];let t=[],n=fu(`{`,`}`,e);if(!n)return e.split(`,`);let{pre:r,body:i,post:a}=n,o=r.split(`,`);o[o.length-1]+=`{`+i+`}`;let s=Pu(a);return a.length&&(o[o.length-1]+=s.shift(),o.push.apply(o,s)),t.push.apply(t,o),t}C(Pu,`parseCommaParts`);function Fu(e,t={}){if(!e)return[];let{max:n=Au}=t;return e.slice(0,2)===`{}`&&(e=`\\{\\}`+e.slice(2)),Bu(Mu(e),n,!0).map(Nu)}C(Fu,`expand`);function Iu(e){return`{`+e+`}`}C(Iu,`embrace`);function Lu(e){return/^-?0\d/.test(e)}C(Lu,`isPadded`);function Ru(e,t){return e<=t}C(Ru,`lte`);function zu(e,t){return e>=t}C(zu,`gte`);function Bu(e,t,n){let r=[],i=fu(`{`,`}`,e);if(!i)return[e];let a=i.pre,o=i.post.length?Bu(i.post,t,!1):[``];if(/\$$/.test(i.pre))for(let e=0;e<o.length&&e<t;e++){let t=a+`{`+i.body+`}`+o[e];r.push(t)}else{let s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=s||c,u=i.body.indexOf(`,`)>=0;if(!l&&!u)return i.post.match(/,(?!,).*\}/)?(e=i.pre+`{`+i.body+_u+i.post,Bu(e,t,!0)):[e];let d;if(l)d=i.body.split(/\.\./);else if(d=Pu(i.body),d.length===1&&d[0]!==void 0&&(d=Bu(d[0],t,!1).map(Iu),d.length===1))return o.map(e=>i.pre+d[0]+e);let f;if(l&&d[0]!==void 0&&d[1]!==void 0){let e=ju(d[0]),t=ju(d[1]),n=Math.max(d[0].length,d[1].length),r=d.length===3&&d[2]!==void 0?Math.max(Math.abs(ju(d[2])),1):1,i=Ru;t<e&&(r*=-1,i=zu);let a=d.some(Lu);f=[];for(let o=e;i(o,t);o+=r){let e;if(c)e=String.fromCharCode(o),e===`\\`&&(e=``);else if(e=String(o),a){let t=n-e.length;if(t>0){let n=Array(t+1).join(`0`);e=o<0?`-`+n+e.slice(1):n+e}}f.push(e)}}else{f=[];for(let e=0;e<d.length;e++)f.push.apply(f,Bu(d[e],t,!1))}for(let e=0;e<f.length;e++)for(let i=0;i<o.length&&r.length<t;i++){let t=a+f[e]+o[i];(!n||l||t)&&r.push(t)}}return r}C(Bu,`expand_`);var Vu=1024*64,Hu=C(e=>{if(typeof e!=`string`)throw TypeError(`invalid pattern`);if(e.length>Vu)throw TypeError(`pattern is too long`)},`assertValidPattern`),Uu={"[:alnum:]":[`\\p{L}\\p{Nl}\\p{Nd}`,!0],"[:alpha:]":[`\\p{L}\\p{Nl}`,!0],"[:ascii:]":[`\\x00-\\x7f`,!1],"[:blank:]":[`\\p{Zs}\\t`,!0],"[:cntrl:]":[`\\p{Cc}`,!0],"[:digit:]":[`\\p{Nd}`,!0],"[:graph:]":[`\\p{Z}\\p{C}`,!0,!0],"[:lower:]":[`\\p{Ll}`,!0],"[:print:]":[`\\p{C}`,!0],"[:punct:]":[`\\p{P}`,!0],"[:space:]":[`\\p{Z}\\t\\r\\n\\v\\f`,!0],"[:upper:]":[`\\p{Lu}`,!0],"[:word:]":[`\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}`,!0],"[:xdigit:]":[`A-Fa-f0-9`,!1]},Wu=C(e=>e.replace(/[[\]\\-]/g,`\\$&`),`braceEscape`),Gu=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regexpEscape`),Ku=C(e=>e.join(``),`rangesToString`),qu=C((e,t)=>{let n=t;if(e.charAt(n)!==`[`)throw Error(`not in a brace expression`);let r=[],i=[],a=n+1,o=!1,s=!1,c=!1,l=!1,u=n,d=``;WHILE:for(;a<e.length;){let t=e.charAt(a);if((t===`!`||t===`^`)&&a===n+1){l=!0,a++;continue}if(t===`]`&&o&&!c){u=a+1;break}if(o=!0,t===`\\`&&!c){c=!0,a++;continue}if(t===`[`&&!c){for(let[t,[o,c,l]]of Object.entries(Uu))if(e.startsWith(t,a)){if(d)return[`$.`,!1,e.length-n,!0];a+=t.length,l?i.push(o):r.push(o),s||=c;continue WHILE}}if(c=!1,d){t>d?r.push(Wu(d)+`-`+Wu(t)):t===d&&r.push(Wu(t)),d=``,a++;continue}if(e.startsWith(`-]`,a+1)){r.push(Wu(t+`-`)),a+=2;continue}if(e.startsWith(`-`,a+1)){d=t,a+=2;continue}r.push(Wu(t)),a++}if(u<a)return[``,!1,0,!1];if(!r.length&&!i.length)return[`$.`,!1,e.length-n,!0];if(i.length===0&&r.length===1&&/^\\?.$/.test(r[0])&&!l)return[Gu(r[0].length===2?r[0].slice(-1):r[0]),!1,u-n,!1];let f=`[`+(l?`^`:``)+Ku(r)+`]`,p=`[`+(l?``:`^`)+Ku(i)+`]`;return[r.length&&i.length?`(`+f+`|`+p+`)`:r.length?f:p,s,u-n,!0]},`parseClass`),Ju=C((e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^/\\])\]/g,`$1$2`).replace(/\\([^/])/g,`$1`):t?e.replace(/\[([^/\\{}])\]/g,`$1`):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,`$1$2`).replace(/\\([^/{}])/g,`$1`),`unescape`),Yu,Xu=new Set([`!`,`?`,`+`,`*`,`@`]),Zu=C(e=>Xu.has(e),`isExtglobType`),Qu=C(e=>Zu(e.type),`isExtglobAST`),$u=new Map([[`!`,[`@`]],[`?`,[`?`,`@`]],[`@`,[`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`]]]),ed=new Map([[`!`,[`?`]],[`@`,[`?`]],[`+`,[`?`,`*`]]]),td=new Map([[`!`,[`?`,`@`]],[`?`,[`?`,`@`]],[`@`,[`?`,`@`]],[`*`,[`*`,`+`,`?`,`@`]],[`+`,[`+`,`@`,`?`,`*`]]]),nd=new Map([[`!`,new Map([[`!`,`@`]])],[`?`,new Map([[`*`,`*`],[`+`,`*`]])],[`@`,new Map([[`!`,`!`],[`?`,`?`],[`@`,`@`],[`*`,`*`],[`+`,`+`]])],[`+`,new Map([[`?`,`*`],[`*`,`*`]])]]),rd=`(?!(?:^|/)\\.\\.?(?:$|/))`,id=`(?!\\.)`,ad=new Set([`[`,`.`]),od=new Set([`..`,`.`]),sd=new Set(`().*{}+?[]^$\\!`),cd=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regExpEscape`),ld=`[^/]`,ud=ld+`*?`,dd=ld+`+?`,fd=0,pd=class{static{C(this,`AST`)}type;#e;#t;#n=!1;#r=[];#i;#a;#o;#s=!1;#c;#l;#u=!1;id=++fd;get depth(){return(this.#i?.depth??-1)+1}[Symbol.for(`nodejs.util.inspect.custom`)](){return{"@@type":`AST`,id:this.id,type:this.type,root:this.#e.id,parent:this.#i?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(e,t,n={}){this.type=e,e&&(this.#t=!0),this.#i=t,this.#e=this.#i?this.#i.#e:this,this.#c=this.#e===this?n:this.#e.#c,this.#o=this.#e===this?[]:this.#e.#o,e===`!`&&!this.#e.#s&&this.#o.push(this),this.#a=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let e of this.#r)if(typeof e!=`string`&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#l===void 0?this.type?this.#l=this.type+`(`+this.#r.map(e=>String(e)).join(`|`)+`)`:this.#l=this.#r.map(e=>String(e)).join(``):this.#l}#d(){if(this!==this.#e)throw Error(`should only call on root`);if(this.#s)return this;this.toString(),this.#s=!0;let e;for(;e=this.#o.pop();){if(e.type!==`!`)continue;let t=e,n=t.#i;for(;n;){for(let r=t.#a+1;!n.type&&r<n.#r.length;r++)for(let t of e.#r){if(typeof t==`string`)throw Error(`string part in extglob AST??`);t.copyIn(n.#r[r])}t=n,n=t.#i}}return this}push(...e){for(let t of e)if(t!==``){if(typeof t!=`string`&&!(t instanceof Yu&&t.#i===this))throw Error(`invalid part: `+t);this.#r.push(t)}}toJSON(){let e=this.type===null?this.#r.slice().map(e=>typeof e==`string`?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#i?.type===`!`)&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#a===0)return!0;let e=this.#i;for(let t=0;t<this.#a;t++){let n=e.#r[t];if(!(n instanceof Yu&&n.type===`!`))return!1}return!0}isEnd(){if(this.#e===this||this.#i?.type===`!`)return!0;if(!this.#i?.isEnd())return!1;if(!this.type)return this.#i?.isEnd();let e=this.#i?this.#i.#r.length:0;return this.#a===e-1}copyIn(e){typeof e==`string`?this.push(e):this.push(e.clone(this))}clone(e){let t=new Yu(this.type,e);for(let e of this.#r)t.copyIn(e);return t}static#f(e,t,n,r,i){let a=r.maxExtglobRecursion??2,o=!1,s=!1,c=-1,l=!1;if(t.type===null){let u=n,d=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,d+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),d+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,d+=n;continue}if(!r.noext&&Zu(n)&&e.charAt(u)===`(`&&i<=a){t.push(d),d=``;let a=new Yu(n,t);u=Yu.#f(e,a,u,r,i+1),t.push(a);continue}d+=n}return t.push(d),u}let u=n+1,d=new Yu(null,t),f=[],p=``;for(;u<e.length;){let n=e.charAt(u++);if(o||n===`\\`){o=!o,p+=n;continue}if(s){u===c+1?(n===`^`||n===`!`)&&(l=!0):n===`]`&&!(u===c+2&&l)&&(s=!1),p+=n;continue}else if(n===`[`){s=!0,c=u,l=!1,p+=n;continue}if(!r.noext&&Zu(n)&&e.charAt(u)===`(`&&(i<=a||t&&t.#h(n))){let a=t&&t.#h(n)?0:1;d.push(p),p=``;let o=new Yu(n,d);d.push(o),u=Yu.#f(e,o,u,r,i+a);continue}if(n===`|`){d.push(p),p=``,f.push(d),d=new Yu(null,t);continue}if(n===`)`)return p===``&&t.#r.length===0&&(t.#u=!0),d.push(p),p=``,t.push(...f,d),u;p+=n}return t.type=null,t.#t=void 0,t.#r=[e.substring(n-1)],u}#p(e){return this.#m(e,ed)}#m(e,t=$u){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null)return!1;let n=e.#r[0];return!n||typeof n!=`object`||n.type===null?!1:this.#h(n.type,t)}#h(e,t=td){return!!t.get(this.type)?.includes(e)}#g(e,t){let n=e.#r[0],r=new Yu(null,n,this.options);r.#r.push(``),n.push(r),this.#_(e,t)}#_(e,t){let n=e.#r[0];this.#r.splice(t,1,...n.#r);for(let e of n.#r)typeof e==`object`&&(e.#i=this);this.#l=void 0}#v(e){return!!nd.get(this.type)?.has(e)}#y(e){if(!e||typeof e!=`object`||e.type!==null||e.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let t=e.#r[0];return!t||typeof t!=`object`||t.type===null?!1:this.#v(t.type)}#b(e){let t=nd.get(this.type),n=e.#r[0],r=t?.get(n.type);if(!r)return!1;this.#r=n.#r;for(let e of this.#r)typeof e==`object`&&(e.#i=this);this.type=r,this.#l=void 0,this.#u=!1}static fromGlob(e,t={}){let n=new Yu(null,void 0,t);return Yu.#f(e,n,0,t,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,n,r,i]=this.toRegExpSource();if(!(r||this.#t||this.#c.nocase&&!this.#c.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return n;let a=(this.#c.nocase?`i`:``)+(i?`u`:``);return Object.assign(RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#c}toRegExpSource(e){let t=e??!!this.#c.dot;if(this.#e===this&&(this.#x(),this.#d()),!Qu(this)){let n=this.isStart()&&this.isEnd()&&!this.#r.some(e=>typeof e!=`string`),r=this.#r.map(t=>{let[r,i,a,o]=typeof t==`string`?Yu.#C(t,this.#t,n):t.toRegExpSource(e);return this.#t=this.#t||a,this.#n=this.#n||o,r}).join(``),i=``;if(this.isStart()&&typeof this.#r[0]==`string`&&!(this.#r.length===1&&od.has(this.#r[0]))){let n=ad,a=t&&n.has(r.charAt(0))||r.startsWith(`\\.`)&&n.has(r.charAt(2))||r.startsWith(`\\.\\.`)&&n.has(r.charAt(4)),o=!t&&!e&&n.has(r.charAt(0));i=a?rd:o?id:``}let a=``;return this.isEnd()&&this.#e.#s&&this.#i?.type===`!`&&(a=`(?:$|\\/)`),[i+r+a,Ju(r),this.#t=!!this.#t,this.#n]}let n=this.type===`*`||this.type===`+`,r=this.type===`!`?`(?:(?!(?:`:`(?:`,i=this.#S(t);if(this.isStart()&&this.isEnd()&&!i&&this.type!==`!`){let e=this.toString(),t=this;return t.#r=[e],t.type=null,t.#t=void 0,[e,Ju(this.toString()),!1,!1]}let a=!n||e||t||!id?``:this.#S(!0);a===i&&(a=``),a&&(i=`(?:${i})(?:${a})*?`);let o=``;if(this.type===`!`&&this.#u)o=(this.isStart()&&!t?id:``)+dd;else{let n=this.type===`!`?`))`+(this.isStart()&&!t&&!e?id:``)+ud+`)`:this.type===`@`?`)`:this.type===`?`?`)?`:this.type===`+`&&a?`)`:this.type===`*`&&a?`)?`:`)${this.type}`;o=r+i+n}return[o,Ju(i),this.#t=!!this.#t,this.#n]}#x(){if(Qu(this)){let e=0,t=!1;do{t=!0;for(let e=0;e<this.#r.length;e++){let n=this.#r[e];typeof n==`object`&&(n.#x(),this.#m(n)?(t=!1,this.#_(n,e)):this.#p(n)?(t=!1,this.#g(n,e)):this.#y(n)&&(t=!1,this.#b(n)))}}while(!t&&++e<10)}else for(let e of this.#r)typeof e==`object`&&e.#x();this.#l=void 0}#S(e){return this.#r.map(t=>{if(typeof t==`string`)throw Error(`string type in extglob ast??`);let[n,r,i,a]=t.toRegExpSource(e);return this.#n=this.#n||a,n}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join(`|`)}static#C(e,t,n=!1){let r=!1,i=``,a=!1,o=!1;for(let s=0;s<e.length;s++){let c=e.charAt(s);if(r){r=!1,i+=(sd.has(c)?`\\`:``)+c;continue}if(c===`*`){if(o)continue;o=!0,i+=n&&/^[*]+$/.test(e)?dd:ud,t=!0;continue}else o=!1;if(c===`\\`){s===e.length-1?i+=`\\\\`:r=!0;continue}if(c===`[`){let[n,r,o,c]=qu(e,s);if(o){i+=n,a||=r,s+=o-1,t||=c;continue}}if(c===`?`){i+=ld,t=!0;continue}i+=cd(c)}return[i,Ju(e),!!t,a]}};Yu=pd;var md=C((e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,`[$&]`):e.replace(/[?*()[\]\\{}]/g,`\\$&`):t?e.replace(/[?*()[\]]/g,`[$&]`):e.replace(/[?*()[\]\\]/g,`\\$&`),`escape`),hd=C((e,t,n={})=>(Hu(t),!n.nocomment&&t.charAt(0)===`#`?!1:new Kd(t,n).match(e)),`minimatch`),gd=/^\*+([^+@!?*[(]*)$/,_d=C(e=>t=>!t.startsWith(`.`)&&t.endsWith(e),`starDotExtTest`),vd=C(e=>t=>t.endsWith(e),`starDotExtTestDot`),yd=C(e=>(e=e.toLowerCase(),t=>!t.startsWith(`.`)&&t.toLowerCase().endsWith(e)),`starDotExtTestNocase`),bd=C(e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),`starDotExtTestNocaseDot`),xd=/^\*+\.\*+$/,Sd=C(e=>!e.startsWith(`.`)&&e.includes(`.`),`starDotStarTest`),Cd=C(e=>e!==`.`&&e!==`..`&&e.includes(`.`),`starDotStarTestDot`),wd=/^\.\*+$/,Td=C(e=>e!==`.`&&e!==`..`&&e.startsWith(`.`),`dotStarTest`),Ed=/^\*+$/,Dd=C(e=>e.length!==0&&!e.startsWith(`.`),`starTest`),Od=C(e=>e.length!==0&&e!==`.`&&e!==`..`,`starTestDot`),kd=/^\?+([^+@!?*[(]*)?$/,Ad=C(([e,t=``])=>{let n=Pd([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},`qmarksTestNocase`),jd=C(([e,t=``])=>{let n=Fd([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n},`qmarksTestNocaseDot`),Md=C(([e,t=``])=>{let n=Fd([e]);return t?e=>n(e)&&e.endsWith(t):n},`qmarksTestDot`),Nd=C(([e,t=``])=>{let n=Pd([e]);return t?e=>n(e)&&e.endsWith(t):n},`qmarksTest`),Pd=C(([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(`.`)},`qmarksTestNoExt`),Fd=C(([e])=>{let t=e.length;return e=>e.length===t&&e!==`.`&&e!==`..`},`qmarksTestNoExtDot`),Id=typeof process==`object`&&process?typeof process.env==`object`&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:`posix`,Ld={win32:{sep:`\\`},posix:{sep:`/`}};hd.sep=Id===`win32`?Ld.win32.sep:Ld.posix.sep;var Rd=Symbol(`globstar **`);hd.GLOBSTAR=Rd;var zd=`[^/]*?`,Bd=`(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?`,Vd=`(?:(?!(?:\\/|^)\\.).)*?`;hd.filter=C((e,t={})=>n=>hd(n,e,t),`filter`);var Hd=C((e,t={})=>Object.assign({},e,t),`ext`);hd.defaults=C(e=>{if(!e||typeof e!=`object`||!Object.keys(e).length)return hd;let t=hd;return Object.assign(C((n,r,i={})=>t(n,r,Hd(e,i)),`m`),{Minimatch:class extends t.Minimatch{static{C(this,`Minimatch`)}constructor(t,n={}){super(t,Hd(e,n))}static defaults(n){return t.defaults(Hd(e,n)).Minimatch}},AST:class extends t.AST{static{C(this,`AST`)}constructor(t,n,r={}){super(t,n,Hd(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,Hd(e,r))}},unescape:C((n,r={})=>t.unescape(n,Hd(e,r)),`unescape`),escape:C((n,r={})=>t.escape(n,Hd(e,r)),`escape`),filter:C((n,r={})=>t.filter(n,Hd(e,r)),`filter`),defaults:C(n=>t.defaults(Hd(e,n)),`defaults`),makeRe:C((n,r={})=>t.makeRe(n,Hd(e,r)),`makeRe`),braceExpand:C((n,r={})=>t.braceExpand(n,Hd(e,r)),`braceExpand`),match:C((n,r,i={})=>t.match(n,r,Hd(e,i)),`match`),sep:t.sep,GLOBSTAR:Rd})},`defaults`);var Ud=C((e,t={})=>(Hu(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:Fu(e,{max:t.braceExpandMax})),`braceExpand`);hd.braceExpand=Ud,hd.makeRe=C((e,t={})=>new Kd(e,t).makeRe(),`makeRe`),hd.match=C((e,t,n={})=>{let r=new Kd(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e},`match`);var Wd=/[?*]|[+@!]\(.*?\)|\[|\]/,Gd=C(e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,`\\$&`),`regExpEscape`),Kd=class{static{C(this,`Minimatch`)}options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){Hu(e),t||={},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||Id,this.isWindows=this.platform===`win32`,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,`/`)),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot===void 0?!!(this.isWindows&&this.nocase):t.windowsNoMagicRoot,this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!=`string`)return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)===`#`){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(e=>this.slashSplit(e));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map((e,t,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){let t=e[0]===``&&e[1]===``&&(e[2]===`?`||!Wd.test(e[2]))&&!Wd.test(e[3]),n=/^[a-z]:/i.test(e[0]);if(t)return[...e.slice(0,4),...e.slice(4).map(e=>this.parse(e))];if(n)return[e[0],...e.slice(1).map(e=>this.parse(e))]}return e.map(e=>this.parse(e))});if(this.debug(this.pattern,r),this.set=r.filter(e=>e.indexOf(!1)===-1),this.isWindows)for(let e=0;e<this.set.length;e++){let t=this.set[e];t[0]===``&&t[1]===``&&this.globParts[e][2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3])&&(t[2]=`?`)}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let t of e)for(let e=0;e<t.length;e++)t[e]===`**`&&(t[e]=`*`);let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):e=t>=1?this.levelOneOptimize(e):this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(e=>{let t=-1;for(;(t=e.indexOf(`**`,t+1))!==-1;){let n=t;for(;e[n+1]===`**`;)n++;n!==t&&e.splice(t,n-t)}return e})}levelOneOptimize(e){return e.map(e=>(e=e.reduce((e,t)=>{let n=e[e.length-1];return t===`**`&&n===`**`?e:t===`..`&&n&&n!==`..`&&n!==`.`&&n!==`**`?(e.pop(),e):(e.push(t),e)},[]),e.length===0?[``]:e))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let n=1;n<e.length-1;n++){let r=e[n];n===1&&r===``&&e[0]===``||(r===`.`||r===``)&&(t=!0,e.splice(n,1),n--)}e[0]===`.`&&e.length===2&&(e[1]===`.`||e[1]===``)&&(t=!0,e.pop())}let n=0;for(;(n=e.indexOf(`..`,n+1))!==-1;){let r=e[n-1];r&&r!==`.`&&r!==`..`&&r!==`**`&&!(this.isWindows&&/^[a-z]:$/i.test(r))&&(t=!0,e.splice(n-1,2),n-=2)}}while(t);return e.length===0?[``]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let n of e){let r=-1;for(;(r=n.indexOf(`**`,r+1))!==-1;){let i=r;for(;n[i+1]===`**`;)i++;i>r&&n.splice(r+1,i-r);let a=n[r+1],o=n[r+2],s=n[r+3];if(a!==`..`||!o||o===`.`||o===`..`||!s||s===`.`||s===`..`)continue;t=!0,n.splice(r,1);let c=n.slice(0);c[r]=`**`,e.push(c),r--}if(!this.preserveMultipleSlashes){for(let e=1;e<n.length-1;e++){let r=n[e];e===1&&r===``&&n[0]===``||(r===`.`||r===``)&&(t=!0,n.splice(e,1),e--)}n[0]===`.`&&n.length===2&&(n[1]===`.`||n[1]===``)&&(t=!0,n.pop())}let i=0;for(;(i=n.indexOf(`..`,i+1))!==-1;){let e=n[i-1];if(e&&e!==`.`&&e!==`..`&&e!==`**`){t=!0;let e=i===1&&n[i+1]===`**`?[`.`]:[];n.splice(i-1,2,...e),n.length===0&&n.push(``),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let n=t+1;n<e.length;n++){let r=this.partsMatch(e[t],e[n],!this.preserveMultipleSlashes);if(r){e[t]=[],e[n]=r;break}}return e.filter(e=>e.length)}partsMatch(e,t,n=!1){let r=0,i=0,a=[],o=``;for(;r<e.length&&i<t.length;)if(e[r]===t[i])a.push(o===`b`?t[i]:e[r]),r++,i++;else if(n&&e[r]===`**`&&t[i]===e[r+1])a.push(e[r]),r++;else if(n&&t[i]===`**`&&e[r]===t[i+1])a.push(t[i]),i++;else if(e[r]===`*`&&t[i]&&(this.options.dot||!t[i].startsWith(`.`))&&t[i]!==`**`){if(o===`b`)return!1;o=`a`,a.push(e[r]),r++,i++}else if(t[i]===`*`&&e[r]&&(this.options.dot||!e[r].startsWith(`.`))&&e[r]!==`**`){if(o===`a`)return!1;o=`b`,a.push(t[i]),r++,i++}else return!1;return e.length===t.length&&a}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,n=0;for(let r=0;r<e.length&&e.charAt(r)===`!`;r++)t=!t,n++;n&&(this.pattern=e.slice(n)),this.negate=t}matchOne(e,t,n=!1){let r=0,i=0;if(this.isWindows){let n=typeof e[0]==`string`&&/^[a-z]:$/i.test(e[0]),a=!n&&e[0]===``&&e[1]===``&&e[2]===`?`&&/^[a-z]:$/i.test(e[3]),o=typeof t[0]==`string`&&/^[a-z]:$/i.test(t[0]),s=!o&&t[0]===``&&t[1]===``&&t[2]===`?`&&typeof t[3]==`string`&&/^[a-z]:$/i.test(t[3]),c=a?3:n?0:void 0,l=s?3:o?0:void 0;if(typeof c==`number`&&typeof l==`number`){let[n,a]=[e[c],t[l]];n.toLowerCase()===a.toLowerCase()&&(t[l]=n,i=l,r=c)}}let{optimizationLevel:a=1}=this.options;return a>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(Rd)?this.#e(e,t,n,r,i):this.#n(e,t,n,r,i)}#e(e,t,n,r,i){let a=t.indexOf(Rd,i),o=t.lastIndexOf(Rd),[s,c,l]=n?[t.slice(i,a),t.slice(a+1),[]]:[t.slice(i,a),t.slice(a+1,o),t.slice(o+1)];if(s.length){let t=e.slice(r,r+s.length);if(!this.#n(t,s,n,0,0))return!1;r+=s.length,i+=s.length}let u=0;if(l.length){if(l.length+r>e.length)return!1;let t=e.length-l.length;if(this.#n(e,l,n,t,0))u=l.length;else{if(e[e.length-1]!==``||r+l.length===e.length||(t--,!this.#n(e,l,n,t,0)))return!1;u=l.length+1}}if(!c.length){let t=!!u;for(let n=r;n<e.length-u;n++){let r=String(e[n]);if(t=!0,r===`.`||r===`..`||!this.options.dot&&r.startsWith(`.`))return!1}return n||t}let d=[[[],0]],f=d[0],p=0,m=[0];for(let e of c)e===Rd?(m.push(p),f=[[],0],d.push(f)):(f[0].push(e),p++);let h=d.length-1,g=e.length-u;for(let e of d)e[1]=g-(m[h--]+e[0].length);return!!this.#t(e,d,r,0,n,0,!!u)}#t(e,t,n,r,i,a,o){let s=t[r];if(!s){for(let t=n;t<e.length;t++){o=!0;let n=e[t];if(n===`.`||n===`..`||!this.options.dot&&n.startsWith(`.`))return!1}return o}let[c,l]=s;for(;n<=l;){if(this.#n(e.slice(0,n+c.length),c,i,n,0)&&a<this.maxGlobstarRecursion){let s=this.#t(e,t,n+c.length,r+1,i,a+1,o);if(s!==!1)return s}let s=e[n];if(s===`.`||s===`..`||!this.options.dot&&s.startsWith(`.`))return!1;n++}return i||null}#n(e,t,n,r,i){let a,o,s,c;for(a=r,o=i,c=e.length,s=t.length;a<c&&o<s;a++,o++){this.debug(`matchOne loop`);let n=t[o],r=e[a];if(this.debug(t,n,r),n===!1||n===Rd)return!1;let i;if(typeof n==`string`?(i=r===n,this.debug(`string match`,n,r,i)):(i=n.test(r),this.debug(`pattern match`,n,r,i)),!i)return!1}if(a===c&&o===s)return!0;if(a===c)return n;if(o===s)return a===c-1&&e[a]===``;throw Error(`wtf?`)}braceExpand(){return Ud(this.pattern,this.options)}parse(e){Hu(e);let t=this.options;if(e===`**`)return Rd;if(e===``)return``;let n,r=null;(n=e.match(Ed))?r=t.dot?Od:Dd:(n=e.match(gd))?r=(t.nocase?t.dot?bd:yd:t.dot?vd:_d)(n[1]):(n=e.match(kd))?r=(t.nocase?t.dot?jd:Ad:t.dot?Md:Nd)(n):(n=e.match(xd))?r=t.dot?Cd:Sd:(n=e.match(wd))&&(r=Td);let i=pd.fromGlob(e,this.options).toMMPattern();return r&&typeof i==`object`&&Reflect.defineProperty(i,`test`,{value:r}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,n=t.noglobstar?zd:t.dot?Bd:Vd,r=new Set(t.nocase?[`i`]:[]),i=e.map(e=>{let t=e.map(e=>{if(e instanceof RegExp)for(let t of e.flags.split(``))r.add(t);return typeof e==`string`?Gd(e):e===Rd?Rd:e._src});t.forEach((e,r)=>{let i=t[r+1],a=t[r-1];e!==Rd||a===Rd||(a===void 0?i!==void 0&&i!==Rd?t[r+1]=`(?:\\/|`+n+`\\/)?`+i:t[r]=n:i===void 0?t[r-1]=a+`(?:\\/|\\/`+n+`)?`:i!==Rd&&(t[r-1]=a+`(?:\\/|\\/`+n+`\\/)`+i,t[r+1]=Rd))});let i=t.filter(e=>e!==Rd);if(this.partial&&i.length>=1){let e=[];for(let t=1;t<=i.length;t++)e.push(i.slice(0,t).join(`/`));return`(?:`+e.join(`|`)+`)`}return i.join(`/`)}).join(`|`),[a,o]=e.length>1?[`(?:`,`)`]:[``,``];i=`^`+a+i+o+`$`,this.partial&&(i=`^(?:\\/|`+a+i.slice(1,-1)+o+`)$`),this.negate&&(i=`^(?!`+i+`).+$`);try{this.regexp=new RegExp(i,[...r].join(``))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split(`/`):this.isWindows&&/^\/\/[^/]+/.test(e)?[``,...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug(`match`,e,this.pattern),this.comment)return!1;if(this.empty)return e===``;if(e===`/`&&t)return!0;let n=this.options;this.isWindows&&(e=e.split(`\\`).join(`/`));let r=this.slashSplit(e);this.debug(this.pattern,`split`,r);let i=this.set;this.debug(this.pattern,`set`,i);let a=r[r.length-1];if(!a)for(let e=r.length-2;!a&&e>=0;e--)a=r[e];for(let e of i){let i=r;if(n.matchBase&&e.length===1&&(i=[a]),this.matchOne(i,e,t))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(e){return hd.defaults(e).Minimatch}};hd.AST=pd,hd.Minimatch=Kd,hd.escape=md,hd.unescape=Ju;function qd(e){let t=[],n=e.globParts[0];for(let e=0,r=n.length;e<r;e++){if(n[e].includes(`*`))return{dir:t.join(`/`),depth:n[e]};t.push(n[e])}return{dir:t.join(`/`)}}C(qd,`getDirFromPattern`);var Jd=C(async({entry:e,project:t,directory:n,packagePath:r})=>{if(e===`package.json`){let i={path:r};try{let{name:r}=await t.fs.readJSON(t.fs.join(n,e));i.name=r}catch{}return i}return null},`defaultIdentifyPackage`);async function Yd(e,t,n,r){let i={},a=e.jsWorkspaceRoot?e.fs.resolve(e.jsWorkspaceRoot,t):e.root?e.fs.resolve(e.root,t):e.fs.resolve(t);try{i=await e.fs.readDir(a,!0)}catch{}let o=Object.entries(i).map(async([i,o])=>{let s=await n({entry:i,type:o,packagePath:t,directory:a,project:e});return s?[s]:r&&o===`directory`?Yd(e,e.fs.join(t,i),n,r===`**`?r:void 0):[]});return(await Promise.all(o)).flat()}C(Yd,`findPackages`);async function Xd(e,t=[]){if(!t?.length)return[];let n=(await Promise.all(t.map(t=>{let n=new Kd(t.replace(/^!?(\.\/)/,(e,t)=>e.replace(t,``)));if(n.negate)return;let{dir:r,depth:i}=qd(n);return Yd(e,r,Jd,i)}))).flat().filter(Boolean),r=new Map;for(let i of n)for(let n of t){let t=new Kd(n.replace(/^!?(\.\/)/,(e,t)=>e.replace(t,``)));hd(i.path,t.pattern)&&(r.set(e.fs.join(i.path),i),t.negate&&r.delete(e.fs.join(i.path)))}return[...r.values()]}C(Xd,`getWorkspacePackages`);var Zd=class{static{C(this,`WorkspaceInfo`)}isRoot;rootDir;packages=[];hasPackage(e){return this.packages.findIndex(({path:t})=>t===e)>-1}getPackage(e){return this.packages.find(({path:t})=>t===e)}};async function Qd(e){let t=await e.fs.findUp(`pnpm-workspace.yaml`,{cwd:e.baseDirectory,stopAt:e.root});if(!t)return[];try{let{packages:n=[]}=(0,du.parse)(await e.fs.readFile(t));return n}catch{return[]}}C(Qd,`detectPnpmWorkspaceGlobs`);async function $d(e){return Array.isArray(e.workspaces)?e.workspaces||[]:typeof e.workspaces==`object`&&e.workspaces.packages||[]}C($d,`detectNpmOrYarnWorkspaceGlobs`);async function ef(e){if(e.packageManager===void 0)throw Error(`Please run the packageManager detection before calling the workspace detection!`);if(e.packageManager===null||await e.isRedwoodProject())return null;let t=await e.getRootPackageJSON(),n=e.packageManager.name===`pnpm`?await Qd(e):await $d(t);if(!n||n.length===0)return null;e.events.emit(`detectedWorkspaceGlobs`,void 0);let r=new Zd;r.rootDir=e.jsWorkspaceRoot,r.packages=await Xd(e,n),r.isRoot=e.baseDirectory===e.jsWorkspaceRoot;let i=e.fs.relative(e.jsWorkspaceRoot,e.baseDirectory);return!r.isRoot&&!r.hasPackage(i)?null:r}C(ef,`detectWorkspaces`);var tf=class extends ru{static{C(this,`Nx`)}id=`nx`;name=`Nx`;configFiles=[`nx.json`];logo={default:`/logos/nx/light.svg`,light:`/logos/nx/light.svg`,dark:`/logos/nx/dark.svg`};runFromRoot=!0;isIntegrated=!1;targets=new Map;async getCommands(e){let t=this.project.workspace?.getPackage(e)?.name||``,n=(this.targets.get(e)||[]).map(e=>e.name);try{let r=this.project.resolveFromPackage(e,`package.json`),i=await this.project.fs.readJSON(r,{fail:!0});n.push(...Object.keys(i?.scripts||{})),t=i.name||``}catch{}return t.length!==0&&n.length!==0?n.map(e=>{let n=`unknown`;return hc.includes(e)&&(n=`dev`),_c.includes(e)&&(n=`build`),{type:n,command:`nx run ${t}:${e}`}}):[]}async getDist(e){return this.isIntegrated?this.getOutputFromTarget(e):null}async getPort(e){if(!this.isIntegrated)return null;let t=this.targets.get(e)?.find(e=>hc.includes(e.name)),n=this.getExecutorFromTarget(t);if(!n)return null;switch(n){case`@nxtensions/astro:dev`:return 3e3;case`@nx/next:server`:case`@nrwl/next:server`:case`@nrwl/web:dev-server`:case`@nx/webpack:dev-server`:case`@angular-devkit/build-angular:dev-server`:return 4200;case`@nx-plus/vue:dev-server`:return 8e3;case`nx:run-commands`:case void 0:return null;default:return this.project.report({name:`UndetectedExecutor`,message:`Undetected executor for Nx integrated: ${n}`},{metadata:{executor:n}}),null}}async getOutputFromTarget(e){let{getProperty:t}=await import(`./dot-prop-6SRZBKHT-wIVDg_fl.mjs`);try{let n=this.targets.get(e)?.find(e=>e.name===`build`);if(n){let r=`outputs`in n?n.outputs?.[0]:n.options?.outputPath;if(r){let i=this.project.frameworks?.get(e)?.[0],a=``;return i?.id===`next`&&(a=i.build.directory),this.project.fs.join(r.replace(`{workspaceRoot}/`,``).replace(/\{(.+)\}/g,(r,i)=>t({...n,projectRoot:e},i)),a)}}}catch{}return this.project.fs.join(`dist`,e)}getExecutorFromTarget(e){return e&&(`executor`in e?e.executor:e.builder)}async detectFramework(e){let t=e.find(e=>_c.includes(e.name)),n=this.getExecutorFromTarget(t);if(!(!t||!n))switch(n){case`@nrwl/next:build`:case`@nx/next:build`:return`next`;case`@nxtensions/astro:build`:return`astro`;case`@nx-plus/vue:browser`:return`vue`;case`@angular-devkit/build-angular:browser`:return`angular`;case`@nx/webpack:webpack`:case`@nrwl/web:build`:if(t.options?.webpackConfig?.includes?.(`react`))return`react-static`;this.project.report({name:`UndetectedNrwlWeb`,message:`Undetected @nrwl/web:build framework: ${JSON.stringify({target:t},null,2)}`});return;case`@nx/cypress:cypress`:case`@nrwl/cypress:cypress`:case`@nrwl/node:build`:return;case`nx:run-commands`:case void 0:return;default:this.project.report({name:`UndetectedExecutor`,message:`Undetected executor for Nx integrated: ${n}`},{metadata:{executor:n}})}}async detectWorkspaceFile(){let e=this.project.fs;try{let{projects:t}=await e.readJSON(e.join(this.project.jsWorkspaceRoot,`workspace.json`),{fail:!0}),n=[];for(let[r,{root:i,projectType:a,architect:o}]of Object.entries(t||{})){if(!i||r.endsWith(`-e2e`)||a!==`application`)continue;let t=Object.entries(o||{}).map(([e,t])=>({...t,name:e})),s=await this.detectFramework(t);this.targets.set(e.join(i),t),n.push({name:r,path:e.join(i),forcedFramework:s})}return n}catch{}return[]}async detectProjectJson(){let e=this.project.fs;try{let{workspaceLayout:t}=await e.readJSON(e.join(this.project.jsWorkspaceRoot,`nx.json`),{fail:!0}),n=t?.appsDir?[t.appsDir]:[`apps`,`packages`],r=C(async({entry:t,directory:n,packagePath:r})=>{if(t===`project.json`&&!r.endsWith(`-e2e`))try{let{projectType:i,name:a,targets:o}=await e.readJSON(e.join(n,t));if(i===`application`){let t=Object.entries(o||{}).map(([e,t])=>({...t,name:e})),n=await this.detectFramework(t);return this.targets.set(e.join(r),t),{name:a,path:e.join(r),forcedFramework:n}}}catch{}return null},`identifyPkg`);return(await Promise.all(n.map(async e=>Yd(this.project,e,r,`*`).catch(()=>[])))).flat()}catch{}return[]}async detect(){if(await super.detect()){let e=[...await this.detectWorkspaceFile(),...await this.detectProjectJson()];return e.length&&(this.isIntegrated=!0,this.project.workspace?this.project.workspace.packages.push(...e):(this.project.workspace=new Zd,this.project.workspace.isRoot=this.project.jsWorkspaceRoot===this.project.baseDirectory,this.project.workspace.rootDir=this.project.jsWorkspaceRoot,this.project.workspace.packages=e),this.project.events.emit(`detectWorkspaces`,this.project.workspace)),this}}},nf=class extends ru{static{C(this,`PNPM`)}id=`pnpm`;name=`PNPM`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>{let r=Tc(e,n);return{type:wc(e,n)?`dev`:r?`build`:`unknown`,command:`pnpm --filter ${t}${r?`...`:``} run ${e}`}}):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`pnpm`)return this}},rf=class extends ru{static{C(this,`Yarn`)}id=`yarn`;name=`Yarn`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>({type:wc(e,n)?`dev`:Tc(e,n)?`build`:`unknown`,command:`yarn workspace ${t} ${e}`})):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`yarn`)return this}},af=class extends ru{static{C(this,`NPM`)}id=`npm`;name=`NPM`;runFromRoot=!0;async getCommands(e){let{name:t,scripts:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&Object.keys(n).length>0?Object.entries(n).map(([e,n])=>({type:wc(e,n)?`dev`:Tc(e,n)?`build`:`unknown`,command:`npm --workspace ${t} run ${e}`})):[]}async detect(){if(this.project.workspace&&this.project.packageManager?.name===`npm`)return this}},of=[iu,au,ou,su,cu,lu,uu,tf,class extends ru{static{C(this,`Pants`)}id=`pants`;name=`Pants`;configFiles=[`pants.toml`];async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}},class extends ru{static{C(this,`Rush`)}id=`rush`;name=`Rush`;configFiles=[`rush.json`];logo={default:`/logos/rush/light.svg`,light:`/logos/rush/light.svg`,dark:`/logos/rush/dark.svg`}},class extends ru{static{C(this,`Turbo`)}id=`turbo`;name=`TurboRepo`;configFiles=[`turbo.json`];runFromRoot=!0;logo={default:`/logos/turbo/light.svg`,light:`/logos/turbo/light.svg`,dark:`/logos/turbo/dark.svg`};async getCommands(e){let{scripts:t,name:n}=await this.project.fs.readJSON(this.project.resolveFromPackage(e,`package.json`));return n&&t&&Object.values(t).length?Object.keys(t).map(e=>{let t=`unknown`;return hc.includes(e)&&(t=`dev`),_c.includes(e)&&(t=`build`),{type:t,command:`turbo run ${e} --filter ${n}`}}):[]}},nf,af,rf],sf=class{static{C(this,`EventEmitter`)}callbacks=new Map;on(e,t){if(typeof t!=`function`)throw TypeError(`Callback parameter has to be a function.`);this.callbacks.has(e)||this.callbacks.set(e,[]),this.callbacks.get(e)?.push(t)}async emit(e,t){for(let n of this.callbacks.get(e)||[])await n(t)}},{default:cf}=D(fo(),1).default,lf=C(e=>e instanceof Error||typeof e==`object`&&(e.errorClass||e.name)?e:typeof e==`string`?Error(e):typeof e==`object`&&e.message?Error(e.message):Error(`Unexpected error format: ${JSON.stringify(e)}`),`normalizeError`);function uf(e,t={}){let n=lf(e);(t.client||cf).notify(n,n=>{for(let[e,r]of Object.entries(t.metadata||{}))n.addMetadata(e,r);typeof e==`object`&&`documentation_url`in e&&n.addMetadata(`Documentation URL`,e.documentation_url),n.context=t.context,n.severity=t.severity||`error`,n.context=t.context})}C(uf,`report`);var df=D(Li(),1),ff={yarn:{name:`yarn`,installCommand:`yarn install`,runCommand:`yarn run`,localPackageCommand:`yarn`,remotePackageCommand:[`yarn`,`dlx`],lockFiles:[`yarn.lock`],forceEnvironment:`NETLIFY_USE_YARN`},pnpm:{name:`pnpm`,installCommand:`pnpm install`,runCommand:`pnpm run`,localPackageCommand:`pnpm`,remotePackageCommand:[`pnpm`,`dlx`],lockFiles:[`pnpm-lock.yaml`],forceEnvironment:`NETLIFY_USE_PNPM`},npm:{name:`npm`,installCommand:`npm install`,runCommand:`npm run`,localPackageCommand:`npx`,remotePackageCommand:[`npx`],lockFiles:[`package-lock.json`]},bun:{name:`bun`,installCommand:`bun install`,runCommand:`bun run`,localPackageCommand:`bunx`,remotePackageCommand:[`bunx`],lockFiles:[`bun.lockb`,`bun.lock`]}};function pf(e){let t=e.getEnv(`npm_config_user_agent`);if(t!==void 0){if(t.includes(`yarn`))return`yarn`;if(t.includes(`pnpm`))return`pnpm`;if(t.includes(`bun`))return`bun`;if(t.includes(`npm`))return`npm`}}C(pf,`sniffUserAgent`);var mf=Object.values(ff).reduce((e,t)=>t.lockFiles.reduce((e,n)=>({...e,[n]:t}),e),{}),hf=C(async(e,t)=>{let n=t?.enableUserAgentSniffing?pf(e):void 0;try{let t=await e.fs.findUpMultiple(`package.json`,{cwd:e.baseDirectory,stopAt:e.root});if(!t.length)return n?ff[n]:null;for(let n of t){let{packageManager:t}=await e.fs.readJSON(n);if(t){let[e,n]=t.split(`@`);if(ff[e]){let t=ff[e];return t.version=(0,df.parse)(n)||void 0,t}}}for(let t of Object.values(ff))if(t.forceEnvironment&&e.getEnv(t.forceEnvironment)===`true`)return t;let r=await e.fs.findUp(Object.keys(mf),{cwd:e.baseDirectory,stopAt:e.root});if(r){let t=mf[e.fs.basename(r)];if(!(t.forceEnvironment&&e.getEnv(t.forceEnvironment)===`false`))return t}}catch(t){e.report(t)}return n?ff[n]:ff.npm},`detectPackageManager`),gf=class{static{C(this,`LangRuntime`)}project;id;name;configFiles=[];constructor(e){this.project=e}async detect(){if(await this.project.fs.findUp(this.configFiles,{cwd:this.project.baseDirectory,stopAt:this.project.root}))return this}toJSON(){return{id:this.id,name:this.name}}},_f=class extends gf{static{C(this,`Brew`)}id=`brew`;name=`Brew`;configFiles=[`Brewfile.netlify`]},vf=class extends gf{static{C(this,`Bun`)}id=`bun`;name=`Bun`;configFiles=[`bun.lock`,`bun.lockb`,`bunfig.toml`]},yf=class extends gf{static{C(this,`Emacs`)}id=`emacs`;name=`Emacs`;configFiles=[`Cask`]},bf=class extends gf{static{C(this,`Dotnet`)}id=`dotnet`;name=`Dotnet`;configFiles=[`Program.cs`,`appsettings.json`]},xf=class extends gf{static{C(this,`Erlang`)}id=`erlang`;name=`Erlang`;configFiles=[`rebar.config`,`rebar.lock`]},Sf=class extends gf{static{C(this,`Go`)}id=`go`;name=`Go`;configFiles=[`go.mod`,`.go-version`,`go.work`]},Cf=class extends gf{static{C(this,`Java`)}id=`java`;name=`Java`;configFiles=[`project.clj`,`build.boot`]},wf=class extends gf{static{C(this,`Node`)}id=`node`;name=`NodeJS`;configFiles=[`.node-version`,`.nvmrc`,`package.json`]},Tf=class extends gf{static{C(this,`Php`)}id=`php`;name=`Php`;configFiles=[`composer.json`]},Ef=class extends gf{static{C(this,`Python`)}id=`python`;name=`Python`;configFiles=[`requirements.txt`,`Pipfile`]},Df=[wf,class extends gf{static{C(this,`Ruby`)}id=`ruby`;name=`Ruby`;configFiles=[`.ruby-version`,`Gemfile.lock`,`Gemfile`]},_f,vf,bf,yf,xf,Sf,Cf,Tf,class extends gf{static{C(this,`Rust`)}id=`rust`;name=`Rust`;configFiles=[`Cargo.toml`,`Cargo.lock`]},class extends gf{static{C(this,`Swift`)}id=`swift`;name=`Swift`;configFiles=[`.swift-version`,`Package.swift`]},Ef];async function Of(e,t,n){let r=t.buildSystems[0],i={...e};if(n&&r){let t=await r.getCommands?.(n)||[],a=t.find(e=>e.type===`build`),o=t.find(e=>e.type===`dev`),s=await r.getDist?.(n),c=await r.getPort?.(n);i.name=`${r.name} + ${e.name} ${n}`,a&&(i.buildCommand=a.command),o&&(i.devCommand=o.command),s&&(i.dist=s),c!=null&&(i.frameworkPort=c),r.runFromRoot&&a&&o&&(i.baseDirectory=``)}return i}C(Of,`applyBuildSystemOverrides`);async function kf(e,t,n){let r=e.getDevCommands(),i=e.getBuildCommands(),a={name:e.name,buildCommand:i[0],devCommand:r[0],frameworkPort:e.dev?.port,dist:t.fs.join(n,e.build.directory),env:e.env||{},plugins_from_config_file:[],plugins_recommended:e.plugins||[],framework:{id:e.id,name:e.name},baseDirectory:n,packagePath:n,pollingStrategies:e.dev?.pollingStrategies?.map(({name:e})=>e)||[]};return e.dev?.clearPublishDirectory!==void 0&&(a.clearPublishDirectory=e.dev.clearPublishDirectory),n?.length&&t.workspace?.isRoot&&(a.dist=t.fs.join(n,e.build.directory)),Of(a,t,n)}C(kf,`getSettings`);async function Af(e,t){if(e.frameworks===void 0)throw Error(`Please run the framework detection before calling the build settings!`);let n=t??e.relativeBaseDirectory??``,r=[];if(e.logger.debug(`[get-build-settings.ts] getBuildSettings for baseDirectory: ${n}`),e.workspace&&e.workspace.packages.length>0&&n.length===0)for(let[t,n]of[...e.frameworks.entries()])for(let i of n)r.push(kf(i,e,t));else for(let t of e.frameworks.get(n)||[])r.push(kf(t,e,n));return(await Promise.all(r)).filter(Boolean)}C(Af,`getBuildSettings`);var jf=class{static{C(this,`Project`)}fs;root;baseDirectory;relativeBaseDirectory;packageManager;jsWorkspaceRoot;workspace;buildSystems;settings;frameworks;runtimes;#e={};bugsnag;logger;reportFn=uf;events=new sf;_nodeVersion=null;setNodeVersion(e){return this._nodeVersion=(0,nu.parse)((0,nu.coerce)(e),{loose:!0}),this}async getCurrentNodeVersion(){if(this._nodeVersion)return this._nodeVersion;let e=(0,nu.parse)((0,nu.coerce)(this.getEnv(`NODE_VERSION`)),{loose:!0});if(e)return e;let t=await this.fs.gracefullyReadFile(`.nvmrc`);if(t)return(0,nu.parse)((0,nu.coerce)(t,{loose:!0}));let n=await this.fs.gracefullyReadFile(`.node_version`);return n?(0,nu.parse)((0,nu.coerce)(n,{loose:!0})):null}async isRedwoodProject(){return await this.fs.fileExists(this.fs.resolve(this.fs.cwd,`redwood.toml`))}constructor(e,t,n){this.fs=e,this.baseDirectory=e.resolve(n||``,t===void 0?e.cwd:t),this.root=n?e.resolve(e.cwd,n):void 0,this.relativeBaseDirectory=t!==void 0&&!e.isAbsolute(t)?t:e.relative(this.root||e.cwd,this.baseDirectory),this.fs.cwd=this.baseDirectory,this.logger=e.logger}setEnvironment(e){return this.#e=e,this}setReportFn(e){return this.reportFn=e,this}setBugsnag(e){return e&&(this.bugsnag=e),this}getEnv(e){return this.#e[e]}report(e,t={}){this.fs.logger.error(e),this.reportFn(e,{metadata:{build:{baseDirectory:this.baseDirectory,root:this.root},...t.metadata||{}},context:t.context,severity:t.severity,client:this.bugsnag})}getNpmScriptCommand(e){return`${this.packageManager?.runCommand||ff.npm.runCommand} ${e}`}async getRootPackageJSON(){let e=(await this.fs.findUpMultiple(`package.json`,{cwd:this.baseDirectory,stopAt:this.root})).pop();return e?(this.jsWorkspaceRoot=this.fs.dirname(e),this.fs.readJSON(e)):{}}async getPackageJSON(e){let t=await this.fs.findUp(`package.json`,{cwd:e||this.baseDirectory,stopAt:this.root});if(t){let e=await this.fs.readJSON(t);return Object.assign(e,{pkgPath:t})}return{pkgPath:null}}resolveFromPackage(e,...t){return this.jsWorkspaceRoot?this.fs.join(this.jsWorkspaceRoot,e,...t):this.baseDirectory.endsWith(e)&&!this.workspace?.isRoot?this.fs.join(this.baseDirectory,...t):this.fs.resolve(e,...t)}async detectPackageManager(e){if(this.logger.debug(`[project.ts]: detectPackageManager`),this.packageManager!==void 0)return this.packageManager;try{return this.packageManager=await hf(this,e),await this.events.emit(`detectPackageManager`,this.packageManager),this.packageManager}catch{return null}}async detectWorkspaces(){if(this.logger.debug(`[project.ts]: detectWorkspaces`),this.workspace!==void 0)return this.workspace;await this.detectPackageManager();try{return this.workspace=await ef(this),await this.events.emit(`detectWorkspaces`,this.workspace),this.workspace}catch(e){return this.report(e),null}}async detectBuildSystem(){if(this.logger.debug(`[project.ts]: detectBuildSystem`),this.buildSystems!==void 0)return this.buildSystems;await this.detectWorkspaces();try{return this.buildSystems=(await Promise.all(of.map(e=>new e(this).detect()))).filter(Boolean),await this.events.emit(`detectBuildsystems`,this.buildSystems),this.buildSystems}catch(e){return this.report(e),[]}}async detectRuntime(){this.logger.debug(`[project.ts]: detectRuntime`);try{return this.runtimes=(await Promise.all(Df.map(e=>new e(this).detect()))).filter(Boolean),this.events.emit(`detectRuntimes`,this.runtimes),this.runtimes}catch(e){return this.report(e),[]}}async detectFrameworks(){if(this.logger.debug(`[project.ts]: detectFrameworks`),this.frameworks!==void 0)return[...this.frameworks.values()].flat();try{return await this.detectBuildSystem(),this.frameworks=new Map,this.workspace?await Promise.all(this.workspace.packages.map(async({path:e,forcedFramework:t})=>{if(t)try{let n=await tu(t,this);this.frameworks.set(e,[n])}catch{}else if(this.workspace){let t=await this.detectFrameworksInPath(this.fs.join(this.workspace.rootDir,e));this.frameworks.set(e,t)}})):this.frameworks.set(``,await this.detectFrameworksInPath()),await this.events.emit(`detectFrameworks`,this.frameworks),[...this.frameworks.values()].flat()}catch(e){return this.report(e),null}}async detectFrameworksInPath(e){this.logger.debug(`[project.ts]: detectFrameworksInPath - ${e}`);try{return Ac((await Promise.all(eu.map(t=>new t(this,e).detect()))).filter(Boolean))}catch{return[]}}async getBuildSettings(e){if(this.logger.debug(`[project.ts]: getBuildSettings`),this.settings!==void 0)return this.settings;this.settings=[];try{await this.detectFrameworks(),this.settings=await Af(this,e),await this.events.emit(`detectSettings`,this.settings)}catch(e){this.report(e)}return this.settings}},Mf=class{static{C(this,`Node`)}value;next;constructor(e){this.value=e}},Nf=class{static{C(this,`Queue`)}#e;#t;#n;constructor(){this.clear()}enqueue(e){let t=new Mf(e);this.#e?(this.#t.next=t,this.#t=t):(this.#e=t,this.#t=t),this.#n++}dequeue(){let e=this.#e;if(e)return this.#e=this.#e.next,this.#n--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}};function Pf(e){if(!((Number.isInteger(e)||e===1/0)&&e>0))throw TypeError("Expected `concurrency` to be a number from 1 and up");let t=new Nf,n=0,r=C(()=>{n--,t.size>0&&t.dequeue()()},`next`),i=C(async(e,t,i)=>{n++;let a=(async()=>e(...i))();t(a);try{await a}catch{}r()},`run`),a=C((r,a,o)=>{t.enqueue(i.bind(void 0,r,a,o)),(async()=>{await Promise.resolve(),n<e&&t.size>0&&t.dequeue()()})()},`enqueue`),o=C((e,...t)=>new Promise(n=>{a(e,n,t)}),`generator`);return Object.defineProperties(o,{activeCount:{get:C(()=>n,`get`)},pendingCount:{get:C(()=>t.size,`get`)},clearQueue:{value:C(()=>{t.clear()},`value`)}}),o}C(Pf,`pLimit`);var Ff=class extends Error{static{C(this,`EndError`)}constructor(e){super(),this.value=e}},If=C(async(e,t)=>t(await e),`testElement`),Lf=C(async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new Ff(t[0]);return!1},`finder`);async function Rf(e,t,{concurrency:n=1/0,preserveOrder:r=!0}={}){let i=Pf(n),a=[...e].map(e=>[e,i(If,e,t)]),o=Pf(r?1:1/0);try{await Promise.all(a.map(e=>o(Lf,e)))}catch(e){if(e instanceof Ff)return e.value;throw e}}C(Rf,`pLocate`);var zf={directory:`isDirectory`,file:`isFile`};function Bf(e){if(!Object.hasOwnProperty.call(zf,e))throw Error(`Invalid type specified: ${e}`)}C(Bf,`checkType`);var Vf=C((e,t)=>t[zf[e]](),`matchType`),Hf=C(e=>e instanceof URL?Fe(e):e,`toPath`);async function Uf(e,{cwd:t=B.cwd(),type:n=`file`,allowSymlinks:r=!0,concurrency:i,preserveOrder:a}={}){Bf(n),t=Hf(t);let o=r?ye.stat:ye.lstat;return Rf(e,async e=>{try{return Vf(n,await o(R.resolve(t,e)))}catch{return!1}},{concurrency:i,preserveOrder:a})}C(Uf,`locatePath`);function Wf(e){return e instanceof URL?Fe(e):e}C(Wf,`toPath`);var Gf=Symbol(`findUpStop`);async function Kf(e,t={}){let n=R.resolve(Wf(t.cwd)??``),{root:r}=R.parse(n),i=R.resolve(n,Wf(t.stopAt??r)),a=t.limit??1/0,o=[e].flat(),s=C(async t=>{if(typeof e!=`function`)return Uf(o,t);let n=await e(t.cwd);return typeof n==`string`?Uf([n],t):n},`runMatcher`),c=[];for(;;){let e=await s({...t,cwd:n});if(e===Gf||(e&&c.push(R.resolve(n,e)),n===i||c.length>=a))break;n=R.dirname(n)}return c}C(Kf,`findUpMultiple`);async function qf(e,t={}){return(await Kf(e,{...t,limit:1}))[0]}C(qf,`findUp`);var Jf=class extends pc{static{C(this,`NodeFS`)}constructor(){super(),this.cwd=process.cwd()}getEnvironment(){return`node`}isAbsolute(e){return fe(e)}dirname(e){return de(e)}resolve(...e){return he(...e)}relative(e,t){return me(e,t)}basename(e){return ue(e)}join(...e){return pe(...e)}async fileExists(e){try{return await ge.stat(he(e)),!0}catch{return!1}}async readDir(e,t){try{return t?(await ge.readdir(he(e),{withFileTypes:!0})).reduce((e,t)=>({...e,[t.name]:t.isDirectory()?`directory`:`file`}),{}):ge.readdir(he(e))}catch{return[]}}async readFile(e){return(await ge.readFile(he(e),`utf-8`)).toString()}findUp(e,t={}){return qf(e,t)}findUpMultiple(e,t={}){return Kf(e,t)}},Yf=10,Xf=C((e=0)=>t=>`\x1B[${t+e}m`,`wrapAnsi16`),Zf=C((e=0)=>t=>`\x1B[${38+e};5;${t}m`,`wrapAnsi256`),Qf=C((e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,`wrapAnsi16m`),Q={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(Q.modifier);var $f=Object.keys(Q.color),ep=Object.keys(Q.bgColor);[...$f,...ep];function tp(){let e=new Map;for(let[t,n]of Object.entries(Q)){for(let[t,r]of Object.entries(n))Q[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=Q[t],e.set(r[0],r[1]);Object.defineProperty(Q,t,{value:n,enumerable:!1})}return Object.defineProperty(Q,`codes`,{value:e,enumerable:!1}),Q.color.close=`\x1B[39m`,Q.bgColor.close=`\x1B[49m`,Q.color.ansi=Xf(),Q.color.ansi256=Zf(),Q.color.ansi16m=Qf(),Q.bgColor.ansi=Xf(Yf),Q.bgColor.ansi256=Zf(Yf),Q.bgColor.ansi16m=Qf(Yf),Object.defineProperties(Q,{rgbToAnsi256:{value(e,t,n){return e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:C(e=>Q.rgbToAnsi256(...Q.hexToRgb(e)),`value`),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:C((e,t,n)=>Q.ansi256ToAnsi(Q.rgbToAnsi256(e,t,n)),`value`),enumerable:!1},hexToAnsi:{value:C(e=>Q.ansi256ToAnsi(Q.hexToAnsi256(e)),`value`),enumerable:!1}}),Q}C(tp,`assembleStyles`);var np=tp();function rp(e,t=globalThis.Deno?globalThis.Deno.args:B.argv){let n=e.startsWith(`-`)?``:e.length===1?`-`:`--`,r=t.indexOf(n+e),i=t.indexOf(`--`);return r!==-1&&(i===-1||r<i)}C(rp,`hasFlag`);var{env:$}=B,ip;rp(`no-color`)||rp(`no-colors`)||rp(`color=false`)||rp(`color=never`)?ip=0:(rp(`color`)||rp(`colors`)||rp(`color=true`)||rp(`color=always`))&&(ip=1);function ap(){if(`FORCE_COLOR`in $)return $.FORCE_COLOR===`true`?1:$.FORCE_COLOR===`false`?0:$.FORCE_COLOR.length===0?1:Math.min(Number.parseInt($.FORCE_COLOR,10),3)}C(ap,`envForceColor`);function op(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}C(op,`translateLevel`);function sp(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=ap();r!==void 0&&(ip=r);let i=n?ip:r;if(i===0)return 0;if(n){if(rp(`color=16m`)||rp(`color=full`)||rp(`color=truecolor`))return 3;if(rp(`color=256`))return 2}if(`TF_BUILD`in $&&`AGENT_NAME`in $)return 1;if(e&&!t&&i===void 0)return 0;let a=i||0;if($.TERM===`dumb`)return a;if(B.platform===`win32`){let e=Ee.release().split(`.`);return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if(`CI`in $)return`GITHUB_ACTIONS`in $||`GITEA_ACTIONS`in $?3:[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`,`BUILDKITE`,`DRONE`].some(e=>e in $)||$.CI_NAME===`codeship`?1:a;if(`TEAMCITY_VERSION`in $)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($.TEAMCITY_VERSION);if($.COLORTERM===`truecolor`||$.TERM===`xterm-kitty`)return 3;if(`TERM_PROGRAM`in $){let e=Number.parseInt(($.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch($.TERM_PROGRAM){case`iTerm.app`:return e>=3?3:2;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test($.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($.TERM)||`COLORTERM`in $?1:a}C(sp,`_supportsColor`);function cp(e,t={}){return op(sp(e,{streamIsTTY:e&&e.isTTY,...t}))}C(cp,`createSupportsColor`);var lp={stdout:cp({isTTY:Ae.isatty(1)}),stderr:cp({isTTY:Ae.isatty(2)})};function up(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,o=``;do o+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return o+=e.slice(a),o}C(up,`stringReplaceAll`);function dp(e,t,n,r){let i=0,a=``;do{let o=e[r-1]===`\r`;a+=e.slice(i,o?r-1:r)+t+(o?`\r
|
|
491
491
|
`:`
|
|
492
492
|
`)+n,i=r+1,r=e.indexOf(`
|
|
493
493
|
`,i)}while(r!==-1);return a+=e.slice(i),a}C(dp,`stringEncaseCRLFWithFirstIndex`);var{stdout:fp,stderr:pp}=lp,mp=Symbol(`GENERATOR`),hp=Symbol(`STYLER`),gp=Symbol(`IS_EMPTY`),_p=[`ansi`,`ansi`,`ansi256`,`ansi16m`],vp=Object.create(null),yp=C((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let n=fp?fp.level:0;e.level=t.level===void 0?n:t.level},`applyOptions`),bp=C(e=>{let t=C((...e)=>e.join(` `),`chalk`);return yp(t,e),Object.setPrototypeOf(t,xp.prototype),t},`chalkFactory`);function xp(e){return bp(e)}C(xp,`createChalk`),Object.setPrototypeOf(xp.prototype,Function.prototype);for(let[e,t]of Object.entries(np))vp[e]={get(){let n=Tp(this,wp(t.open,t.close,this[hp]),this[gp]);return Object.defineProperty(this,e,{value:n}),n}};vp.visible={get(){let e=Tp(this,this[hp],!0);return Object.defineProperty(this,`visible`,{value:e}),e}};var Sp=C((e,t,n,...r)=>e===`rgb`?t===`ansi16m`?np[n].ansi16m(...r):t===`ansi256`?np[n].ansi256(np.rgbToAnsi256(...r)):np[n].ansi(np.rgbToAnsi(...r)):e===`hex`?Sp(`rgb`,t,n,...np.hexToRgb(...r)):np[n][e](...r),`getModelAnsi`);for(let e of[`rgb`,`hex`,`ansi256`]){vp[e]={get(){let{level:t}=this;return function(...n){let r=wp(Sp(e,_p[t],`color`,...n),np.color.close,this[hp]);return Tp(this,r,this[gp])}}};let t=`bg`+e[0].toUpperCase()+e.slice(1);vp[t]={get(){let{level:t}=this;return function(...n){let r=wp(Sp(e,_p[t],`bgColor`,...n),np.bgColor.close,this[hp]);return Tp(this,r,this[gp])}}}}var Cp=Object.defineProperties(()=>{},{...vp,level:{enumerable:!0,get(){return this[mp].level},set(e){this[mp].level=e}}}),wp=C((e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},`createStyler`),Tp=C((e,t,n)=>{let r=C((...e)=>Ep(r,e.length===1?``+e[0]:e.join(` `)),`builder`);return Object.setPrototypeOf(r,Cp),r[mp]=e,r[hp]=t,r[gp]=n,r},`createBuilder`),Ep=C((e,t)=>{if(e.level<=0||!t)return e[gp]?``:t;let n=e[hp];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes(`\x1B`))for(;n!==void 0;)t=up(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{h as e}from"./oauth-
|
|
2
|
+
import{h as e}from"./oauth-B0ETkNcX.mjs";import{r as t}from"./auth-MQEamPN9.mjs";import{t as n}from"./output-DrpYYfnB.mjs";import{n as r,t as i}from"./progress-CsHIt3Tp.mjs";import{n as a,t as o}from"./body-parser-C-c9gfH1.mjs";import{n as s}from"./input-validation-Bav2M9F-.mjs";import{a as c,n as l}from"./prompt-DdegNPpg.mjs";import{t as u}from"./cli-types-BsTty22w.mjs";function d(e){return e.option(`argo-smart-routing`,{type:`boolean`,description:`Enables Argo Smart Routing for this application.
|
|
3
3
|
Notes: Only available for TCP or UDP applications with traffic_type set to "direct".`,default:!1}).option(`dns-name`,{type:`string`,description:`The name of the DNS record associated with the application.`}).option(`dns-type`,{type:`string`,description:`The type of DNS record associated with the application.`,choices:[`CNAME`,`ADDRESS`]}).option(`edge-ips-connectivity`,{type:`string`,description:`The IP versions supported for inbound connections on Spectrum anycast IPs.`,choices:[`all`,`ipv4`,`ipv6`]}).option(`edge-ips-type`,{type:`string`,description:`The type of edge IP configuration specified. Dynamically allocated edge IPs use Spectrum anycast IPs in accordance with the connectivity you specify. Only valid with CNAME DNS names.`,choices:[`dynamic`,`static`]}).option(`edge-ips-ips`,{type:`string`,array:!0,description:`The array of customer owned IPs we broadcast via anycast for this hostname and application.`}).option(`ip-firewall`,{type:`boolean`,description:`Enables IP Access Rules for this application.
|
|
4
4
|
Notes: Only available for TCP applications.`,default:!1}).option(`origin-direct`,{type:`string`,array:!0,description:`List of origin IP addresses. Array may contain multiple IP addresses for load balancing.`}).option(`origin-dns-name`,{type:`string`,description:`The name of the DNS record associated with the origin.`}).option(`origin-dns-ttl`,{type:`number`,description:`The TTL of our resolution of your DNS record in seconds.`}).option(`origin-dns-type`,{type:`string`,description:`The type of DNS record associated with the origin. "" is used to specify a combination of A/AAAA records.`,choices:[`A`,`AAAA`,`SRV`]}).option(`protocol`,{type:`string`,description:'The port configuration at Cloudflare\'s edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`.'}).option(`proxy-protocol`,{type:`string`,description:`Enables Proxy Protocol to the origin. Refer to [Enable Proxy protocol](https://developers.cloudflare.com/spectrum/getting-started/proxy-protocol/) for implementation details on PROXY Protocol V1, PROXY Protocol V2, and Simple Proxy Protocol.`,choices:[`off`,`v1`,`v2`,`simple`],default:`off`}).option(`tls`,{type:`string`,description:`The type of TLS termination associated with the application.`,choices:[`off`,`flexible`,`full`,`strict`],default:`off`}).option(`traffic-type`,{type:`string`,description:`Determines how data travels from the edge to your origin. When set to "direct", Spectrum will send traffic directly to your origin, and the application's type is derived from the \`protocol\`. When set to "http" or "https", Spectrum will apply Cloudflare's HTTP/HTTPS features as it sends traffic to your origin, and the application type matches this property exactly.`,choices:[`direct`,`http`,`https`],default:`direct`}).option(`virtual-network-id`,{type:`string`,description:`Optional UUID of a virtual network for routing origin traffic through tunnel virtual networks.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).conflicts(`edge-ips-connectivity`,[`edge-ips-ips`]).conflicts(`edge-ips-ips`,[`edge-ips-connectivity`])}const f={command:`create`,describe:`Creates a new Spectrum application from a configuration using a name for the origin.`,builder:d,handler:async l=>{if(l.dryRun){r({command:`cf spectrum apps create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${l.zone??l.zoneId??`<zone>`}/spectrum/apps`,pathParams:{"zone-id":String(l.zone??l[`zone-id`]??``)},bodyKind:`json`,body:l.body===void 0?o({argo_smart_routing:l[`argo-smart-routing`],dns:{name:s(l[`dns-name`],`dns-name`,`text`),type:s(l[`dns-type`],`dns-type`,`text`)},edge_ips:{connectivity:s(l[`edge-ips-connectivity`],`edge-ips-connectivity`,`text`),type:s(l[`edge-ips-type`],`edge-ips-type`,`text`),ips:l[`edge-ips-ips`]},ip_firewall:l[`ip-firewall`],origin_direct:l[`origin-direct`],origin_dns:{name:s(l[`origin-dns-name`],`origin-dns-name`,`text`),ttl:l[`origin-dns-ttl`],type:s(l[`origin-dns-type`],`origin-dns-type`,`text`)},protocol:s(l.protocol,`protocol`,`text`),proxy_protocol:s(l[`proxy-protocol`],`proxy-protocol`,`text`),tls:s(l.tls,`tls`,`text`),traffic_type:s(l[`traffic-type`],`traffic-type`,`text`),virtual_network_id:s(l[`virtual-network-id`],`virtual-network-id`,`text`)}):a(l.body)});return}let u=await t(l),d=await e({zone:l.zone},u,{quiet:l.quiet});if(l.zoneId=d,l.body){let e=a(l.body);n(await i(`Creating`,async()=>u.spectrum.apps.create({body:e,zone_id:d})),{successLabel:`Created`});return}l.protocol===void 0&&(l.protocol=await c(`protocol`,'The port configuration at Cloudflare\'s edge. May specify a single port, for example `"tcp/1000"`, or a range of ports, for example `"tcp/1000-2000"`.'));let f=o({argo_smart_routing:l[`argo-smart-routing`],dns:{name:s(l[`dns-name`],`dns-name`,`text`),type:s(l[`dns-type`],`dns-type`,`text`)},edge_ips:{connectivity:s(l[`edge-ips-connectivity`],`edge-ips-connectivity`,`text`),type:s(l[`edge-ips-type`],`edge-ips-type`,`text`),ips:l[`edge-ips-ips`]},ip_firewall:l[`ip-firewall`],origin_direct:l[`origin-direct`],origin_dns:{name:s(l[`origin-dns-name`],`origin-dns-name`,`text`),ttl:l[`origin-dns-ttl`],type:s(l[`origin-dns-type`],`origin-dns-type`,`text`)},protocol:s(l.protocol,`protocol`,`text`),proxy_protocol:s(l[`proxy-protocol`],`proxy-protocol`,`text`),tls:s(l.tls,`tls`,`text`),traffic_type:s(l[`traffic-type`],`traffic-type`,`text`),virtual_network_id:s(l[`virtual-network-id`],`virtual-network-id`,`text`)});n(await i(`Creating`,async()=>u.spectrum.apps.create({body:f,zone_id:d})),{successLabel:`Created`})}};function p(e){return e.positional(`app-id`,{type:`string`,description:`App ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const m={command:`delete <app-id>`,describe:`Deletes a previously existing application.`,builder:p,handler:async a=>{if(a.dryRun){r({command:`cf spectrum apps delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/spectrum/apps/${a[`app-id`]==null?`<app-id>`:encodeURIComponent(String(a[`app-id`]))}`,pathParams:{"app-id":String(a[`app-id`]??``),"zone-id":String(a.zone??a[`zone-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});if(a.zoneId=s,!await l({force:!!a.force})){process.stderr.write(`Aborted.
|
|
5
5
|
`);return}n(await i(`Deleting`,async()=>o.spectrum.apps.delete({zone_id:s,app_id:a[`app-id`]})),{successLabel:`Deleted`})}};function h(e){return e.positional(`app-id`,{type:`string`,description:`App ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`get <app-id>`,describe:`Gets the application configuration of a specific application inside a zone.`,builder:h,handler:async a=>{if(a.dryRun){r({command:`cf spectrum apps get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/spectrum/apps/${a[`app-id`]==null?`<app-id>`:encodeURIComponent(String(a[`app-id`]))}`,pathParams:{"app-id":String(a[`app-id`]??``),"zone-id":String(a.zone??a[`zone-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.spectrum.apps.get({zone_id:s,app_id:a[`app-id`]})),{successLabel:`Loaded`})}};function _(e){return e.option(`page`,{type:`number`,description:"Page number of paginated results. This parameter is required in order to use other pagination parameters. If included in the query, `result_info` will be present in the response."}).option(`per-page`,{type:`number`,description:`Sets the maximum number of results per page.`}).option(`direction`,{type:`string`,description:`Sets the direction by which results are ordered.`,choices:[`asc`,`desc`]}).option(`order`,{type:`string`,description:`Application field by which results are ordered.`,choices:[`protocol`,`app_id`,`created_on`,`modified_on`,`dns`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`list`,describe:`Retrieves a list of currently existing Spectrum applications inside a zone.`,builder:u(_),handler:async a=>{let o={page:a.page,per_page:a[`per-page`],direction:a.direction,order:a.order};if(a.dryRun){r({command:`cf spectrum apps list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/spectrum/apps`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.spectrum.apps.list({zone_id:c,...o})),{successLabel:`Loaded`})}};function y(e){return e.positional(`app-id`,{type:`string`,description:`App ID`,demandOption:!0}).option(`argo-smart-routing`,{type:`boolean`,description:`Enables Argo Smart Routing for this application.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{h as e}from"./oauth-
|
|
2
|
+
import{h as e}from"./oauth-B0ETkNcX.mjs";import{r as t}from"./auth-MQEamPN9.mjs";import{t as n}from"./output-DrpYYfnB.mjs";import{n as r,t as i}from"./progress-CsHIt3Tp.mjs";import{n as a}from"./body-parser-C-c9gfH1.mjs";import{n as o}from"./prompt-DdegNPpg.mjs";import{t as s}from"./cli-types-BsTty22w.mjs";function c(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const l={command:`list`,describe:`Retrieves quota for all plans, as well as the current zone quota.`,builder:c,handler:async a=>{if(a.dryRun){r({command:`cf speed availabilities list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/availabilities`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.speed.availabilities.list({zone_id:s})),{successLabel:`Loaded`})}},u={command:`availabilities`,describe:`Check which speed test regions and configurations are available for your zone`,builder:e=>e.command(l).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function d(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const f={command:`list`,describe:`Lists all webpages which have been tested.`,builder:d,handler:async a=>{if(a.dryRun){r({command:`cf speed pages list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/pages`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.speed.pages.list({zone_id:s})),{successLabel:`Loaded`})}};function p(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const m={command:`create <url>`,describe:`Starts a test for a specific webpage, in a specific region.`,builder:p,handler:async o=>{if(o.dryRun){r({command:`cf speed pages tests create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${o.zone??o.zoneId??`<zone>`}/speed_api/pages/${o.url==null?`<url>`:encodeURIComponent(String(o.url))}/tests`,pathParams:{"zone-id":String(o.zone??o[`zone-id`]??``),url:String(o.url??``)},bodyKind:`json`,body:o.body===void 0?void 0:a(o.body)});return}let s=await t(o),c=await e({zone:o.zone},s,{quiet:o.quiet});if(o.zoneId=c,o.body){let e=a(o.body);n(await i(`Creating`,async()=>s.speed.pages.tests.create({...e,zone_id:c,url:o.url})),{successLabel:`Created`});return}n(await i(`Creating`,async()=>s.speed.pages.tests.create({zone_id:c,url:o.url})),{successLabel:`Created`})}};function h(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const g={command:`delete <url>`,describe:`Deletes all tests for a specific webpage from a specific region. Deleted tests are still counted as part of the quota.`,builder:s(h),handler:async a=>{let s={region:a.region};if(a.dryRun){r({command:`cf speed pages tests delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/pages/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}/tests`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:s,bodyKind:`none`});return}let c=await t(a),l=await e({zone:a.zone},c,{quiet:a.quiet});if(a.zoneId=l,!await o({force:!!a.force})){process.stderr.write(`Aborted.
|
|
3
3
|
`);return}n(await i(`Deleting`,async()=>c.speed.pages.tests.delete({zone_id:l,url:a.url,...s})),{successLabel:`Deleted`})}};function _(e){return e.positional(`test-id`,{type:`string`,description:`Test ID`,demandOption:!0}).option(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`get <test-id>`,describe:`Retrieves the result of a specific test.`,builder:_,handler:async a=>{if(a.dryRun){r({command:`cf speed pages tests get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/pages/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}/tests/${a[`test-id`]==null?`<test-id>`:encodeURIComponent(String(a[`test-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``),"test-id":String(a[`test-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.speed.pages.tests.get({zone_id:s,url:a.url,test_id:a[`test-id`]})),{successLabel:`Loaded`})}};function y(e){return e.option(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`page`,{type:`number`,description:`Page`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const b={command:`list`,describe:`Test history (list of tests) for a specific webpage.`,builder:s(y),handler:async a=>{let o={page:a.page,per_page:a[`per-page`],region:a.region};if(a.dryRun){r({command:`cf speed pages tests list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/pages/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}/tests`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.speed.pages.tests.list({zone_id:c,url:a.url,...o})),{successLabel:`Loaded`})}},x={command:`tests`,describe:`Operations for pages.tests`,builder:e=>e.command(m).command(g).command(v).command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`],demandOption:!0}).option(`device-type`,{type:`string`,description:`The type of device.`,choices:[`DESKTOP`,`MOBILE`],demandOption:!0}).option(`start`,{type:`string`,description:`Start`,demandOption:!0}).option(`end`,{type:`string`,description:`End`}).option(`tz`,{type:`string`,description:`The timezone of the start and end timestamps.`,demandOption:!0}).option(`metrics`,{type:`string`,description:`A comma-separated list of metrics to include in the results.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const C={command:`trend <url>`,describe:`Lists the core web vital metrics trend over time for a specific page.`,builder:s(S),handler:async a=>{let o={region:a.region,deviceType:a[`device-type`],start:a.start,end:a.end,tz:a.tz,metrics:a.metrics};if(a.dryRun){r({command:`cf speed pages trend`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/pages/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}/trend`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.speed.pages.trend({zone_id:c,url:a.url,...o})),{successLabel:`Loaded`})}},w={command:`pages`,describe:`Tested pages with their performance history, trends, and individual test results`,builder:e=>e.command(f).command(C).command(x).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function T(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`]}).option(`frequency`,{type:`string`,description:`The frequency of the scheduled test. Defaults to WEEKLY for free plans, DAILY for paid plans.`,choices:[`DAILY`,`WEEKLY`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`create <url>`,describe:`Creates a scheduled test for a page.`,builder:s(T),handler:async a=>{let o={region:a.region,frequency:a.frequency};if(a.dryRun){r({command:`cf speed schedule create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/schedule/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Creating`,async()=>s.speed.schedule.create({zone_id:c,url:a.url,...o})),{successLabel:`Created`})}};function D(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const O={command:`delete <url>`,describe:`Deletes a scheduled test for a page.`,builder:s(D),handler:async a=>{let s={region:a.region};if(a.dryRun){r({command:`cf speed schedule delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/schedule/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:s,bodyKind:`none`});return}let c=await t(a),l=await e({zone:a.zone},c,{quiet:a.quiet});if(a.zoneId=l,!await o({force:!!a.force})){process.stderr.write(`Aborted.
|
|
4
4
|
`);return}n(await i(`Deleting`,async()=>c.speed.schedule.delete({zone_id:l,url:a.url,...s})),{successLabel:`Deleted`})}};function k(e){return e.positional(`url`,{type:`string`,description:`A URL.`,demandOption:!0}).option(`region`,{type:`string`,description:`A test region.`,choices:[`asia-east1`,`asia-northeast1`,`asia-northeast2`,`asia-south1`,`asia-southeast1`,`australia-southeast1`,`europe-north1`,`europe-southwest1`,`europe-west1`,`europe-west2`,`europe-west3`,`europe-west4`,`europe-west8`,`europe-west9`,`me-west1`,`southamerica-east1`,`us-central1`,`us-east1`,`us-east4`,`us-south1`,`us-west1`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const A={command:`get <url>`,describe:`Retrieves the test schedule for a page in a specific region.`,builder:s(k),handler:async a=>{let o={region:a.region};if(a.dryRun){r({command:`cf speed schedule get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/speed_api/schedule/${a.url==null?`<url>`:encodeURIComponent(String(a.url))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),url:String(a.url??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.speed.schedule.get({zone_id:c,url:a.url,...o})),{successLabel:`Loaded`})}},j={command:`schedule`,describe:`Scheduled recurring speed tests that automatically run at regular intervals`,builder:e=>e.command(E).command(O).command(A).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},M={command:`speed`,describe:`Observatory speed tests — run Lighthouse audits, track performance trends, and schedule recurring tests`,builder:e=>e.command(u).command(w).command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{M as default};
|