cf 0.7.0 → 0.8.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.
Files changed (174) hide show
  1. package/dist/_meta/agent-context.json +1 -1
  2. package/dist/_meta/commands.json +9 -112
  3. package/dist/{abuse-reports-BsF9JZPW.mjs → abuse-reports-C6GFnuYE.mjs} +1 -1
  4. package/dist/{account-D8mYiWxQ.mjs → account-DxzpnGA8.mjs} +1 -1
  5. package/dist/{accounts-CJci1Oez.mjs → accounts-6RFDuFLF.mjs} +1 -1
  6. package/dist/{acm-CmCd985Q.mjs → acm-Bndi5Jqo.mjs} +1 -1
  7. package/dist/{addressing-R7p6TRBe.mjs → addressing-C8HB4n_n.mjs} +1 -1
  8. package/dist/ai-B4La9Oqk.mjs +8 -0
  9. package/dist/{ai-audit-B0vJNOZG.mjs → ai-audit-B9kKFhoY.mjs} +1 -1
  10. package/dist/{ai-gateway-D3vJR3My.mjs → ai-gateway-Bx9MzNxL.mjs} +1 -1
  11. package/dist/{ai-search-CNg7W7U4.mjs → ai-search-BgIOIgXd.mjs} +1 -1
  12. package/dist/{alerting-_sdM0B0S.mjs → alerting-DVI-v6mE.mjs} +1 -1
  13. package/dist/{analytics-BFBJhDrP.mjs → analytics-B98epmDb.mjs} +1 -1
  14. package/dist/{analytics_engine-CWhFvyeK.mjs → analytics_engine-DwDePA2c.mjs} +1 -1
  15. package/dist/{api-gateway-D4AIEtUq.mjs → api-gateway-DW2GX64w.mjs} +1 -1
  16. package/dist/{argo-Bjk6nFfs.mjs → argo-DKEx-B66.mjs} +1 -1
  17. package/dist/{artifacts-Ba4b3iOa.mjs → artifacts-BEU8fBqt.mjs} +1 -1
  18. package/dist/{audit-logs-BE0T5All.mjs → audit-logs-DZiEPYL0.mjs} +1 -1
  19. package/dist/{auth-D_zyQbDR.mjs → auth-009DISzb.mjs} +1 -1
  20. package/dist/{auth-CZ0E51rF.mjs → auth-B1CY5zpC.mjs} +2 -2
  21. package/dist/{billing-Dz6Zj8Eq.mjs → billing-10B4_1qb.mjs} +1 -1
  22. package/dist/{bot-management-pFwIbFi-.mjs → bot-management-D51WzJBO.mjs} +1 -1
  23. package/dist/{botnet-feed-BY9uGChY.mjs → botnet-feed-Dw-leAwX.mjs} +1 -1
  24. package/dist/{brand-protection-DkPAk2Cz.mjs → brand-protection-BTYkTsER.mjs} +1 -1
  25. package/dist/{browser-extension-D9P6Yv8i.mjs → browser-extension-BFa5Ky8u.mjs} +1 -1
  26. package/dist/{browser-run-DhHtz4y3.mjs → browser-run-BMA8Z_hI.mjs} +1 -1
  27. package/dist/build-C1FOoThn.mjs +70 -0
  28. package/dist/{cache-DVhkiIGK.mjs → cache-DrX4gWvg.mjs} +1 -1
  29. package/dist/{calls-95zjvIcO.mjs → calls-m4WyL1Rb.mjs} +1 -1
  30. package/dist/{certificate-authorities-BowBqbVq.mjs → certificate-authorities-BA-S8NE-.mjs} +1 -1
  31. package/dist/{cf-BLT7uKJF.mjs → cf-BhDnTcDR.mjs} +7 -7
  32. package/dist/chunk-2SIGYDH3-_JSHaszR.mjs +473 -0
  33. package/dist/{chunk-6IEM75FG-BEjRFMGh.mjs → chunk-Q72B4Q5Z-B-N_eqrM.mjs} +1 -1
  34. package/dist/{client-certificates-D6mE4vJu.mjs → client-certificates-5h-fXoNq.mjs} +1 -1
  35. package/dist/{cloud-connector-DmwsjeFN.mjs → cloud-connector-ywFQuqtV.mjs} +1 -1
  36. package/dist/{cloudforce-one-CG3TT7IN.mjs → cloudforce-one-CPx4C-r3.mjs} +1 -1
  37. package/dist/{completions-DMc_PlIw.mjs → completions-CCRu-jvY.mjs} +1 -1
  38. package/dist/{connectivity-DJkE3crz.mjs → connectivity-y-Gav-Ge.mjs} +1 -1
  39. package/dist/{connector-interrupts-DTgQ7onV.mjs → connector-interrupts-Bs-jfuh8.mjs} +1 -1
  40. package/dist/{connector-telemetry-events-D0rTHDou.mjs → connector-telemetry-events-Bc6f3xpx.mjs} +1 -1
  41. package/dist/{connector-telemetry-snapshots--0QmD3z6.mjs → connector-telemetry-snapshots-Bl54XZ3h.mjs} +1 -1
  42. package/dist/{connectors-zWaZTi2A.mjs → connectors-BnQq_R19.mjs} +1 -1
  43. package/dist/{content-scanning-CGvGf04y.mjs → content-scanning-Bxk-WkSL.mjs} +1 -1
  44. package/dist/{ct-alerting-ebSPSWNC.mjs → ct-alerting-BSn2Jqou.mjs} +1 -1
  45. package/dist/{custom-certificates-CWUrPYLP.mjs → custom-certificates-BBqr4S9W.mjs} +1 -1
  46. package/dist/{custom-csrs-CRtdrF9R.mjs → custom-csrs-CXeBzLUy.mjs} +1 -1
  47. package/dist/{custom-hostnames-CVQSksqq.mjs → custom-hostnames-CfCOedoN.mjs} +1 -1
  48. package/dist/{custom-nameservers-BRwbIdsX.mjs → custom-nameservers-RPXeu7f_.mjs} +1 -1
  49. package/dist/{custom-pages-Ci8sTQX7.mjs → custom-pages-xGG1xo88.mjs} +1 -1
  50. package/dist/{d1-78Ym1P6D.mjs → d1-CRIOfBsJ.mjs} +1 -1
  51. package/dist/{data-security-zmFoMwRU.mjs → data-security-D5Sw5rwj.mjs} +1 -1
  52. package/dist/{dcv-delegation-Dd4FZ2IG.mjs → dcv-delegation-BBnlgr6F.mjs} +1 -1
  53. package/dist/deploy-D0_KIUpW.mjs +2 -0
  54. package/dist/deploy-input-CdWrpzPA.mjs +1178 -0
  55. package/dist/{dev-DSslyDXx.mjs → dev-Bz87BeKt.mjs} +1 -1
  56. package/dist/{diagnostics-B8Ev5m_o.mjs → diagnostics-C1qryRf4.mjs} +1 -1
  57. package/dist/{dispatch-namespaces-Dm5vGeEP.mjs → dispatch-namespaces-DbosPgPV.mjs} +1 -1
  58. package/dist/{dist-BH-4NQOV.mjs → dist-C-6VkMPZ.mjs} +35 -35
  59. package/dist/dist-CnaLMpVH.mjs +18 -0
  60. package/dist/{dns-D7VAaCyO.mjs → dns-ByufYrJH.mjs} +1 -1
  61. package/dist/{dns-firewall-ByLCsf0q.mjs → dns-firewall-CiokCKRr.mjs} +1 -1
  62. package/dist/{durable-objects-BIpvyu9m.mjs → durable-objects-DjF-WAD3.mjs} +1 -1
  63. package/dist/{email-auth-Cx--s8W4.mjs → email-auth-B4BIYMb-.mjs} +1 -1
  64. package/dist/{email-routing-CiDbivcN.mjs → email-routing-BbbtpVyS.mjs} +1 -1
  65. package/dist/{email-security-BYeAuSc6.mjs → email-security-DuBVypAO.mjs} +1 -1
  66. package/dist/{email-sending-Dg2rSmHH.mjs → email-sending-5g-k05Lv.mjs} +1 -1
  67. package/dist/{filters-DZ8YnQ90.mjs → filters-CzJmLFcS.mjs} +1 -1
  68. package/dist/{firewall-DEd1hs_I.mjs → firewall-CjmeWA2M.mjs} +1 -1
  69. package/dist/{flagship-DVw7xGoP.mjs → flagship-BfyVrWP-.mjs} +1 -1
  70. package/dist/{fraud-BbGS3FZs.mjs → fraud-reRvxNg-.mjs} +1 -1
  71. package/dist/{google-tag-gateway-CBnRGYQR.mjs → google-tag-gateway-CGwzMZU1.mjs} +1 -1
  72. package/dist/{healthchecks-Da9N3ix4.mjs → healthchecks-BhCsPWcG.mjs} +1 -1
  73. package/dist/{hostnames-mimZu2tB.mjs → hostnames-JpgQW4kn.mjs} +1 -1
  74. package/dist/{hyperdrive-BNdvxOos.mjs → hyperdrive-iwYttuwV.mjs} +1 -1
  75. package/dist/{iam-DGQ-OgRl.mjs → iam-ffI98_4v.mjs} +1 -1
  76. package/dist/{images-CI6Iy9ho.mjs → images-Bgb9DGlr.mjs} +1 -1
  77. package/dist/index.mjs +1 -1
  78. package/dist/{intel-BDB-aRtU.mjs → intel-DVRjKpyU.mjs} +1 -1
  79. package/dist/{ips-B9UuPvsY.mjs → ips-BtLRO19r.mjs} +1 -1
  80. package/dist/{keyless-certificates-Ua9uJgPt.mjs → keyless-certificates-13w8KOcC.mjs} +1 -1
  81. package/dist/{kv-BHerx4dZ.mjs → kv-CvQyF_NB.mjs} +1 -1
  82. package/dist/{leaked-credential-checks-B8Vunj9h.mjs → leaked-credential-checks-DvY8VReW.mjs} +1 -1
  83. package/dist/{load-balancers-DSjS5WKw.mjs → load-balancers-6lgExyS7.mjs} +1 -1
  84. package/dist/{logexplorer-DBIfTlRP.mjs → logexplorer-DBfrK1hn.mjs} +1 -1
  85. package/dist/{logo-matches-C00iGpzW.mjs → logo-matches-XS2RaxQu.mjs} +1 -1
  86. package/dist/{logos-CJLhx1go.mjs → logos-COtlpbRq.mjs} +1 -1
  87. package/dist/{logpush-Cr1U-eK-.mjs → logpush-CIpiK3Xl.mjs} +1 -1
  88. package/dist/{logs-DMvtchc6.mjs → logs-0KjIf_3g.mjs} +1 -1
  89. package/dist/{magic-cloud-networking-FQfO8QWH.mjs → magic-cloud-networking-q_d9-he-.mjs} +1 -1
  90. package/dist/{magic-network-monitoring-CDd70fJQ.mjs → magic-network-monitoring-DLNCrUsn.mjs} +1 -1
  91. package/dist/{magic-transit-DiKiPUax.mjs → magic-transit-sIwSlzoK.mjs} +1 -1
  92. package/dist/{managed-transforms-fPVUTrAv.mjs → managed-transforms-BKRjmzJS.mjs} +1 -1
  93. package/dist/{matches-B0yHbQ2I.mjs → matches-DZLS60M2.mjs} +1 -1
  94. package/dist/{moq-UgBawOXe.mjs → moq-Dbb9QhC1.mjs} +1 -1
  95. package/dist/{mtls-certificates-xKUbC5EL.mjs → mtls-certificates-BpIqoWpc.mjs} +1 -1
  96. package/dist/{network-interconnects-BJzOE2ny.mjs → network-interconnects-DZwGJFYT.mjs} +1 -1
  97. package/dist/{oauth-DBJ5GSFk.mjs → oauth-DC9g9uK_.mjs} +1 -1
  98. package/dist/{observability-B-1y36QS.mjs → observability-CVLjPAir.mjs} +1 -1
  99. package/dist/{open-YWOUIZ5Y-CFRcYALi.mjs → open-PBXRGS4R-D5C2-7de.mjs} +1 -1
  100. package/dist/{organization-Dq3PClZ7.mjs → organization-BGF8N1QQ.mjs} +1 -1
  101. package/dist/{organizations-AhsQkHyX.mjs → organizations-BInE8nlx.mjs} +1 -1
  102. package/dist/{origin-ca-certificates-CRgF0UyU.mjs → origin-ca-certificates-wPzWcEa0.mjs} +1 -1
  103. package/dist/{origin-post-quantum-encryption-BXTx7DPa.mjs → origin-post-quantum-encryption-t1Cl9hiy.mjs} +1 -1
  104. package/dist/{origin-tls-client-auth-BDw5q-6G.mjs → origin-tls-client-auth-Cvr9D8eq.mjs} +1 -1
  105. package/dist/{page-rules-DqYQ23eg.mjs → page-rules-CMo73oVb.mjs} +1 -1
  106. package/dist/{page-shield-DKdlZOLO.mjs → page-shield-Z23iqabu.mjs} +1 -1
  107. package/dist/{pages-BsXF11Kv.mjs → pages-ByaZvYjA.mjs} +1 -1
  108. package/dist/{pay-per-crawl-BGAwuAP3.mjs → pay-per-crawl-BXTenh_d.mjs} +1 -1
  109. package/dist/{pipelines-D_QhSnGW.mjs → pipelines-7KWm5BYN.mjs} +1 -1
  110. package/dist/{progress-O88q63Bk.mjs → progress-BLQ2xXwD.mjs} +1 -1
  111. package/dist/{prompt-DTAWiEm2.mjs → prompt-DcfYBioA.mjs} +1 -1
  112. package/dist/{queries-CAE95-OH.mjs → queries-Cgx1lQbn.mjs} +1 -1
  113. package/dist/{queues-BBz35Mqd.mjs → queues-jnugmCYI.mjs} +1 -1
  114. package/dist/{r2-Zp99S5xF.mjs → r2-Dllx7F7a.mjs} +1 -1
  115. package/dist/{r2-data-catalog-BeVLZwrE.mjs → r2-data-catalog-CaAAPwKp.mjs} +1 -1
  116. package/dist/{radar-Cij-XVQJ.mjs → radar-DLSHX2_1.mjs} +1 -1
  117. package/dist/{rate-limits-DSdToIWv.mjs → rate-limits-DlVTd6QY.mjs} +1 -1
  118. package/dist/{raw-fetch-DgezeshQ.mjs → raw-fetch-CeW1mW_u.mjs} +1 -1
  119. package/dist/{realtime-kit-9rJcapfM.mjs → realtime-kit-ct8Fu2kO.mjs} +1 -1
  120. package/dist/{registrar-CXViZlah.mjs → registrar-CKTB7QTM.mjs} +1 -1
  121. package/dist/{registrar-sandbox-CvQyjXLJ.mjs → registrar-sandbox-1-nNk6Uy.mjs} +1 -1
  122. package/dist/{request-tracers-DATfBnE9.mjs → request-tracers-DO6lno0x.mjs} +1 -1
  123. package/dist/{resource-sharing-Cmhn6ghR.mjs → resource-sharing-DYhXJw44.mjs} +1 -1
  124. package/dist/{resource-tagging-BTn05AOj.mjs → resource-tagging-CcKWMF9l.mjs} +1 -1
  125. package/dist/{rules-ens3OHme.mjs → rules-DQKR3qb7.mjs} +1 -1
  126. package/dist/{rulesets-bkreZRao.mjs → rulesets-B9fZb_JY.mjs} +1 -1
  127. package/dist/{rum-CpgXFcwl.mjs → rum-BaJio_GD.mjs} +1 -1
  128. package/dist/{schema-validation-Ca6o94ts.mjs → schema-validation-Cqv8KT1B.mjs} +1 -1
  129. package/dist/{scim-C4oT8TMc.mjs → scim-DkYH1dep.mjs} +1 -1
  130. package/dist/{secrets-store-CWEuiDNo.mjs → secrets-store-CMR_pA1t.mjs} +1 -1
  131. package/dist/{security-center-BOvm7xy6.mjs → security-center-DCHfgCq6.mjs} +1 -1
  132. package/dist/{security-txt-BCAUBctN.mjs → security-txt-D19uTyaf.mjs} +1 -1
  133. package/dist/{session-B1ARgLG7.mjs → session-CQpgz61H.mjs} +1 -1
  134. package/dist/{share-DhmVspmL.mjs → share-CfJbt0WU.mjs} +1 -1
  135. package/dist/shared-D0xvDsDl.mjs +2 -0
  136. package/dist/{smart-shield-DZm4fn6z.mjs → smart-shield-BG5WOmi1.mjs} +1 -1
  137. package/dist/{snippets-oQ0u26-z.mjs → snippets-CYiSdx7R.mjs} +1 -1
  138. package/dist/{spawn-ChG5Xi9Z.mjs → spawn-j3dn7A69.mjs} +1 -1
  139. package/dist/{spectrum-Cnkee5Ww.mjs → spectrum-Qvq3yJax.mjs} +1 -1
  140. package/dist/{speed-DqNnvLBD.mjs → speed-vpoB9msm.mjs} +1 -1
  141. package/dist/{src-By-zTCHz.mjs → src-Bn0FyQIp.mjs} +5 -5
  142. package/dist/{ssl-tS3CYZsZ.mjs → ssl-Qw8eVAiS.mjs} +1 -1
  143. package/dist/{state-OsdDJvdj.mjs → state-C2cBU9iK.mjs} +1 -1
  144. package/dist/{stream-Bud9Os5V.mjs → stream-BNbkY3zI.mjs} +1 -1
  145. package/dist/{submit-BtP8she2.mjs → submit-pQNW7uWj.mjs} +1 -1
  146. package/dist/{tenant-CMwHa-tU.mjs → tenant-xkvdAutS.mjs} +1 -1
  147. package/dist/{token-validation-BYC7HTok.mjs → token-validation-5F2AbQCz.mjs} +1 -1
  148. package/dist/triggers-CYdZhJYr.mjs +2 -0
  149. package/dist/{turnstile-CP4nScaL.mjs → turnstile-BSIaunXn.mjs} +1 -1
  150. package/dist/{ui-BNoF0KpD.mjs → ui-CTo5OG9r.mjs} +1 -1
  151. package/dist/{url-info-Chs9h7Y-.mjs → url-info-Q7m7AVih.mjs} +1 -1
  152. package/dist/{url-normalization-XYxW5Gj0.mjs → url-normalization-Bs2m5jlD.mjs} +1 -1
  153. package/dist/{url-scanner-D4pYNlO-.mjs → url-scanner-CYmT3C99.mjs} +1 -1
  154. package/dist/{user-DtefniLc.mjs → user-Bay_0p3C.mjs} +1 -1
  155. package/dist/{vectorize-BeAY2g-7.mjs → vectorize-cP2OuB5N.mjs} +1 -1
  156. package/dist/{versions-dMW3bLVv.mjs → versions-D7F26fhH.mjs} +1 -1
  157. package/dist/{waiting-rooms-K78HeeTg.mjs → waiting-rooms-B5HR1-37.mjs} +1 -1
  158. package/dist/{web3-Dhw79l4S.mjs → web3-DqCXM4sx.mjs} +1 -1
  159. package/dist/{workers-l3zMNOU6.mjs → workers-Cu-A8AZc.mjs} +1 -1
  160. package/dist/{workers-builds-CuOAB3u4.mjs → workers-builds-CmCg27M-.mjs} +1 -1
  161. package/dist/{workflows-rb7RYBKP.mjs → workflows-DavS4SEh.mjs} +1 -1
  162. package/dist/{zaraz-CHecMYuo.mjs → zaraz-CKcVy5Xa.mjs} +1 -1
  163. package/dist/{zero-trust-DAZoa-Aj.mjs → zero-trust-BKVqb2yq.mjs} +1 -1
  164. package/dist/{zone-BnnqJwW-.mjs → zone-BOcuY4sU.mjs} +1 -1
  165. package/dist/{zones-DpI2YikF.mjs → zones-BR-9WaY7.mjs} +1 -1
  166. package/package.json +5 -4
  167. package/dist/ai-BzJg0RIX.mjs +0 -3
  168. package/dist/build-CWuStmDi.mjs +0 -2
  169. package/dist/chunk-2SIGYDH3-qXx_zE6v.mjs +0 -397
  170. package/dist/deploy-CVvkZFjR.mjs +0 -2
  171. package/dist/lib-Og5sB51C.mjs +0 -68
  172. package/dist/shared-Bod3-Exx.mjs +0 -990
  173. /package/dist/{schema-DCF4yEp_.mjs → schema-DAW-B7wT.mjs} +0 -0
  174. /package/dist/{tools-Dru4l8yh.mjs → tools-BpNGzfj2.mjs} +0 -0
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import{O as e,w as t}from"./oauth-DBJ5GSFk.mjs";import{i as n,n as r}from"./auth-CZ0E51rF.mjs";import{t as i}from"./output-B6fBFRqe.mjs";import{n as a,t as o}from"./progress-O88q63Bk.mjs";import{t as s}from"./local-C6TLPAT6.mjs";import{n as c,r as l,t as u}from"./body-parser-BO6mfo_W.mjs";import{n as d}from"./input-validation-BwUR9z8e.mjs";import{t as f}from"./prompt-DTAWiEm2.mjs";import{t as p}from"./cli-types-CFw6Xygp.mjs";import{n as m,t as h}from"./raw-fetch-DgezeshQ.mjs";function g(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 _={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:g,handler:async l=>{let u={cacheTTL:l[`cache-ttl`]};if(l.dryRun){a({command:`cf browser-run crawl create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/crawl`,pathParams:{},query:u,bodyKind:`json`,body:l.body===void 0?void 0:c(l.body)});return}let d=await r(l),f=l.local?s:await t();if(l.accountId=f,l.body){let e=c(l.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>d.browserRun.crawl.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}i(await o(`Creating`,async()=>n(d,`POST`,`/accounts/${f}/browser-rendering/crawl`,{query:u})),{successLabel:`Created`})}};function ee(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 v={command:`delete <job-id>`,describe:`Cancels an ongoing crawl job by setting its status to cancelled and stopping all queued URLs.`,builder:ee,handler:async n=>{if(n.dryRun){a({command:`cf browser-run crawl delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/crawl/${n[`job-id`]==null?`<job-id>`:encodeURIComponent(String(n[`job-id`]))}`,pathParams:{"job-id":String(n[`job-id`]??``)},bodyKind:`none`});return}let c=await r(n),l=n.local?s:await t();if(n.accountId=l,!await f({force:!!n.force})){process.stderr.write(`Aborted.
2
+ import{O as e,w as t}from"./oauth-DC9g9uK_.mjs";import{i as n,n as r}from"./auth-B1CY5zpC.mjs";import{t as i}from"./output-B6fBFRqe.mjs";import{n as a,t as o}from"./progress-BLQ2xXwD.mjs";import{t as s}from"./local-C6TLPAT6.mjs";import{n as c,r as l,t as u}from"./body-parser-BO6mfo_W.mjs";import{n as d}from"./input-validation-BwUR9z8e.mjs";import{t as f}from"./prompt-DcfYBioA.mjs";import{t as p}from"./cli-types-CFw6Xygp.mjs";import{n as m,t as h}from"./raw-fetch-CeW1mW_u.mjs";function g(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 _={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:g,handler:async l=>{let u={cacheTTL:l[`cache-ttl`]};if(l.dryRun){a({command:`cf browser-run crawl create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/crawl`,pathParams:{},query:u,bodyKind:`json`,body:l.body===void 0?void 0:c(l.body)});return}let d=await r(l),f=l.local?s:await t();if(l.accountId=f,l.body){let e=c(l.body);new URLSearchParams(Object.entries(u).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>d.browserRun.crawl.create({body:e,account_id:f,...u})),{successLabel:`Created`});return}i(await o(`Creating`,async()=>n(d,`POST`,`/accounts/${f}/browser-rendering/crawl`,{query:u})),{successLabel:`Created`})}};function ee(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 v={command:`delete <job-id>`,describe:`Cancels an ongoing crawl job by setting its status to cancelled and stopping all queued URLs.`,builder:ee,handler:async n=>{if(n.dryRun){a({command:`cf browser-run crawl delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/crawl/${n[`job-id`]==null?`<job-id>`:encodeURIComponent(String(n[`job-id`]))}`,pathParams:{"job-id":String(n[`job-id`]??``)},bodyKind:`none`});return}let c=await r(n),l=n.local?s:await t();if(n.accountId=l,!await f({force:!!n.force})){process.stderr.write(`Aborted.
3
3
  `);return}i(await o(`Deleting`,async()=>c.browserRun.crawl.delete({account_id:l,job_id:n[`job-id`]})),{successLabel:`Deleted`})}};function y(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 b={command:`get <job-id>`,describe:`Returns the result of a crawl job.`,builder:p(y),handler:async n=>{let c={cacheTTL:n[`cache-ttl`],status:n.status,cursor:n.cursor,limit:n.limit};if(n.dryRun){a({command:`cf browser-run crawl get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Loading`,async()=>l.browserRun.crawl.get({account_id:u,job_id:n[`job-id`],...c})),{successLabel:`Loaded`})}},x={command:`crawl`,describe:`Operations for crawl`,builder:e=>e.command(_).command(v).command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(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 C={command:`connect <session-id>`,describe:`Establishes a WebSocket connection to an existing browser session.`,builder:S,handler:async n=>{let c={keep_alive:n[`keep-alive`],lab:n.lab,recording:n.recording};if(n.dryRun){a({command:`cf browser-run devtools browser connect`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Loading`,async()=>l.browserRun.devtools.browser.connect({account_id:u,session_id:n[`session-id`],...c})),{successLabel:`Loaded`})}};function w(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(`guardrails-allowed-domain-sets`,{type:`string`,array:!0,description:`Max 4 entries: curated preset names (common-cdns) and/or https URLs of newline-separated hostname lists.`}).option(`guardrails-allowed-domains`,{type:`string`,array:!0,description:`Hostname patterns, max 50. Supports exact hosts (example.com) or a single * wildcard anywhere. Prefer *.example.com (subdomain wildcard) over *example.com (prefix wildcard) to avoid matching overbroad lookalikes like evilexample.com.`}).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 T={command:`create`,describe:`Acquires a browser and returns its session ID and websocket URL. Optionally accepts a JSON body with session guardrails to restrict outbound HTTP/S traffic.`,builder:w,handler:async n=>{let l={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){a({command:`cf browser-run devtools browser create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/devtools/browser`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({guardrails:{allowedDomainSets:n[`guardrails-allowed-domain-sets`],allowedDomains:n[`guardrails-allowed-domains`]}}):c(n.body)});return}let d=await r(n),f=n.local?s:await t();if(n.accountId=f,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>d.browserRun.devtools.browser.create({...e,account_id:f,...l})),{successLabel:`Created`});return}let p=u({guardrails:{allowedDomainSets:n[`guardrails-allowed-domain-sets`],allowedDomains:n[`guardrails-allowed-domains`]}});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>d.browserRun.devtools.browser.create({...p,account_id:f,...l})),{successLabel:`Created`})}};function E(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 D={command:`delete <session-id>`,describe:`Closes an existing browser session.`,builder:E,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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`]??``)},bodyKind:`none`});return}let c=await r(n),l=n.local?s:await t();if(n.accountId=l,!await f({force:!!n.force})){process.stderr.write(`Aborted.
4
4
  `);return}i(await o(`Deleting`,async()=>c.browserRun.devtools.browser.delete({account_id:l,session_id:n[`session-id`]})),{successLabel:`Deleted`})}};function O(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(`cf-brapi-guardrails`,{type:`string`,description:`Optional base64url-encoded JSON session guardrails (allowedDomains and allowedDomainSets)`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const k={command:`launch`,describe:'Acquires and establishes a WebSocket connection to a browser session. Session guardrails may be supplied in the `cf-brapi-guardrails` header as base64url-encoded JSON of the same `guardrails` object the POST body accepts (for example `{"allowedDomains":["*.example.com"]}`).',builder:O,handler:async c=>{let l={keep_alive:c[`keep-alive`],lab:c.lab,recording:c.recording},u={};if(c[`cf-brapi-guardrails`]!==void 0&&(u[`cf-brapi-guardrails`]=String(c[`cf-brapi-guardrails`])),c.dryRun){a({command:`cf browser-run devtools browser launch`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/devtools/browser`,pathParams:{},query:l,bodyKind:`none`});return}let d=await r(c),f=c.local?s:await t();c.accountId=f,i(await o(`Loading`,async()=>n(d,`GET`,`/accounts/${f}/browser-rendering/devtools/browser`,{query:l,headers:Object.keys(u).length>0?u:void 0})),{successLabel:`Loaded`})}};function A(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 j={command:`get <target-id>`,describe:`Establishes a WebSocket connection to a specific Chrome DevTools target or page.`,builder:A,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser page get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.page.get({account_id:l,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}},M={command:`page`,describe:`Operations for devtools.browser.page`,builder:e=>e.command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function N(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 P={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:N,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser protocol`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.protocol({account_id:l,session_id:n[`session-id`]})),{successLabel:`Loaded`})}};function F(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 I={command:`activate <target-id>`,describe:`Activates (brings to front) a specific browser target by its ID.`,builder:F,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser targets activate`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.targets.activate({account_id:l,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function L(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 R={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:L,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser targets close`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.targets.close({account_id:l,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function z(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 B={command:`create <session-id>`,describe:`Opens a new tab in the browser. Optionally specify a URL to navigate to.`,builder:z,handler:async n=>{let c={url:n.url,liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){a({command:`cf browser-run devtools browser targets create`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Updating`,async()=>l.browserRun.devtools.browser.targets.create({account_id:u,session_id:n[`session-id`],...c})),{successLabel:`Updated`})}};function V(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 H={command:`get <target-id>`,describe:`Returns the debuggable target with the given ID.`,builder:V,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser targets get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.targets.get({account_id:l,session_id:n[`session-id`],target_id:n[`target-id`]})),{successLabel:`Loaded`})}};function U(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 W={command:`list`,describe:`Returns a list of all debuggable targets including tabs, pages, service workers, and other browser contexts.`,builder:U,handler:async n=>{let c={liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){a({command:`cf browser-run devtools browser targets list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Loading`,async()=>l.browserRun.devtools.browser.targets.list({account_id:u,session_id:n[`session-id`],...c})),{successLabel:`Loaded`})}},G={command:`targets`,describe:`Operations for devtools.browser.targets`,builder:e=>e.command(I).command(R).command(B).command(H).command(W).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function te(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 K={command:`version <session-id>`,describe:`Get browser version metadata.`,builder:te,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools browser version`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.browser.version({account_id:l,session_id:n[`session-id`]})),{successLabel:`Loaded`})}},q={command:`browser`,describe:`Operations for devtools.browser`,builder:e=>e.command(C).command(T).command(D).command(k).command(P).command(K).command(M).command(G).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function J(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 Y={command:`get <session-id>`,describe:`Returns a list of all debuggable targets including tabs, pages, service workers, and other browser contexts.`,builder:J,handler:async n=>{let c={liveViewUrlExpiresInMs:n[`live-view-url-expires-in-ms`]};if(n.dryRun){a({command:`cf browser-run devtools json get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Loading`,async()=>l.browserRun.devtools.json.get({account_id:u,session_id:n[`session-id`],...c})),{successLabel:`Loaded`})}},X={command:`json`,describe:`Operations for devtools.json`,builder:e=>e.command(Y).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Z(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 Q={command:`get <session-id>`,describe:`Get details for a specific browser session.`,builder:Z,handler:async n=>{if(n.dryRun){a({command:`cf browser-run devtools session get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await 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 c=await r(n),l=n.local?s:await t();n.accountId=l,i(await o(`Loading`,async()=>c.browserRun.devtools.session.get({account_id:l,session_id:n[`session-id`]})),{successLabel:`Loaded`})}};function ne(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 re={command:`list`,describe:`List active browser sessions.`,builder:ne,handler:async n=>{let c={limit:n.limit,offset:n.offset};if(n.dryRun){a({command:`cf browser-run devtools session list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/devtools/session`,pathParams:{},query:c,bodyKind:`none`});return}let l=await r(n),u=n.local?s:await t();n.accountId=u,i(await o(`Loading`,async()=>l.browserRun.devtools.session.list({account_id:u,...c})),{successLabel:`Loaded`})}},ie={command:`session`,describe:`Operations for devtools.session`,builder:e=>e.command(Q).command(re).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},ae={command:`devtools`,describe:`Operations for devtools`,builder:e=>e.command(q).command(X).command(ie).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function oe(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`interesting-only`,{type:`boolean`,description:`The interestingOnly field`}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`root`,{type:`string`,description:`The root field`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const se={command:`accessibility-tree`,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:oe,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action accessibility-tree`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/accessibilityTree`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),interestingOnly:n[`interesting-only`],rejectRequestPattern:n[`reject-request-pattern`],root:d(n.root,`root`,`text`),setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.accessibilityTree({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),interestingOnly:n[`interesting-only`],rejectRequestPattern:n[`reject-request-pattern`],root:d(n.root,`root`,`text`),setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.accessibilityTree({...m,account_id:p,...l})),{successLabel:`Created`})}};function ce(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const le={command:`content`,describe:"Fetches rendered HTML content from provided URL or HTML. Check available options like `gotoOptions` and `waitFor*` to control page load behaviour.",builder:ce,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action content`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/content`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.content({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.content({...m,account_id:p,...l})),{successLabel:`Created`})}};function ue(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`prompt`,{type:`string`,description:`The prompt field`}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`response-format-type`,{type:`string`,description:`The response_format.type field`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`response-format-type`].some(t=>e[t]!==void 0)){let t=[`response-format-type`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --response_format-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const de={command:`json`,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:ue,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action json`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/json`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),prompt:d(n.prompt,`prompt`,`text`),rejectRequestPattern:n[`reject-request-pattern`],response_format:{type:d(n[`response-format-type`],`response-format-type`,`text`)},setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.json({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),prompt:d(n.prompt,`prompt`,`text`),rejectRequestPattern:n[`reject-request-pattern`],response_format:{type:d(n[`response-format-type`],`response-format-type`,`text`)},setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.json({...m,account_id:p,...l})),{successLabel:`Created`})}};function fe(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`exclude-external-links`,{type:`boolean`,description:`The excludeExternalLinks field`,default:!1}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`visible-links-only`,{type:`boolean`,description:`The visibleLinksOnly field`,default:!1}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const pe={command:`links`,describe:`Get links from a web page.`,builder:fe,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action links`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/links`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),excludeExternalLinks:n[`exclude-external-links`],gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},visibleLinksOnly:n[`visible-links-only`],waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.links({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),excludeExternalLinks:n[`exclude-external-links`],gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},visibleLinksOnly:n[`visible-links-only`],waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.links({...m,account_id:p,...l})),{successLabel:`Created`})}};function $(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const me={command:`markdown`,describe:"Gets markdown of a webpage from provided URL or HTML. Control page loading with `gotoOptions` and `waitFor*` options.",builder:$,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action markdown`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/markdown`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.markdown({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.markdown({...m,account_id:p,...l})),{successLabel:`Created`})}};function he(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`pdf-options-display-header-footer`,{type:`boolean`,description:`Whether to show the header and footer.`,default:!1}).option(`pdf-options-footer-template`,{type:`string`,description:`HTML template for the print footer.`}).option(`pdf-options-format`,{type:`string`,description:`Paper format. Takes priority over width and height if set.`,choices:[`letter`,`legal`,`tabloid`,`ledger`,`a0`,`a1`,`a2`,`a3`,`a4`,`a5`,`a6`],default:`letter`}).option(`pdf-options-header-template`,{type:`string`,description:`HTML template for the print header.`}).option(`pdf-options-landscape`,{type:`boolean`,description:`Whether to print in landscape orientation.`,default:!1}).option(`pdf-options-omit-background`,{type:`boolean`,description:`Hides default white background and allows generating pdfs with transparency.`,default:!1}).option(`pdf-options-outline`,{type:`boolean`,description:`Generate document outline.`,default:!1}).option(`pdf-options-page-ranges`,{type:`string`,description:`Paper ranges to print, e.g. '1-5, 8, 11-13'.`}).option(`pdf-options-prefer-csspage-size`,{type:`boolean`,description:`Give CSS @page size priority over other size declarations.`,default:!1}).option(`pdf-options-print-background`,{type:`boolean`,description:`Set to true to print background graphics.`,default:!1}).option(`pdf-options-scale`,{type:`number`,description:`Scales the rendering of the web page. Amount must be between 0.1 and 2.`,default:1}).option(`pdf-options-tagged`,{type:`boolean`,description:`Generate tagged (accessible) PDF.`,default:!0}).option(`pdf-options-timeout`,{type:`number`,description:`Timeout in milliseconds.`,default:3e4}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const ge={command:`pdf`,describe:"Fetches rendered PDF from provided URL or HTML. Check available options like `gotoOptions` and `waitFor*` to control page load behaviour.",builder:he,handler:async n=>{let i={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action pdf`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/pdf`,pathParams:{},query:i,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),pdfOptions:{displayHeaderFooter:n[`pdf-options-display-header-footer`],footerTemplate:d(n[`pdf-options-footer-template`],`pdf-options-footer-template`,`text`),format:d(n[`pdf-options-format`],`pdf-options-format`,`text`),headerTemplate:d(n[`pdf-options-header-template`],`pdf-options-header-template`,`text`),landscape:n[`pdf-options-landscape`],omitBackground:n[`pdf-options-omit-background`],outline:n[`pdf-options-outline`],pageRanges:d(n[`pdf-options-page-ranges`],`pdf-options-page-ranges`,`text`),preferCSSPageSize:n[`pdf-options-prefer-csspage-size`],printBackground:n[`pdf-options-print-background`],scale:n[`pdf-options-scale`],tagged:n[`pdf-options-tagged`],timeout:n[`pdf-options-timeout`]},rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}await r(n);let f=n.local?s:await t();if(n.accountId=f,n.body){let e=c(n.body),t=new URLSearchParams(Object.entries(i).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),r=await o(`Creating`,async()=>h(`/accounts/${f}/browser-rendering/pdf${t?`?`+t:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:JSON.stringify(e),contentType:`application/json`}));m(n.text===!0?r.toString(`utf-8`):r);return}let p={};n[`action-timeout`]!==void 0&&l(p,[`actionTimeout`],n[`action-timeout`]),n[`allow-request-pattern`]!==void 0&&l(p,[`allowRequestPattern`],n[`allow-request-pattern`]),n[`authenticate-password`]!==void 0&&l(p,[`authenticate`,`password`],d(n[`authenticate-password`],`authenticate-password`,`text`)),n[`authenticate-username`]!==void 0&&l(p,[`authenticate`,`username`],d(n[`authenticate-username`],`authenticate-username`,`text`)),n[`best-attempt`]!==void 0&&l(p,[`bestAttempt`],n[`best-attempt`]),n[`emulate-media-type`]!==void 0&&l(p,[`emulateMediaType`],d(n[`emulate-media-type`],`emulate-media-type`,`text`)),n[`goto-options-referer`]!==void 0&&l(p,[`gotoOptions`,`referer`],d(n[`goto-options-referer`],`goto-options-referer`,`text`)),n[`goto-options-referrer-policy`]!==void 0&&l(p,[`gotoOptions`,`referrerPolicy`],d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`)),n[`goto-options-timeout`]!==void 0&&l(p,[`gotoOptions`,`timeout`],n[`goto-options-timeout`]),n.html!==void 0&&l(p,[`html`],d(n.html,`html`,`text`)),n[`pdf-options-display-header-footer`]!==void 0&&l(p,[`pdfOptions`,`displayHeaderFooter`],n[`pdf-options-display-header-footer`]),n[`pdf-options-footer-template`]!==void 0&&l(p,[`pdfOptions`,`footerTemplate`],d(n[`pdf-options-footer-template`],`pdf-options-footer-template`,`text`)),n[`pdf-options-format`]!==void 0&&l(p,[`pdfOptions`,`format`],d(n[`pdf-options-format`],`pdf-options-format`,`text`)),n[`pdf-options-header-template`]!==void 0&&l(p,[`pdfOptions`,`headerTemplate`],d(n[`pdf-options-header-template`],`pdf-options-header-template`,`text`)),n[`pdf-options-landscape`]!==void 0&&l(p,[`pdfOptions`,`landscape`],n[`pdf-options-landscape`]),n[`pdf-options-omit-background`]!==void 0&&l(p,[`pdfOptions`,`omitBackground`],n[`pdf-options-omit-background`]),n[`pdf-options-outline`]!==void 0&&l(p,[`pdfOptions`,`outline`],n[`pdf-options-outline`]),n[`pdf-options-page-ranges`]!==void 0&&l(p,[`pdfOptions`,`pageRanges`],d(n[`pdf-options-page-ranges`],`pdf-options-page-ranges`,`text`)),n[`pdf-options-prefer-csspage-size`]!==void 0&&l(p,[`pdfOptions`,`preferCSSPageSize`],n[`pdf-options-prefer-csspage-size`]),n[`pdf-options-print-background`]!==void 0&&l(p,[`pdfOptions`,`printBackground`],n[`pdf-options-print-background`]),n[`pdf-options-scale`]!==void 0&&l(p,[`pdfOptions`,`scale`],n[`pdf-options-scale`]),n[`pdf-options-tagged`]!==void 0&&l(p,[`pdfOptions`,`tagged`],n[`pdf-options-tagged`]),n[`pdf-options-timeout`]!==void 0&&l(p,[`pdfOptions`,`timeout`],n[`pdf-options-timeout`]),n[`reject-request-pattern`]!==void 0&&l(p,[`rejectRequestPattern`],n[`reject-request-pattern`]),n[`set-java-script-enabled`]!==void 0&&l(p,[`setJavaScriptEnabled`],n[`set-java-script-enabled`]),n.url!==void 0&&l(p,[`url`],d(n.url,`url`,`text`)),n[`user-agent`]!==void 0&&l(p,[`userAgent`],d(n[`user-agent`],`user-agent`,`text`)),n[`viewport-device-scale-factor`]!==void 0&&l(p,[`viewport`,`deviceScaleFactor`],n[`viewport-device-scale-factor`]),n[`viewport-has-touch`]!==void 0&&l(p,[`viewport`,`hasTouch`],n[`viewport-has-touch`]),n[`viewport-height`]!==void 0&&l(p,[`viewport`,`height`],n[`viewport-height`]),n[`viewport-is-landscape`]!==void 0&&l(p,[`viewport`,`isLandscape`],n[`viewport-is-landscape`]),n[`viewport-is-mobile`]!==void 0&&l(p,[`viewport`,`isMobile`],n[`viewport-is-mobile`]),n[`viewport-width`]!==void 0&&l(p,[`viewport`,`width`],n[`viewport-width`]),n[`wait-for-selector-hidden`]!==void 0&&l(p,[`waitForSelector`,`hidden`],n[`wait-for-selector-hidden`]),n[`wait-for-selector-selector`]!==void 0&&l(p,[`waitForSelector`,`selector`],d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`)),n[`wait-for-selector-timeout`]!==void 0&&l(p,[`waitForSelector`,`timeout`],n[`wait-for-selector-timeout`]),n[`wait-for-selector-visible`]!==void 0&&l(p,[`waitForSelector`,`visible`],n[`wait-for-selector-visible`]),n[`wait-for-timeout`]!==void 0&&l(p,[`waitForTimeout`],n[`wait-for-timeout`]);let g=new URLSearchParams(Object.entries(i).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),_=await o(`Creating`,async()=>h(`/accounts/${f}/browser-rendering/pdf${g?`?`+g:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:Object.keys(p).length>0?p:void 0}));m(n.text===!0?_.toString(`utf-8`):_)}};function _e(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const ve={command:`scrape`,describe:`Get meta attributes like height, width, text and others of selected elements.`,builder:_e,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action scrape`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/scrape`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.scrape({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.scrape({...m,account_id:p,...l})),{successLabel:`Created`})}};function ye(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`screenshot-options-capture-beyond-viewport`,{type:`boolean`,description:`The screenshotOptions.captureBeyondViewport field`}).option(`screenshot-options-clip-height`,{type:`number`,description:`The screenshotOptions.clip.height field`}).option(`screenshot-options-clip-scale`,{type:`number`,description:`The screenshotOptions.clip.scale field`}).option(`screenshot-options-clip-width`,{type:`number`,description:`The screenshotOptions.clip.width field`}).option(`screenshot-options-clip-x`,{type:`number`,description:`The screenshotOptions.clip.x field`}).option(`screenshot-options-clip-y`,{type:`number`,description:`The screenshotOptions.clip.y field`}).option(`screenshot-options-from-surface`,{type:`boolean`,description:`The screenshotOptions.fromSurface field`}).option(`screenshot-options-full-page`,{type:`boolean`,description:`The screenshotOptions.fullPage field`}).option(`screenshot-options-omit-background`,{type:`boolean`,description:`The screenshotOptions.omitBackground field`}).option(`screenshot-options-optimize-for-speed`,{type:`boolean`,description:`The screenshotOptions.optimizeForSpeed field`}).option(`screenshot-options-quality`,{type:`number`,description:`The screenshotOptions.quality field`}).option(`scroll-page`,{type:`boolean`,description:`The scrollPage field`}).option(`selector`,{type:`string`,description:`The selector field`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`screenshot-options-capture-beyond-viewport`,`screenshot-options-clip-height`,`screenshot-options-clip-scale`,`screenshot-options-clip-width`,`screenshot-options-clip-x`,`screenshot-options-clip-y`,`screenshot-options-from-surface`,`screenshot-options-full-page`,`screenshot-options-omit-background`,`screenshot-options-optimize-for-speed`,`screenshot-options-quality`].some(t=>e[t]!==void 0)){let t=[`screenshot-options-clip-height`,`screenshot-options-clip-width`,`screenshot-options-clip-x`,`screenshot-options-clip-y`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --screenshotOptions-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const be={command:`screenshot`,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:ye,handler:async n=>{let i={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action screenshot`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/screenshot`,pathParams:{},query:i,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],screenshotOptions:{captureBeyondViewport:n[`screenshot-options-capture-beyond-viewport`],clip:{height:n[`screenshot-options-clip-height`],scale:n[`screenshot-options-clip-scale`],width:n[`screenshot-options-clip-width`],x:n[`screenshot-options-clip-x`],y:n[`screenshot-options-clip-y`]},fromSurface:n[`screenshot-options-from-surface`],fullPage:n[`screenshot-options-full-page`],omitBackground:n[`screenshot-options-omit-background`],optimizeForSpeed:n[`screenshot-options-optimize-for-speed`],quality:n[`screenshot-options-quality`]},scrollPage:n[`scroll-page`],selector:d(n.selector,`selector`,`text`),setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}await r(n);let f=n.local?s:await t();if(n.accountId=f,n.body){let e=c(n.body),t=new URLSearchParams(Object.entries(i).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),r=await o(`Creating`,async()=>h(`/accounts/${f}/browser-rendering/screenshot${t?`?`+t:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:JSON.stringify(e),contentType:`application/json`}));m(n.text===!0?r.toString(`utf-8`):r);return}let p={};n[`action-timeout`]!==void 0&&l(p,[`actionTimeout`],n[`action-timeout`]),n[`allow-request-pattern`]!==void 0&&l(p,[`allowRequestPattern`],n[`allow-request-pattern`]),n[`authenticate-password`]!==void 0&&l(p,[`authenticate`,`password`],d(n[`authenticate-password`],`authenticate-password`,`text`)),n[`authenticate-username`]!==void 0&&l(p,[`authenticate`,`username`],d(n[`authenticate-username`],`authenticate-username`,`text`)),n[`best-attempt`]!==void 0&&l(p,[`bestAttempt`],n[`best-attempt`]),n[`emulate-media-type`]!==void 0&&l(p,[`emulateMediaType`],d(n[`emulate-media-type`],`emulate-media-type`,`text`)),n[`goto-options-referer`]!==void 0&&l(p,[`gotoOptions`,`referer`],d(n[`goto-options-referer`],`goto-options-referer`,`text`)),n[`goto-options-referrer-policy`]!==void 0&&l(p,[`gotoOptions`,`referrerPolicy`],d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`)),n[`goto-options-timeout`]!==void 0&&l(p,[`gotoOptions`,`timeout`],n[`goto-options-timeout`]),n.html!==void 0&&l(p,[`html`],d(n.html,`html`,`text`)),n[`reject-request-pattern`]!==void 0&&l(p,[`rejectRequestPattern`],n[`reject-request-pattern`]),n[`screenshot-options-capture-beyond-viewport`]!==void 0&&l(p,[`screenshotOptions`,`captureBeyondViewport`],n[`screenshot-options-capture-beyond-viewport`]),n[`screenshot-options-clip-height`]!==void 0&&l(p,[`screenshotOptions`,`clip`,`height`],n[`screenshot-options-clip-height`]),n[`screenshot-options-clip-scale`]!==void 0&&l(p,[`screenshotOptions`,`clip`,`scale`],n[`screenshot-options-clip-scale`]),n[`screenshot-options-clip-width`]!==void 0&&l(p,[`screenshotOptions`,`clip`,`width`],n[`screenshot-options-clip-width`]),n[`screenshot-options-clip-x`]!==void 0&&l(p,[`screenshotOptions`,`clip`,`x`],n[`screenshot-options-clip-x`]),n[`screenshot-options-clip-y`]!==void 0&&l(p,[`screenshotOptions`,`clip`,`y`],n[`screenshot-options-clip-y`]),n[`screenshot-options-from-surface`]!==void 0&&l(p,[`screenshotOptions`,`fromSurface`],n[`screenshot-options-from-surface`]),n[`screenshot-options-full-page`]!==void 0&&l(p,[`screenshotOptions`,`fullPage`],n[`screenshot-options-full-page`]),n[`screenshot-options-omit-background`]!==void 0&&l(p,[`screenshotOptions`,`omitBackground`],n[`screenshot-options-omit-background`]),n[`screenshot-options-optimize-for-speed`]!==void 0&&l(p,[`screenshotOptions`,`optimizeForSpeed`],n[`screenshot-options-optimize-for-speed`]),n[`screenshot-options-quality`]!==void 0&&l(p,[`screenshotOptions`,`quality`],n[`screenshot-options-quality`]),n[`scroll-page`]!==void 0&&l(p,[`scrollPage`],n[`scroll-page`]),n.selector!==void 0&&l(p,[`selector`],d(n.selector,`selector`,`text`)),n[`set-java-script-enabled`]!==void 0&&l(p,[`setJavaScriptEnabled`],n[`set-java-script-enabled`]),n.url!==void 0&&l(p,[`url`],d(n.url,`url`,`text`)),n[`user-agent`]!==void 0&&l(p,[`userAgent`],d(n[`user-agent`],`user-agent`,`text`)),n[`viewport-device-scale-factor`]!==void 0&&l(p,[`viewport`,`deviceScaleFactor`],n[`viewport-device-scale-factor`]),n[`viewport-has-touch`]!==void 0&&l(p,[`viewport`,`hasTouch`],n[`viewport-has-touch`]),n[`viewport-height`]!==void 0&&l(p,[`viewport`,`height`],n[`viewport-height`]),n[`viewport-is-landscape`]!==void 0&&l(p,[`viewport`,`isLandscape`],n[`viewport-is-landscape`]),n[`viewport-is-mobile`]!==void 0&&l(p,[`viewport`,`isMobile`],n[`viewport-is-mobile`]),n[`viewport-width`]!==void 0&&l(p,[`viewport`,`width`],n[`viewport-width`]),n[`wait-for-selector-hidden`]!==void 0&&l(p,[`waitForSelector`,`hidden`],n[`wait-for-selector-hidden`]),n[`wait-for-selector-selector`]!==void 0&&l(p,[`waitForSelector`,`selector`],d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`)),n[`wait-for-selector-timeout`]!==void 0&&l(p,[`waitForSelector`,`timeout`],n[`wait-for-selector-timeout`]),n[`wait-for-selector-visible`]!==void 0&&l(p,[`waitForSelector`,`visible`],n[`wait-for-selector-visible`]),n[`wait-for-timeout`]!==void 0&&l(p,[`waitForTimeout`],n[`wait-for-timeout`]);let g=new URLSearchParams(Object.entries(i).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),_=await o(`Creating`,async()=>h(`/accounts/${f}/browser-rendering/screenshot${g?`?`+g:``}`,{method:`POST`,localEndpoint:n.local?n.localEndpoint:void 0,body:Object.keys(p).length>0?p:void 0}));m(n.text===!0?_.toString(`utf-8`):_)}};function xe(e){return e.option(`cache-ttl`,{type:`number`,description:`Cache TTL default is 5s. Set to 0 to disable.`}).option(`action-timeout`,{type:`number`,description:`The maximum duration allowed for the browser action to complete after the page has loaded (such as taking screenshots, extracting content, or generating PDFs). If this time limit is exceeded, the action stops and returns a timeout error.`}).option(`allow-request-pattern`,{type:`string`,array:!0,description:`Only allow requests that match the provided regex patterns, eg. '/^.*\\.(css)'. Reject rules are applied first.`}).option(`authenticate-password`,{type:`string`,description:`The authenticate.password field`}).option(`authenticate-username`,{type:`string`,description:`The authenticate.username field`}).option(`best-attempt`,{type:`boolean`,description:`Attempt to proceed when 'awaited' events fail or timeout.`}).option(`emulate-media-type`,{type:`string`,description:`The emulateMediaType field`}).option(`formats`,{type:`string`,array:!0,description:`The formats field`}).option(`goto-options-referer`,{type:`string`,description:`The gotoOptions.referer field`}).option(`goto-options-referrer-policy`,{type:`string`,description:`The gotoOptions.referrerPolicy field`}).option(`goto-options-timeout`,{type:`number`,description:`The gotoOptions.timeout field`,default:3e4}).option(`html`,{type:`string`,description:"Set the content of the page, eg: `<h1>Hello World!!</h1>`. Either `html` or `url` must be set."}).option(`reject-request-pattern`,{type:`string`,array:!0,description:`Block undesired requests that match the provided regex patterns, eg. '/^.*\\.(css)'.`}).option(`screenshot-options-capture-beyond-viewport`,{type:`boolean`,description:`The screenshotOptions.captureBeyondViewport field`}).option(`screenshot-options-clip-height`,{type:`number`,description:`The screenshotOptions.clip.height field`}).option(`screenshot-options-clip-scale`,{type:`number`,description:`The screenshotOptions.clip.scale field`}).option(`screenshot-options-clip-width`,{type:`number`,description:`The screenshotOptions.clip.width field`}).option(`screenshot-options-clip-x`,{type:`number`,description:`The screenshotOptions.clip.x field`}).option(`screenshot-options-clip-y`,{type:`number`,description:`The screenshotOptions.clip.y field`}).option(`screenshot-options-from-surface`,{type:`boolean`,description:`The screenshotOptions.fromSurface field`}).option(`screenshot-options-full-page`,{type:`boolean`,description:`The screenshotOptions.fullPage field`}).option(`screenshot-options-omit-background`,{type:`boolean`,description:`The screenshotOptions.omitBackground field`}).option(`screenshot-options-optimize-for-speed`,{type:`boolean`,description:`The screenshotOptions.optimizeForSpeed field`}).option(`screenshot-options-quality`,{type:`number`,description:`The screenshotOptions.quality field`}).option(`set-java-script-enabled`,{type:`boolean`,description:`The setJavaScriptEnabled field`}).option(`url`,{type:`string`,description:"URL to navigate to, eg. `https://example.com`."}).option(`user-agent`,{type:`string`,description:`The userAgent field`,default:`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36`}).option(`viewport-device-scale-factor`,{type:`number`,description:`The viewport.deviceScaleFactor field`}).option(`viewport-has-touch`,{type:`boolean`,description:`The viewport.hasTouch field`}).option(`viewport-height`,{type:`number`,description:`The viewport.height field`}).option(`viewport-is-landscape`,{type:`boolean`,description:`The viewport.isLandscape field`}).option(`viewport-is-mobile`,{type:`boolean`,description:`The viewport.isMobile field`}).option(`viewport-width`,{type:`number`,description:`The viewport.width field`}).option(`wait-for-selector-hidden`,{type:`boolean`,description:`The waitForSelector.hidden field`}).option(`wait-for-selector-selector`,{type:`string`,description:`The waitForSelector.selector field`}).option(`wait-for-selector-timeout`,{type:`number`,description:`The waitForSelector.timeout field`}).option(`wait-for-selector-visible`,{type:`boolean`,description:`The waitForSelector.visible field`}).option(`wait-for-timeout`,{type:`number`,description:`Waits for a specified timeout before continuing.`}).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)`}).check(e=>{if([`authenticate-password`,`authenticate-username`].some(t=>e[t]!==void 0)){let t=[`authenticate-password`,`authenticate-username`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --authenticate-* flag is set`)}return!0}).check(e=>{if([`screenshot-options-capture-beyond-viewport`,`screenshot-options-clip-height`,`screenshot-options-clip-scale`,`screenshot-options-clip-width`,`screenshot-options-clip-x`,`screenshot-options-clip-y`,`screenshot-options-from-surface`,`screenshot-options-full-page`,`screenshot-options-omit-background`,`screenshot-options-optimize-for-speed`,`screenshot-options-quality`].some(t=>e[t]!==void 0)){let t=[`screenshot-options-clip-height`,`screenshot-options-clip-width`,`screenshot-options-clip-x`,`screenshot-options-clip-y`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --screenshotOptions-* flag is set`)}return!0}).check(e=>{if([`viewport-device-scale-factor`,`viewport-has-touch`,`viewport-height`,`viewport-is-landscape`,`viewport-is-mobile`,`viewport-width`].some(t=>e[t]!==void 0)){let t=[`viewport-height`,`viewport-width`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --viewport-* flag is set`)}return!0}).check(e=>{if([`wait-for-selector-hidden`,`wait-for-selector-selector`,`wait-for-selector-timeout`,`wait-for-selector-visible`].some(t=>e[t]!==void 0)){let t=[`wait-for-selector-selector`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --waitForSelector-* flag is set`)}return!0})}const Se={command:`snapshot`,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:xe,handler:async n=>{let l={cacheTTL:n[`cache-ttl`]};if(n.dryRun){a({command:`cf browser-run quick-action snapshot`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/browser-rendering/snapshot`,pathParams:{},query:l,bodyKind:`json`,body:n.body===void 0?u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),formats:n.formats,gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],screenshotOptions:{captureBeyondViewport:n[`screenshot-options-capture-beyond-viewport`],clip:{height:n[`screenshot-options-clip-height`],scale:n[`screenshot-options-clip-scale`],width:n[`screenshot-options-clip-width`],x:n[`screenshot-options-clip-x`],y:n[`screenshot-options-clip-y`]},fromSurface:n[`screenshot-options-from-surface`],fullPage:n[`screenshot-options-full-page`],omitBackground:n[`screenshot-options-omit-background`],optimizeForSpeed:n[`screenshot-options-optimize-for-speed`],quality:n[`screenshot-options-quality`]},setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]}):c(n.body)});return}let f=await r(n),p=n.local?s:await t();if(n.accountId=p,n.body){let e=c(n.body);new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.snapshot({...e,account_id:p,...l})),{successLabel:`Created`});return}let m=u({actionTimeout:n[`action-timeout`],allowRequestPattern:n[`allow-request-pattern`],authenticate:{password:d(n[`authenticate-password`],`authenticate-password`,`text`),username:d(n[`authenticate-username`],`authenticate-username`,`text`)},bestAttempt:n[`best-attempt`],emulateMediaType:d(n[`emulate-media-type`],`emulate-media-type`,`text`),formats:n.formats,gotoOptions:{referer:d(n[`goto-options-referer`],`goto-options-referer`,`text`),referrerPolicy:d(n[`goto-options-referrer-policy`],`goto-options-referrer-policy`,`text`),timeout:n[`goto-options-timeout`]},html:d(n.html,`html`,`text`),rejectRequestPattern:n[`reject-request-pattern`],screenshotOptions:{captureBeyondViewport:n[`screenshot-options-capture-beyond-viewport`],clip:{height:n[`screenshot-options-clip-height`],scale:n[`screenshot-options-clip-scale`],width:n[`screenshot-options-clip-width`],x:n[`screenshot-options-clip-x`],y:n[`screenshot-options-clip-y`]},fromSurface:n[`screenshot-options-from-surface`],fullPage:n[`screenshot-options-full-page`],omitBackground:n[`screenshot-options-omit-background`],optimizeForSpeed:n[`screenshot-options-optimize-for-speed`],quality:n[`screenshot-options-quality`]},setJavaScriptEnabled:n[`set-java-script-enabled`],url:d(n.url,`url`,`text`),userAgent:d(n[`user-agent`],`user-agent`,`text`),viewport:{deviceScaleFactor:n[`viewport-device-scale-factor`],hasTouch:n[`viewport-has-touch`],height:n[`viewport-height`],isLandscape:n[`viewport-is-landscape`],isMobile:n[`viewport-is-mobile`],width:n[`viewport-width`]},waitForSelector:{hidden:n[`wait-for-selector-hidden`],selector:d(n[`wait-for-selector-selector`],`wait-for-selector-selector`,`text`),timeout:n[`wait-for-selector-timeout`],visible:n[`wait-for-selector-visible`]},waitForTimeout:n[`wait-for-timeout`]});new URLSearchParams(Object.entries(l).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])).toString(),i(await o(`Creating`,async()=>f.browserRun.quickAction.snapshot({...m,account_id:p,...l})),{successLabel:`Created`})}},Ce={command:`quick-action`,describe:`Operations for quick-action`,builder:e=>e.command(se).command(le).command(de).command(pe).command(me).command(ge).command(ve).command(be).command(Se).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},we={command:`browser-run`,describe:`browser-run`,builder:e=>e.command(x).command(ae).command(Ce).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{we as default};
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ import{r as e}from"./chunk-DH-VkVmc.mjs";import{t}from"./src-Bn0FyQIp.mjs";import{U as n}from"./chunk-2SIGYDH3-_JSHaszR.mjs";import{a as r,o as i}from"./theme-DbNbIY4d.mjs";import"./ui-CTo5OG9r.mjs";import{_ as a,a as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,o as h,p as g,r as _,s as v,t as ee,u as y,v as b}from"./dist-C-6VkMPZ.mjs";import{n as x}from"./dist-B7hsuvbF.mjs";import{n as te,t as ne}from"./spawn-j3dn7A69.mjs";import*as S from"node:fs";import C,{existsSync as w,readFileSync as re,statSync as ie}from"node:fs";import*as T from"node:path";import E,{dirname as ae,isAbsolute as oe,join as se,resolve as ce}from"node:path";import"node:url";import{AsyncLocalStorage as le}from"node:async_hooks";import*as ue from"node:fs/promises";var de=Object.getOwnPropertyNames,fe=(e,t)=>function(){return t||(0,e[de(e)[0]])((t={exports:{}}).exports,t),t.exports};const pe=g({htmlHandling:_([`auto-trailing-slash`,`drop-trailing-slash`,`force-trailing-slash`,`none`]).optional(),notFoundHandling:_([`single-page-application`,`404-page`,`none`]).optional(),runWorkerFirst:u([f(m()),o()]).optional()}),me=h(`type`,[g({type:s(`agent-memory`),namespace:m(),remote:o().optional()}),g({type:s(`ai`),remote:o().optional()}),g({type:s(`ai-search`),name:m(),remote:o().optional()}),g({type:s(`ai-search-namespace`),namespace:m(),remote:o().optional()}),g({type:s(`analytics-engine-dataset`),name:m().optional()}),g({type:s(`artifacts`),namespace:m(),remote:o().optional()}),g({type:s(`assets`)}),g({type:s(`browser`),remote:o().optional()}),g({type:s(`d1`),name:m().optional(),id:m().optional(),remote:o().optional()}),g({type:s(`dispatch-namespace`),namespace:m().optional(),outbound:g({workerName:m(),parameters:f(m()).optional()}).optional(),remote:o().optional()}),g({type:s(`durable-object`),workerName:m(),exportName:m()}),g({type:s(`flagship`),id:m().optional(),remote:o().optional()}),g({type:s(`hyperdrive`),id:m(),localConnectionString:m().optional()}),g({type:s(`images`),remote:o().optional()}),g({type:s(`json`),value:v()}),g({type:s(`kv`),id:m().optional(),remote:o().optional()}),g({type:s(`logfwdr`),destination:m()}),g({type:s(`media`),remote:o().optional()}),g({type:s(`mtls-certificate`),id:m(),remote:o().optional()}),g({type:s(`pipeline`),name:m(),remote:o().optional()}),g({type:s(`queue`),name:m().optional(),deliveryDelay:c().optional(),remote:o().optional()}),g({type:s(`rate-limit`),namespace:m(),simple:g({limit:c(),period:u([s(10),s(60)])})}),g({type:s(`r2`),name:m().optional(),jurisdiction:m().optional(),remote:o().optional()}),g({type:s(`secret`)}),g({type:s(`secrets-store-secret`),storeId:m(),secretName:m()}),g({type:s(`send-email`),destinationAddress:m().optional(),allowedDestinationAddresses:f(m()).optional(),allowedSenderAddresses:f(m()).optional(),remote:o().optional()}),g({type:s(`stream`),remote:o().optional()}),g({type:s(`text`),value:m()}),g({type:s(`vectorize`),name:m(),remote:o().optional()}),g({type:s(`version-metadata`)}),g({type:s(`vpc-service`),id:m(),remote:o().optional()}),g({type:s(`vpc-network`),tunnelId:m().optional(),networkId:m().optional(),remote:o().optional()}).superRefine((e,t)=>{let n=e.tunnelId!==void 0;n===(e.networkId!==void 0)&&t.addIssue({code:`custom`,message:n?`"vpc-network" bindings must specify exactly one of "tunnelId" or "networkId", not both`:`"vpc-network" bindings must specify either "tunnelId" or "networkId"`})}),g({type:s(`web-search`),remote:o().optional()}),g({type:s(`worker`),workerName:m(),exportName:m().optional(),props:l(m(),a()).optional(),remote:o().optional()}),g({type:s(`worker-loader`)})]),he=p({type:d([`unsafe:`,m().min(1)]),dev:g({plugin:g({package:m(),name:m()}),options:l(m(),a()).optional()}).optional()}),ge=a().transform((e,t)=>{let n=(typeof e==`object`&&e&&`type`in e&&typeof e.type==`string`&&e.type.startsWith(`unsafe:`)?he:me).safeParse(e);return n.success?n.data:(t.issues.push(...n.error.issues),b)}),_e=g({enabled:o(),crossVersionCache:o().optional()}),ve=new Set([`ai`,`assets`,`browser`,`images`,`media`,`stream`,`version-metadata`,`web-search`]),ye=new Intl.ListFormat(`en-US`),be=l(m(),ge).superRefine((e,t)=>{let n=new Set,r=new Set;for(let t of Object.values(e)){let e=t.type;ve.has(e)&&(n.has(e)&&r.add(e),n.add(e))}r.size>0&&t.addIssue({code:`custom`,message:`${ye.format([...r].sort())} bindings can only be defined once`})}).optional(),xe=u([g({type:s(`durable-object`),state:s(`created`).optional(),storage:_([`sqlite`,`legacy-kv`])}),g({type:s(`durable-object`),state:s(`deleted`)}),g({type:s(`durable-object`),state:s(`renamed`),renamedTo:m()}),g({type:s(`durable-object`),state:s(`transferred`),transferredTo:m()}),g({type:s(`durable-object`),state:s(`expecting-transfer`),storage:_([`sqlite`,`legacy-kv`]),transferFrom:m()}),g({type:s(`worker`),cache:g({enabled:o()}).optional()})]),Se=g({cpuMs:c().optional(),subrequests:c().optional()}),Ce=g({enabled:o().optional(),headSamplingRate:c().optional(),logs:g({enabled:o().optional(),headSamplingRate:c().optional(),invocationLogs:o().optional(),persist:o().optional(),destinations:f(m()).optional()}).optional(),traces:g({enabled:o().optional(),headSamplingRate:c().optional(),persist:o().optional(),destinations:f(m()).optional()}).optional()}),we=u([g({mode:_([`off`,`smart`]),hint:m().optional()}),g({mode:s(`targeted`).optional(),region:m()}),g({mode:s(`targeted`).optional(),host:m()}),g({mode:s(`targeted`).optional(),hostname:m()})]),Te=g({workerName:m(),streaming:o().optional()}),Ee=h(`type`,[g({type:s(`email`),addresses:f(m())}),g({type:s(`fetch`),pattern:m(),zone:m().optional()}),g({type:s(`queue`),name:m(),deadLetterQueue:m().optional(),maxBatchSize:c().optional(),maxBatchTimeout:c().optional(),maxConcurrency:c().nullable().optional(),maxRetries:c().optional(),retryDelay:c().optional(),visibilityTimeoutMs:c().optional()}),g({type:s(`scheduled`),schedule:m()})]),De=g({metadata:l(m(),a()).optional(),capnp:u([g({basePath:m(),sourceSchemas:f(m()),compiledSchema:y().optional()}),g({basePath:y().optional(),sourceSchemas:y().optional(),compiledSchema:m()})]).optional()}),Oe=g({type:s(`worker`),name:m(),compatibilityDate:m(),compatibilityFlags:f(m()).optional(),assets:pe.optional(),domains:f(m()).optional(),triggers:f(Ee).optional(),tailConsumers:f(Te).optional(),cache:_e.optional(),placement:we.optional(),limits:Se.optional(),logpush:o().optional(),observability:Ce.optional(),workersDev:o().optional(),previewUrls:o().optional(),firstPartyWorker:o().optional(),unsafe:De.optional(),env:be,exports:l(m(),xe).optional()}),ke=Oe.extend({entrypoint:u([m(),g({default:m()})]).transform(e=>typeof e==`string`?e:e.default).optional()}),Ae=g({type:s(`settings`),accountId:m().optional(),complianceRegion:_([`public`,`fedramp-high`]).optional()}),je=h(`type`,[ke,Ae]),Me=`settings`;l(m(),je).check(e=>{for(let[t,n]of Object.entries(e.value)){let r=t===Me,i=n.type===`settings`;i&&!r?e.issues.push({code:`custom`,input:n,path:[t],message:`A \`settings\` config is only allowed on the \`${Me}\` export; found one on the \`${t}\` export.`}):r&&!i&&e.issues.push({code:`custom`,input:n,path:[t],message:`The \`${Me}\` export is reserved for a \`settings\` config; found a \`${n.type}\` config.`})}});const Ne=_([`esm`,`cjs`,`python`,`python-requirement`,`wasm`,`text`,`data`,`json`,`sourcemap`]),Pe=g({mainModule:m(),modules:l(m(),g({type:Ne}))}),Fe=Oe.extend({manifest:Pe.optional()});fe({"../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/dist/index.js":(e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dedent=void 0;function t(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
3
+ [ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
4
+ `)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
5
+ `)&&(o=String(e).split(`
6
+ `).map(function(e,t){return t===0?e:``+i+e}).join(`
7
+ `)),a+=o+n[t+1]}),a}e.dedent=t})})();var Ie=Object.defineProperty,D=(e,t)=>Ie(e,`name`,{value:t,configurable:!0});function Le(e){let t={"durable-object":{},worker:{}};if(e===void 0)return t;for(let[n,r]of Object.entries(e))t[r.type][n]=r;return t}D(Le,`partitionExports`);var O=class extends Error{static{D(this,`UserError`)}telemetryMessage;constructor(e,t){super(e,t),Object.setPrototypeOf(this,new.target.prototype),this.telemetryMessage=typeof t?.telemetryMessage==`string`?t.telemetryMessage:t?.telemetryMessage?e:void 0}};(class extends O{static{D(this,`DeprecationError`)}constructor(e,t){super(`Deprecation:
8
+ ${e}`,t)}});var Re=class extends O{static{D(this,`FatalError`)}code;constructor(e,t){super(e,t),this.code=t.code}};(class extends O{static{D(this,`CommandLineArgsError`)}});var ze=class extends Re{static{D(this,`JsonFriendlyFatalError`)}};(class extends Error{static{D(this,`MissingConfigError`)}telemetryMessage;constructor(e){super(`Missing config value for ${e}`),this.telemetryMessage=`Missing config value for ${e}`}});function Be(e,t,n){return t?new ze(JSON.stringify(e),n):new Re(`${e}`,n)}D(Be,`createFatalError`);function k(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t||!n;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}D(f,`scanHexDigits`);function p(e){r=e,i=``,a=0,o=16,d=0}D(p,`setPosition`);function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&M(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46)if(r++,r<e.length&&M(e.charCodeAt(r)))for(r++;r<e.length&&M(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r);let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101))if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&M(e.charCodeAt(r))){for(r++;r<e.length&&M(e.charCodeAt(r));)r++;n=r}else d=3;return e.substring(t,n)}D(m,`scanNumber`);function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
9
+ `;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4,!0);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31)if(j(a)){t+=e.substring(i,r),d=2;break}else d=6;r++}return t}D(h,`scanString`);function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(A(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(A(t));return o=15}if(j(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=`
10
+ `),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r<n&&!j(e.charCodeAt(r));)r++;return i=e.substring(c,r),o=12}if(e.charCodeAt(r+1)===42){r+=2;let t=n-1,a=!1;for(;r<t;){let t=e.charCodeAt(r);if(t===42&&e.charCodeAt(r+1)===47){r+=2,a=!0;break}r++,j(t)&&(t===13&&e.charCodeAt(r)===10&&r++,s++,l=r)}return a||(r++,d=1),i=e.substring(c,r),o=13}return i+=String.fromCharCode(t),r++,o=16;case 45:if(i+=String.fromCharCode(t),r++,r===n||!M(e.charCodeAt(r)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=m(),o=11;default:for(;r<n&&_(t);)r++,t=e.charCodeAt(r);if(a!==r){switch(i=e.substring(a,r),i){case`true`:return o=8;case`false`:return o=9;case`null`:return o=7}return o=16}return i+=String.fromCharCode(t),r++,o=16}}D(g,`scanNext`);function _(e){if(A(e)||j(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}D(_,`isUnknownContentCharacter`);function v(){let e;do e=g();while(e>=12&&e<=15);return e}return D(v,`scanNextNonTrivia`),{setPosition:p,getPosition:D(()=>r,`getPosition`),scan:t?v:g,getToken:D(()=>o,`getToken`),getTokenValue:D(()=>i,`getTokenValue`),getTokenOffset:D(()=>a,`getTokenOffset`),getTokenLength:D(()=>r-a,`getTokenLength`),getTokenStartLine:D(()=>c,`getTokenStartLine`),getTokenStartCharacter:D(()=>a-u,`getTokenStartCharacter`),getTokenError:D(()=>d,`getTokenError`)}}D(k,`createScanner`);function A(e){return e===32||e===9}D(A,`isWhiteSpace`);function j(e){return e===10||e===13}D(j,`isLineBreak`);function M(e){return e>=48&&e<=57}D(M,`isDigit`);var Ve;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(Ve||={});function He(e,t,n){let r,i,a,o,s;if(t){for(o=t.offset,s=o+t.length,a=o;a>0&&!P(e,a-1);)a--;let c=s;for(;c<e.length&&!P(e,c);)c++;i=e.substring(a,c),r=Ue(i,n)}else i=e,r=0,a=0,o=0,s=e.length;let c=We(n,e),l=0,u=0,d;d=n.insertSpaces?N(` `,n.tabSize||4):` `;let f=k(i,!1),p=!1;function m(){return l>1?N(c,l)+N(d,r+u):c+N(d,r+u)}D(m,`newLinesAndIndent`);function h(){let e=f.scan();for(l=0;e===15||e===14;)e===14&&n.keepLines?l+=1:e===14&&(l=1),e=f.scan();return p=e===16||f.getTokenError()!==0,e}D(h,`scanNext`);let g=[];function _(n,r,i){!p&&(!t||r<s&&i>o)&&e.substring(r,i)!==n&&g.push({offset:r,length:i-r,content:n})}D(_,`addEdit`);let v=h();if(n.keepLines&&l>0&&_(N(c,l),0,0),v!==17){let e=f.getTokenOffset()+a;_(N(d,r),a,e)}for(;v!==17;){let e=f.getTokenOffset()+f.getTokenLength()+a,t=h(),r=``,i=!1;for(;l===0&&(t===12||t===13);){let n=f.getTokenOffset()+a;_(` `,e,n),e=f.getTokenOffset()+f.getTokenLength()+a,i=t===12,r=i?m():``,t=h()}if(t===2)v!==1&&u--,n.keepLines&&l>0||!n.keepLines&&v!==1?r=m():n.keepLines&&(r=` `);else if(t===4)v!==3&&u--,n.keepLines&&l>0||!n.keepLines&&v!==3?r=m():n.keepLines&&(r=` `);else{switch(v){case 3:case 1:u++,r=n.keepLines&&l>0||!n.keepLines?m():` `;break;case 5:r=n.keepLines&&l>0||!n.keepLines?m():` `;break;case 12:r=m();break;case 13:l>0?r=m():i||(r=` `);break;case 6:n.keepLines&&l>0?r=m():i||(r=` `);break;case 10:n.keepLines&&l>0?r=m():t===6&&!i&&(r=``);break;case 7:case 8:case 9:case 11:case 2:case 4:n.keepLines&&l>0?r=m():(t===12||t===13)&&!i?r=` `:t!==5&&t!==17&&(p=!0);break;case 16:p=!0;break}l>0&&(t===12||t===13)&&(r=m())}t===17&&(r=n.keepLines&&l>0?m():n.insertFinalNewline?c:``);let o=f.getTokenOffset()+a;_(r,e,o),v=t}return g}D(He,`format`);function N(e,t){let n=``;for(let r=0;r<t;r++)n+=e;return n}D(N,`repeat`);function Ue(e,t){let n=0,r=0,i=t.tabSize||4;for(;n<e.length;){let t=e.charAt(n);if(t===` `)r++;else if(t===` `)r+=i;else break;n++}return Math.floor(r/i)}D(Ue,`computeIndentLevel`);function We(e,t){for(let e=0;e<t.length;e++){let n=t.charAt(e);if(n===`\r`)return e+1<t.length&&t.charAt(e+1)===`
11
+ `?`\r
12
+ `:`\r`;if(n===`
13
+ `)return`
14
+ `}return e&&e.eol||`
15
+ `}D(We,`getEOL`);function P(e,t){return`\r
16
+ `.indexOf(e.charAt(t))!==-1}D(P,`isEOL`);var F;(function(e){e.DEFAULT={allowTrailingComma:!1}})(F||={});function Ge(e,t=[],n=F.DEFAULT){let r=null,i=[],a=[];function o(e){Array.isArray(i)?i.push(e):r!==null&&(i[r]=e)}return D(o,`onValue`),Je(e,{onObjectBegin:D(()=>{let e={};o(e),a.push(i),i=e,r=null},`onObjectBegin`),onObjectProperty:D(e=>{r=e},`onObjectProperty`),onObjectEnd:D(()=>{i=a.pop()},`onObjectEnd`),onArrayBegin:D(()=>{let e=[];o(e),a.push(i),i=e,r=null},`onArrayBegin`),onArrayEnd:D(()=>{i=a.pop()},`onArrayEnd`),onLiteralValue:o,onError:D((e,n,r)=>{t.push({error:e,offset:n,length:r})},`onError`)},n),i[0]}D(Ge,`parse`);function Ke(e,t=[],n=F.DEFAULT){let r={type:`array`,offset:-1,length:-1,children:[],parent:void 0};function i(e){r.type===`property`&&(r.length=e-r.offset,r=r.parent)}D(i,`ensurePropertyComplete`);function a(e){return r.children.push(e),e}D(a,`onValue`),Je(e,{onObjectBegin:D(e=>{r=a({type:`object`,offset:e,length:-1,parent:r,children:[]})},`onObjectBegin`),onObjectProperty:D((e,t,n)=>{r=a({type:`property`,offset:t,length:-1,parent:r,children:[]}),r.children.push({type:`string`,value:e,offset:t,length:n,parent:r})},`onObjectProperty`),onObjectEnd:D((e,t)=>{i(e+t),r.length=e+t-r.offset,r=r.parent,i(e+t)},`onObjectEnd`),onArrayBegin:D((e,t)=>{r=a({type:`array`,offset:e,length:-1,parent:r,children:[]})},`onArrayBegin`),onArrayEnd:D((e,t)=>{r.length=e+t-r.offset,r=r.parent,i(e+t)},`onArrayEnd`),onLiteralValue:D((e,t,n)=>{a({type:Ye(e),offset:t,length:n,parent:r,value:e}),i(t+n)},`onLiteralValue`),onSeparator:D((e,t,n)=>{r.type===`property`&&(e===`:`?r.colonOffset=t:e===`,`&&i(t))},`onSeparator`),onError:D((e,n,r)=>{t.push({error:e,offset:n,length:r})},`onError`)},n);let o=r.children[0];return o&&delete o.parent,o}D(Ke,`parseTree`);function qe(e,t){if(!e)return;let n=e;for(let e of t)if(typeof e==`string`){if(n.type!==`object`||!Array.isArray(n.children))return;let t=!1;for(let r of n.children)if(Array.isArray(r.children)&&r.children[0].value===e&&r.children.length===2){n=r.children[1],t=!0;break}if(!t)return}else{let t=e;if(n.type!==`array`||t<0||!Array.isArray(n.children)||t>=n.children.length)return;n=n.children[t]}return n}D(qe,`findNodeAtLocation`);function Je(e,t,n=F.DEFAULT){let r=k(e,!1),i=[];function a(e){return e?()=>e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}D(a,`toNoArgVisit`);function o(e){return e?()=>e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice()):()=>!0}D(o,`toNoArgVisitWithPath`);function s(e){return e?t=>e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}D(s,`toOneArgVisit`);function c(e){return e?t=>e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice()):()=>!0}D(c,`toOneArgVisitWithPath`);let l=o(t.onObjectBegin),u=c(t.onObjectProperty),d=a(t.onObjectEnd),f=o(t.onArrayBegin),p=a(t.onArrayEnd),m=c(t.onLiteralValue),h=s(t.onSeparator),g=a(t.onComment),_=s(t.onError),v=n&&n.disallowComments,ee=n&&n.allowTrailingComma;function y(){for(;;){let e=r.scan();switch(r.getTokenError()){case 4:b(14);break;case 5:b(15);break;case 3:b(13);break;case 1:v||b(11);break;case 2:b(12);break;case 6:b(16);break}switch(e){case 12:case 13:v?b(10):g();break;case 16:b(1);break;case 15:case 14:break;default:return e}}}D(y,`scanNext`);function b(e,t=[],n=[]){if(_(e),t.length+n.length>0){let e=r.getToken();for(;e!==17;){if(t.indexOf(e)!==-1){y();break}else if(n.indexOf(e)!==-1)break;e=y()}}}D(b,`handleError`);function x(e){let t=r.getTokenValue();return e?m(t):(u(t),i.push(t)),y(),!0}D(x,`parseString`);function te(){switch(r.getToken()){case 11:let e=r.getTokenValue(),t=Number(e);isNaN(t)&&(b(2),t=0),m(t);break;case 7:m(null);break;case 8:m(!0);break;case 9:m(!1);break;default:return!1}return y(),!0}D(te,`parseLiteral`);function ne(){return r.getToken()===10?(x(!1),r.getToken()===6?(h(`:`),y(),w()||b(4,[],[2,5])):b(5,[],[2,5]),i.pop(),!0):(b(3,[],[2,5]),!1)}D(ne,`parseProperty`);function S(){l(),y();let e=!1;for(;r.getToken()!==2&&r.getToken()!==17;){if(r.getToken()===5){if(e||b(4,[],[]),h(`,`),y(),r.getToken()===2&&ee)break}else e&&b(6,[],[]);ne()||b(4,[],[2,5]),e=!0}return d(),r.getToken()===2?y():b(7,[2],[]),!0}D(S,`parseObject`);function C(){f(),y();let e=!0,t=!1;for(;r.getToken()!==4&&r.getToken()!==17;){if(r.getToken()===5){if(t||b(4,[],[]),h(`,`),y(),r.getToken()===4&&ee)break}else t&&b(6,[],[]);e?(i.push(0),e=!1):i[i.length-1]++,w()||b(4,[],[4,5]),t=!0}return p(),e||i.pop(),r.getToken()===4?y():b(8,[4],[]),!0}D(C,`parseArray`);function w(){switch(r.getToken()){case 3:return C();case 1:return S();case 10:return x(!0);default:return te()}}return D(w,`parseValue`),y(),r.getToken()===17?n.allowEmptyContent?!0:(b(4,[],[]),!1):w()?(r.getToken()!==17&&b(9,[],[]),!0):(b(4,[],[]),!1)}D(Je,`visit`);function Ye(e){switch(typeof e){case`boolean`:return`boolean`;case`number`:return`number`;case`string`:return`string`;case`object`:return e?Array.isArray(e)?`array`:`object`:`null`;default:return`null`}}D(Ye,`getNodeType`);function Xe(e,t,n,r){let i=t.slice(),a=Ke(e,[]),o,s;for(;i.length>0&&(s=i.pop(),o=qe(a,i),o===void 0&&n!==void 0);)n=typeof s==`string`?{[s]:n}:[n];if(!o){if(n===void 0)throw Error(`Can not delete in empty document`);return I(e,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(n)},r)}else if(o.type===`object`&&typeof s==`string`&&Array.isArray(o.children)){let t=qe(o,[s]);if(t!==void 0)if(n===void 0){if(!t.parent)throw Error(`Malformed AST`);let n=o.children.indexOf(t.parent),i,a=t.parent.offset+t.parent.length;if(n>0){let e=o.children[n-1];i=e.offset+e.length}else i=o.offset+1,o.children.length>1&&(a=o.children[1].offset);return I(e,{offset:i,length:a-i,content:``},r)}else return I(e,{offset:t.offset,length:t.length,content:JSON.stringify(n)},r);else{if(n===void 0)return[];let t=`${JSON.stringify(s)}: ${JSON.stringify(n)}`,i=r.getInsertionIndex?r.getInsertionIndex(o.children.map(e=>e.children[0].value)):o.children.length,a;if(i>0){let e=o.children[i-1];a={offset:e.offset+e.length,length:0,content:`,`+t}}else a=o.children.length===0?{offset:o.offset+1,length:0,content:t}:{offset:o.offset+1,length:0,content:t+`,`};return I(e,a,r)}}else if(o.type===`array`&&typeof s==`number`&&Array.isArray(o.children)){let t=s;if(t===-1){let t=`${JSON.stringify(n)}`,i;if(o.children.length===0)i={offset:o.offset+1,length:0,content:t};else{let e=o.children[o.children.length-1];i={offset:e.offset+e.length,length:0,content:`,`+t}}return I(e,i,r)}else if(n===void 0&&o.children.length>=0){let t=s,n=o.children[t],i;if(o.children.length===1)i={offset:o.offset+1,length:o.length-2,content:``};else if(o.children.length-1===t){let e=o.children[t-1],n=e.offset+e.length;i={offset:n,length:o.offset+o.length-2-n,content:``}}else i={offset:n.offset,length:o.children[t+1].offset-n.offset,content:``};return I(e,i,r)}else if(n!==void 0){let t,i=`${JSON.stringify(n)}`;if(!r.isArrayInsertion&&o.children.length>s){let e=o.children[s];t={offset:e.offset,length:e.length,content:i}}else if(o.children.length===0||s===0)t={offset:o.offset+1,length:0,content:o.children.length===0?i:i+`,`};else{let e=s>o.children.length?o.children.length:s,n=o.children[e-1];t={offset:n.offset+n.length,length:0,content:`,`+i}}return I(e,t,r)}else throw Error(`Can not ${n===void 0?`remove`:r.isArrayInsertion?`insert`:`modify`} Array index ${t} as length is not sufficient`)}else throw Error(`Can not add ${typeof s==`number`?`property`:`index`} to parent of type ${o.type}`)}D(Xe,`setProperty`);function I(e,t,n){if(!n.formattingOptions)return[t];let r=L(e,t),i=t.offset,a=t.offset+t.content.length;if(t.length===0||t.content.length===0){for(;i>0&&!P(r,i-1);)i--;for(;a<r.length&&!P(r,a);)a++}let o=He(r,{offset:i,length:a-i},{...n.formattingOptions,keepLines:!1});for(let e=o.length-1;e>=0;e--){let t=o[e];r=L(r,t),i=Math.min(i,t.offset),a=Math.max(a,t.offset+t.length),a+=t.content.length-t.length}let s=e.length-(r.length-a)-i;return[{offset:i,length:s,content:r.substring(i,a)}]}D(I,`withFormatting`);function L(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}D(L,`applyEdit`);var Ze;(function(e){e[e.None=0]=`None`,e[e.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=4]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=6]=`InvalidCharacter`})(Ze||={});var Qe;(function(e){e[e.OpenBraceToken=1]=`OpenBraceToken`,e[e.CloseBraceToken=2]=`CloseBraceToken`,e[e.OpenBracketToken=3]=`OpenBracketToken`,e[e.CloseBracketToken=4]=`CloseBracketToken`,e[e.CommaToken=5]=`CommaToken`,e[e.ColonToken=6]=`ColonToken`,e[e.NullKeyword=7]=`NullKeyword`,e[e.TrueKeyword=8]=`TrueKeyword`,e[e.FalseKeyword=9]=`FalseKeyword`,e[e.StringLiteral=10]=`StringLiteral`,e[e.NumericLiteral=11]=`NumericLiteral`,e[e.LineCommentTrivia=12]=`LineCommentTrivia`,e[e.BlockCommentTrivia=13]=`BlockCommentTrivia`,e[e.LineBreakTrivia=14]=`LineBreakTrivia`,e[e.Trivia=15]=`Trivia`,e[e.Unknown=16]=`Unknown`,e[e.EOF=17]=`EOF`})(Qe||={});var $e=Ge,et;(function(e){e[e.InvalidSymbol=1]=`InvalidSymbol`,e[e.InvalidNumberFormat=2]=`InvalidNumberFormat`,e[e.PropertyNameExpected=3]=`PropertyNameExpected`,e[e.ValueExpected=4]=`ValueExpected`,e[e.ColonExpected=5]=`ColonExpected`,e[e.CommaExpected=6]=`CommaExpected`,e[e.CloseBraceExpected=7]=`CloseBraceExpected`,e[e.CloseBracketExpected=8]=`CloseBracketExpected`,e[e.EndOfFileExpected=9]=`EndOfFileExpected`,e[e.InvalidCommentToken=10]=`InvalidCommentToken`,e[e.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=14]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=16]=`InvalidCharacter`})(et||={});function tt(e){switch(e){case 1:return`InvalidSymbol`;case 2:return`InvalidNumberFormat`;case 3:return`PropertyNameExpected`;case 4:return`ValueExpected`;case 5:return`ColonExpected`;case 6:return`CommaExpected`;case 7:return`CloseBraceExpected`;case 8:return`CloseBracketExpected`;case 9:return`EndOfFileExpected`;case 10:return`InvalidCommentToken`;case 11:return`UnexpectedEndOfComment`;case 12:return`UnexpectedEndOfString`;case 13:return`UnexpectedEndOfNumber`;case 14:return`InvalidUnicode`;case 15:return`InvalidEscapeCharacter`;case 16:return`InvalidCharacter`}return`<unknown ParseErrorCode>`}D(tt,`printParseErrorCode`);function nt(e,t,n){return He(e,t,n)}D(nt,`format`);function rt(e,t,n,r){return Xe(e,t,n,r)}D(rt,`modify`);function it(e,t){let n=t.slice(0).sort((e,t)=>{let n=e.offset-t.offset;return n===0?e.length-t.length:n}),r=e.length;for(let t=n.length-1;t>=0;t--){let i=n[t];if(i.offset+i.length<=r)e=L(e,i);else throw Error(`Overlapping edit`);r=i.offset}return e}D(it,`applyEdits`);function at(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}D(at,`getLineColFromPtr`);function ot(e,t,n){let r=e.split(/\r\n|\n|\r/g),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
17
+ `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
18
+ `))}return i}D(ot,`makeCodeBlock`);var R=class extends Error{static{D(this,`TomlError`)}line;column;codeblock;constructor(e,t){let[n,r]=at(t.toml,t.ptr),i=ot(t.toml,n,r);super(`Invalid TOML document: ${e}
19
+
20
+ ${i}`,t),this.line=n,this.column=r,this.codeblock=i}};function st(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}D(st,`isEscaped`);function z(e,t=0,n=e.length){let r=e.indexOf(`
21
+ `,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}D(z,`indexOfNewline`);function B(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
22
+ `)return n;if(r===`\r`&&e[n+1]===`
23
+ `)return n+1;if(r<` `&&r!==` `||r===``)throw new R(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}D(B,`skipComment`);function V(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
24
+ `||i===`\r`&&e[t+1]===`
25
+ `);)t++;return r||i!==`#`?t:V(e,B(e,t),n)}D(V,`skipVoid`);function ct(e,t,n,r,i=!1){if(!r)return t=z(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=z(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
26
+ `||t===`\r`&&e[a+1]===`
27
+ `))return a}throw new R(`cannot find end of structure`,{toml:e,ptr:t})}D(ct,`skipUntil`);function H(e,t){let n=e[t],r=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=r.length-1;do t=e.indexOf(r,++t);while(t>-1&&n!==`'`&&st(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}D(H,`getStringEnd`);var lt=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i,ut=class e extends Date{static{D(this,`TomlDate`)}#e=!1;#t=!1;#n=null;constructor(e){let t=!0,n=!0,r=`Z`;if(typeof e==`string`){let i=e.match(lt);i?(i[1]||(t=!1,e=`0000-01-01T${e}`),n=!!i[2],n&&e[10]===` `&&(e=e.replace(` `,`T`)),i[2]&&+i[2]>23?e=``:(r=i[3]||null,e=e.toUpperCase(),!r&&n&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=t,this.#t=n,this.#n=r)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}},dt=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,ft=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,pt=/^[+-]?0[0-9_]/,mt=/^[0-9a-f]{4,8}$/i,ht={b:`\b`,t:` `,n:`
28
+ `,f:`\f`,r:`\r`,'"':`"`,"\\":`\\`};function U(e,t=0,n=e.length){let r=e[t]===`'`,i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]===`\r`&&t++,e[t]===`
29
+ `&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
30
+ `||n===`\r`&&e[t]===`
31
+ `){if(!i)throw new R(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new R(`control characters are not allowed in strings`,{toml:e,ptr:t-1});if(o){if(o=!1,n===`u`||n===`U`){let r=e.slice(t,t+=n===`u`?4:8);if(!mt.test(r))throw new R(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new R(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
32
+ `||n===` `||n===` `||n===`\r`)){if(t=V(e,t-1,!0),e[t]!==`
33
+ `&&e[t]!==`\r`)throw new R(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=V(e,t)}else if(n in ht)s+=ht[n];else throw new R(`unrecognized escape sequence`,{toml:e,ptr:a});c=t}else !r&&n===`\\`&&(a=t-1,o=!0,s+=e.slice(c,a))}return s+e.slice(c,n-1)}D(U,`parseString`);function gt(e,t,n,r){if(e===`true`)return!0;if(e===`false`)return!1;if(e===`-inf`)return-1/0;if(e===`inf`||e===`+inf`)return 1/0;if(e===`nan`||e===`+nan`||e===`-nan`)return NaN;if(e===`-0`)return r?0n:0;let i=dt.test(e);if(i||ft.test(e)){if(pt.test(e))throw new R(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new R(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new R(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new ut(e);if(!a.isValid())throw new R(`invalid value`,{toml:t,ptr:n});return a}D(gt,`parseValue`);function _t(e,t,n,r){let i=e.slice(t,n),a=i.indexOf(`#`);a>-1&&(B(e,a),i=i.slice(0,a));let o=i.trimEnd();if(!r){let n=i.indexOf(`
34
+ `,o.length);if(n>-1)throw new R(`newlines are not allowed in inline tables`,{toml:e,ptr:t+n})}return[o,a]}D(_t,`sliceAndTrimEndOf`);function W(e,t,n,r,i){if(r===0)throw new R(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?bt(e,t,r,i):yt(e,t,r,i),c=n?ct(e,s,`,`,n):s;if(s-c&&n===`}`){let t=z(e,s,c);if(t>-1)throw new R(`newlines are not allowed in inline tables`,{toml:e,ptr:t})}return[o,c]}let o;if(a===`"`||a===`'`){o=H(e,t);let r=U(e,t,o);if(n){if(o=V(e,o,n!==`]`),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
35
+ `&&e[o]!==`\r`)throw new R(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=ct(e,t,`,`,n);let s=_t(e,t,o-+(e[o-1]===`,`),n===`]`);if(!s[0])throw new R(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=V(e,t+s[1]),o+=+(e[o]===`,`)),[gt(s[0],e,t,i),o]}D(W,`extractValue`);var vt=/^[a-zA-Z0-9-_]+[ \t]*$/;function G(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new R(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});do{let o=e[t=++r];if(o!==` `&&o!==` `)if(o===`"`||o===`'`){if(o===e[t+1]&&o===e[t+2])throw new R(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=H(e,t);if(s<0)throw new R(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=z(c);if(l>-1)throw new R(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new R(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new R(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(U(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!vt.test(n))throw new R(`only letter, numbers, dashes and underscores are allowed in keys`,{toml:e,ptr:t});i.push(n.trimEnd())}}while(r+1&&r<a);return[i,V(e,a+1,!0,!0)]}D(G,`parseKey`);function yt(e,t,n,r){let i={},a=new Set,o,s=0;for(t++;(o=e[t++])!==`}`&&o;){let c={toml:e,ptr:t-1};if(o===`
36
+ `)throw new R(`newlines are not allowed in inline tables`,c);if(o===`#`)throw new R(`inline tables cannot contain comments`,c);if(o===`,`)throw new R(`expected key-value, found comma`,c);if(o!==` `&&o!==` `){let o,c=i,l=!1,[u,d]=G(e,t-1);for(let n=0;n<u.length;n++){if(n&&(c=l?c[o]:c[o]={}),o=u[n],(l=Object.hasOwn(c,o))&&(typeof c[o]!=`object`||a.has(c[o])))throw new R(`trying to redefine an already defined value`,{toml:e,ptr:t});!l&&o===`__proto__`&&Object.defineProperty(c,o,{enumerable:!0,configurable:!0,writable:!0})}if(l)throw new R(`trying to redefine an already defined value`,{toml:e,ptr:t});let[f,p]=W(e,d,`}`,n-1,r);a.add(f),c[o]=f,t=p,s=e[t-1]===`,`?t-1:0}}if(s)throw new R(`trailing commas are not allowed in inline tables`,{toml:e,ptr:s});if(!o)throw new R(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}D(yt,`parseInlineTable`);function bt(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new R(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=B(e,t);else if(a!==` `&&a!==` `&&a!==`
37
+ `&&a!==`\r`){let a=W(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new R(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}D(bt,`parseArray`);function xt(e,t,n,r){let i=t,a=n,o,s=!1,c;for(let t=0;t<e.length;t++){if(t){if(i=s?i[o]:i[o]={},a=(c=a[o]).c,r===0&&(c.t===1||c.t===2))return null;if(c.t===2){let e=i.length-1;i=i[e],a=a[e].c}}if(o=e[t],(s=Object.hasOwn(i,o))&&a[o]?.t===0&&a[o]?.d)return null;s||(o===`__proto__`&&(Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,o,{enumerable:!0,configurable:!0,writable:!0})),a[o]={t:t<e.length-1&&r===2?3:r,d:!1,i:0,c:{}})}if(c=a[o],c.t!==r&&!(r===1&&c.t===3)||(r===2&&(c.d||(c.d=!0,i[o]=[]),i[o].push(i={}),c.c[c.i++]=c={t:1,d:!1,i:0,c:{}}),c.d))return null;if(c.d=!0,r===1)i=s?i[o]:i[o]={};else if(r===0&&s)return null;return[o,i,c.c]}D(xt,`peekTable`);function St(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=V(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=G(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new R(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=xt(n[0],r,i,t?2:1);if(!c)throw new R(`trying to redefine an already defined table or value`,{toml:e,ptr:s});o=c[2],a=c[1],s=n[1]}else{let r=G(e,s),i=xt(r[0],a,o,0);if(!i)throw new R(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=W(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=V(e,s,!0),e[s]&&e[s]!==`
38
+ `&&e[s]!==`\r`)throw new R(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=V(e,s)}return r}D(St,`parse`);var Ct=/^[a-z0-9-_]+$/i;function K(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}D(K,`extendedTypeOf`);function wt(e){for(let t=0;t<e.length;t++)if(K(e[t])!==`object`)return!1;return e.length!=0}D(wt,`isArrayOfTables`);function q(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}D(q,`formatString`);function J(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);if(t===`number`)return isNaN(e)?`nan`:e===1/0?`inf`:e===-1/0?`-inf`:r&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t===`bigint`||t===`boolean`)return e.toString();if(t===`string`)return q(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return Tt(e,n,r);if(t===`array`)return Et(e,n,r)}D(J,`stringifyValue`);function Tt(e,t,n){let r=Object.keys(e);if(r.length===0)return`{}`;let i=`{ `;for(let a=0;a<r.length;a++){let o=r[a];a&&(i+=`, `),i+=Ct.test(o)?o:q(o),i+=` = `,i+=J(e[o],K(e[o]),t-1,n)}return i+` }`}D(Tt,`stringifyInlineTable`);function Et(e,t,n){if(e.length===0)return`[]`;let r=`[ `;for(let i=0;i<e.length;i++){if(i&&(r+=`, `),e[i]===null||e[i]===void 0)throw TypeError(`arrays cannot contain null or undefined values`);r+=J(e[i],K(e[i]),t-1,n)}return r+` ]`}D(Et,`stringifyArray`);function Dt(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let i=``;for(let a=0;a<e.length;a++)i+=`${i&&`
39
+ `}[[${t}]]
40
+ `,i+=Y(0,e[a],t,n,r);return i}D(Dt,`stringifyArrayTable`);function Y(e,t,n,r,i){if(r===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let a=``,o=``,s=Object.keys(t);for(let e=0;e<s.length;e++){let c=s[e];if(t[c]!==null&&t[c]!==void 0){let e=K(t[c]);if(e===`symbol`||e===`function`)throw TypeError(`cannot serialize values of type '${e}'`);let s=Ct.test(c)?c:q(c);if(e===`array`&&wt(t[c]))o+=(o&&`
41
+ `)+Dt(t[c],n?`${n}.${s}`:s,r-1,i);else if(e===`object`){let e=n?`${n}.${s}`:s;o+=(o&&`
42
+ `)+Y(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=J(t[c],e,r,i),a+=`
43
+ `}}return e&&(a||!o)&&(a=a?`[${e}]
44
+ ${a}`:`[${e}]`),a&&o?`${a}
45
+ ${o}`:a||o}D(Y,`stringifyTable`);function Ot(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(K(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Y(0,e,``,t,n);return r[r.length-1]===`
46
+ `?r:r+`
47
+ `}D(Ot,`stringify`);var kt={parse:St,stringify:Ot,TomlDate:ut,TomlError:R},X=class extends O{static{D(this,`ParseError`)}text;notes;location;kind;constructor({text:e,notes:t,location:n,kind:r,telemetryMessage:i}){super(e,{telemetryMessage:i}),this.name=this.constructor.name,this.text=e,this.notes=t??[],this.location=n,this.kind=r??`error`}};(class extends X{static{D(this,`APIError`)}#e;code;accountTag;meta;retryAfterMs;constructor({status:e,retryAfterMs:t,...n}){super(n),this.name=this.constructor.name,this.#e=e,this.retryAfterMs=t}get status(){return this.#e}isGatewayError(){return this.#e===void 0?!1:[524].includes(this.#e)}isRetryable(){return String(this.#e).startsWith(`5`)}#t=!0;get reportable(){return this.#t}preventReport(){this.#t=!1}});function At(e,t){try{return kt.parse(e)}catch(n){if(!(n instanceof R))throw n;let r={lineText:e.split(`
48
+ `)[n.line-1],line:n.line,column:n.column-1,file:t,fileText:e};throw new X({text:n.message.substring(0,n.message.indexOf(`
49
+ `)),location:r,telemetryMessage:`TOML parse error`})}}D(At,`parseTOML`);function jt(e,t){return Mt(e,t)}D(jt,`parsePackageJSON`);function Mt(e,t){return Nt(e,t,{allowEmptyContent:!1,allowTrailingComma:!1,disallowComments:!0})}D(Mt,`parseJSON`);function Nt(e,t,n={allowTrailingComma:!0}){let r=[],i=$e(e,r,n);if(r.length)throw new X({text:tt(r[0].error),location:{...It({file:t,fileText:e},r[0].offset+1),length:r[0].length},telemetryMessage:`JSON(C) parse error`});return i}D(Nt,`parseJSONC`);function Pt(e){try{return re(e)}catch(t){let{message:n}=t;throw new X({text:`Could not read file: ${e}`,notes:[{text:n.replace(e,ce(e))}],telemetryMessage:!1})}}D(Pt,`readFileSyncToBuffer`);function Ft(e){try{return Ut(re(e),e)}catch(t){if(t instanceof X)throw t;let{message:n}=t;throw new X({text:`Could not read file: ${e}`,notes:[{text:n.replace(e,ce(e))}],telemetryMessage:`Could not read file`})}}D(Ft,`readFileSync`);function It(e,t){let n,r=0,i=0,a=0,{fileText:o=``}=e;for(let e of o.split(`
50
+ `))if(r++,a+=e.length+1,a>=t){n=e,i=e.length-(a-t);break}return{lineText:n,line:r,column:i,...e}}D(It,`indexLocation`);function Lt(e,t){let n,r,i=0,a=0,o=String(t),{fileText:s=``}=e;for(let e of s.split(`
51
+ `)){i++;let t=e.indexOf(o);if(t>=0){n=e,a=t,r=o.length;break}}return{lineText:n,line:i,column:a,length:r,...e}}D(Lt,`searchLocation`);var Rt={nanoseconds:1e-9,nanosecond:1e-9,microseconds:1e-6,microsecond:1e-6,milliseconds:.001,millisecond:.001,seconds:1,second:1,minutes:60,minute:60,hours:3600,hour:3600,days:86400,day:86400,weeks:604800,week:604800,month:18144e3,year:220752e3,nsecs:1e-9,nsec:1e-9,usecs:1e-6,usec:1e-6,msecs:.001,msec:.001,secs:1,sec:1,mins:60,min:60,ns:1e-9,us:1e-6,ms:.001,mo:18144e3,yr:220752e3,s:1,m:60,h:3600,d:86400,w:604800,y:220752e3};function zt(e){let t=new Map(Object.entries(Rt));e=e.trim().toLowerCase();let n=1;for(let[r,i]of t)if(e.endsWith(r)){e=e.substring(0,e.length-r.length),n=t.get(r)||1;break}return Number(e)*n}D(zt,`parseHumanDuration`);function Bt(e){if(e==null||e.includes(`-`))return e;if(e.length!=32)return null;let t=[];t.push(e.slice(0,8)),t.push(e.slice(8,12)),t.push(e.slice(12,16)),t.push(e.slice(16,20)),t.push(e.slice(20));let n=``;return t.forEach(e=>n+=e+`-`),n.slice(0,36)}D(Bt,`parseNonHyphenedUuid`);function Vt(e,t=void 0){let n=e.match(/^(\d*\.*\d*)\s*([kKmMgGtTpP]{0,1})([i]{0,1}[bB]{0,1})$/);if(!n)return NaN;let r=n[1];if(r.length===0||isNaN(Number(r)))return NaN;let i=n[2].toLowerCase(),a={k:1,m:2,g:3,t:4,p:5};if(i.length!==0&&!(i in a))return NaN;let o=n[3].toLowerCase()==`ib`;if(o&&i.length===0)return NaN;let s=a[i]||0;return Math.floor(Number(r)*(t??(o?1024:1e3))**+s)}D(Vt,`parseByteSize`);var Ht=[{buffer:Buffer.from([0,0,254,255]),encoding:`UTF-32 BE`},{buffer:Buffer.from([255,254,0,0]),encoding:`UTF-32 LE`},{buffer:Buffer.from([254,255]),encoding:`UTF-16 BE`},{buffer:Buffer.from([255,254]),encoding:`UTF-16 LE`}];function Ut(e,t){for(let n of Ht)if(e.length>=n.buffer.length&&e.subarray(0,n.buffer.length).equals(n.buffer))throw new X({text:`Configuration file contains ${n.encoding} byte order marker`,notes:[{text:`The file "${t}" appears to be encoded as ${n.encoding}. Please save the file as UTF-8 without BOM.`}],location:{file:t,line:1,column:0},telemetryMessage:`${n.encoding} BOM detected`});let n=e.toString(`utf-8`);return n.charCodeAt(0)===65279?n.slice(1):n}D(Ut,`removeBOMAndValidate`);var Wt=`.wrangler/deploy/config.json`;function Gt(e,t){return oe(e)?e:ce(t||`.`,e)}D(Gt,`absolute`);function Kt(e,t){let{last:n,cwd:r}=t||{},i=Gt(e,r),a=Gt(n||`/`,r),o,s=[];for(;o!==a&&(s.push(i),i=ae(o=i),i!==o););return s}D(Kt,`up`);function Z(e,t){let n,r;for(n of Kt(t&&t.cwd||``,t))try{if(r=se(n,e),ie(r).isFile())return r}catch{}}D(Z,`file`);function qt(e,t){let n,r;for(n of Kt(t&&t.cwd||``,t))try{if(r=se(n,e),ie(r).isDirectory())return r}catch{}}D(qt,`dir`);function Jt(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
52
+ [ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
53
+ `)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
54
+ `)&&(o=String(e).split(`
55
+ `).map(function(e,t){return t===0?e:``+i+e}).join(`
56
+ `)),a+=o+n[t+1]}),a}D(Jt,`dedent`);var Yt=Jt;function Xt({config:e,script:t},n){return e===void 0?Zt(t===void 0?process.cwd():E.dirname(t),n):{userConfigPath:e,configPath:e,deployConfigPath:void 0,redirected:!1}}D(Xt,`resolveWranglerConfigPath`);function Zt(e=process.cwd(),{useRedirectIfAvailable:t=!1}={}){let n=Z(`wrangler.json`,{cwd:e})??Z(`wrangler.jsonc`,{cwd:e})??Z(`wrangler.toml`,{cwd:e});if(!t)return{userConfigPath:n,configPath:n,deployConfigPath:void 0,redirected:!1};let{configPath:r,deployConfigPath:i,redirected:a}=Qt(e,n);return{userConfigPath:n,configPath:r,deployConfigPath:i,redirected:a}}D(Zt,`findWranglerConfig`);function Qt(e,t){let n=Z(Wt,{cwd:e});if(n===void 0)return{configPath:t,deployConfigPath:n,redirected:!1};let r,i=Ft(n);try{let e=Nt(i,n);r=e.configPath&&E.resolve(E.dirname(n),e.configPath)}catch(e){throw new O(`Failed to parse the deploy configuration file at ${E.relative(`.`,n)}`,{cause:e,telemetryMessage:!1})}if(!r)throw new O(Yt`
57
+ A deploy configuration file was found at "${E.relative(`.`,n)}".
58
+ But this is not valid - the required "configPath" property was not found.
59
+ Instead this file contains:
60
+ \`\`\`
61
+ ${i}
62
+ \`\`\`
63
+ `,{telemetryMessage:!1});if(!w(r))throw new O(Yt`
64
+ There is a deploy configuration at "${E.relative(`.`,n)}".
65
+ But the redirected configuration path it points to, "${E.relative(`.`,r)}", does not exist.
66
+ `,{telemetryMessage:!1});if(t&&E.join(E.dirname(t),Wt)!==n)throw new O(Yt`
67
+ Found both a user configuration file at "${E.relative(`.`,t)}"
68
+ and a deploy configuration file at "${E.relative(`.`,n)}".
69
+ But these do not share the same base path so it is not clear which should be used.
70
+ `,{telemetryMessage:!1});return{configPath:r,deployConfigPath:n,redirected:!0}}D(Qt,`findRedirectedWranglerConfig`);function $t(e){return e.configPath!==void 0&&e.configPath!==e.userConfigPath}D($t,`isRedirectedConfig`);function en(e,t,n){return $t({configPath:t,userConfigPath:n})}D(en,`isRedirectedRawConfig`);function Q(e){return e?.endsWith(`toml`)?`toml`:e?.endsWith(`jsonc`)?`jsonc`:e?.endsWith(`json`)?`json`:`none`}D(Q,`configFormat`);function tn(e){switch(Q(e)){case`toml`:return`wrangler.toml`;case`json`:return`wrangler.json`;case`jsonc`:return`wrangler.jsonc`;default:return`Wrangler configuration`}}D(tn,`configFileName`);function nn(e,t,n=!0){return Q(t)===`toml`?kt.stringify(e):n?JSON.stringify(e,null,2):JSON.stringify(e)}D(nn,`formatConfigSnippet`),new le;const rn=`config.json`;function an(e){return T.resolve(e,`.cloudflare/output`)}function on(e){return T.join(an(e),`v0`,rn)}function sn(e){return T.join(an(e),`v0`,`workers`)}function cn(e){return T.join(sn(e),`default`)}function ln(e){return T.join(cn(e),rn)}function un(e){return T.join(cn(e),`bundle`)}function dn(e){return T.join(cn(e),`assets`)}var fn=Object.defineProperty,pn=(e,t)=>fn(e,`name`,{value:t,configurable:!0});function mn(e){return C.statSync(e,{throwIfNoEntry:!1})?.isDirectory()??!1}pn(mn,`isDirectory`);function hn(e,{fireAndForget:t=!1}={}){let n=C.promises.rm(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100});if(t)n.catch(()=>{});else return n}pn(hn,`removeDir`);function gn(e){C.rmSync(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100})}pn(gn,`removeDirSync`);var $=class extends Error{constructor(e){super(`Build Output Specification: ${e}`),this.name=`BuildOutputError`}};async function _n(e){return{root:e,version:`v0`,settings:await yn(e),workers:[await vn(e)]}}async function vn(e){let t=ln(e);if(!S.existsSync(t))throw new $(`No Worker config found at ${t}.`);let n=await ue.readFile(t,`utf-8`),r=Fe.safeParse(bn(n,t));if(!r.success)throw new $(`invalid Worker config at ${t}.\n${r.error.message}`);let i=un(e),a=dn(e),o=S.existsSync(i),s=S.existsSync(a);if(r.data.manifest&&!o)throw new $(`Worker config at ${t} contains a manifest, but no bundle directory exists at ${i}.`);if(o)return{configPath:t,config:r.data,bundleDir:i,assetsDir:s?a:void 0};if(s)return{configPath:t,config:r.data,bundleDir:void 0,assetsDir:a};throw new $(`Worker config at ${t} has neither a bundle directory (${i}) nor an assets directory (${a}).`)}async function yn(e){let t=on(e);if(!S.existsSync(t))return;let n=await ue.readFile(t,`utf-8`),r=Ae.safeParse(bn(n,t));if(!r.success)throw new $(`invalid root config at ${t}.\n${r.error.message}`);return r.data}function bn(e,t){try{return JSON.parse(e)}catch(e){throw new $(`could not parse JSON at ${t}.\n${e instanceof Error?e.message:String(e)}`)}}var xn=class extends Error{constructor(e){super(e),this.name=`BuildOutputConfigError`}};function Sn(e,t){let n=e.config,r=ee(n,t);n.manifest?.mainModule&&e.bundleDir&&(r.main=E.join(e.bundleDir,n.manifest.mainModule));let i=E.resolve(`cloudflare.config.ts`);return{wranglerConfig:Cn(r,e.configPath,i),builtConfig:n}}function Cn(e,t,r){let{config:i,diagnostics:a}=n(e,t,r,{});if(a.hasErrors())throw new xn(a.renderErrors());return a.hasWarnings()&&console.warn(a.renderWarnings()),i}var wn=e({default:()=>On,runBuild:()=>En});function Tn(e){return e.option(`mode`,{type:`string`,alias:`m`,description:`Build mode (e.g. production, staging, preview)`})}async function En(e){let n=te(process.cwd()),a=e?[`--mode`,e]:[];x.message(r.bold(`Build`),{symbol:i.dim(`├`),spacing:0}),x.message(`Delegating to ${Dn(n)}`,{spacing:0});let o=await ne(n,`build`,a);if(o!==0)throw new t(o);let{workers:[s],settings:c}=await _n(process.cwd());Sn(s,c),x.success(`Build complete`,{spacing:0})}function Dn(e){switch(e.impl.pkg){case`@cloudflare/vite-plugin`:return`Vite`;case`wrangler`:return`Wrangler`;case`cloudflare-py-dev-server`:return`the Python dev server`;case`cloudflare-rs-dev-server`:return`the Rust dev server`;default:return e.impl.pkg}}const On={command:`build`,describe:`Build a project for Cloudflare`,builder:Tn,handler:async e=>{await En(e.mode)}};export{_n as a,Sn as i,En as n,xn as r,wn as t};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{D as e}from"./oauth-DBJ5GSFk.mjs";import{i as t,n}from"./auth-CZ0E51rF.mjs";import{t as r}from"./output-B6fBFRqe.mjs";import{n as i,t as a}from"./progress-O88q63Bk.mjs";import{n as o,t as s}from"./body-parser-BO6mfo_W.mjs";import{n as c}from"./input-validation-BwUR9z8e.mjs";import{n as l,t as u}from"./prompt-DTAWiEm2.mjs";function d(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const f={command:`clear`,describe:`You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.`,builder:d,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve clear`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve_clear`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Creating`,async()=>o.cache.cacheReserve.clear({zone_id:s})),{successLabel:`Created`})}};function p(e){return e.option(`value`,{type:`string`,description:`Value of the Cache Reserve zone setting.`,choices:[`on`,`off`]}).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:`edit`,describe:`Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information.`,builder:p,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({value:c(t.value,`value`,`text`)}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.cache.cacheReserve.edit({...e,zone_id:d})),{successLabel:`Updated`});return}t.value===void 0&&(t.value=await l(`value`,`Value of the Cache Reserve zone setting.`,[`on`,`off`]));let f=s({value:c(t.value,`value`,`text`)});r(await a(`Updating`,async()=>u.cache.cacheReserve.edit({...f,zone_id:d})),{successLabel:`Updated`})}};function h(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`get`,describe:`Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information.`,builder:h,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.cacheReserve.get({zone_id:s})),{successLabel:`Loaded`})}};function _(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`status`,describe:`You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.`,builder:_,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve status`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve_clear`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.cacheReserve.status({zone_id:s})),{successLabel:`Loaded`})}},y={command:`cache-reserve`,describe:`Persistent storage tier that keeps cached assets even after eviction from edge caches`,builder:e=>e.command(f).command(m).command(g).command(v).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function b(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const x={command:`purge`,describe:'### Purge All Cached Content Removes ALL files from Cloudflare\'s cache. All tiers can purge everything. ``` {"purge_everything": true} ``` ### Purge Cached Content by URL Granularly removes one or more files from Cloudflare\'s cache by specifying URLs. All tiers can purge by URL. To purge files with custom cache keys, include the headers used to compute the cache key as in the example. If you have a device type or geo in your cache key, you will need to include the CF-Device-Type or CF-IPCountry headers. If you have lang in your cache key, you will need to include the Accept-Language header. **NB:** When including the Origin header, be sure to include the **scheme** and **hostname**. The port number can be omitted if it is the default port (80 for http, 443 for https), but must be included otherwise. Single file purge example with files: ``` {"files": ["http://www.example.com/css/styles.css", "http://www.example.com/js/index.js"]} ``` Single file purge example with url and header pairs: ``` {"files": [{"url": "http://www.example.com/cat_picture.jpg", "headers": {"CF-IPCountry": "US", "CF-Device-Type": "desktop", "Accept-Language": "zh-CN"}}, {"url": "http://www.example.com/dog_picture.jpg", "headers": {"CF-IPCountry": "EU", "CF-Device-Type": "mobile", "Accept-Language": "en-US"}}]} ``` ### Purge Cached Content by Tag, Host or Prefix Granularly removes one or more files from Cloudflare\'s cache either by specifying the host, the associated Cache-Tag, or a Prefix. Flex purge with tags: ``` {"tags": ["a-cache-tag", "another-cache-tag"]} ``` Flex purge with hosts: ``` {"hosts": ["www.example.com", "images.example.com"]} ``` Flex purge with prefixes: ``` {"prefixes": ["www.example.com/foo", "images.example.com/bar/baz"]} ``` ### Availability and limits Please refer to [purge cache availability and limits documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/#availability-and-limits).',builder:b,handler:async s=>{if(s.dryRun){i({command:`cf cache purge`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/purge_cache`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,!await u({force:!!s.force,message:`This operation destroys cached content for a zone.`})){process.stderr.write(`Aborted.
2
+ import{D as e}from"./oauth-DC9g9uK_.mjs";import{i as t,n}from"./auth-B1CY5zpC.mjs";import{t as r}from"./output-B6fBFRqe.mjs";import{n as i,t as a}from"./progress-BLQ2xXwD.mjs";import{n as o,t as s}from"./body-parser-BO6mfo_W.mjs";import{n as c}from"./input-validation-BwUR9z8e.mjs";import{n as l,t as u}from"./prompt-DcfYBioA.mjs";function d(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const f={command:`clear`,describe:`You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.`,builder:d,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve clear`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve_clear`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Creating`,async()=>o.cache.cacheReserve.clear({zone_id:s})),{successLabel:`Created`})}};function p(e){return e.option(`value`,{type:`string`,description:`Value of the Cache Reserve zone setting.`,choices:[`on`,`off`]}).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:`edit`,describe:`Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information.`,builder:p,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({value:c(t.value,`value`,`text`)}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.cache.cacheReserve.edit({...e,zone_id:d})),{successLabel:`Updated`});return}t.value===void 0&&(t.value=await l(`value`,`Value of the Cache Reserve zone setting.`,[`on`,`off`]));let f=s({value:c(t.value,`value`,`text`)});r(await a(`Updating`,async()=>u.cache.cacheReserve.edit({...f,zone_id:d})),{successLabel:`Updated`})}};function h(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`get`,describe:`Increase cache lifetimes by automatically storing all cacheable files into Cloudflare's persistent object storage buckets. Requires Cache Reserve subscription. Note: using Tiered Cache with Cache Reserve is highly recommended to reduce Reserve operations costs. See the [developer docs](https://developers.cloudflare.com/cache/about/cache-reserve) for more information.`,builder:h,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.cacheReserve.get({zone_id:s})),{successLabel:`Loaded`})}};function _(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`status`,describe:`You can use Cache Reserve Clear to clear your Cache Reserve, but you must first disable Cache Reserve. In most cases, this will be accomplished within 24 hours. You cannot re-enable Cache Reserve while this process is ongoing. Keep in mind that you cannot undo or cancel this operation.`,builder:_,handler:async t=>{if(t.dryRun){i({command:`cf cache cache-reserve status`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/cache_reserve_clear`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.cacheReserve.status({zone_id:s})),{successLabel:`Loaded`})}},y={command:`cache-reserve`,describe:`Persistent storage tier that keeps cached assets even after eviction from edge caches`,builder:e=>e.command(f).command(m).command(g).command(v).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function b(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const x={command:`purge`,describe:'### Purge All Cached Content Removes ALL files from Cloudflare\'s cache. All tiers can purge everything. ``` {"purge_everything": true} ``` ### Purge Cached Content by URL Granularly removes one or more files from Cloudflare\'s cache by specifying URLs. All tiers can purge by URL. To purge files with custom cache keys, include the headers used to compute the cache key as in the example. If you have a device type or geo in your cache key, you will need to include the CF-Device-Type or CF-IPCountry headers. If you have lang in your cache key, you will need to include the Accept-Language header. **NB:** When including the Origin header, be sure to include the **scheme** and **hostname**. The port number can be omitted if it is the default port (80 for http, 443 for https), but must be included otherwise. Single file purge example with files: ``` {"files": ["http://www.example.com/css/styles.css", "http://www.example.com/js/index.js"]} ``` Single file purge example with url and header pairs: ``` {"files": [{"url": "http://www.example.com/cat_picture.jpg", "headers": {"CF-IPCountry": "US", "CF-Device-Type": "desktop", "Accept-Language": "zh-CN"}}, {"url": "http://www.example.com/dog_picture.jpg", "headers": {"CF-IPCountry": "EU", "CF-Device-Type": "mobile", "Accept-Language": "en-US"}}]} ``` ### Purge Cached Content by Tag, Host or Prefix Granularly removes one or more files from Cloudflare\'s cache either by specifying the host, the associated Cache-Tag, or a Prefix. Flex purge with tags: ``` {"tags": ["a-cache-tag", "another-cache-tag"]} ``` Flex purge with hosts: ``` {"hosts": ["www.example.com", "images.example.com"]} ``` Flex purge with prefixes: ``` {"prefixes": ["www.example.com/foo", "images.example.com/bar/baz"]} ``` ### Availability and limits Please refer to [purge cache availability and limits documentation page](https://developers.cloudflare.com/cache/how-to/purge-cache/#availability-and-limits).',builder:b,handler:async s=>{if(s.dryRun){i({command:`cf cache purge`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/purge_cache`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``)},bodyKind:`json`,body:s.body===void 0?void 0:o(s.body)});return}let c=await n(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,!await u({force:!!s.force,message:`This operation destroys cached content for a zone.`})){process.stderr.write(`Aborted.
3
3
  `);return}if(s.body){let e=o(s.body);r(await a(`Deleting`,async()=>c.cache.purge({body:e,zone_id:l})),{successLabel:`Deleted`});return}r(await a(`Deleting`,async()=>t(c,`POST`,`/zones/${s.zoneId}/purge_cache`)),{successLabel:`Deleted`})}};function S(e){return e.option(`value`,{type:`string`,description:`Value of the Regional Tiered Cache zone setting.`,choices:[`on`,`off`]}).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 C={command:`edit`,describe:`Instructs Cloudflare to check a regional hub data center on the way to your upper tier. This can help improve performance for smart and custom tiered cache topologies.`,builder:S,handler:async t=>{if(t.dryRun){i({command:`cf cache regional-tiered-cache edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/regional_tiered_cache`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({value:c(t.value,`value`,`text`)}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.cache.regionalTieredCache.edit({...e,zone_id:d})),{successLabel:`Updated`});return}t.value===void 0&&(t.value=await l(`value`,`Value of the Regional Tiered Cache zone setting.`,[`on`,`off`]));let f=s({value:c(t.value,`value`,`text`)});r(await a(`Updating`,async()=>u.cache.regionalTieredCache.edit({...f,zone_id:d})),{successLabel:`Updated`})}};function w(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const T={command:`get`,describe:`Instructs Cloudflare to check a regional hub data center on the way to your upper tier. This can help improve performance for smart and custom tiered cache topologies.`,builder:w,handler:async t=>{if(t.dryRun){i({command:`cf cache regional-tiered-cache get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/regional_tiered_cache`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.regionalTieredCache.get({zone_id:s})),{successLabel:`Loaded`})}},E={command:`regional-tiered-cache`,describe:`Restrict tiered cache topology to data centers within a specific geographic region`,builder:e=>e.command(C).command(T).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function D(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const O={command:`delete`,describe:`Smart Tiered Cache dynamically selects the single closest upper tier for each of your website’s origins with no configuration required, using our in-house performance and routing data. Cloudflare collects latency data for each request to an origin, and uses the latency data to determine how well any upper-tier data center is connected with an origin. As a result, Cloudflare can select the data center with the lowest latency to be the upper-tier for an origin.`,builder:D,handler:async t=>{if(t.dryRun){i({command:`cf cache smart-tiered-cache delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/tiered_cache_smart_topology_enable`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});if(t.zoneId=s,!await u({force:!!t.force})){process.stderr.write(`Aborted.
4
4
  `);return}r(await a(`Deleting`,async()=>o.cache.smartTieredCache.delete({zone_id:s})),{successLabel:`Deleted`})}};function k(e){return e.option(`value`,{type:`string`,description:`Enable or disable the Smart Tiered Cache.`,choices:[`on`,`off`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Update enablement of Smart Tiered Cache.`})}const A={command:`edit`,describe:`Smart Tiered Cache dynamically selects the single closest upper tier for each of your website’s origins with no configuration required, using our in-house performance and routing data. Cloudflare collects latency data for each request to an origin, and uses the latency data to determine how well any upper-tier data center is connected with an origin. As a result, Cloudflare can select the data center with the lowest latency to be the upper-tier for an origin.`,builder:k,handler:async t=>{if(t.dryRun){i({command:`cf cache smart-tiered-cache edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/tiered_cache_smart_topology_enable`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({value:c(t.value,`value`,`text`)}):o(t.body)});return}let u=await n(t),d=await e({zone:t.zone},u,{quiet:t.quiet});if(t.zoneId=d,t.body){let e=o(t.body);r(await a(`Updating`,async()=>u.cache.smartTieredCache.edit({body:e,zone_id:d})),{successLabel:`Updated`});return}t.value===void 0&&(t.value=await l(`value`,`Enable or disable the Smart Tiered Cache.`,[`on`,`off`]));let f=s({value:c(t.value,`value`,`text`)});r(await a(`Updating`,async()=>u.cache.smartTieredCache.edit({body:f,zone_id:d})),{successLabel:`Updated`})}};function j(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const M={command:`get`,describe:`Smart Tiered Cache dynamically selects the single closest upper tier for each of your website’s origins with no configuration required, using our in-house performance and routing data. Cloudflare collects latency data for each request to an origin, and uses the latency data to determine how well any upper-tier data center is connected with an origin. As a result, Cloudflare can select the data center with the lowest latency to be the upper-tier for an origin.`,builder:j,handler:async t=>{if(t.dryRun){i({command:`cf cache smart-tiered-cache get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/tiered_cache_smart_topology_enable`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.smartTieredCache.get({zone_id:s})),{successLabel:`Loaded`})}},N={command:`smart-tiered-cache`,describe:`Automatically determine the best upper-tier data centers for tiered cache topology`,builder:e=>e.command(O).command(A).command(M).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function P(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const F={command:`delete`,describe:`Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers.`,builder:P,handler:async t=>{if(t.dryRun){i({command:`cf cache variants delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/variants`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});if(t.zoneId=s,!await u({force:!!t.force})){process.stderr.write(`Aborted.
5
5
  `);return}r(await a(`Deleting`,async()=>o.cache.variants.delete({zone_id:s})),{successLabel:`Deleted`})}};function I(e){return e.option(`value-avif`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for avif.`}).option(`value-bmp`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for bmp.`}).option(`value-gif`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for gif.`}).option(`value-jp2`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for jp2.`}).option(`value-jpeg`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for jpeg.`}).option(`value-jpg`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for jpg.`}).option(`value-jpg2`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for jpg2.`}).option(`value-png`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for png.`}).option(`value-tif`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for tif.`}).option(`value-tiff`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for tiff.`}).option(`value-webp`,{type:`string`,array:!0,description:`List of strings with the MIME types of all the variants that should be served for webp.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const L={command:`edit`,describe:`Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers.`,builder:I,handler:async t=>{if(t.dryRun){i({command:`cf cache variants edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/variants`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`json`,body:t.body===void 0?s({value:{avif:t[`value-avif`],bmp:t[`value-bmp`],gif:t[`value-gif`],jp2:t[`value-jp2`],jpeg:t[`value-jpeg`],jpg:t[`value-jpg`],jpg2:t[`value-jpg2`],png:t[`value-png`],tif:t[`value-tif`],tiff:t[`value-tiff`],webp:t[`value-webp`]}}):o(t.body)});return}let c=await n(t),l=await e({zone:t.zone},c,{quiet:t.quiet});if(t.zoneId=l,t.body){let e=o(t.body);r(await a(`Updating`,async()=>c.cache.variants.edit({...e,zone_id:l})),{successLabel:`Updated`});return}let u=s({value:{avif:t[`value-avif`],bmp:t[`value-bmp`],gif:t[`value-gif`],jp2:t[`value-jp2`],jpeg:t[`value-jpeg`],jpg:t[`value-jpg`],jpg2:t[`value-jpg2`],png:t[`value-png`],tif:t[`value-tif`],tiff:t[`value-tiff`],webp:t[`value-webp`]}});r(await a(`Updating`,async()=>c.cache.variants.edit({...u,zone_id:l})),{successLabel:`Updated`})}};function R(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const z={command:`get`,describe:`Variant support enables caching variants of images with certain file extensions in addition to the original. This only applies when the origin server sends the 'Vary: Accept' response header. If the origin server sends 'Vary: Accept' but does not serve the variant requested, the response will not be cached. This will be indicated with BYPASS cache status in the response headers.`,builder:R,handler:async t=>{if(t.dryRun){i({command:`cf cache variants get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${t.zone??t.zoneId??`<zone>`}/cache/variants`,pathParams:{"zone-id":String(t.zone??t[`zone-id`]??``)},bodyKind:`none`});return}let o=await n(t),s=await e({zone:t.zone},o,{quiet:t.quiet});t.zoneId=s,r(await a(`Loading`,async()=>o.cache.variants.get({zone_id:s})),{successLabel:`Loaded`})}},B={command:`variants`,describe:`Serve different cached versions of an image based on the Accept header (WebP, AVIF, etc.)`,builder:e=>e.command(F).command(L).command(z).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},V={command:`cache`,describe:`Purge cached content and configure Cache Reserve, tiered caching, and variant serving`,builder:e=>e.command(x).command(y).command(E).command(N).command(B).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{V as default};
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import{O as e,w as t}from"./oauth-DBJ5GSFk.mjs";import{n}from"./auth-CZ0E51rF.mjs";import{t as r}from"./output-B6fBFRqe.mjs";import{n as i,t as a}from"./progress-O88q63Bk.mjs";import{t as o}from"./local-C6TLPAT6.mjs";import{n as s,t as c}from"./body-parser-BO6mfo_W.mjs";import{n as l}from"./input-validation-BwUR9z8e.mjs";import{t as u}from"./prompt-DTAWiEm2.mjs";function d(e){return e.option(`name`,{type:`string`,description:`A short description of Calls app, not shown to end users.`,default:``}).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 f={command:`create`,describe:`Creates a new Cloudflare calls app. An app is an unique enviroment where each Session can access all Tracks within the app.`,builder:d,handler:async u=>{if(u.dryRun){i({command:`cf calls sfu create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps`,pathParams:{},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`)}):s(u.body)});return}let d=await n(u),f=u.local?o:await t();if(u.accountId=f,u.body){let e=s(u.body);r(await a(`Creating`,async()=>d.calls.sfu.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});r(await a(`Creating`,async()=>d.calls.sfu.create({body:p,account_id:f})),{successLabel:`Created`})}};function p(e){return e.positional(`app-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const m={command:`delete <app-id>`,describe:`Deletes an app from Cloudflare Calls`,builder:p,handler:async s=>{if(s.dryRun){i({command:`cf calls sfu delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``)},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
2
+ import{O as e,w as t}from"./oauth-DC9g9uK_.mjs";import{n}from"./auth-B1CY5zpC.mjs";import{t as r}from"./output-B6fBFRqe.mjs";import{n as i,t as a}from"./progress-BLQ2xXwD.mjs";import{t as o}from"./local-C6TLPAT6.mjs";import{n as s,t as c}from"./body-parser-BO6mfo_W.mjs";import{n as l}from"./input-validation-BwUR9z8e.mjs";import{t as u}from"./prompt-DcfYBioA.mjs";function d(e){return e.option(`name`,{type:`string`,description:`A short description of Calls app, not shown to end users.`,default:``}).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 f={command:`create`,describe:`Creates a new Cloudflare calls app. An app is an unique enviroment where each Session can access all Tracks within the app.`,builder:d,handler:async u=>{if(u.dryRun){i({command:`cf calls sfu create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps`,pathParams:{},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`)}):s(u.body)});return}let d=await n(u),f=u.local?o:await t();if(u.accountId=f,u.body){let e=s(u.body);r(await a(`Creating`,async()=>d.calls.sfu.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});r(await a(`Creating`,async()=>d.calls.sfu.create({body:p,account_id:f})),{successLabel:`Created`})}};function p(e){return e.positional(`app-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const m={command:`delete <app-id>`,describe:`Deletes an app from Cloudflare Calls`,builder:p,handler:async s=>{if(s.dryRun){i({command:`cf calls sfu delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``)},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
3
3
  `);return}r(await a(`Deleting`,async()=>c.calls.sfu.delete({account_id:l,app_id:s[`app-id`]})),{successLabel:`Deleted`})}};function h(e){return e.positional(`app-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`get <app-id>`,describe:`Fetches details for a single Calls app.`,builder:h,handler:async s=>{if(s.dryRun){i({command:`cf calls sfu get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``)},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();s.accountId=l,r(await a(`Loading`,async()=>c.calls.sfu.get({account_id:l,app_id:s[`app-id`]})),{successLabel:`Loaded`})}};function _(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`list`,describe:`Lists all apps in the Cloudflare account`,builder:_,handler:async s=>{if(s.dryRun){i({command:`cf calls sfu list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps`,pathParams:{},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();s.accountId=l,r(await a(`Loading`,async()=>c.calls.sfu.list({account_id:l})),{successLabel:`Loaded`})}};function y(e){return e.positional(`app-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`name`,{type:`string`,description:`A short description of Calls app, not shown to end users.`}).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 b={command:`update <app-id>`,describe:`Edit details for a single app.`,builder:y,handler:async u=>{if(u.dryRun){i({command:`cf calls sfu update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/apps/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`)}):s(u.body)});return}let d=await n(u),f=u.local?o:await t();if(u.accountId=f,u.body){let e=s(u.body);r(await a(`Updating`,async()=>d.calls.sfu.update({body:e,account_id:f,app_id:u[`app-id`]})),{successLabel:`Updated`});return}let p=c({name:l(u.name,`name`,`text`)});r(await a(`Updating`,async()=>d.calls.sfu.update({body:p,account_id:f,app_id:u[`app-id`]})),{successLabel:`Updated`})}},x={command:`sfu`,describe:`Operations for sfu`,builder:e=>e.command(f).command(m).command(g).command(v).command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(e){return e.option(`name`,{type:`string`,description:`A short description of a TURN key, not shown to end users.`,default:``}).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 C={command:`create`,describe:`Creates a new Cloudflare Calls TURN key.`,builder:S,handler:async u=>{if(u.dryRun){i({command:`cf calls turn create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/turn_keys`,pathParams:{},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`)}):s(u.body)});return}let d=await n(u),f=u.local?o:await t();if(u.accountId=f,u.body){let e=s(u.body);r(await a(`Creating`,async()=>d.calls.turn.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});r(await a(`Creating`,async()=>d.calls.turn.create({body:p,account_id:f})),{successLabel:`Created`})}};function w(e){return e.positional(`key-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,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 T={command:`delete <key-id>`,describe:`Deletes a TURN key from Cloudflare Calls`,builder:w,handler:async s=>{if(s.dryRun){i({command:`cf calls turn delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/turn_keys/${s[`key-id`]==null?`<key-id>`:encodeURIComponent(String(s[`key-id`]))}`,pathParams:{"key-id":String(s[`key-id`]??``)},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
4
4
  `);return}r(await a(`Deleting`,async()=>c.calls.turn.delete({account_id:l,key_id:s[`key-id`]})),{successLabel:`Deleted`})}};function E(e){return e.positional(`key-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const D={command:`get <key-id>`,describe:`Fetches details for a single TURN key.`,builder:E,handler:async s=>{if(s.dryRun){i({command:`cf calls turn get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/turn_keys/${s[`key-id`]==null?`<key-id>`:encodeURIComponent(String(s[`key-id`]))}`,pathParams:{"key-id":String(s[`key-id`]??``)},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();s.accountId=l,r(await a(`Loading`,async()=>c.calls.turn.get({account_id:l,key_id:s[`key-id`]})),{successLabel:`Loaded`})}};function O(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const k={command:`list`,describe:`Lists all TURN keys in the Cloudflare account`,builder:O,handler:async s=>{if(s.dryRun){i({command:`cf calls turn list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/turn_keys`,pathParams:{},bodyKind:`none`});return}let c=await n(s),l=s.local?o:await t();s.accountId=l,r(await a(`Loading`,async()=>c.calls.turn.list({account_id:l})),{successLabel:`Loaded`})}};function A(e){return e.positional(`key-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for a item.`,demandOption:!0}).option(`name`,{type:`string`,description:`A short description of a TURN key, not shown to end users.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const j={command:`update <key-id>`,describe:`Edit details for a single TURN key.`,builder:A,handler:async u=>{if(u.dryRun){i({command:`cf calls turn update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await e()??`<account-id>`}/calls/turn_keys/${u[`key-id`]==null?`<key-id>`:encodeURIComponent(String(u[`key-id`]))}`,pathParams:{"key-id":String(u[`key-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`)}):s(u.body)});return}let d=await n(u),f=u.local?o:await t();if(u.accountId=f,u.body){let e=s(u.body);r(await a(`Updating`,async()=>d.calls.turn.update({body:e,account_id:f,key_id:u[`key-id`]})),{successLabel:`Updated`});return}let p=c({name:l(u.name,`name`,`text`)});r(await a(`Updating`,async()=>d.calls.turn.update({body:p,account_id:f,key_id:u[`key-id`]})),{successLabel:`Updated`})}},M={command:`turn`,describe:`Operations for turn`,builder:e=>e.command(C).command(T).command(D).command(k).command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},N={command:`calls`,describe:`calls`,builder:e=>e.command(x).command(M).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{N as default};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{D as e}from"./oauth-DBJ5GSFk.mjs";import{n as t}from"./auth-CZ0E51rF.mjs";import{t as n}from"./output-B6fBFRqe.mjs";import{n as r,t as i}from"./progress-O88q63Bk.mjs";import{n as a,t as o}from"./body-parser-BO6mfo_W.mjs";import{n as s}from"./input-validation-BwUR9z8e.mjs";function c(e){return e.option(`mtls-certificate-id`,{type:`string`,description:`The UUID to match against for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the results will be the hostnames associated to your active Cloudflare Managed CA.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const l={command:`get`,describe:`List Hostname Associations.`,builder:c,handler:async a=>{let o={mtls_certificate_id:a[`mtls-certificate-id`]};if(a.dryRun){r({command:`cf certificate-authorities hostname-associations get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/certificate_authorities/hostname_associations`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.certificateAuthorities.hostnameAssociations.get({zone_id:c,...o})),{successLabel:`Loaded`})}};function u(e){return e.option(`hostnames`,{type:`string`,array:!0,description:`The hostnames field`}).option(`mtls-certificate-id`,{type:`string`,description:`The UUID for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the hostnames will be associated to your active Cloudflare Managed CA.`}).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 d={command:`update`,describe:`Replace Hostname Associations.`,builder:u,handler:async c=>{if(c.dryRun){r({command:`cf certificate-authorities hostname-associations update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${c.zone??c.zoneId??`<zone>`}/certificate_authorities/hostname_associations`,pathParams:{"zone-id":String(c.zone??c[`zone-id`]??``)},bodyKind:`json`,body:c.body===void 0?o({hostnames:c.hostnames,mtls_certificate_id:s(c[`mtls-certificate-id`],`mtls-certificate-id`,`text`)}):a(c.body)});return}let l=await t(c),u=await e({zone:c.zone},l,{quiet:c.quiet});if(c.zoneId=u,c.body){let e=a(c.body);n(await i(`Updating`,async()=>l.certificateAuthorities.hostnameAssociations.update({...e,zone_id:u})),{successLabel:`Updated`});return}let d=o({hostnames:c.hostnames,mtls_certificate_id:s(c[`mtls-certificate-id`],`mtls-certificate-id`,`text`)});n(await i(`Updating`,async()=>l.certificateAuthorities.hostnameAssociations.update({...d,zone_id:u})),{successLabel:`Updated`})}},f={command:`hostname-associations`,describe:`Operations for hostname-associations`,builder:e=>e.command(l).command(d).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},p={command:`certificate-authorities`,describe:`Map client certificates to specific hostnames for mTLS authentication`,builder:e=>e.command(f).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{p as default};
2
+ import{D as e}from"./oauth-DC9g9uK_.mjs";import{n as t}from"./auth-B1CY5zpC.mjs";import{t as n}from"./output-B6fBFRqe.mjs";import{n as r,t as i}from"./progress-BLQ2xXwD.mjs";import{n as a,t as o}from"./body-parser-BO6mfo_W.mjs";import{n as s}from"./input-validation-BwUR9z8e.mjs";function c(e){return e.option(`mtls-certificate-id`,{type:`string`,description:`The UUID to match against for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the results will be the hostnames associated to your active Cloudflare Managed CA.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const l={command:`get`,describe:`List Hostname Associations.`,builder:c,handler:async a=>{let o={mtls_certificate_id:a[`mtls-certificate-id`]};if(a.dryRun){r({command:`cf certificate-authorities hostname-associations get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/certificate_authorities/hostname_associations`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},query:o,bodyKind:`none`});return}let s=await t(a),c=await e({zone:a.zone},s,{quiet:a.quiet});a.zoneId=c,n(await i(`Loading`,async()=>s.certificateAuthorities.hostnameAssociations.get({zone_id:c,...o})),{successLabel:`Loaded`})}};function u(e){return e.option(`hostnames`,{type:`string`,array:!0,description:`The hostnames field`}).option(`mtls-certificate-id`,{type:`string`,description:`The UUID for a certificate that was uploaded to the mTLS Certificate Management endpoint. If no mtls_certificate_id is given, the hostnames will be associated to your active Cloudflare Managed CA.`}).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 d={command:`update`,describe:`Replace Hostname Associations.`,builder:u,handler:async c=>{if(c.dryRun){r({command:`cf certificate-authorities hostname-associations update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${c.zone??c.zoneId??`<zone>`}/certificate_authorities/hostname_associations`,pathParams:{"zone-id":String(c.zone??c[`zone-id`]??``)},bodyKind:`json`,body:c.body===void 0?o({hostnames:c.hostnames,mtls_certificate_id:s(c[`mtls-certificate-id`],`mtls-certificate-id`,`text`)}):a(c.body)});return}let l=await t(c),u=await e({zone:c.zone},l,{quiet:c.quiet});if(c.zoneId=u,c.body){let e=a(c.body);n(await i(`Updating`,async()=>l.certificateAuthorities.hostnameAssociations.update({...e,zone_id:u})),{successLabel:`Updated`});return}let d=o({hostnames:c.hostnames,mtls_certificate_id:s(c[`mtls-certificate-id`],`mtls-certificate-id`,`text`)});n(await i(`Updating`,async()=>l.certificateAuthorities.hostnameAssociations.update({...d,zone_id:u})),{successLabel:`Updated`})}},f={command:`hostname-associations`,describe:`Operations for hostname-associations`,builder:e=>e.command(l).command(d).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},p={command:`certificate-authorities`,describe:`Map client certificates to specific hostnames for mTLS authentication`,builder:e=>e.command(f).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{p as default};