cf 0.11.0 → 0.12.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/dist/_meta/agent-context.json +3 -3
- package/dist/_meta/commands.json +149 -5
- package/dist/_meta/hand-written-commands.json +181 -5
- package/dist/{abuse-reports-sDBTV0qZ.mjs → abuse-reports-D40QFl-y.mjs} +1 -1
- package/dist/{access-DcNzuCue.mjs → access-Dl2IU1ID.mjs} +1 -1
- package/dist/{account-BX90zXn5.mjs → account-CPbieCZ4.mjs} +1 -1
- package/dist/{account-tags-Bz3JG5hI.mjs → account-tags-skfP7H8k.mjs} +1 -1
- package/dist/{accounts-DCuW3xyZ.mjs → accounts-CSgR6909.mjs} +1 -1
- package/dist/{acm-zjfShZLS.mjs → acm-CVvCTaNk.mjs} +1 -1
- package/dist/{addressing-DORQ64Ux.mjs → addressing-Uq5hEDDP.mjs} +1 -1
- package/dist/{agent-context-BgPR_aQr.mjs → agent-context-BvuDdaJb.mjs} +1 -1
- package/dist/{agent-memory-C0hAUMeC.mjs → agent-memory-BrHMIU0E.mjs} +1 -1
- package/dist/{ai-audit-DnU3vn3E.mjs → ai-audit-BoZuL84i.mjs} +1 -1
- package/dist/{ai-gateway-COOrr_Yw.mjs → ai-gateway-DE50Jem1.mjs} +1 -1
- package/dist/{ai-search-DKbN9Tyd.mjs → ai-search-Fx7NHCHB.mjs} +1 -1
- package/dist/{ai-security-C_I5lo58.mjs → ai-security-DyLbY9kv.mjs} +1 -1
- package/dist/{ai-BpEBGMT2.mjs → ai-v2fP1r0s.mjs} +1 -1
- package/dist/{alerting-4T8gmZs-.mjs → alerting-5mFZjTcD.mjs} +1 -1
- package/dist/{analytics-Bxh4TCP7.mjs → analytics-BygTfozw.mjs} +1 -1
- package/dist/{analytics_engine-fV56bjVN.mjs → analytics_engine-4L-q362P.mjs} +1 -1
- package/dist/{api-security-COk_i184.mjs → api-security-DjFsRYWx.mjs} +1 -1
- package/dist/{argo-DIRfvxvv.mjs → argo-TzXPN7tz.mjs} +1 -1
- package/dist/args-CDgWUP4J.mjs +2 -0
- package/dist/{artifacts-BBfXNfUg.mjs → artifacts-dEw2UUBV.mjs} +1 -1
- package/dist/{audit-logs-BlOrlAWe.mjs → audit-logs-CqY7zzwv.mjs} +1 -1
- package/dist/{auth-DPhNN3Ly.mjs → auth-CPLdkOC7.mjs} +1 -1
- package/dist/{auth-D3X9HYhD.mjs → auth-DY_Y2bXC.mjs} +2 -2
- package/dist/{billing-B9e4PnvN.mjs → billing-DHQuRT8S.mjs} +1 -1
- package/dist/{bot-management-D2JVeS-V.mjs → bot-management-CfqG79hF.mjs} +1 -1
- package/dist/{botnet-feed-BTzTYs5d.mjs → botnet-feed-BOeNnDoH.mjs} +1 -1
- package/dist/{brand-protection-C5Q6Gpw9.mjs → brand-protection-DYttrKIM.mjs} +1 -1
- package/dist/{browser-extension-u5uA0Lwk.mjs → browser-extension-CTUCdgfn.mjs} +1 -1
- package/dist/{browser-run-CHGOCTdG.mjs → browser-run-373D4e1i.mjs} +1 -1
- package/dist/build-D0ir_S70.mjs +2 -0
- package/dist/{cache-C6V7PbQM.mjs → cache-DJXBmc3w.mjs} +1 -1
- package/dist/{calls-Bye8Tyy-.mjs → calls-COO0Eoz1.mjs} +1 -1
- package/dist/{certificate-authorities-B-U_e6JJ.mjs → certificate-authorities-DbHLmKbd.mjs} +1 -1
- package/dist/{cf-Ds4JFovl.mjs → cf-yPz_IqW6.mjs} +11 -11
- package/dist/{chunk-LQW53VED-22IYZovK.mjs → chunk-LQW53VED-9MACsvSG.mjs} +25 -25
- package/dist/{chunk-QBZBEHZB-CKzQKcIp.mjs → chunk-QBZBEHZB-yeyhVUeD.mjs} +1 -1
- package/dist/{client-certificates-3RrC-6LG.mjs → client-certificates-RBRqYP3f.mjs} +1 -1
- package/dist/{client-side-security-DIdKvRMT.mjs → client-side-security-HOmA37et.mjs} +1 -1
- package/dist/{cloud-connector-CL1jPQud.mjs → cloud-connector-C7hw1c1f.mjs} +1 -1
- package/dist/{cloudforce-one-DULeqLkR.mjs → cloudforce-one-DLOj76q4.mjs} +1 -1
- package/dist/command-BV87D4tR.mjs +2 -0
- package/dist/{completions-CqgGKRAC.mjs → completions-BnD46cXe.mjs} +1 -1
- package/dist/config.d.mts +305 -332
- package/dist/config.mjs +1 -1
- package/dist/{connector-interrupts-CXlLObDv.mjs → connector-interrupts-DY-z_LrH.mjs} +1 -1
- package/dist/{connector-telemetry-events-BrYX4ig4.mjs → connector-telemetry-events-DCXmcAc9.mjs} +1 -1
- package/dist/{connector-telemetry-snapshots-BdeBQYcM.mjs → connector-telemetry-snapshots-D8GNuzx3.mjs} +1 -1
- package/dist/{connectors-BQwyBJ4_.mjs → connectors-fEOn-J_i.mjs} +1 -1
- package/dist/containers-BDBsEs7-.mjs +58 -0
- package/dist/{content-scan-DNzhXYkY.mjs → content-scan-Cmj9--XY.mjs} +1 -1
- package/dist/{csamScanner-CFq5s1Q3.mjs → csamScanner-BRXyMCyH.mjs} +1 -1
- package/dist/{ct-alerting-CH6UmsGQ.mjs → ct-alerting-9AvYys-f.mjs} +1 -1
- package/dist/{custom-certificates-DnG73Wg2.mjs → custom-certificates-C5qrlyhb.mjs} +1 -1
- package/dist/{custom-csrs-bhClr2SU.mjs → custom-csrs-BgOnTbBW.mjs} +1 -1
- package/dist/{custom-hostnames-C0eiGvG9.mjs → custom-hostnames-CbQD9aYo.mjs} +1 -1
- package/dist/{custom-nameservers-CVMhhLm6.mjs → custom-nameservers-2ZajBkRC.mjs} +1 -1
- package/dist/{custom-pages-DTINMR30.mjs → custom-pages-Buki_Cb8.mjs} +1 -1
- package/dist/{d1-sKdExJYF.mjs → d1-n2in0cSF.mjs} +1 -1
- package/dist/{data-security-mV3a6UfW.mjs → data-security-DzOQMkv3.mjs} +1 -1
- package/dist/{dcv-delegation-dBu3jdRw.mjs → dcv-delegation-BTP9LCOm.mjs} +1 -1
- package/dist/deploy-BUSz35vq.mjs +2 -0
- package/dist/deploy-input-BvD9aRP1.mjs +2 -0
- package/dist/dev-DY_DquQx.mjs +4 -0
- package/dist/{diagnostics-CJV6qWUA.mjs → diagnostics-BvHV8kQb.mjs} +1 -1
- package/dist/{directory-B5zCMusW.mjs → directory-BeiSyg8A.mjs} +1 -1
- package/dist/{dispatch-namespaces-Dg5lu5xX.mjs → dispatch-namespaces-Dp8Jjpwy.mjs} +1 -1
- package/dist/dist-BBx1io2f.mjs +2 -0
- package/dist/dist-Cb9TJ2VV.mjs +9 -0
- package/dist/dist-DV7LR38l.mjs +387 -0
- package/dist/dist-DvizctjW.mjs +48 -0
- package/dist/{dls-t0hnIe_P.mjs → dls-BwoU29mS.mjs} +1 -1
- package/dist/{dns-C8FC2hbh.mjs → dns-DISAfuzj.mjs} +1 -1
- package/dist/{dns-firewall-CuhhUm55.mjs → dns-firewall-wBcCx_ua.mjs} +1 -1
- package/dist/dry-run-ILZRVpnp.mjs +2 -0
- package/dist/{durable-objects-BLrgM3Cw.mjs → durable-objects-DhDL3San.mjs} +1 -1
- package/dist/{email-auth-BmYrl0pO.mjs → email-auth-BROqK6-C.mjs} +1 -1
- package/dist/{email-routing-CF3_Z957.mjs → email-routing-BZXHDAOO.mjs} +1 -1
- package/dist/{email-security-F7OYcMkZ.mjs → email-security-DVumybrk.mjs} +1 -1
- package/dist/{email-sending-EyU3WvGQ.mjs → email-sending-CDQ3_wyz.mjs} +1 -1
- package/dist/{fieldExtractors-Cno37T2m.mjs → fieldExtractors-Cy1rxHEF.mjs} +1 -1
- package/dist/{firewall-8YWWy4iB.mjs → firewall-C0g5X7Zd.mjs} +1 -1
- package/dist/{flagship-C4x0l-8J.mjs → flagship-fFBiZUz-.mjs} +1 -1
- package/dist/{fraud-HR_SdUx3.mjs → fraud-CjIETOaM.mjs} +1 -1
- package/dist/{google-tag-gateway-BdcS0WnX.mjs → google-tag-gateway-hPa5IHUx.mjs} +1 -1
- package/dist/{healthchecks-4qOvjrTN.mjs → healthchecks-CoycpTf9.mjs} +1 -1
- package/dist/{hostnames-DehdYOMz.mjs → hostnames-x_Yezxpr.mjs} +1 -1
- package/dist/{hyperdrive-3gD3hn70.mjs → hyperdrive-BlfrTwSq.mjs} +1 -1
- package/dist/{iam-DR72hmii.mjs → iam-Bk7K_PPO.mjs} +1 -1
- package/dist/{images-CeKc5JPh.mjs → images-BAEFb9q1.mjs} +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{intel-DtFix9WL.mjs → intel-DDkyJVaP.mjs} +1 -1
- package/dist/interactive-CRnq-B5I.mjs +11 -0
- package/dist/{interactive-C7M55Wxx.mjs → interactive-cytQzL94.mjs} +1 -1
- package/dist/{ips-CtWCjXAN.mjs → ips-DU0ti0i0.mjs} +1 -1
- package/dist/{keyless-certificates-Dk24yQFz.mjs → keyless-certificates-E1P9jBTb.mjs} +1 -1
- package/dist/{keys-BmhG6Kn1.mjs → keys-DqldTZqH.mjs} +1 -1
- package/dist/{kv-BuVPAuZP.mjs → kv-CcfCfnwq.mjs} +1 -1
- package/dist/{leaked-credential-checks-XcZmt1I-.mjs → leaked-credential-checks-CqmKaEbd.mjs} +1 -1
- package/dist/{load-balancers-CylN-l7n.mjs → load-balancers-Dg4pDad1.mjs} +1 -1
- package/dist/{local-Be3lg_9E.mjs → local-DGiIS1uM.mjs} +1 -1
- package/dist/local-runtime--IQr44qq.mjs +2 -0
- package/dist/{logexplorer-CvRPoKbj.mjs → logexplorer-Bu2mG5rh.mjs} +1 -1
- package/dist/{logo-matches-Heuft3yF.mjs → logo-matches-CWUzxY7G.mjs} +1 -1
- package/dist/{logos-DRYjGBDq.mjs → logos-BTfdkDPi.mjs} +1 -1
- package/dist/{logpush-Dve9jOMp.mjs → logpush-BZyay3h2.mjs} +1 -1
- package/dist/{logs-SC86FE89.mjs → logs-BqF7jjQO.mjs} +1 -1
- package/dist/{magic-cloud-networking-DXzeqwX-.mjs → magic-cloud-networking-Dhd8pTyM.mjs} +1 -1
- package/dist/{magic-network-monitoring-DW0Jl74i.mjs → magic-network-monitoring-D0FnkjuN.mjs} +1 -1
- package/dist/{magic-transit-BK_3asH2.mjs → magic-transit-B5skt0G7.mjs} +1 -1
- package/dist/{managed-transforms-B6TV4qoE.mjs → managed-transforms-B6X_crcJ.mjs} +1 -1
- package/dist/{matches-Iss9Fo4R.mjs → matches-DeYaB4I0.mjs} +1 -1
- package/dist/{mcp-8wxXT6JU.mjs → mcp-ChjBiMx2.mjs} +1 -1
- package/dist/{mesh-Bf9UAS4J.mjs → mesh-DRVAFLBX.mjs} +1 -1
- package/dist/{moq-ZKMFOeVz.mjs → moq-DE7VDEFS.mjs} +1 -1
- package/dist/{mtls-certificates-DoWm6GiE.mjs → mtls-certificates-Cbc3uAkN.mjs} +1 -1
- package/dist/{network-B1lBARU9.mjs → network-CDPZNFbn.mjs} +1 -1
- package/dist/{network-interconnects-CLYIFHfU.mjs → network-interconnects-CMRs_chR.mjs} +1 -1
- package/dist/{oauth-DuEONNgC.mjs → oauth-DAa7SwkM.mjs} +4 -4
- package/dist/{oauth-clients-DgiTzLzu.mjs → oauth-clients-DAI_gcuL.mjs} +1 -1
- package/dist/{oauth-scopes-BOBRMxjm.mjs → oauth-scopes-BE6xF4_h.mjs} +1 -1
- package/dist/{observability-Jya7-zkl.mjs → observability-DnyI8rPJ.mjs} +1 -1
- package/dist/{organization-CYxYV4e0.mjs → organization-yh0mSUdI.mjs} +1 -1
- package/dist/{organizations-SacGUW44.mjs → organizations-B3aU-RCG.mjs} +1 -1
- package/dist/{origin-ca-certificates-Ph1bJGQ1.mjs → origin-ca-certificates-BaNWfVqf.mjs} +1 -1
- package/dist/{origin-post-quantum-encryption-BBLiGAGB.mjs → origin-post-quantum-encryption-CIUtQgyv.mjs} +1 -1
- package/dist/{origin-tls-client-auth-DSDgTN2X.mjs → origin-tls-client-auth-CvEpbX2Q.mjs} +1 -1
- package/dist/{page-rules-BqEyFR2c.mjs → page-rules-CzbyXbt6.mjs} +1 -1
- package/dist/{pages-CQ7ZVWk1.mjs → pages-CX8yefTI.mjs} +1 -1
- package/dist/{pay-per-crawl-BMe_3_Qj.mjs → pay-per-crawl-v4vBOMWD.mjs} +1 -1
- package/dist/{pipelines-6De2Pe2C.mjs → pipelines-BZ1KGupx.mjs} +1 -1
- package/dist/{precursor-iwK-1P_d.mjs → precursor-D42A9ay5.mjs} +1 -1
- package/dist/{progress-BqQcF5QH.mjs → progress-jYW64HY7.mjs} +1 -1
- package/dist/{project-settings-C_1-JI6Y.mjs → project-settings-BN7tL0c7.mjs} +2 -2
- package/dist/{prompt-B0sWIs9c.mjs → prompt-CyATfGUu.mjs} +1 -1
- package/dist/{public-BYCVISMH-DnMJ5Jct.mjs → public-BMg6-Hxh-DgIH5obr.mjs} +1 -1
- package/dist/{queries-c7zvnfEQ.mjs → queries-xvETUjUE.mjs} +1 -1
- package/dist/{queues-BU6y16qS.mjs → queues-CpqHDtxF.mjs} +1 -1
- package/dist/{r2-data-catalog-B-tw-JdG.mjs → r2-data-catalog-DgKmlTKR.mjs} +1 -1
- package/dist/{r2-Jo3QMahK.mjs → r2-jhmLvD1z.mjs} +1 -1
- package/dist/{radar-DIYAMEof.mjs → radar-C2J16wpX.mjs} +1 -1
- package/dist/{rate-limits-DewOcznT.mjs → rate-limits-CoH9Xma0.mjs} +1 -1
- package/dist/{raw-fetch-Cc-MjHeL.mjs → raw-fetch-CNKIypJ7.mjs} +1 -1
- package/dist/{realtimekit-cnZEVNDn.mjs → realtimekit-CDs0Z5WW.mjs} +1 -1
- package/dist/{registrar-BsWr_aPM.mjs → registrar-BI5ewTAk.mjs} +1 -1
- package/dist/{registrar-sandbox-BlcpUyIH.mjs → registrar-sandbox-al1znWMc.mjs} +1 -1
- package/dist/{registry-jifR3_Y6.mjs → registry-5-I2XLwF.mjs} +1 -1
- package/dist/{reporting--1AyTV7k.mjs → reporting-CxsdHAH3.mjs} +1 -1
- package/dist/{request-tracers-C_VX7X6-.mjs → request-tracers-DJJCncft.mjs} +1 -1
- package/dist/{resource-sharing-Br5dqr3o.mjs → resource-sharing-qQGn8AEn.mjs} +1 -1
- package/dist/{resource-tagging-C33U6T74.mjs → resource-tagging-aTtpX5e5.mjs} +1 -1
- package/dist/{rules-BfjzALMi.mjs → rules-PpsDU89Q.mjs} +1 -1
- package/dist/{rulesets-3i_1Vwt-.mjs → rulesets-DP12Aqik.mjs} +1 -1
- package/dist/{rum-CjmIckiR.mjs → rum-DxvpzJYc.mjs} +1 -1
- package/dist/{schema-1mwmslUV.mjs → schema-DlLbiOJj.mjs} +1 -1
- package/dist/{schema-flags-llLJuFFw.mjs → schema-flags-CTfQVGCs.mjs} +1 -1
- package/dist/schemas-BFCBlp_W.mjs +65 -0
- package/dist/{scim-pApmzA5B.mjs → scim-DJ4AVU20.mjs} +1 -1
- package/dist/{secrets-store-DBC9WJau.mjs → secrets-store-D6KDNo_s.mjs} +1 -1
- package/dist/{security-center-Djm06dq-.mjs → security-center-008FMs_z.mjs} +1 -1
- package/dist/{security-txt-Ci7bP4zH.mjs → security-txt-CqcfrhlN.mjs} +1 -1
- package/dist/{share-Dj-MNXrw.mjs → share-D5fzsVAJ.mjs} +1 -1
- package/dist/{shared-BJvq4DkR.mjs → shared-DlKGNPiT.mjs} +92 -142
- package/dist/{smart-shield--8EpJjrF.mjs → smart-shield-DpFscIk8.mjs} +1 -1
- package/dist/{snippets-Dyz0PH60.mjs → snippets-CCKgI2ZX.mjs} +1 -1
- package/dist/spawn-C3_tJ3RB.mjs +526 -0
- package/dist/{spectrum-rAHWz8rH.mjs → spectrum-LmdqY3ki.mjs} +1 -1
- package/dist/{speed-BKepWBXj.mjs → speed-CEK36h3A.mjs} +1 -1
- package/dist/src-CEb2fgtT.mjs +108 -0
- package/dist/{ssl-KdFiY3ev.mjs → ssl-ChHUyaQm.mjs} +1 -1
- package/dist/{startup-profile-GLNPHQ9U.mjs → startup-profile-Dpxg-MjV.mjs} +3 -3
- package/dist/{state-Cu3cItUg.mjs → state-DeX23Kmg.mjs} +1 -1
- package/dist/{stream-CKJ6Tb0M.mjs → stream-DfUSELMX.mjs} +1 -1
- package/dist/{submit-BxbKKhBn.mjs → submit-DF2G5CIz.mjs} +1 -1
- package/dist/{tags-DA8dq9fx.mjs → tags-nFJJHlLJ.mjs} +1 -1
- package/dist/{tenant-DLXw48hS.mjs → tenant-CRLw1oRU.mjs} +1 -1
- package/dist/{tenant-custom-nameservers-9G93XuvU.mjs → tenant-custom-nameservers-BvBQRDcs.mjs} +1 -1
- package/dist/{tools-x8bj9E6b.mjs → tools-j8UGEtP1.mjs} +1 -1
- package/dist/{tunnel-CNQA5Flp.mjs → tunnel-CMQeBgmb.mjs} +1 -1
- package/dist/{tunnels-CC10EOsU.mjs → tunnels-iVA3MrdS.mjs} +1 -1
- package/dist/{turnstile-CH58hnf4.mjs → turnstile-DQHP6-_b.mjs} +1 -1
- package/dist/{ui-CmnnBm_O.mjs → ui-DJFcf61J.mjs} +1 -1
- package/dist/{url-info-BpCgdUtL.mjs → url-info-BVgdb_pf.mjs} +1 -1
- package/dist/{url-normalization-BzuynEy1.mjs → url-normalization-BTcxLxIQ.mjs} +1 -1
- package/dist/{url-scanner-APIZbhB7.mjs → url-scanner-DwuDZLPk.mjs} +1 -1
- package/dist/{user-2-NGebfI.mjs → user-I_MbB_KX.mjs} +1 -1
- package/dist/{values-S_bNv819.mjs → values-S-Q7-5o8.mjs} +1 -1
- package/dist/{vectorize-Bv7feLBC.mjs → vectorize-CNZdF_0A.mjs} +1 -1
- package/dist/{waiting-rooms-Dk4LIpvm.mjs → waiting-rooms-Bo-OSsxu.mjs} +1 -1
- package/dist/{web-assets-C1UmOyzD.mjs → web-assets-tlFzKdNL.mjs} +1 -1
- package/dist/{web3-GnUocVYH.mjs → web3-CdbfoZ2x.mjs} +1 -1
- package/dist/{workers-J1-PLwdl.mjs → workers-DQ9Q7czn.mjs} +2 -2
- package/dist/{workers-builds-DCHmWOMS.mjs → workers-builds-CGRhYx-x.mjs} +1 -1
- package/dist/{workflows-CArfEI2c.mjs → workflows-BhEy-crm.mjs} +1 -1
- package/dist/{zaraz-mg2YlR3_.mjs → zaraz-DbKvA_8C.mjs} +1 -1
- package/dist/{zero-trust-DVdUPtj1.mjs → zero-trust-DrHCPVOc.mjs} +1 -1
- package/dist/{zone-DMAfrDJX.mjs → zone-D2zrbJI2.mjs} +1 -1
- package/dist/{zones-CNwxUi7I.mjs → zones-DrpxQ_-A.mjs} +1 -1
- package/package.json +9 -8
- package/dist/args-DlUhyGU0.mjs +0 -2
- package/dist/build-D0FhOj40.mjs +0 -8
- package/dist/command-C9VP3xaA.mjs +0 -2
- package/dist/containers-BrQtGiNp.mjs +0 -58
- package/dist/deploy-BL59O1O1.mjs +0 -2
- package/dist/deploy-input-Dz6q-__n.mjs +0 -2
- package/dist/dev-BDaavgH1.mjs +0 -4
- package/dist/dist-BHi7UhXO.mjs +0 -72
- package/dist/dist-BWpErtDM.mjs +0 -384
- package/dist/dry-run-DL2V6yFm.mjs +0 -2
- package/dist/local-runtime-Ce7k598H.mjs +0 -2
- package/dist/spawn-C5Z7oWdp.mjs +0 -519
- package/dist/src-gJma71Ec.mjs +0 -108
- /package/dist/{alerts-15-IW4jE.mjs → alerts-9PR5sQ_z.mjs} +0 -0
- /package/dist/{autorag-CFwRkEKw.mjs → autorag-Bevo1kIH.mjs} +0 -0
- /package/dist/{body-parser-BshbixEq.mjs → body-parser-BGVbwPeM.mjs} +0 -0
- /package/dist/{brands-BgT1vu9B.mjs → brands-C4M04Man.mjs} +0 -0
- /package/dist/{clear-BlCK85Me.mjs → clear-DS0eRXOc.mjs} +0 -0
- /package/dist/{cli-types-DAYeL_Mj.mjs → cli-types-C3nVfpSG.mjs} +0 -0
- /package/dist/{connector-telemetry-events-latest-BbpcII3_.mjs → connector-telemetry-events-latest-CKKG6_pD.mjs} +0 -0
- /package/dist/{connector-telemetry-snapshots-latest-DuCiimXl.mjs → connector-telemetry-snapshots-latest-Bv5OddJr.mjs} +0 -0
- /package/dist/{domain-info-C7LBxPBt.mjs → domain-info-BUiaGCEq.mjs} +0 -0
- /package/dist/{health-DZFfafkX.mjs → health-vX6Ml2Na.mjs} +0 -0
- /package/dist/{input-validation-QDIYu7Vb.mjs → input-validation-1esLElok.mjs} +0 -0
- /package/dist/{internal-BKHC2D1Y.mjs → internal-ROz7anul.mjs} +0 -0
- /package/dist/{live-DwCvDmaH.mjs → live-CSxvigCS.mjs} +0 -0
- /package/dist/{metadata-B5yfL0ln.mjs → metadata-DEqBUaSv.mjs} +0 -0
- /package/dist/{open-PBXRGS4R-CX8K4WYl.mjs → open-PBXRGS4R-DIiYQyU9.mjs} +0 -0
- /package/dist/{output-Ccqw2WOb.mjs → output-BqDR9h74.mjs} +0 -0
- /package/dist/{rate-limit-analytics-B8Vuu1sU.mjs → rate-limit-analytics-CgHgKjmV.mjs} +0 -0
- /package/dist/{ready-D9H2zHHI.mjs → ready-6G9zVGPJ.mjs} +0 -0
- /package/dist/{recent-submissions-BPo0J80d.mjs → recent-submissions-B3Smh-QM.mjs} +0 -0
- /package/dist/{refute-2W8NLCN4.mjs → refute-DjkmLSNe.mjs} +0 -0
- /package/dist/{resolve-B8CyM1mi.mjs → resolve-DEvdeprv.mjs} +0 -0
- /package/dist/{scan-logo-D5x6F1Y0.mjs → scan-logo-545qLcGs.mjs} +0 -0
- /package/dist/{scan-page-CWhta3x7.mjs → scan-page-DRQiVufl.mjs} +0 -0
- /package/dist/{search-DZmBQJL9.mjs → search-CXbqFoqe.mjs} +0 -0
- /package/dist/{signed-url-CQrmWgz5.mjs → signed-url-rU_nvgFA.mjs} +0 -0
- /package/dist/{submission-info-C98A0bqq.mjs → submission-info-D6PgXNQP.mjs} +0 -0
- /package/dist/{total-queries-BZoaFoDE.mjs → total-queries-XkFyu8H5.mjs} +0 -0
- /package/dist/{tracked-domains-CNHogPHx.mjs → tracked-domains-CmcRXHj_.mjs} +0 -0
- /package/dist/{verify-4e4L9IRk.mjs → verify-CM1NakP0.mjs} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{t as e}from"./local-
|
|
2
|
+
import{t as e}from"./local-DGiIS1uM.mjs";import{f as t,g as n}from"./oauth-DAa7SwkM.mjs";import{a as r,r as i}from"./auth-DY_Y2bXC.mjs";import{t as a}from"./output-BqDR9h74.mjs";import{t as o}from"./dry-run-ILZRVpnp.mjs";import{t as s}from"./progress-jYW64HY7.mjs";import{n as c,t as l}from"./body-parser-BGVbwPeM.mjs";import{n as u}from"./input-validation-1esLElok.mjs";import{i as d,n as f}from"./prompt-CyATfGUu.mjs";import{t as p}from"./cli-types-C3nVfpSG.mjs";import{n as m,t as h}from"./raw-fetch-CNKIypJ7.mjs";function g(e){return e.positional(`workflow-name`,{type:`string`,description:`Workflow name`,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 _={command:`delete <workflow-name>`,describe:`Deletes a Workflow. This only deletes the Workflow and does not delete or modify any Worker associated to this Workflow or bounded to it.`,builder:g,handler:async r=>{if(r.dryRun){o({command:`cf workflows delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();if(r.accountId=l,!await f({force:!!r.force,message:`This operation permanently deletes the Workflow.`})){process.stderr.write(`Aborted.
|
|
3
3
|
`);return}a(await s(`Deleting`,async()=>c.workflows.delete({account_id:l,workflow_name:r[`workflow-name`]})),{successLabel:`Deleted`})}};function v(e){return e.positional(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const y={command:`get <workflow-name>`,describe:`Retrieves configuration and metadata for a specific workflow.`,builder:v,handler:async r=>{if(r.dryRun){o({command:`cf workflows get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();r.accountId=l,a(await s(`Loading`,async()=>c.workflows.get({account_id:l,workflow_name:r[`workflow-name`]})),{successLabel:`Loaded`})}};function b(e){return e.positional(`workflow-name`,{type:`string`,description:`Workflow name`,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 x={command:`create <workflow-name>`,describe:`Creates multiple workflow instances in a single batch operation.`,builder:b,handler:async l=>{if(l.dryRun){o({command:`cf workflows instances batch create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${l[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(l[`workflow-name`]))}/instances/batch`,pathParams:{"workflow-name":String(l[`workflow-name`]??``)},bodyKind:`json`,body:l.body===void 0?void 0:c(l.body)});return}let u=await i(l),d=l.local?e:await t();if(l.accountId=d,l.body){let e=c(l.body);if(Array.isArray(e)&&e.length>100){let t=Math.ceil(e.length/100),n=null;for(let i=0;i<e.length;i+=100){let a=e.slice(i,i+100);n=await s(`Creating: batch ${Math.floor(i/100)+1}/${t}`,async()=>r(u,`POST`,`/accounts/${d}/workflows/${encodeURIComponent(String(l[`workflow-name`]))}/instances/batch`,{body:a}))}a(n,{successLabel:`Created`});return}a(await s(`Creating`,async()=>r(u,`POST`,`/accounts/${d}/workflows/${encodeURIComponent(String(l[`workflow-name`]))}/instances/batch`,{body:e})),{successLabel:`Created`});return}if(l.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},S={command:`batch`,describe:`Operations for instances.batch`,builder:e=>e.command(x).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function C(e){return e.positional(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`instance-id`,{type:`string`,description:"The system reserves IDs that consist of the `cf_` prefix and exactly 64 lowercase hexadecimal characters."}).option(`location-hint`,{type:`string`,description:`The location_hint field`,choices:[`wnam`,`weur`,`enam`,`eeur`,`apac`,`apac-ne`,`apac-se`,`oc`,`sam`,`afr`,`me`]}).option(`params`,{type:`string`,description:`JSON-encoded event payload passed into the new instance.`}).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 w={command:`create <workflow-name>`,describe:`Creates a new instance of a workflow, starting its execution.`,builder:C,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances`,pathParams:{"workflow-name":String(r[`workflow-name`]??``)},bodyKind:`json`,body:r.body===void 0?l({instance_id:u(r[`instance-id`],`instance-id`,`text`),location_hint:u(r[`location-hint`],`location-hint`,`text`),params:u(r.params,`params`,`json`)}):c(r.body)});return}let d=await i(r),f=r.local?e:await t();if(r.accountId=f,r.body){let e=c(r.body);a(await s(`Creating`,async()=>d.workflows.instances.create({...e,account_id:f,workflow_name:r[`workflow-name`]})),{successLabel:`Created`});return}let p=l({instance_id:u(r[`instance-id`],`instance-id`,`text`),location_hint:u(r[`location-hint`],`location-hint`,`text`),params:u(r.params,`params`,`json`)});a(await s(`Creating`,async()=>d.workflows.instances.create({...p,account_id:f,workflow_name:r[`workflow-name`]})),{successLabel:`Created`})}};function T(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,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 E={command:`delete <instance-id>`,describe:`Deletes a workflow instance and its stored state.`,builder:T,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();if(r.accountId=l,!await f({force:!!r.force})){process.stderr.write(`Aborted.
|
|
4
4
|
`);return}a(await s(`Deleting`,async()=>c.workflows.instances.delete({account_id:l,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Deleted`})}};function D(e){return e.positional(`event-type`,{type:`string`,description:`Event type`,demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const O={command:`send <event-type>`,describe:`Sends an event to a running workflow instance to trigger state transitions.`,builder:D,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances events send`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/events/${r[`event-type`]==null?`<event-type>`:encodeURIComponent(String(r[`event-type`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``),"event-type":String(r[`event-type`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();r.accountId=l,a(await s(`Creating`,async()=>c.workflows.instances.events.send({account_id:l,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`],event_type:r[`event-type`]})),{successLabel:`Created`})}},k={command:`events`,describe:`Operations for instances.events`,builder:e=>e.command(O).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function A(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`simple`,{type:`string`,description:`When true, omits step details and returns only metadata with step_count.`,choices:[`true`,`false`]}).option(`order`,{type:`string`,description:`Step ordering: "asc" (default, oldest first) or "desc" (newest first).`,choices:[`asc`,`desc`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const j={command:`get <instance-id>`,describe:`Retrieves logs and execution status for a specific workflow instance.`,builder:p(A),handler:async r=>{let c={simple:r.simple,order:r.order};if(r.dryRun){o({command:`cf workflows instances get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},query:c,bodyKind:`none`});return}let l=await i(r),u=r.local?e:await t();r.accountId=u,a(await s(`Loading`,async()=>l.workflows.instances.get({account_id:u,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`],...c})),{successLabel:`Loaded`})}};function M(e){return e.option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`page`,{type:`number`,description:"Deprecated: use `cursor` for pagination instead."}).option(`per-page`,{type:`number`,description:`Per page`}).option(`cursor`,{type:`string`,description:"Opaque token for cursor-based pagination. Mutually exclusive with `page`."}).option(`direction`,{type:`string`,description:`Defines the direction for cursor-based pagination.`,choices:[`asc`,`desc`]}).option(`status`,{type:`string`,description:`Status`,choices:[`queued`,`running`,`paused`,`errored`,`terminated`,`complete`,`waitingForPause`,`waiting`,`rollingBack`]}).option(`start`,{type:`string`,description:`Accepts ISO 8601 with no timezone offsets and in UTC.`}).option(`end`,{type:`string`,description:`Accepts ISO 8601 with no timezone offsets and in UTC.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const N={command:`list`,describe:`Lists all instances of a workflow with their execution status.`,builder:p(M),handler:async r=>{let c={page:r.page,per_page:r[`per-page`],cursor:r.cursor,direction:r.direction,status:r.status,date_start:r.start,date_end:r.end};if(r.dryRun){o({command:`cf workflows instances list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances`,pathParams:{"workflow-name":String(r[`workflow-name`]??``)},query:c,bodyKind:`none`});return}let l=await i(r),u=r.local?e:await t();r.accountId=u,a(await s(`Loading`,async()=>l.workflows.instances.list({account_id:u,workflow_name:r[`workflow-name`],...c})),{successLabel:`Loaded`})}};function P(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`status`,{type:`string`,description:`The status field`,choices:[`pause`,`resume`,`terminate`,`restart`]}).option(`rollback`,{type:`boolean`,description:`Run rollback before terminating.`}).option(`from-count`,{type:`number`,description:`The from.count field`}).option(`from-name`,{type:`string`,description:`The from.name field`}).option(`from-type`,{type:`string`,description:`The from.type field`,choices:[`do`,`sleep`,`waitForEvent`]}).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(`rollback`,[`from-count`,`from-name`,`from-type`]).conflicts(`from-count`,[`rollback`]).conflicts(`from-name`,[`rollback`]).conflicts(`from-type`,[`rollback`]).check(e=>{if([`from-count`,`from-name`,`from-type`].some(t=>e[t]!==void 0)){let t={"from-name":[`rollback`]},n=[`from-name`].filter(n=>e[n]===void 0&&!(t[n]??[]).some(t=>e[t]!==void 0));if(n.length>0)throw Error(`${n.map(e=>`--`+e).join(`, `)} ${n.length===1?`is`:`are`} required when any --from-* flag is set`)}return!0})}const F={command:`pause <instance-id>`,describe:`Changes the execution status of a workflow instance (e.g., pause, resume, terminate).`,builder:P,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances pause`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/status`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},bodyKind:`json`,body:r.body===void 0?l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}}):c(r.body)});return}let f=await i(r),p=r.local?e:await t();if(r.accountId=p,r.body){let e=c(r.body);a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:e,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`});return}r.status===void 0&&(r.status=await d(`status`,`The status field`,[`pause`,`resume`,`terminate`,`restart`]));let m=l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}});a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:m,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`})}};function I(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`status`,{type:`string`,description:`The status field`,choices:[`pause`,`resume`,`terminate`,`restart`]}).option(`rollback`,{type:`boolean`,description:`Run rollback before terminating.`}).option(`from-count`,{type:`number`,description:`The from.count field`}).option(`from-name`,{type:`string`,description:`The from.name field`}).option(`from-type`,{type:`string`,description:`The from.type field`,choices:[`do`,`sleep`,`waitForEvent`]}).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(`rollback`,[`from-count`,`from-name`,`from-type`]).conflicts(`from-count`,[`rollback`]).conflicts(`from-name`,[`rollback`]).conflicts(`from-type`,[`rollback`]).check(e=>{if([`from-count`,`from-name`,`from-type`].some(t=>e[t]!==void 0)){let t={"from-name":[`rollback`]},n=[`from-name`].filter(n=>e[n]===void 0&&!(t[n]??[]).some(t=>e[t]!==void 0));if(n.length>0)throw Error(`${n.map(e=>`--`+e).join(`, `)} ${n.length===1?`is`:`are`} required when any --from-* flag is set`)}return!0})}const ee={command:`restart <instance-id>`,describe:`Changes the execution status of a workflow instance (e.g., pause, resume, terminate).`,builder:I,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances restart`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/status`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},bodyKind:`json`,body:r.body===void 0?l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}}):c(r.body)});return}let f=await i(r),p=r.local?e:await t();if(r.accountId=p,r.body){let e=c(r.body);a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:e,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`});return}r.status===void 0&&(r.status=await d(`status`,`The status field`,[`pause`,`resume`,`terminate`,`restart`]));let m=l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}});a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:m,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`})}};function L(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`status`,{type:`string`,description:`The status field`,choices:[`pause`,`resume`,`terminate`,`restart`]}).option(`rollback`,{type:`boolean`,description:`Run rollback before terminating.`}).option(`from-count`,{type:`number`,description:`The from.count field`}).option(`from-name`,{type:`string`,description:`The from.name field`}).option(`from-type`,{type:`string`,description:`The from.type field`,choices:[`do`,`sleep`,`waitForEvent`]}).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(`rollback`,[`from-count`,`from-name`,`from-type`]).conflicts(`from-count`,[`rollback`]).conflicts(`from-name`,[`rollback`]).conflicts(`from-type`,[`rollback`]).check(e=>{if([`from-count`,`from-name`,`from-type`].some(t=>e[t]!==void 0)){let t={"from-name":[`rollback`]},n=[`from-name`].filter(n=>e[n]===void 0&&!(t[n]??[]).some(t=>e[t]!==void 0));if(n.length>0)throw Error(`${n.map(e=>`--`+e).join(`, `)} ${n.length===1?`is`:`are`} required when any --from-* flag is set`)}return!0})}const R={command:`resume <instance-id>`,describe:`Changes the execution status of a workflow instance (e.g., pause, resume, terminate).`,builder:L,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances resume`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/status`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},bodyKind:`json`,body:r.body===void 0?l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}}):c(r.body)});return}let f=await i(r),p=r.local?e:await t();if(r.accountId=p,r.body){let e=c(r.body);a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:e,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`});return}r.status===void 0&&(r.status=await d(`status`,`The status field`,[`pause`,`resume`,`terminate`,`restart`]));let m=l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}});a(await s(`Updating`,async()=>f.workflows.instances.status.edit({body:m,account_id:p,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Updated`})}};function z(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`name`,{type:`string`,description:`Exact step name from the instance logs response, including the generated counter suffix.`,demandOption:!0}).option(`type`,{type:`string`,description:`Step type to disambiguate step.do and waitForEvent entries that share the same name.`,choices:[`step`,`waitForEvent`],demandOption:!0}).option(`attempt`,{type:`number`,description:`Specific attempt number to retrieve output or error for.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`text`,{type:`boolean`,description:`Decode the response body as UTF-8 text instead of writing raw bytes`,default:!1})}const B={command:`get <instance-id>`,describe:"Retrieves the full, untruncated output for a specific step on a workflow instance. Returns a flat status-shaped JSON body with step `status` ('running' | 'waiting' | 'complete' | 'errored'), `error` (nullable), and `output` (the step value, or null while running/waiting/errored). When the step returned a ReadableStream from step.do, the response is served as 'application/octet-stream' with the raw bytes as the body instead of JSON. A `status='running'` response with non-null `error` indicates the step is currently retrying after a prior attempt failed.",builder:z,handler:async r=>{let a={name:r.name,type:r.type,attempt:r.attempt};if(r.dryRun){o({command:`cf workflows instances step get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/step`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},query:a,bodyKind:`none`});return}await i(r);let c=r.local?e:await t();r.accountId=c;let l=new URLSearchParams(Object.entries(a).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),u=await s(`Loading`,async()=>h(`/accounts/${c}/workflows/${encodeURIComponent(String(r[`workflow-name`]))}/instances/${encodeURIComponent(String(r[`instance-id`]))}/step${l?`?`+l:``}`,{method:`GET`,local:r.local===!0,persistTo:r.persistTo}));m(r.text===!0?u.toString(`utf-8`):u)}},V={command:`step`,describe:`Operations for instances.step`,builder:e=>e.command(B).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function H(e){return e.positional(`instance-id`,{type:`string`,description:"Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression.",demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`status`,{type:`string`,description:`The status field`,choices:[`pause`,`resume`,`terminate`,`restart`]}).option(`rollback`,{type:`boolean`,description:`Run rollback before terminating.`}).option(`from-count`,{type:`number`,description:`The from.count field`}).option(`from-name`,{type:`string`,description:`The from.name field`}).option(`from-type`,{type:`string`,description:`The from.type field`,choices:[`do`,`sleep`,`waitForEvent`]}).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}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).conflicts(`rollback`,[`from-count`,`from-name`,`from-type`]).conflicts(`from-count`,[`rollback`]).conflicts(`from-name`,[`rollback`]).conflicts(`from-type`,[`rollback`]).check(e=>{if([`from-count`,`from-name`,`from-type`].some(t=>e[t]!==void 0)){let t={"from-name":[`rollback`]},n=[`from-name`].filter(n=>e[n]===void 0&&!(t[n]??[]).some(t=>e[t]!==void 0));if(n.length>0)throw Error(`${n.map(e=>`--`+e).join(`, `)} ${n.length===1?`is`:`are`} required when any --from-* flag is set`)}return!0})}const U={command:`terminate <instance-id>`,describe:`Changes the execution status of a workflow instance (e.g., pause, resume, terminate).`,builder:H,handler:async r=>{if(r.dryRun){o({command:`cf workflows instances terminate`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/instances/${r[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(r[`instance-id`]))}/status`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"instance-id":String(r[`instance-id`]??``)},bodyKind:`json`,body:r.body===void 0?l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}}):c(r.body)});return}let p=await i(r),m=r.local?e:await t();if(r.accountId=m,!await f({force:!!r.force,message:`This operation terminates the running Workflow instance.`})){process.stderr.write(`Aborted.
|
|
5
5
|
`);return}if(r.body){let e=c(r.body);a(await s(`Deleting`,async()=>p.workflows.instances.status.edit({body:e,account_id:m,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Deleted`});return}r.status===void 0&&(r.status=await d(`status`,`The status field`,[`pause`,`resume`,`terminate`,`restart`]));let h=l({status:u(r.status,`status`,`text`),rollback:r.rollback,from:{count:r[`from-count`],name:u(r[`from-name`],`from-name`,`text`),type:u(r[`from-type`],`from-type`,`text`)}});a(await s(`Deleting`,async()=>p.workflows.instances.status.edit({body:h,account_id:m,workflow_name:r[`workflow-name`],instance_id:r[`instance-id`]})),{successLabel:`Deleted`})}},W={command:`instances`,describe:`Workflow instance operations`,builder:e=>e.command(w).command(E).command(j).command(N).command(F).command(ee).command(R).command(U).command(S).command(k).command(V).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function G(e){return e.option(`per-page`,{type:`number`,description:`Per page`}).option(`page`,{type:`number`,description:`Page`}).option(`search`,{type:`string`,description:"Allows filtering workflows` name."}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const K={command:`list`,describe:`Lists all workflows configured for the account.`,builder:G,handler:async r=>{let c={per_page:r[`per-page`],page:r.page,search:r.search};if(r.dryRun){o({command:`cf workflows list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows`,pathParams:{},query:c,bodyKind:`none`});return}let l=await i(r),u=r.local?e:await t();r.accountId=u,a(await s(`Loading`,async()=>l.workflows.list({account_id:u,...c})),{successLabel:`Loaded`})}};function q(e){return e.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 J={command:`edit`,describe:`Updates only the account-level Workflows settings fields present in the request body.`,builder:q,handler:async r=>{if(r.dryRun){o({command:`cf workflows settings edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/settings`,pathParams:{},bodyKind:`json`,body:r.body===void 0?void 0:c(r.body)});return}let l=await i(r),u=r.local?e:await t();if(r.accountId=u,r.body){let e=c(r.body);a(await s(`Updating`,async()=>l.workflows.settings.edit({...e,account_id:u})),{successLabel:`Updated`});return}a(await s(`Updating`,async()=>l.workflows.settings.edit({account_id:u})),{successLabel:`Updated`})}};function Y(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const X={command:`get`,describe:`Retrieves account-level Workflows settings, such as the default instance retention.`,builder:Y,handler:async r=>{if(r.dryRun){o({command:`cf workflows settings get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/settings`,pathParams:{},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();r.accountId=l,a(await s(`Loading`,async()=>c.workflows.settings.get({account_id:l})),{successLabel:`Loaded`})}},Z={command:`settings`,describe:`Operations for settings`,builder:e=>e.command(J).command(X).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Q(e){return e.positional(`version-id`,{type:`string`,description:`Version ID`,demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const $={command:`get <version-id>`,describe:`Retrieves details for a specific deployed workflow version.`,builder:Q,handler:async r=>{if(r.dryRun){o({command:`cf workflows versions get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/versions/${r[`version-id`]==null?`<version-id>`:encodeURIComponent(String(r[`version-id`]))}`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"version-id":String(r[`version-id`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();r.accountId=l,a(await s(`Loading`,async()=>c.workflows.versions.get({account_id:l,workflow_name:r[`workflow-name`],version_id:r[`version-id`]})),{successLabel:`Loaded`})}};function te(e){return e.positional(`version-id`,{type:`string`,description:`Version ID`,demandOption:!0}).option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ne={command:`graph <version-id>`,describe:`Retrieves the graph visualization of a workflow version.`,builder:te,handler:async r=>{if(r.dryRun){o({command:`cf workflows versions graph`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/versions/${r[`version-id`]==null?`<version-id>`:encodeURIComponent(String(r[`version-id`]))}/graph`,pathParams:{"workflow-name":String(r[`workflow-name`]??``),"version-id":String(r[`version-id`]??``)},bodyKind:`none`});return}let c=await i(r),l=r.local?e:await t();r.accountId=l,a(await s(`Loading`,async()=>c.workflows.versions.graph({account_id:l,workflow_name:r[`workflow-name`],version_id:r[`version-id`]})),{successLabel:`Loaded`})}};function re(e){return e.option(`workflow-name`,{type:`string`,description:`Workflow name`,demandOption:!0}).option(`per-page`,{type:`number`,description:`Per page`}).option(`page`,{type:`number`,description:`Page`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ie={command:`list`,describe:`Lists all deployed versions of a workflow.`,builder:re,handler:async r=>{let c={per_page:r[`per-page`],page:r.page};if(r.dryRun){o({command:`cf workflows versions list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/workflows/${r[`workflow-name`]==null?`<workflow-name>`:encodeURIComponent(String(r[`workflow-name`]))}/versions`,pathParams:{"workflow-name":String(r[`workflow-name`]??``)},query:c,bodyKind:`none`});return}let l=await i(r),u=r.local?e:await t();r.accountId=u,a(await s(`Loading`,async()=>l.workflows.versions.list({account_id:u,workflow_name:r[`workflow-name`],...c})),{successLabel:`Loaded`})}},ae={command:`versions`,describe:`Workflow version operations`,builder:e=>e.command($).command(ne).command(ie).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},oe={command:`workflows`,describe:`Durable, multi-step workflows that run on Workers with automatic retries and state persistence`,builder:e=>e.command(_).command(y).command(K).command(W).command(Z).command(ae).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{oe as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{h as e}from"./oauth-DuEONNgC.mjs";import{a as t,r as n}from"./auth-D3X9HYhD.mjs";import{t as r}from"./output-Ccqw2WOb.mjs";import{t as i}from"./dry-run-DL2V6yFm.mjs";import{t as a}from"./progress-BqQcF5QH.mjs";import{n as o,t as s}from"./body-parser-BshbixEq.mjs";import{n as c}from"./input-validation-QDIYu7Vb.mjs";import{a as l}from"./prompt-B0sWIs9c.mjs";import{t as u}from"./cli-types-DAYeL_Mj.mjs";function d(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const f={command:`get`,describe:`Gets latest Zaraz configuration for a zone. It can be preview or published configuration, whichever was the last updated. Secret variables values will not be included.`,builder:d,handler:async t=>{if(t.dryRun){i({command:`cf zaraz config get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/config`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.config.get({zone_id:s})),{successLabel:`Loaded`})}};function p(e){return e.option(`analytics-default-purpose`,{type:`string`,description:`Consent purpose assigned to Monitoring.`}).option(`analytics-enabled`,{type:`boolean`,description:`Whether Advanced Monitoring reports are enabled.`}).option(`analytics-session-exp-time`,{type:`number`,description:`Session expiration time (seconds).`}).option(`consent-company-email`,{type:`string`,description:`The consent.companyEmail field`}).option(`consent-company-name`,{type:`string`,description:`The consent.companyName field`}).option(`consent-company-street-address`,{type:`string`,description:`The consent.companyStreetAddress field`}).option(`consent-consent-modal-intro-html`,{type:`string`,description:`The consent.consentModalIntroHTML field`}).option(`consent-cookie-name`,{type:`string`,description:`The consent.cookieName field`}).option(`consent-custom-css`,{type:`string`,description:`The consent.customCSS field`}).option(`consent-custom-intro-disclaimer-dismissed`,{type:`boolean`,description:`The consent.customIntroDisclaimerDismissed field`}).option(`consent-default-language`,{type:`string`,description:`The consent.defaultLanguage field`}).option(`consent-enabled`,{type:`boolean`,description:`The consent.enabled field`}).option(`consent-hide-modal`,{type:`boolean`,description:`The consent.hideModal field`}).option(`consent-tcf-compliant`,{type:`boolean`,description:`The consent.tcfCompliant field`}).option(`data-layer`,{type:`boolean`,description:`Data layer compatibility mode enabled.`}).option(`debug-key`,{type:`string`,description:`The key for Zaraz debug mode.`}).option(`history-change`,{type:`boolean`,description:`Single Page Application support enabled.`}).option(`settings-auto-inject-script`,{type:`boolean`,description:`Automatic injection of Zaraz scripts enabled.`}).option(`settings-context-enricher-escaped-worker-name`,{type:`string`,description:`The settings.contextEnricher.escapedWorkerName field`}).option(`settings-context-enricher-worker-tag`,{type:`string`,description:`The settings.contextEnricher.workerTag field`}).option(`settings-cookie-domain`,{type:`string`,description:`The domain Zaraz will use for writing and reading its cookies.`}).option(`settings-ecommerce`,{type:`boolean`,description:`Ecommerce API enabled.`}).option(`settings-events-api-path`,{type:`string`,description:`Custom endpoint for server-side track events.`}).option(`settings-hide-external-referer`,{type:`boolean`,description:`Hiding external referrer URL enabled.`}).option(`settings-hide-ipaddress`,{type:`boolean`,description:`Trimming IP address enabled.`}).option(`settings-hide-query-params`,{type:`boolean`,description:`Removing URL query params enabled.`}).option(`settings-hide-user-agent`,{type:`boolean`,description:`Removing sensitive data from User Agent string enabled.`}).option(`settings-init-path`,{type:`string`,description:`Custom endpoint for Zaraz init script.`}).option(`settings-inject-iframes`,{type:`boolean`,description:`Injection of Zaraz scripts into iframes enabled.`}).option(`settings-mc-root-path`,{type:`string`,description:`Custom path for Managed Components server functionalities.`}).option(`settings-script-path`,{type:`string`,description:`Custom endpoint for Zaraz main script.`}).option(`settings-track-path`,{type:`string`,description:`Custom endpoint for Zaraz tracking requests.`}).option(`zaraz-version`,{type:`number`,description:`Zaraz internal version of the config.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz configuration.`}).check(e=>{if([`consent-company-email`,`consent-company-name`,`consent-company-street-address`,`consent-consent-modal-intro-html`,`consent-cookie-name`,`consent-custom-css`,`consent-custom-intro-disclaimer-dismissed`,`consent-default-language`,`consent-enabled`,`consent-hide-modal`,`consent-tcf-compliant`].some(t=>e[t]!==void 0)){let t=[`consent-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --consent-* flag is set`)}return!0})}const m={command:`update`,describe:`Updates Zaraz configuration for a zone.`,builder:p,handler:async t=>{if(t.dryRun){i({command:`cf zaraz config update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/config`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({analytics:{defaultPurpose:c(t[`analytics-default-purpose`],`analytics-default-purpose`,`text`),enabled:t[`analytics-enabled`],sessionExpTime:t[`analytics-session-exp-time`]},consent:{companyEmail:c(t[`consent-company-email`],`consent-company-email`,`text`),companyName:c(t[`consent-company-name`],`consent-company-name`,`text`),companyStreetAddress:c(t[`consent-company-street-address`],`consent-company-street-address`,`text`),consentModalIntroHTML:c(t[`consent-consent-modal-intro-html`],`consent-consent-modal-intro-html`,`text`),cookieName:c(t[`consent-cookie-name`],`consent-cookie-name`,`text`),customCSS:c(t[`consent-custom-css`],`consent-custom-css`,`text`),customIntroDisclaimerDismissed:t[`consent-custom-intro-disclaimer-dismissed`],defaultLanguage:c(t[`consent-default-language`],`consent-default-language`,`text`),enabled:t[`consent-enabled`],hideModal:t[`consent-hide-modal`],tcfCompliant:t[`consent-tcf-compliant`]},dataLayer:t[`data-layer`],debugKey:c(t[`debug-key`],`debug-key`,`text`),historyChange:t[`history-change`],settings:{autoInjectScript:t[`settings-auto-inject-script`],contextEnricher:{escapedWorkerName:c(t[`settings-context-enricher-escaped-worker-name`],`settings-context-enricher-escaped-worker-name`,`text`),workerTag:c(t[`settings-context-enricher-worker-tag`],`settings-context-enricher-worker-tag`,`text`)},cookieDomain:c(t[`settings-cookie-domain`],`settings-cookie-domain`,`text`),ecommerce:t[`settings-ecommerce`],eventsApiPath:c(t[`settings-events-api-path`],`settings-events-api-path`,`text`),hideExternalReferer:t[`settings-hide-external-referer`],hideIPAddress:t[`settings-hide-ipaddress`],hideQueryParams:t[`settings-hide-query-params`],hideUserAgent:t[`settings-hide-user-agent`],initPath:c(t[`settings-init-path`],`settings-init-path`,`text`),injectIframes:t[`settings-inject-iframes`],mcRootPath:c(t[`settings-mc-root-path`],`settings-mc-root-path`,`text`),scriptPath:c(t[`settings-script-path`],`settings-script-path`,`text`),trackPath:c(t[`settings-track-path`],`settings-track-path`,`text`)},zarazVersion:t[`zaraz-version`]}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.zaraz.config.update({...e,zone_id:d})),{successLabel:`Updated`});return}if(t[`data-layer`]===void 0)throw Error(`--data-layer is required (or pass --body with this field set).`);if(t[`debug-key`]===void 0&&(t[`debug-key`]=await l(`debug-key`,`The key for Zaraz debug mode.`)),t[`settings-auto-inject-script`]===void 0)throw Error(`--settings-auto-inject-script is required (or pass --body with this field set).`);if(t[`settings-context-enricher-escaped-worker-name`]===void 0&&(t[`settings-context-enricher-escaped-worker-name`]=await l(`settings-context-enricher-escaped-worker-name`,`The settings.contextEnricher.escapedWorkerName field`)),t[`settings-context-enricher-worker-tag`]===void 0&&(t[`settings-context-enricher-worker-tag`]=await l(`settings-context-enricher-worker-tag`,`The settings.contextEnricher.workerTag field`)),t[`zaraz-version`]===void 0)throw Error(`--zaraz-version is required (or pass --body with this field set).`);let f=s({analytics:{defaultPurpose:c(t[`analytics-default-purpose`],`analytics-default-purpose`,`text`),enabled:t[`analytics-enabled`],sessionExpTime:t[`analytics-session-exp-time`]},consent:{companyEmail:c(t[`consent-company-email`],`consent-company-email`,`text`),companyName:c(t[`consent-company-name`],`consent-company-name`,`text`),companyStreetAddress:c(t[`consent-company-street-address`],`consent-company-street-address`,`text`),consentModalIntroHTML:c(t[`consent-consent-modal-intro-html`],`consent-consent-modal-intro-html`,`text`),cookieName:c(t[`consent-cookie-name`],`consent-cookie-name`,`text`),customCSS:c(t[`consent-custom-css`],`consent-custom-css`,`text`),customIntroDisclaimerDismissed:t[`consent-custom-intro-disclaimer-dismissed`],defaultLanguage:c(t[`consent-default-language`],`consent-default-language`,`text`),enabled:t[`consent-enabled`],hideModal:t[`consent-hide-modal`],tcfCompliant:t[`consent-tcf-compliant`]},dataLayer:t[`data-layer`],debugKey:c(t[`debug-key`],`debug-key`,`text`),historyChange:t[`history-change`],settings:{autoInjectScript:t[`settings-auto-inject-script`],contextEnricher:{escapedWorkerName:c(t[`settings-context-enricher-escaped-worker-name`],`settings-context-enricher-escaped-worker-name`,`text`),workerTag:c(t[`settings-context-enricher-worker-tag`],`settings-context-enricher-worker-tag`,`text`)},cookieDomain:c(t[`settings-cookie-domain`],`settings-cookie-domain`,`text`),ecommerce:t[`settings-ecommerce`],eventsApiPath:c(t[`settings-events-api-path`],`settings-events-api-path`,`text`),hideExternalReferer:t[`settings-hide-external-referer`],hideIPAddress:t[`settings-hide-ipaddress`],hideQueryParams:t[`settings-hide-query-params`],hideUserAgent:t[`settings-hide-user-agent`],initPath:c(t[`settings-init-path`],`settings-init-path`,`text`),injectIframes:t[`settings-inject-iframes`],mcRootPath:c(t[`settings-mc-root-path`],`settings-mc-root-path`,`text`),scriptPath:c(t[`settings-script-path`],`settings-script-path`,`text`),trackPath:c(t[`settings-track-path`],`settings-track-path`,`text`)},zarazVersion:t[`zaraz-version`]});r(await a(`Updating`,async()=>u.zaraz.config.update({...f,zone_id:d})),{successLabel:`Updated`})}},h={command:`config`,describe:`Full Zaraz configuration including tools, triggers, and variables for the zone`,builder:e=>e.command(f).command(m).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function g(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const _={command:`get`,describe:`Gets default Zaraz configuration for a zone.`,builder:g,handler:async t=>{if(t.dryRun){i({command:`cf zaraz default get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/default`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.default.get({zone_id:s})),{successLabel:`Loaded`})}},v={command:`default`,describe:`Default Zaraz configuration template used as a starting point for new zones`,builder:e=>e.command(_).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function y(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const b={command:`get`,describe:`Exports full current published Zaraz configuration for a zone, secret variables included.`,builder:y,handler:async t=>{if(t.dryRun){i({command:`cf zaraz export get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/export`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.export.get({zone_id:s})),{successLabel:`Loaded`})}},x={command:`export`,describe:`Export the current Zaraz configuration as a portable JSON document`,builder:e=>e.command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(e){return e.option(`ids`,{type:`string`,description:`Comma separated list of Zaraz configuration IDs.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const C={command:`get`,describe:`Gets a history of published Zaraz configurations by ID(s) for a zone.`,builder:u(S),handler:async t=>{let o={ids:t.ids};if(t.dryRun){i({command:`cf zaraz history configs get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/history/configs`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});t.zoneId=c,r(await a(`Loading`,async()=>s.zaraz.history.configs.get({zone_id:c,...o})),{successLabel:`Loaded`})}},w={command:`configs`,describe:`Operations for history.configs`,builder:e=>e.command(C).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function T(e){return e.option(`offset`,{type:`number`,description:`Ordinal number to start listing the results with. Default value is 0.`}).option(`limit`,{type:`number`,description:`Maximum amount of results to list. Default value is 10.`}).option(`sort-field`,{type:`string`,description:`The field to sort by. Default is updated_at.`,choices:[`id`,`user_id`,`description`,`created_at`,`updated_at`]}).option(`sort-order`,{type:`string`,description:`Sorting order. Default is DESC.`,choices:[`DESC`,`ASC`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`list`,describe:`Lists a history of published Zaraz configuration records for a zone.`,builder:u(T),handler:async t=>{let o={offset:t.offset,limit:t.limit,sortField:t[`sort-field`],sortOrder:t[`sort-order`]};if(t.dryRun){i({command:`cf zaraz history list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/history`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});t.zoneId=c,r(await a(`Loading`,async()=>s.zaraz.history.list({zone_id:c,...o})),{successLabel:`Loaded`})}};function D(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`ID of the Zaraz configuration to restore.`})}const O={command:`update`,describe:`Restores a historical published Zaraz configuration by ID for a zone.`,builder:D,handler:async s=>{if(s.dryRun){i({command:`cf zaraz history update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/settings/zaraz/history`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,s.body){let e=o(s.body);r(await a(`Updating`,async()=>c.zaraz.history.update({body:e,zone_id:l})),{successLabel:`Updated`});return}r(await a(`Updating`,async()=>t(c,`PUT`,`/zones/${s.zoneId}/settings/zaraz/history`)),{successLabel:`Updated`})}},k={command:`history`,describe:`Configuration version history — browse and restore previous Zaraz configurations`,builder:e=>e.command(E).command(O).command(w).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function A(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz configuration description.`})}const j={command:`create`,describe:`Publish current Zaraz preview configuration for a zone.`,builder:A,handler:async s=>{if(s.dryRun){i({command:`cf zaraz publish create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/settings/zaraz/publish`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,s.body){let e=o(s.body);r(await a(`Creating`,async()=>c.zaraz.publish.create({body:e,zone_id:l})),{successLabel:`Created`});return}r(await a(`Creating`,async()=>t(c,`POST`,`/zones/${s.zoneId}/settings/zaraz/publish`)),{successLabel:`Created`})}},M={command:`publish`,describe:`Publish pending Zaraz configuration changes to make them live on the zone`,builder:e=>e.command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function N(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const P={command:`get`,describe:`Gets Zaraz workflow for a zone.`,builder:N,handler:async t=>{if(t.dryRun){i({command:`cf zaraz workflow get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/workflow`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.workflow.get({zone_id:s})),{successLabel:`Loaded`})}};function F(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz workflow.`})}const I={command:`update`,describe:`Updates Zaraz workflow for a zone.`,builder:F,handler:async t=>{if(t.dryRun){i({command:`cf zaraz workflow update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/workflow`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?void 0:o(t.body)});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});if(t.zoneId=c,t.body){let e=o(t.body);r(await a(`Updating`,async()=>s.zaraz.workflow.update({body:e,zone_id:c})),{successLabel:`Updated`});return}if(t.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},L={command:`workflow`,describe:`Workflow state for Zaraz configuration changes (draft vs. published)`,builder:e=>e.command(P).command(I).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},R={command:`zaraz`,describe:`Server-side tag manager — load third-party tools (analytics, pixels, etc.) from Cloudflare's edge without client-side JS`,builder:e=>e.command(h).command(v).command(x).command(k).command(M).command(L).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{R as default};
|
|
2
|
+
import{h as e}from"./oauth-DAa7SwkM.mjs";import{a as t,r as n}from"./auth-DY_Y2bXC.mjs";import{t as r}from"./output-BqDR9h74.mjs";import{t as i}from"./dry-run-ILZRVpnp.mjs";import{t as a}from"./progress-jYW64HY7.mjs";import{n as o,t as s}from"./body-parser-BGVbwPeM.mjs";import{n as c}from"./input-validation-1esLElok.mjs";import{a as l}from"./prompt-CyATfGUu.mjs";import{t as u}from"./cli-types-C3nVfpSG.mjs";function d(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const f={command:`get`,describe:`Gets latest Zaraz configuration for a zone. It can be preview or published configuration, whichever was the last updated. Secret variables values will not be included.`,builder:d,handler:async t=>{if(t.dryRun){i({command:`cf zaraz config get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/config`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.config.get({zone_id:s})),{successLabel:`Loaded`})}};function p(e){return e.option(`analytics-default-purpose`,{type:`string`,description:`Consent purpose assigned to Monitoring.`}).option(`analytics-enabled`,{type:`boolean`,description:`Whether Advanced Monitoring reports are enabled.`}).option(`analytics-session-exp-time`,{type:`number`,description:`Session expiration time (seconds).`}).option(`consent-company-email`,{type:`string`,description:`The consent.companyEmail field`}).option(`consent-company-name`,{type:`string`,description:`The consent.companyName field`}).option(`consent-company-street-address`,{type:`string`,description:`The consent.companyStreetAddress field`}).option(`consent-consent-modal-intro-html`,{type:`string`,description:`The consent.consentModalIntroHTML field`}).option(`consent-cookie-name`,{type:`string`,description:`The consent.cookieName field`}).option(`consent-custom-css`,{type:`string`,description:`The consent.customCSS field`}).option(`consent-custom-intro-disclaimer-dismissed`,{type:`boolean`,description:`The consent.customIntroDisclaimerDismissed field`}).option(`consent-default-language`,{type:`string`,description:`The consent.defaultLanguage field`}).option(`consent-enabled`,{type:`boolean`,description:`The consent.enabled field`}).option(`consent-hide-modal`,{type:`boolean`,description:`The consent.hideModal field`}).option(`consent-tcf-compliant`,{type:`boolean`,description:`The consent.tcfCompliant field`}).option(`data-layer`,{type:`boolean`,description:`Data layer compatibility mode enabled.`}).option(`debug-key`,{type:`string`,description:`The key for Zaraz debug mode.`}).option(`history-change`,{type:`boolean`,description:`Single Page Application support enabled.`}).option(`settings-auto-inject-script`,{type:`boolean`,description:`Automatic injection of Zaraz scripts enabled.`}).option(`settings-context-enricher-escaped-worker-name`,{type:`string`,description:`The settings.contextEnricher.escapedWorkerName field`}).option(`settings-context-enricher-worker-tag`,{type:`string`,description:`The settings.contextEnricher.workerTag field`}).option(`settings-cookie-domain`,{type:`string`,description:`The domain Zaraz will use for writing and reading its cookies.`}).option(`settings-ecommerce`,{type:`boolean`,description:`Ecommerce API enabled.`}).option(`settings-events-api-path`,{type:`string`,description:`Custom endpoint for server-side track events.`}).option(`settings-hide-external-referer`,{type:`boolean`,description:`Hiding external referrer URL enabled.`}).option(`settings-hide-ipaddress`,{type:`boolean`,description:`Trimming IP address enabled.`}).option(`settings-hide-query-params`,{type:`boolean`,description:`Removing URL query params enabled.`}).option(`settings-hide-user-agent`,{type:`boolean`,description:`Removing sensitive data from User Agent string enabled.`}).option(`settings-init-path`,{type:`string`,description:`Custom endpoint for Zaraz init script.`}).option(`settings-inject-iframes`,{type:`boolean`,description:`Injection of Zaraz scripts into iframes enabled.`}).option(`settings-mc-root-path`,{type:`string`,description:`Custom path for Managed Components server functionalities.`}).option(`settings-script-path`,{type:`string`,description:`Custom endpoint for Zaraz main script.`}).option(`settings-track-path`,{type:`string`,description:`Custom endpoint for Zaraz tracking requests.`}).option(`zaraz-version`,{type:`number`,description:`Zaraz internal version of the config.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz configuration.`}).check(e=>{if([`consent-company-email`,`consent-company-name`,`consent-company-street-address`,`consent-consent-modal-intro-html`,`consent-cookie-name`,`consent-custom-css`,`consent-custom-intro-disclaimer-dismissed`,`consent-default-language`,`consent-enabled`,`consent-hide-modal`,`consent-tcf-compliant`].some(t=>e[t]!==void 0)){let t=[`consent-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --consent-* flag is set`)}return!0})}const m={command:`update`,describe:`Updates Zaraz configuration for a zone.`,builder:p,handler:async t=>{if(t.dryRun){i({command:`cf zaraz config update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/config`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({analytics:{defaultPurpose:c(t[`analytics-default-purpose`],`analytics-default-purpose`,`text`),enabled:t[`analytics-enabled`],sessionExpTime:t[`analytics-session-exp-time`]},consent:{companyEmail:c(t[`consent-company-email`],`consent-company-email`,`text`),companyName:c(t[`consent-company-name`],`consent-company-name`,`text`),companyStreetAddress:c(t[`consent-company-street-address`],`consent-company-street-address`,`text`),consentModalIntroHTML:c(t[`consent-consent-modal-intro-html`],`consent-consent-modal-intro-html`,`text`),cookieName:c(t[`consent-cookie-name`],`consent-cookie-name`,`text`),customCSS:c(t[`consent-custom-css`],`consent-custom-css`,`text`),customIntroDisclaimerDismissed:t[`consent-custom-intro-disclaimer-dismissed`],defaultLanguage:c(t[`consent-default-language`],`consent-default-language`,`text`),enabled:t[`consent-enabled`],hideModal:t[`consent-hide-modal`],tcfCompliant:t[`consent-tcf-compliant`]},dataLayer:t[`data-layer`],debugKey:c(t[`debug-key`],`debug-key`,`text`),historyChange:t[`history-change`],settings:{autoInjectScript:t[`settings-auto-inject-script`],contextEnricher:{escapedWorkerName:c(t[`settings-context-enricher-escaped-worker-name`],`settings-context-enricher-escaped-worker-name`,`text`),workerTag:c(t[`settings-context-enricher-worker-tag`],`settings-context-enricher-worker-tag`,`text`)},cookieDomain:c(t[`settings-cookie-domain`],`settings-cookie-domain`,`text`),ecommerce:t[`settings-ecommerce`],eventsApiPath:c(t[`settings-events-api-path`],`settings-events-api-path`,`text`),hideExternalReferer:t[`settings-hide-external-referer`],hideIPAddress:t[`settings-hide-ipaddress`],hideQueryParams:t[`settings-hide-query-params`],hideUserAgent:t[`settings-hide-user-agent`],initPath:c(t[`settings-init-path`],`settings-init-path`,`text`),injectIframes:t[`settings-inject-iframes`],mcRootPath:c(t[`settings-mc-root-path`],`settings-mc-root-path`,`text`),scriptPath:c(t[`settings-script-path`],`settings-script-path`,`text`),trackPath:c(t[`settings-track-path`],`settings-track-path`,`text`)},zarazVersion:t[`zaraz-version`]}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.zaraz.config.update({...e,zone_id:d})),{successLabel:`Updated`});return}if(t[`data-layer`]===void 0)throw Error(`--data-layer is required (or pass --body with this field set).`);if(t[`debug-key`]===void 0&&(t[`debug-key`]=await l(`debug-key`,`The key for Zaraz debug mode.`)),t[`settings-auto-inject-script`]===void 0)throw Error(`--settings-auto-inject-script is required (or pass --body with this field set).`);if(t[`settings-context-enricher-escaped-worker-name`]===void 0&&(t[`settings-context-enricher-escaped-worker-name`]=await l(`settings-context-enricher-escaped-worker-name`,`The settings.contextEnricher.escapedWorkerName field`)),t[`settings-context-enricher-worker-tag`]===void 0&&(t[`settings-context-enricher-worker-tag`]=await l(`settings-context-enricher-worker-tag`,`The settings.contextEnricher.workerTag field`)),t[`zaraz-version`]===void 0)throw Error(`--zaraz-version is required (or pass --body with this field set).`);let f=s({analytics:{defaultPurpose:c(t[`analytics-default-purpose`],`analytics-default-purpose`,`text`),enabled:t[`analytics-enabled`],sessionExpTime:t[`analytics-session-exp-time`]},consent:{companyEmail:c(t[`consent-company-email`],`consent-company-email`,`text`),companyName:c(t[`consent-company-name`],`consent-company-name`,`text`),companyStreetAddress:c(t[`consent-company-street-address`],`consent-company-street-address`,`text`),consentModalIntroHTML:c(t[`consent-consent-modal-intro-html`],`consent-consent-modal-intro-html`,`text`),cookieName:c(t[`consent-cookie-name`],`consent-cookie-name`,`text`),customCSS:c(t[`consent-custom-css`],`consent-custom-css`,`text`),customIntroDisclaimerDismissed:t[`consent-custom-intro-disclaimer-dismissed`],defaultLanguage:c(t[`consent-default-language`],`consent-default-language`,`text`),enabled:t[`consent-enabled`],hideModal:t[`consent-hide-modal`],tcfCompliant:t[`consent-tcf-compliant`]},dataLayer:t[`data-layer`],debugKey:c(t[`debug-key`],`debug-key`,`text`),historyChange:t[`history-change`],settings:{autoInjectScript:t[`settings-auto-inject-script`],contextEnricher:{escapedWorkerName:c(t[`settings-context-enricher-escaped-worker-name`],`settings-context-enricher-escaped-worker-name`,`text`),workerTag:c(t[`settings-context-enricher-worker-tag`],`settings-context-enricher-worker-tag`,`text`)},cookieDomain:c(t[`settings-cookie-domain`],`settings-cookie-domain`,`text`),ecommerce:t[`settings-ecommerce`],eventsApiPath:c(t[`settings-events-api-path`],`settings-events-api-path`,`text`),hideExternalReferer:t[`settings-hide-external-referer`],hideIPAddress:t[`settings-hide-ipaddress`],hideQueryParams:t[`settings-hide-query-params`],hideUserAgent:t[`settings-hide-user-agent`],initPath:c(t[`settings-init-path`],`settings-init-path`,`text`),injectIframes:t[`settings-inject-iframes`],mcRootPath:c(t[`settings-mc-root-path`],`settings-mc-root-path`,`text`),scriptPath:c(t[`settings-script-path`],`settings-script-path`,`text`),trackPath:c(t[`settings-track-path`],`settings-track-path`,`text`)},zarazVersion:t[`zaraz-version`]});r(await a(`Updating`,async()=>u.zaraz.config.update({...f,zone_id:d})),{successLabel:`Updated`})}},h={command:`config`,describe:`Full Zaraz configuration including tools, triggers, and variables for the zone`,builder:e=>e.command(f).command(m).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function g(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const _={command:`get`,describe:`Gets default Zaraz configuration for a zone.`,builder:g,handler:async t=>{if(t.dryRun){i({command:`cf zaraz default get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/default`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.default.get({zone_id:s})),{successLabel:`Loaded`})}},v={command:`default`,describe:`Default Zaraz configuration template used as a starting point for new zones`,builder:e=>e.command(_).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function y(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const b={command:`get`,describe:`Exports full current published Zaraz configuration for a zone, secret variables included.`,builder:y,handler:async t=>{if(t.dryRun){i({command:`cf zaraz export get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/export`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.export.get({zone_id:s})),{successLabel:`Loaded`})}},x={command:`export`,describe:`Export the current Zaraz configuration as a portable JSON document`,builder:e=>e.command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(e){return e.option(`ids`,{type:`string`,description:`Comma separated list of Zaraz configuration IDs.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const C={command:`get`,describe:`Gets a history of published Zaraz configurations by ID(s) for a zone.`,builder:u(S),handler:async t=>{let o={ids:t.ids};if(t.dryRun){i({command:`cf zaraz history configs get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/history/configs`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});t.zoneId=c,r(await a(`Loading`,async()=>s.zaraz.history.configs.get({zone_id:c,...o})),{successLabel:`Loaded`})}},w={command:`configs`,describe:`Operations for history.configs`,builder:e=>e.command(C).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function T(e){return e.option(`offset`,{type:`number`,description:`Ordinal number to start listing the results with. Default value is 0.`}).option(`limit`,{type:`number`,description:`Maximum amount of results to list. Default value is 10.`}).option(`sort-field`,{type:`string`,description:`The field to sort by. Default is updated_at.`,choices:[`id`,`user_id`,`description`,`created_at`,`updated_at`]}).option(`sort-order`,{type:`string`,description:`Sorting order. Default is DESC.`,choices:[`DESC`,`ASC`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`list`,describe:`Lists a history of published Zaraz configuration records for a zone.`,builder:u(T),handler:async t=>{let o={offset:t.offset,limit:t.limit,sortField:t[`sort-field`],sortOrder:t[`sort-order`]};if(t.dryRun){i({command:`cf zaraz history list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/history`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});t.zoneId=c,r(await a(`Loading`,async()=>s.zaraz.history.list({zone_id:c,...o})),{successLabel:`Loaded`})}};function D(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`ID of the Zaraz configuration to restore.`})}const O={command:`update`,describe:`Restores a historical published Zaraz configuration by ID for a zone.`,builder:D,handler:async s=>{if(s.dryRun){i({command:`cf zaraz history update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/settings/zaraz/history`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,s.body){let e=o(s.body);r(await a(`Updating`,async()=>c.zaraz.history.update({body:e,zone_id:l})),{successLabel:`Updated`});return}r(await a(`Updating`,async()=>t(c,`PUT`,`/zones/${s.zoneId}/settings/zaraz/history`)),{successLabel:`Updated`})}},k={command:`history`,describe:`Configuration version history — browse and restore previous Zaraz configurations`,builder:e=>e.command(E).command(O).command(w).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function A(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz configuration description.`})}const j={command:`create`,describe:`Publish current Zaraz preview configuration for a zone.`,builder:A,handler:async s=>{if(s.dryRun){i({command:`cf zaraz publish create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/settings/zaraz/publish`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,s.body){let e=o(s.body);r(await a(`Creating`,async()=>c.zaraz.publish.create({body:e,zone_id:l})),{successLabel:`Created`});return}r(await a(`Creating`,async()=>t(c,`POST`,`/zones/${s.zoneId}/settings/zaraz/publish`)),{successLabel:`Created`})}},M={command:`publish`,describe:`Publish pending Zaraz configuration changes to make them live on the zone`,builder:e=>e.command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function N(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const P={command:`get`,describe:`Gets Zaraz workflow for a zone.`,builder:N,handler:async t=>{if(t.dryRun){i({command:`cf zaraz workflow get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/workflow`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.zaraz.workflow.get({zone_id:s})),{successLabel:`Loaded`})}};function F(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Zaraz workflow.`})}const I={command:`update`,describe:`Updates Zaraz workflow for a zone.`,builder:F,handler:async t=>{if(t.dryRun){i({command:`cf zaraz workflow update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/settings/zaraz/workflow`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?void 0:o(t.body)});return}let s=await n(t),c=await e({zone:t.zone},s,{quiet:t.quiet});if(t.zoneId=c,t.body){let e=o(t.body);r(await a(`Updating`,async()=>s.zaraz.workflow.update({body:e,zone_id:c})),{successLabel:`Updated`});return}if(t.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},L={command:`workflow`,describe:`Workflow state for Zaraz configuration changes (draft vs. published)`,builder:e=>e.command(P).command(I).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},R={command:`zaraz`,describe:`Server-side tag manager — load third-party tools (analytics, pixels, etc.) from Cloudflare's edge without client-side JS`,builder:e=>e.command(h).command(v).command(x).command(k).command(M).command(L).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{R as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{t as e}from"./local-
|
|
2
|
+
import{t as e}from"./local-DGiIS1uM.mjs";import{f as t,g as n,h as r}from"./oauth-DAa7SwkM.mjs";import{a as i,r as a}from"./auth-DY_Y2bXC.mjs";import{t as o}from"./output-BqDR9h74.mjs";import{t as s}from"./dry-run-ILZRVpnp.mjs";import{t as c}from"./progress-jYW64HY7.mjs";import{i as l,n as u,r as d,t as f}from"./body-parser-BGVbwPeM.mjs";import{n as p,t as m}from"./input-validation-1esLElok.mjs";import{a as h,i as g,n as _}from"./prompt-CyATfGUu.mjs";import{t as v}from"./cli-types-C3nVfpSG.mjs";import{n as ee,t as te}from"./raw-fetch-CNKIypJ7.mjs";function y(e){return e.positional(`app-id`,{type:`string`,description:`UUID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const b={command:`create <app-id>`,describe:`Generates a new short-lived certificate CA and public key.`,builder:y,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications cas create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/ca`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();u===`zones`?i.zoneId=d:i.accountId=d,o(await c(`Creating`,async()=>l.zeroTrust.access.applications.cas.create({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`]})),{successLabel:`Created`})}};function x(e){return e.positional(`app-id`,{type:`string`,description:`UUID.`,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 S={command:`delete <app-id>`,describe:`Deletes a short-lived certificate CA.`,builder:x,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications cas delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/ca`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(u===`zones`?i.zoneId=d:i.accountId=d,!await _({force:!!i.force})){process.stderr.write(`Aborted.
|
|
3
3
|
`);return}o(await c(`Deleting`,async()=>l.zeroTrust.access.applications.cas.delete({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`]})),{successLabel:`Deleted`})}};function C(e){return e.positional(`app-id`,{type:`string`,description:`UUID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const w={command:`get <app-id>`,describe:`Fetches a short-lived certificate CA and its public key.`,builder:C,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications cas get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/ca`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();u===`zones`?i.zoneId=d:i.accountId=d,o(await c(`Loading`,async()=>l.zeroTrust.access.applications.cas.get({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`]})),{successLabel:`Loaded`})}};function T(e){return e.option(`page`,{type:`number`,description:`Page number of results.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`list`,describe:`Lists short-lived certificate CAs and their public keys.`,builder:T,handler:async i=>{let l={page:i.page,per_page:i[`per-page`]};if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications cas list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/ca`,pathParams:{"account-or-zone":String(t),"account-or-zone-id":String(r)},query:l,bodyKind:`none`});return}let u=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},u,{quiet:i.quiet}):i.local?e:await t();d===`zones`?i.zoneId=f:i.accountId=f,o(await c(`Loading`,async()=>u.zeroTrust.access.applications.cas.list({account_or_zone:d,account_or_zone_id:f,...l})),{successLabel:`Loaded`})}},D={command:`cas`,describe:`Operations for access.applications.cas`,builder:e=>e.command(b).command(S).command(w).command(E).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function O(e){return e.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 k={command:`create`,describe:`Adds a new application to Access.`,builder:O,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps`,pathParams:{"account-or-zone":String(t),"account-or-zone-id":String(r)},bodyKind:`json`,body:i.body===void 0?void 0:u(i.body)});return}let l=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(d===`zones`?i.zoneId=f:i.accountId=f,i.body){let e=u(i.body);o(await c(`Creating`,async()=>l.zeroTrust.access.applications.create({body:e,account_or_zone:d,account_or_zone_id:f})),{successLabel:`Created`});return}if(i.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}};function A(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 j={command:`delete <app-id>`,describe:`Deletes an application from Access.`,builder:A,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(u===`zones`?i.zoneId=d:i.accountId=d,!await _({force:!!i.force})){process.stderr.write(`Aborted.
|
|
4
4
|
`);return}o(await c(`Deleting`,async()=>l.zeroTrust.access.applications.delete({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`]})),{successLabel:`Deleted`})}};function M(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 N={command:`get <app-id>`,describe:`Fetches information about an Access application.`,builder:M,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();u===`zones`?i.zoneId=d:i.accountId=d,o(await c(`Loading`,async()=>l.zeroTrust.access.applications.get({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`]})),{successLabel:`Loaded`})}};function P(e){return e.option(`name`,{type:`string`,description:`The name of the app.`}).option(`domain`,{type:`string`,description:`The domain of the app.`}).option(`aud`,{type:`string`,description:`The aud of the app.`}).option(`target-attributes`,{type:`string`,description:`Target Criteria attributes in key=value format.`}).option(`exact`,{type:`boolean`,description:`True for only exact string matches against passed name/domain query parameters.`}).option(`search`,{type:`string`,description:`Search for apps by other listed query parameters.`}).option(`page`,{type:`number`,description:`Page number of results.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const F={command:`list`,describe:`Lists all Access applications in an account or zone.`,builder:P,handler:async i=>{let l={name:i.name,domain:i.domain,aud:i.aud,target_attributes:i[`target-attributes`],exact:i.exact,search:i.search,page:i.page,per_page:i[`per-page`]};if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps`,pathParams:{"account-or-zone":String(t),"account-or-zone-id":String(r)},query:l,bodyKind:`none`});return}let u=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},u,{quiet:i.quiet}):i.local?e:await t();d===`zones`?i.zoneId=f:i.accountId=f,o(await c(`Loading`,async()=>u.zeroTrust.access.applications.list({account_or_zone:d,account_or_zone_id:f,...l})),{successLabel:`Loaded`})}};function I(e){return e.positional(`app-id`,{type:`string`,description:`The application ID.`,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 L={command:`create <app-id>`,describe:`Creates a policy applying exclusive to a single application that defines the users or groups who can reach it. We recommend creating a reusable policy instead and subsequently referencing its ID in the application's 'policies' array.`,builder:I,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications policies create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/policies`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`json`,body:i.body===void 0?void 0:u(i.body)});return}let l=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(d===`zones`?i.zoneId=f:i.accountId=f,i.body){let e=u(i.body);o(await c(`Creating`,async()=>l.zeroTrust.access.applications.policies.create({body:e,account_or_zone:d,account_or_zone_id:f,app_id:i[`app-id`]})),{successLabel:`Created`});return}if(i.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}};function R(e){return e.positional(`policy-id`,{type:`string`,description:`The policy ID.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The application 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 z={command:`delete <policy-id>`,describe:`Deletes an Access policy specific to an application. To delete a reusable policy, use the /account or zones/{account or zone_id}/policies/{uid} endpoint.`,builder:R,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications policies delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/policies/${i[`policy-id`]==null?`<policy-id>`:encodeURIComponent(String(i[`policy-id`]))}`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"policy-id":String(i[`policy-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(u===`zones`?i.zoneId=d:i.accountId=d,!await _({force:!!i.force})){process.stderr.write(`Aborted.
|
|
5
5
|
`);return}o(await c(`Deleting`,async()=>l.zeroTrust.access.applications.policies.delete({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`],policy_id:i[`policy-id`]})),{successLabel:`Deleted`})}};function B(e){return e.positional(`policy-id`,{type:`string`,description:`The policy ID.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The application ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const V={command:`get <policy-id>`,describe:`Fetches a single Access policy configured for an application. Returns both exclusively owned and reusable policies used by the application.`,builder:B,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications policies get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/policies/${i[`policy-id`]==null?`<policy-id>`:encodeURIComponent(String(i[`policy-id`]))}`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"policy-id":String(i[`policy-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();u===`zones`?i.zoneId=d:i.accountId=d,o(await c(`Loading`,async()=>l.zeroTrust.access.applications.policies.get({account_or_zone:u,account_or_zone_id:d,app_id:i[`app-id`],policy_id:i[`policy-id`]})),{successLabel:`Loaded`})}};function H(e){return e.option(`app-id`,{type:`string`,description:`The application ID.`,demandOption:!0}).option(`page`,{type:`number`,description:`Page number of results.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const U={command:`list`,describe:`Lists Access policies configured for an application. Returns both exclusively scoped and reusable policies used by the application.`,builder:H,handler:async i=>{let l={page:i.page,per_page:i[`per-page`]};if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications policies list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/policies`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},query:l,bodyKind:`none`});return}let u=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},u,{quiet:i.quiet}):i.local?e:await t();d===`zones`?i.zoneId=f:i.accountId=f,o(await c(`Loading`,async()=>u.zeroTrust.access.applications.policies.list({account_or_zone:d,account_or_zone_id:f,app_id:i[`app-id`],...l})),{successLabel:`Loaded`})}};function W(e){return e.positional(`policy-id`,{type:`string`,description:`The policy ID.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The application ID.`,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 G={command:`update <policy-id>`,describe:`Updates an Access policy specific to an application. To update a reusable policy, use the /account or zones/{account or zone_id}/policies/{uid} endpoint.`,builder:W,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications policies update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/policies/${i[`policy-id`]==null?`<policy-id>`:encodeURIComponent(String(i[`policy-id`]))}`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"policy-id":String(i[`policy-id`]??``),"account-or-zone-id":String(r)},bodyKind:`json`,body:i.body===void 0?void 0:u(i.body)});return}let l=await a(i),d=i.zone===void 0?`accounts`:`zones`,f=d===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(d===`zones`?i.zoneId=f:i.accountId=f,i.body){let e=u(i.body);o(await c(`Updating`,async()=>l.zeroTrust.access.applications.policies.update({body:e,account_or_zone:d,account_or_zone_id:f,app_id:i[`app-id`],policy_id:i[`policy-id`]})),{successLabel:`Updated`});return}if(i.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},K={command:`policies`,describe:`Operations for access.applications.policies`,builder:e=>e.command(L).command(z).command(V).command(U).command(G).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function q(e){return e.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 J={command:`create`,describe:`Starts an Access policy test.`,builder:q,handler:async r=>{if(r.dryRun){s({command:`cf zero-trust access applications policy-tests create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/access/policy-tests`,pathParams:{},bodyKind:`json`,body:r.body===void 0?void 0:u(r.body)});return}let i=await a(r),l=r.local?e:await t();if(r.accountId=l,r.body){let e=u(r.body);o(await c(`Creating`,async()=>i.zeroTrust.access.applications.policyTests.create({...e,account_id:l})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>i.zeroTrust.access.applications.policyTests.create({account_id:l})),{successLabel:`Created`})}};function Y(e){return e.positional(`policy-test-id`,{type:`string`,description:`The UUID of the policy test.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const X={command:`get <policy-test-id>`,describe:`Fetches the current status of a given Access policy test.`,builder:Y,handler:async r=>{if(r.dryRun){s({command:`cf zero-trust access applications policy-tests get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/access/policy-tests/${r[`policy-test-id`]==null?`<policy-test-id>`:encodeURIComponent(String(r[`policy-test-id`]))}`,pathParams:{"policy-test-id":String(r[`policy-test-id`]??``)},bodyKind:`none`});return}let i=await a(r),l=r.local?e:await t();r.accountId=l,o(await c(`Loading`,async()=>i.zeroTrust.access.applications.policyTests.get({account_id:l,policy_test_id:r[`policy-test-id`]})),{successLabel:`Loaded`})}};function Z(e){return e.option(`policy-test-id`,{type:`string`,description:`The UUID of the policy test.`,demandOption:!0}).option(`page`,{type:`number`,description:`Page number of results.`}).option(`per-page`,{type:`number`,description:`Per page`}).option(`status`,{type:`string`,description:`Filter users by their policy evaluation status.`,choices:[`success`,`fail`,`error`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Q={command:`list`,describe:`Fetches a single page of user results from an Access policy test.`,builder:v(Z),handler:async r=>{let i={page:r.page,per_page:r[`per-page`],status:r.status};if(r.dryRun){s({command:`cf zero-trust access applications policy-tests users list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/access/policy-tests/${r[`policy-test-id`]==null?`<policy-test-id>`:encodeURIComponent(String(r[`policy-test-id`]))}/users`,pathParams:{"policy-test-id":String(r[`policy-test-id`]??``)},query:i,bodyKind:`none`});return}let l=await a(r),u=r.local?e:await t();r.accountId=u,o(await c(`Loading`,async()=>l.zeroTrust.access.applications.policyTests.users.list({account_id:u,policy_test_id:r[`policy-test-id`],...i})),{successLabel:`Loaded`})}},ne={command:`users`,describe:`Operations for access.applications.policy-tests.users`,builder:e=>e.command(Q).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},re={command:`policy-tests`,describe:`Operations for access.applications.policy-tests`,builder:e=>e.command(J).command(X).command(ne).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function ie(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 ae={command:`revoke-tokens <app-id>`,describe:`Revokes all tokens issued for an application.`,builder:ie,handler:async i=>{if(i.dryRun){let e=i.zone===void 0?await n():void 0,t=i.zone===void 0?`accounts`:`zones`,r=i.zone??e??`<account-id>`;s({command:`cf zero-trust access applications revoke-tokens`,method:`POST`,url:`https://api.cloudflare.com/client/v4/${t}/${r}/access/apps/${i[`app-id`]==null?`<app-id>`:encodeURIComponent(String(i[`app-id`]))}/revoke_tokens`,pathParams:{"account-or-zone":String(t),"app-id":String(i[`app-id`]??``),"account-or-zone-id":String(r)},bodyKind:`none`});return}let l=await a(i),u=i.zone===void 0?`accounts`:`zones`,d=u===`zones`?await r({zone:i.zone},l,{quiet:i.quiet}):i.local?e:await t();if(u===`zones`?i.zoneId=d:i.accountId=d,!await _({force:!!i.force,message:`This operation invalidates every service token for the app.`})){process.stderr.write(`Aborted.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{h as e}from"./oauth-
|
|
2
|
+
import{h as e}from"./oauth-DAa7SwkM.mjs";import{r as t}from"./auth-DY_Y2bXC.mjs";import{t as n}from"./output-BqDR9h74.mjs";import{t as r}from"./dry-run-ILZRVpnp.mjs";import{t as i}from"./progress-jYW64HY7.mjs";function a(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const o={command:`activate`,describe:`Triggeres a new activation check for a PENDING Zone. This can be triggered every 5 min for paygo/ent customers, every hour for FREE Zones.`,builder:a,handler:async a=>{if(a.dryRun){r({command:`cf zone activate`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/activation_check`,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(`Updating`,async()=>o.zone.activate({zone_id:s})),{successLabel:`Updated`})}},s={command:`zone`,describe:`zone`,builder:e=>e.command(o).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{s as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{h as e}from"./oauth-
|
|
2
|
+
import{h as e}from"./oauth-DAa7SwkM.mjs";import{r as t}from"./auth-DY_Y2bXC.mjs";import{t as n}from"./output-BqDR9h74.mjs";import{t as r}from"./dry-run-ILZRVpnp.mjs";import{t as i}from"./progress-jYW64HY7.mjs";import{n as a,r as o,t as s}from"./body-parser-BGVbwPeM.mjs";import{n as c}from"./input-validation-1esLElok.mjs";import{a as l,i as u,n as d}from"./prompt-CyATfGUu.mjs";import{t as f}from"./cli-types-C3nVfpSG.mjs";function ee(e){return e.option(`value-enabled`,{type:`boolean`,description:`Whether the feature is enabled or not.`}).option(`value-pool-id`,{type:`string`,description:`Egress pool id which refers to a grouping of dedicated egress IPs through which Cloudflare will connect to origin.`}).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 p={command:`edit`,describe:`Aegis provides dedicated egress IPs (from Cloudflare to your origin) for your layer 7 WAF and CDN services. The egress IPs are reserved exclusively for your account so that you can increase your origin security by only allowing traffic from a small list of IP addresses.`,builder:ee,handler:async o=>{if(o.dryRun){r({command:`cf zones aegis edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${o.zone??o.zoneId??`<zone>`}/settings/aegis`,pathParams:{"zone-id":String(o.zone??o[`zone-id`]??``)},bodyKind:`json`,body:o.body===void 0?s({value:{enabled:o[`value-enabled`],pool_id:c(o[`value-pool-id`],`value-pool-id`,`text`)}}):a(o.body)});return}let l=await t(o),u=await e({zone:o.zone},l,{quiet:o.quiet});if(o.zoneId=u,o.body){let e=a(o.body);n(await i(`Updating`,async()=>l.zones.aegis.edit({...e,zone_id:u})),{successLabel:`Updated`});return}let d=s({value:{enabled:o[`value-enabled`],pool_id:c(o[`value-pool-id`],`value-pool-id`,`text`)}});n(await i(`Updating`,async()=>l.zones.aegis.edit({...d,zone_id:u})),{successLabel:`Updated`})}};function m(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const h={command:`get`,describe:`Aegis provides dedicated egress IPs (from Cloudflare to your origin) for your layer 7 WAF and CDN services. The egress IPs are reserved exclusively for your account so that you can increase your origin security by only allowing traffic from a small list of IP addresses.`,builder:m,handler:async a=>{if(a.dryRun){r({command:`cf zones aegis get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/settings/aegis`,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.zones.aegis.get({zone_id:s})),{successLabel:`Loaded`})}},g={command:`aegis`,describe:`Operations for aegis`,builder:e=>e.command(p).command(h).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function _(e){return e.option(`account-id`,{type:`string`,description:`Identifier`}).option(`name`,{type:`string`,description:`The domain name. Per [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.4) the overall zone name can be up to 253 characters, with each segment ("label") not exceeding 63 characters.`}).option(`type`,{type:`string`,description:`A full zone implies that DNS is hosted with Cloudflare. A partial zone is
|
|
3
3
|
typically a partner-hosted zone or a CNAME setup.
|
|
4
4
|
`,choices:[`full`,`partial`,`secondary`,`internal`],default:`full`}).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 v={command:`create`,describe:`Creates a new zone (domain) in your Cloudflare account. The zone is created in a pending state and must be activated by updating your domain's nameservers to point to Cloudflare, or by completing the verification process for partial (CNAME) setups.`,builder:_,handler:async e=>{if(e.dryRun){r({command:`cf zones create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones`,pathParams:{},bodyKind:`json`,body:e.body===void 0?s({account:{id:c(e[`account-id`],`account-id`,`text`)},name:c(e.name,`name`,`text`),type:c(e.type,`type`,`text`)}):a(e.body)});return}let o=await t(e);if(e.body){let t=a(e.body);n(await i(`Creating`,async()=>o.zones.create({...t})),{successLabel:`Created`});return}e.name===void 0&&(e.name=await l(`name`,`The domain name. Per [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.4) the overall zone name can be up to 253 characters, with each segment ("label") not exceeding 63 characters.`));let u=s({account:{id:c(e[`account-id`],`account-id`,`text`)},name:c(e.name,`name`,`text`),type:c(e.type,`type`,`text`)});n(await i(`Creating`,async()=>o.zones.create({...u})),{successLabel:`Created`})}};function y(e){return e.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 b={command:`delete`,describe:`Deletes an existing zone.`,builder:y,handler:async a=>{if(a.dryRun){r({command:`cf zones delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}`,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});if(a.zoneId=s,!await d({force:!!a.force})){process.stderr.write(`Aborted.
|
|
5
5
|
`);return}n(await i(`Deleting`,async()=>o.zones.delete({zone_id:s})),{successLabel:`Deleted`})}};function x(e){return e.option(`paused`,{type:`boolean`,description:`Indicates whether the zone is only using Cloudflare DNS services. A
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cf",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "The Cloudflare CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -46,21 +46,22 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"blake3-wasm": "2.1.5",
|
|
49
|
-
"miniflare": "5.
|
|
49
|
+
"miniflare": "5.20260921.0-alpha"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@bomb.sh/tab": "0.0.15",
|
|
53
53
|
"@clack/core": "1.2.0",
|
|
54
54
|
"@clack/prompts": "^1.2.0",
|
|
55
|
-
"@cloudflare/autoconfig": "0.
|
|
56
|
-
"@cloudflare/build-output-utils": "0.
|
|
55
|
+
"@cloudflare/autoconfig": "0.6.0",
|
|
56
|
+
"@cloudflare/build-output-utils": "0.7.1",
|
|
57
57
|
"@cloudflare/cli-shared-helpers": "^0.1.0",
|
|
58
|
-
"@cloudflare/config": "0.
|
|
59
|
-
"@cloudflare/
|
|
58
|
+
"@cloudflare/config": "0.17.0",
|
|
59
|
+
"@cloudflare/containers-shared": "0.19.0",
|
|
60
|
+
"@cloudflare/deploy-helpers": "0.14.0",
|
|
60
61
|
"@cloudflare/forge": "file:../../vendor/cloudflare-forge-0.1.0.tgz",
|
|
61
62
|
"@cloudflare/forge-transformer-sdk-ts": "file:../../vendor/cloudflare-forge-transformer-sdk-ts-0.1.0.tgz",
|
|
62
63
|
"@cloudflare/workers-auth": "0.7.0",
|
|
63
|
-
"@cloudflare/workers-utils": "0.
|
|
64
|
+
"@cloudflare/workers-utils": "0.41.0",
|
|
64
65
|
"@types/node": "25.3.5",
|
|
65
66
|
"@types/shell-quote": "^1.7.5",
|
|
66
67
|
"@types/yargs": "17.0.35",
|
|
@@ -74,7 +75,7 @@
|
|
|
74
75
|
"shell-quote": "^1.8.1",
|
|
75
76
|
"tsdown": "^0.21.0",
|
|
76
77
|
"tsx": "4.21.0",
|
|
77
|
-
"undici": "7.
|
|
78
|
+
"undici": "7.29.0",
|
|
78
79
|
"vitest": "4.1.0",
|
|
79
80
|
"yargs": "18.0.0",
|
|
80
81
|
"zod": "4.4.3"
|
package/dist/args-DlUhyGU0.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
function e(e=process.argv.slice(2)){let t=!1;for(let[n,r]of e.entries()){if(r===`--quiet=false`||r===`-q=false`||r===`--no-quiet`){t=!1;continue}if(r===`--quiet=true`||r===`-q=true`){t=!0;continue}(r===`--quiet`||r===`-q`)&&(t=e[n+1]!==`false`)}return t}export{e as t};
|
package/dist/build-D0FhOj40.mjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{n as e}from"./chunk-vbHwaUoU.mjs";import{t}from"./src-gJma71Ec.mjs";import{O as n}from"./dist-BWpErtDM.mjs";import{a as r,o as i}from"./theme-CrIBazAF.mjs";import"./ui-CmnnBm_O.mjs";import{_ as a,a as o,b as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as ee,o as g,p as _,s as v,u as te,v as y,y as b}from"./dist-BHi7UhXO.mjs";import{c as x}from"./interactive-C7M55Wxx.mjs";import{a as ne,i as re,n as ie,r as ae,t as oe}from"./spawn-C5Z7oWdp.mjs";import*as S from"node:fs";import C from"node:fs";import*as w from"node:path";import T from"node:path";import"node:url";import{AsyncLocalStorage as se}from"node:async_hooks";import*as E from"node:fs/promises";var ce=Object.getOwnPropertyNames,le=(e,t)=>function(){return t||(0,e[ce(e)[0]])((t={exports:{}}).exports,t),t.exports};const D=f({remote:g().optional()}),ue=f({htmlHandling:p([`auto-trailing-slash`,`drop-trailing-slash`,`force-trailing-slash`,`none`]).optional(),notFoundHandling:p([`single-page-application`,`404-page`,`none`]).optional(),runWorkerFirst:y([o(d()),g()]).optional()}),de=f({type:m(`browser`),dev:D.optional()}),fe=f({type:m(`worker`),worker:d(),exportName:d().optional(),props:h(d(),b()).optional(),dev:D.optional()}),pe=f({type:m(`d1`),name:d().optional(),id:d().optional(),dev:D.optional()}),me=f({type:m(`kv`),id:d().optional(),dev:D.optional()}),he=f({type:m(`queue`),name:d().optional(),deliveryDelay:u().optional(),dev:D.optional()}),ge=f({type:m(`r2`),name:d().optional(),jurisdiction:d().optional(),dev:D.extend({experimentalS3Credentials:_({accessKeyId:d(),secretAccessKey:d()}).optional()}).optional()}),_e=f({type:m(`analytics-engine-dataset`),name:d().optional()}),ve=f({type:m(`flagship`),id:d().optional(),dev:D.optional()}),ye=f({type:m(`hyperdrive`),id:d(),dev:f({connectionString:d().optional()}).optional()}),be=v(`type`,[f({type:m(`agent-memory`),namespace:d(),dev:D.optional()}),f({type:m(`ai`),dev:D.optional()}),f({type:m(`ai-search`),name:d(),dev:D.optional()}),f({type:m(`ai-search-namespace`),namespace:d(),dev:D.optional()}),_e,f({type:m(`artifacts`),namespace:d(),dev:D.optional()}),f({type:m(`assets`)}),de,pe,f({type:m(`dispatch-namespace`),namespace:d().optional(),outbound:f({worker:d(),parameters:o(d()).optional()}).optional(),dev:D.optional()}),f({type:m(`durable-object`),worker:d(),exportName:d()}),ve,ye,f({type:m(`images`),dev:D.optional()}),f({type:m(`json`),value:c()}),me,f({type:m(`logfwdr`),destination:d()}),f({type:m(`media`),dev:D.optional()}),f({type:m(`mtls-certificate`),id:d(),dev:D.optional()}),f({type:m(`pipeline`),name:d(),dev:D.optional()}),he,f({type:m(`rate-limit`),namespace:d(),simple:f({limit:u(),period:y([m(10),m(60)])})}),ge,f({type:m(`secret`)}),f({type:m(`secrets-store-secret`),storeId:d(),secretName:d()}),f({type:m(`send-email`),destinationAddress:d().optional(),allowedDestinationAddresses:o(d()).optional(),allowedSenderAddresses:o(d()).optional(),dev:D.optional()}).refine(e=>e.destinationAddress===void 0||e.allowedDestinationAddresses===void 0,{message:`"send-email" bindings cannot specify both "destinationAddress" and "allowedDestinationAddresses"`}),f({type:m(`stream`),dev:D.optional()}),f({type:m(`text`),value:d()}),f({type:m(`vectorize`),name:d(),dev:D.optional()}),f({type:m(`version-metadata`)}),f({type:m(`vpc-service`),id:d(),dev:D.optional()}),f({type:m(`vpc-network`),tunnelId:d().optional(),networkId:d().optional(),dev:D.optional()}).refine(e=>e.tunnelId!==void 0!=(e.networkId!==void 0),{error:({input:e})=>{let t=e;return t.tunnelId!==void 0&&t.networkId!==void 0?`"vpc-network" bindings must specify exactly one of "tunnelId" or "networkId", not both`:`"vpc-network" bindings must specify either "tunnelId" or "networkId"`}}),f({type:m(`web-search`),dev:D.optional()}),fe,f({type:m(`worker-loader`)})]),xe=te({type:a([`unsafe:`,d().min(1)]),dev:f({plugin:f({package:d(),name:d()}),options:h(d(),b()).optional()}).optional()}),Se=b().transform((e,t)=>{let n=(typeof e==`object`&&e&&`type`in e&&typeof e.type==`string`&&e.type.startsWith(`unsafe:`)?xe:be).safeParse(e);return n.success?n.data:(t.issues.push(...n.error.issues),s)}),O=f({enabled:g(),crossVersionCache:g().optional()}),k=new Set([`ai`,`assets`,`browser`,`images`,`media`,`stream`,`version-metadata`,`web-search`]),A=new Intl.ListFormat(`en-US`);function j(e,t){let n=new Set,r=new Set;for(let t of Object.values(e)){let e=t.type;k.has(e)&&(n.has(e)&&r.add(e),n.add(e))}r.size>0&&t.addIssue({code:`custom`,message:`${A.format([...r].sort())} bindings can only be defined once`})}const Ce=h(d(),Se).superRefine(j).optional(),M=f({type:m(`durable-object`),state:m(`created`).optional(),storage:p([`sqlite`,`legacy-kv`]),container:d().optional()}),we=f({type:m(`durable-object`),state:m(`deleted`)}),Te=f({type:m(`durable-object`),state:m(`renamed`),renamedTo:d()}),Ee=f({type:m(`durable-object`),state:m(`transferred`),transferredTo:d()}),N=f({type:m(`durable-object`),state:m(`expecting-transfer`),storage:p([`sqlite`,`legacy-kv`]),transferFrom:d(),container:d().optional()}),De=f({type:m(`worker`),cache:f({enabled:g()}).optional()}),Oe=y([M.extend({storage:m(`sqlite`)}),M.omit({container:!0}).extend({storage:m(`legacy-kv`)}),we,Te,Ee,N.extend({storage:m(`sqlite`)}),N.omit({container:!0}).extend({storage:m(`legacy-kv`)}),De]),ke=f({cpuMs:u().optional(),subrequests:u().optional()}),Ae=f({enabled:g().optional(),headSamplingRate:u().optional(),redactQueryString:g().optional(),logs:f({enabled:g().optional(),headSamplingRate:u().optional(),invocationLogs:g().optional(),persist:g().optional(),destinations:o(d()).optional()}).optional(),traces:f({enabled:g().optional(),headSamplingRate:u().optional(),persist:g().optional(),destinations:o(d()).optional()}).optional()}),je=y([f({mode:p([`off`,`smart`]),hint:d().optional()}),f({mode:m(`targeted`).optional(),region:d()}),f({mode:m(`targeted`).optional(),host:d()}),f({mode:m(`targeted`).optional(),hostname:d()})]),Me=f({worker:d(),streaming:g().optional()}),Ne=v(`type`,[f({type:m(`email`),addresses:o(d())}),f({type:m(`fetch`),pattern:d(),zone:d().optional()}),f({type:m(`queue`),name:d(),deadLetterQueue:d().optional(),maxBatchSize:u().optional(),maxBatchTimeout:u().optional(),maxConcurrency:u().nullable().optional(),maxRetries:u().optional(),retryDelay:u().optional(),visibilityTimeoutMs:u().optional()}),f({type:m(`scheduled`),schedule:d()}),f({type:m(`connect`),protocol:p([`tcp`]),port:u(),address:d().optional()})]),Pe=f({metadata:h(d(),b()).optional(),capnp:y([f({basePath:d(),sourceSchemas:o(d()),compiledSchema:l().optional()}),f({basePath:l().optional(),sourceSchemas:l().optional(),compiledSchema:d()})]).optional()}),P=f({type:m(`worker`),name:d(),compatibilityDate:d(),compatibilityFlags:o(d()).optional(),assets:ue.optional(),domains:o(d()).optional(),triggers:o(Ne).optional(),tailConsumers:o(Me).optional(),cache:O.optional(),placement:je.optional(),limits:ke.optional(),logpush:g().optional(),observability:Ae.optional(),workersDev:g().optional(),previewUrls:g().optional(),firstPartyWorker:g().optional(),unsafe:Pe.optional(),env:Ce,exports:h(d(),Oe).optional()}),Fe=P.extend({entrypoint:y([d(),f({default:d()})]).transform(e=>typeof e==`string`?e:e.default).optional()}),F=f({type:m(`settings`),accountId:d().optional(),complianceRegion:p([`public`,`fedramp-high`]).optional()}),Ie=F.extend({mode:d().optional()}),I=`settings`,Le=new Set([`worker`,`settings`]);function Re(e){return`The \`${e}\` export is not a supported export type. Move constants, helper functions, and other unsupported exports to a separate module.`}const ze=h(d(),b()).check(e=>{for(let[t,n]of Object.entries(e.value)){let r=typeof n==`object`&&!!n,i=r&&`type`in n?n.type:void 0;if(typeof i!=`string`||!Le.has(i)){e.issues.push({code:`custom`,input:n,path:r?[t,`type`]:[t],message:Re(t)});continue}let a=t===I,o=i===`settings`;o&&!a?e.issues.push({code:`custom`,input:n,path:[t],message:`A \`settings\` config is only allowed on the \`${I}\` export; found one on the \`${t}\` export.`}):a&&!o&&e.issues.push({code:`custom`,input:n,path:[t],message:`The \`${I}\` export is reserved for a \`settings\` config; found a \`${i}\` config.`})}}),Be=_({settings:F.optional()}).catchall(Fe);ze.pipe(Be);const L=p([`esm`,`cjs`,`python`,`python-requirement`,`wasm`,`text`,`data`,`json`,`sourcemap`]),Ve=h(d(),f({type:L})),He=f({type:p([`partial`,`complete`]),mainModule:d(),modules:Ve}).superRefine((e,t)=>{let n=e.modules[e.mainModule];e.type===`complete`&&n===void 0&&t.addIssue({code:`custom`,path:[`modules`,e.mainModule],message:`A complete manifest must include its main module.`}),e.type===`partial`&&n!==void 0&&t.addIssue({code:`custom`,path:[`modules`,e.mainModule],message:`A partial manifest must not include its main module.`})}),Ue=P.extend({manifest:He.optional()});le({"../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/dist/index.js":(e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dedent=void 0;function t(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
|
|
3
|
-
[ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
|
|
4
|
-
`)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
|
|
5
|
-
`)&&(o=String(e).split(`
|
|
6
|
-
`).map(function(e,t){return t===0?e:``+i+e}).join(`
|
|
7
|
-
`)),a+=o+n[t+1]}),a}e.dedent=t})})();var We=Object.defineProperty,R=(e,t)=>We(e,`name`,{value:t,configurable:!0}),z=class extends Error{static{R(this,`UserError`)}telemetryMessage;constructor(e,t){super(e,t),Object.setPrototypeOf(this,new.target.prototype),this.telemetryMessage=typeof t?.telemetryMessage==`string`?t.telemetryMessage:t?.telemetryMessage?e:void 0}};(class extends z{static{R(this,`DeprecationError`)}constructor(e,t){super(`Deprecation:
|
|
8
|
-
${e}`,t)}});var B=class extends z{static{R(this,`FatalError`)}code;constructor(e,t){super(e,t),this.code=t.code}};(class extends z{static{R(this,`CommandLineArgsError`)}});var Ge=class extends B{static{R(this,`JsonFriendlyFatalError`)}};(class extends Error{static{R(this,`MissingConfigError`)}telemetryMessage;constructor(e){super(`Missing config value for ${e}`),this.telemetryMessage=`Missing config value for ${e}`}});function Ke(e,t,n){return t?new Ge(JSON.stringify(e),n):new B(`${e}`,n)}R(Ke,`createFatalError`),new se;const V=`config.json`,H=`default`;function U(e){return w.resolve(e,`.cloudflare/output`)}function qe(e){return w.join(U(e),`v0`,V)}function W(e){return w.join(U(e),`v0`,`workers`)}function G(e,t=H){if(t.length===0||t===`.`||t===`..`||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`))throw Error(`Worker directory names must be non-empty, single path segments.`);return w.join(W(e),t)}function Je(e,t=H){return w.join(G(e,t),V)}function Ye(e,t=H){return w.join(G(e,t),`bundle`)}function Xe(e,t=H){return w.join(G(e,t),`assets`)}var Ze=Object.defineProperty,K=(e,t)=>Ze(e,`name`,{value:t,configurable:!0});function Qe(e){return C.statSync(e,{throwIfNoEntry:!1})?.isDirectory()??!1}K(Qe,`isDirectory`);function $e(e,{fireAndForget:t=!1}={}){let n=C.promises.rm(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100});if(t)n.catch(()=>{});else return n}K($e,`removeDir`);function et(e){C.rmSync(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100})}K(et,`removeDirSync`);var q=class extends Error{constructor(e){super(`Build Output Specification: ${e}`),this.name=`BuildOutputError`}};async function J(e){let t=await it(e),n=await Y(e,H),r=(await E.readdir(W(e),{withFileTypes:!0})).filter(e=>e.isDirectory()&&e.name!==`default`).map(e=>e.name).sort(),i=await Promise.all(r.map(async t=>[t,await Y(e,t)]));return{root:e,version:`v0`,settings:t,workers:{default:n,...Object.fromEntries(i)}}}async function Y(e,t){let n=Je(e,t);if(!S.existsSync(n))throw new q(`no Worker config found at ${n}.`);let r=await E.readFile(n,`utf-8`),i=Ue.safeParse(X(r,n));if(!i.success)throw new q(`invalid Worker config at ${n}.\n${i.error.message}`);let a=Ye(e,t),o=Xe(e,t),s=S.existsSync(a),c=S.existsSync(o);if(i.data.manifest&&!s)throw new q(`Worker config at ${n} contains a manifest, but no bundle directory exists at ${a}.`);if(s)return{configPath:n,config:await tt(i.data,n,a),bundleDir:a,assetsDir:c?o:void 0};if(c){let{manifest:e,...t}=i.data;return{configPath:n,config:t,bundleDir:void 0,assetsDir:o}}throw new q(`Worker config at ${n} has neither a bundle directory (${a}) nor an assets directory (${o}).`)}async function tt(e,t,n){let{manifest:r,...i}=e;if(r===void 0)return i;if(r.type===`complete`)return{...i,manifest:{...r,type:`complete`}};let a=await nt(n);if(a[r.mainModule]?.type!==`esm`)throw new q(`partial manifest at ${t} has main module "${r.mainModule}", but it was not found as an ES module in the bundle.`);let o={...a,...r.modules};return{...i,manifest:{type:`complete`,mainModule:r.mainModule,modules:o}}}async function nt(e){let t={},n=await E.readdir(e,{recursive:!0,withFileTypes:!0});for(let r of n){let n=r.isFile()?rt(r.name):void 0;if(n!==void 0){let i=w.relative(e,w.join(r.parentPath,r.name)).split(w.sep).join(`/`);t[i]={type:n}}}return t}function rt(e){switch(w.extname(e)){case`.js`:case`.mjs`:return`esm`;case`.map`:return`sourcemap`}}async function it(e){let t=qe(e);if(!S.existsSync(t))return;let n=await E.readFile(t,`utf-8`),r=Ie.safeParse(X(n,t));if(!r.success)throw new q(`invalid settings config at ${t}.\n${r.error.message}`);return r.data}function X(e,t){try{return JSON.parse(e)}catch(e){throw new q(`could not parse JSON at ${t}.\n${e instanceof Error?e.message:String(e)}`)}}var Z=class extends Error{constructor(e){super(e),this.name=`BuildOutputConfigError`}};function Q(e,t){let n=e.config,r=ee(n,t);n.manifest?.mainModule&&e.bundleDir&&(r.main=T.join(e.bundleDir,n.manifest.mainModule));let i=T.resolve(`cloudflare.config.ts`);return{wranglerConfig:at(r,e.configPath,i),builtConfig:n}}function at(e,t,r){let{config:i,diagnostics:a}=n(e,t,r,{});if(a.hasErrors())throw new Z(a.renderErrors());return a.hasWarnings()&&console.warn(a.renderWarnings()),i}var ot=e({default:()=>lt,runBuild:()=>$});function st(e){return e}async function $(e,n={}){let a=n.output??`stdout`,o=process.cwd(),s=await ae(o,n),c=s?.buildCommand;s&&!s.configured&&(c=(await re(s,n)).buildCommand),a!==`silent`&&x.message(r.bold(`Build`),{symbol:i.dim(`├`),spacing:0,output:a===`stderr`?process.stderr:void 0});let l;if(c)l=await ne(c,o,{...n,env:s?.env,args:e?[`--mode`,e]:[]});else{let t=ie(o);a!==`silent`&&x.message(`Delegating to ${ct(t)}`,{spacing:0,output:a===`stderr`?process.stderr:void 0}),l=await oe(t,`build`,e?[`--mode`,e]:[],n)}if(l!==0)throw new t(l);let{workers:{default:u},settings:d}=await J(o);Q(u,d),a!==`silent`&&x.success(`Build complete`,{spacing:0,output:a===`stderr`?process.stderr:void 0})}function ct(e){switch(e.impl.pkg){case`@cloudflare/vite-plugin`:return`Vite`;case`wrangler`:return`Wrangler`;case`cloudflare-py-dev-server`:return`the Python dev server`;case`cloudflare-rs-dev-server`:return`the Rust dev server`;default:return e.impl.pkg}}const lt={command:`build`,describe:`Build a project for Cloudflare`,builder:st,handler:async e=>{await $(e.mode)}};export{J as a,Q as i,$ as n,Z as r,ot as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{v as e}from"./dist-BWpErtDM.mjs";import{t}from"./chunk-QBZBEHZB-CKzQKcIp.mjs";import{analyseBundle as n,getBundleSize as r,summarizeStartupProfile as i}from"./startup-profile-GLNPHQ9U.mjs";import{t as a}from"./output-Ccqw2WOb.mjs";import{t as o}from"./progress-BqQcF5QH.mjs";import{a as s,i as c,n as l,r as u}from"./build-D0FhOj40.mjs";import{t as d}from"./deploy-input-Dz6q-__n.mjs";import f from"node:path";import{writeFile as p}from"node:fs/promises";function m(e){return e.option(`outfile`,{type:`string`,description:`Output file for the startup CPU profile`,default:`worker-startup.cpuprofile`,requiresArg:!0}).option(`prebuilt`,{type:`boolean`,description:`Use existing Build Output API files without building`,default:!1})}const h={command:`check`,describe:`Profile a Worker's startup performance`,builder:m,handler:async m=>{if(m.local)throw Error(`--local is not supported by cf workers check.`);m.prebuilt||await l(m.mode,{output:m.quiet?`silent`:`stderr`});let{workers:{default:h},settings:g}=await s(process.cwd()),{wranglerConfig:_,builtConfig:v}=c(h,g),y=d(h,v);if(!y.resolvedEntryPointPath)throw new u(`Startup profiling requires a Worker entrypoint; assets-only projects cannot be profiled.`);if(y.bundleType===`commonjs`)throw new u(`Startup profiling does not support service-worker format Workers. Refer to https://developers.cloudflare.com/workers/reference/migrate-to-module-workers/ for migration guidance.`);let b=t({name:_.name??h.config.name??`worker`,main:{name:v.manifest?.mainModule??f.basename(y.resolvedEntryPointPath),filePath:y.resolvedEntryPointPath,content:y.content,type:y.bundleType},modules:y.modules,sourceMaps:y.sourceMaps,compatibility_date:_.compatibility_date,compatibility_flags:_.compatibility_flags??[],assets:void 0,containers:void 0,migrations:void 0,exports:void 0,keepVars:void 0,keepSecrets:void 0,logpush:void 0,placement:void 0,tail_consumers:void 0,streaming_tail_consumers:void 0,limits:void 0,annotations:void 0,observability:void 0,cache:void 0,package_dependencies:void 0},e(_),{dryRun:!0,unsafe:_.unsafe}),x=await r(b),S=m.quiet?await n(b):await o(`Profiling Worker startup`,()=>n(b)),C=i(S);await p(m.outfile,JSON.stringify(S)),a({bundle:{sizeBytes:x.size,gzipSizeBytes:x.gzipSize},startup:{profileWindowMs:C.profileWindow/1e3,sampledTimeMs:C.sampledTime/1e3,activeTimeMs:C.activeTime/1e3,garbageCollectionTimeMs:C.garbageCollectionTime/1e3,idleTimeMs:C.idleTime/1e3,sampleCount:C.sampleCount},profile:m.outfile,note:`This profile was measured locally. Use it to understand where startup time is spent, not to predict startup time on Cloudflare.`},{quiet:m.quiet})}};export{h as default};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{t as e}from"./local-Be3lg_9E.mjs";import{f as t,g as n}from"./oauth-DuEONNgC.mjs";import{r}from"./auth-D3X9HYhD.mjs";import{t as i}from"./output-Ccqw2WOb.mjs";import{t as a}from"./dry-run-DL2V6yFm.mjs";import{t as o}from"./progress-BqQcF5QH.mjs";import{n as s,r as c,t as l}from"./body-parser-BshbixEq.mjs";import{n as u}from"./input-validation-QDIYu7Vb.mjs";import{a as d,i as f,n as p}from"./prompt-B0sWIs9c.mjs";import{t as m}from"./cli-types-DAYeL_Mj.mjs";function h(e){return e.option(`configuration-command`,{type:`string`,array:!0,description:`The command that runs when the container starts, passed to the entrypoint.
|
|
3
|
-
You can override this at run-time. If you override only the command,
|
|
4
|
-
it gets passed to the default entrypoint specified in the image.
|
|
5
|
-
`}).option(`configuration-entrypoint`,{type:`string`,array:!0,description:`The entry point for the container, specifying the executable to run when the container starts.
|
|
6
|
-
You can override this at run-time. If you do, the default command from the image is ignored.
|
|
7
|
-
Specify both entrypoint and command at run-time to completely replace the image defaults.
|
|
8
|
-
`}).option(`configuration-image`,{type:`string`,description:`Image url.`}).option(`configuration-instance-type`,{type:`string`,description:`The instance type configures vCPU, memory, and disk.
|
|
9
|
-
|
|
10
|
-
- "lite": 1/16 vCPU, 256 MiB memory, 2 GB disk
|
|
11
|
-
- "basic": 1/4 vCPU, 1 GiB memory, 4 GB disk
|
|
12
|
-
- "standard-1": 1/2 vCPU, 4 GiB memory, 8 GB disk
|
|
13
|
-
- "standard-2": 1 vCPU, 6 GiB memory, 12 GB disk
|
|
14
|
-
- "standard-3": 2 vCPU, 8 GiB memory, 16 GB disk
|
|
15
|
-
- "standard-4": 4 vCPU, 12 GiB memory, 20 GB disk
|
|
16
|
-
`}).option(`configuration-observability-logs-enabled`,{type:`boolean`,description:`The configuration.observability.logs.enabled field`}).option(`constraints-jurisdiction`,{type:`string`,description:`Currently supports only "eu" and "fedramp". Overlap between jurisdiction and region is allowed for ENAM, WNAM (FedRAMP) and EEUR, WEUR (EU).`}).option(`constraints-regions`,{type:`string`,array:!0,description:`The constraints.regions field`}).option(`instances`,{type:`number`,description:`The initial number of deployments to create.`}).option(`max-instances`,{type:`number`,description:`Sets the maximum number of instances that the application can run.`}).option(`name`,{type:`string`,description:`The name for this application.`}).option(`observability-logs-enabled`,{type:`boolean`,description:`The observability.logs.enabled field`}).option(`rollout-active-grace-period`,{type:`number`,description:`Grace period for active instances to stay alive before becoming eligible for shutdown signal due to a rollout, in seconds.
|
|
17
|
-
Defaults to 0.
|
|
18
|
-
`,default:0}).option(`scheduling-policy`,{type:`string`,description:`Selects a scheduler-backed application. Use \`default\` when the Containers
|
|
19
|
-
scheduler should maintain the requested number of instances and manage deployment
|
|
20
|
-
configuration, placement, scaling, versions, and rollouts.
|
|
21
|
-
`,choices:[`default`,`durable_object`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:"Create a Containers application. Set `scheduling_policy` to `default` for a scheduler-backed application with deployment configuration, instance counts, constraints, versions, and rollouts. Set it to `durable_object` for a Durable Object-managed application where each Durable Object creates and manages the lifecycle of its container instance. For `durable_object` requests, supply only `name`, `scheduling_policy`, and `durable_objects`. "}).implies(`instances`,[`max-instances`]).implies(`max-instances`,[`instances`]).check(e=>{if([`configuration-command`,`configuration-entrypoint`,`configuration-image`,`configuration-instance-type`,`configuration-observability-logs-enabled`].some(t=>e[t]!==void 0)){let t=[`configuration-image`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --configuration-* flag is set`)}return!0})}const g={command:`create`,describe:'Create a Containers application. Use `scheduling_policy: "default"` for a scheduler-backed application. The Containers scheduler maintains the requested instance count and manages deployment configuration, placement, scaling, versions, and rollouts. Use `scheduling_policy: "durable_object"` for a Durable Object-managed application. Each Durable Object creates and manages the lifecycle of its container instance. This request accepts only `name`, `scheduling_policy`, and `durable_objects`. Application-level configuration, scaling, constraints, versions, and rollouts do not apply.',builder:h,handler:async c=>{if(c.dryRun){a({command:`cf containers applications create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications`,pathParams:{},bodyKind:`json`,body:c.body===void 0?l({configuration:{command:c[`configuration-command`],entrypoint:c[`configuration-entrypoint`],image:u(c[`configuration-image`],`configuration-image`,`text`),instance_type:u(c[`configuration-instance-type`],`configuration-instance-type`,`text`),observability:{logs:{enabled:c[`configuration-observability-logs-enabled`]}}},constraints:{jurisdiction:u(c[`constraints-jurisdiction`],`constraints-jurisdiction`,`text`),regions:c[`constraints-regions`]},instances:c.instances,max_instances:c[`max-instances`],name:u(c.name,`name`,`text`),observability:{logs:{enabled:c[`observability-logs-enabled`]}},rollout_active_grace_period:c[`rollout-active-grace-period`],scheduling_policy:u(c[`scheduling-policy`],`scheduling-policy`,`text`)}):s(c.body)});return}let p=await r(c),m=c.local?e:await t();if(c.accountId=m,c.body){let e=s(c.body);i(await o(`Creating`,async()=>p.containers.applications.create({body:e,account_id:m})),{successLabel:`Created`});return}c.name===void 0&&(c.name=await d(`name`,`The name for this application.`)),c[`scheduling-policy`]===void 0&&(c[`scheduling-policy`]=await f(`scheduling-policy`,"Selects a scheduler-backed application. Use `default` when the Containers scheduler should maintain the requested number of instances and manage deployment configuration, placement, scaling, versions, and rollouts. ",[`default`,`durable_object`]));let h=l({configuration:{command:c[`configuration-command`],entrypoint:c[`configuration-entrypoint`],image:u(c[`configuration-image`],`configuration-image`,`text`),instance_type:u(c[`configuration-instance-type`],`configuration-instance-type`,`text`),observability:{logs:{enabled:c[`configuration-observability-logs-enabled`]}}},constraints:{jurisdiction:u(c[`constraints-jurisdiction`],`constraints-jurisdiction`,`text`),regions:c[`constraints-regions`]},instances:c.instances,max_instances:c[`max-instances`],name:u(c.name,`name`,`text`),observability:{logs:{enabled:c[`observability-logs-enabled`]}},rollout_active_grace_period:c[`rollout-active-grace-period`],scheduling_policy:u(c[`scheduling-policy`],`scheduling-policy`,`text`)});i(await o(`Creating`,async()=>p.containers.applications.create({body:h,account_id:m})),{successLabel:`Created`})}};function _(e){return e.positional(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,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 v={command:`delete <application-id>`,describe:`Deletes a single application by id.`,builder:_,handler:async s=>{if(s.dryRun){a({command:`cf containers applications delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${s[`application-id`]==null?`<application-id>`:encodeURIComponent(String(s[`application-id`]))}`,pathParams:{"application-id":String(s[`application-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await p({force:!!s.force,message:`This operation permanently deletes the application and stops its containers.`})){process.stderr.write(`Aborted.
|
|
22
|
-
`);return}i(await o(`Deleting`,async()=>c.containers.applications.delete({account_id:l,application_id:s[`application-id`]})),{successLabel:`Deleted`})}};function y(e){return e.positional(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`constraints-jurisdiction`,{type:`string`,description:`Currently supports only "eu" and "fedramp". Overlap between jurisdiction and region is allowed for ENAM, WNAM (FedRAMP) and EEUR, WEUR (EU).`}).option(`constraints-regions`,{type:`string`,array:!0,description:`The constraints.regions field`}).option(`max-instances`,{type:`number`,description:`Maximum number of instances that an autoscaling application can run.`}).option(`observability-logs-enabled`,{type:`boolean`,description:`The observability.logs.enabled field`}).option(`rollout-active-grace-period`,{type:`number`,description:`Grace period for active instances to stay alive before becoming eligible for shutdown signal due to a rollout, in seconds.
|
|
23
|
-
Defaults to 0.
|
|
24
|
-
`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Request body for modifying a Containers application without replacing its instances. Deployment configuration changes such as image, resource allocation, command, and environment variables require an application rollout. `})}const b={command:`edit <application-id>`,describe:`Modifies a single application by id. Changes that replace instance deployment configuration, including the image, must be applied with a rollout.`,builder:y,handler:async c=>{if(c.dryRun){a({command:`cf containers applications edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${c[`application-id`]==null?`<application-id>`:encodeURIComponent(String(c[`application-id`]))}`,pathParams:{"application-id":String(c[`application-id`]??``)},bodyKind:`json`,body:c.body===void 0?l({constraints:{jurisdiction:u(c[`constraints-jurisdiction`],`constraints-jurisdiction`,`text`),regions:c[`constraints-regions`]},max_instances:c[`max-instances`],observability:{logs:{enabled:c[`observability-logs-enabled`]}},rollout_active_grace_period:c[`rollout-active-grace-period`]}):s(c.body)});return}let d=await r(c),f=c.local?e:await t();if(c.accountId=f,c.body){let e=s(c.body);i(await o(`Updating`,async()=>d.containers.applications.edit({...e,account_id:f,application_id:c[`application-id`]})),{successLabel:`Updated`});return}let p=l({constraints:{jurisdiction:u(c[`constraints-jurisdiction`],`constraints-jurisdiction`,`text`),regions:c[`constraints-regions`]},max_instances:c[`max-instances`],observability:{logs:{enabled:c[`observability-logs-enabled`]}},rollout_active_grace_period:c[`rollout-active-grace-period`]});i(await o(`Updating`,async()=>d.containers.applications.edit({...p,account_id:f,application_id:c[`application-id`]})),{successLabel:`Updated`})}};function x(e){return e.positional(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const S={command:`get <application-id>`,describe:`Returns a single application by id.`,builder:x,handler:async s=>{if(s.dryRun){a({command:`cf containers applications get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${s[`application-id`]==null?`<application-id>`:encodeURIComponent(String(s[`application-id`]))}`,pathParams:{"application-id":String(s[`application-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.containers.applications.get({account_id:l,application_id:s[`application-id`]})),{successLabel:`Loaded`})}};function C(e){return e.positional(`instance-id`,{type:`string`,description:`A container instance ID (64-character hex Durable Object actor ID).`,demandOption:!0}).option(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const w={command:`get <instance-id>`,describe:`Returns a container instance belonging to an application.`,builder:C,handler:async s=>{if(s.dryRun){a({command:`cf containers applications instances get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${s[`application-id`]==null?`<application-id>`:encodeURIComponent(String(s[`application-id`]))}/instances/${s[`instance-id`]==null?`<instance-id>`:encodeURIComponent(String(s[`instance-id`]))}`,pathParams:{"application-id":String(s[`application-id`]??``),"instance-id":String(s[`instance-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.containers.applications.instances.get({account_id:l,application_id:s[`application-id`],instance_id:s[`instance-id`]})),{successLabel:`Loaded`})}};function T(e){return e.option(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`per-page`,{type:`number`,description:`Maximum number of instances to return per page. Defaults to all.`}).option(`page-token`,{type:`string`,description:`Opaque token from a previous response to retrieve the next page.`}).option(`state`,{type:`string`,description:"Filters instances by lifecycle state. `active` includes provisioning, running, and stopping instances; `not-active` includes stopped and failed instances. When omitted, all instances are returned.",choices:[`active`,`not-active`]}).option(`name-prefix`,{type:`string`,description:`Filter instances by a case-sensitive name prefix. Keep the same prefix when using a page token.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`list`,describe:`Lists container instances belonging to an application.`,builder:m(T),handler:async s=>{let c={per_page:s[`per-page`],page_token:s[`page-token`],state:s.state,name_prefix:s[`name-prefix`]};if(s.dryRun){a({command:`cf containers applications instances list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${s[`application-id`]==null?`<application-id>`:encodeURIComponent(String(s[`application-id`]))}/instances`,pathParams:{"application-id":String(s[`application-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.containers.applications.instances.list({account_id:u,application_id:s[`application-id`],...c})),{successLabel:`Loaded`})}},D={command:`instances`,describe:`Inspect Containers instances belonging to applications`,builder:e=>e.command(w).command(E).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function O(e){return e.option(`name`,{type:`string`,description:`Filter applications by name.`}).option(`image`,{type:`string`,description:`Filter applications by image.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const k={command:`list`,describe:`Lists all the applications that are associated with your account.`,builder:O,handler:async s=>{let c={name:s.name,image:s.image};if(s.dryRun){a({command:`cf containers applications list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications`,pathParams:{},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.containers.applications.list({account_id:u,...c})),{successLabel:`Loaded`})}};function A(e){return e.positional(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`description`,{type:`string`,description:`Description of the rollout process.`}).option(`kind`,{type:`string`,description:`Kind of the rollout process. Defaults to "full_auto".
|
|
25
|
-
- "full_auto": For rolling rollouts, starts progressing steps upon rollout creation. For new_instances rollouts, advances percentage targets automatically after target-version health is observed.
|
|
26
|
-
- "full_manual": Requires manually progressing each step in the rollout using the UpdateRollout's action parameter.
|
|
27
|
-
`,choices:[`full_auto`,`full_manual`],default:`full_auto`}).option(`percentage`,{type:`number`,description:`Initial target version percentage (0-100). Version sync actively replaces instances to match.
|
|
28
|
-
Required when strategy is "new_instances" and kind is "full_manual". When strategy is "new_instances" and kind is "full_auto", omitted percentage starts at 10% or the smallest percentage that targets at least one instance. Unused for "rolling".
|
|
29
|
-
`}).option(`step-percentage`,{type:`number`,description:`Percentage of rollout to increase in each step when "steps" is absent. Applicable values: 5, 10, 20, 25, 50, 100.
|
|
30
|
-
These create rollouts with 20, 10, 5, 4, 2, 1 steps respectively.
|
|
31
|
-
Only valid for "rolling" strategy.
|
|
32
|
-
`}).option(`steps`,{type:`string`,description:`Steps defining the rollout process, used when "step_percentage" is absent.
|
|
33
|
-
Specify only one of "step_percentage" or "steps" when creating a rollout.
|
|
34
|
-
"steps" allow granular control over each step.
|
|
35
|
-
Only valid for "rolling" strategy.
|
|
36
|
-
. Provide as a JSON array of objects or @path/to/file.json.`}).option(`strategy`,{type:`string`,description:`Strategy used for the rollout.
|
|
37
|
-
- "rolling": Step-based rollout with health gates. Actively replaces instances to reach each step's target percentage.
|
|
38
|
-
- "new_instances": Percentage control over version distribution. Version sync actively replaces instances to match the configured percentage. The "full_auto" kind advances through fixed percentage targets after target-version health is observed.
|
|
39
|
-
`,choices:[`rolling`,`new_instances`]}).option(`target-configuration-command`,{type:`string`,array:!0,description:`The command that runs when the container starts, passed to the entrypoint.
|
|
40
|
-
You can override this at run-time. If you override only the command,
|
|
41
|
-
it gets passed to the default entrypoint specified in the image.
|
|
42
|
-
`}).option(`target-configuration-entrypoint`,{type:`string`,array:!0,description:`The entry point for the container, specifying the executable to run when the container starts.
|
|
43
|
-
You can override this at run-time. If you do, the default command from the image is ignored.
|
|
44
|
-
Specify both entrypoint and command at run-time to completely replace the image defaults.
|
|
45
|
-
`}).option(`target-configuration-image`,{type:`string`,description:`Image url.`}).option(`target-configuration-instance-type`,{type:`string`,description:`The instance type configures vCPU, memory, and disk.
|
|
46
|
-
|
|
47
|
-
- "lite": 1/16 vCPU, 256 MiB memory, 2 GB disk
|
|
48
|
-
- "basic": 1/4 vCPU, 1 GiB memory, 4 GB disk
|
|
49
|
-
- "standard-1": 1/2 vCPU, 4 GiB memory, 8 GB disk
|
|
50
|
-
- "standard-2": 1 vCPU, 6 GiB memory, 12 GB disk
|
|
51
|
-
- "standard-3": 2 vCPU, 8 GiB memory, 16 GB disk
|
|
52
|
-
- "standard-4": 4 vCPU, 12 GiB memory, 20 GB disk
|
|
53
|
-
`,default:`lite`}).option(`target-configuration-observability-logs-enabled`,{type:`boolean`,description:`The target_configuration.observability.logs.enabled field`,default:!1}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Request body to create a new rollout for a scheduler-backed application.`})}const j={command:`create <application-id>`,describe:'Creates a rollout to update the application\'s configuration across instances with minimal downtime. Rollouts apply only to scheduler-backed applications with `scheduling_policy: "default"`. Versions and rollouts do not apply to applications with `scheduling_policy: "durable_object"`.',builder:A,handler:async p=>{if(p.dryRun){a({command:`cf containers applications rollouts create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${p[`application-id`]==null?`<application-id>`:encodeURIComponent(String(p[`application-id`]))}/rollouts`,pathParams:{"application-id":String(p[`application-id`]??``)},bodyKind:`json`,body:p.body===void 0?l({description:u(p.description,`description`,`text`),kind:u(p.kind,`kind`,`text`),percentage:p.percentage,step_percentage:p[`step-percentage`],steps:c(p.steps,`steps`),strategy:u(p.strategy,`strategy`,`text`),target_configuration:{command:p[`target-configuration-command`],entrypoint:p[`target-configuration-entrypoint`],image:u(p[`target-configuration-image`],`target-configuration-image`,`text`),instance_type:u(p[`target-configuration-instance-type`],`target-configuration-instance-type`,`text`),observability:{logs:{enabled:p[`target-configuration-observability-logs-enabled`]}}}}):s(p.body)});return}let m=await r(p),h=p.local?e:await t();if(p.accountId=h,p.body){let e=s(p.body);i(await o(`Creating`,async()=>m.containers.applications.rollouts.create({...e,account_id:h,application_id:p[`application-id`]})),{successLabel:`Created`});return}p.description===void 0&&(p.description=await d(`description`,`Description of the rollout process.`)),p.strategy===void 0&&(p.strategy=await f(`strategy`,`Strategy used for the rollout. - "rolling": Step-based rollout with health gates. Actively replaces instances to reach each step's target percentage. - "new_instances": Percentage control over version distribution. Version sync actively replaces instances to match the configured percentage. The "full_auto" kind advances through fixed percentage targets after target-version health is observed. `,[`rolling`,`new_instances`]));let g=l({description:u(p.description,`description`,`text`),kind:u(p.kind,`kind`,`text`),percentage:p.percentage,step_percentage:p[`step-percentage`],steps:c(p.steps,`steps`),strategy:u(p.strategy,`strategy`,`text`),target_configuration:{command:p[`target-configuration-command`],entrypoint:p[`target-configuration-entrypoint`],image:u(p[`target-configuration-image`],`target-configuration-image`,`text`),instance_type:u(p[`target-configuration-instance-type`],`target-configuration-instance-type`,`text`),observability:{logs:{enabled:p[`target-configuration-observability-logs-enabled`]}}}});i(await o(`Creating`,async()=>m.containers.applications.rollouts.create({...g,account_id:h,application_id:p[`application-id`]})),{successLabel:`Created`})}},M={command:`rollouts`,describe:`Manage rollouts for scheduler-backed applications`,builder:e=>e.command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function N(e){return e.option(`application-id`,{type:`string`,description:`An Application ID represents an identifier of an application.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const P={command:`list`,describe:'Returns all versions for a scheduler-backed application with `scheduling_policy: "default"`. Versions and rollouts do not apply to applications with `scheduling_policy: "durable_object"`.',builder:N,handler:async s=>{if(s.dryRun){a({command:`cf containers applications versions list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/applications/${s[`application-id`]==null?`<application-id>`:encodeURIComponent(String(s[`application-id`]))}/versions`,pathParams:{"application-id":String(s[`application-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.containers.applications.versions.list({account_id:l,application_id:s[`application-id`]})),{successLabel:`Loaded`})}},F={command:`versions`,describe:`Inspect versions of scheduler-backed applications`,builder:e=>e.command(P).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},I={command:`applications`,describe:`Manage Containers applications`,builder:e=>e.command(g).command(v).command(b).command(S).command(k).command(D).command(M).command(F).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function L(e){return e.option(`image`,{type:`string`,description:`Image url.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`A digest-pinned managed container image to prepare for the new runtime.`})}const R={command:`prepare`,describe:`Idempotently starts or observes preparation of the runtime artifacts required to run one digest-pinned managed container image on Cloudflare's network. Returns 202 while durable preparation continues and 200 when the image is ready or preparation has reached a terminal error.`,builder:L,handler:async c=>{if(c.dryRun){a({command:`cf containers images prepare`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/image-preparations`,pathParams:{},bodyKind:`json`,body:c.body===void 0?l({image:u(c.image,`image`,`text`)}):s(c.body)});return}let f=await r(c),p=c.local?e:await t();if(c.accountId=p,c.body){let e=s(c.body);i(await o(`Creating`,async()=>f.containers.images.prepare({...e,account_id:p})),{successLabel:`Created`});return}c.image===void 0&&(c.image=await d(`image`,`Image url.`));let m=l({image:u(c.image,`image`,`text`)});i(await o(`Creating`,async()=>f.containers.images.prepare({...m,account_id:p})),{successLabel:`Created`})}},z={command:`images`,describe:`Operations for images`,builder:e=>e.command(R).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function B(e){return e.option(`auth-private-credential-secret-name`,{type:`string`,description:`Name of the secret within the store.`}).option(`auth-private-credential-store-id`,{type:`string`,description:`Identifier of the Secrets Store containing the secret.`}).option(`auth-public-credential`,{type:`string`,description:`The non-secret part of the registry credential: an AWS access key ID for ECR,
|
|
54
|
-
a username for Docker Hub, or a service account email for Google Artifact Registry.
|
|
55
|
-
`}).option(`domain`,{type:`string`,description:"Hostname of the private registry, without a scheme or image path. Supported\nhostnames are `docker.io`, AWS ECR hostnames, and Google Artifact Registry\n`*-docker.pkg.dev` hostnames.\n"}).option(`is-public`,{type:`boolean`,description:`Omit this field or set it to \`false\`. Public Docker Hub images do not require
|
|
56
|
-
registry configuration and cannot be added with this endpoint.
|
|
57
|
-
`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Configuration for connecting Containers to a supported private external image registry. See [Image management](https://developers.cloudflare.com/containers/platform-details/image-management/) for supported providers and credential setup instructions. `})}const V={command:`create`,describe:`Registers credentials for a supported private external image registry so Containers can pull images from it. This endpoint does not create a registry or upload an image. Public Docker Hub images and images in the Cloudflare managed registry do not require this configuration. Refer to [Image management](https://developers.cloudflare.com/containers/platform-details/image-management/) for supported registries and instructions for storing registry credentials.`,builder:B,handler:async c=>{if(c.dryRun){a({command:`cf containers registries create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/registries`,pathParams:{},bodyKind:`json`,body:c.body===void 0?l({auth:{private_credential:{secret_name:u(c[`auth-private-credential-secret-name`],`auth-private-credential-secret-name`,`text`),store_id:u(c[`auth-private-credential-store-id`],`auth-private-credential-store-id`,`text`)},public_credential:u(c[`auth-public-credential`],`auth-public-credential`,`text`)},domain:u(c.domain,`domain`,`text`),is_public:c[`is-public`]}):s(c.body)});return}let f=await r(c),p=c.local?e:await t();if(c.accountId=p,c.body){let e=s(c.body);i(await o(`Creating`,async()=>f.containers.registries.create({...e,account_id:p})),{successLabel:`Created`});return}c[`auth-private-credential-secret-name`]===void 0&&(c[`auth-private-credential-secret-name`]=await d(`auth-private-credential-secret-name`,`Name of the secret within the store.`)),c[`auth-private-credential-store-id`]===void 0&&(c[`auth-private-credential-store-id`]=await d(`auth-private-credential-store-id`,`Identifier of the Secrets Store containing the secret.`)),c[`auth-public-credential`]===void 0&&(c[`auth-public-credential`]=await d(`auth-public-credential`,`The non-secret part of the registry credential: an AWS access key ID for ECR, a username for Docker Hub, or a service account email for Google Artifact Registry. `)),c.domain===void 0&&(c.domain=await d(`domain`,"Hostname of the private registry, without a scheme or image path. Supported hostnames are `docker.io`, AWS ECR hostnames, and Google Artifact Registry `*-docker.pkg.dev` hostnames. "));let m=l({auth:{private_credential:{secret_name:u(c[`auth-private-credential-secret-name`],`auth-private-credential-secret-name`,`text`),store_id:u(c[`auth-private-credential-store-id`],`auth-private-credential-store-id`,`text`)},public_credential:u(c[`auth-public-credential`],`auth-public-credential`,`text`)},domain:u(c.domain,`domain`,`text`),is_public:c[`is-public`]});i(await o(`Creating`,async()=>f.containers.registries.create({...m,account_id:p})),{successLabel:`Created`})}};function H(e){return e.positional(`domain`,{type:`string`,description:`The domain to get credentials for.`,demandOption:!0}).option(`expiration-minutes`,{type:`number`,description:`The number of minutes Cloudflare managed registry credentials stay valid. Required for managed registries and must remain positive. Cloudflare ignores this value for external registries.`}).option(`permissions`,{type:`string`,array:!0,description:`The permissions for Cloudflare managed registry credentials. Required for managed registries. Cloudflare ignores this value for external registries.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Specifies the configuration for the image registry credential to create. Cloudflare requires both fields for managed registries. For external registries, Cloudflare ignores both fields, and the registry provider determines the returned credentials' permissions and lifetime.`})}const U={command:`generate <domain>`,describe:`Generates credentials for accessing a configured container image registry.`,builder:H,handler:async c=>{if(c.dryRun){a({command:`cf containers registries credentials generate`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/registries/${c.domain==null?`<domain>`:encodeURIComponent(String(c.domain))}/credentials`,pathParams:{domain:String(c.domain??``)},bodyKind:`json`,body:c.body===void 0?l({expiration_minutes:c[`expiration-minutes`],permissions:c.permissions}):s(c.body)});return}let u=await r(c),d=c.local?e:await t();if(c.accountId=d,c.body){let e=s(c.body);i(await o(`Creating`,async()=>u.containers.registries.credentials.generate({...e,account_id:d,domain:c.domain})),{successLabel:`Created`});return}let f=l({expiration_minutes:c[`expiration-minutes`],permissions:c.permissions});i(await o(`Creating`,async()=>u.containers.registries.credentials.generate({...f,account_id:d,domain:c.domain})),{successLabel:`Created`})}},W={command:`credentials`,describe:`Generate image registry credentials`,builder:e=>e.command(U).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function G(e){return e.positional(`domain`,{type:`string`,description:`The domain to delete.`,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 K={command:`delete <domain>`,describe:`Delete a registry from the account, this will prevent Containers from pulling images from the registry.`,builder:G,handler:async s=>{if(s.dryRun){a({command:`cf containers registries delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/registries/${s.domain==null?`<domain>`:encodeURIComponent(String(s.domain))}`,pathParams:{domain:String(s.domain??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await p({force:!!s.force,message:`This operation deletes the registry configuration. Containers will no longer be able to pull images from it.`})){process.stderr.write(`Aborted.
|
|
58
|
-
`);return}i(await o(`Deleting`,async()=>c.containers.registries.delete({account_id:l,domain:s.domain})),{successLabel:`Deleted`})}};function q(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const J={command:`list`,describe:`Get the list of configured registries in the account.`,builder:q,handler:async s=>{if(s.dryRun){a({command:`cf containers registries list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/containers/registries`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.containers.registries.list({account_id:l})),{successLabel:`Loaded`})}},Y={command:`registries`,describe:`Manage Containers image registries`,builder:e=>e.command(V).command(K).command(J).command(W).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},X={command:`containers`,describe:`Deploy and manage Containers applications on Cloudflare's global network`,builder:e=>e.command(I).command(z).command(Y).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{X as default};
|
package/dist/deploy-BL59O1O1.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{n as e,t}from"./shared-BJvq4DkR.mjs";function n(t){return e(t).option(`dispatch-namespace`,{type:`string`,description:`Name of a dispatch namespace to deploy the Worker to (Workers for Platforms)`,requiresArg:!0})}const r={command:`deploy`,describe:`Deploy a worker to Cloudflare`,builder:n,handler:async e=>{await t(e,{command:`Deploy`})}};export{r as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{r as e}from"./build-D0FhOj40.mjs";import{existsSync as t,readFileSync as n,statSync as r}from"node:fs";import{dirname as i,join as a,sep as o}from"node:path";function s(){return{source:void 0,standard:{normalized:[],builtImages:[]},durableObjects:{builtImages:[]}}}const c={esm:`esm`,cjs:`commonjs`,python:`python`,"python-requirement":`python-requirement`,wasm:`compiled-wasm`,text:`text`,data:`buffer`,json:`text`};function l(e,t,n,r){let a=process.cwd(),o=t.main??``;return{entry:{file:o,projectRoot:a,configPath:e.configPath,format:`modules`,moduleRoot:o?i(o):e.bundleDir??``,exports:[]},name:e.config.name,compatibilityDate:t.compatibility_date,compatibilityFlags:t.compatibility_flags??[],assetsDir:m(e,t),main:t.main??void 0,keepVars:t.keep_vars??!1,dryRun:r[`dry-run`],env:void 0,outfile:void 0,tag:r.tag,message:r.message,secretsFile:r[`secrets-file`],experimentalAutoCreate:!0,accountId:n,sendMetrics:!1,resourcesProvision:!0,skipProvisioningConfigWriteback:!0,skipLastDeployedFromApiCheck:!1,containers:s(),cliVars:{},isWorkersSite:!1,useServiceEnvApiPath:!1}}function u(e,t,n,r){return{...l(e,t,n,r),command:`deploy`,containersRollout:void 0,triggers:t.triggers?.crons,routes:p(t),logpush:t.logpush,dispatchNamespace:r[`dispatch-namespace`],strict:!0,legacyAssetPaths:void 0,oldAssetTtl:void 0}}function d(e,t,n,r){return{...l(e,t,n,r),command:`versions upload`,strict:!0,previewAlias:r[`preview-alias`]}}function f(e,t,n,r){return{config:t,accountId:n,scriptName:t.name??e.config.name,crons:t.triggers?.crons,routes:p(t),firstDeploy:!1,dryRun:r[`dry-run`],validated:!1}}function p(e){return e.routes?e.routes:e.route?[e.route]:[]}function m(t,n){let r=t.assetsDir;if(!r)return;let i=!!n.main,a=n.assets?.run_worker_first;if(!i&&a)throw new e(`assets.run_worker_first requires a Worker entrypoint, but no main module is configured.`);return{directory:r,binding:n.assets?.binding,directoryExists:!0}}function h(i,o){if(!o.manifest||!i.bundleDir)return{modules:[],sourceMaps:void 0,dependencies:{},resolvedEntryPointPath:``,bundleType:`esm`,content:``};let{mainModule:s,modules:l}=o.manifest;g(s,i.bundleDir);let u=a(i.bundleDir,s);if(!t(u))throw new e(`Main module not found: ${u}`);let d=l?.[s]?.type??`esm`;if(d===`sourcemap`)throw new e(`Main module "${s}" cannot be a sourcemap.`);let f=n(u,`utf8`),p=c[d],m=[],h=[],_={};if(_[u]={bytesInOutput:r(u).size},l)for(let[o,u]of Object.entries(l)){if(o===s)continue;g(o,i.bundleDir);let l=a(i.bundleDir,o);if(u.type===`sourcemap`){if(!t(l))throw new e(`Module not found: ${l}`);h.push({name:o,content:n(l,`utf8`)});continue}if(!t(l))throw new e(`Module not found: ${l}`);let d=u.type===`wasm`||u.type===`data`?n(l):n(l,`utf8`);m.push({name:`./${o}`,filePath:l,content:d,type:c[u.type]}),_[l]={bytesInOutput:r(l).size}}return{modules:m,sourceMaps:h.length>0?h:void 0,dependencies:_,resolvedEntryPointPath:u,bundleType:p,content:f}}function g(t,n){let r=a(n,t);if(r!==n&&!r.startsWith(n+o))throw new e(`Module path "${t}" escapes the bundle directory.`)}export{d as i,u as n,f as r,h as t};
|
package/dist/dev-BDaavgH1.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{t as e}from"./src-gJma71Ec.mjs";import{a as t}from"./theme-CrIBazAF.mjs";import"./ui-CmnnBm_O.mjs";import{a as n,i as r,n as i,r as a,t as o}from"./spawn-C5Z7oWdp.mjs";import{t as s}from"./registry-jifR3_Y6.mjs";const c={command:`dev [implArgs..]`,describe:`Run the project's Cloudflare dev server`,builder:e=>e.positional(`implArgs`,{type:`string`,array:!0,describe:`Arguments forwarded to the dev-server implementation`}).parserConfiguration({"unknown-options-as-args":!0,"camel-case-expansion":!1}).epilogue(`cf dev starts the appropriate development server for your project. It runs your framework's dev command when available, falling back to an installed Cloudflare dev server.
|
|
3
|
-
|
|
4
|
-
Arguments after ${t.brand(`cf dev`)} are not forwarded to non-Cloudflare development servers. Run the non-Cloudflare dev command directly to pass additional arguments.`),handler:async t=>{let c=process.cwd(),l=await a(c);l&&!l.configured&&await r(l);let u=(t.implArgs??[]).map(String),d=t.mode?[`--mode`,t.mode]:[];throw l?.devCommand?u.length>0?Error(`Arguments cannot currently be forwarded to the detected dev command \`${l.devCommand}\`. Run that command directly with the required arguments.`):new e(await n(l.devCommand,c,{env:{...l.env,...s()},args:d})):new e(await o(i(c),`dev`,[...d,...u]))}};export{c as default};
|