cf 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -4
- package/bin/cf +11 -0
- package/dist/_meta/agent-context.json +7 -7
- package/dist/_meta/commands.json +9051 -1085
- package/dist/abuse-reports-ChV_yD7f.mjs +8 -0
- package/dist/accounts-BCYecXFh.mjs +21 -0
- package/dist/acm-DD8zSds2.mjs +3 -0
- package/dist/addressing-D4Eqw5Bi.mjs +13 -0
- package/dist/{agent-context-BBJnI_Q7.mjs → agent-context-D26woB9J.mjs} +1 -1
- package/dist/ai-DfXMOMx_.mjs +2 -0
- package/dist/ai-gateway-DdRFthMo.mjs +8 -0
- package/dist/ai-search-C_68CDj1.mjs +7 -0
- package/dist/alerting-DbhqhVCp.mjs +6 -0
- package/dist/analytics-BSBBc7ep.mjs +20 -0
- package/dist/api-gateway-CZ4swbkQ.mjs +33 -0
- package/dist/argo-tms9ZwHO.mjs +2 -0
- package/dist/audit-logs-24qyW8cl.mjs +2 -0
- package/dist/auth-BlSmtIKd.mjs +112 -0
- package/dist/auth-DQ8miey6.mjs +6 -0
- package/dist/autorag-kgNt06GD.mjs +2 -0
- package/dist/billing-lwBHNTXC.mjs +2 -0
- package/dist/body-parser-Br-BoYk-.mjs +2 -0
- package/dist/bot-management-LKf7BqUr.mjs +5 -0
- package/dist/botnet-feed-nQ-gErTS.mjs +3 -0
- package/dist/brand-protection-DOKv9GRr.mjs +3 -0
- package/dist/browser-rendering-CBExtgGt.mjs +4 -0
- package/dist/build-C_48VvoK.mjs +1056 -0
- package/dist/{builds-B5sC8Gh_.mjs → builds-C_ySULja.mjs} +1 -1
- package/dist/cache-BBiiNZHP.mjs +5 -0
- package/dist/calls-DA5Xzwev.mjs +4 -0
- package/dist/certificate-authorities-sXyR_yGp.mjs +2 -0
- package/dist/chunk-DH-VkVmc.mjs +2 -0
- package/dist/client-certificates-tV0aCLQJ.mjs +3 -0
- package/dist/cloud-connector-DZfHcSso.mjs +2 -0
- package/dist/cloudforce-one-y1PgQmI9.mjs +21 -0
- package/dist/{completions-BSRqbcrz.mjs → completions-BKrxcfhN.mjs} +1 -1
- package/dist/config-BIfdEY0E.mjs +2 -0
- package/dist/connectivity-8SOqaFDn.mjs +3 -0
- package/dist/content-scanning-B9y6K_G5.mjs +4 -0
- package/dist/context-DTIbtQn5.mjs +2 -0
- package/dist/custom-certificates-sWksR8Ys.mjs +5 -0
- package/dist/custom-hostnames-91QZkdqN.mjs +5 -0
- package/dist/custom-nameservers-DajZaZvE.mjs +3 -0
- package/dist/custom-pages-Cu7gmwzT.mjs +4 -0
- package/dist/d1-H_VRsVmF.mjs +3 -0
- package/dist/dcv-delegation-C-qhEYEZ.mjs +2 -0
- package/dist/delegate.mjs +2 -0
- package/dist/deploy--9wYOkHg.mjs +2 -0
- package/dist/dev-BfKYB-R_.mjs +6 -0
- package/dist/diagnostics-D2B2LPZZ.mjs +3 -0
- package/dist/dispatch-namespaces-CyrXBU_w.mjs +7 -0
- package/dist/dist-C_bu5HwZ.mjs +82 -0
- package/dist/dist-DvKjT2TT.mjs +303 -0
- package/dist/dns-Bn9Uz_Nj.mjs +29 -0
- package/dist/dns-firewall-BslP4p-j.mjs +57 -0
- package/dist/durable-objects-BN1ZnHhm.mjs +2 -0
- package/dist/email-routing-n2TnTaRR.mjs +10 -0
- package/dist/email-security-C9SEx0kh.mjs +60 -0
- package/dist/email-sending-DayZ7u3I.mjs +3 -0
- package/dist/filters-CI_XTgfQ.mjs +4 -0
- package/dist/firewall-CcaayGig.mjs +11 -0
- package/dist/fraud-Cr7aPCV8.mjs +8 -0
- package/dist/google-tag-gateway-B3GpYgQ4.mjs +2 -0
- package/dist/healthchecks-CVTsR_OC.mjs +4 -0
- package/dist/hostnames-Bd_Wa5l6.mjs +3 -0
- package/dist/hyperdrive-BBJhEDZd.mjs +18 -0
- package/dist/iam-D_FN0pDF.mjs +6 -0
- package/dist/images-CAP2hAlZ.mjs +5 -0
- package/dist/index.mjs +1 -1
- package/dist/input-validation-zEO81MWN.mjs +2 -0
- package/dist/intel-CkxfzqmJ.mjs +3 -0
- package/dist/ips-B0cK7D0_.mjs +2 -0
- package/dist/keyless-certificates-LcLmHZsX.mjs +3 -0
- package/dist/kv-_TkUQ6fs.mjs +5 -0
- package/dist/leaked-credential-checks-Dhvaen22.mjs +3 -0
- package/dist/lib-Eu1wXxuh.mjs +68 -0
- package/dist/load-balancers-Ckr0UIpk.mjs +6 -0
- package/dist/local-VJaJ3BZ1.mjs +2 -0
- package/dist/logpush-Cj946hxT.mjs +4 -0
- package/dist/logs-DgC9hjvJ.mjs +3 -0
- package/dist/magic-cloud-networking-WbDvPzuG.mjs +5 -0
- package/dist/magic-network-monitoring-BcHShvGQ.mjs +4 -0
- package/dist/magic-transit-B8sCOkt_.mjs +89 -0
- package/dist/managed-transforms-BpOr-8HY.mjs +3 -0
- package/dist/mtls-certificates-fOul8D5g.mjs +3 -0
- package/dist/network-interconnects-BSW65xlh.mjs +36 -0
- package/dist/organizations-T4vKGFAb.mjs +41 -0
- package/dist/origin-ca-certificates-ChM0lZ64.mjs +3 -0
- package/dist/origin-post-quantum-encryption-C7o26ARh.mjs +2 -0
- package/dist/origin-tls-client-auth-D32dpZk_.mjs +5 -0
- package/dist/{output-CqGQp2r6.mjs → output-D7_yAFVR.mjs} +1 -1
- package/dist/page-rules-RFoj8CjN.mjs +18 -0
- package/dist/page-shield-VTktzKDN.mjs +37 -0
- package/dist/pages-L1ITjXDZ.mjs +10 -0
- package/dist/pipelines-BPO0Lnil.mjs +6 -0
- package/dist/progress-DZfTxbrx.mjs +2 -0
- package/dist/queues-B0C06L9r.mjs +6 -0
- package/dist/r2-DP020Tmq.mjs +21 -0
- package/dist/r2-data-catalog-Dmipvz5F.mjs +14 -0
- package/dist/radar-DR3VMknH.mjs +2 -0
- package/dist/rate-limits-DnHPBPgU.mjs +5 -0
- package/dist/raw-fetch-DlXYwVA8.mjs +2 -0
- package/dist/realtime-kit-C430aq2d.mjs +6 -0
- package/dist/registrar-7Qy50zbW.mjs +46 -0
- package/dist/request-tracers-sv99NDIl.mjs +2 -0
- package/dist/resolve-BuJRWSk0.mjs +2 -0
- package/dist/resource-sharing-uEjC7lnQ.mjs +5 -0
- package/dist/resource-tagging-CiODdP3N.mjs +16 -0
- package/dist/rules-FXAyTrwk.mjs +4 -0
- package/dist/rulesets-B6aUsFFB.mjs +8 -0
- package/dist/rum-CyyGJhp5.mjs +4 -0
- package/dist/{schema-qJlCfmo8.mjs → schema-D0_cbcDt.mjs} +1 -1
- package/dist/schema-validation-ByU49h--.mjs +4 -0
- package/dist/scim-DdTS65_C.mjs +3 -0
- package/dist/{scm-C872x0C2.mjs → scm-CilfPOue.mjs} +1 -1
- package/dist/secrets-store-ClOUVhBJ.mjs +18 -0
- package/dist/security-center-4iSBqTrf.mjs +2 -0
- package/dist/security-txt-kGxdkDY6.mjs +3 -0
- package/dist/session-mW-s8ghP.mjs +2 -0
- package/dist/smart-shield-B-SQd2Qp.mjs +3 -0
- package/dist/snippets-Aq58ojqw.mjs +4 -0
- package/dist/spawn-D_cjG87Z.mjs +10 -0
- package/dist/spectrum-0gFvGI6y.mjs +59 -0
- package/dist/speed-DAZU8w3T.mjs +4 -0
- package/dist/src-C5qivNKH.mjs +108 -0
- package/dist/ssl-BRlXa-5w.mjs +15 -0
- package/dist/stream-BAxsVeBX.mjs +14 -0
- package/dist/tenants-Df6xDqoA.mjs +2 -0
- package/dist/{theme-BKCxTQTe.mjs → theme-BklJDrb2.mjs} +2 -2
- package/dist/token-validation-pO4dCjCy.mjs +4 -0
- package/dist/{tools-CawscCBu.mjs → tools-CtKbk6VS.mjs} +1 -1
- package/dist/turnstile-B1dmO8wE.mjs +23 -0
- package/dist/{ui-Dj3No2vN.mjs → ui-mP_arYIg.mjs} +1 -1
- package/dist/url-normalization-sUDVmrUt.mjs +3 -0
- package/dist/url-scanner-CwOKRkYo.mjs +2 -0
- package/dist/user-D_UrIdNq.mjs +10 -0
- package/dist/vectorize-BEbBn9G9.mjs +4 -0
- package/dist/{vuln-scanner-B1VwCIko.mjs → vuln-scanner-Br_2lQp1.mjs} +1 -1
- package/dist/waiting-rooms-BQC-urV4.mjs +11 -0
- package/dist/web3-CIH2iQeX.mjs +4 -0
- package/dist/workers-B9EvrpH3.mjs +16 -0
- package/dist/workers-builds-DzWSiRd2.mjs +7 -0
- package/dist/workflows-aD81gA4k.mjs +4 -0
- package/dist/zaraz-Cg1dsvrZ.mjs +2 -0
- package/dist/zero-trust-D-xQXWcy.mjs +119 -0
- package/dist/zones-DQzucJDd.mjs +28 -0
- package/package.json +13 -3
- package/dist/abuse-reports-DR0yMg-Q.mjs +0 -2
- package/dist/accounts-BjGtCB8T.mjs +0 -6
- package/dist/acm-h4YPDN7k.mjs +0 -3
- package/dist/addressing-BiEnQ1o1.mjs +0 -11
- package/dist/ai-BPln2Yka.mjs +0 -2
- package/dist/ai-gateway-DgD9nKyd.mjs +0 -8
- package/dist/ai-search-EjrONI5a.mjs +0 -7
- package/dist/alerting-CPWMKr-m.mjs +0 -6
- package/dist/analytics-3dX9-scQ.mjs +0 -2
- package/dist/api-gateway-7FKFHdI-.mjs +0 -9
- package/dist/argo-Dxz9P37E.mjs +0 -2
- package/dist/audit-logs-D_Xw5x8Y.mjs +0 -2
- package/dist/auth-BHD_B2p9.mjs +0 -277
- package/dist/auth-caVo2j1K.mjs +0 -6
- package/dist/autorag-D7nMweNF.mjs +0 -2
- package/dist/billing-yaIBp1Xq.mjs +0 -2
- package/dist/body-parser-iA3vRFmh.mjs +0 -2
- package/dist/bot-management-C0H6U0t4.mjs +0 -2
- package/dist/botnet-feed-BXV9GVwF.mjs +0 -3
- package/dist/brand-protection-CI0NQa_l.mjs +0 -3
- package/dist/browser-rendering-DnKNRJJe.mjs +0 -4
- package/dist/cache-B6M_pm_D.mjs +0 -5
- package/dist/calls-C5XCC0i1.mjs +0 -4
- package/dist/certificate-authorities-BQuHL4dm.mjs +0 -2
- package/dist/client-certificates-CwpzEnCT.mjs +0 -3
- package/dist/cloud-connector-CU3PLNLe.mjs +0 -2
- package/dist/cloudforce-one-DzrArr1o.mjs +0 -21
- package/dist/config-BmTd_qeU.mjs +0 -2
- package/dist/connectivity-C4tXPkW_.mjs +0 -3
- package/dist/content-scanning-CH_YXdlZ.mjs +0 -4
- package/dist/context-6lBIck1r.mjs +0 -2
- package/dist/custom-certificates-pllRyU2y.mjs +0 -3
- package/dist/custom-hostnames-GmF0DfYA.mjs +0 -5
- package/dist/custom-nameservers-DPVHUlUQ.mjs +0 -3
- package/dist/custom-pages-XWwfn7hV.mjs +0 -4
- package/dist/d1-c_zhZGWf.mjs +0 -3
- package/dist/dcv-delegation-pXpU48A8.mjs +0 -2
- package/dist/dev-Bu26u5Jm.mjs +0 -14
- package/dist/diagnostics-BU07Jnku.mjs +0 -3
- package/dist/dispatch-namespaces-D_Kq_2gX.mjs +0 -7
- package/dist/dns-CrvIxztB.mjs +0 -11
- package/dist/dns-firewall-CLtGAQ9x.mjs +0 -3
- package/dist/dry-run-FV0pZwdg.mjs +0 -2
- package/dist/durable-objects-Y5rLFSQX.mjs +0 -2
- package/dist/email-routing-CxU5JlXT.mjs +0 -10
- package/dist/email-security-CnpAHWpj.mjs +0 -8
- package/dist/email-sending-MeCKsktR.mjs +0 -3
- package/dist/filters-Sx2Po1UP.mjs +0 -4
- package/dist/firewall-B0_012XO.mjs +0 -9
- package/dist/fraud-CG0G_VG-.mjs +0 -2
- package/dist/google-tag-gateway-BLbj1y3h.mjs +0 -2
- package/dist/healthchecks-C0LgExxa.mjs +0 -4
- package/dist/hostnames-D4K6s9EX.mjs +0 -3
- package/dist/hyperdrive-D7XvTRys.mjs +0 -3
- package/dist/iam-4LhJianW.mjs +0 -6
- package/dist/images-BqXyIycX.mjs +0 -5
- package/dist/input-validation-BpVQi9rR.mjs +0 -2
- package/dist/intel-CiO3Sy4x.mjs +0 -3
- package/dist/ips-DLuGN7Mr.mjs +0 -2
- package/dist/keyless-certificates-x-87T5SM.mjs +0 -3
- package/dist/kv-CVYCrk7L.mjs +0 -5
- package/dist/leaked-credential-checks-FvhVCL23.mjs +0 -3
- package/dist/load-balancers-cxodJuI2.mjs +0 -6
- package/dist/local-OqhVQbv0.mjs +0 -2
- package/dist/logpush-BX7z2xWz.mjs +0 -4
- package/dist/logs-C7vxr6Kp.mjs +0 -3
- package/dist/magic-cloud-networking-C3grROf-.mjs +0 -5
- package/dist/magic-network-monitoring-DiZ5ZXxh.mjs +0 -4
- package/dist/magic-transit-troGMFb9.mjs +0 -30
- package/dist/managed-transforms-B5w_LlVN.mjs +0 -3
- package/dist/mtls-certificates-C1S9MciH.mjs +0 -3
- package/dist/network-interconnects-CVSiv1fF.mjs +0 -4
- package/dist/organizations-BtlEchi-.mjs +0 -4
- package/dist/origin-ca-certificates-0XCi4dO6.mjs +0 -3
- package/dist/origin-post-quantum-encryption-CTvkdYDG.mjs +0 -2
- package/dist/origin-tls-client-auth-qAvRD1BQ.mjs +0 -5
- package/dist/page-rules-CcMmrvY4.mjs +0 -3
- package/dist/page-shield-Dxh4bJ-w.mjs +0 -3
- package/dist/pages-F1vdzqgC.mjs +0 -6
- package/dist/pipelines-DsF1HHMY.mjs +0 -6
- package/dist/progress-5sHFvwez.mjs +0 -2
- package/dist/queues-BuvkxFPX.mjs +0 -6
- package/dist/r2-Du-fgHiT.mjs +0 -9
- package/dist/r2-data-catalog-BUiMNSwc.mjs +0 -3
- package/dist/radar-C0eqNmWR.mjs +0 -2
- package/dist/rate-limits-CUv2cxXV.mjs +0 -3
- package/dist/raw-fetch-CxFs4i0R.mjs +0 -2
- package/dist/realtime-kit-C-jix3I_.mjs +0 -6
- package/dist/registrar-B7V7i89n.mjs +0 -2
- package/dist/request-tracers-D2V7QUrC.mjs +0 -2
- package/dist/resolve-GtphSYWh.mjs +0 -2
- package/dist/resource-sharing-BgH0w9wm.mjs +0 -5
- package/dist/resource-tagging-BOknFugv.mjs +0 -4
- package/dist/rolldown-runtime-CR7SCCRW.mjs +0 -2
- package/dist/rules-DzJFHGW1.mjs +0 -4
- package/dist/rulesets-BzI1dUiq.mjs +0 -8
- package/dist/rum-CQ_rJ96u.mjs +0 -4
- package/dist/schema-validation-TmikfxS9.mjs +0 -4
- package/dist/scim-ByZ5kqXS.mjs +0 -3
- package/dist/secrets-store-D7HL4VXw.mjs +0 -8
- package/dist/security-center-OUrILUnx.mjs +0 -2
- package/dist/security-txt-Ca13oCJ8.mjs +0 -3
- package/dist/session-Dxi_LbAk.mjs +0 -2
- package/dist/smart-shield-foPT0J9L.mjs +0 -3
- package/dist/snippets-FDPiBMWc.mjs +0 -4
- package/dist/spectrum-DPoh_BPx.mjs +0 -3
- package/dist/speed-BuEappVX.mjs +0 -4
- package/dist/src-D8_cWUwt.mjs +0 -104
- package/dist/ssl-bJbzEoRv.mjs +0 -3
- package/dist/stream-DuYGiGk6.mjs +0 -13
- package/dist/tenants-BYqEutrr.mjs +0 -2
- package/dist/token-validation-DwmtbWUB.mjs +0 -4
- package/dist/turnstile-Dy91RVTn.mjs +0 -3
- package/dist/url-normalization-DoD9iHWH.mjs +0 -3
- package/dist/url-scanner-qwL64FIo.mjs +0 -2
- package/dist/user-Cduf3VRi.mjs +0 -7
- package/dist/vectorize-CMLobU9V.mjs +0 -4
- package/dist/waiting-rooms-B4-IAJeT.mjs +0 -5
- package/dist/web3-Bcx68Kq3.mjs +0 -4
- package/dist/workers-D5fOQsUA.mjs +0 -16
- package/dist/workers-builds-2kdzxjlN.mjs +0 -7
- package/dist/workflows-qFD80noW.mjs +0 -4
- package/dist/zaraz-C0iJimA4.mjs +0 -2
- package/dist/zero-trust-Btix6zOy.mjs +0 -73
- package/dist/zones-Nu3wMtds.mjs +0 -5
- /package/dist/{metadata-DhSO1vle.mjs → metadata-DGdCpUxn.mjs} +0 -0
package/dist/radar-C0eqNmWR.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{d as e,o as t,t as n}from"./auth-BHD_B2p9.mjs";import{n as r,r as i}from"./input-validation-BpVQi9rR.mjs";import{n as a,t as o}from"./body-parser-iA3vRFmh.mjs";import{t as s}from"./output-CqGQp2r6.mjs";import{t as c}from"./dry-run-FV0pZwdg.mjs";import{t as l}from"./local-OqhVQbv0.mjs";import{t as u}from"./progress-5sHFvwez.mjs";import{n as d,t as ee}from"./raw-fetch-CxFs4i0R.mjs";const te={command:`summary <dimension>`,describe:`Returns a summary of AI agent readiness scores across scanned domains, grouped by the specified dimension. Data is sourced from weekly bulk scans. All values are raw domain counts.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the agent readiness data dimension by which to group the results.`,demandOption:!0}).option(`date`,{type:`string`,description:`Filters results by the specified date.`}).option(`domain-category`,{type:`string`,description:`Filters results by domain category.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.date!==void 0&&(t.date=e.date),e.domainCategory!==void 0&&(t.domainCategory=e.domainCategory),e.name!==void 0&&(t.name=e.name),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading agent readiness`,async()=>r.radar.agentReadiness.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded agent readiness`})}},f={command:`agent-readiness`,describe:`Agent readiness summary statistics across the Cloudflare network`,builder:e=>e.command(te).demandCommand(1),handler:()=>{}},p={command:`summary-v2 <dimension>`,describe:`Retrieves an aggregated summary of AI bots HTTP requests grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.vertical!==void 0&&(t.vertical=e.vertical),e.industry!==void 0&&(t.industry=e.industry),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.ai.bots.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},m={command:`user-agent`,describe:`Retrieves the distribution of traffic by AI user agent.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.ai.bots.summary.userAgent(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},h={command:`summary`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(m).demandCommand(1),handler:()=>{}},g={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of HTTP requests from AI bots, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.industry!==void 0&&(t.industry=e.industry),e.vertical!==void 0&&(t.vertical=e.vertical),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.ai.bots.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},_={command:`timeseries`,describe:`Retrieves AI bots HTTP request volume over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.industry!==void 0&&(t.industry=e.industry),e.vertical!==void 0&&(t.vertical=e.vertical),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.ai.bots.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},v={command:`bots`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(p).command(_).command(g).command(h).demandCommand(1),handler:()=>{}},y={command:`summary-v2 <dimension>`,describe:`Retrieves an aggregated summary of unique accounts using Workers AI inference grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading inference`,async()=>r.radar.ai.inference.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded inference`})}},b={command:`model`,describe:`Retrieves the distribution of unique accounts by model.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.ai.inference.summary.model(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},x={command:`task`,describe:`Retrieves the distribution of unique accounts by task.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.ai.inference.summary.task(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},S={command:`summary`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(b).command(x).demandCommand(1),handler:()=>{}},C={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of unique accounts using Workers AI inference, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading inference`,async()=>r.radar.ai.inference.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded inference`})}},w={command:`model`,describe:`Retrieves the distribution of unique accounts by model over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.ai.inference.timeseriesGroups.summary.model(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},T={command:`task`,describe:`Retrieves the distribution of unique accounts by task over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.ai.inference.timeseriesGroups.summary.task(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},E={command:`summary`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(w).command(T).demandCommand(1),handler:()=>{}},D={command:`timeseries-groups`,describe:`Operations for ai.inference.timeseries-groups`,builder:e=>e.command(E).demandCommand(1),handler:()=>{}},O={command:`inference`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(y).command(C).command(S).command(D).demandCommand(1),handler:()=>{}},k={command:`summary`,describe:`Retrieves the overall median HTML-to-markdown reduction ratio for AI agent requests over the given date range.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading markdown for agent`,async()=>r.radar.ai.markdownForAgents.summary(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded markdown for agent`})}},A={command:`timeseries`,describe:`Retrieves the median HTML-to-markdown reduction ratio over time for AI agent requests.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading markdown for agent`,async()=>r.radar.ai.markdownForAgents.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded markdown for agent`})}},j={command:`markdown-for-agents`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(k).command(A).demandCommand(1),handler:()=>{}},M={command:`summary <dimension>`,describe:`Retrieves an aggregated summary of AI bots HTTP requests grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.vertical!==void 0&&(t.vertical=e.vertical),e.industry!==void 0&&(t.industry=e.industry),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.ai.timeseriesGroups.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},N={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of HTTP requests from AI bots, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.industry!==void 0&&(t.industry=e.industry),e.vertical!==void 0&&(t.vertical=e.vertical),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.ai.timeseriesGroups.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},P={command:`timeseries`,describe:`Retrieves AI bots HTTP request volume over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`crawl-purpose`,{type:`string`,description:`Filters results by bot crawl purpose.`}).option(`user-agent`,{type:`string`,description:`Filters results by user agent.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`content-type`,{type:`string`,description:`Filters results by content type category.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.crawlPurpose!==void 0&&(t.crawlPurpose=e.crawlPurpose),e.userAgent!==void 0&&(t.userAgent=e.userAgent),e.industry!==void 0&&(t.industry=e.industry),e.vertical!==void 0&&(t.vertical=e.vertical),e.contentType!==void 0&&(t.contentType=e.contentType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.ai.timeseriesGroups.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},F={command:`user-agent`,describe:`Retrieves the distribution of traffic by AI user agent over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.ai.timeseriesGroups.userAgent(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},I={command:`timeseries-groups`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(M).command(P).command(N).command(F).demandCommand(1),handler:()=>{}},L={command:`create`,describe:`Converts uploaded files into Markdown format using Workers AI.`,builder:e=>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)`}).option(`file`,{type:`string`,description:`Path to a file to upload as the request body`}).option(`files`,{type:`string`,description:`The files`}),handler:async a=>{if(a.dryRun){let t=e();t&&i(t,`accountId`),c({command:`cf radar ai to-markdown create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t??`<account-id>`}/ai/tomarkdown`,pathParams:{},bodyKind:`multipart`,body:{body:a.body,file:a.file,files:a.files},validation:`passed`});return}let o=await n(a),d=a.local?l:await t(o);if(a.accountId=d,a.file!==void 0||a.body!==void 0||a.files!==void 0){let e=new FormData;if(a.file){let{readFileSync:t}=await import(`node:fs`),{resolve:n}=await import(`node:path`),r=t(n(a.file));e.append(`file`,new Blob([r]),a.file.split(`/`).pop())}else a.body!==void 0&&e.append(`file`,a.body);if(a.files!==void 0){let t=typeof a.files==`string`?r(a.files,`files`,`text`):a.files;e.append(`files`,typeof t==`string`?t:JSON.stringify(t))}s(await u(`Creating to markdown`,async()=>o.post(`/accounts/${d}/ai/tomarkdown`,{body:e})),{successLabel:`Created to markdown`});return}if(a.body){let e=r(a.body,`body`,`binary`);s(await u(`Creating to markdown`,async()=>o.post(`/accounts/${d}/ai/tomarkdown`,{body:e,headers:{"Content-Type":`multipart/form-data`}})),{successLabel:`Created to markdown`});return}if(a.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},R={command:`to-markdown`,describe:`AI inference trends and model usage statistics across the Cloudflare network`,builder:e=>e.command(L).demandCommand(1),handler:()=>{}},z={command:`ai`,describe:`Operations for ai`,builder:e=>e.command(v).command(O).command(j).command(I).command(R).demandCommand(1),handler:()=>{}},B={command:`list`,describe:`Retrieves the latest annotations.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`data-source`,{type:`string`,description:`Filters results by data source.`,choices:[`ALL`,`AI_BOTS`,`AI_GATEWAY`,`BGP`,`BOTS`,`CONNECTION_ANOMALY`,`CT`,`DNS`,`DNS_MAGNITUDE`,`DNS_AS112`,`DOS`,`EMAIL_ROUTING`,`EMAIL_SECURITY`,`FW`,`FW_PG`,`HTTP`,`HTTP_CONTROL`,`HTTP_CRAWLER_REFERER`,`HTTP_ORIGINS`,`IQI`,`LEAKED_CREDENTIALS`,`NET`,`ROBOTS_TXT`,`SPEED`,`WORKERS_AI`]}).option(`event-type`,{type:`string`,description:`Filters results by event type.`,choices:[`EVENT`,`GENERAL`,`OUTAGE`,`PARTIAL_PROJECTION`,`PIPELINE`,`TRAFFIC_ANOMALY`]}).option(`asn`,{type:`number`,description:`Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`origin`,{type:`string`,description:`Filters results by origin.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.dataSource!==void 0&&(t.dataSource=e.dataSource),e.eventType!==void 0&&(t.eventType=e.eventType),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.origin!==void 0&&(t.origin=e.origin),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading annotations`,async()=>r.radar.annotations.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded annotations`})}},V={command:`get`,describe:`Retrieves the latest Internet outages and anomalies.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`number`,description:`Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`origin`,{type:`string`,description:`Filters results by origin.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.origin!==void 0&&(t.origin=e.origin),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading outage`,async()=>r.radar.annotations.outages.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded outage`})}},H={command:`locations`,describe:`Retrieves the number of outages by location.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading outage`,async()=>r.radar.annotations.outages.locations(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded outage`})}},U={command:`outages`,describe:`Radar annotations marking significant Internet events (outages, cable cuts, etc.)`,builder:e=>e.command(V).command(H).demandCommand(1),handler:()=>{}},W={command:`annotations`,describe:`Radar annotations marking significant Internet events (outages, cable cuts, etc.)`,builder:e=>e.command(B).command(U).demandCommand(1),handler:()=>{}},G={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of AS112 queries by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading as112`,async()=>r.radar.as112.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded as112`})}},K={command:`dnssec`,describe:`Retrieves the distribution of DNS queries to AS112 by DNSSEC (DNS Security Extensions) support.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.dnssec(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},q={command:`edns`,describe:`Retrieves the distribution of DNS queries to AS112 by EDNS (Extension Mechanisms for DNS) support.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.edns(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},J={command:`ip-version`,describe:`Retrieves the distribution of DNS queries to AS112 by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Y={command:`protocol`,describe:`Retrieves the distribution of DNS queries to AS112 by protocol.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},X={command:`query-type`,describe:`Retrieves the distribution of DNS queries to AS112 by type.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.queryType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Z={command:`response-codes`,describe:`Retrieves the distribution of AS112 DNS requests classified by response code.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.as112.summary.responseCodes(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Q={command:`summary`,describe:`AS112 DNS sinkhole statistics — reverse DNS query volumes for private address space`,builder:e=>e.command(K).command(q).command(J).command(Y).command(X).command(Z).demandCommand(1),handler:()=>{}},ne={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of AS112 queries grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading as112`,async()=>r.radar.as112.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded as112`})}},re={command:`dnssec`,describe:`Retrieves the distribution of AS112 DNS queries by DNSSEC (DNS Security Extensions) support over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.dnssec(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ie={command:`edns`,describe:`Retrieves the distribution of AS112 DNS queries by EDNS (Extension Mechanisms for DNS) support over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.edns(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ae={command:`ip-version`,describe:`Retrieves the distribution of AS112 DNS queries by IP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},oe={command:`protocol`,describe:`Retrieves the distribution of AS112 DNS requests classified by protocol over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},se={command:`query-type`,describe:`Retrieves the distribution of AS112 DNS queries by type over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.queryType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ce={command:`response-codes`,describe:`Retrieves the distribution of AS112 DNS requests classified by response code over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.as112.timeseriesGroups.responseCodes(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},le={command:`timeseries-groups`,describe:`AS112 DNS sinkhole statistics — reverse DNS query volumes for private address space`,builder:e=>e.command(re).command(ie).command(ae).command(oe).command(se).command(ce).demandCommand(1),handler:()=>{}},ue={command:`timeseries`,describe:`Retrieves the AS112 DNS queries over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading as112`,async()=>r.radar.as112.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded as112`})}},de={command:`dnssec <dnssec>`,describe:`Retrieves the top locations of DNS queries to AS112 with DNSSEC (DNS Security Extensions) support.`,builder:e=>e.positional(`dnssec`,{type:`string`,description:`DNSSEC (DNS Security Extensions) status.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dnssec,`dnssec`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.as112.top.dnssec(e.dnssec,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},fe={command:`edns <edns>`,describe:`Retrieves the top locations of DNS queries to AS112 with EDNS (Extension Mechanisms for DNS) support.`,builder:e=>e.positional(`edns`,{type:`string`,description:`EDNS (Extension Mechanisms for DNS) status.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.edns,`edns`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.as112.top.edns(e.edns,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},pe={command:`ip-version <ipVersion>`,describe:`Retrieves the top locations of DNS queries to AS112 for an IP version.`,builder:e=>e.positional(`ipVersion`,{type:`string`,description:`IP version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.ipVersion,`ipVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.as112.top.ipVersion(e.ipVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},me={command:`locations`,describe:`Retrieves the top locations by AS112 DNS queries.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.as112.top.locations(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},he={command:`top`,describe:`AS112 DNS sinkhole statistics — reverse DNS query volumes for private address space`,builder:e=>e.command(de).command(fe).command(pe).command(me).demandCommand(1),handler:()=>{}},ge={command:`as112`,describe:`AS112 DNS sinkhole statistics — reverse DNS query volumes for private address space`,builder:e=>e.command(G).command(ue).command(ne).command(Q).command(le).command(he).demandCommand(1),handler:()=>{}},_e={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of layer 3 attacks by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer3`,async()=>r.radar.attacks.layer3.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer3`})}},ve={command:`bitrate`,describe:`Retrieves the distribution of layer 3 attacks by bitrate.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.bitrate(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},ye={command:`duration`,describe:`Retrieves the distribution of layer 3 attacks by duration.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.duration(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},be={command:`industry`,describe:`Retrieves the distribution of layer 3 attacks by targeted industry.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},xe={command:`ip-version`,describe:`Retrieves the distribution of layer 3 attacks by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Se={command:`protocol`,describe:`Retrieves the distribution of layer 3 attacks by protocol.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ce={command:`vector`,describe:`Retrieves the distribution of layer 3 attacks by vector.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.vector(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},we={command:`vertical`,describe:`Retrieves the distribution of layer 3 attacks by targeted vertical.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer3.summary.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Te={command:`summary`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(ve).command(ye).command(be).command(xe).command(Se).command(Ce).command(we).demandCommand(1),handler:()=>{}},Ee={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of layer 3 attacks grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer3`,async()=>r.radar.attacks.layer3.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer3`})}},De={command:`bitrate`,describe:`Retrieves the distribution of layer 3 attacks by bitrate over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.bitrate(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Oe={command:`duration`,describe:`Retrieves the distribution of layer 3 attacks by duration over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.duration(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ke={command:`industry`,describe:`Retrieves the distribution of layer 3 attacks by targeted industry over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Ae={command:`ip-version`,describe:`Retrieves the distribution of layer 3 attacks by IP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},je={command:`protocol`,describe:`Retrieves the distribution of layer 3 attacks by protocol over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Me={command:`vector`,describe:`Retrieves the distribution of layer 3 attacks by vector over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.vector(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Ne={command:`vertical`,describe:`Retrieves the distribution of layer 3 attacks by targeted vertical over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.direction!==void 0&&(t.direction=e.direction),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer3.timeseriesGroups.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Pe={command:`timeseries-groups`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(De).command(Oe).command(ke).command(Ae).command(je).command(Me).command(Ne).demandCommand(1),handler:()=>{}},Fe={command:`timeseries`,describe:`Retrieves layer 3 attacks over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE_CHANGE`,`MIN0_MAX`]}).option(`metric`,{type:`string`,description:`Measurement units, eg. bytes.`,choices:[`BYTES`,`BYTES_OLD`]}).option(`direction`,{type:`string`,description:"Specifies whether the `location` filter applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.normalization!==void 0&&(t.normalization=e.normalization),e.metric!==void 0&&(t.metric=e.metric),e.direction!==void 0&&(t.direction=e.direction),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer3`,async()=>r.radar.attacks.layer3.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer3`})}},Ie={command:`attacks`,describe:`Retrieves the top layer 3 attacks from origin to target location. Values are a percentage out of the total layer 3 attacks (with billing country). You can optionally limit the number of attacks by origin/target location (useful if all the top attacks are from or to the same location).`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`limit-direction`,{type:`string`,description:"Specifies whether the `limitPerLocation` applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-location`,{type:`number`,description:"Limits the number of attacks per origin/target (refer to `limitDirection` parameter) location."}).option(`magnitude`,{type:`string`,description:`Orders results based on attack magnitude, defined by total mitigated bytes or total mitigated attacks.`,choices:[`MITIGATED_BYTES`,`MITIGATED_ATTACKS`]}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.limitDirection!==void 0&&(t.limitDirection=e.limitDirection),e.limitPerLocation!==void 0&&(t.limitPerLocation=e.limitPerLocation),e.magnitude!==void 0&&(t.magnitude=e.magnitude),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer3.top.attacks(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Le={command:`industry`,describe:`This endpoint is deprecated. To continue getting this data, switch to the summary by industry endpoint.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer3.top.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Re={command:`origin`,describe:`Retrieves the origin locations of layer 3 attacks.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.attacks.layer3.top.locations.origin(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},ze={command:`target`,describe:`Retrieves the target locations of layer 3 attacks.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.attacks.layer3.top.locations.target(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},Be={command:`locations`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(Re).command(ze).demandCommand(1),handler:()=>{}},Ve={command:`vertical`,describe:`This endpoint is deprecated. To continue getting this data, switch to the summary by vertical endpoint.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`protocol`,{type:`string`,description:`Filters the results by layer 3/4 protocol.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.protocol!==void 0&&(t.protocol=e.protocol),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer3.top.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},He={command:`top`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(Ie).command(Le).command(Ve).command(Be).demandCommand(1),handler:()=>{}},Ue={command:`layer3`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(_e).command(Fe).command(Ee).command(Te).command(Pe).command(He).demandCommand(1),handler:()=>{}},We={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of layer 7 attacks by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer7`,async()=>r.radar.attacks.layer7.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer7`})}},Ge={command:`http-method`,describe:`Retrieves the distribution of layer 7 attacks by HTTP method.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.httpMethod(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ke={command:`http-version`,describe:`Retrieves the distribution of layer 7 attacks by HTTP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.httpVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},qe={command:`industry`,describe:`Retrieves the distribution of layer 7 attacks by targeted industry.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Je={command:`ip-version`,describe:`Retrieves the distribution of layer 7 attacks by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ye={command:`managed-rules`,describe:`Retrieves the distribution of layer 7 attacks by managed rules.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.managedRules(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Xe={command:`mitigation-product`,describe:`Retrieves the distribution of layer 7 attacks by mitigation product.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.mitigationProduct(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ze={command:`vertical`,describe:`Retrieves the distribution of layer 7 attacks by targeted vertical.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.attacks.layer7.summary.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Qe={command:`summary`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(Ge).command(Ke).command(qe).command(Je).command(Ye).command(Xe).command(Ze).demandCommand(1),handler:()=>{}},$e={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of layer 7 attacks grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer7`,async()=>r.radar.attacks.layer7.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer7`})}},et={command:`http-method`,describe:`Retrieves the distribution of layer 7 attacks by HTTP method over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.httpMethod(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},tt={command:`http-version`,describe:`Retrieves the distribution of layer 7 attacks by HTTP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.httpVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},nt={command:`industry`,describe:`Retrieves the distribution of layer 7 attacks by targeted industry over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},rt={command:`ip-version`,describe:`Retrieves the distribution of layer 7 attacks by IP version used over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},it={command:`managed-rules`,describe:`Retrieves the distribution of layer 7 attacks by managed rules over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.managedRules(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},at={command:`mitigation-product`,describe:`Retrieves the distribution of layer 7 attacks by mitigation product over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.mitigationProduct(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ot={command:`vertical`,describe:`Retrieves the distribution of layer 7 attacks by targeted vertical over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.normalization!==void 0&&(t.normalization=e.normalization),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.attacks.layer7.timeseriesGroups.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},st={command:`timeseries-groups`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(et).command(tt).command(nt).command(rt).command(it).command(at).command(ot).demandCommand(1),handler:()=>{}},ct={command:`timeseries`,describe:`Retrieves layer 7 attacks over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE_CHANGE`,`MIN0_MAX`]}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.normalization!==void 0&&(t.normalization=e.normalization),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading layer7`,async()=>r.radar.attacks.layer7.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded layer7`})}},lt={command:`origin`,describe:`Retrieves the top origin autonomous systems of layer 7 attacks. Values are percentages of the total layer 7 attacks, with the origin autonomous systems determined by the client IP address.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ase`,async()=>r.radar.attacks.layer7.top.ases.origin(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ase`})}},ut={command:`ases`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(lt).demandCommand(1),handler:()=>{}},dt={command:`attacks`,describe:`Retrieves the top attacks from origin to target location. Values are percentages of the total layer 7 attacks (with billing country). The attack magnitude can be defined by the number of mitigated requests or by the number of zones affected. You can optionally limit the number of attacks by origin/target location (useful if all the top attacks are from or to the same location).`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`limit-direction`,{type:`string`,description:"Specifies whether the `limitPerLocation` applies to the source or target location.",choices:[`ORIGIN`,`TARGET`]}).option(`limit-per-location`,{type:`number`,description:"Limits the number of attacks per origin/target (refer to `limitDirection` parameter) location."}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.limitDirection!==void 0&&(t.limitDirection=e.limitDirection),e.limitPerLocation!==void 0&&(t.limitPerLocation=e.limitPerLocation),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer7.top.attacks(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},ft={command:`industry`,describe:`This endpoint is deprecated. To continue getting this data, switch to the summary by industry endpoint.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer7.top.industry(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},pt={command:`origin`,describe:`Retrieves the top origin locations of layer 7 attacks. Values are percentages of the total layer 7 attacks, with the origin location determined by the client IP address.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.attacks.layer7.top.locations.origin(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},mt={command:`target`,describe:`Retrieves the top target locations of and by layer 7 attacks. Values are a percentage out of the total layer 7 attacks. The target location is determined by the attacked zone's billing country, when available.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.continent!==void 0&&(t.continent=e.continent),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.attacks.layer7.top.locations.target(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},ht={command:`locations`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(pt).command(mt).demandCommand(1),handler:()=>{}},gt={command:`vertical`,describe:`This endpoint is deprecated. To continue getting this data, switch to the summary by vertical endpoint.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`http-method`,{type:`string`,description:`Filters results by HTTP method.`}).option(`mitigation-product`,{type:`string`,description:`Filters the results by layer 7 mitigation product.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.httpMethod!==void 0&&(t.httpMethod=e.httpMethod),e.mitigationProduct!==void 0&&(t.mitigationProduct=e.mitigationProduct),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.attacks.layer7.top.vertical(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},_t={command:`top`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(dt).command(ft).command(gt).command(ut).command(ht).demandCommand(1),handler:()=>{}},vt={command:`layer7`,describe:`DDoS and application-layer attack trends, vectors, and target analysis`,builder:e=>e.command(We).command(ct).command($e).command(Qe).command(st).command(_t).demandCommand(1),handler:()=>{}},yt={command:`attacks`,describe:`Operations for attacks`,builder:e=>e.command(Ue).command(vt).demandCommand(1),handler:()=>{}},bt={command:`list`,describe:`Retrieves the BGP hijack events.`,builder:e=>e.option(`page`,{type:`number`,description:`Current page number, starting from 1.`}).option(`per-page`,{type:`number`,description:`Number of entries per page.`}).option(`event-id`,{type:`number`,description:`The unique identifier of a event.`}).option(`hijacker-asn`,{type:`number`,description:`The potential hijacker AS of a BGP hijack event.`}).option(`victim-asn`,{type:`number`,description:`The potential victim AS of a BGP hijack event.`}).option(`involved-asn`,{type:`number`,description:`The potential hijacker or victim AS of a BGP hijack event.`}).option(`involved-country`,{type:`string`,description:`The country code of the potential hijacker or victim AS of a BGP hijack event.`}).option(`prefix`,{type:`string`,description:`Prefix`}).option(`min-confidence`,{type:`number`,description:`Filters events by minimum confidence score (1-4 low, 5-7 mid, 8+ high).`}).option(`max-confidence`,{type:`number`,description:`Filters events by maximum confidence score (1-4 low, 5-7 mid, 8+ high).`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`sort-by`,{type:`string`,description:`Sorts results by the specified field.`,choices:[`ID`,`TIME`,`CONFIDENCE`]}).option(`sort-order`,{type:`string`,description:`Sort order.`,choices:[`ASC`,`DESC`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.eventId!==void 0&&(t.eventId=e.eventId),e.hijackerAsn!==void 0&&(t.hijackerAsn=e.hijackerAsn),e.victimAsn!==void 0&&(t.victimAsn=e.victimAsn),e.involvedAsn!==void 0&&(t.involvedAsn=e.involvedAsn),e.involvedCountry!==void 0&&(t.involvedCountry=e.involvedCountry),e.prefix!==void 0&&(t.prefix=e.prefix),e.minConfidence!==void 0&&(t.minConfidence=e.minConfidence),e.maxConfidence!==void 0&&(t.maxConfidence=e.maxConfidence),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.sortBy!==void 0&&(t.sortBy=e.sortBy),e.sortOrder!==void 0&&(t.sortOrder=e.sortOrder),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading events`,async()=>r.radar.bgp.hijacks.events.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded events`})}},xt={command:`events`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(bt).demandCommand(1),handler:()=>{}},St={command:`hijacks`,describe:`Operations for bgp.hijacks`,builder:e=>e.command(xt).demandCommand(1),handler:()=>{}},Ct={command:`timeseries`,describe:`Retrieves time series data for the announced IP space count, represented as the number of IPv4 /24s and IPv6 /48s, for a given ASN.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`include-delay`,{type:`boolean`,description:`Includes data delay meta information.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.includeDelay!==void 0&&(t.includeDelay=e.includeDelay),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ip`,async()=>r.radar.bgp.ips.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ip`})}},wt={command:`ips`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Ct).demandCommand(1),handler:()=>{}},Tt={command:`list`,describe:`Retrieves the BGP route leak events.`,builder:e=>e.option(`page`,{type:`number`,description:`Current page number, starting from 1.`}).option(`per-page`,{type:`number`,description:`Number of entries per page.`}).option(`event-id`,{type:`number`,description:`The unique identifier of a event.`}).option(`leak-asn`,{type:`number`,description:`The leaking AS of a route leak event.`}).option(`involved-asn`,{type:`number`,description:`ASN that is causing or affected by a route leak event.`}).option(`involved-country`,{type:`string`,description:`Country code of a involved ASN in a route leak event.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`sort-by`,{type:`string`,description:`Sorts results by the specified field.`,choices:[`ID`,`LEAKS`,`PEERS`,`PREFIXES`,`ORIGINS`,`TIME`]}).option(`sort-order`,{type:`string`,description:`Sort order.`,choices:[`ASC`,`DESC`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.page!==void 0&&(t.page=e.page),e.perPage!==void 0&&(t.per_page=e.perPage),e.eventId!==void 0&&(t.eventId=e.eventId),e.leakAsn!==void 0&&(t.leakAsn=e.leakAsn),e.involvedAsn!==void 0&&(t.involvedAsn=e.involvedAsn),e.involvedCountry!==void 0&&(t.involvedCountry=e.involvedCountry),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.sortBy!==void 0&&(t.sortBy=e.sortBy),e.sortOrder!==void 0&&(t.sortOrder=e.sortOrder),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading events`,async()=>r.radar.bgp.leaks.events.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded events`})}},Et={command:`events`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Tt).demandCommand(1),handler:()=>{}},Dt={command:`leaks`,describe:`Operations for bgp.leaks`,builder:e=>e.command(Et).demandCommand(1),handler:()=>{}},Ot={command:`ases`,describe:`Retrieves all ASes in the current global routing tables with routing statistics.`,builder:e=>e.option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`sort-by`,{type:`string`,description:`Sorts results by the specified field.`,choices:[`cone`,`pfxs`,`ipv4`,`ipv6`,`rpki_valid`,`rpki_invalid`,`rpki_unknown`]}).option(`sort-order`,{type:`string`,description:`Sort order.`,choices:[`ASC`,`DESC`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.location!==void 0&&(t.location=e.location),e.limit!==void 0&&(t.limit=e.limit),e.sortBy!==void 0&&(t.sortBy=e.sortBy),e.sortOrder!==void 0&&(t.sortOrder=e.sortOrder),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading route`,async()=>r.radar.bgp.routes.ases(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded route`})}},kt={command:`moas`,describe:`Retrieves all Multi-Origin AS (MOAS) prefixes in the global routing tables.`,builder:e=>e.option(`origin`,{type:`number`,description:`Lookup MOASes originated by the given ASN.`}).option(`prefix`,{type:`string`,description:`Prefix`}).option(`invalid-only`,{type:`boolean`,description:`Lookup only RPKI invalid MOASes.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.origin!==void 0&&(t.origin=e.origin),e.prefix!==void 0&&(t.prefix=e.prefix),e.invalidOnly!==void 0&&(t.invalid_only=e.invalidOnly),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading route`,async()=>r.radar.bgp.routes.moas(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded route`})}},At={command:`pfx2as`,describe:`Retrieves the prefix-to-ASN mapping from global routing tables.`,builder:e=>e.option(`prefix`,{type:`string`,description:`Prefix`}).option(`origin`,{type:`number`,description:`Lookup prefixes originated by the given ASN.`}).option(`rpki-status`,{type:`string`,description:`Return only results with matching rpki status: valid, invalid or unknown.`,choices:[`VALID`,`INVALID`,`UNKNOWN`]}).option(`longest-prefix-match`,{type:`boolean`,description:`Return only results with the longest prefix match for the given prefix. For example, specify a /32 prefix to lookup the origin ASN for an IPv4 address.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.prefix!==void 0&&(t.prefix=e.prefix),e.origin!==void 0&&(t.origin=e.origin),e.rpkiStatus!==void 0&&(t.rpkiStatus=e.rpkiStatus),e.longestPrefixMatch!==void 0&&(t.longestPrefixMatch=e.longestPrefixMatch),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading route`,async()=>r.radar.bgp.routes.pfx2as(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded route`})}},jt={command:`realtime`,describe:`Retrieves real-time BGP routes for a prefix, using public real-time data collectors (RouteViews and RIPE RIS).`,builder:e=>e.option(`prefix`,{type:`string`,description:`Prefix`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.prefix!==void 0&&(t.prefix=e.prefix),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading route`,async()=>r.radar.bgp.routes.realtime(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded route`})}},Mt={command:`stats`,describe:`Retrieves the BGP routing table stats.`,builder:e=>e.option(`asn`,{type:`number`,description:`Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading route`,async()=>r.radar.bgp.routes.stats(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded route`})}},Nt={command:`routes`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Ot).command(kt).command(At).command(jt).command(Mt).demandCommand(1),handler:()=>{}},Pt={command:`changes`,describe:`Retrieves ASPA (Autonomous System Provider Authorization) changes over time. Returns daily aggregated changes including additions, removals, and modifications of ASPA objects.`,builder:e=>e.option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`number`,description:`Filter changes involving this ASN (as customer or provider).`}).option(`include-asn-info`,{type:`boolean`,description:`Include ASN metadata (name, country) in response.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.includeAsnInfo!==void 0&&(t.includeAsnInfo=e.includeAsnInfo),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading aspa`,async()=>r.radar.bgp.rpki.aspa.changes(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded aspa`})}},Ft={command:`snapshot`,describe:`Retrieves current or historical ASPA (Autonomous System Provider Authorization) objects. ASPA objects define which ASNs are authorized upstream providers for a customer ASN.`,builder:e=>e.option(`customer-asn`,{type:`number`,description:`Filter by customer ASN (the ASN publishing the ASPA object).`}).option(`provider-asn`,{type:`number`,description:`Filter by provider ASN (an authorized upstream provider in ASPA objects).`}).option(`date`,{type:`string`,description:`Filters results by the specified datetime (ISO 8601).`}).option(`include-asn-info`,{type:`boolean`,description:`Include ASN metadata (name, country) in response.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.customerAsn!==void 0&&(t.customerAsn=e.customerAsn),e.providerAsn!==void 0&&(t.providerAsn=e.providerAsn),e.date!==void 0&&(t.date=e.date),e.includeAsnInfo!==void 0&&(t.includeAsnInfo=e.includeAsnInfo),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading aspa`,async()=>r.radar.bgp.rpki.aspa.snapshot(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded aspa`})}},It={command:`timeseries`,describe:`Retrieves ASPA (Autonomous System Provider Authorization) object count over time. Supports filtering by RIR or location (country code) to generate multiple named series. If no RIR or location filter is specified, returns total count.`,builder:e=>e.option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`rir`,{type:`string`,description:`Filter by Regional Internet Registry (RIR). Multiple RIRs generate multiple series.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.name!==void 0&&(t.name=e.name),e.rir!==void 0&&(t.rir=e.rir),e.location!==void 0&&(t.location=e.location),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading aspa`,async()=>r.radar.bgp.rpki.aspa.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded aspa`})}},Lt={command:`aspa`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Pt).command(Ft).command(It).demandCommand(1),handler:()=>{}},Rt={command:`rpki`,describe:`Operations for bgp.rpki`,builder:e=>e.command(Lt).demandCommand(1),handler:()=>{}},zt={command:`timeseries`,describe:`Retrieves BGP updates over time. When requesting updates for an autonomous system, only BGP updates of type announcement are returned.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`prefix`,{type:`string`,description:`Filters results by BGP network prefix.`}).option(`update-type`,{type:`string`,description:`Filters results by BGP update type.`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.prefix!==void 0&&(t.prefix=e.prefix),e.updateType!==void 0&&(t.updateType=e.updateType),e.asn!==void 0&&(t.asn=e.asn),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bgp`,async()=>r.radar.bgp.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bgp`})}},Bt={command:`get`,describe:`Retrieves the top autonomous systems by BGP updates (announcements only).`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`prefix`,{type:`string`,description:`Filters results by BGP network prefix.`}).option(`update-type`,{type:`string`,description:`Filters results by BGP update type.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.prefix!==void 0&&(t.prefix=e.prefix),e.updateType!==void 0&&(t.updateType=e.updateType),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ase`,async()=>r.radar.bgp.top.ases.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ase`})}},Vt={command:`prefixes`,describe:`Retrieves the full list of autonomous systems on the global routing table ordered by announced prefixes count. The data comes from public BGP MRT data archives and updates every 2 hours.`,builder:e=>e.option(`country`,{type:`string`,description:`Alpha-2 country code.`}).option(`limit`,{type:`number`,description:`Maximum number of ASes to return.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.country!==void 0&&(t.country=e.country),e.limit!==void 0&&(t.limit=e.limit),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ase`,async()=>r.radar.bgp.top.ases.prefixes(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ase`})}},Ht={command:`ases`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Bt).command(Vt).demandCommand(1),handler:()=>{}},Ut={command:`prefixes`,describe:`Retrieves the top network prefixes by BGP updates.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`update-type`,{type:`string`,description:`Filters results by BGP update type.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.updateType!==void 0&&(t.updateType=e.updateType),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.bgp.top.prefixes(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Wt={command:`top`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(Ut).command(Ht).demandCommand(1),handler:()=>{}},Gt={command:`bgp`,describe:`BGP routing data — prefix announcements, AS-level stats, route leaks, and hijack events`,builder:e=>e.command(zt).command(St).command(wt).command(Dt).command(Nt).command(Rt).command(Wt).demandCommand(1),handler:()=>{}},Kt={command:`get <botSlug>`,describe:`Retrieves the requested bot information.`,builder:e=>e.positional(`botSlug`,{type:`string`,description:`Bot slug.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.botSlug,`botSlug`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.bots.get(e.botSlug,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},qt={command:`list`,describe:`Retrieves a list of bots.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`bot-category`,{type:`string`,description:`Filters results by bot category.`,choices:[`SEARCH_ENGINE_CRAWLER`,`SEARCH_ENGINE_OPTIMIZATION`,`MONITORING_AND_ANALYTICS`,`ADVERTISING_AND_MARKETING`,`SOCIAL_MEDIA_MARKETING`,`PAGE_PREVIEW`,`ACADEMIC_RESEARCH`,`SECURITY`,`ACCESSIBILITY`,`WEBHOOKS`,`FEED_FETCHER`,`AI_CRAWLER`,`AGGREGATOR`,`AI_ASSISTANT`,`AI_SEARCH`,`ARCHIVER`]}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`kind`,{type:`string`,description:`Filters results by bot kind.`,choices:[`AGENT`,`BOT`]}).option(`bot-verification-status`,{type:`string`,description:`Filters results by bot verification status.`,choices:[`VERIFIED`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.botCategory!==void 0&&(t.botCategory=e.botCategory),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.kind!==void 0&&(t.kind=e.kind),e.botVerificationStatus!==void 0&&(t.botVerificationStatus=e.botVerificationStatus),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bots`,async()=>r.radar.bots.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bots`})}},Jt={command:`summary <dimension>`,describe:`Retrieves an aggregated summary of bots HTTP requests grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`bot`,{type:`string`,description:`Filters results by bot name.`}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`bot-category`,{type:`string`,description:`Filters results by bot category.`}).option(`bot-kind`,{type:`string`,description:`Filters results by bot kind.`}).option(`bot-verification-status`,{type:`string`,description:`Filters results by bot verification status (Verified vs. Unverified).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.bot!==void 0&&(t.bot=e.bot),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.botCategory!==void 0&&(t.botCategory=e.botCategory),e.botKind!==void 0&&(t.botKind=e.botKind),e.botVerificationStatus!==void 0&&(t.botVerificationStatus=e.botVerificationStatus),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.bots.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},Yt={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of HTTP requests from bots, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`bot`,{type:`string`,description:`Filters results by bot name.`}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`bot-category`,{type:`string`,description:`Filters results by bot category.`}).option(`bot-kind`,{type:`string`,description:`Filters results by bot kind.`}).option(`bot-verification-status`,{type:`string`,description:`Filters results by bot verification status (Verified vs. Unverified).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.bot!==void 0&&(t.bot=e.bot),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.botCategory!==void 0&&(t.botCategory=e.botCategory),e.botKind!==void 0&&(t.botKind=e.botKind),e.botVerificationStatus!==void 0&&(t.botVerificationStatus=e.botVerificationStatus),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.bots.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},Xt={command:`timeseries`,describe:`Retrieves bots HTTP request volume over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`bot`,{type:`string`,description:`Filters results by bot name.`}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`bot-category`,{type:`string`,description:`Filters results by bot category.`}).option(`bot-kind`,{type:`string`,description:`Filters results by bot kind.`}).option(`bot-verification-status`,{type:`string`,description:`Filters results by bot verification status (Verified vs. Unverified).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.bot!==void 0&&(t.bot=e.bot),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.botCategory!==void 0&&(t.botCategory=e.botCategory),e.botKind!==void 0&&(t.botKind=e.botKind),e.botVerificationStatus!==void 0&&(t.botVerificationStatus=e.botVerificationStatus),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot`,async()=>r.radar.bots.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot`})}},Zt={command:`summary <dimension>`,describe:`Retrieves an aggregated summary of HTTP requests from crawlers, grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`client-type`,{type:`string`,description:`Filters results by agent type.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.vertical!==void 0&&(t.vertical=e.vertical),e.industry!==void 0&&(t.industry=e.industry),e.clientType!==void 0&&(t.clientType=e.clientType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading web crawler`,async()=>r.radar.bots.webCrawlers.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded web crawler`})}},Qt={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of HTTP requests from crawlers, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`bot-operator`,{type:`string`,description:`Filters results by bot operator.`}).option(`vertical`,{type:`string`,description:`Filters results by vertical.`}).option(`industry`,{type:`string`,description:`Filters results by industry.`}).option(`client-type`,{type:`string`,description:`Filters results by agent type.`}).option(`response-status`,{type:`string`,description:`Filters results by HTTP response status code (e.g. 200, 403, 404). Only [IANA-registered codes](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) are accepted.`}).option(`response-status-category`,{type:`string`,description:`Filters results by HTTP response status code category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.botOperator!==void 0&&(t.botOperator=e.botOperator),e.vertical!==void 0&&(t.vertical=e.vertical),e.industry!==void 0&&(t.industry=e.industry),e.clientType!==void 0&&(t.clientType=e.clientType),e.responseStatus!==void 0&&(t.responseStatus=e.responseStatus),e.responseStatusCategory!==void 0&&(t.responseStatusCategory=e.responseStatusCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading web crawler`,async()=>r.radar.bots.webCrawlers.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded web crawler`})}},$t={command:`web-crawlers`,describe:`Internet-wide bot traffic trends, categories, and distribution statistics`,builder:e=>e.command(Zt).command(Qt).demandCommand(1),handler:()=>{}},en={command:`bots`,describe:`Internet-wide bot traffic trends, categories, and distribution statistics`,builder:e=>e.command(Kt).command(qt).command(Jt).command(Xt).command(Yt).command($t).demandCommand(1),handler:()=>{}},tn={command:`get <caSlug>`,describe:`Retrieves the requested CA information.`,builder:e=>e.positional(`caSlug`,{type:`string`,description:`Certificate authority SHA256 fingerprint.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.caSlug,`caSlug`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading authority`,async()=>r.radar.ct.authorities.get(e.caSlug,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded authority`})}},nn={command:`list`,describe:`Retrieves a list of certificate authorities.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading authorities`,async()=>r.radar.ct.authorities.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded authorities`})}},rn={command:`authorities`,describe:`Certificate Transparency log monitoring and newly-issued certificate discovery`,builder:e=>e.command(tn).command(nn).demandCommand(1),handler:()=>{}},an={command:`get <logSlug>`,describe:`Retrieves the requested certificate log information.`,builder:e=>e.positional(`logSlug`,{type:`string`,description:`Certificate log slug.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.logSlug,`logSlug`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading log`,async()=>r.radar.ct.logs.get(e.logSlug,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded log`})}},on={command:`list`,describe:`Retrieves a list of certificate logs.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading logs`,async()=>r.radar.ct.logs.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded logs`})}},sn={command:`logs`,describe:`Certificate Transparency log monitoring and newly-issued certificate discovery`,builder:e=>e.command(an).command(on).demandCommand(1),handler:()=>{}},cn={command:`summary <dimension>`,describe:`Retrieves an aggregated summary of certificates grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the certificate attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`ca`,{type:`string`,description:`Filters results by certificate authority.`}).option(`ca-owner`,{type:`string`,description:`Filters results by certificate authority owner.`}).option(`duration`,{type:`string`,description:`Filters results by certificate duration.`}).option(`entry-type`,{type:`string`,description:`Filters results by entry type (certificate vs. pre-certificate).`}).option(`expiration-status`,{type:`string`,description:`Filters results by expiration status (expired vs. valid).`}).option(`has-ips`,{type:`string`,description:`Filters results based on whether the certificates are bound to specific IP addresses.`}).option(`has-wildcards`,{type:`string`,description:`Filters results based on whether the certificates contain wildcard domains.`}).option(`log`,{type:`string`,description:`Filters results by certificate log.`}).option(`log-api`,{type:`string`,description:`Filters results by certificate log API (RFC6962 vs. static).`}).option(`log-operator`,{type:`string`,description:`Filters results by certificate log operator.`}).option(`public-key-algorithm`,{type:`string`,description:`Filters results by public key algorithm.`}).option(`signature-algorithm`,{type:`string`,description:`Filters results by signature algorithm.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`validation-level`,{type:`string`,description:`Filters results by validation level.`}).option(`unique-entries`,{type:`string`,description:`Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`RAW_VALUES`,`PERCENTAGE`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.ca!==void 0&&(t.ca=e.ca),e.caOwner!==void 0&&(t.caOwner=e.caOwner),e.duration!==void 0&&(t.duration=e.duration),e.entryType!==void 0&&(t.entryType=e.entryType),e.expirationStatus!==void 0&&(t.expirationStatus=e.expirationStatus),e.hasIps!==void 0&&(t.hasIps=e.hasIps),e.hasWildcards!==void 0&&(t.hasWildcards=e.hasWildcards),e.log!==void 0&&(t.log=e.log),e.logApi!==void 0&&(t.logApi=e.logApi),e.logOperator!==void 0&&(t.logOperator=e.logOperator),e.publicKeyAlgorithm!==void 0&&(t.publicKeyAlgorithm=e.publicKeyAlgorithm),e.signatureAlgorithm!==void 0&&(t.signatureAlgorithm=e.signatureAlgorithm),e.tld!==void 0&&(t.tld=e.tld),e.validationLevel!==void 0&&(t.validationLevel=e.validationLevel),e.uniqueEntries!==void 0&&(t.uniqueEntries=e.uniqueEntries),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ct`,async()=>r.radar.ct.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ct`})}},ln={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of certificates grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the certificate attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`ca`,{type:`string`,description:`Filters results by certificate authority.`}).option(`ca-owner`,{type:`string`,description:`Filters results by certificate authority owner.`}).option(`duration`,{type:`string`,description:`Filters results by certificate duration.`}).option(`entry-type`,{type:`string`,description:`Filters results by entry type (certificate vs. pre-certificate).`}).option(`expiration-status`,{type:`string`,description:`Filters results by expiration status (expired vs. valid).`}).option(`has-ips`,{type:`string`,description:`Filters results based on whether the certificates are bound to specific IP addresses.`}).option(`has-wildcards`,{type:`string`,description:`Filters results based on whether the certificates contain wildcard domains.`}).option(`log`,{type:`string`,description:`Filters results by certificate log.`}).option(`log-api`,{type:`string`,description:`Filters results by certificate log API (RFC6962 vs. static).`}).option(`log-operator`,{type:`string`,description:`Filters results by certificate log operator.`}).option(`public-key-algorithm`,{type:`string`,description:`Filters results by public key algorithm.`}).option(`signature-algorithm`,{type:`string`,description:`Filters results by signature algorithm.`}).option(`validation-level`,{type:`string`,description:`Filters results by validation level.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`RAW_VALUES`,`PERCENTAGE`]}).option(`unique-entries`,{type:`string`,description:`Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.ca!==void 0&&(t.ca=e.ca),e.caOwner!==void 0&&(t.caOwner=e.caOwner),e.duration!==void 0&&(t.duration=e.duration),e.entryType!==void 0&&(t.entryType=e.entryType),e.expirationStatus!==void 0&&(t.expirationStatus=e.expirationStatus),e.hasIps!==void 0&&(t.hasIps=e.hasIps),e.hasWildcards!==void 0&&(t.hasWildcards=e.hasWildcards),e.log!==void 0&&(t.log=e.log),e.logApi!==void 0&&(t.logApi=e.logApi),e.logOperator!==void 0&&(t.logOperator=e.logOperator),e.publicKeyAlgorithm!==void 0&&(t.publicKeyAlgorithm=e.publicKeyAlgorithm),e.signatureAlgorithm!==void 0&&(t.signatureAlgorithm=e.signatureAlgorithm),e.validationLevel!==void 0&&(t.validationLevel=e.validationLevel),e.tld!==void 0&&(t.tld=e.tld),e.normalization!==void 0&&(t.normalization=e.normalization),e.uniqueEntries!==void 0&&(t.uniqueEntries=e.uniqueEntries),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ct`,async()=>r.radar.ct.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ct`})}},un={command:`timeseries`,describe:`Retrieves certificate volume over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`ca`,{type:`string`,description:`Filters results by certificate authority.`}).option(`ca-owner`,{type:`string`,description:`Filters results by certificate authority owner.`}).option(`duration`,{type:`string`,description:`Filters results by certificate duration.`}).option(`entry-type`,{type:`string`,description:`Filters results by entry type (certificate vs. pre-certificate).`}).option(`expiration-status`,{type:`string`,description:`Filters results by expiration status (expired vs. valid).`}).option(`has-ips`,{type:`string`,description:`Filters results based on whether the certificates are bound to specific IP addresses.`}).option(`has-wildcards`,{type:`string`,description:`Filters results based on whether the certificates contain wildcard domains.`}).option(`log`,{type:`string`,description:`Filters results by certificate log.`}).option(`log-api`,{type:`string`,description:`Filters results by certificate log API (RFC6962 vs. static).`}).option(`log-operator`,{type:`string`,description:`Filters results by certificate log operator.`}).option(`public-key-algorithm`,{type:`string`,description:`Filters results by public key algorithm.`}).option(`signature-algorithm`,{type:`string`,description:`Filters results by signature algorithm.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`validation-level`,{type:`string`,description:`Filters results by validation level.`}).option(`unique-entries`,{type:`string`,description:`Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.ca!==void 0&&(t.ca=e.ca),e.caOwner!==void 0&&(t.caOwner=e.caOwner),e.duration!==void 0&&(t.duration=e.duration),e.entryType!==void 0&&(t.entryType=e.entryType),e.expirationStatus!==void 0&&(t.expirationStatus=e.expirationStatus),e.hasIps!==void 0&&(t.hasIps=e.hasIps),e.hasWildcards!==void 0&&(t.hasWildcards=e.hasWildcards),e.log!==void 0&&(t.log=e.log),e.logApi!==void 0&&(t.logApi=e.logApi),e.logOperator!==void 0&&(t.logOperator=e.logOperator),e.publicKeyAlgorithm!==void 0&&(t.publicKeyAlgorithm=e.publicKeyAlgorithm),e.signatureAlgorithm!==void 0&&(t.signatureAlgorithm=e.signatureAlgorithm),e.tld!==void 0&&(t.tld=e.tld),e.validationLevel!==void 0&&(t.validationLevel=e.validationLevel),e.uniqueEntries!==void 0&&(t.uniqueEntries=e.uniqueEntries),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ct`,async()=>r.radar.ct.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ct`})}},dn={command:`ct`,describe:`Certificate Transparency log monitoring and newly-issued certificate discovery`,builder:e=>e.command(cn).command(un).command(ln).command(rn).command(sn).demandCommand(1),handler:()=>{}},fn={command:`download`,describe:`Retrieves an URL to download a single dataset.`,builder:e=>e.option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}).option(`dataset-id`,{type:`number`,description:`The datasetId field`}).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)`}),handler:async e=>{let t={};if(e.format!==void 0&&(t.format=e.format),e.dryRun){c({command:`cf radar datasets download`,method:`POST`,url:`https://api.cloudflare.com/client/v4/radar/datasets/download`,pathParams:{},bodyKind:`json`,body:{...t,datasetId:e.datasetId,body:e.body},validation:`passed`});return}let r=await n(e);if(e.body){let n=o(e.body),i=new URLSearchParams(Object.entries(t).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString();s(await u(`Creating dataset`,async()=>r.post(`/radar/datasets/download${i?`?`+i:``}`,{body:n})),{successLabel:`Created dataset`});return}if(e.datasetId===void 0)throw Error(`--dataset-id is required (or pass --body with this field set).`);let i={};e.datasetId!==void 0&&a(i,[`datasetId`],e.datasetId);let l=new URLSearchParams(Object.entries(t).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString();s(await u(`Creating dataset`,async()=>r.post(`/radar/datasets/download${l?`?`+l:``}`,{body:Object.keys(i).length>0?i:void 0})),{successLabel:`Created dataset`})}},pn={command:`get <alias>`,describe:`Retrieves the CSV content of a given dataset by alias or ID. When getting the content by alias the latest dataset is returned, optionally filtered by the latest available at a given date.`,builder:e=>e.positional(`alias`,{type:`string`,description:`Dataset alias or ID.`,demandOption:!0}),handler:async e=>{i(e.alias,`alias`),await n(e),d((await u(`Loading dataset`,async()=>ee(`/radar/datasets/${e.alias}`,`GET`,e.local?e.localEndpoint:void 0))).toString(`utf-8`))}},mn={command:`list`,describe:`Retrieves a list of datasets.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`dataset-type`,{type:`string`,description:`Filters results by dataset type.`,choices:[`RANKING_BUCKET`,`REPORT`]}).option(`date`,{type:`string`,description:`Filters results by the specified date.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.datasetType!==void 0&&(t.datasetType=e.datasetType),e.date!==void 0&&(t.date=e.date),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading datasets`,async()=>r.radar.datasets.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded datasets`})}},hn={command:`datasets`,describe:`Downloadable Radar datasets for offline analysis and research`,builder:e=>e.command(fn).command(pn).command(mn).demandCommand(1),handler:()=>{}},gn={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of DNS queries by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`cache-hit`,{type:`string`,description:`Filters results based on cache status.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`response-ttl`,{type:`string`,description:`Filters results by DNS response TTL.`}).option(`dnssec`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) support.`}).option(`dnssec-aware`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) client awareness.`}).option(`dnssec-e2e`,{type:`string`,description:`Filters results based on DNSSEC-validated answers by end-to-end security status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`matching-answer`,{type:`string`,description:`Filters results based on whether the queries have a matching answer.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.cacheHit!==void 0&&(t.cacheHit=e.cacheHit),e.nodata!==void 0&&(t.nodata=e.nodata),e.protocol!==void 0&&(t.protocol=e.protocol),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.responseTtl!==void 0&&(t.responseTtl=e.responseTtl),e.dnssec!==void 0&&(t.dnssec=e.dnssec),e.dnssecAware!==void 0&&(t.dnssecAware=e.dnssecAware),e.dnssecE2e!==void 0&&(t.dnssecE2e=e.dnssecE2e),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.matchingAnswer!==void 0&&(t.matchingAnswer=e.matchingAnswer),e.tld!==void 0&&(t.tld=e.tld),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading dn`,async()=>r.radar.dns.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded dn`})}},_n={command:`cache-hit`,describe:`Retrieves the distribution of DNS queries by cache status.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.cacheHit(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},vn={command:`dnssec-aware`,describe:`Retrieves the distribution of DNS queries by DNSSEC (DNS Security Extensions) client awareness.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.dnssecAware(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},yn={command:`dnssec-e2e`,describe:`Retrieves the distribution of DNSSEC-validated answers by end-to-end security status.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.dnssecE2e(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},bn={command:`dnssec`,describe:`Retrieves the distribution of DNS responses by DNSSEC (DNS Security Extensions) support.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.dnssec(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},xn={command:`ip-version`,describe:`Retrieves the distribution of DNS queries by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Sn={command:`matching-answer`,describe:`Retrieves the distribution of DNS queries by matching answers.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.matchingAnswer(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Cn={command:`protocol`,describe:`Retrieves the distribution of DNS queries by DNS transport protocol.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},wn={command:`query-type`,describe:`Retrieves the distribution of DNS queries by type.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.queryType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Tn={command:`response-code`,describe:`Retrieves the distribution of DNS queries by response code.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.nodata!==void 0&&(t.nodata=e.nodata),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.responseCode(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},En={command:`response-ttl`,describe:`Retrieves the distribution of DNS queries by minimum response TTL.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.dns.summary.responseTtl(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Dn={command:`summary`,describe:`Global DNS query trends — top domains, resolver stats, and DNSSEC adoption`,builder:e=>e.command(_n).command(bn).command(vn).command(yn).command(xn).command(Sn).command(Cn).command(wn).command(Tn).command(En).demandCommand(1),handler:()=>{}},On={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of DNS queries grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`cache-hit`,{type:`string`,description:`Filters results based on cache status.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`response-ttl`,{type:`string`,description:`Filters results by DNS response TTL.`}).option(`dnssec`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) support.`}).option(`dnssec-aware`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) client awareness.`}).option(`dnssec-e2e`,{type:`string`,description:`Filters results based on DNSSEC-validated answers by end-to-end security status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`matching-answer`,{type:`string`,description:`Filters results based on whether the queries have a matching answer.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.cacheHit!==void 0&&(t.cacheHit=e.cacheHit),e.nodata!==void 0&&(t.nodata=e.nodata),e.protocol!==void 0&&(t.protocol=e.protocol),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.responseTtl!==void 0&&(t.responseTtl=e.responseTtl),e.dnssec!==void 0&&(t.dnssec=e.dnssec),e.dnssecAware!==void 0&&(t.dnssecAware=e.dnssecAware),e.dnssecE2e!==void 0&&(t.dnssecE2e=e.dnssecE2e),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.matchingAnswer!==void 0&&(t.matchingAnswer=e.matchingAnswer),e.tld!==void 0&&(t.tld=e.tld),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading dn`,async()=>r.radar.dns.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded dn`})}},kn={command:`cache-hit`,describe:`Retrieves the distribution of DNS queries by cache status over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.cacheHit(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},An={command:`dnssec-aware`,describe:`Retrieves the distribution of DNS queries by DNSSEC (DNS Security Extensions) client awareness over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.dnssecAware(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},jn={command:`dnssec-e2e`,describe:`Retrieves the distribution of DNSSEC-validated answers by end-to-end security status over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.dnssecE2e(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Mn={command:`dnssec`,describe:`Retrieves the distribution of DNS responses by DNSSEC (DNS Security Extensions) support over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.dnssec(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Nn={command:`ip-version`,describe:`Retrieves the distribution of DNS queries by IP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Pn={command:`matching-answer`,describe:`Retrieves the distribution of DNS queries by matching answers over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.matchingAnswer(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Fn={command:`protocol`,describe:`Retrieves the distribution of DNS queries by DNS transport protocol over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.protocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},In={command:`query-type`,describe:`Retrieves the distribution of DNS queries by type over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.queryType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Ln={command:`response-code`,describe:`Retrieves the distribution of DNS queries by response code over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.nodata!==void 0&&(t.nodata=e.nodata),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.responseCode(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Rn={command:`response-ttl`,describe:`Retrieves the distribution of DNS queries by minimum answer TTL over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.tld!==void 0&&(t.tld=e.tld),e.queryType!==void 0&&(t.queryType=e.queryType),e.protocol!==void 0&&(t.protocol=e.protocol),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.nodata!==void 0&&(t.nodata=e.nodata),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.dns.timeseriesGroups.responseTtl(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},zn={command:`timeseries-groups`,describe:`Global DNS query trends — top domains, resolver stats, and DNSSEC adoption`,builder:e=>e.command(kn).command(Mn).command(An).command(jn).command(Nn).command(Pn).command(Fn).command(In).command(Ln).command(Rn).demandCommand(1),handler:()=>{}},Bn={command:`timeseries`,describe:`Retrieves normalized query volume to the 1.1.1.1 DNS resolver over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`cache-hit`,{type:`string`,description:`Filters results based on cache status.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`response-ttl`,{type:`string`,description:`Filters results by DNS response TTL.`}).option(`dnssec`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) support.`}).option(`dnssec-aware`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) client awareness.`}).option(`dnssec-e2e`,{type:`string`,description:`Filters results based on DNSSEC-validated answers by end-to-end security status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`matching-answer`,{type:`string`,description:`Filters results based on whether the queries have a matching answer.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.cacheHit!==void 0&&(t.cacheHit=e.cacheHit),e.nodata!==void 0&&(t.nodata=e.nodata),e.protocol!==void 0&&(t.protocol=e.protocol),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.responseTtl!==void 0&&(t.responseTtl=e.responseTtl),e.dnssec!==void 0&&(t.dnssec=e.dnssec),e.dnssecAware!==void 0&&(t.dnssecAware=e.dnssecAware),e.dnssecE2e!==void 0&&(t.dnssecE2e=e.dnssecE2e),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.matchingAnswer!==void 0&&(t.matchingAnswer=e.matchingAnswer),e.tld!==void 0&&(t.tld=e.tld),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading dn`,async()=>r.radar.dns.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded dn`})}},Vn={command:`ases`,describe:`Retrieves the top autonomous systems by DNS queries made to 1.1.1.1 DNS resolver.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`domain`,{type:`string`,description:`Filters results by domain name.`}).option(`cache-hit`,{type:`string`,description:`Filters results based on cache status.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`response-ttl`,{type:`string`,description:`Filters results by DNS response TTL.`}).option(`dnssec`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) support.`}).option(`dnssec-aware`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) client awareness.`}).option(`dnssec-e2e`,{type:`string`,description:`Filters results based on DNSSEC-validated answers by end-to-end security status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`matching-answer`,{type:`string`,description:`Filters results based on whether the queries have a matching answer.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.domain!==void 0&&(t.domain=e.domain),e.cacheHit!==void 0&&(t.cacheHit=e.cacheHit),e.nodata!==void 0&&(t.nodata=e.nodata),e.protocol!==void 0&&(t.protocol=e.protocol),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.responseTtl!==void 0&&(t.responseTtl=e.responseTtl),e.dnssec!==void 0&&(t.dnssec=e.dnssec),e.dnssecAware!==void 0&&(t.dnssecAware=e.dnssecAware),e.dnssecE2e!==void 0&&(t.dnssecE2e=e.dnssecE2e),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.matchingAnswer!==void 0&&(t.matchingAnswer=e.matchingAnswer),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.dns.top.ases(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Hn={command:`locations`,describe:`Retrieves the top locations by DNS queries made to 1.1.1.1 DNS resolver.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`domain`,{type:`string`,description:`Filters results by domain name.`}).option(`cache-hit`,{type:`string`,description:`Filters results based on cache status.`}).option(`nodata`,{type:`string`,description:`Specifies whether the response includes empty DNS responses (NODATA).`}).option(`protocol`,{type:`string`,description:`Filters results by DNS transport protocol.`}).option(`query-type`,{type:`string`,description:`Filters results by DNS query type.`}).option(`response-code`,{type:`string`,description:`Filters results by DNS response code.`}).option(`response-ttl`,{type:`string`,description:`Filters results by DNS response TTL.`}).option(`dnssec`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) support.`}).option(`dnssec-aware`,{type:`string`,description:`Filters results based on DNSSEC (DNS Security Extensions) client awareness.`}).option(`dnssec-e2e`,{type:`string`,description:`Filters results based on DNSSEC-validated answers by end-to-end security status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`matching-answer`,{type:`string`,description:`Filters results based on whether the queries have a matching answer.`}).option(`tld`,{type:`string`,description:`Filters results by top-level domain.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.domain!==void 0&&(t.domain=e.domain),e.cacheHit!==void 0&&(t.cacheHit=e.cacheHit),e.nodata!==void 0&&(t.nodata=e.nodata),e.protocol!==void 0&&(t.protocol=e.protocol),e.queryType!==void 0&&(t.queryType=e.queryType),e.responseCode!==void 0&&(t.responseCode=e.responseCode),e.responseTtl!==void 0&&(t.responseTtl=e.responseTtl),e.dnssec!==void 0&&(t.dnssec=e.dnssec),e.dnssecAware!==void 0&&(t.dnssecAware=e.dnssecAware),e.dnssecE2e!==void 0&&(t.dnssecE2e=e.dnssecE2e),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.matchingAnswer!==void 0&&(t.matchingAnswer=e.matchingAnswer),e.tld!==void 0&&(t.tld=e.tld),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.dns.top.locations(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Un={command:`top`,describe:`Global DNS query trends — top domains, resolver stats, and DNSSEC adoption`,builder:e=>e.command(Vn).command(Hn).demandCommand(1),handler:()=>{}},Wn={command:`dns`,describe:`Global DNS query trends — top domains, resolver stats, and DNSSEC adoption`,builder:e=>e.command(gn).command(Bn).command(On).command(Dn).command(zn).command(Un).demandCommand(1),handler:()=>{}},Gn={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of email routing metrics by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading routing`,async()=>r.radar.email.routing.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded routing`})}},Kn={command:`arc`,describe:`Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.arc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},qn={command:`dkim`,describe:`Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.dkim(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Jn={command:`dmarc`,describe:`Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.dmarc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Yn={command:`encrypted`,describe:`Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.encrypted(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Xn={command:`ip-version`,describe:`Retrieves the distribution of emails by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Zn={command:`spf`,describe:`Retrieves the distribution of emails by SPF (Sender Policy Framework) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.routing.summary.spf(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Qn={command:`summary`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(Kn).command(qn).command(Jn).command(Yn).command(Xn).command(Zn).demandCommand(1),handler:()=>{}},$n={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of email routing metrics grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading routing`,async()=>r.radar.email.routing.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded routing`})}},er={command:`arc`,describe:`Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.arc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},tr={command:`dkim`,describe:`Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.dkim(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},nr={command:`dmarc`,describe:`Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.dmarc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},rr={command:`encrypted`,describe:`Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted) over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.encrypted(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ir={command:`ip-version`,describe:`Retrieves the distribution of emails by IP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ar={command:`spf`,describe:`Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`encrypted`,{type:`string`,description:`Filters results by encryption status (encrypted vs. not-encrypted).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.encrypted!==void 0&&(t.encrypted=e.encrypted),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.routing.timeseriesGroups.spf(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},or={command:`timeseries-groups`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(er).command(tr).command(nr).command(rr).command(ir).command(ar).demandCommand(1),handler:()=>{}},sr={command:`routing`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(Gn).command($n).command(Qn).command(or).demandCommand(1),handler:()=>{}},cr={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of email security metrics by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading security`,async()=>r.radar.email.security.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded security`})}},lr={command:`arc`,describe:`Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.arc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},$={command:`dkim`,describe:`Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.dkim(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},ur={command:`dmarc`,describe:`Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.dmarc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},dr={command:`malicious`,describe:`Retrieves the distribution of emails by malicious classification.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.malicious(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},fr={command:`spam`,describe:`Retrieves the proportion of emails by spam classification (spam vs. non-spam).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.spam(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},pr={command:`spf`,describe:`Retrieves the distribution of emails by SPF (Sender Policy Framework) validation.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.spf(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},mr={command:`spoof`,describe:`Retrieves the proportion of emails by spoof classification (spoof vs. non-spoof).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.spoof(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},hr={command:`threat-category`,describe:`Retrieves the distribution of emails by threat categories.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.threatCategory(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},gr={command:`tls-version`,describe:`Retrieves the distribution of emails by TLS version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.email.security.summary.tlsVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},_r={command:`summary`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(lr).command($).command(ur).command(dr).command(fr).command(pr).command(mr).command(hr).command(gr).demandCommand(1),handler:()=>{}},vr={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of email security metrics grouped by dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading security`,async()=>r.radar.email.security.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded security`})}},yr={command:`arc`,describe:`Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.arc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},br={command:`dkim`,describe:`Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.dkim(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},xr={command:`dmarc`,describe:`Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.dmarc(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Sr={command:`malicious`,describe:`Retrieves the distribution of emails by malicious classification over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.malicious(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Cr={command:`spam`,describe:`Retrieves the distribution of emails by spam classification (spam vs. non-spam) over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.spam(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},wr={command:`spf`,describe:`Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.spf(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Tr={command:`spoof`,describe:`Retrieves the distribution of emails by spoof classification (spoof vs. non-spoof) over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.spoof(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Er={command:`threat-category`,describe:`Retrieves the distribution of emails by threat category over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.threatCategory(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Dr={command:`tls-version`,describe:`Retrieves the distribution of emails by TLS version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.email.security.timeseriesGroups.tlsVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Or={command:`timeseries-groups`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(yr).command(br).command(xr).command(Sr).command(Cr).command(wr).command(Tr).command(Er).command(Dr).demandCommand(1),handler:()=>{}},kr={command:`get`,describe:`Retrieves the top TLDs by number of email messages.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`tld-category`,{type:`string`,description:`Filters results by TLD category.`,choices:[`CLASSIC`,`COUNTRY`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.tldCategory!==void 0&&(t.tldCategory=e.tldCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tld`,async()=>r.radar.email.security.top.tlds.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tld`})}},Ar={command:`get <malicious>`,describe:`Retrieves the top TLDs by emails classified as malicious or not.`,builder:e=>e.positional(`malicious`,{type:`string`,description:`Malicious classification.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`tld-category`,{type:`string`,description:`Filters results by TLD category.`,choices:[`CLASSIC`,`COUNTRY`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.malicious,`malicious`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.tldCategory!==void 0&&(t.tldCategory=e.tldCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading maliciou`,async()=>r.radar.email.security.top.tlds.malicious.get(e.malicious,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded maliciou`})}},jr={command:`malicious`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(Ar).demandCommand(1),handler:()=>{}},Mr={command:`get <spam>`,describe:`Retrieves the top TLDs by emails classified as spam or not.`,builder:e=>e.positional(`spam`,{type:`string`,description:`Spam classification.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`tld-category`,{type:`string`,description:`Filters results by TLD category.`,choices:[`CLASSIC`,`COUNTRY`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.spam,`spam`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.tldCategory!==void 0&&(t.tldCategory=e.tldCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading spam`,async()=>r.radar.email.security.top.tlds.spam.get(e.spam,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded spam`})}},Nr={command:`spam`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(Mr).demandCommand(1),handler:()=>{}},Pr={command:`get <spoof>`,describe:`Retrieves the top TLDs by emails classified as spoof or not.`,builder:e=>e.positional(`spoof`,{type:`string`,description:`Spoof classification.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`arc`,{type:`string`,description:`Filters results by ARC (Authenticated Received Chain) validation.`}).option(`dkim`,{type:`string`,description:`Filters results by DKIM (DomainKeys Identified Mail) validation status.`}).option(`dmarc`,{type:`string`,description:`Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status.`}).option(`spf`,{type:`string`,description:`Filters results by SPF (Sender Policy Framework) validation status.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`tld-category`,{type:`string`,description:`Filters results by TLD category.`,choices:[`CLASSIC`,`COUNTRY`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.spoof,`spoof`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.arc!==void 0&&(t.arc=e.arc),e.dkim!==void 0&&(t.dkim=e.dkim),e.dmarc!==void 0&&(t.dmarc=e.dmarc),e.spf!==void 0&&(t.spf=e.spf),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.tldCategory!==void 0&&(t.tldCategory=e.tldCategory),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading spoof`,async()=>r.radar.email.security.top.tlds.spoof.get(e.spoof,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded spoof`})}},Fr={command:`spoof`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(Pr).demandCommand(1),handler:()=>{}},Ir={command:`tlds`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(kr).command(jr).command(Nr).command(Fr).demandCommand(1),handler:()=>{}},Lr={command:`top`,describe:`Operations for email.security.top`,builder:e=>e.command(Ir).demandCommand(1),handler:()=>{}},Rr={command:`security`,describe:`Email security trends — DMARC/SPF/DKIM adoption, spam, and phishing statistics`,builder:e=>e.command(cr).command(vr).command(_r).command(Or).command(Lr).demandCommand(1),handler:()=>{}},zr={command:`email`,describe:`Operations for email`,builder:e=>e.command(sr).command(Rr).demandCommand(1),handler:()=>{}},Br={command:`as-set <asn>`,describe:`Retrieves Internet Routing Registry AS-SETs that an AS is a member of.`,builder:e=>e.positional(`asn`,{type:`string`,description:`Retrieves all AS-SETs that the given AS is a member of.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.asn,`asn`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asn`,async()=>r.radar.entities.asns.asSet(e.asn,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asn`})}},Vr={command:`botnet-threat-feed`,describe:`Retrieves a ranked list of Autonomous Systems based on their presence in the Cloudflare Botnet Threat Feed. Rankings can be sorted by offense count or number of bad IPs. Optionally compare to a previous date to see rank changes.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`metric`,{type:`string`,description:`Metric to rank ASNs by.`,choices:[`OFFENSE_COUNT`,`NUMBER_OF_OFFENDING_IPS`]}).option(`date`,{type:`string`,description:`The date to retrieve (YYYY-MM-DD format). If not specified, returns the most recent available data. Note: This is the date the report was generated. The report is generated from information collected from the previous day (e.g., the 2026-02-23 entry contains data from 2026-02-22).`}).option(`compare-date-range`,{type:`string`,description:`Relative date range for rank change comparison (e.g., "1d", "7d", "30d").`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`sort-order`,{type:`string`,description:`Sort order.`,choices:[`ASC`,`DESC`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.metric!==void 0&&(t.metric=e.metric),e.date!==void 0&&(t.date=e.date),e.compareDateRange!==void 0&&(t.compareDateRange=e.compareDateRange),e.location!==void 0&&(t.location=e.location),e.asn!==void 0&&(t.asn=e.asn),e.sortOrder!==void 0&&(t.sortOrder=e.sortOrder),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asn`,async()=>r.radar.entities.asns.botnetThreatFeed(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asn`})}},Hr={command:`get <asn>`,describe:"Retrieves the requested autonomous system information. (A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this AS). Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526).",builder:e=>e.positional(`asn`,{type:`string`,description:`Single Autonomous System Number (ASN) as integer.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.asn,`asn`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asn`,async()=>r.radar.entities.asns.get(e.asn,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asn`})}},Ur={command:`ip`,describe:`Retrieves the requested autonomous system information based on IP address. Population estimates come from APNIC (refer to https://labs.apnic.net/?p=526).`,builder:e=>e.option(`ip`,{type:`string`,description:`IP address.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.ip!==void 0&&(t.ip=e.ip),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asn`,async()=>r.radar.entities.asns.ip(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asn`})}},Wr={command:`list`,describe:`Retrieves a list of autonomous systems.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`asn`,{type:`string`,description:`Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`order-by`,{type:`string`,description:`Specifies the metric to order the ASNs by.`,choices:[`ASN`,`POPULATION`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.orderBy!==void 0&&(t.orderBy=e.orderBy),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asns`,async()=>r.radar.entities.asns.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asns`})}},Gr={command:`rel <asn>`,describe:`Retrieves AS-level relationship for given networks.`,builder:e=>e.positional(`asn`,{type:`string`,description:`Retrieves all ASNs with provider-customer or peering relationships with the given ASN.`,demandOption:!0}).option(`asn2`,{type:`number`,description:`Retrieves the AS relationship of ASN2 with respect to the given ASN.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.asn,`asn`);let t={};e.asn2!==void 0&&(t.asn2=e.asn2),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading asn`,async()=>r.radar.entities.asns.rel(e.asn,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded asn`})}},Kr={command:`asns`,describe:`Look up ASNs, IPs, domains, and locations with metadata and traffic summaries`,builder:e=>e.command(Br).command(Vr).command(Hr).command(Ur).command(Wr).command(Gr).demandCommand(1),handler:()=>{}},qr={command:`get`,describe:`Retrieves IP address information.`,builder:e=>e.option(`ip`,{type:`string`,description:`IP address.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.ip!==void 0&&(t.ip=e.ip),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading entity`,async()=>r.radar.entities.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded entity`})}},Jr={command:`get <location>`,describe:"Retrieves the requested location information. (A confidence level below `5` indicates a low level of confidence in the traffic data - normally this happens because Cloudflare has a small amount of traffic from/to this location).",builder:e=>e.positional(`location`,{type:`string`,description:`Location alpha-2 code.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.location,`location`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.entities.locations.get(e.location,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},Yr={command:`list`,describe:`Retrieves a list of locations.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`region`,{type:`string`,description:`Filters results by region.`}).option(`subregion`,{type:`string`,description:`Filters results by subregion.`}).option(`continent`,{type:`string`,description:`Filters results by continent code.`,choices:[`AF`,`AS`,`EU`,`NA`,`OC`,`SA`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.location!==void 0&&(t.location=e.location),e.region!==void 0&&(t.region=e.region),e.subregion!==void 0&&(t.subregion=e.subregion),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading locations`,async()=>r.radar.entities.locations.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded locations`})}},Xr={command:`locations`,describe:`Look up ASNs, IPs, domains, and locations with metadata and traffic summaries`,builder:e=>e.command(Jr).command(Yr).demandCommand(1),handler:()=>{}},Zr={command:`entities`,describe:`Look up ASNs, IPs, domains, and locations with metadata and traffic summaries`,builder:e=>e.command(qr).command(Kr).command(Xr).demandCommand(1),handler:()=>{}},Qr={command:`get <geoId>`,describe:"Retrieves the requested Geolocation information. Geolocation names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`).",builder:e=>e.positional(`geoId`,{type:`string`,description:`Geolocation ID. Refer to [GeoNames](https://download.geonames.org/export/dump/readme.txt)`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.geoId,`geoId`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading geolocation`,async()=>r.radar.geolocations.get(e.geoId,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded geolocation`})}},$r={command:`list`,describe:"Retrieves a list of geolocations. Geolocation names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`).",builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`geo-id`,{type:`string`,description:`Filters results by geolocation. Specify a comma-separated list of GeoNames IDs.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.geoId!==void 0&&(t.geoId=e.geoId),e.location!==void 0&&(t.location=e.location),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading geolocations`,async()=>r.radar.geolocations.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded geolocations`})}},ei={command:`geolocations`,describe:`Geographic location metadata used for regional traffic analysis`,builder:e=>e.command(Qr).command($r).demandCommand(1),handler:()=>{}},ti={command:`get <botClass>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested bot class.`,builder:e=>e.positional(`botClass`,{type:`string`,description:`Bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.botClass,`botClass`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot class`,async()=>r.radar.http.ases.botClass.get(e.botClass,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot class`})}},ni={command:`bot-class`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(ti).demandCommand(1),handler:()=>{}},ri={command:`get <browserFamily>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested browser family.`,builder:e=>e.positional(`browserFamily`,{type:`string`,description:`Browser family.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.browserFamily,`browserFamily`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading browser family`,async()=>r.radar.http.ases.browserFamily.get(e.browserFamily,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded browser family`})}},ii={command:`browser-family`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(ri).demandCommand(1),handler:()=>{}},ai={command:`get <deviceType>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested device type.`,builder:e=>e.positional(`deviceType`,{type:`string`,description:`Device type.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.deviceType,`deviceType`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading device type`,async()=>r.radar.http.ases.deviceType.get(e.deviceType,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded device type`})}},oi={command:`device-type`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(ai).demandCommand(1),handler:()=>{}},si={command:`get`,describe:`Retrieves the top autonomous systems by HTTP requests.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ase`,async()=>r.radar.http.ases.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ase`})}},ci={command:`get <httpVersion>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested HTTP version.`,builder:e=>e.positional(`httpVersion`,{type:`string`,description:`HTTP version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.httpVersion,`httpVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http method`,async()=>r.radar.http.ases.httpMethod.get(e.httpVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http method`})}},li={command:`http-method`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(ci).demandCommand(1),handler:()=>{}},ui={command:`get <httpProtocol>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested HTTP protocol.`,builder:e=>e.positional(`httpProtocol`,{type:`string`,description:`HTTP protocol (HTTP vs. HTTPS).`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.httpProtocol,`httpProtocol`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http protocol`,async()=>r.radar.http.ases.httpProtocol.get(e.httpProtocol,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http protocol`})}},di={command:`http-protocol`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(ui).demandCommand(1),handler:()=>{}},fi={command:`get <ipVersion>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested IP version.`,builder:e=>e.positional(`ipVersion`,{type:`string`,description:`IP version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.ipVersion,`ipVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ip version`,async()=>r.radar.http.ases.ipVersion.get(e.ipVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ip version`})}},pi={command:`ip-version`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(fi).demandCommand(1),handler:()=>{}},mi={command:`get <os>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested operating system.`,builder:e=>e.positional(`os`,{type:`string`,description:`Operating system.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.os,`os`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading o`,async()=>r.radar.http.ases.os.get(e.os,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded o`})}},hi={command:`os`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(mi).demandCommand(1),handler:()=>{}},gi={command:`get <tlsVersion>`,describe:`Retrieves the top autonomous systems, by HTTP requests, of the requested TLS protocol version.`,builder:e=>e.positional(`tlsVersion`,{type:`string`,description:`TLS version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.tlsVersion,`tlsVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tls version`,async()=>r.radar.http.ases.tlsVersion.get(e.tlsVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tls version`})}},_i={command:`tls-version`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(gi).demandCommand(1),handler:()=>{}},vi={command:`ases`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(si).command(ni).command(ii).command(oi).command(li).command(di).command(pi).command(hi).command(_i).demandCommand(1),handler:()=>{}},yi={command:`get <botClass>`,describe:`Retrieves the top locations, by HTTP requests, of the requested bot class.`,builder:e=>e.positional(`botClass`,{type:`string`,description:`Bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.botClass,`botClass`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading bot class`,async()=>r.radar.http.locations.botClass.get(e.botClass,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded bot class`})}},bi={command:`bot-class`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(yi).demandCommand(1),handler:()=>{}},xi={command:`get <browserFamily>`,describe:`Retrieves the top locations, by HTTP requests, of the requested browser family.`,builder:e=>e.positional(`browserFamily`,{type:`string`,description:`Browser family.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.browserFamily,`browserFamily`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading browser family`,async()=>r.radar.http.locations.browserFamily.get(e.browserFamily,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded browser family`})}},Si={command:`browser-family`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(xi).demandCommand(1),handler:()=>{}},Ci={command:`get <deviceType>`,describe:`Retrieves the top locations, by HTTP requests, of the requested device type.`,builder:e=>e.positional(`deviceType`,{type:`string`,description:`Device type.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.deviceType,`deviceType`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading device type`,async()=>r.radar.http.locations.deviceType.get(e.deviceType,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded device type`})}},wi={command:`device-type`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ci).demandCommand(1),handler:()=>{}},Ti={command:`get`,describe:`Retrieves the top locations by HTTP requests.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.http.locations.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},Ei={command:`get <httpVersion>`,describe:`Retrieves the top locations, by HTTP requests, of the requested HTTP version.`,builder:e=>e.positional(`httpVersion`,{type:`string`,description:`HTTP version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.httpVersion,`httpVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http method`,async()=>r.radar.http.locations.httpMethod.get(e.httpVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http method`})}},Di={command:`http-method`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ei).demandCommand(1),handler:()=>{}},Oi={command:`get <httpProtocol>`,describe:`Retrieves the top locations, by HTTP requests, of the requested HTTP protocol.`,builder:e=>e.positional(`httpProtocol`,{type:`string`,description:`HTTP protocol (HTTP vs. HTTPS).`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.httpProtocol,`httpProtocol`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http protocol`,async()=>r.radar.http.locations.httpProtocol.get(e.httpProtocol,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http protocol`})}},ki={command:`http-protocol`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Oi).demandCommand(1),handler:()=>{}},Ai={command:`get <ipVersion>`,describe:`Retrieves the top locations, by HTTP requests, of the requested IP version.`,builder:e=>e.positional(`ipVersion`,{type:`string`,description:`IP version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.ipVersion,`ipVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ip version`,async()=>r.radar.http.locations.ipVersion.get(e.ipVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ip version`})}},ji={command:`ip-version`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ai).demandCommand(1),handler:()=>{}},Mi={command:`get <os>`,describe:`Retrieves the top locations, by HTTP requests, of the requested operating system.`,builder:e=>e.positional(`os`,{type:`string`,description:`Operating system.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.os,`os`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading o`,async()=>r.radar.http.locations.os.get(e.os,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded o`})}},Ni={command:`os`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Mi).demandCommand(1),handler:()=>{}},Pi={command:`get <tlsVersion>`,describe:`Retrieves the top locations, by HTTP requests, of the requested TLS protocol version.`,builder:e=>e.positional(`tlsVersion`,{type:`string`,description:`TLS version.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.tlsVersion,`tlsVersion`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tls version`,async()=>r.radar.http.locations.tlsVersion.get(e.tlsVersion,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tls version`})}},Fi={command:`tls-version`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Pi).demandCommand(1),handler:()=>{}},Ii={command:`locations`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ti).command(bi).command(Si).command(wi).command(Di).command(ki).command(ji).command(Ni).command(Fi).demandCommand(1),handler:()=>{}},Li={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of HTTP requests by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the HTTP attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http`,async()=>r.radar.http.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http`})}},Ri={command:`bot-class`,describe:`Retrieves the distribution of bot-generated HTTP requests to genuine human traffic, as classified by Cloudflare. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.botClass(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},zi={command:`device-type`,describe:`Retrieves the distribution of HTTP requests generated by mobile, desktop, and other types of devices.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.deviceType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Bi={command:`http-protocol`,describe:`Retrieves the distribution of HTTP requests by HTTP protocol (HTTP vs. HTTPS).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.httpProtocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Vi={command:`http-version`,describe:`Retrieves the distribution of HTTP requests by HTTP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.httpVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Hi={command:`ip-version`,describe:`Retrieves the distribution of HTTP requests by IP version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ui={command:`os`,describe:`Retrieves the distribution of HTTP requests by operating system (Windows, macOS, Android, iOS, and others).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.os(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Wi={command:`post-quantum`,describe:`Retrieves the distribution of HTTP requests by post-quantum support.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.postQuantum(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Gi={command:`tls-version`,describe:`Retrieves the distribution of HTTP requests by TLS version.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.http.summary.tlsVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},Ki={command:`summary`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ri).command(zi).command(Bi).command(Vi).command(Hi).command(Ui).command(Wi).command(Gi).demandCommand(1),handler:()=>{}},qi={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of HTTP requests grouped by dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the HTTP attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.normalization!==void 0&&(t.normalization=e.normalization),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http`,async()=>r.radar.http.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http`})}},Ji={command:`bot-class`,describe:`Retrieves the distribution of HTTP requests classified as automated or human over time. Visit https://developers.cloudflare.com/radar/concepts/bot-classes/ for more information.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.botClass(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Yi={command:`browser-family`,describe:`Retrieves the distribution of HTTP requests by user agent family over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.browserFamily(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Xi={command:`browser`,describe:`Retrieves the distribution of HTTP requests by user agent over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.browser(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Zi={command:`device-type`,describe:`Retrieves the distribution of HTTP requests by device type over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.deviceType(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},Qi={command:`http-protocol`,describe:`Retrieves the distribution of HTTP requests by HTTP protocol (HTTP vs. HTTPS) over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.httpProtocol(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},$i={command:`http-version`,describe:`Retrieves the distribution of HTTP requests by HTTP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.httpVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ea={command:`ip-version`,describe:`Retrieves the distribution of HTTP requests by IP version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.ipVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ta={command:`os`,describe:`Retrieves the distribution of HTTP requests by operating system over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.os(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},na={command:`post-quantum`,describe:`Retrieves the distribution of HTTP requests by post-quantum support over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.postQuantum(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ra={command:`tls-version`,describe:`Retrieves the distribution of HTTP requests by TLS version over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.http.timeseriesGroups.tlsVersion(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ia={command:`timeseries-groups`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Ji).command(Xi).command(Yi).command(Zi).command(Qi).command($i).command(ea).command(ta).command(na).command(ra).demandCommand(1),handler:()=>{}},aa={command:`timeseries`,describe:`Retrieves the HTTP requests over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE_CHANGE`,`MIN0_MAX`]}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.normalization!==void 0&&(t.normalization=e.normalization),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading http`,async()=>r.radar.http.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded http`})}},oa={command:`browser-family`,describe:`Retrieves the top user agents, aggregated in families, by HTTP requests.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.http.top.browserFamily(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},sa={command:`browser`,describe:`Retrieves the top user agents by HTTP requests.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`device-type`,{type:`string`,description:`Filters results by device type.`}).option(`http-protocol`,{type:`string`,description:`Filters results by HTTP protocol (HTTP vs. HTTPS).`}).option(`http-version`,{type:`string`,description:`Filters results by HTTP version.`}).option(`ip-version`,{type:`string`,description:`Filters results by IP version (Ipv4 vs. IPv6).`}).option(`os`,{type:`string`,description:`Filters results by operating system.`}).option(`tls-version`,{type:`string`,description:`Filters results by TLS version.`}).option(`browser-family`,{type:`string`,description:`Filters results by browser family.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.botClass!==void 0&&(t.botClass=e.botClass),e.deviceType!==void 0&&(t.deviceType=e.deviceType),e.httpProtocol!==void 0&&(t.httpProtocol=e.httpProtocol),e.httpVersion!==void 0&&(t.httpVersion=e.httpVersion),e.ipVersion!==void 0&&(t.ipVersion=e.ipVersion),e.os!==void 0&&(t.os=e.os),e.tlsVersion!==void 0&&(t.tlsVersion=e.tlsVersion),e.browserFamily!==void 0&&(t.browserFamily=e.browserFamily),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.http.top.browser(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},ca={command:`top`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(sa).command(oa).demandCommand(1),handler:()=>{}},la={command:`http`,describe:`HTTP protocol trends — TLS versions, HTTP versions, browser share, and OS distribution`,builder:e=>e.command(Li).command(aa).command(qi).command(vi).command(Ii).command(Ki).command(ia).command(ca).demandCommand(1),handler:()=>{}},ua={command:`summary-v2 <dimension>`,describe:`Retrieves an aggregated summary of HTTP authentication requests grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`compromised`,{type:`string`,description:`Filters results by compromised credential status (clean vs. compromised).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.botClass!==void 0&&(t.botClass=e.botClass),e.compromised!==void 0&&(t.compromised=e.compromised),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading leaked credential`,async()=>r.radar.leakedCredentials.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded leaked credential`})}},da={command:`bot-class`,describe:`Retrieves the distribution of HTTP authentication requests by bot class.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`compromised`,{type:`string`,description:`Filters results by compromised credential status (clean vs. compromised).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.compromised!==void 0&&(t.compromised=e.compromised),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.leakedCredentials.summary.botClass(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},fa={command:`compromised`,describe:`Retrieves the distribution of HTTP authentication requests by compromised credential status.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.botClass!==void 0&&(t.botClass=e.botClass),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading summary`,async()=>r.radar.leakedCredentials.summary.compromised(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded summary`})}},pa={command:`summary`,describe:`Leaked credential detection trends and exposure statistics`,builder:e=>e.command(da).command(fa).demandCommand(1),handler:()=>{}},ma={command:`timeseries-groups-v2 <dimension>`,describe:`Retrieves the distribution of HTTP authentication requests, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`compromised`,{type:`string`,description:`Filters results by compromised credential status (clean vs. compromised).`}).option(`check-result`,{type:`string`,description:`Filters results by leaked credential check result.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE_CHANGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.botClass!==void 0&&(t.botClass=e.botClass),e.compromised!==void 0&&(t.compromised=e.compromised),e.checkResult!==void 0&&(t.checkResult=e.checkResult),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading leaked credential`,async()=>r.radar.leakedCredentials.timeseriesGroupsV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded leaked credential`})}},ha={command:`bot-class`,describe:`Retrieves the distribution of HTTP authentication requests by bot class over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`compromised`,{type:`string`,description:`Filters results by compromised credential status (clean vs. compromised).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.compromised!==void 0&&(t.compromised=e.compromised),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.leakedCredentials.timeseriesGroups.botClass(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},ga={command:`compromised`,describe:`Retrieves the distribution of HTTP authentication requests by compromised credential status over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`bot-class`,{type:`string`,description:`Filters results by bot class. Refer to [Bot classes](https://developers.cloudflare.com/radar/concepts/bot-classes/).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.botClass!==void 0&&(t.botClass=e.botClass),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading timeseries group`,async()=>r.radar.leakedCredentials.timeseriesGroups.compromised(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded timeseries group`})}},_a={command:`timeseries-groups`,describe:`Leaked credential detection trends and exposure statistics`,builder:e=>e.command(ha).command(ga).demandCommand(1),handler:()=>{}},va={command:`leaked-credentials`,describe:`Leaked credential detection trends and exposure statistics`,builder:e=>e.command(ua).command(ma).command(pa).command(_a).demandCommand(1),handler:()=>{}},ya={command:`summary-v2 <dimension>`,describe:`Retrieves the distribution of network traffic (NetFlows) by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the NetFlows attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`product`,{type:`string`,description:`Filters the results by network traffic product types.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.product!==void 0&&(t.product=e.product),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading netflow`,async()=>r.radar.netflows.summaryV2(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded netflow`})}},ba={command:`summary`,describe:`Retrieves the distribution of network traffic (NetFlows) by HTTP vs other protocols.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading netflow`,async()=>r.radar.netflows.summary(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded netflow`})}},xa={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of NetFlows traffic, grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the NetFlows attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`product`,{type:`string`,description:`Filters the results by network traffic product types.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.normalization!==void 0&&(t.normalization=e.normalization),e.product!==void 0&&(t.product=e.product),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading netflow`,async()=>r.radar.netflows.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded netflow`})}},Sa={command:`timeseries`,describe:`Retrieves network traffic (NetFlows) over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`product`,{type:`string`,description:`Filters the results by network traffic product types.`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE_CHANGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.product!==void 0&&(t.product=e.product),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading netflow`,async()=>r.radar.netflows.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded netflow`})}},Ca={command:`ases`,describe:`Retrieves the top autonomous systems by network traffic (NetFlows).`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.netflows.top.ases(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},wa={command:`locations`,describe:`Retrieves the top locations by network traffic (NetFlows).`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`geo-id`,{type:`string`,description:"Filters results by Geolocation. Specify a comma-separated list of GeoNames IDs. Prefix with `-` to exclude geoIds from results. For example, `-2267056,360689` excludes results from the 2267056 (Lisbon), but includes results from 5128638 (New York)."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.geoId!==void 0&&(t.geoId=e.geoId),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.netflows.top.locations(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Ta={command:`top`,describe:`Network-layer traffic flow data and volumetric trend analysis`,builder:e=>e.command(Ca).command(wa).demandCommand(1),handler:()=>{}},Ea={command:`netflows`,describe:`Network-layer traffic flow data and volumetric trend analysis`,builder:e=>e.command(ba).command(ya).command(Sa).command(xa).command(Ta).demandCommand(1),handler:()=>{}},Da={command:`get <slug>`,describe:`Retrieves the requested origin information with its regions.`,builder:e=>e.positional(`slug`,{type:`string`,description:`Origin slug.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.slug,`slug`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.origins.get(e.slug,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},Oa={command:`list`,describe:`Retrieves a list of origins with their regions.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origins`,async()=>r.radar.origins.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origins`})}},ka={command:`summary <dimension>`,describe:`Retrieves an aggregated summary of origin metrics grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the origin attribute by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`origin`,{type:`string`,description:`Filters results by origin.`,demandOption:!0}).option(`metric`,{type:`string`,description:`Specifies the metric to retrieve.`,choices:[`CONNECTION_FAILURES`,`REQUESTS`,`RESPONSE_HEADER_RECEIVE_DURATION`,`TCP_HANDSHAKE_DURATION`,`TCP_RTT`,`TLS_HANDSHAKE_DURATION`],demandOption:!0}).option(`region`,{type:`string`,description:`Filters results by origin region.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.origin!==void 0&&(t.origin=e.origin),e.metric!==void 0&&(t.metric=e.metric),e.region!==void 0&&(t.region=e.region),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.origins.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},Aa={command:`timeseries-groups <dimension>`,describe:`Retrieves the distribution of origin metrics grouped by the specified dimension over time.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the origin attribute by which to group the results.`,demandOption:!0}).option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category.`}).option(`origin`,{type:`string`,description:`Filters results by origin.`,demandOption:!0}).option(`metric`,{type:`string`,description:`Specifies the metric to retrieve.`,choices:[`CONNECTION_FAILURES`,`REQUESTS`,`RESPONSE_HEADER_RECEIVE_DURATION`,`TCP_HANDSHAKE_DURATION`,`TCP_RTT`,`TLS_HANDSHAKE_DURATION`],demandOption:!0}).option(`region`,{type:`string`,description:`Filters results by origin region.`}).option(`normalization`,{type:`string`,description:`Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/).`,choices:[`PERCENTAGE`,`MIN0_MAX`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.origin!==void 0&&(t.origin=e.origin),e.metric!==void 0&&(t.metric=e.metric),e.region!==void 0&&(t.region=e.region),e.normalization!==void 0&&(t.normalization=e.normalization),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.origins.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},ja={command:`timeseries`,describe:`Retrieves the time series of origin metrics for the specified origin.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`origin`,{type:`string`,description:`Filters results by origin.`,demandOption:!0}).option(`metric`,{type:`string`,description:`Specifies the metric to retrieve.`,choices:[`CONNECTION_FAILURES`,`REQUESTS`,`RESPONSE_HEADER_RECEIVE_DURATION`,`TCP_HANDSHAKE_DURATION`,`TCP_RTT`,`TLS_HANDSHAKE_DURATION`],demandOption:!0}).option(`region`,{type:`string`,description:`Filters results by origin region.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.origin!==void 0&&(t.origin=e.origin),e.metric!==void 0&&(t.metric=e.metric),e.region!==void 0&&(t.region=e.region),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.origins.timeseries(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},Ma={command:`origins`,describe:`Origins operations`,builder:e=>e.command(Da).command(Oa).command(ka).command(ja).command(Aa).demandCommand(1),handler:()=>{}},Na={command:`summary <dimension>`,describe:`Returns a summary of origin post-quantum data grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the origin post-quantum data dimension by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.postQuantum.origin.summary(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},Pa={command:`timeseries-groups <dimension>`,describe:`Returns a timeseries of origin post-quantum data grouped by the specified dimension.`,builder:e=>e.positional(`dimension`,{type:`string`,description:`Specifies the origin post-quantum data dimension by which to group the results.`,demandOption:!0}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.dimension,`dimension`);let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading origin`,async()=>r.radar.postQuantum.origin.timeseriesGroups(e.dimension,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded origin`})}},Fa={command:`origin`,describe:`Post-quantum encryption adoption and deployment trends across the Internet`,builder:e=>e.command(Na).command(Pa).demandCommand(1),handler:()=>{}},Ia={command:`support`,describe:`Tests whether a hostname or IP address supports Post-Quantum (PQ) TLS key exchange. Returns information about the negotiated key exchange algorithm and whether it uses PQ cryptography.`,builder:e=>e.option(`host`,{type:`string`,description:`Hostname or IP address to test for Post-Quantum TLS support, optionally with port (defaults to 443).`,demandOption:!0}),handler:async e=>{let t={};e.host!==void 0&&(t.host=e.host);let r=await n(e);s(await u(`Loading tl`,async()=>r.radar.postQuantum.tls.support(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tl`})}},La={command:`tls`,describe:`Post-quantum encryption adoption and deployment trends across the Internet`,builder:e=>e.command(Ia).demandCommand(1),handler:()=>{}},Ra={command:`post-quantum`,describe:`Operations for post-quantum`,builder:e=>e.command(Fa).command(La).demandCommand(1),handler:()=>{}},za={command:`summary`,describe:`Retrieves a summary (percentiles) of bandwidth, latency, or DNS response time from the Radar Internet Quality Index (IQI).`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`metric`,{type:`string`,description:`Defines which metric to return (bandwidth, latency, or DNS response time).`,choices:[`BANDWIDTH`,`DNS`,`LATENCY`],demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.metric!==void 0&&(t.metric=e.metric),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading iqi`,async()=>r.radar.quality.iqi.summary(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded iqi`})}},Ba={command:`timeseries-groups`,describe:`Retrieves a time series (percentiles) of bandwidth, latency, or DNS response time from the Radar Internet Quality Index (IQI).`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`interpolation`,{type:`boolean`,description:`Enables interpolation for all series (using the average).`,default:!1}).option(`metric`,{type:`string`,description:`Defines which metric to return (bandwidth, latency, or DNS response time).`,choices:[`BANDWIDTH`,`DNS`,`LATENCY`],demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.interpolation!==void 0&&(t.interpolation=e.interpolation),e.metric!==void 0&&(t.metric=e.metric),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading iqi`,async()=>r.radar.quality.iqi.timeseriesGroups(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded iqi`})}},Va={command:`iqi`,describe:`Internet connection quality metrics — speed, latency, and jitter by geography and ASN`,builder:e=>e.command(za).command(Ba).demandCommand(1),handler:()=>{}},Ha={command:`histogram`,describe:`Retrieves a histogram from the previous 90 days of Cloudflare Speed Test data, split into fixed bandwidth (Mbps), latency (ms), or jitter (ms) buckets.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`bucket-size`,{type:`number`,description:`Specifies the width for every bucket in the histogram.`}).option(`metric-group`,{type:`string`,description:`Metrics to be returned.`,choices:[`BANDWIDTH`,`LATENCY`,`JITTER`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.bucketSize!==void 0&&(t.bucketSize=e.bucketSize),e.metricGroup!==void 0&&(t.metricGroup=e.metricGroup),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading speed`,async()=>r.radar.quality.speed.histogram(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded speed`})}},Ua={command:`summary`,describe:`Retrieves a summary of bandwidth, latency, jitter, and packet loss, from the previous 90 days of Cloudflare Speed Test data.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading speed`,async()=>r.radar.quality.speed.summary(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded speed`})}},Wa={command:`ases`,describe:`Retrieves the top autonomous systems by bandwidth, latency, jitter, or packet loss, from the previous 90 days of Cloudflare Speed Test data.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`order-by`,{type:`string`,description:`Specifies the metric to order the results by.`,choices:[`BANDWIDTH_DOWNLOAD`,`BANDWIDTH_UPLOAD`,`LATENCY_IDLE`,`LATENCY_LOADED`,`JITTER_IDLE`,`JITTER_LOADED`]}).option(`reverse`,{type:`boolean`,description:`Reverses the order of results.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.orderBy!==void 0&&(t.orderBy=e.orderBy),e.reverse!==void 0&&(t.reverse=e.reverse),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.quality.speed.top.ases(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Ga={command:`locations`,describe:`Retrieves the top locations by bandwidth, latency, jitter, or packet loss, from the previous 90 days of Cloudflare Speed Test data.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`order-by`,{type:`string`,description:`Specifies the metric to order the results by.`,choices:[`BANDWIDTH_DOWNLOAD`,`BANDWIDTH_UPLOAD`,`LATENCY_IDLE`,`LATENCY_LOADED`,`JITTER_IDLE`,`JITTER_LOADED`]}).option(`reverse`,{type:`boolean`,description:`Reverses the order of results.`,default:!1}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.orderBy!==void 0&&(t.orderBy=e.orderBy),e.reverse!==void 0&&(t.reverse=e.reverse),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.quality.speed.top.locations(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Ka={command:`top`,describe:`Internet connection quality metrics — speed, latency, and jitter by geography and ASN`,builder:e=>e.command(Wa).command(Ga).demandCommand(1),handler:()=>{}},qa={command:`speed`,describe:`Internet connection quality metrics — speed, latency, and jitter by geography and ASN`,builder:e=>e.command(Ha).command(Ua).command(Ka).demandCommand(1),handler:()=>{}},Ja={command:`quality`,describe:`Operations for quality`,builder:e=>e.command(Va).command(qa).demandCommand(1),handler:()=>{}},Ya={command:`get <domain>`,describe:`Retrieves domain rank details. Cloudflare provides an ordered rank for the top 100 domains, but for the remainder it only provides ranking buckets like top 200 thousand, top one million, etc.. These are available through Radar datasets endpoints.`,builder:e=>e.positional(`domain`,{type:`string`,description:`Domain name.`,demandOption:!0}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`ranking-type`,{type:`string`,description:`The ranking type.`,choices:[`POPULAR`,`TRENDING_RISE`,`TRENDING_STEADY`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`include-top-locations`,{type:`boolean`,description:`Includes top locations in the response.`,default:!1}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.domain,`domain`);let t={};e.limit!==void 0&&(t.limit=e.limit),e.rankingType!==void 0&&(t.rankingType=e.rankingType),e.name!==void 0&&(t.name=e.name),e.includeTopLocations!==void 0&&(t.includeTopLocations=e.includeTopLocations),e.date!==void 0&&(t.date=e.date),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading domain`,async()=>r.radar.ranking.domain.get(e.domain,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded domain`})}},Xa={command:`domain`,describe:`Top domain rankings based on DNS query popularity across the Cloudflare network`,builder:e=>e.command(Ya).demandCommand(1),handler:()=>{}},Za={command:`categories`,describe:`Retrieves the list of Internet services categories.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.date!==void 0&&(t.date=e.date),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading internet service`,async()=>r.radar.ranking.internetServices.categories(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded internet service`})}},Qa={command:`timeseries-groups`,describe:`Retrieves Internet Services rank update changes over time.`,builder:e=>e.option(`service-category`,{type:`string`,description:`Filters results by Internet service category.`}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.serviceCategory!==void 0&&(t.serviceCategory=e.serviceCategory),e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading internet service`,async()=>r.radar.ranking.internetServices.timeseriesGroups(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded internet service`})}},$a={command:`top`,describe:`Retrieves top Internet services based on their rank.`,builder:e=>e.option(`service-category`,{type:`string`,description:`Filters results by Internet service category.`}).option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.serviceCategory!==void 0&&(t.serviceCategory=e.serviceCategory),e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.date!==void 0&&(t.date=e.date),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading internet service`,async()=>r.radar.ranking.internetServices.top(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded internet service`})}},eo={command:`internet-services`,describe:`Top domain rankings based on DNS query popularity across the Cloudflare network`,builder:e=>e.command(Za).command(Qa).command($a).demandCommand(1),handler:()=>{}},to={command:`timeseries-groups`,describe:`Retrieves domains rank over time.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`ranking-type`,{type:`string`,description:`The ranking type.`,choices:[`POPULAR`,`TRENDING_RISE`,`TRENDING_STEADY`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`domains`,{type:`string`,description:`Filters results by domain name. Specify a comma-separated list of domain names.`}).option(`domain-category`,{type:`string`,description:`Filters results by domain category.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.rankingType!==void 0&&(t.rankingType=e.rankingType),e.name!==void 0&&(t.name=e.name),e.location!==void 0&&(t.location=e.location),e.domains!==void 0&&(t.domains=e.domains),e.domainCategory!==void 0&&(t.domainCategory=e.domainCategory),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ranking`,async()=>r.radar.ranking.timeseriesGroups(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ranking`})}},no={command:`top`,describe:`Retrieves the top or trending domains based on their rank. Popular domains are domains of broad appeal based on how people use the Internet. Trending domains are domains that are generating a surge in interest. For more information on top domains, see https://blog.cloudflare.com/radar-domain-rankings/.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify a comma-separated list of alpha-2 location codes.`}).option(`domain-category`,{type:`string`,description:`Filters results by domain category.`}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`ranking-type`,{type:`string`,description:`The ranking type.`,choices:[`POPULAR`,`TRENDING_RISE`,`TRENDING_STEADY`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.location!==void 0&&(t.location=e.location),e.domainCategory!==void 0&&(t.domainCategory=e.domainCategory),e.date!==void 0&&(t.date=e.date),e.rankingType!==void 0&&(t.rankingType=e.rankingType),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading ranking`,async()=>r.radar.ranking.top(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded ranking`})}},ro={command:`ranking`,describe:`Top domain rankings based on DNS query popularity across the Cloudflare network`,builder:e=>e.command(to).command(no).command(Xa).command(eo).demandCommand(1),handler:()=>{}},io={command:`domain-categories`,describe:`Retrieves the top domain categories by the number of robots.txt files parsed.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`user-agent-category`,{type:`string`,description:`Filters results by user agent category.`,choices:[`AI`]}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.userAgentCategory!==void 0&&(t.userAgentCategory=e.userAgentCategory),e.date!==void 0&&(t.date=e.date),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.robotsTxt.top.domainCategories(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},ao={command:`directive`,describe:`Retrieves the top user agents on robots.txt files.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`user-agent-category`,{type:`string`,description:`Filters results by user agent category.`,choices:[`AI`]}).option(`date`,{type:`string`,description:`Filters results by the specified array of dates.`}).option(`domain-category`,{type:`string`,description:`Filters results by domain category.`}).option(`directive`,{type:`string`,description:`Filters results by robots.txt directive.`,choices:[`ALLOW`,`DISALLOW`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.userAgentCategory!==void 0&&(t.userAgentCategory=e.userAgentCategory),e.date!==void 0&&(t.date=e.date),e.domainCategory!==void 0&&(t.domainCategory=e.domainCategory),e.directive!==void 0&&(t.directive=e.directive),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading user agent`,async()=>r.radar.robotsTxt.top.userAgents.directive(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded user agent`})}},oo={command:`user-agents`,describe:`Robots.txt adoption and crawler directive trends across the web`,builder:e=>e.command(ao).demandCommand(1),handler:()=>{}},so={command:`top`,describe:`Robots.txt adoption and crawler directive trends across the web`,builder:e=>e.command(io).command(oo).demandCommand(1),handler:()=>{}},co={command:`robots-txt`,describe:`Operations for robots-txt`,builder:e=>e.command(so).demandCommand(1),handler:()=>{}},lo={command:`global`,describe:"Searches for locations, autonomous systems, reports, bots, certificate logs, certificate authorities, industries and verticals. Location names can be localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g., `pt-PT,pt;q=0.9,en;q=0.8`).",builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`limit-per-group`,{type:`number`,description:`Limits the number of objects per search category.`}).option(`query`,{type:`string`,description:`String used to perform the search operation.`,demandOption:!0}).option(`include`,{type:`string`,description:`Search types included in results.`}).option(`exclude`,{type:`string`,description:`Search types excluded from results.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.limitPerGroup!==void 0&&(t.limitPerGroup=e.limitPerGroup),e.query!==void 0&&(t.query=e.query),e.include!==void 0&&(t.include=e.include),e.exclude!==void 0&&(t.exclude=e.exclude),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading search`,async()=>r.radar.search.global(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded search`})}},uo={command:`search`,describe:`Search Radar data across IPs, ASNs, domains, and locations`,builder:e=>e.command(lo).demandCommand(1),handler:()=>{}},fo={command:`summary`,describe:`Retrieves the distribution of connection stage by TCP connections terminated within the first 10 packets by a reset or timeout.`,builder:e=>e.option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tcp resets timeout`,async()=>r.radar.tcpResetsTimeouts.summary(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tcp resets timeout`})}},po={command:`timeseries-groups`,describe:`Retrieves the distribution of connection stage by TCP connections terminated within the first 10 packets by a reset or timeout over time.`,builder:e=>e.option(`agg-interval`,{type:`string`,description:`Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/).`,choices:[`15m`,`1h`,`1d`,`1w`]}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.aggInterval!==void 0&&(t.aggInterval=e.aggInterval),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tcp resets timeout`,async()=>r.radar.tcpResetsTimeouts.timeseriesGroups(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tcp resets timeout`})}},mo={command:`tcp-resets-timeouts`,describe:`TCP connection reset and timeout statistics indicating network health issues`,builder:e=>e.command(fo).command(po).demandCommand(1),handler:()=>{}},ho={command:`get <tld>`,describe:`Retrieves the requested TLD information.`,builder:e=>e.positional(`tld`,{type:`string`,description:`Top-level domain.`,demandOption:!0}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{i(e.tld,`tld`);let t={};e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tld`,async()=>r.radar.tlds.get(e.tld,Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tld`})}},go={command:`list`,describe:`Retrieves a list of TLDs.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`tld-manager`,{type:`string`,description:`Filters results by TLD manager.`}).option(`tld-type`,{type:`string`,description:`Filters results by TLD type.`,choices:[`GENERIC`,`COUNTRY_CODE`,`GENERIC_RESTRICTED`,`INFRASTRUCTURE`,`SPONSORED`]}).option(`tld`,{type:`string`,description:`Filters results by top-level domain. Specify a comma-separated list of TLDs.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.tldManager!==void 0&&(t.tldManager=e.tldManager),e.tldType!==void 0&&(t.tldType=e.tldType),e.tld!==void 0&&(t.tld=e.tld),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading tlds`,async()=>r.radar.tlds.list(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded tlds`})}},_o={command:`tlds`,describe:`Tlds operations`,builder:e=>e.command(ho).command(go).demandCommand(1),handler:()=>{}},vo={command:`get`,describe:`Retrieves the latest Internet traffic anomalies, which are signals that might indicate an outage. These alerts are automatically detected by Radar and manually verified by our team.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`offset`,{type:`number`,description:`Skips the specified number of objects before fetching the results.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`status`,{type:`string`,description:`Status`,choices:[`VERIFIED`,`UNVERIFIED`]}).option(`type`,{type:`string`,description:`Filters results by entity type (LOCATION, AS, or ORIGIN).`}).option(`asn`,{type:`number`,description:`Filters results by Autonomous System. Specify a single Autonomous System Number (ASN) as integer.`}).option(`location`,{type:`string`,description:`Filters results by location. Specify an alpha-2 location code.`}).option(`origin`,{type:`string`,description:`Filters results by origin.`}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.offset!==void 0&&(t.offset=e.offset),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.status!==void 0&&(t.status=e.status),e.type!==void 0&&(t.type=e.type),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.origin!==void 0&&(t.origin=e.origin),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading traffic anomaly`,async()=>r.radar.trafficAnomalies.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded traffic anomaly`})}},yo={command:`get`,describe:`Retrieves the sum of Internet traffic anomalies, grouped by location. These anomalies are signals that might indicate an outage, automatically detected by Radar and manually verified by our team.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`date-range`,{type:`string`,description:`Filters results by date range.`}).option(`date-start`,{type:`string`,description:`Start of the date range (inclusive).`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`status`,{type:`string`,description:`Status`,choices:[`VERIFIED`,`UNVERIFIED`]}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.status!==void 0&&(t.status=e.status),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading location`,async()=>r.radar.trafficAnomalies.locations.get(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded location`})}},bo={command:`locations`,describe:`Detected traffic anomalies and unusual patterns in Internet traffic flows`,builder:e=>e.command(yo).demandCommand(1),handler:()=>{}},xo={command:`traffic-anomalies`,describe:`Detected traffic anomalies and unusual patterns in Internet traffic flows`,builder:e=>e.command(vo).command(bo).demandCommand(1),handler:()=>{}},So={command:`bots`,describe:`Retrieves the top verified bots by HTTP requests, with owner and category.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.verifiedBots.top.bots(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},Co={command:`categories`,describe:`Retrieves the top verified bot categories by HTTP requests, along with their corresponding percentage, over the total verified bot HTTP requests.`,builder:e=>e.option(`limit`,{type:`number`,description:`Limits the number of objects returned in the response.`}).option(`name`,{type:`string`,description:`Array of names used to label the series in the response.`}).option(`date-range`,{type:`string`,description:"Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters)."}).option(`date-start`,{type:`string`,description:`Start of the date range.`}).option(`date-end`,{type:`string`,description:`End of the date range (inclusive).`}).option(`asn`,{type:`string`,description:"Filters results by Autonomous System. Specify one or more Autonomous System Numbers (ASNs) as a comma-separated list. Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes results from AS174, but includes results from AS3356."}).option(`location`,{type:`string`,description:"Filters results by location. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT."}).option(`continent`,{type:`string`,description:"Filters results by continent. Specify a comma-separated list of alpha-2 codes. Prefix with `-` to exclude continents from results. For example, `-EU,NA` excludes results from EU, but includes results from NA."}).option(`format`,{type:`string`,description:`Format in which results will be returned.`,choices:[`JSON`,`CSV`]}),handler:async e=>{let t={};e.limit!==void 0&&(t.limit=e.limit),e.name!==void 0&&(t.name=e.name),e.dateRange!==void 0&&(t.dateRange=e.dateRange),e.dateStart!==void 0&&(t.dateStart=e.dateStart),e.dateEnd!==void 0&&(t.dateEnd=e.dateEnd),e.asn!==void 0&&(t.asn=e.asn),e.location!==void 0&&(t.location=e.location),e.continent!==void 0&&(t.continent=e.continent),e.format!==void 0&&(t.format=e.format);let r=await n(e);s(await u(`Loading top`,async()=>r.radar.verifiedBots.top.categories(Object.keys(t).length>0?t:void 0)),{successLabel:`Loaded top`})}},wo={command:`top`,describe:`Catalog of known good bots (Googlebot, Bingbot, etc.) and their traffic patterns`,builder:e=>e.command(So).command(Co).demandCommand(1),handler:()=>{}},To={command:`verified-bots`,describe:`Operations for verified-bots`,builder:e=>e.command(wo).demandCommand(1),handler:()=>{}},Eo={command:`radar`,describe:`Internet-wide traffic intelligence — BGP, DNS, HTTP trends, attack data, and network quality insights`,builder:e=>e.command(f).command(z).command(W).command(ge).command(yt).command(Gt).command(en).command(dn).command(hn).command(Wn).command(zr).command(Zr).command(ei).command(la).command(va).command(Ea).command(Ma).command(Ra).command(Ja).command(ro).command(co).command(uo).command(mo).command(_o).command(xo).command(To).demandCommand(1),handler:()=>{}};export{Eo as default};
|