cf 0.3.0 → 0.5.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 +7 -1
- package/dist/_meta/agent-context.json +26 -21
- package/dist/_meta/commands.json +7696 -18100
- package/dist/_meta/schemas.json +6411 -13925
- package/dist/{abuse-reports-dMIfUJ8v.mjs → abuse-reports-Ina5TlsU.mjs} +2 -2
- package/dist/{accounts-Kx1epdA1.mjs → accounts-B_joQcMi.mjs} +9 -9
- package/dist/{acm-Utu252kC.mjs → acm-_kIHqYME.mjs} +2 -2
- package/dist/{addressing-CBq7Z7Vq.mjs → addressing-CaFlw8y1.mjs} +10 -10
- package/dist/{agent-context-BGTU299M.mjs → agent-context-DMPfi54f.mjs} +1 -1
- package/dist/ai-CqnhNb_c.mjs +2 -0
- package/dist/ai-gateway-pgYGI519.mjs +8 -0
- package/dist/ai-search-eqQMPQol.mjs +7 -0
- package/dist/ai_gateway--vuVLnOm.mjs +4 -0
- package/dist/{alerting-CqmEIaKn.mjs → alerting-CPxHiYHb.mjs} +5 -5
- package/dist/{analytics-Dv-X8x7D.mjs → analytics-DSSRDZz8.mjs} +1 -1
- package/dist/analytics_engine-gWyfnsCs.mjs +2 -0
- package/dist/{api-gateway-CNv0IHTU.mjs → api-gateway-BXXGFCVR.mjs} +10 -10
- package/dist/argo-aC6A3JyX.mjs +2 -0
- package/dist/artifacts-HD4V2xpK.mjs +4 -0
- package/dist/audit-logs-BuExU_nz.mjs +2 -0
- package/dist/auth-CSC4yhEJ.mjs +9 -0
- package/dist/auth-D5hNsOFq.mjs +5 -0
- package/dist/billing-COaghyxl.mjs +2 -0
- package/dist/bot-management-DmEzeV1Y.mjs +5 -0
- package/dist/botnet-feed-ByEAXAkw.mjs +3 -0
- package/dist/brand-protection-dPrGe8sL.mjs +3 -0
- package/dist/browser-rendering-BiSGnpBf.mjs +4 -0
- package/dist/{build-DYkGW4dh.mjs → build-HuS9-R0V.mjs} +131 -131
- package/dist/{cache-DsoW6Xwv.mjs → cache-CY-7Lt71.mjs} +4 -4
- package/dist/calls-wOQGDWPl.mjs +4 -0
- package/dist/certificate-authorities-CtqzAtxQ.mjs +2 -0
- package/dist/chunk-6IEM75FG-BEjRFMGh.mjs +2 -0
- package/dist/client-certificates-CRf41xLe.mjs +3 -0
- package/dist/cloud-connector-BA5IRZUP.mjs +2 -0
- package/dist/{cloudforce-one-2Bhz8YdW.mjs → cloudforce-one-Bq_qPAWs.mjs} +20 -20
- package/dist/{completions-BwRpZQVn.mjs → completions-DOeHPdCG.mjs} +2 -2
- package/dist/config-B5k-XbwS.mjs +2 -0
- package/dist/connectivity-Bx3MgTHX.mjs +3 -0
- package/dist/connector-interrupts-D7ylweJZ.mjs +2 -0
- package/dist/connector-telemetry-events-6izV1kbP.mjs +2 -0
- package/dist/connector-telemetry-snapshots-BnjKbyxX.mjs +2 -0
- package/dist/connectors-DRt4e6d_.mjs +3 -0
- package/dist/content-scanning-Cd2vy5Sz.mjs +4 -0
- package/dist/context-jpewmual.mjs +2 -0
- package/dist/{custom-certificates-aAiEguR7.mjs → custom-certificates-DYE-9epx.mjs} +3 -3
- package/dist/{custom-hostnames-AG5yBHIi.mjs → custom-hostnames-CtuTdFcX.mjs} +4 -4
- package/dist/custom-nameservers-CWqA51in.mjs +3 -0
- package/dist/custom-pages-DeUKEFGe.mjs +4 -0
- package/dist/d1-DvWY9Gp4.mjs +4 -0
- package/dist/data-security-BPo6dIWu.mjs +6 -0
- package/dist/dcv-delegation-Bgf86J-r.mjs +2 -0
- package/dist/{deploy-CQial3kN.mjs → deploy-dVrgDUOp.mjs} +1 -1
- package/dist/{dev-B38LfCTl.mjs → dev-C01_Lby6.mjs} +1 -1
- package/dist/diagnostics-6nKPmVgz.mjs +3 -0
- package/dist/{dispatch-namespaces-DmHvoBOg.mjs → dispatch-namespaces-64lXx2WJ.mjs} +6 -6
- package/dist/dist-C6zxsVdY.mjs +306 -0
- package/dist/{dist-AIcZFk0U.mjs → dist-t_YrL25p.mjs} +7 -7
- package/dist/{dns-VMhQSr5n.mjs → dns-ClciFGxx.mjs} +13 -13
- package/dist/dns-firewall-DfUmXDCe.mjs +57 -0
- package/dist/durable-objects-CMaYZ-YU.mjs +2 -0
- package/dist/{email-routing-tIR2SFu-.mjs → email-routing-CGXhFqF5.mjs} +9 -9
- package/dist/{email-security-Ca1id3rZ.mjs → email-security-D5viPq8S.mjs} +7 -7
- package/dist/email-sending-C2jpc3gh.mjs +3 -0
- package/dist/{filters-A4dg_a68.mjs → filters-bzsFcWt0.mjs} +3 -3
- package/dist/{firewall-DWPQgYd9.mjs → firewall-DYZcTtIC.mjs} +10 -10
- package/dist/{fraud-BMkSsJGU.mjs → fraud-C03MtdZb.mjs} +1 -1
- package/dist/google-tag-gateway-Dfy887yA.mjs +2 -0
- package/dist/{healthchecks-CtIfrFql.mjs → healthchecks-DRoAlWgr.mjs} +3 -3
- package/dist/hostnames-CFgIVI3s.mjs +3 -0
- package/dist/hyperdrive-C7-gwTSV.mjs +18 -0
- package/dist/iam-DqVPzGrb.mjs +6 -0
- package/dist/images-BYfl4YgR.mjs +7 -0
- package/dist/index.mjs +1 -1
- package/dist/intel-duTEPIHc.mjs +3 -0
- package/dist/{ips-K4bzaGqd.mjs → ips-nv9INuWZ.mjs} +1 -1
- package/dist/keyless-certificates-CRCDVd3g.mjs +3 -0
- package/dist/{kv-8o27w_pY.mjs → kv-CZoV4tiv.mjs} +4 -4
- package/dist/leaked-credential-checks-DNIBg7Pe.mjs +3 -0
- package/dist/{load-balancers-DtG8nj25.mjs → load-balancers--OMg0HNt.mjs} +5 -5
- package/dist/{logpush-4L0njy1d.mjs → logpush-C0_lZTyY.mjs} +3 -3
- package/dist/{logs-B_Yp95hv.mjs → logs-BtpWZQfV.mjs} +2 -2
- package/dist/magic-cloud-networking-u6rwYbGg.mjs +5 -0
- package/dist/{magic-network-monitoring-BnwvM4-I.mjs → magic-network-monitoring-CKgQyRj4.mjs} +3 -3
- package/dist/{magic-transit-CXDyvhxq.mjs → magic-transit-CLhMcJ_-.mjs} +32 -33
- package/dist/managed-transforms-D0Z2mlth.mjs +3 -0
- package/dist/mtls-certificates-BL65NK5T.mjs +3 -0
- package/dist/{network-interconnects-rrr7red3.mjs → network-interconnects-Bgu9gmaG.mjs} +5 -5
- package/dist/oauth-Bk-F-tIO.mjs +52 -0
- package/dist/{observability-DWvpqnQJ.mjs → observability-BynRbTF4.mjs} +3 -3
- package/dist/open-YWOUIZ5Y-3jqSKAB1.mjs +4 -0
- package/dist/{organizations-T77D50Sq.mjs → organizations-BqJHyvMK.mjs} +3 -3
- package/dist/origin-ca-certificates-BGvYwm3C.mjs +3 -0
- package/dist/origin-post-quantum-encryption-9KOE8YPI.mjs +2 -0
- package/dist/{origin-tls-client-auth-CaVW1Ztp.mjs → origin-tls-client-auth-d3snC3vr.mjs} +3 -3
- package/dist/{output-BJFNwj7b.mjs → output-B6fBFRqe.mjs} +1 -1
- package/dist/{page-rules-CjZPTMQX.mjs → page-rules-EZHJePmn.mjs} +4 -4
- package/dist/{page-shield-D5RRNJCY.mjs → page-shield-CXJioWPs.mjs} +5 -5
- package/dist/{pages-CWJtJnL0.mjs → pages-D4aYteKk.mjs} +8 -8
- package/dist/{pipelines-B0L_7j9e.mjs → pipelines-G8Iusxq-.mjs} +5 -5
- package/dist/progress-DrDErV9w.mjs +2 -0
- package/dist/queues-DEkbKqZX.mjs +6 -0
- package/dist/{r2-DQIcyRtA.mjs → r2-CV0IkCAW.mjs} +9 -9
- package/dist/r2-data-catalog-NtqGC_a_.mjs +14 -0
- package/dist/radar-D986zPJr.mjs +2 -0
- package/dist/{rate-limits-DcrQV6Ar.mjs → rate-limits-B2wRsUX1.mjs} +3 -3
- package/dist/raw-fetch-_n0lMAnD.mjs +2 -0
- package/dist/{realtime-kit-CaquuVOE.mjs → realtime-kit-Ld3c5eU6.mjs} +9 -9
- package/dist/{registrar-Ko-xZemf.mjs → registrar-CDIwTz3G.mjs} +6 -6
- package/dist/request-tracers-D7SFMDik.mjs +2 -0
- package/dist/resource-sharing-YIQ04jXE.mjs +5 -0
- package/dist/{resource-tagging-C3qtLzCz.mjs → resource-tagging-Bd6Y03sg.mjs} +7 -7
- package/dist/rules-DHjLP5Kx.mjs +4 -0
- package/dist/{rulesets-CBgpeSvJ.mjs → rulesets-q4QABpKs.mjs} +7 -7
- package/dist/rum-SmT4HZmM.mjs +4 -0
- package/dist/{schema-D16TgWBg.mjs → schema-BR31o4P6.mjs} +1 -1
- package/dist/{schema-validation-Dgv_opM3.mjs → schema-validation-vVetgC_P.mjs} +5 -5
- package/dist/{scim-DdSEr4kZ.mjs → scim-ChOkZpNx.mjs} +2 -2
- package/dist/{session-COHHdS7A.mjs → sdk-DhIhH6GB.mjs} +4 -4
- package/dist/{secrets-store-7BfyvJLb.mjs → secrets-store-BAK9G12O.mjs} +12 -12
- package/dist/security-center-eScuYDKP.mjs +2 -0
- package/dist/security-txt-x7R4gmQu.mjs +3 -0
- package/dist/session-DHYCE-PM.mjs +93 -0
- package/dist/shared-BAjo72Lz.mjs +2 -0
- package/dist/{smart-shield-TeWZFnH2.mjs → smart-shield-CWlSsNi8.mjs} +2 -2
- package/dist/snippets-DrlgYJYp.mjs +4 -0
- package/dist/{spawn-DcppKGI5.mjs → spawn-CCGzKlC4.mjs} +1 -1
- package/dist/{spectrum-CTTZID8u.mjs → spectrum-pVGxb7u5.mjs} +6 -6
- package/dist/speed-ZFrMWDgd.mjs +4 -0
- package/dist/src-DU7FBCOX.mjs +108 -0
- package/dist/ssl-9JY05sYt.mjs +15 -0
- package/dist/stream-tRU39b8K.mjs +14 -0
- package/dist/{tenants-Bd7NGQ_m.mjs → tenants-HLGUazms.mjs} +1 -1
- package/dist/{token-validation-DAgtFOvs.mjs → token-validation-_VdamKpz.mjs} +4 -4
- package/dist/{tools-DXQmfFuE.mjs → tools-D_hfUU_Z.mjs} +1 -1
- package/dist/{turnstile-cfdaO4ca.mjs → turnstile-BRzXd28B.mjs} +4 -4
- package/dist/{ui-D4KtlMh9.mjs → ui-erjBdVKL.mjs} +1 -1
- package/dist/url-normalization-D-NxuLtN.mjs +3 -0
- package/dist/url-scanner-BzzR6iDx.mjs +2 -0
- package/dist/{user-CAo-yCJA.mjs → user-C4omq__w.mjs} +2 -2
- package/dist/vectorize-By6EqcNR.mjs +4 -0
- package/dist/{versions-CUwWJWmy.mjs → versions-CBHwWPAM.mjs} +1 -1
- package/dist/{waiting-rooms-Dln5ICg5.mjs → waiting-rooms-u6KwrzWd.mjs} +6 -6
- package/dist/{web3-HQJRm38W.mjs → web3-DQ5dmE9W.mjs} +3 -3
- package/dist/{workers-Dg7ddG2Q.mjs → workers-D8Be7_as.mjs} +14 -14
- package/dist/workers-builds-BE3W3qNk.mjs +7 -0
- package/dist/{workflows-VquuSh2J.mjs → workflows-BWWufqFA.mjs} +3 -3
- package/dist/zaraz-Bsa9AvVL.mjs +2 -0
- package/dist/{zero-trust-CP96wnSh.mjs → zero-trust-UNVZFnKu.mjs} +87 -87
- package/dist/zero_trust-B0_Rk4p2.mjs +3 -0
- package/dist/zones-BXtdwt6E.mjs +21 -0
- package/package.json +4 -4
- package/dist/ai-DOOKLPkG.mjs +0 -2
- package/dist/ai-gateway-Cj1T3avF.mjs +0 -8
- package/dist/ai-search-CQF_Sn7d.mjs +0 -7
- package/dist/ai_gateway-C3fH22C0.mjs +0 -4
- package/dist/analytics_engine-DdXVR8z2.mjs +0 -2
- package/dist/argo-CX_A4kcn.mjs +0 -2
- package/dist/audit-logs-BfBf3oo-.mjs +0 -2
- package/dist/auth-SyWhMmPu.mjs +0 -6
- package/dist/auth-ffdf9yR0.mjs +0 -135
- package/dist/autorag-BuGhGTeZ.mjs +0 -2
- package/dist/billing-PoG81XaQ.mjs +0 -2
- package/dist/bot-management-CFvtVx62.mjs +0 -5
- package/dist/botnet-feed-B-M4Yu0W.mjs +0 -3
- package/dist/brand-protection-D05Eg-_6.mjs +0 -3
- package/dist/browser-rendering-xu8F_Rrv.mjs +0 -4
- package/dist/calls-CZbO7TyR.mjs +0 -4
- package/dist/certificate-authorities-D2yr7_3t.mjs +0 -2
- package/dist/client-certificates-MJcDsTId.mjs +0 -3
- package/dist/cloud-connector-DWOrN2eM.mjs +0 -2
- package/dist/config-DYzlVxcB.mjs +0 -2
- package/dist/connectivity-BX8C7tvK.mjs +0 -3
- package/dist/content-scanning-r6uzMO1r.mjs +0 -4
- package/dist/context-DGlHRGWM.mjs +0 -2
- package/dist/custom-nameservers-D1DtlRue.mjs +0 -3
- package/dist/custom-pages-DQCi2plU.mjs +0 -4
- package/dist/d1-DbnYhw45.mjs +0 -4
- package/dist/data-security-D_EtYBfo.mjs +0 -6
- package/dist/dcv-delegation-CHspSzTI.mjs +0 -2
- package/dist/diagnostics-BJQGjVJn.mjs +0 -3
- package/dist/dist-DNBSHor6.mjs +0 -301
- package/dist/dns-firewall-B4DVXFBQ.mjs +0 -57
- package/dist/durable-objects-CTboySEo.mjs +0 -2
- package/dist/email-sending-DwWKc5jC.mjs +0 -3
- package/dist/google-tag-gateway-BGD49nRC.mjs +0 -2
- package/dist/hostnames-BiomxukN.mjs +0 -3
- package/dist/hyperdrive-Da104VaQ.mjs +0 -18
- package/dist/iam-BIGKo0WW.mjs +0 -6
- package/dist/images-BO8FbDAa.mjs +0 -5
- package/dist/intel-CY6_79v8.mjs +0 -3
- package/dist/keyless-certificates-CZC-L8gM.mjs +0 -3
- package/dist/leaked-credential-checks-qLzRyu85.mjs +0 -3
- package/dist/magic-cloud-networking-CSOM3EM-.mjs +0 -5
- package/dist/managed-transforms-D15yVbZx.mjs +0 -3
- package/dist/mtls-certificates-D8k0AXWK.mjs +0 -3
- package/dist/origin-ca-certificates-DXIvD8H5.mjs +0 -3
- package/dist/origin-post-quantum-encryption-C8oOczyV.mjs +0 -2
- package/dist/progress-CrCGTq7N.mjs +0 -2
- package/dist/queues-CN6DPhRR.mjs +0 -6
- package/dist/r2-data-catalog-Bbo93TJx.mjs +0 -14
- package/dist/radar-Bxb0WX8V.mjs +0 -2
- package/dist/raw-fetch-Dlccg0Tr.mjs +0 -2
- package/dist/request-tracers-DOW_reTJ.mjs +0 -2
- package/dist/resource-sharing-D7TX0JV0.mjs +0 -5
- package/dist/rules-BXRADHL5.mjs +0 -4
- package/dist/rum-BjPptTUP.mjs +0 -4
- package/dist/security-center-DAy6AKtT.mjs +0 -2
- package/dist/security-txt-xAMb7K6Y.mjs +0 -3
- package/dist/shared-AGtpXwwL.mjs +0 -2
- package/dist/snippets-CCSsCXVs.mjs +0 -4
- package/dist/speed-CuzTE0AL.mjs +0 -4
- package/dist/src-BW6vfAwE.mjs +0 -108
- package/dist/ssl-BWA2LdwC.mjs +0 -15
- package/dist/stream-GFsIZ-pP.mjs +0 -14
- package/dist/url-normalization-B5RN4nLD.mjs +0 -3
- package/dist/url-scanner-BrZ1L9OC.mjs +0 -2
- package/dist/vectorize-C7_oQlaI.mjs +0 -4
- package/dist/workers-builds-AVfx8IyL.mjs +0 -7
- package/dist/zaraz-xYSWIV4P.mjs +0 -2
- package/dist/zones-BSgmZ9WC.mjs +0 -21
- /package/dist/{body-parser-DKa8Ipg1.mjs → body-parser-DWSy7uZ8.mjs} +0 -0
- /package/dist/{cli-types-CRIDdDw3.mjs → cli-types-BeyOc81z.mjs} +0 -0
- /package/dist/{input-validation-zEO81MWN.mjs → input-validation-_fMCApaH.mjs} +0 -0
- /package/dist/{lib-Eu1wXxuh.mjs → lib-4PQI6yRW.mjs} +0 -0
- /package/dist/{local-VJaJ3BZ1.mjs → local-CYc9q7l2.mjs} +0 -0
- /package/dist/{metadata-5VwHPW6C.mjs → metadata-OOwvpR8m.mjs} +0 -0
- /package/dist/{resolve-4-OSeHlK.mjs → resolve-C3h-mwp7.mjs} +0 -0
- /package/dist/{theme-BklJDrb2.mjs → theme-DbNbIY4d.mjs} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{E as e,S as t,g as n,w as r}from"./oauth-Bk-F-tIO.mjs";import{n as i}from"./auth-CSC4yhEJ.mjs";import{n as a,t as o}from"./body-parser-DWSy7uZ8.mjs";import{t as s}from"./output-B6fBFRqe.mjs";import{n as c,t as l}from"./progress-DrDErV9w.mjs";import{n as u}from"./input-validation-_fMCApaH.mjs";import{t as d}from"./local-CYc9q7l2.mjs";import{t as f}from"./cli-types-BeyOc81z.mjs";function p(e){return e.option(`show-historic`,{type:`string`,description:`Include scanned images without domain metadata (historic data). Default: false (only show images with domain)`}).option(`download`,{type:`string`,description:`If true, include base64-encoded image data in the response`}).option(`image-data`,{type:`string`,description:`Base64 encoded image data. Can include data URI prefix (e.g., 'data:image/png;base64,...') or just the base64 string.`}).option(`score-threshold`,{type:`number`,description:`Minimum similarity score threshold for matches (0-1, default: 0)`,default:0}).option(`top-k`,{type:`number`,description:`Number of closest matches to return (1-100, default: 10)`,default:10}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const m={command:`submit`,describe:`Submit an image and find the n closest matches from the scanned images index without creating any match records. Returns similarity scores and metadata for each match.`,builder:p,handler:async r=>{let f={showHistoric:r[`show-historic`],download:r.download};if(r.dryRun){c({command:`cf brand-protection submit`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/logo/search`,pathParams:{},query:f,bodyKind:`json`,body:r.body===void 0?o({image_data:u(r[`image-data`],`image-data`,`text`),score_threshold:r[`score-threshold`],top_k:r[`top-k`]}):a(r.body)});return}let p=await i(r),m=r.local?d:await n(p);if(r.accountId=m,r.body){let e=a(r.body);new URLSearchParams(Object.entries(f).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),s(await l(`Creating`,async()=>p.brandProtection.submit({...e,account_id:m,...f})),{successLabel:`Created`});return}r[`image-data`]===void 0&&(r[`image-data`]=await e(`image-data`,`Base64 encoded image data. Can include data URI prefix (e.g., 'data:image/png;base64,...') or just the base64 string.`));let h=o({image_data:u(r[`image-data`],`image-data`,`text`),score_threshold:r[`score-threshold`],top_k:r[`top-k`]});new URLSearchParams(Object.entries(f).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),s(await l(`Creating`,async()=>p.brandProtection.submit({...h,account_id:m,...f})),{successLabel:`Created`})}};function h(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`url-info`,describe:`Get the total number of saved brand protection queries (domain + logo) for an account`,builder:h,handler:async e=>{if(e.dryRun){c({command:`cf brand-protection url-info`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/total-queries`,pathParams:{},bodyKind:`none`});return}let r=await i(e),a=e.local?d:await n(r);e.accountId=a,s(await l(`Loading`,async()=>r.brandProtection.urlInfo({account_id:a})),{successLabel:`Loaded`})}};function _(e){return e.option(`offset`,{type:`string`,description:`Offset`}).option(`limit`,{type:`string`,description:`Limit`}).option(`query-id`,{type:`string`,description:`Query ID`,demandOption:!0}).option(`download`,{type:`string`,description:`Download`}).option(`order-by`,{type:`string`,description:`Column to sort by. Options: 'matchedAt', 'domain', 'similarityScore', or 'registrar'`,choices:[`matchedAt`,`domain`,`similarityScore`,`registrar`]}).option(`order`,{type:`string`,description:`Sort order. Options: 'asc' (ascending) or 'desc' (descending)`,choices:[`asc`,`desc`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`get`,describe:`Get paginated list of logo matches for a specific brand protection logo query`,builder:f(_),handler:async e=>{let r={offset:e.offset,limit:e.limit,query_id:e[`query-id`],download:e.download,orderBy:e[`order-by`],order:e.order};if(e.dryRun){c({command:`cf brand-protection v2 logo-matches get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/logo/matches`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(e),o=e.local?d:await n(a);e.accountId=o,s(await l(`Loading`,async()=>a.brandProtection.v2.logoMatches.get({account_id:o,...r})),{successLabel:`Loaded`})}},y={command:`logo-matches`,describe:`Detected visual logo matches found on potentially infringing websites`,builder:e=>e.command(v).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function b(e){return e.option(`image-data`,{type:`string`,description:`Base64 encoded image data. Can include data URI prefix (e.g., 'data:image/png;base64,...') or just the base64 string.`}).option(`search-lookback`,{type:`boolean`,description:`If true, search historic scanned images for matches above the similarity threshold`,default:!0}).option(`similarity-threshold`,{type:`number`,description:`Minimum similarity score (0-1) required for visual matches`}).option(`tag`,{type:`string`,description:`Unique identifier for the logo query`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const x={command:`create`,describe:`Create a new saved brand protection logo query for visual similarity matching`,builder:b,handler:async r=>{if(r.dryRun){c({command:`cf brand-protection v2 logos create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/logo/queries`,pathParams:{},bodyKind:`json`,body:r.body===void 0?o({image_data:u(r[`image-data`],`image-data`,`text`),search_lookback:r[`search-lookback`],similarity_threshold:r[`similarity-threshold`],tag:u(r.tag,`tag`,`text`)}):a(r.body)});return}let f=await i(r),p=r.local?d:await n(f);if(r.accountId=p,r.body){let e=a(r.body);s(await l(`Creating`,async()=>f.brandProtection.v2.logos.create({...e,account_id:p})),{successLabel:`Created`});return}if(r[`image-data`]===void 0&&(r[`image-data`]=await e(`image-data`,`Base64 encoded image data. Can include data URI prefix (e.g., 'data:image/png;base64,...') or just the base64 string.`)),r[`similarity-threshold`]===void 0)throw Error(`--similarity-threshold is required (or pass --body with this field set).`);r.tag===void 0&&(r.tag=await e(`tag`,`Unique identifier for the logo query`));let m=o({image_data:u(r[`image-data`],`image-data`,`text`),search_lookback:r[`search-lookback`],similarity_threshold:r[`similarity-threshold`],tag:u(r.tag,`tag`,`text`)});s(await l(`Creating`,async()=>f.brandProtection.v2.logos.create({...m,account_id:p})),{successLabel:`Created`})}};function S(e){return e.positional(`query-id`,{type:`string`,description:`Query ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const C={command:`delete <query-id>`,describe:`Delete a saved brand protection logo query. Returns 404 if the query ID doesn't exist.`,builder:S,handler:async e=>{if(e.dryRun){c({command:`cf brand-protection v2 logos delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/logo/queries/${e[`query-id`]==null?`<query-id>`:encodeURIComponent(String(e[`query-id`]))}`,pathParams:{"query-id":String(e[`query-id`]??``)},bodyKind:`none`});return}let a=await i(e),o=e.local?d:await n(a);if(e.accountId=o,!await r({force:!!e.force})){process.stderr.write(`Aborted.
|
|
3
|
+
`);return}s(await l(`Deleting`,async()=>a.brandProtection.v2.logos.delete({account_id:o,query_id:e[`query-id`]})),{successLabel:`Deleted`})}};function w(e){return e.option(`id`,{type:`string`,description:`Optional query ID to retrieve a specific logo query`}).option(`download`,{type:`string`,description:`If true, include base64-encoded image data in the response`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const T={command:`get`,describe:`Get all saved brand protection logo queries for an account. Optionally specify id to get a single query. Set download=true to include base64-encoded image data.`,builder:w,handler:async e=>{let r={id:e.id,download:e.download};if(e.dryRun){c({command:`cf brand-protection v2 logos get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/logo/queries`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(e),o=e.local?d:await n(a);e.accountId=o,s(await l(`Loading`,async()=>a.brandProtection.v2.logos.get({account_id:o,...r})),{successLabel:`Loaded`})}},E={command:`logos`,describe:`Brand monitoring queries that define search patterns for detecting brand abuse`,builder:e=>e.command(x).command(C).command(T).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function D(e){return e.option(`offset`,{type:`string`,description:`Offset`}).option(`limit`,{type:`string`,description:`Limit`}).option(`query-id`,{type:`string`,description:`Query ID or comma-separated list of Query IDs. When multiple IDs are provided, matches are deduplicated across queries and each match includes a match_details array with per-match query metadata and dismissed state.`,demandOption:!0}).option(`include-domain-id`,{type:`string`,description:`Include domain ID`}).option(`include-dismissed`,{type:`string`,description:`Include dismissed`}).option(`domain-search`,{type:`string`,description:`Filter matches by domain name (substring match)`}).option(`order-by`,{type:`string`,description:`Column to sort by. Options: 'domain', 'first_seen', or 'registrar'`,choices:[`domain`,`first_seen`,`registrar`]}).option(`order`,{type:`string`,description:`Sort order. Options: 'asc' (ascending) or 'desc' (descending)`,choices:[`asc`,`desc`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const O={command:`get`,describe:`Get paginated list of domain matches for one or more brand protection queries. When multiple query_ids are provided (comma-separated), matches are deduplicated across queries and each match includes a match_details array with per-match query metadata and individual dismissed state.`,builder:f(D),handler:async e=>{let r={offset:e.offset,limit:e.limit,query_id:e[`query-id`],include_domain_id:e[`include-domain-id`],include_dismissed:e[`include-dismissed`],domain_search:e[`domain-search`],orderBy:e[`order-by`],order:e.order};if(e.dryRun){c({command:`cf brand-protection v2 matches get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/domain/matches`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(e),o=e.local?d:await n(a);e.accountId=o,s(await l(`Loading`,async()=>a.brandProtection.v2.matches.get({account_id:o,...r})),{successLabel:`Loaded`})}},k={command:`matches`,describe:`Detected brand abuse matches from monitoring queries with evidence downloads`,builder:e=>e.command(O).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function A(e){return e.option(`id`,{type:`string`,description:`ID`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const j={command:`get`,describe:`Get all saved brand protection queries for an account`,builder:A,handler:async e=>{let r={id:e.id};if(e.dryRun){c({command:`cf brand-protection v2 queries get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${t()??`<account-id>`}/cloudforce-one/v2/brand-protection/domain/queries`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(e),o=e.local?d:await n(a);e.accountId=o,s(await l(`Loading`,async()=>a.brandProtection.v2.queries.get({account_id:o,...r})),{successLabel:`Loaded`})}},M={command:`queries`,describe:`Brand monitoring queries that define search patterns for detecting brand abuse`,builder:e=>e.command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},N={command:`v2`,describe:`Operations for v2`,builder:e=>e.command(y).command(E).command(k).command(M).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},P={command:`brand-protection`,describe:`Monitor the Internet for phishing sites, lookalike domains, and unauthorized use of your brand assets`,builder:e=>e.command(m).command(g).command(N).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{P as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{S as e,g as t,w as n}from"./oauth-Bk-F-tIO.mjs";import{i as r,n as i}from"./auth-CSC4yhEJ.mjs";import{n as a}from"./body-parser-DWSy7uZ8.mjs";import{t as o}from"./output-B6fBFRqe.mjs";import{n as s,t as c}from"./progress-DrDErV9w.mjs";import{t as l}from"./local-CYc9q7l2.mjs";import{t as u}from"./cli-types-BeyOc81z.mjs";import{n as d,t as f}from"./raw-fetch-_n0lMAnD.mjs";function p(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const m={command:`create`,describe:"Returns the page's accessibility tree. Use `interestingOnly` to only return semantically meaningful nodes; use `root` to scope the tree to a CSS-selector-anchored subtree. Control page loading with `gotoOptions` and `waitFor*` options.",builder:p,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering accessibilityTree create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/accessibilityTree`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.accessibilityTree.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/accessibilityTree`,{query:u})),{successLabel:`Created`})}},ee={command:`accessibilityTree`,describe:`Operations for accessibilityTree`,builder:e=>e.command(m).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function h(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const g={command:`create`,describe:"Fetches rendered HTML content from provided URL or HTML. Check available options like `gotoOptions` and `waitFor*` to control page load behaviour.",builder:h,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering content create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/content`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.content.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/content`,{query:u})),{successLabel:`Created`})}},_={command:`content`,describe:`Operations for content`,builder:e=>e.command(g).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function v(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const y={command:`create`,describe:"Starts a crawl job for the provided URL and its children. Check available options like `gotoOptions` and `waitFor*` to control page load behaviour.",builder:v,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering crawl create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/crawl`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.crawl.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/crawl`,{query:u})),{successLabel:`Created`})}};function b(e){return e.positional(`job-id`,{type:`string`,description:`The ID of the crawl job to cancel.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const x={command:`delete <job-id>`,describe:`Cancels an ongoing crawl job by setting its status to cancelled and stopping all queued URLs.`,builder:b,handler:async r=>{if(r.dryRun){s({command:`cf browser-rendering crawl delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/crawl/${r[`job-id`]==null?`<job-id>`:encodeURIComponent(String(r[`job-id`]))}`,pathParams:{"job-id":String(r[`job-id`]??``)},bodyKind:`none`});return}let a=await i(r),u=r.local?l:await t(a);if(r.accountId=u,!await n({force:!!r.force})){process.stderr.write(`Aborted.
|
|
3
|
+
`);return}o(await c(`Deleting`,async()=>a.browserRendering.crawl.delete({account_id:u,job_id:r[`job-id`]})),{successLabel:`Deleted`})}};function S(e){return e.positional(`job-id`,{type:`string`,description:`Crawl job ID.`,demandOption:!0}).option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`status`,{type:`string`,description:`Filter by URL status.`,choices:[`queued`,`errored`,`completed`,`disallowed`,`skipped`,`cancelled`]}).option(`cursor`,{type:`number`,description:`Cursor for pagination.`}).option(`limit`,{type:`number`,description:`Limit for pagination.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const C={command:`get <job-id>`,describe:`Returns the result of a crawl job.`,builder:u(S),handler:async n=>{let r={cacheTTL:n[`cache-ttl`],status:n.status,cursor:n.cursor,limit:n.limit};if(n.dryRun){s({command:`cf browser-rendering crawl get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/crawl/${n[`job-id`]==null?`<job-id>`:encodeURIComponent(String(n[`job-id`]))}`,pathParams:{"job-id":String(n[`job-id`]??``)},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.crawl.get({account_id:u,job_id:n[`job-id`],...r})),{successLabel:`Loaded`})}},w={command:`crawl`,describe:`Operations for crawl`,builder:e=>e.command(y).command(x).command(C).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function T(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID to connect to.`,demandOption:!0}).option(`keep-alive`,{type:`number`,description:`Keep-alive time in ms (only valid when acquiring new session).`}).option(`lab`,{type:`boolean`,description:`Use experimental browser.`}).option(`recording`,{type:`boolean`,description:`Recording`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const E={command:`connect <session-id>`,describe:`Establishes a WebSocket connection to an existing browser session.`,builder:T,handler:async n=>{let r={keep_alive:n[`keep-alive`],lab:n.lab,recording:n.recording};if(n.dryRun){s({command:`cf browser-rendering devtools browser connect`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``)},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.devtools.browser.connect({account_id:u,session_id:n[`session-id`],...r})),{successLabel:`Loaded`})}};function D(e){return e.option(`keep-alive`,{type:`number`,description:`Keep-alive time in milliseconds.`}).option(`lab`,{type:`boolean`,description:`Use experimental browser.`}).option(`targets`,{type:`boolean`,description:`Include browser targets in response.`}).option(`live-view-url-expires-in-ms`,{type:`number`,description:`How long the live view URL remains valid, in milliseconds (max 60 minutes). Only used when targets is true.`}).option(`recording`,{type:`boolean`,description:`Recording`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const O={command:`create`,describe:`Acquires a browser and returns its session ID and websocket URL.`,builder:D,handler:async n=>{let r={keep_alive:n[`keep-alive`],lab:n.lab,targets:n.targets,liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`],recording:n.recording};if(n.dryRun){s({command:`cf browser-rendering devtools browser create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Creating`,async()=>a.browserRendering.devtools.browser.create({account_id:u,...r})),{successLabel:`Created`})}};function k(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID to close.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const A={command:`delete <session-id>`,describe:`Closes an existing browser session.`,builder:k,handler:async r=>{if(r.dryRun){s({command:`cf browser-rendering devtools browser delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${r[`session-id`]==null?`<session-id>`:encodeURIComponent(String(r[`session-id`]))}`,pathParams:{"session-id":String(r[`session-id`]??``)},bodyKind:`none`});return}let a=await i(r),u=r.local?l:await t(a);if(r.accountId=u,!await n({force:!!r.force})){process.stderr.write(`Aborted.
|
|
4
|
+
`);return}o(await c(`Deleting`,async()=>a.browserRendering.devtools.browser.delete({account_id:u,session_id:r[`session-id`]})),{successLabel:`Deleted`})}};function j(e){return e.option(`keep-alive`,{type:`number`,description:`Keep-alive time in ms (only valid when acquiring new session).`}).option(`lab`,{type:`boolean`,description:`Use experimental browser.`}).option(`recording`,{type:`boolean`,description:`Recording`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const M={command:`launch`,describe:`Acquires and establishes a WebSocket connection to a browser session.`,builder:j,handler:async n=>{let r={keep_alive:n[`keep-alive`],lab:n.lab,recording:n.recording};if(n.dryRun){s({command:`cf browser-rendering devtools browser launch`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.devtools.browser.launch({account_id:u,...r})),{successLabel:`Loaded`})}};function N(e){return e.positional(`target-id`,{type:`string`,description:`Target ID, e.g. page ID.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const P={command:`get <target-id>`,describe:`Establishes a WebSocket connection to a specific Chrome DevTools target or page.`,builder:N,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser page get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/page/${n[`target-id`]==null?`<target-id>`:encodeURIComponent(String(n[`target-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``),"target-id":String(n[`target-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.page.get({account_id:a,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}},F={command:`page`,describe:`Operations for devtools.browser.page`,builder:e=>e.command(P).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function I(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const L={command:`protocol <session-id>`,describe:`Returns the complete Chrome DevTools Protocol schema including all domains, commands, events, and types. This schema describes the entire CDP API surface.`,builder:I,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser protocol`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/protocol`,pathParams:{"session-id":String(n[`session-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.protocol({account_id:a,session_id:n[`session-id`]})),{successLabel:`Loaded`})}};function R(e){return e.positional(`target-id`,{type:`string`,description:`Target ID to activate.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const z={command:`activate <target-id>`,describe:`Activates (brings to front) a specific browser target by its ID.`,builder:R,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser targets activate`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/activate/${n[`target-id`]==null?`<target-id>`:encodeURIComponent(String(n[`target-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``),"target-id":String(n[`target-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.targets.activate({account_id:a,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function B(e){return e.positional(`target-id`,{type:`string`,description:`Target ID to close.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const V={command:`close <target-id>`,describe:`Closes a specific browser target (tab, page, etc.) by its ID. Returns 'Target is closing' on success or an error if the target is not found.`,builder:B,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser targets close`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/close/${n[`target-id`]==null?`<target-id>`:encodeURIComponent(String(n[`target-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``),"target-id":String(n[`target-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.targets.close({account_id:a,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function H(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`url`,{type:`string`,description:`Url`}).option(`live-view-url-expires-in-ms`,{type:`number`,description:`How long the live view URL remains valid, in milliseconds (max 60 minutes)`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const U={command:`create <session-id>`,describe:`Opens a new tab in the browser. Optionally specify a URL to navigate to.`,builder:H,handler:async n=>{let r={url:n.url,liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){s({command:`cf browser-rendering devtools browser targets create`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/new`,pathParams:{"session-id":String(n[`session-id`]??``)},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Updating`,async()=>a.browserRendering.devtools.browser.targets.create({account_id:u,session_id:n[`session-id`],...r})),{successLabel:`Updated`})}};function W(e){return e.positional(`target-id`,{type:`string`,description:`Target ID.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const G={command:`get <target-id>`,describe:`Returns the debuggable target with the given ID.`,builder:W,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser targets get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/list/${n[`target-id`]==null?`<target-id>`:encodeURIComponent(String(n[`target-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``),"target-id":String(n[`target-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.targets.get({account_id:a,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function K(e){return e.option(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`live-view-url-expires-in-ms`,{type:`number`,description:`How long the live view URLs remain valid, in milliseconds (max 60 minutes)`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const q={command:`list`,describe:`Returns a list of all debuggable targets including tabs, pages, service workers, and other browser contexts.`,builder:K,handler:async n=>{let r={liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){s({command:`cf browser-rendering devtools browser targets list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/list`,pathParams:{"session-id":String(n[`session-id`]??``)},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.devtools.browser.targets.list({account_id:u,session_id:n[`session-id`],...r})),{successLabel:`Loaded`})}},J={command:`targets`,describe:`Operations for devtools.browser.targets`,builder:e=>e.command(z).command(V).command(U).command(G).command(q).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Y(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const X={command:`version <session-id>`,describe:`Get browser version metadata.`,builder:Y,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools browser version`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json/version`,pathParams:{"session-id":String(n[`session-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.browser.version({account_id:a,session_id:n[`session-id`]})),{successLabel:`Loaded`})}},te={command:`browser`,describe:`Operations for devtools.browser`,builder:e=>e.command(E).command(O).command(A).command(M).command(L).command(X).command(F).command(J).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Z(e){return e.positional(`session-id`,{type:`string`,description:`Browser session ID.`,demandOption:!0}).option(`live-view-url-expires-in-ms`,{type:`number`,description:`How long the live view URLs remain valid, in milliseconds (max 60 minutes)`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Q={command:`get <session-id>`,describe:`Returns a list of all debuggable targets including tabs, pages, service workers, and other browser contexts.`,builder:Z,handler:async n=>{let r={liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){s({command:`cf browser-rendering devtools json get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/browser/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}/json`,pathParams:{"session-id":String(n[`session-id`]??``)},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.devtools.json.get({account_id:u,session_id:n[`session-id`],...r})),{successLabel:`Loaded`})}},ne={command:`json`,describe:`Operations for devtools.json`,builder:e=>e.command(Q).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function re(e){return e.positional(`session-id`,{type:`string`,description:`Session ID.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ie={command:`get <session-id>`,describe:`Get details for a specific browser session.`,builder:re,handler:async n=>{if(n.dryRun){s({command:`cf browser-rendering devtools session get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/session/${n[`session-id`]==null?`<session-id>`:encodeURIComponent(String(n[`session-id`]))}`,pathParams:{"session-id":String(n[`session-id`]??``)},bodyKind:`none`});return}let r=await i(n),a=n.local?l:await t(r);n.accountId=a,o(await c(`Loading`,async()=>r.browserRendering.devtools.session.get({account_id:a,session_id:n[`session-id`]})),{successLabel:`Loaded`})}};function ae(e){return e.option(`limit`,{type:`number`,description:`Limit`}).option(`offset`,{type:`number`,description:`Offset`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const oe={command:`list`,describe:`List active browser sessions.`,builder:ae,handler:async n=>{let r={limit:n.limit,offset:n.offset};if(n.dryRun){s({command:`cf browser-rendering devtools session list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/devtools/session`,pathParams:{},query:r,bodyKind:`none`});return}let a=await i(n),u=n.local?l:await t(a);n.accountId=u,o(await c(`Loading`,async()=>a.browserRendering.devtools.session.list({account_id:u,...r})),{successLabel:`Loaded`})}},se={command:`session`,describe:`Operations for devtools.session`,builder:e=>e.command(ie).command(oe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},ce={command:`devtools`,describe:`Operations for devtools`,builder:e=>e.command(te).command(ne).command(se).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function le(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const ue={command:`create`,describe:"Gets json from a webpage from a provided URL or HTML. Pass `prompt` or `schema` in the body. Control page loading with `gotoOptions` and `waitFor*` options.",builder:le,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering json create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/json`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.json.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/json`,{query:u})),{successLabel:`Created`})}},de={command:`json`,describe:`Operations for json`,builder:e=>e.command(ue).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function fe(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const pe={command:`create`,describe:`Get links from a web page.`,builder:fe,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering links create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/links`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.links.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/links`,{query:u})),{successLabel:`Created`})}},me={command:`links`,describe:`Operations for links`,builder:e=>e.command(pe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function he(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const ge={command:`create`,describe:"Gets markdown of a webpage from provided URL or HTML. Control page loading with `gotoOptions` and `waitFor*` options.",builder:he,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering markdown create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/markdown`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.markdown.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/markdown`,{query:u})),{successLabel:`Created`})}},_e={command:`markdown`,describe:`Operations for markdown`,builder:e=>e.command(ge).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function ve(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).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(`text`,{type:`boolean`,description:`Decode the response body as UTF-8 text instead of writing raw bytes`,default:!1})}const ye={command:`create`,describe:"Fetches rendered PDF from provided URL or HTML. Check available options like `gotoOptions` and `waitFor*` to control page load behaviour.",builder:ve,handler:async n=>{let r={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering pdf create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/pdf`,pathParams:{},query:r,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let o=await i(n),u=n.local?l:await t(o);if(n.accountId=u,n.body){let e=a(n.body),t=new URLSearchParams(Object.entries(r).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i=await c(`Creating`,async()=>f(`/accounts/${u}/browser-rendering/pdf${t?`?`+t:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:JSON.stringify(e),contentType:`application/json`}));d(n.text===!0?i.toString(`utf-8`):i);return}let p=new URLSearchParams(Object.entries(r).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),m=await c(`Creating`,async()=>f(`/accounts/${u}/browser-rendering/pdf${p?`?`+p:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0}));d(n.text===!0?m.toString(`utf-8`):m)}},be={command:`pdf`,describe:`Operations for pdf`,builder:e=>e.command(ye).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function $(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const xe={command:`create`,describe:`Get meta attributes like height, width, text and others of selected elements.`,builder:$,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering scrape create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/scrape`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.scrape.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/scrape`,{query:u})),{successLabel:`Created`})}},Se={command:`scrape`,describe:`Operations for scrape`,builder:e=>e.command(xe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Ce(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).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(`text`,{type:`boolean`,description:`Decode the response body as UTF-8 text instead of writing raw bytes`,default:!1})}const we={command:`create`,describe:"Takes a screenshot of a webpage from provided URL or HTML. Control page loading with `gotoOptions` and `waitFor*` options. Customize screenshots with `viewport`, `fullPage`, `clip` and others.",builder:Ce,handler:async n=>{let r={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering screenshot create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/screenshot`,pathParams:{},query:r,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let o=await i(n),u=n.local?l:await t(o);if(n.accountId=u,n.body){let e=a(n.body),t=new URLSearchParams(Object.entries(r).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i=await c(`Creating`,async()=>f(`/accounts/${u}/browser-rendering/screenshot${t?`?`+t:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:JSON.stringify(e),contentType:`application/json`}));d(n.text===!0?i.toString(`utf-8`):i);return}let p=new URLSearchParams(Object.entries(r).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),m=await c(`Creating`,async()=>f(`/accounts/${u}/browser-rendering/screenshot${p?`?`+p:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0}));d(n.text===!0?m.toString(`utf-8`):m)}},Te={command:`screenshot`,describe:`Operations for screenshot`,builder:e=>e.command(we).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Ee(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const De={command:`create`,describe:"Returns the page's HTML content and screenshot. Control page loading with `gotoOptions` and `waitFor*` options. Customize screenshots with `viewport`, `fullPage`, `clip` and others.",builder:Ee,handler:async n=>{let u={cacheTTL:n[`cache-ttl`]};if(n.dryRun){s({command:`cf browser-rendering snapshot create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${e()??`<account-id>`}/browser-rendering/snapshot`,pathParams:{},query:u,bodyKind:`json`,body:n.body===void 0?void 0:a(n.body)});return}let d=await i(n),f=n.local?l:await t(d);if(n.accountId=f,n.body){let e=a(n.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),o(await c(`Creating`,async()=>d.browserRendering.snapshot.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}o(await c(`Creating`,async()=>r(d,`POST`,`/accounts/${f}/browser-rendering/snapshot`,{query:u})),{successLabel:`Created`})}},Oe={command:`snapshot`,describe:`Operations for snapshot`,builder:e=>e.command(De).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},ke={command:`browser-rendering`,describe:`browser-rendering`,builder:e=>e.command(ee).command(_).command(w).command(ce).command(de).command(me).command(_e).command(be).command(Se).command(Te).command(Oe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{ke as default};
|