cf 0.9.1 → 0.11.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 (363) hide show
  1. package/README.md +20 -5
  2. package/dist/_meta/agent-context.json +46 -39
  3. package/dist/_meta/commands.json +9358 -10581
  4. package/dist/_meta/hand-written-commands.json +784 -0
  5. package/dist/_meta/schemas.json +14870 -14667
  6. package/dist/abuse-reports-sDBTV0qZ.mjs +8 -0
  7. package/dist/{access-CxyW_sIW.mjs → access-DcNzuCue.mjs} +1 -1
  8. package/dist/account-BX90zXn5.mjs +2 -0
  9. package/dist/account-tags-Bz3JG5hI.mjs +9 -0
  10. package/dist/accounts-DCuW3xyZ.mjs +28 -0
  11. package/dist/{acm-CHacxa3s.mjs → acm-zjfShZLS.mjs} +1 -1
  12. package/dist/{addressing-BnqNmmYN.mjs → addressing-DORQ64Ux.mjs} +11 -11
  13. package/dist/{agent-context-Bu6yvDqA.mjs → agent-context-BgPR_aQr.mjs} +1 -1
  14. package/dist/agent-memory-C0hAUMeC.mjs +6 -0
  15. package/dist/ai-BpEBGMT2.mjs +5 -0
  16. package/dist/ai-audit-DnU3vn3E.mjs +2 -0
  17. package/dist/ai-gateway-COOrr_Yw.mjs +13 -0
  18. package/dist/ai-search-DKbN9Tyd.mjs +7 -0
  19. package/dist/ai-security-C_I5lo58.mjs +4 -0
  20. package/dist/{alerting-qa8SkXlD.mjs → alerting-4T8gmZs-.mjs} +4 -4
  21. package/dist/analytics-Bxh4TCP7.mjs +3 -0
  22. package/dist/analytics_engine-fV56bjVN.mjs +2 -0
  23. package/dist/{api-security-MfHbfZyf.mjs → api-security-COk_i184.mjs} +20 -20
  24. package/dist/argo-DIRfvxvv.mjs +2 -0
  25. package/dist/args-DlUhyGU0.mjs +2 -0
  26. package/dist/artifacts-BBfXNfUg.mjs +4 -0
  27. package/dist/audit-logs-BlOrlAWe.mjs +2 -0
  28. package/dist/{auth-DuLchM18.mjs → auth-D3X9HYhD.mjs} +3 -3
  29. package/dist/auth-DPhNN3Ly.mjs +5 -0
  30. package/dist/billing-B9e4PnvN.mjs +3 -0
  31. package/dist/body-parser-BshbixEq.mjs +2 -0
  32. package/dist/bot-management-D2JVeS-V.mjs +5 -0
  33. package/dist/botnet-feed-BTzTYs5d.mjs +3 -0
  34. package/dist/brand-protection-C5Q6Gpw9.mjs +3 -0
  35. package/dist/{browser-extension-q79xHrVW.mjs → browser-extension-u5uA0Lwk.mjs} +1 -1
  36. package/dist/browser-run-CHGOCTdG.mjs +4 -0
  37. package/dist/build-D0FhOj40.mjs +8 -0
  38. package/dist/{cache-Cl7vKJwH.mjs → cache-C6V7PbQM.mjs} +1 -1
  39. package/dist/{calls-DtK_ANxq.mjs → calls-Bye8Tyy-.mjs} +1 -1
  40. package/dist/certificate-authorities-B-U_e6JJ.mjs +2 -0
  41. package/dist/cf-Ds4JFovl.mjs +18 -0
  42. package/dist/chunk-LQW53VED-22IYZovK.mjs +119 -0
  43. package/dist/chunk-QBZBEHZB-CKzQKcIp.mjs +2 -0
  44. package/dist/{client-certificates-BtPU9GsQ.mjs → client-certificates-3RrC-6LG.mjs} +1 -1
  45. package/dist/{client-side-security-DAn-3jwp.mjs → client-side-security-DIdKvRMT.mjs} +1 -1
  46. package/dist/cloud-connector-CL1jPQud.mjs +2 -0
  47. package/dist/cloudforce-one-DULeqLkR.mjs +36 -0
  48. package/dist/command-C9VP3xaA.mjs +2 -0
  49. package/dist/{completions-BHE4pRjB.mjs → completions-CqgGKRAC.mjs} +3 -3
  50. package/dist/config.d.mts +1460 -1348
  51. package/dist/config.mjs +1 -1
  52. package/dist/connector-interrupts-CXlLObDv.mjs +2 -0
  53. package/dist/connector-telemetry-events-BrYX4ig4.mjs +2 -0
  54. package/dist/connector-telemetry-events-latest-BbpcII3_.mjs +2 -0
  55. package/dist/connector-telemetry-snapshots-BdeBQYcM.mjs +2 -0
  56. package/dist/connector-telemetry-snapshots-latest-DuCiimXl.mjs +2 -0
  57. package/dist/{connectors-Bo6ZT8PT.mjs → connectors-BQwyBJ4_.mjs} +1 -1
  58. package/dist/containers-BrQtGiNp.mjs +58 -0
  59. package/dist/{content-scan-D03UfK2X.mjs → content-scan-DNzhXYkY.mjs} +1 -1
  60. package/dist/{csamScanner-DgS-7ADh.mjs → csamScanner-CFq5s1Q3.mjs} +1 -1
  61. package/dist/{ct-alerting-8AKtNnUg.mjs → ct-alerting-CH6UmsGQ.mjs} +1 -1
  62. package/dist/custom-certificates-DnG73Wg2.mjs +5 -0
  63. package/dist/custom-csrs-bhClr2SU.mjs +3 -0
  64. package/dist/custom-hostnames-C0eiGvG9.mjs +5 -0
  65. package/dist/custom-nameservers-CVMhhLm6.mjs +3 -0
  66. package/dist/custom-pages-DTINMR30.mjs +3 -0
  67. package/dist/d1-sKdExJYF.mjs +20 -0
  68. package/dist/data-security-mV3a6UfW.mjs +7 -0
  69. package/dist/dcv-delegation-dBu3jdRw.mjs +2 -0
  70. package/dist/delegate.mjs +1 -1
  71. package/dist/{deploy-DGlmjPTS.mjs → deploy-BL59O1O1.mjs} +1 -1
  72. package/dist/deploy-input-Dz6q-__n.mjs +2 -0
  73. package/dist/{dev-BbLV0Ti-.mjs → dev-BDaavgH1.mjs} +2 -2
  74. package/dist/diagnostics-CJV6qWUA.mjs +3 -0
  75. package/dist/{directory-CCndFkbQ.mjs → directory-B5zCMusW.mjs} +1 -1
  76. package/dist/{dispatch-namespaces-C48JQ9EA.mjs → dispatch-namespaces-Dg5lu5xX.mjs} +1 -1
  77. package/dist/dist-BHi7UhXO.mjs +72 -0
  78. package/dist/dist-BWpErtDM.mjs +384 -0
  79. package/dist/{dls-BBq99pjI.mjs → dls-t0hnIe_P.mjs} +1 -1
  80. package/dist/dns-C8FC2hbh.mjs +29 -0
  81. package/dist/{dns-firewall-DdwVtm12.mjs → dns-firewall-CuhhUm55.mjs} +1 -1
  82. package/dist/{dot-prop-6SRZBKHT-C_xd7eTS.mjs → dot-prop-6SRZBKHT-wwGHcwAa.mjs} +1 -1
  83. package/dist/dry-run-DL2V6yFm.mjs +2 -0
  84. package/dist/durable-objects-BLrgM3Cw.mjs +2 -0
  85. package/dist/email-auth-BmYrl0pO.mjs +2 -0
  86. package/dist/email-routing-CF3_Z957.mjs +6 -0
  87. package/dist/email-security-F7OYcMkZ.mjs +18 -0
  88. package/dist/email-sending-EyU3WvGQ.mjs +7 -0
  89. package/dist/fieldExtractors-Cno37T2m.mjs +3 -0
  90. package/dist/firewall-8YWWy4iB.mjs +11 -0
  91. package/dist/flagship-C4x0l-8J.mjs +4 -0
  92. package/dist/{fraud-AH47n-wL.mjs → fraud-HR_SdUx3.mjs} +1 -1
  93. package/dist/google-tag-gateway-BdcS0WnX.mjs +2 -0
  94. package/dist/{healthchecks-DfEUG007.mjs → healthchecks-4qOvjrTN.mjs} +2 -2
  95. package/dist/{hostnames-DQUiD3Vr.mjs → hostnames-DehdYOMz.mjs} +1 -1
  96. package/dist/{hyperdrive-RyQboMWI.mjs → hyperdrive-3gD3hn70.mjs} +1 -1
  97. package/dist/iam-DR72hmii.mjs +6 -0
  98. package/dist/images-CeKc5JPh.mjs +8 -0
  99. package/dist/index.mjs +1 -1
  100. package/dist/intel-DtFix9WL.mjs +8 -0
  101. package/dist/{interactive-mV8PABm6.mjs → interactive-C7M55Wxx.mjs} +1 -1
  102. package/dist/ips-CtWCjXAN.mjs +2 -0
  103. package/dist/{keyless-certificates-oNu5jWKF.mjs → keyless-certificates-Dk24yQFz.mjs} +1 -1
  104. package/dist/keys-BmhG6Kn1.mjs +2 -0
  105. package/dist/{kv-Bi9B4E0A.mjs → kv-BuVPAuZP.mjs} +1 -1
  106. package/dist/{leaked-credential-checks-DKRjBLcr.mjs → leaked-credential-checks-XcZmt1I-.mjs} +1 -1
  107. package/dist/load-balancers-CylN-l7n.mjs +6 -0
  108. package/dist/{local-DTyuGwTw.mjs → local-Be3lg_9E.mjs} +1 -1
  109. package/dist/{local-runtime-IAXhEugU.mjs → local-runtime-Ce7k598H.mjs} +1 -1
  110. package/dist/logexplorer-CvRPoKbj.mjs +17 -0
  111. package/dist/logo-matches-Heuft3yF.mjs +2 -0
  112. package/dist/logos-DRYjGBDq.mjs +3 -0
  113. package/dist/logpush-Dve9jOMp.mjs +4 -0
  114. package/dist/{logs-DmWWL5f9.mjs → logs-SC86FE89.mjs} +1 -1
  115. package/dist/{magic-cloud-networking-XbTa6P52.mjs → magic-cloud-networking-DXzeqwX-.mjs} +4 -4
  116. package/dist/magic-network-monitoring-DW0Jl74i.mjs +4 -0
  117. package/dist/magic-transit-BK_3asH2.mjs +111 -0
  118. package/dist/managed-transforms-B6TV4qoE.mjs +3 -0
  119. package/dist/matches-Iss9Fo4R.mjs +2 -0
  120. package/dist/mcp-8wxXT6JU.mjs +4 -0
  121. package/dist/mesh-Bf9UAS4J.mjs +4 -0
  122. package/dist/{moq-CJpE-eNj.mjs → moq-ZKMFOeVz.mjs} +1 -1
  123. package/dist/mtls-certificates-DoWm6GiE.mjs +3 -0
  124. package/dist/{network-D2WRXCDe.mjs → network-B1lBARU9.mjs} +1 -1
  125. package/dist/{network-interconnects-Clq4X1U8.mjs → network-interconnects-CLYIFHfU.mjs} +1 -1
  126. package/dist/oauth-DuEONNgC.mjs +14 -0
  127. package/dist/{oauth-clients-hilWfAlm.mjs → oauth-clients-DgiTzLzu.mjs} +1 -1
  128. package/dist/oauth-scopes-BOBRMxjm.mjs +2 -0
  129. package/dist/observability-Jya7-zkl.mjs +4 -0
  130. package/dist/{open-PBXRGS4R-C46yIm3u.mjs → open-PBXRGS4R-CX8K4WYl.mjs} +3 -3
  131. package/dist/{organization-D41rIvJa.mjs → organization-CYxYV4e0.mjs} +6 -6
  132. package/dist/organizations-SacGUW44.mjs +2 -0
  133. package/dist/origin-ca-certificates-Ph1bJGQ1.mjs +3 -0
  134. package/dist/origin-post-quantum-encryption-BBLiGAGB.mjs +2 -0
  135. package/dist/origin-tls-client-auth-DSDgTN2X.mjs +4 -0
  136. package/dist/{output-DgW1hQGX.mjs → output-Ccqw2WOb.mjs} +1 -1
  137. package/dist/page-rules-BqEyFR2c.mjs +27 -0
  138. package/dist/pages-CQ7ZVWk1.mjs +14 -0
  139. package/dist/pay-per-crawl-BMe_3_Qj.mjs +4 -0
  140. package/dist/pipelines-6De2Pe2C.mjs +6 -0
  141. package/dist/precursor-iwK-1P_d.mjs +4 -0
  142. package/dist/progress-BqQcF5QH.mjs +2 -0
  143. package/dist/project-settings-C_1-JI6Y.mjs +3 -0
  144. package/dist/prompt-B0sWIs9c.mjs +3 -0
  145. package/dist/{public-BwQqexwo-DbWj8rrr.mjs → public-BYCVISMH-DnMJ5Jct.mjs} +1 -1
  146. package/dist/queries-c7zvnfEQ.mjs +3 -0
  147. package/dist/queues-BU6y16qS.mjs +6 -0
  148. package/dist/r2-Jo3QMahK.mjs +24 -0
  149. package/dist/{r2-data-catalog-DLtf9d6o.mjs → r2-data-catalog-B-tw-JdG.mjs} +1 -1
  150. package/dist/radar-DIYAMEof.mjs +2 -0
  151. package/dist/{rate-limits-B1YjnGue.mjs → rate-limits-DewOcznT.mjs} +1 -1
  152. package/dist/raw-fetch-Cc-MjHeL.mjs +2 -0
  153. package/dist/realtimekit-cnZEVNDn.mjs +7 -0
  154. package/dist/registrar-BsWr_aPM.mjs +23 -0
  155. package/dist/{registrar-sandbox-0i1T3zne.mjs → registrar-sandbox-BlcpUyIH.mjs} +6 -6
  156. package/dist/{registry-DDcSvd8H.mjs → registry-jifR3_Y6.mjs} +1 -1
  157. package/dist/reporting--1AyTV7k.mjs +2 -0
  158. package/dist/request-tracers-C_VX7X6-.mjs +2 -0
  159. package/dist/{resource-sharing-Ctdi9D-j.mjs → resource-sharing-Br5dqr3o.mjs} +1 -1
  160. package/dist/resource-tagging-C33U6T74.mjs +2 -0
  161. package/dist/rules-BfjzALMi.mjs +4 -0
  162. package/dist/rulesets-3i_1Vwt-.mjs +5 -0
  163. package/dist/rum-CjmIckiR.mjs +4 -0
  164. package/dist/{schema-BeXPWeK9.mjs → schema-1mwmslUV.mjs} +1 -1
  165. package/dist/schema-flags-llLJuFFw.mjs +5 -0
  166. package/dist/{scim-BgGsmHrL.mjs → scim-pApmzA5B.mjs} +1 -1
  167. package/dist/sdk-ZctLa5jW.mjs +3 -0
  168. package/dist/{secrets-store-BCpFhYFv.mjs → secrets-store-DBC9WJau.mjs} +1 -1
  169. package/dist/security-center-Djm06dq-.mjs +2 -0
  170. package/dist/{security-txt-Be2Bif0z.mjs → security-txt-Ci7bP4zH.mjs} +1 -1
  171. package/dist/{share-Bz2tFTUP.mjs → share-Dj-MNXrw.mjs} +4 -4
  172. package/dist/shared-BJvq4DkR.mjs +290 -0
  173. package/dist/smart-shield--8EpJjrF.mjs +4 -0
  174. package/dist/snippets-Dyz0PH60.mjs +4 -0
  175. package/dist/{spawn-CHkoow5W.mjs → spawn-C5Z7oWdp.mjs} +108 -112
  176. package/dist/{spectrum-BA0a42eM.mjs → spectrum-rAHWz8rH.mjs} +1 -1
  177. package/dist/{speed-mmOjxOzo.mjs → speed-BKepWBXj.mjs} +1 -1
  178. package/dist/src-gJma71Ec.mjs +108 -0
  179. package/dist/{ssl-Yr6kELqg.mjs → ssl-KdFiY3ev.mjs} +1 -1
  180. package/dist/startup-profile-GLNPHQ9U.mjs +17 -0
  181. package/dist/{state-DZC531l2.mjs → state-Cu3cItUg.mjs} +1 -1
  182. package/dist/{stream-Cu0kYWbc.mjs → stream-CKJ6Tb0M.mjs} +13 -13
  183. package/dist/submit-BxbKKhBn.mjs +2 -0
  184. package/dist/tags-DA8dq9fx.mjs +2 -0
  185. package/dist/tenant-DLXw48hS.mjs +2 -0
  186. package/dist/tenant-custom-nameservers-9G93XuvU.mjs +3 -0
  187. package/dist/{tools-D2Xxfkrc.mjs → tools-x8bj9E6b.mjs} +1 -1
  188. package/dist/{tunnel-CDYkWjnt.mjs → tunnel-CNQA5Flp.mjs} +1 -1
  189. package/dist/tunnels-CC10EOsU.mjs +2 -0
  190. package/dist/turnstile-CH58hnf4.mjs +23 -0
  191. package/dist/{ui-DIpjthrV.mjs → ui-CmnnBm_O.mjs} +1 -1
  192. package/dist/url-info-BpCgdUtL.mjs +2 -0
  193. package/dist/{url-normalization-BeKkOZz7.mjs → url-normalization-BzuynEy1.mjs} +1 -1
  194. package/dist/url-scanner-APIZbhB7.mjs +2 -0
  195. package/dist/user-2-NGebfI.mjs +12 -0
  196. package/dist/values-S_bNv819.mjs +2 -0
  197. package/dist/{vectorize-CjXfiFH4.mjs → vectorize-Bv7feLBC.mjs} +1 -1
  198. package/dist/waiting-rooms-Dk4LIpvm.mjs +11 -0
  199. package/dist/{web-assets-BzM5vVzy.mjs → web-assets-C1UmOyzD.mjs} +1 -1
  200. package/dist/web3-GnUocVYH.mjs +4 -0
  201. package/dist/workers-J1-PLwdl.mjs +28 -0
  202. package/dist/{workers-builds-B44wc67O.mjs → workers-builds-DCHmWOMS.mjs} +4 -4
  203. package/dist/{workflows-rFuQWClt.mjs → workflows-CArfEI2c.mjs} +2 -2
  204. package/dist/zaraz-mg2YlR3_.mjs +2 -0
  205. package/dist/zero-trust-DVdUPtj1.mjs +93 -0
  206. package/dist/zone-DMAfrDJX.mjs +2 -0
  207. package/dist/zones-CNwxUi7I.mjs +21 -0
  208. package/package.json +10 -7
  209. package/dist/abuse-reports-CzDAjFpo.mjs +0 -8
  210. package/dist/account-Dd4-tDYJ.mjs +0 -2
  211. package/dist/account-tags-65fAlHrf.mjs +0 -9
  212. package/dist/accounts-Bp5KGc6r.mjs +0 -28
  213. package/dist/agent-memory-D--BQS0W.mjs +0 -6
  214. package/dist/ai-BnVlQDiI.mjs +0 -5
  215. package/dist/ai-audit-CfpDKXkD.mjs +0 -2
  216. package/dist/ai-gateway-oG4j_oYN.mjs +0 -13
  217. package/dist/ai-search-B2l3B_jn.mjs +0 -7
  218. package/dist/ai-security-byjIIrfl.mjs +0 -4
  219. package/dist/analytics-DeIKjC9n.mjs +0 -3
  220. package/dist/analytics_engine-BnECMIWJ.mjs +0 -2
  221. package/dist/argo-DFerMyXF.mjs +0 -2
  222. package/dist/artifacts-CtyEYYDa.mjs +0 -4
  223. package/dist/audit-logs-retFtvow.mjs +0 -2
  224. package/dist/auth-aazs91XL.mjs +0 -5
  225. package/dist/billing-CxQVqpGZ.mjs +0 -3
  226. package/dist/body-parser-CYD7PKFC.mjs +0 -2
  227. package/dist/bot-management-Rli7v7tg.mjs +0 -5
  228. package/dist/botnet-feed-Cw6XSEf8.mjs +0 -3
  229. package/dist/brand-protection-CTvnHGfV.mjs +0 -3
  230. package/dist/browser-run-FwtwnBzA.mjs +0 -4
  231. package/dist/build-Dji9BYmV.mjs +0 -2
  232. package/dist/certificate-authorities-DZP1RzAs.mjs +0 -2
  233. package/dist/cf-oSz9pud_.mjs +0 -18
  234. package/dist/chunk-LQW53VED-Xakf_rUn.mjs +0 -499
  235. package/dist/cloud-connector-BpVcvhjZ.mjs +0 -2
  236. package/dist/cloudforce-one-2PecncfX.mjs +0 -30
  237. package/dist/connector-interrupts-ollUcksZ.mjs +0 -2
  238. package/dist/connector-telemetry-events-D5_3X7XW.mjs +0 -2
  239. package/dist/connector-telemetry-snapshots-CJ9gLRFR.mjs +0 -2
  240. package/dist/containers-Bog7j0Hw.mjs +0 -54
  241. package/dist/custom-certificates-4y35UC1X.mjs +0 -5
  242. package/dist/custom-csrs-DwBrLh-H.mjs +0 -4
  243. package/dist/custom-hostnames-CDIAnsRa.mjs +0 -5
  244. package/dist/custom-nameservers-stk7ymnP.mjs +0 -3
  245. package/dist/custom-pages-vfDxrXbt.mjs +0 -4
  246. package/dist/d1-Cllm-iTT.mjs +0 -20
  247. package/dist/data-security-rnoSCEdL.mjs +0 -7
  248. package/dist/dcv-delegation-DCRCOL6l.mjs +0 -2
  249. package/dist/deploy-input-DhCo1I0I.mjs +0 -242
  250. package/dist/diagnostics-D5Yo2xqx.mjs +0 -3
  251. package/dist/dist-COfwjT96.mjs +0 -72
  252. package/dist/dns-DdQYtenF.mjs +0 -29
  253. package/dist/durable-objects-BvxXBht_.mjs +0 -2
  254. package/dist/email-CGOC_evd.mjs +0 -2
  255. package/dist/email-auth-DFvXKSkg.mjs +0 -2
  256. package/dist/email-routing-QBRPBlyl.mjs +0 -6
  257. package/dist/email-security-BFagcRPP.mjs +0 -18
  258. package/dist/email-sending-Ddhe7xjN.mjs +0 -7
  259. package/dist/filters-CGisPGD1.mjs +0 -4
  260. package/dist/firewall-DD8U-Brd.mjs +0 -11
  261. package/dist/flagship-FJHc4mFi.mjs +0 -4
  262. package/dist/google-tag-gateway-149kbuG_.mjs +0 -2
  263. package/dist/iam-BhHYhMXO.mjs +0 -6
  264. package/dist/images-CDViyKtZ.mjs +0 -8
  265. package/dist/intel-YHZbPlS3.mjs +0 -8
  266. package/dist/ips-BpCdldFx.mjs +0 -2
  267. package/dist/keys-yYtv7Ztr.mjs +0 -2
  268. package/dist/load-balancers-jRCN75mX.mjs +0 -7
  269. package/dist/logexplorer-kO8CULiK.mjs +0 -24
  270. package/dist/logo-matches-LyDAYPbI.mjs +0 -2
  271. package/dist/logos-O9f5bGSB.mjs +0 -3
  272. package/dist/logpush-dtXLu3Ck.mjs +0 -5
  273. package/dist/magic-network-monitoring-CpfkgZMp.mjs +0 -4
  274. package/dist/magic-transit-DwgZeIj-.mjs +0 -111
  275. package/dist/managed-transforms-DCmogkxv.mjs +0 -3
  276. package/dist/matches-BAeN8VM1.mjs +0 -2
  277. package/dist/mcp-DKZ2D050.mjs +0 -4
  278. package/dist/media-CnxgOViL.mjs +0 -2
  279. package/dist/mesh-CzIPtuaM.mjs +0 -4
  280. package/dist/mtls-certificates-Bbm_1lQI.mjs +0 -3
  281. package/dist/oauth-BPizUUqP.mjs +0 -15
  282. package/dist/oauth-scopes-CmbgsPYd.mjs +0 -2
  283. package/dist/observability-DXYgDdU5.mjs +0 -4
  284. package/dist/organizations-eNzfOwlP.mjs +0 -2
  285. package/dist/origin-ca-certificates-DaiAmw45.mjs +0 -3
  286. package/dist/origin-post-quantum-encryption-7YztBged.mjs +0 -2
  287. package/dist/origin-tls-client-auth-DRwURM8s.mjs +0 -4
  288. package/dist/page-rules-B2Csdc4h.mjs +0 -18
  289. package/dist/pages-BAL6Q7OY.mjs +0 -14
  290. package/dist/pay-per-crawl-C-1-ZAtn.mjs +0 -4
  291. package/dist/pipelines-cyQOuFLb.mjs +0 -6
  292. package/dist/precursor-BrweY39h.mjs +0 -4
  293. package/dist/progress-B84wYh91.mjs +0 -2
  294. package/dist/prompt-CDtLWxNv.mjs +0 -3
  295. package/dist/queries-oM8uGZy5.mjs +0 -3
  296. package/dist/queues-CTx04ZNw.mjs +0 -6
  297. package/dist/r2-CnlIUn7R.mjs +0 -24
  298. package/dist/radar-CGNgGh8v.mjs +0 -2
  299. package/dist/raw-fetch-Dz-QBoP_.mjs +0 -2
  300. package/dist/realtimekit-BPwzhNS9.mjs +0 -7
  301. package/dist/registrar-BEcb90RX.mjs +0 -21
  302. package/dist/reporting-CLbjHlnw.mjs +0 -2
  303. package/dist/request-tracers-BcKpofP1.mjs +0 -2
  304. package/dist/resource-tagging-DGEyVTDN.mjs +0 -2
  305. package/dist/rules-CmuB5rIN.mjs +0 -4
  306. package/dist/rulesets-CGaMq8vG.mjs +0 -8
  307. package/dist/rum-QT6EP4JK.mjs +0 -4
  308. package/dist/schema-flags-DHryz6SF.mjs +0 -5
  309. package/dist/sdk-m4xeaua4.mjs +0 -3
  310. package/dist/security-center-BNm4uPVB.mjs +0 -2
  311. package/dist/session-Ckt20hHa.mjs +0 -2
  312. package/dist/shared-BzPQog8H.mjs +0 -2
  313. package/dist/smart-shield-SODkOUyO.mjs +0 -4
  314. package/dist/snippets-B5jY8v_7.mjs +0 -4
  315. package/dist/src-CHW7s5IS.mjs +0 -108
  316. package/dist/submit-Dl_27e0n.mjs +0 -2
  317. package/dist/tags-Cdo_Pwtr.mjs +0 -2
  318. package/dist/tenant-EX-ANl6X.mjs +0 -2
  319. package/dist/tenant-custom-nameservers-BPHUeckw.mjs +0 -3
  320. package/dist/triggers-Bf9hbP3h.mjs +0 -2
  321. package/dist/tunnels-CgyX8R2J.mjs +0 -2
  322. package/dist/turnstile-BUtzlW-0.mjs +0 -23
  323. package/dist/url-info-CJsa1Oc9.mjs +0 -2
  324. package/dist/url-scanner-Cz-yl0_3.mjs +0 -2
  325. package/dist/user-BxHjEqpd.mjs +0 -12
  326. package/dist/values-C43NurfT.mjs +0 -2
  327. package/dist/versions-BFbc90Wu.mjs +0 -2
  328. package/dist/waiting-rooms-C5jSQv_r.mjs +0 -11
  329. package/dist/web3-Ctv9HGiR.mjs +0 -4
  330. package/dist/workers-D-YbIedB.mjs +0 -24
  331. package/dist/zaraz-BA6kY-b6.mjs +0 -2
  332. package/dist/zero-trust-DOFLlUz1.mjs +0 -102
  333. package/dist/zone-B_rgejLV.mjs +0 -2
  334. package/dist/zone-tags-BWdza4rH.mjs +0 -9
  335. package/dist/zones-DTWO7Vvn.mjs +0 -21
  336. /package/dist/{Page-C-JHZnIy.mjs → Page-9ry_XAVC.mjs} +0 -0
  337. /package/dist/{alerts-B85uj2Vx.mjs → alerts-15-IW4jE.mjs} +0 -0
  338. /package/dist/{autorag-Do9l_LyY.mjs → autorag-CFwRkEKw.mjs} +0 -0
  339. /package/dist/{brands-DateHCdd.mjs → brands-BgT1vu9B.mjs} +0 -0
  340. /package/dist/{chunk-6EUZQHAF-l8tR2Qyj.mjs → chunk-6EUZQHAF-C3w62dek.mjs} +0 -0
  341. /package/dist/{chunk-Q72B4Q5Z-CPy_WJKU.mjs → chunk-Q72B4Q5Z-DVMMVVEs.mjs} +0 -0
  342. /package/dist/{clear-CB2kgcEB.mjs → clear-BlCK85Me.mjs} +0 -0
  343. /package/dist/{cli-types-BWdZbsFE.mjs → cli-types-DAYeL_Mj.mjs} +0 -0
  344. /package/dist/{domain-info-DJHEt8JJ.mjs → domain-info-C7LBxPBt.mjs} +0 -0
  345. /package/dist/{health-buY5f5pp.mjs → health-DZFfafkX.mjs} +0 -0
  346. /package/dist/{input-validation-BBKJRoRB.mjs → input-validation-QDIYu7Vb.mjs} +0 -0
  347. /package/dist/{internal-CwyoJUHh.mjs → internal-BKHC2D1Y.mjs} +0 -0
  348. /package/dist/{live-wEpA5V_n.mjs → live-DwCvDmaH.mjs} +0 -0
  349. /package/dist/{metadata-8AkOftcB.mjs → metadata-B5yfL0ln.mjs} +0 -0
  350. /package/dist/{rate-limit-analytics-Bf1uT0lT.mjs → rate-limit-analytics-B8Vuu1sU.mjs} +0 -0
  351. /package/dist/{ready-CBSCPiHE.mjs → ready-D9H2zHHI.mjs} +0 -0
  352. /package/dist/{recent-submissions-Dpmq1f7z.mjs → recent-submissions-BPo0J80d.mjs} +0 -0
  353. /package/dist/{refute-u7ZPQJZy.mjs → refute-2W8NLCN4.mjs} +0 -0
  354. /package/dist/{resolve-XgxRJ-Ys.mjs → resolve-B8CyM1mi.mjs} +0 -0
  355. /package/dist/{scan-logo-Ba8WZAyp.mjs → scan-logo-D5x6F1Y0.mjs} +0 -0
  356. /package/dist/{scan-page-Bcq3Ei86.mjs → scan-page-CWhta3x7.mjs} +0 -0
  357. /package/dist/{search-D9WDwnV4.mjs → search-DZmBQJL9.mjs} +0 -0
  358. /package/dist/{signed-url-CjPbG5zV.mjs → signed-url-CQrmWgz5.mjs} +0 -0
  359. /package/dist/{submission-info-Z9hhp9Rq.mjs → submission-info-C98A0bqq.mjs} +0 -0
  360. /package/dist/{theme-BePJemMn.mjs → theme-CrIBazAF.mjs} +0 -0
  361. /package/dist/{total-queries-aKAYX1iX.mjs → total-queries-BZoaFoDE.mjs} +0 -0
  362. /package/dist/{tracked-domains-Ck7Jm4Kn.mjs → tracked-domains-CNHogPHx.mjs} +0 -0
  363. /package/dist/{verify-2yi0H93r.mjs → verify-4e4L9IRk.mjs} +0 -0
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import{n as e}from"./chunk-vbHwaUoU.mjs";import{t}from"./src-gJma71Ec.mjs";import{O as n}from"./dist-BWpErtDM.mjs";import{a as r,o as i}from"./theme-CrIBazAF.mjs";import"./ui-CmnnBm_O.mjs";import{_ as a,a as o,b as s,c,d as l,f as u,g as d,h as f,i as p,l as m,m as h,n as ee,o as g,p as _,s as v,u as te,v as y,y as b}from"./dist-BHi7UhXO.mjs";import{c as x}from"./interactive-C7M55Wxx.mjs";import{a as ne,i as re,n as ie,r as ae,t as oe}from"./spawn-C5Z7oWdp.mjs";import*as S from"node:fs";import C from"node:fs";import*as w from"node:path";import T from"node:path";import"node:url";import{AsyncLocalStorage as se}from"node:async_hooks";import*as E from"node:fs/promises";var ce=Object.getOwnPropertyNames,le=(e,t)=>function(){return t||(0,e[ce(e)[0]])((t={exports:{}}).exports,t),t.exports};const D=f({remote:g().optional()}),ue=f({htmlHandling:p([`auto-trailing-slash`,`drop-trailing-slash`,`force-trailing-slash`,`none`]).optional(),notFoundHandling:p([`single-page-application`,`404-page`,`none`]).optional(),runWorkerFirst:y([o(d()),g()]).optional()}),de=f({type:m(`browser`),dev:D.optional()}),fe=f({type:m(`worker`),worker:d(),exportName:d().optional(),props:h(d(),b()).optional(),dev:D.optional()}),pe=f({type:m(`d1`),name:d().optional(),id:d().optional(),dev:D.optional()}),me=f({type:m(`kv`),id:d().optional(),dev:D.optional()}),he=f({type:m(`queue`),name:d().optional(),deliveryDelay:u().optional(),dev:D.optional()}),ge=f({type:m(`r2`),name:d().optional(),jurisdiction:d().optional(),dev:D.extend({experimentalS3Credentials:_({accessKeyId:d(),secretAccessKey:d()}).optional()}).optional()}),_e=f({type:m(`analytics-engine-dataset`),name:d().optional()}),ve=f({type:m(`flagship`),id:d().optional(),dev:D.optional()}),ye=f({type:m(`hyperdrive`),id:d(),dev:f({connectionString:d().optional()}).optional()}),be=v(`type`,[f({type:m(`agent-memory`),namespace:d(),dev:D.optional()}),f({type:m(`ai`),dev:D.optional()}),f({type:m(`ai-search`),name:d(),dev:D.optional()}),f({type:m(`ai-search-namespace`),namespace:d(),dev:D.optional()}),_e,f({type:m(`artifacts`),namespace:d(),dev:D.optional()}),f({type:m(`assets`)}),de,pe,f({type:m(`dispatch-namespace`),namespace:d().optional(),outbound:f({worker:d(),parameters:o(d()).optional()}).optional(),dev:D.optional()}),f({type:m(`durable-object`),worker:d(),exportName:d()}),ve,ye,f({type:m(`images`),dev:D.optional()}),f({type:m(`json`),value:c()}),me,f({type:m(`logfwdr`),destination:d()}),f({type:m(`media`),dev:D.optional()}),f({type:m(`mtls-certificate`),id:d(),dev:D.optional()}),f({type:m(`pipeline`),name:d(),dev:D.optional()}),he,f({type:m(`rate-limit`),namespace:d(),simple:f({limit:u(),period:y([m(10),m(60)])})}),ge,f({type:m(`secret`)}),f({type:m(`secrets-store-secret`),storeId:d(),secretName:d()}),f({type:m(`send-email`),destinationAddress:d().optional(),allowedDestinationAddresses:o(d()).optional(),allowedSenderAddresses:o(d()).optional(),dev:D.optional()}).refine(e=>e.destinationAddress===void 0||e.allowedDestinationAddresses===void 0,{message:`"send-email" bindings cannot specify both "destinationAddress" and "allowedDestinationAddresses"`}),f({type:m(`stream`),dev:D.optional()}),f({type:m(`text`),value:d()}),f({type:m(`vectorize`),name:d(),dev:D.optional()}),f({type:m(`version-metadata`)}),f({type:m(`vpc-service`),id:d(),dev:D.optional()}),f({type:m(`vpc-network`),tunnelId:d().optional(),networkId:d().optional(),dev:D.optional()}).refine(e=>e.tunnelId!==void 0!=(e.networkId!==void 0),{error:({input:e})=>{let t=e;return t.tunnelId!==void 0&&t.networkId!==void 0?`"vpc-network" bindings must specify exactly one of "tunnelId" or "networkId", not both`:`"vpc-network" bindings must specify either "tunnelId" or "networkId"`}}),f({type:m(`web-search`),dev:D.optional()}),fe,f({type:m(`worker-loader`)})]),xe=te({type:a([`unsafe:`,d().min(1)]),dev:f({plugin:f({package:d(),name:d()}),options:h(d(),b()).optional()}).optional()}),Se=b().transform((e,t)=>{let n=(typeof e==`object`&&e&&`type`in e&&typeof e.type==`string`&&e.type.startsWith(`unsafe:`)?xe:be).safeParse(e);return n.success?n.data:(t.issues.push(...n.error.issues),s)}),O=f({enabled:g(),crossVersionCache:g().optional()}),k=new Set([`ai`,`assets`,`browser`,`images`,`media`,`stream`,`version-metadata`,`web-search`]),A=new Intl.ListFormat(`en-US`);function j(e,t){let n=new Set,r=new Set;for(let t of Object.values(e)){let e=t.type;k.has(e)&&(n.has(e)&&r.add(e),n.add(e))}r.size>0&&t.addIssue({code:`custom`,message:`${A.format([...r].sort())} bindings can only be defined once`})}const Ce=h(d(),Se).superRefine(j).optional(),M=f({type:m(`durable-object`),state:m(`created`).optional(),storage:p([`sqlite`,`legacy-kv`]),container:d().optional()}),we=f({type:m(`durable-object`),state:m(`deleted`)}),Te=f({type:m(`durable-object`),state:m(`renamed`),renamedTo:d()}),Ee=f({type:m(`durable-object`),state:m(`transferred`),transferredTo:d()}),N=f({type:m(`durable-object`),state:m(`expecting-transfer`),storage:p([`sqlite`,`legacy-kv`]),transferFrom:d(),container:d().optional()}),De=f({type:m(`worker`),cache:f({enabled:g()}).optional()}),Oe=y([M.extend({storage:m(`sqlite`)}),M.omit({container:!0}).extend({storage:m(`legacy-kv`)}),we,Te,Ee,N.extend({storage:m(`sqlite`)}),N.omit({container:!0}).extend({storage:m(`legacy-kv`)}),De]),ke=f({cpuMs:u().optional(),subrequests:u().optional()}),Ae=f({enabled:g().optional(),headSamplingRate:u().optional(),redactQueryString:g().optional(),logs:f({enabled:g().optional(),headSamplingRate:u().optional(),invocationLogs:g().optional(),persist:g().optional(),destinations:o(d()).optional()}).optional(),traces:f({enabled:g().optional(),headSamplingRate:u().optional(),persist:g().optional(),destinations:o(d()).optional()}).optional()}),je=y([f({mode:p([`off`,`smart`]),hint:d().optional()}),f({mode:m(`targeted`).optional(),region:d()}),f({mode:m(`targeted`).optional(),host:d()}),f({mode:m(`targeted`).optional(),hostname:d()})]),Me=f({worker:d(),streaming:g().optional()}),Ne=v(`type`,[f({type:m(`email`),addresses:o(d())}),f({type:m(`fetch`),pattern:d(),zone:d().optional()}),f({type:m(`queue`),name:d(),deadLetterQueue:d().optional(),maxBatchSize:u().optional(),maxBatchTimeout:u().optional(),maxConcurrency:u().nullable().optional(),maxRetries:u().optional(),retryDelay:u().optional(),visibilityTimeoutMs:u().optional()}),f({type:m(`scheduled`),schedule:d()}),f({type:m(`connect`),protocol:p([`tcp`]),port:u(),address:d().optional()})]),Pe=f({metadata:h(d(),b()).optional(),capnp:y([f({basePath:d(),sourceSchemas:o(d()),compiledSchema:l().optional()}),f({basePath:l().optional(),sourceSchemas:l().optional(),compiledSchema:d()})]).optional()}),P=f({type:m(`worker`),name:d(),compatibilityDate:d(),compatibilityFlags:o(d()).optional(),assets:ue.optional(),domains:o(d()).optional(),triggers:o(Ne).optional(),tailConsumers:o(Me).optional(),cache:O.optional(),placement:je.optional(),limits:ke.optional(),logpush:g().optional(),observability:Ae.optional(),workersDev:g().optional(),previewUrls:g().optional(),firstPartyWorker:g().optional(),unsafe:Pe.optional(),env:Ce,exports:h(d(),Oe).optional()}),Fe=P.extend({entrypoint:y([d(),f({default:d()})]).transform(e=>typeof e==`string`?e:e.default).optional()}),F=f({type:m(`settings`),accountId:d().optional(),complianceRegion:p([`public`,`fedramp-high`]).optional()}),Ie=F.extend({mode:d().optional()}),I=`settings`,Le=new Set([`worker`,`settings`]);function Re(e){return`The \`${e}\` export is not a supported export type. Move constants, helper functions, and other unsupported exports to a separate module.`}const ze=h(d(),b()).check(e=>{for(let[t,n]of Object.entries(e.value)){let r=typeof n==`object`&&!!n,i=r&&`type`in n?n.type:void 0;if(typeof i!=`string`||!Le.has(i)){e.issues.push({code:`custom`,input:n,path:r?[t,`type`]:[t],message:Re(t)});continue}let a=t===I,o=i===`settings`;o&&!a?e.issues.push({code:`custom`,input:n,path:[t],message:`A \`settings\` config is only allowed on the \`${I}\` export; found one on the \`${t}\` export.`}):a&&!o&&e.issues.push({code:`custom`,input:n,path:[t],message:`The \`${I}\` export is reserved for a \`settings\` config; found a \`${i}\` config.`})}}),Be=_({settings:F.optional()}).catchall(Fe);ze.pipe(Be);const L=p([`esm`,`cjs`,`python`,`python-requirement`,`wasm`,`text`,`data`,`json`,`sourcemap`]),Ve=h(d(),f({type:L})),He=f({type:p([`partial`,`complete`]),mainModule:d(),modules:Ve}).superRefine((e,t)=>{let n=e.modules[e.mainModule];e.type===`complete`&&n===void 0&&t.addIssue({code:`custom`,path:[`modules`,e.mainModule],message:`A complete manifest must include its main module.`}),e.type===`partial`&&n!==void 0&&t.addIssue({code:`custom`,path:[`modules`,e.mainModule],message:`A partial manifest must not include its main module.`})}),Ue=P.extend({manifest:He.optional()});le({"../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/dist/index.js":(e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dedent=void 0;function t(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
3
+ [ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
4
+ `)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
5
+ `)&&(o=String(e).split(`
6
+ `).map(function(e,t){return t===0?e:``+i+e}).join(`
7
+ `)),a+=o+n[t+1]}),a}e.dedent=t})})();var We=Object.defineProperty,R=(e,t)=>We(e,`name`,{value:t,configurable:!0}),z=class extends Error{static{R(this,`UserError`)}telemetryMessage;constructor(e,t){super(e,t),Object.setPrototypeOf(this,new.target.prototype),this.telemetryMessage=typeof t?.telemetryMessage==`string`?t.telemetryMessage:t?.telemetryMessage?e:void 0}};(class extends z{static{R(this,`DeprecationError`)}constructor(e,t){super(`Deprecation:
8
+ ${e}`,t)}});var B=class extends z{static{R(this,`FatalError`)}code;constructor(e,t){super(e,t),this.code=t.code}};(class extends z{static{R(this,`CommandLineArgsError`)}});var Ge=class extends B{static{R(this,`JsonFriendlyFatalError`)}};(class extends Error{static{R(this,`MissingConfigError`)}telemetryMessage;constructor(e){super(`Missing config value for ${e}`),this.telemetryMessage=`Missing config value for ${e}`}});function Ke(e,t,n){return t?new Ge(JSON.stringify(e),n):new B(`${e}`,n)}R(Ke,`createFatalError`),new se;const V=`config.json`,H=`default`;function U(e){return w.resolve(e,`.cloudflare/output`)}function qe(e){return w.join(U(e),`v0`,V)}function W(e){return w.join(U(e),`v0`,`workers`)}function G(e,t=H){if(t.length===0||t===`.`||t===`..`||t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`))throw Error(`Worker directory names must be non-empty, single path segments.`);return w.join(W(e),t)}function Je(e,t=H){return w.join(G(e,t),V)}function Ye(e,t=H){return w.join(G(e,t),`bundle`)}function Xe(e,t=H){return w.join(G(e,t),`assets`)}var Ze=Object.defineProperty,K=(e,t)=>Ze(e,`name`,{value:t,configurable:!0});function Qe(e){return C.statSync(e,{throwIfNoEntry:!1})?.isDirectory()??!1}K(Qe,`isDirectory`);function $e(e,{fireAndForget:t=!1}={}){let n=C.promises.rm(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100});if(t)n.catch(()=>{});else return n}K($e,`removeDir`);function et(e){C.rmSync(e,{recursive:!0,force:!0,maxRetries:5,retryDelay:100})}K(et,`removeDirSync`);var q=class extends Error{constructor(e){super(`Build Output Specification: ${e}`),this.name=`BuildOutputError`}};async function J(e){let t=await it(e),n=await Y(e,H),r=(await E.readdir(W(e),{withFileTypes:!0})).filter(e=>e.isDirectory()&&e.name!==`default`).map(e=>e.name).sort(),i=await Promise.all(r.map(async t=>[t,await Y(e,t)]));return{root:e,version:`v0`,settings:t,workers:{default:n,...Object.fromEntries(i)}}}async function Y(e,t){let n=Je(e,t);if(!S.existsSync(n))throw new q(`no Worker config found at ${n}.`);let r=await E.readFile(n,`utf-8`),i=Ue.safeParse(X(r,n));if(!i.success)throw new q(`invalid Worker config at ${n}.\n${i.error.message}`);let a=Ye(e,t),o=Xe(e,t),s=S.existsSync(a),c=S.existsSync(o);if(i.data.manifest&&!s)throw new q(`Worker config at ${n} contains a manifest, but no bundle directory exists at ${a}.`);if(s)return{configPath:n,config:await tt(i.data,n,a),bundleDir:a,assetsDir:c?o:void 0};if(c){let{manifest:e,...t}=i.data;return{configPath:n,config:t,bundleDir:void 0,assetsDir:o}}throw new q(`Worker config at ${n} has neither a bundle directory (${a}) nor an assets directory (${o}).`)}async function tt(e,t,n){let{manifest:r,...i}=e;if(r===void 0)return i;if(r.type===`complete`)return{...i,manifest:{...r,type:`complete`}};let a=await nt(n);if(a[r.mainModule]?.type!==`esm`)throw new q(`partial manifest at ${t} has main module "${r.mainModule}", but it was not found as an ES module in the bundle.`);let o={...a,...r.modules};return{...i,manifest:{type:`complete`,mainModule:r.mainModule,modules:o}}}async function nt(e){let t={},n=await E.readdir(e,{recursive:!0,withFileTypes:!0});for(let r of n){let n=r.isFile()?rt(r.name):void 0;if(n!==void 0){let i=w.relative(e,w.join(r.parentPath,r.name)).split(w.sep).join(`/`);t[i]={type:n}}}return t}function rt(e){switch(w.extname(e)){case`.js`:case`.mjs`:return`esm`;case`.map`:return`sourcemap`}}async function it(e){let t=qe(e);if(!S.existsSync(t))return;let n=await E.readFile(t,`utf-8`),r=Ie.safeParse(X(n,t));if(!r.success)throw new q(`invalid settings config at ${t}.\n${r.error.message}`);return r.data}function X(e,t){try{return JSON.parse(e)}catch(e){throw new q(`could not parse JSON at ${t}.\n${e instanceof Error?e.message:String(e)}`)}}var Z=class extends Error{constructor(e){super(e),this.name=`BuildOutputConfigError`}};function Q(e,t){let n=e.config,r=ee(n,t);n.manifest?.mainModule&&e.bundleDir&&(r.main=T.join(e.bundleDir,n.manifest.mainModule));let i=T.resolve(`cloudflare.config.ts`);return{wranglerConfig:at(r,e.configPath,i),builtConfig:n}}function at(e,t,r){let{config:i,diagnostics:a}=n(e,t,r,{});if(a.hasErrors())throw new Z(a.renderErrors());return a.hasWarnings()&&console.warn(a.renderWarnings()),i}var ot=e({default:()=>lt,runBuild:()=>$});function st(e){return e}async function $(e,n={}){let a=n.output??`stdout`,o=process.cwd(),s=await ae(o,n),c=s?.buildCommand;s&&!s.configured&&(c=(await re(s,n)).buildCommand),a!==`silent`&&x.message(r.bold(`Build`),{symbol:i.dim(`├`),spacing:0,output:a===`stderr`?process.stderr:void 0});let l;if(c)l=await ne(c,o,{...n,env:s?.env,args:e?[`--mode`,e]:[]});else{let t=ie(o);a!==`silent`&&x.message(`Delegating to ${ct(t)}`,{spacing:0,output:a===`stderr`?process.stderr:void 0}),l=await oe(t,`build`,e?[`--mode`,e]:[],n)}if(l!==0)throw new t(l);let{workers:{default:u},settings:d}=await J(o);Q(u,d),a!==`silent`&&x.success(`Build complete`,{spacing:0,output:a===`stderr`?process.stderr:void 0})}function ct(e){switch(e.impl.pkg){case`@cloudflare/vite-plugin`:return`Vite`;case`wrangler`:return`Wrangler`;case`cloudflare-py-dev-server`:return`the Python dev server`;case`cloudflare-rs-dev-server`:return`the Rust dev server`;default:return e.impl.pkg}}const lt={command:`build`,describe:`Build a project for Cloudflare`,builder:st,handler:async e=>{await $(e.mode)}};export{J as a,Q as i,$ as n,Z as r,ot as t};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{h as e}from"./oauth-BPizUUqP.mjs";import{a as t,r as n}from"./auth-DuLchM18.mjs";import{t as r}from"./output-DgW1hQGX.mjs";import{n as i,t as a}from"./progress-B84wYh91.mjs";import{n as o,t as s}from"./body-parser-CYD7PKFC.mjs";import{n as c}from"./input-validation-BBKJRoRB.mjs";import{i as l,n as u}from"./prompt-CDtLWxNv.mjs";function d(e){return e.positional(`environment-id`,{type:`string`,description:`Environment ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const f={command:`purge-environment <environment-id>`,describe:`Purge cached content scoped to a specific environment. Supports the same purge types as the zone-level endpoint (purge everything, by URL, by tag, host, or prefix). ### 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:d,handler:async s=>{if(s.dryRun){i({command:`cf cache purge-environment`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/environments/${s[`environment-id`]==null?`<environment-id>`:encodeURIComponent(String(s[`environment-id`]))}/purge_cache`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``),"environment-id":String(s[`environment-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:`Are you sure you want to purge cache for this environment?`})){process.stderr.write(`Aborted.
2
+ import{h as e}from"./oauth-DuEONNgC.mjs";import{a as t,r as n}from"./auth-D3X9HYhD.mjs";import{t as r}from"./output-Ccqw2WOb.mjs";import{t as i}from"./dry-run-DL2V6yFm.mjs";import{t as a}from"./progress-BqQcF5QH.mjs";import{n as o,t as s}from"./body-parser-BshbixEq.mjs";import{n as c}from"./input-validation-QDIYu7Vb.mjs";import{i as l,n as u}from"./prompt-B0sWIs9c.mjs";function d(e){return e.positional(`environment-id`,{type:`string`,description:`Environment ID`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const f={command:`purge-environment <environment-id>`,describe:`Purge cached content scoped to a specific environment. Supports the same purge types as the zone-level endpoint (purge everything, by URL, by tag, host, or prefix). ### 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:d,handler:async s=>{if(s.dryRun){i({command:`cf cache purge-environment`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/environments/${s[`environment-id`]==null?`<environment-id>`:encodeURIComponent(String(s[`environment-id`]))}/purge_cache`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``),"environment-id":String(s[`environment-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:`Are you sure you want to purge cache for this environment?`})){process.stderr.write(`Aborted.
3
3
  `);return}if(s.body){let e=o(s.body);r(await a(`Deleting`,async()=>c.cache.purgeEnvironment({body:e,zone_id:l,environment_id:s[`environment-id`]})),{successLabel:`Deleted`});return}r(await a(`Deleting`,async()=>t(c,`POST`,`/zones/${s.zoneId}/environments/${encodeURIComponent(String(s[`environment-id`]))}/purge_cache`)),{successLabel:`Deleted`})}};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}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const m={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:p,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 will delete cached content for the zone.`})){process.stderr.write(`Aborted.
4
4
  `);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 h(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 g={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:h,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.settings.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.settings.regionalTieredCache.edit({...f,zone_id:d})),{successLabel:`Updated`})}};function _(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={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:_,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.settings.regionalTieredCache.get({zone_id:s})),{successLabel:`Loaded`})}},y={command:`regional-tiered-cache`,describe:`Operations for settings.regional-tiered-cache`,builder:e=>e.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})}const x={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:b,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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});if(t.zoneId=s,!await u({force:!!t.force,message:`This operation permanently clears Cache Reserve for this zone and cannot be undone.`})){process.stderr.write(`Aborted.
5
5
  `);return}r(await a(`Deleting`,async()=>o.cache.settings.reserve.clear({zone_id:s})),{successLabel:`Deleted`})}};function S(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 C={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:S,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.settings.reserve.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.settings.reserve.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:`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:w,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.settings.reserve.get({zone_id:s})),{successLabel:`Loaded`})}};function E(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const D={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:E,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.settings.reserve.status({zone_id:s})),{successLabel:`Loaded`})}},O={command:`reserve`,describe:`Operations for settings.reserve`,builder:e=>e.command(x).command(C).command(T).command(D).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function k(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 A={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:k,handler:async t=>{if(t.dryRun){i({command:`cf cache settings 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.
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import{t as e}from"./local-DTyuGwTw.mjs";import{f as t,g as n}from"./oauth-BPizUUqP.mjs";import{r}from"./auth-DuLchM18.mjs";import{t as i}from"./output-DgW1hQGX.mjs";import{n as a,t as o}from"./progress-B84wYh91.mjs";import{n as s,t as c}from"./body-parser-CYD7PKFC.mjs";import{n as l}from"./input-validation-BBKJRoRB.mjs";import{n as u}from"./prompt-CDtLWxNv.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){a({command:`cf calls sfu create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(u),f=u.local?e:await t();if(u.accountId=f,u.body){let e=s(u.body);i(await o(`Creating`,async()=>d.calls.sfu.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});i(await o(`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){a({command:`cf calls sfu delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(s),l=s.local?e:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
2
+ import{t as e}from"./local-Be3lg_9E.mjs";import{f as t,g as n}from"./oauth-DuEONNgC.mjs";import{r}from"./auth-D3X9HYhD.mjs";import{t as i}from"./output-Ccqw2WOb.mjs";import{t as a}from"./dry-run-DL2V6yFm.mjs";import{t as o}from"./progress-BqQcF5QH.mjs";import{n as s,t as c}from"./body-parser-BshbixEq.mjs";import{n as l}from"./input-validation-QDIYu7Vb.mjs";import{n as u}from"./prompt-B0sWIs9c.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){a({command:`cf calls sfu create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(u),f=u.local?e:await t();if(u.accountId=f,u.body){let e=s(u.body);i(await o(`Creating`,async()=>d.calls.sfu.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});i(await o(`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){a({command:`cf calls sfu delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(s),l=s.local?e:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
3
3
  `);return}i(await o(`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){a({command:`cf calls sfu get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(s),l=s.local?e:await t();s.accountId=l,i(await o(`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){a({command:`cf calls sfu list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/calls/apps`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`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){a({command:`cf calls sfu update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(u),f=u.local?e:await t();if(u.accountId=f,u.body){let e=s(u.body);i(await o(`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`)});i(await o(`Updating`,async()=>d.calls.sfu.update({body:p,account_id:f,app_id:u[`app-id`]})),{successLabel:`Updated`})}},x={command:`sfu`,describe:`Selective Forwarding Unit apps that route WebRTC media between participants`,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){a({command:`cf calls turn create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(u),f=u.local?e:await t();if(u.accountId=f,u.body){let e=s(u.body);i(await o(`Creating`,async()=>d.calls.turn.create({body:e,account_id:f})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});i(await o(`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){a({command:`cf calls turn delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(s),l=s.local?e:await t();if(s.accountId=l,!await u({force:!!s.force})){process.stderr.write(`Aborted.
4
4
  `);return}i(await o(`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){a({command:`cf calls turn get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(s),l=s.local?e:await t();s.accountId=l,i(await o(`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){a({command:`cf calls turn list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/calls/turn_keys`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`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){a({command:`cf calls turn update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<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 r(u),f=u.local?e:await t();if(u.accountId=f,u.body){let e=s(u.body);i(await o(`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`)});i(await o(`Updating`,async()=>d.calls.turn.update({body:p,account_id:f,key_id:u[`key-id`]})),{successLabel:`Updated`})}},M={command:`turn`,describe:`TURN relay keys that help clients traverse NATs and firewalls for peer-to-peer connectivity`,builder:e=>e.command(C).command(T).command(D).command(k).command(j).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},N={command:`calls`,describe:`Real-time audio/video communication infrastructure — SFU apps for WebRTC and TURN relay keys`,builder:e=>e.command(x).command(M).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{N as default};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{h as e}from"./oauth-DuEONNgC.mjs";import{r as t}from"./auth-D3X9HYhD.mjs";import{t as n}from"./output-Ccqw2WOb.mjs";import{t as r}from"./dry-run-DL2V6yFm.mjs";import{t as i}from"./progress-BqQcF5QH.mjs";import{n as a,t as o}from"./body-parser-BshbixEq.mjs";import{n as s}from"./input-validation-QDIYu7Vb.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:`certificate-authorities`,builder:e=>e.command(f).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{p as default};
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import{C as e,H as t,M as n,St as r,T as i,Tt as a,V as o,Z as s,f as c,k as l,l as u,q as d,w as f}from"./dist-BWpErtDM.mjs";import{a as p,c as m,d as h,f as g,h as _,i as v,l as y,m as b,n as ee,o as te,p as ne,r as x,s as re,t as ie,u as S}from"./chunk-LQW53VED-22IYZovK.mjs";import{chmodSync as C,existsSync as w,mkdirSync as T,readFileSync as E,readdirSync as D,rmSync as O,writeFileSync as k}from"node:fs";import A from"node:path";import{URLSearchParams as ae}from"node:url";function j(e){function t(){return A.resolve(e(),`preferences.json`)}_(t,`getUserPreferencesPath`);function n(){try{let e=E(t(),`utf8`),n=JSON.parse(e);return typeof n==`object`&&n?n:{}}catch{return{}}}_(n,`readUserPreferences`);function r(e){let r={...n(),...e},i=t();T(A.dirname(i),{recursive:!0}),k(i,JSON.stringify(r,null,` `),{encoding:`utf-8`})}return _(r,`updateUserPreferences`),{readUserPreferences:n,updateUserPreferences:r}}_(j,`createPreferences`);var M=6e4,N=525600,P=43200,F=1440,I=Symbol.for(`constructDateFrom`);function L(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&I in e?e[I](t):e instanceof Date?new e.constructor(t):new Date(t)}_(L,`constructFrom`);function R(e,t){return L(t||e,e)}_(R,`toDate`);var z={};function B(){return z}_(B,`getDefaultOptions`);function V(e){let t=R(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}_(V,`getTimezoneOffsetInMilliseconds`);function H(e,...t){let n=L.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}_(H,`normalizeDates`);function U(e,t){let n=R(e)-+R(t);return n<0?-1:n>0?1:n}_(U,`compareAsc`);function oe(e){return L(e,Date.now())}_(oe,`constructNow`);function se(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}_(se,`getRoundingMethod`);var ce={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},le=_((e,t,n)=>{let r,i=ce[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r},`formatDistance`);function W(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}_(W,`buildFormatLongFn`);var ue={date:W({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:W({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:W({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},de={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},fe=_((e,t,n,r)=>de[e],`formatRelative`);function G(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}_(G,`buildLocalizeFn`);var pe={ordinalNumber:_((e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},`ordinalNumber`),era:G({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:G({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:_(e=>e-1,`argumentCallback`)}),month:G({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:G({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:G({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function K(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?me(s,e=>e.test(o)):q(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}_(K,`buildMatchFn`);function q(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}_(q,`findKey`);function me(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}_(me,`findIndex`);function he(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}_(he,`buildMatchPatternFn`);var ge={code:`en-US`,formatDistance:le,formatLong:ue,formatRelative:fe,localize:pe,match:{ordinalNumber:he({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:_(e=>parseInt(e,10),`valueCallback`)}),era:K({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:K({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:_(e=>e+1,`valueCallback`)}),month:K({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:K({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:K({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function _e(e,t,n){let r=B(),i=n?.locale??r.locale??ge,a=U(e,t);if(isNaN(a))throw RangeError(`Invalid time value`);let o=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:a}),[s,c]=H(n?.in,...a>0?[t,e]:[e,t]),l=se(n?.roundingMethod??`round`),u=c.getTime()-s.getTime(),d=u/M,f=(u-(V(c)-V(s)))/M,p=n?.unit,m;if(m=p||(d<1?`second`:d<60?`minute`:d<F?`hour`:f<P?`day`:f<N?`month`:`year`),m===`second`){let e=l(u/1e3);return i.formatDistance(`xSeconds`,e,o)}else if(m===`minute`){let e=l(d);return i.formatDistance(`xMinutes`,e,o)}else if(m===`hour`){let e=l(d/60);return i.formatDistance(`xHours`,e,o)}else if(m===`day`){let e=l(f/F);return i.formatDistance(`xDays`,e,o)}else if(m===`month`){let e=l(f/P);return e===12&&p!==`month`?i.formatDistance(`xYears`,1,o):i.formatDistance(`xMonths`,e,o)}else{let e=l(f/N);return i.formatDistance(`xYears`,e,o)}}_(_e,`formatDistanceStrict`);function ve(e,t){return _e(e,oe(e),t)}_(ve,`formatDistanceToNowStrict`);function J(e,t){return{read:_(()=>{let n=t();if(!w(n))return;let i=r(n);try{return S(e,i)}catch{return}},`read`),write(n){let r=t();T(A.dirname(r),{recursive:!0}),k(r,g(e,n),{encoding:`utf-8`,mode:384}),C(r,384)},clear(){let e=t(),n=w(e);return O(e,{force:!0}),n},path:t}}_(J,`createFileStorage`);function ye(e){let{logger:t,prompt:n}=e;return _(async function(e,r){if(i())return t.log(r),!0;let a=await n(e);return typeof a==`string`&&a.trim().toLowerCase()===`yes`},`ensureTemporaryTermsAccepted`)}_(ye,`createTemporaryTermsPrompt`);var be=[9106,1e4];function Y(e){return e?.code}_(Y,`getErrorCode`);function xe(e){let t=Y(e);return t!==void 0&&be.includes(t)}_(xe,`isMembershipsInaccessible`);function Se(e){return{"no-credentials-non-interactive":`Could not authenticate because no credentials were found and the environment is non-interactive. Set a CLOUDFLARE_API_TOKEN environment variable or run \`${e}\` in an interactive terminal first.`,"no-credentials-login-failed":`No credentials were found and the login attempt was unsuccessful. Run \`${e}\` to try again.`,"token-expired-non-interactive":`Your auth token has expired and could not be refreshed, and the environment is non-interactive. Run \`${e}\` in an interactive terminal or set a CLOUDFLARE_API_TOKEN.`,"token-expired-login-failed":`Your auth token has expired and could not be refreshed, and the login attempt was unsuccessful. Run \`${e}\` to try again.`}}_(Se,`notLoggedInErrorBodies`);function Ce(e,t,n){let r=new Date(t.claim.expiresAt);e.log(v`
3
+ Temporary account ready:
4
+ Account: ${t.account.name} (${n?`reused`:`created`})
5
+ Claim within: ${ve(r)}
6
+ Claim URL: ${t.claim.url}
7
+ `)}_(Ce,`logTemporaryPreviewAccount`);function we(r,o){let{logger:s}=o,d=r.cliName,p=Se(r.commands.login),m=`
8
+ Run \`${r.commands.whoami}\` to check your current authentication status.`,h=j(r.getConfigPath),g=u(s,r.cacheNamespace?{namespace:r.cacheNamespace}:void 0),v=ie({serviceName:r.keyringServiceName,getConfigPath:r.getConfigPath,isKeyringEnabled:_(()=>h.readUserPreferences().keyring_enabled===!0,`isKeyringEnabled`),logger:s,isNonInteractiveOrCI:i,loginCommand:r.commands.login,format:r.fileFormat}),y=r.allowGlobalAuthKey??!0,b=ee({logger:s,isNonInteractiveOrCI:i,openInBrowser:_(e=>l(e,s),`openInBrowser`),hasEnvCredentials:_(()=>te({allowGlobalAuthKey:y})!==void 0,`hasEnvCredentials`),purgeOnLoginOrLogout:g.purgeConfigCaches,clientId:r.clientId,consent:r.consent,displayName:r.displayName,deviceLoginCommand:r.commands.deviceLogin,redirectUri:r.redirectUri,storageFactory:v.storageFactory,allowGlobalAuthKey:y,temporary:{storage:J(r.fileFormat,r.getTemporaryAccountConfigPath),prompt:ye({logger:s,prompt:o.prompt})}});function x(e){b.setProfile(e)}_(x,`setProfile`);function S(){return b.getActiveProfile()}_(S,`getActiveProfile`);function C(){return v.getActiveStore(b.getActiveProfile())}_(C,`getCredentialStore`);function w(e){b.setTemporaryAllowed(e)}_(w,`setTemporaryAllowed`);function T(){return b.getAPIToken()}_(T,`getAPIToken`);function E(){return b.requireApiToken()}_(E,`requireApiToken`);function D(e,t){return{complianceConfig:e,scopes:t?.scopes??r.getDefaultScopeKeys(),browser:t?.browser??!0,callbackHost:t?.callbackHost,callbackPort:t?.callbackPort,profile:t?.profile,device:t?.device??r.useDeviceFlowByDefault??!1}}_(D,`withLoginDefaults`);async function O(e,t){return b.login(D(e,t))}_(O,`login`);async function k(e){return b.logout(e)}_(k,`logout`);async function A(e,t){return b.getActiveTemporaryAccount()?{loggedIn:!0}:b.loginOrRefreshIfRequired(D(e,t))}_(A,`loginOrRefreshIfRequired`);async function M(){return b.getOAuthTokenFromLocalState()}_(M,`getOAuthTokenFromLocalState`);function N(){return b.getScopes()}_(N,`getScopes`);function P(){return v.storageFactory(S()).read()}_(P,`readAuthCredentials`);function F(e){v.storageFactory(S()).write(e)}_(F,`writeAuthCredentials`);function I(){let e=b.getActiveProfile();return e===`default`?`${r.accountCachePrefix}.json`:`${r.accountCachePrefix}-${e}.json`}_(I,`getAccountCacheFileName`);function L(e){g.saveToConfigCache(I(),{account:e})}_(L,`saveAccountToCache`);function R(){return g.getConfigCache(I()).account}_(R,`getAccountFromCache`);async function z(t,r,i){let a=[],l=!0,u=1,d;for(;l;){d=new ae(d),d.set(`page`,String(u));let{response:f,status:p}=await c(t,r,{},o.userAgent,s,d,void 0,i);f.success?(a.push(...f.result),e(f.result_info)?u+=1:l=!1):n(r,f,p)}return a}_(z,`fetchAccountsPaged`);async function B(e,t={}){let{throwOnEmpty:n=!0}=t,i=await A(e);if(!i.loggedIn)throw new a(`Not logged in. ${p[i.reason]}${m}`,{telemetryMessage:`cfetch auth login required`});let o=E(),[s,c]=await Promise.allSettled([z(e,`/accounts`,o),z(e,`/memberships`,o)]);if(s.status===`rejected`)throw s.reason;if(c.status===`rejected`)if(xe(c.reason)){if(s.status===`fulfilled`&&s.value.length>0)return s.value;throw Y(c.reason)===9106?new a(`Failed to automatically retrieve account IDs for the logged in user.
9
+ You may have incorrect permissions on your API token, or an environment variable such as CLOUDFLARE_API_TOKEN, CLOUDFLARE_API_KEY, or CLOUDFLARE_EMAIL may be set to an invalid value.
10
+ Check your environment and unset or correct any Cloudflare credential variables, or run \`${r.commands.login}\` to re-authenticate.
11
+ You can also skip this account check by adding an \`account_id\` in your ${r.getConfigFileLabel()} file, or by setting the value of CLOUDFLARE_ACCOUNT_ID`,{telemetryMessage:`user account fetch permission denied`}):new a(`Failed to automatically retrieve account IDs for the logged in user.
12
+ You may have incorrect permissions on your API token, or your authentication may have expired. Try running \`${r.commands.login}\` to re-authenticate. You can also skip this account check by adding an \`account_id\` in your ${r.getConfigFileLabel()} file, or by setting the value of CLOUDFLARE_ACCOUNT_ID`,{telemetryMessage:`user account fetch permission denied`})}else throw c.reason;let l=new Set(c.value.map(e=>e.account.id)),u=s.value.filter(e=>l.has(e.id));if(u.length===0&&n)throw new a(`Failed to automatically retrieve account IDs for the logged in user.
13
+ In a non-interactive environment, it is mandatory to specify an account ID, either by assigning its value to CLOUDFLARE_ACCOUNT_ID, or as \`account_id\` in your ${r.getConfigFileLabel()} file.
14
+ Alternatively, try running \`${r.commands.login}\` to re-authenticate.`,{telemetryMessage:`user account fetch empty`});return u}_(B,`fetchAllAccounts`);function V(e){let t=b.getActiveTemporaryAccount();return t?t.account.id:e.account_id?ne(e.account_id,`set as \`account_id\` in your ${r.getConfigFileLabel()} file`):re()||R()?.id}_(V,`getActiveAccountId`);async function H(e){let t=V(e);if(t)return t;let n=await B(e);if(n.length===1)return L({id:n[0].id,name:n[0].name}),n[0].id;try{let e=await o.select(`Select an account`,{choices:n.map(e=>({title:e.name,value:e.id}))}),t=n.find(t=>t.id===e);if(!t)throw Error(`Selected account not found in accounts list`);return L({id:t.id,name:t.name}),e}catch(e){if(o.isNoDefaultValueProvidedError(e)){let e=f();throw new a(`More than one account available but unable to select one in non-interactive mode.
15
+ Please set the appropriate \`account_id\` in your ${r.getConfigFileLabel()} file or assign it to the \`CLOUDFLARE_ACCOUNT_ID\` environment variable.
16
+ Available accounts are (\`<name>\`: \`<account_id>\`):
17
+ ${n.map(t=>` \`${e?`(redacted)`:t.name}\`: \`${t.id}\``).join(`
18
+ `)}`,{telemetryMessage:`user account selection unavailable`})}throw e}}_(H,`getOrSelectAccountId`);async function U(e){if(b.isTemporaryAllowed()){if(t(e)!==`public`)throw new a(`Temporary accounts aren't available when the compliance region is not set to public.`,{telemetryMessage:`user temporary account unavailable in compliance region`});let n=b.getActiveTemporaryAccount();if(n)return n.account.id;if(T())throw new a("You're already authenticated with Cloudflare, so `--temporary` can't be used. Temporary preview accounts are only for unauthenticated use. Either remove `--temporary` to use your existing account, or log out (and unset CLOUDFLARE_API_TOKEN) first.",{telemetryMessage:`user temporary account already authenticated`});let{account:r,cached:i}=await b.activateTemporaryAccount();return Ce(s,r,i),r.account.id}let n=await A(e);if(!n.loggedIn)throw n.reason===`no-credentials-non-interactive`||n.reason===`token-expired-non-interactive`?new a(`In a non-interactive environment, it's necessary to set a CLOUDFLARE_API_TOKEN environment variable for ${d} to work. Please go to https://developers.cloudflare.com/fundamentals/api/get-started/create-token/ for instructions on how to create an api token, and assign its value to CLOUDFLARE_API_TOKEN.`,{telemetryMessage:`user auth missing api token non interactive`}):new a(`Did not login, quitting...`,{telemetryMessage:`user login cancelled`});let r=await H(e);if(!r)throw new a(`No account id found, quitting...`,{telemetryMessage:`user auth missing account id`});return r}return _(U,`requireAuth`),{setProfile:x,getActiveProfile:S,getCredentialStore:C,setTemporaryAllowed:w,getAPIToken:T,requireApiToken:E,login:O,logout:k,loginOrRefreshIfRequired:A,getOAuthTokenFromLocalState:M,getScopes:N,readAuthCredentials:P,writeAuthCredentials:F,getActiveAccountId:V,getOrSelectAccountId:H,getAccountFromCache:R,fetchAllAccounts:B,requireAuth:U}}_(we,`createCloudflareAuth`);var Te=`profiles/directory-bindings.json`,Ee=`.enc`;function X(e){let{logger:t,getConfigPath:n,keyringServiceName:r,format:i}=e,a=`.${i}`;function o(e){return p(n(),e,i)}_(o,`plaintextPath`);function s(e){return y(n(),e)}_(s,`encryptedPath`);function c(){return A.dirname(o(`default`))}_(c,`getProfileConfigDirectory`);let l={exists(e){return w(o(e))||w(s(e))},list(){let e=c();if(!w(e))return[];let t=new Set;for(let n of D(e))n.endsWith(a)?t.add(n.slice(0,-a.length)):n.endsWith(Ee)&&t.add(n.slice(0,-Ee.length));return[...t]},delete(e){let{backendAvailable:a,encryptedFileExisted:s}=h({serviceName:r,configPath:n(),profile:e,format:i});J(i,()=>o(e)).clear(),s&&!a&&t.warn(`Removed the credential files for profile "${e}", but the keyring backend was not reachable on this host so its keyring entry could not be cleared. Clear it manually if it persists.`)}};function u(){return A.join(n(),Te)}return _(u,`getDirectoryBindingsPath`),x({configs:l,bindings:{read(){try{let e=E(u(),`utf-8`);return JSON.parse(e)}catch{return{}}},write(e){let t=u();T(A.dirname(t),{recursive:!0}),k(t,JSON.stringify(e,null,` `),`utf-8`)}}})}_(X,`createCloudflareProfileStore`);function De(e){let{loginCommand:t,createProfileCommand:n,keyringServiceName:r,getConfigPath:i,format:a,preferences:o}=e,{readUserPreferences:s,updateUserPreferences:c}=o;function l(e){return e??`default`}_(l,`describeProfile`);function u(e){let t=[];w(y(i()))&&t.push(void 0);let n=X({logger:e,getConfigPath:i,keyringServiceName:r,format:a});for(let e of n.configs.list()){try{b(e)}catch{continue}w(y(i(),e))&&t.push(e)}return t}_(u,`listEncryptedProfiles`);function d(e){let o=u(e);if(o.length===0)return;let s=[],c=[];for(let t of o)try{let{backendAvailable:e}=h({serviceName:r,configPath:i(),profile:t,format:a});s.push(l(t)),e||c.push(l(t))}catch(n){e.warn(`Failed to remove encrypted credentials for profile "${l(t)}": ${n instanceof Error?n.message:String(n)}. You may need to clear them manually.`)}if(s.length>0){let r=n?`Re-authenticate with \`${t}\` (default profile) or \`${n} <name>\` (named profiles).`:`Re-authenticate with \`${t}\`.`;e.log(`Removed encrypted credentials for ${s.map(e=>`"${e}"`).join(`, `)}. ${r}`)}c.length>0&&e.warn(`The keyring backend was not reachable on this host, so the keyring entry for ${c.map(e=>`"${e}"`).join(`, `)} could not be cleared. Clear it manually if it persists.`)}_(d,`scrubAllEncryptedProfiles`);function f(e,t){let{logger:n,getCredentialStore:r}=t,i=s().keyring_enabled===!0,a=m();if(a!==void 0&&a!==e&&n.warn(`CLOUDFLARE_AUTH_USE_KEYRING=${a} overrides ${e?`enabling`:`disabling`} keyring storage for this command.`),!e&&a!==!0&&d(n),c({keyring_enabled:e}),e&&a!==!1)try{r().kind!==`encrypted-file`&&(c({keyring_enabled:i}),n.warn(`Keyring storage isn't available on this host (see warning above), so it was not enabled. Try again once the keyring backend is reachable.`))}catch(e){throw c({keyring_enabled:i}),e}return{enabled:s().keyring_enabled===!0}}return _(f,`setKeyringPreference`),{setKeyringPreference:f}}_(De,`createKeyringPreference`);function Oe(e){let{getConfigPath:t,format:n}=e;function r(e){return p(t(),e,n)}_(r,`getAuthConfigFilePath`);function i(e){return y(t(),e)}_(i,`getEncryptedAuthConfigFilePath`);function a(e){return J(n,()=>r(e))}_(a,`defaultAuthConfigStorage`);function o(e,t){a(t).write(e)}_(o,`writeAuthConfigFile`);function s(e){return a(e).read()}return _(s,`readAuthConfigFile`),{getAuthConfigFilePath:r,getEncryptedAuthConfigFilePath:i,defaultAuthConfigStorage:a,readAuthConfigFile:s,writeAuthConfigFile:o}}_(Oe,`createAuthConfigFileHelpers`);var Z=`cloudflare`,ke=`cf`,Ae=`cf`,je=`http://localhost:8877/oauth/callback`,Me={granted:{url:`https://welcome.developers.workers.dev/cf-oauth-consent-granted`},denied:{url:`https://welcome.developers.workers.dev/cf-oauth-consent-denied`,error:"Error: Consent denied. You must grant consent to cf in order to login.\nIf you don't want to do this consider passing an API token via the `CLOUDFLARE_API_TOKEN` environment variable"}},Ne=s({variableName:`CLOUDFLARE_CLIENT_ID`,defaultValue:_(()=>`cbca97e7-c331-4cdd-8fd8-e25a451b98bf`,`defaultValue`)});function Q(){return d({appName:`cloudflare`,leadingDot:!1,useLegacyHomeDir:!1})}_(Q,`getCfConfigPath`);var Pe=`access:read,access:write,account:read,agw:read,agw:run,agw:write,ai:read,ai:write,ai-search:read,ai-search:run,ai-search:write,aiaudit:read,aiaudit:write,aig:read,aig:write,auditlogs:read,billing:read,billing:write,browser:read,browser:write,cfone:read,cfone:write,cloudchamber:write,connectivity:admin,connectivity:bind,connectivity:read,constellation:write,containers:write,d1:write,dex:read,dex:write,dns_analytics:read,dns_records:edit,dns_records:read,dns_settings:read,email_routing:read,email_routing:write,email_sending:read,email_sending:write,firstpartytags:write,images:read,images:write,lb:edit,lb:read,logpush:read,logpush:write,mcp_portals:read,mcp_portals:write,notebook-examples:read,notebook-managed:read,notification:read,notification:write,oauth_account_ssl_and_certificates_write,offline,openid,pages:read,pages:write,pipelines:read,pipelines:setup,pipelines:write,query_cache:write,queues:write,r2_catalog:write,radar:read,rag:read,rag:write,registrar:read,registrar:write,secrets_store:read,secrets_store:write,sso-connector:read,sso-connector:write,ssl_certs:write,teams:pii,teams:read,teams:secure_location,teams:write,url_scanner:read,url_scanner:write,user:read,vectorize:write,workers:read,workers:write,workers_builds:read,workers_builds:write,workers_deployments:read,workers_kv:write,workers_observability:read,workers_observability:write,workers_observability_telemetry:write,workers_routes:write,workers_scripts:write,workers_tail:read,zone:read,account-analytics.read,account-ssl-and-certificates.write,ssl-and-certificates.read,ssl-and-certificates.write,registrar-domains.read,registrar-domains.admin,logs.read,logs.write,websearch.run,snippets.read,snippets.write,access-acct.read,access-acct.revoke,access-acct.write,access-app.read,access-app.revoke,access-app.write,access-audit-log.read,access-certificate.read,access-certificate.write,access-custom-page.read,access-custom-page.write,access-device-posture.read,access-device-posture.write,access-group.read,access-group.write,access-idp.read,access-idp.write,access-key.read,access-key.write,access-org.read,access-org.revoke,access-org.write,access-policy-test.read,access-policy-test.write,access-policy.read,access-policy.write,access-population.read,access-population.write,access-saml-certificate.read,access-saml-certificate.write,access-scim-log.read,access-seats.write,access-service-token.read,access-service-token.write,access-ssh-auditing.read,access-ssh-auditing.write,access-tag.read,access-tag.write,access-users.read,access-users.write,access.read,access.revoke,access.write,account-api-gateway.read,account-api-gateway.write,account-custom-asset.read,account-custom-asset.write,account-custom-error-rules.read,account-custom-error-rules.write,account-custom-pages.read,account-custom-pages.write,account-disable-esc.read,account-disable-esc.write,account-dns-settings.read,account-dns-settings.write,account-firewall-access-rules.read,account-firewall-access-rules.write,account-logs.read,account-logs.write,account-rule-lists.read,account-rule-lists.write,account-rulesets.read,account-rulesets.write,account-security-center-insights.read,account-security-center-insights.write,account-settings.read,account-settings.write,account-ssl-and-certificates.read,account-waf.read,account-waf.write,account-waiting-rooms.read,address-maps.read,address-maps.write,agent-memory.write,agw.read,agw.run,agw.write,ai-search.index,ai-search.metadata_read,ai-search.read,ai-search.run,ai-search.write,ai.read,ai.write,aiaudit.read,aiaudit.write,aig.metadata_read,aig.read,aig.run,aig.write,analytics.read,api-gateway.read,api-gateway.write,apps.write,argotunnel.read,argotunnel.write,artifacts.read,artifacts.write,bot-management-feedback.read,bot-management-feedback.write,bot-management.read,bot-management.write,browser-rendering.read,browser-rendering.write,cache-settings.read,cache-settings.write,cache.purge,calls.read,calls.write,casb.read,casb.write,cf-agents.read,cf-agents.write,challenge-widgets.read,challenge-widgets.write,chinanetwork-steering.read,chinanetwork-steering.write,cloud-connector.read,cloud-connector.write,cloud-email-security.read,cloud-email-security.write,cloudchamber.read,cloudchamber.write,cloudforce-one.read,cloudforce-one.write,config-settings.read,config-settings.write,connectivity-directory.admin,connectivity-directory.bind,connectivity-directory.read,constellation.read,constellation.write,containers.read,containers.write,custom-errors.read,custom-errors.write,custom-pages.read,custom-pages.write,d1.metadata_read,d1.read,d1.write,ddos-botnet-feed.read,ddos-botnet-feed.write,ddos-protection.read,ddos-protection.write,dls.read,dls.write,dns-firewall.read,dns-firewall.write,dns-view.read,dns-view.write,dns.read,dns.write,domain-page-shield.read,domain-page.shield,dynamic-redirect.read,dynamic-redirect.write,email-routing-account-rule.read,email-routing-address.read,email-routing-address.write,email-routing-rule.read,email-routing-rule.write,email-routing-suppression.read,email-routing-suppression.write,email-security-dmarcreports.read,email-security-dmarcreports.write,email-sending.read,email-sending.write,fbm.admin,fbm.read,fbm.write,field-extractor.read,field-extractor.write,firewall-for-ai.read,firewall-for-ai.write,firewall-services.read,firewall-services.write,flagship.evaluate,flagship.read,flagship.write,fraud-detection-pii.read,fraud-detection.read,fraud-detection.write,fraud-events.write,fraud-feedback.read,fraud-feedback.write,healthcheck.read,healthcheck.write,http-applications.read,http-applications.write,http-ddos-managed-ruleset.read,http-ddos-managed-ruleset.write,images.metadata_read,images.read,images.write,integration.write,intel.read,intel.write,iot.read,iot.write,ip-prefix-bgp-on-demand.read,ip-prefix-bgp-on-demand.write,ip-prefix.read,ip-prefix.write,l4-ddos-managed-ruleset.read,l4-ddos-managed-ruleset.write,load-balancers-account.read,load-balancers-account.write,load-balancers.read,load-balancers.write,load-balancing-monitors-and-pools.read,load-balancing-monitors-and-pools.write,magic-firewall.read,magic-firewall.write,magic-transit.read,magic-transit.write,magic-wan.read,magic-wan.write,managed-headers.read,managed-headers.write,mass-url-redirects.read,mass-url-redirects.write,mcp-portals.read,mcp-portals.write,memberships.read,memberships.write,messaging.edit,messaging.metadata_read,messaging.read,moq.read,moq.write,notifications.read,notifications.write,origin.read,origin.write,page-rules.read,page-rules.write,page-shield.read,page.read,page.shield,page.write,pages.metadata_read,payments-gateway.read,payments-gateway.write,pcaps-api.read,pcaps-api.write,pipelines.read,pipelines.send,pipelines.write,precursor.read,precursor.write,pubsub.read,pubsub.write,query-cache.read,query-cache.write,queues.metadata_read,queues.read,queues.write,r2-catalog-sql.read,r2-catalog.read,r2-catalog.write,radar.read,rag.read,rag.run,rag.write,realtime.admin,realtime.read,realtime.write,registrar-sandbox-domains.admin,registrar-sandbox-domains.read,reports-application-security-report.read,request-tracer.read,resource-library.read,resource-library.write,resource-sharing.read,response-compression.read,response-compression.write,sanitize.read,sanitize.write,secrets-store.read,secrets-store.write,select-configuration.read,select-configuration.write,stream.metadata_read,stream.read,stream.write,tag.read,tag.write,teams-cds-compute-account.read,teams-cds-compute-account.write,teams-connector-cloudflared.monitoring,teams-connector-cloudflared.read,teams-connector-cloudflared.write,teams-connector-warp.read,teams-connector-warp.write,teams-connectors.read,teams-connectors.write,teams-dex.read,teams-dex.write,teams-networks.read,teams-networks.write,teams-pii.read,teams-resilience.read,teams-resilience.write,teams-secure.location,teams.read,teams.report,teams.write,transform-rules.read,transform-rules.write,trust-and-safety.read,trust-and-safety.write,url-scanner.read,url-scanner.write,user-details.read,user-details.write,vectorize.read,vectorize.write,waiting-rooms.read,waiting-rooms.write,web3-hostnames.read,web3-hostnames.write,websearch.metadata_read,websearch.read,websearch.write,workers-ci.read,workers-ci.write,workers-kv-storage.metadata_read,workers-kv-storage.read,workers-kv-storage.write,workers-observability-telemetry.write,workers-observability.read,workers-observability.write,workers-r2-bucket-item.read,workers-r2-bucket-item.write,workers-r2.metadata_read,workers-r2.read,workers-r2.write,workers-routes.read,workers-routes.write,workers-scripts.bind,workers-scripts.read,workers-scripts.write,workers-tail.read,workers_ai.metadata_read,zaraz.edit,zaraz.read,zaraz.write,zone-access.read,zone-access.revoke,zone-access.write,zone-custom-asset.read,zone-custom-asset.write,zone-disable-esc.read,zone-disable-esc.write,zone-dns-settings.read,zone-dns-settings.write,zone-security-center-insights.read,zone-security-center-insights.write,zone-settings.read,zone-settings.write,zone-transform-rules.read,zone-transform-rules.write,zone-versioning.read,zone-versioning.write,zone-waf.read,zone-waf.write,zone.read,zone.write`.split(`,`),Fe=[...`openid.offline.user:read.account:read.access:read.access:write.agw:read.agw:run.agw:write.ai:read.ai:write.ai-search:read.ai-search:run.ai-search:write.aiaudit:read.aiaudit:write.aig:read.aig:write.auditlogs:read.browser:read.browser:write.cfone:read.cfone:write.cloudchamber:write.connectivity:admin.connectivity:bind.connectivity:read.constellation:write.containers:write.d1:write.dex:read.dex:write.dns_analytics:read.dns_records:edit.dns_records:read.dns_settings:read.email_routing:write.email_sending:write.firstpartytags:write.images:read.images:write.lb:edit.lb:read.logpush:read.logpush:write.mcp_portals:read.mcp_portals:write.notebook-examples:read.notification:read.notification:write.pages:read.pages:write.pipelines:read.pipelines:setup.pipelines:write.query_cache:write.queues:write.r2_catalog:write.radar:read.rag:read.rag:write.registrar:read.registrar:write.secrets_store:read.secrets_store:write.sso-connector:read.sso-connector:write.ssl_certs:write.teams:pii.teams:read.teams:secure_location.teams:write.url_scanner:read.url_scanner:write.vectorize:write.workers:read.workers:write.workers_builds:read.workers_builds:write.workers_deployments:read.workers_kv:write.workers_observability:read.workers_observability:write.workers_observability_telemetry:write.workers_routes:write.workers_scripts:write.workers_tail:read.zone:read`.split(`.`)];function Ie(e){Fe=e}_(Ie,`setLoginScopeKeys`);var Le=new Set(Pe);function Re(e){return e.every(e=>Le.has(e))}_(Re,`validateScopeKeys`);function ze(){let e=o();return e===`production`?`cloudflare-temporary-account.json`:`cloudflare-temporary-account.${e}.json`}_(ze,`getTemporaryAccountConfigFile`);function Be(){return A.join(Q(),ze())}_(Be,`getCfTemporaryAccountConfigPath`);function Ve(e){return J(`json`,e)}_(Ve,`createJsonFileStorage`);var{getAuthConfigFilePath:He,getEncryptedAuthConfigFilePath:Ue,defaultAuthConfigStorage:We,readAuthConfigFile:Ge,writeAuthConfigFile:Ke}=Oe({getConfigPath:Q,format:`json`}),$={cliName:ke,displayName:Ae,commands:{login:`cf auth login`,whoami:`cf auth whoami`,createProfile:`cf auth create`,deviceLogin:`cf auth login`},keyringServiceName:Z,clientId:Ne,consent:Me,redirectUri:je,useDeviceFlowByDefault:!0,allowGlobalAuthKey:!1,getConfigPath:Q,getTemporaryAccountConfigPath:Be,fileFormat:`json`,accountCachePrefix:`cloudflare-account`,cacheNamespace:`cloudflare`,getConfigFileLabel:_(()=>`cf config`,`getConfigFileLabel`),getDefaultScopeKeys:_(()=>Fe,`getDefaultScopeKeys`)},qe=j(Q),{readUserPreferences:Je,updateUserPreferences:Ye}=qe;function Xe(e){return we($,e)}_(Xe,`createCfAuth`);function Ze(e){return X({logger:e.logger,getConfigPath:Q,keyringServiceName:Z,format:`json`})}_(Ze,`createCfProfileStore`);var Qe=De({loginCommand:$.commands.login,createProfileCommand:$.commands.createProfile,keyringServiceName:Z,getConfigPath:Q,format:`json`,preferences:qe});function $e(e,t){return Qe.setKeyringPreference(e,t)}_($e,`setKeyringPreference`);export{Re as a,Q as i,Ze as n,Ve as r,Xe as t};
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env node
2
+ import{B as e,H as t,I as n,P as r,St as i,T as a,Tt as o,V as s,Y as c,Z as l,bt as u,wt as d}from"./dist-BWpErtDM.mjs";import{createRequire as f}from"node:module";import{chmodSync as p,existsSync as m,mkdirSync as h,rmSync as g,writeFileSync as _}from"node:fs";import v from"node:assert";import{TextEncoder as ee}from"node:util";import y from"node:path";import te from"node:url";import ne from"node:http";import{createCipheriv as re,createDecipheriv as ie,createHash as b,randomBytes as x,webcrypto as S}from"node:crypto";import{spawn as ae,spawnSync as C}from"node:child_process";var oe=Object.defineProperty,w=(e,t)=>oe(e,`name`,{value:t,configurable:!0}),T=r(),se=!1;function E(e){let{configOverride:t,warningLogger:n,storage:r}=e,{oauth_token:i,refresh_token:a,expiration_time:o,scopes:s,api_token:c}=t??r.read()??{};return i?{accessToken:{value:i,expiry:o??`2000-01-01:00:00:00+00:00`},refreshToken:{value:a??``},scopes:s}:c?(!se&&n&&(se=!0,n.warn(`It looks like you have used Wrangler v1's \`config\` command to login with an API token
3
+ from ${t===void 0?r.path():`in-memory config`}.
4
+ This is no longer supported in the current version of Wrangler.
5
+ If you wish to authenticate via an API token then please set the \`CLOUDFLARE_API_TOKEN\` environment variable.`)),{deprecatedApiToken:c}):{}}w(E,`readStoredAuthState`);var ce=l({variableName:`CLOUDFLARE_API_TOKEN`,deprecatedName:`CF_API_TOKEN`}),le=l({variableName:`CLOUDFLARE_API_KEY`,deprecatedName:`CF_API_KEY`}),ue=l({variableName:`CLOUDFLARE_EMAIL`,deprecatedName:`CF_EMAIL`});function de(e){if(e?.allowGlobalAuthKey??!0){let e=le(),t=ue();if(e&&t)return{authKey:e,authEmail:t}}let t=ce();if(t)return{apiToken:t}}w(de,`getAuthFromEnv`);function fe(e){let t=de(e);if(t)return t;let n=E({storage:e.storage,warningLogger:e.warningLogger});if(n.deprecatedApiToken)return{apiToken:n.deprecatedApiToken};if(n.accessToken?.value)return{apiToken:n.accessToken.value}}w(fe,`getAPIToken`);function pe(e){let t=fe(e);if(!t)throw new o(`No API token found.`,{telemetryMessage:`user auth missing api token`});return t}w(pe,`requireApiToken`);var me=/^[A-Za-z0-9_-]+$/;function he(e,t){if(!me.test(e))throw new o(`Invalid account ID "${e}" ${t}. Account IDs may only contain alphanumeric characters, hyphens, and underscores.`,{telemetryMessage:`user account id invalid characters`});return e}w(he,`validateAccountId`);var D=l({variableName:`WRANGLER_AUTH_DOMAIN`,defaultValue:w(()=>s()===`staging`?`dash.staging.cloudflare.com`:`dash.cloudflare.com`,`defaultValue`)}),ge=l({variableName:`WRANGLER_AUTH_URL`,defaultValue:w(()=>`https://${D()}/oauth2/auth`,`defaultValue`)}),_e=l({variableName:`WRANGLER_TOKEN_URL`,defaultValue:w(()=>`https://${D()}/oauth2/token`,`defaultValue`)}),ve=l({variableName:`WRANGLER_REVOKE_URL`,defaultValue:w(()=>`https://${D()}/oauth2/revoke`,`defaultValue`)}),ye=l({variableName:`CLOUDFLARE_ACCOUNT_ID`,deprecatedName:`CF_ACCOUNT_ID`});function be(){let e=ye();if(e)return he(e,"set in the `CLOUDFLARE_ACCOUNT_ID` environment variable")}w(be,`getCloudflareAccountIdFromEnv`);var xe=`/oauth2/device/auth`;function Se(){return`https://${D()}${xe}`}w(Se,`getDeviceAuthUrl`);var Ce=l({variableName:`CLOUDFLARE_ACCESS_CLIENT_ID`}),we=l({variableName:`CLOUDFLARE_ACCESS_CLIENT_SECRET`}),Te=l({variableName:`WRANGLER_CF_AUTHORIZATION_TOKEN`}),Ee=c({variableName:`CLOUDFLARE_AUTH_USE_KEYRING`}),O={},k=new Map;function De(){for(let e of Object.keys(O))delete O[e];k.clear()}w(De,`clearAccessCaches`);async function Oe(e,t){if(t.debug(`Checking if domain has Access enabled:`,e),k.has(e))return t.debug(`Using cached Access switch for:`,e,k.get(e)),k.get(e)??!1;t.debug(`Access switch not cached for:`,e);try{let n=new AbortController,r=setTimeout(()=>{n.abort()},1e3),i=await(0,T.fetch)(`https://${e}`,{redirect:`manual`,signal:n.signal});clearTimeout(r);let a=!!(i.status===302&&i.headers.get(`location`)?.includes(`cloudflareaccess.com`));return t.debug(`Caching access switch for:`,e),k.set(e,a),a}catch{return k.set(e,!1),!1}}w(Oe,`domainUsesAccess`);async function ke(e,t){let n=t.logger,r=Ce(),i=we();if(r&&i)return n.debug(`Using Access Service Token headers for domain:`,e),{"CF-Access-Client-Id":r,"CF-Access-Client-Secret":i};if((r!==void 0||i!==void 0)&&n.warn(`Both CLOUDFLARE_ACCESS_CLIENT_ID and CLOUDFLARE_ACCESS_CLIENT_SECRET must be set to use Access Service Token authentication. Only ${r===void 0?`CLOUDFLARE_ACCESS_CLIENT_SECRET`:`CLOUDFLARE_ACCESS_CLIENT_ID`} was found.`),!await Oe(e,n))return{};if(n.debug(`Getting Access headers for domain:`,e),O[e])return n.debug(`Using cached Access headers for domain:`,e),O[e];if((t.isNonInteractiveOrCI??a)())throw new o(`The domain "${e}" is behind Cloudflare Access, but no Access Service Token credentials were found and the current environment is non-interactive.
6
+ Set the CLOUDFLARE_ACCESS_CLIENT_ID and CLOUDFLARE_ACCESS_CLIENT_SECRET environment variables to authenticate with an Access Service Token.
7
+ See https://developers.cloudflare.com/cloudflare-one/access-controls/service-credentials/service-tokens/`,{telemetryMessage:`user access missing service token non interactive`});n.debug(`Spawning cloudflared to get Access token for domain:`);let s=await Ae(e,t.signal);if(s.error)throw new o("To use Wrangler with Cloudflare Access, please install `cloudflared` from https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation",{telemetryMessage:`user access missing cloudflared`});let c=s.stdout;n.debug(`cloudflared output:`,c);let l=c.match(/fetched your token:\n\n(.*)/m);if(l&&l.length>=2){let t={Cookie:`CF_Authorization=${l[1]}`};return O[e]=t,n.debug(`Caching Access headers for domain:`,e),t}throw Error(`Failed to authenticate with Cloudflare Access`)}w(ke,`getAccessHeaders`);function Ae(e,t){return new Promise((n,r)=>{let i=ae(`cloudflared`,[`access`,`login`,e],{signal:t}),a=[];i.stdout.on(`data`,e=>a.push(e)),i.stderr.resume();let o=w(()=>i.kill(),`killChild`);process.once(`exit`,o),i.on(`error`,e=>{if(process.removeListener(`exit`,o),t?.aborted){r(e);return}n({error:e,stdout:``})}),i.on(`close`,()=>{if(process.removeListener(`exit`,o),t?.aborted){r(t.reason??Error(`The operation was aborted`));return}n({stdout:Buffer.concat(a).toString()})})})}w(Ae,`spawnCloudflaredAccessLogin`);async function je(e){let t=Te();return t===void 0?ke(D(),e):(e.logger.debug(`Using WRANGLER_CF_AUTHORIZATION_TOKEN from environment`),{Cookie:`CF_Authorization=${t}`})}w(je,`getCloudflareAccessHeaders`);var Me=96,Ne=32,Pe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`;function Fe(e){let t=btoa(e);return t=t.replace(/\+/g,`-`),t=t.replace(/\//g,`_`),t=t.replace(/=/g,``),t}w(Fe,`base64urlEncode`);async function Ie(){let e=new Uint32Array(Me);S.getRandomValues(e);let t=Fe(Array.from(e).map(e=>Pe[e%Pe.length]).join(``)),n=await S.subtle.digest(`SHA-256`,new ee().encode(t)),r=new Uint8Array(n),i=``,a=r.byteLength;for(let e=0;e<a;e++)i+=String.fromCharCode(r[e]);return{codeChallenge:Fe(i),codeVerifier:t}}w(Ie,`generatePKCECodes`);var Le=w(({verificationUri:e,userCode:t})=>{let n=new URL(e);return n.searchParams.set(`user_code`,t),n.toString()},`generateVerificationUrl`);function Re(e){try{return new URL(e)}catch{return}}w(Re,`parseUrl`);function ze(e,t){let n=Re(e),r=Re(`https://${t.authDomain}`);if(!(n!==void 0&&r!==void 0&&n.protocol===`https:`&&n.username===``&&n.password===``&&n.host===r.host))throw new o(`The authorization server returned an untrusted \`${t.field}\`: ${e}
8
+ Expected an \`https\` URL on \`${t.authDomain}\`. Refusing to display or open it.`,{telemetryMessage:`user device-flow untrusted verification url`})}w(ze,`assertTrustedVerificationUrl`);var Be=w(({authUrl:e,clientId:t,scopes:n,stateQueryParam:r,codeChallenge:i,redirectUri:a})=>e+`?response_type=code&client_id=${encodeURIComponent(t)}&redirect_uri=${encodeURIComponent(a)}&scope=${encodeURIComponent([...n,`offline_access`].join(` `))}&state=${r}&code_challenge=${encodeURIComponent(i)}&code_challenge_method=S256`,`generateAuthUrl`);function Ve(e){let t=new Uint32Array(e);return S.getRandomValues(t),Array.from(t).map(e=>Pe[e%Pe.length]).join(``)}w(Ve,`generateRandomState`);var He=64e6;function Ue(e,t,n){let r=Array(t+1),i=b(`sha256`).update(e).digest();r[0]=i;for(let e=0;e<t;e++){for(let e=0;e<n;e++)i=b(`sha256`).update(i).digest();r[e+1]=i}return r}w(Ue,`solvePow`);function We(e){return Buffer.concat(e).toString(`base64`)}w(We,`encodeCheckpoints`);function Ge(e){let t=Ue(Buffer.from(e.seed,`base64url`),e.k,e.g);return{challengeToken:e.challengeToken,solution:{checkpoints:We(t)}}}w(Ge,`solveChallenge`);var A={termsOfService:`https://www.cloudflare.com/terms/`,privacyPolicy:`https://www.cloudflare.com/privacypolicy/`},Ke=`You must accept Cloudflare's Terms of Service (${A.termsOfService}) and Privacy Policy (${A.privacyPolicy}) in order to continue. By typing "yes", you agree to these terms. Type "yes" to continue.`,qe=`Continuing means you accept Cloudflare's Terms of Service (${A.termsOfService}) and Privacy Policy (${A.privacyPolicy}).`,Je=`You must accept Cloudflare's Terms of Service (${A.termsOfService}) and Privacy Policy (${A.privacyPolicy}) to use --temporary.`;function Ye(){return`${e(n)}/provisioning/previews`}w(Ye,`getTemporaryPreviewUrl`);function Xe(){return`${Ye()}/challenge`}w(Xe,`getTemporaryPreviewChallengeUrl`);function Ze(e){let t=Date.parse(e);return!Number.isNaN(t)&&t>Date.now()}w(Ze,`isFutureTimestamp`);function Qe(e){let t=e.read();if(t&&!(!t.account?.id||!t.account?.apiToken||!t.account?.name||!t.claim?.url||!Ze(t.account?.expiresAt??``)||!Ze(t.claim?.expiresAt??``)))return t}w(Qe,`getCachedTemporaryPreviewAccount`);async function $e(e){let t=await(0,T.fetch)(Xe(),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok)throw new d(`Failed to request a proof-of-work challenge (${t.status} ${t.statusText}).`,{telemetryMessage:`deploy temporary account challenge failed`});let n;try{n=await t.json()}catch{throw new d(`Failed to request a proof-of-work challenge. Received an invalid response (${t.status} ${t.statusText}).`,{telemetryMessage:`deploy temporary account challenge invalid response`})}let{challengeToken:r,seed:i,k:a,g:o}=n.result??{};if(r===void 0||i===void 0||a===void 0||o===void 0)throw new d(`Failed to request a proof-of-work challenge because the response was missing required fields.`,{telemetryMessage:`deploy temporary account challenge incomplete`});if(!Number.isInteger(a)||!Number.isInteger(o)||a<=0||o<=0||a*o>He||Buffer.from(i,`base64url`).length!==32)throw new d(`The proof-of-work challenge is not supported by this version of Wrangler.`,{telemetryMessage:`deploy temporary account challenge difficulty unsupported`});return e.log(`Solving proof-of-work challenge…`),Ge({challengeToken:r,seed:i,k:a,g:o})}w($e,`requestPowSolution`);async function et(e){let t=await $e(e),n=await(0,T.fetch)(Ye(),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({termsOfService:A.termsOfService,privacyPolicy:A.privacyPolicy,acceptTermsOfService:`yes`,challengeToken:t.challengeToken,solution:t.solution})});if(!n.ok)throw new d(`Failed to create a temporary preview account (${n.status} ${n.statusText}).`,{telemetryMessage:`deploy temporary account create failed`});let r;try{r=await n.json()}catch{throw new d(`Failed to create a temporary preview account. Received an invalid response (${n.status} ${n.statusText}).`,{telemetryMessage:`deploy temporary account invalid response`})}let i=r.result,a=i?.account?.id,o=i?.account?.name,s=i?.account?.apiToken,c=i?.account?.expiresAt,l=i?.claim?.url,u=i?.claim?.expiresAt;if(a===void 0||o===void 0||s===void 0||c===void 0||l===void 0||u===void 0)throw new d(`Failed to create a temporary preview account because the response was missing required fields.`,{telemetryMessage:`deploy temporary account response incomplete`});return{account:{id:a,name:o,apiToken:s,expiresAt:c},claim:{url:l,expiresAt:u}}}w(et,`createTemporaryPreviewAccount`);async function tt(e){let t=Qe(e.storage);if(t)return{account:t,cached:!0};if(!await e.prompt(Ke,qe))throw new o(Je,{telemetryMessage:`user temporary terms not accepted`});let n=await et(e.logger);return e.storage.write(n),{account:n,cached:!1}}w(tt,`getOrCreateTemporaryPreviewAccount`);function nt(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(`
9
+ [ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
10
+ `)})}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(`
11
+ `)&&(o=String(e).split(`
12
+ `).map(function(e,t){return t===0?e:``+i+e}).join(`
13
+ `)),a+=o+n[t+1]}),a}w(nt,`dedent`);var rt=nt,j=class extends o{static{w(this,`ErrorOAuth2`)}code;description;uri;toString(){return`ErrorOAuth2`}},it=class extends j{static{w(this,`ErrorUnknown`)}toString(){return`ErrorUnknown`}},at=class extends j{static{w(this,`ErrorNoAuthCode`)}toString(){return`ErrorNoAuthCode`}},ot=class extends j{static{w(this,`ErrorInvalidReturnedStateParam`)}toString(){return`ErrorInvalidReturnedStateParam`}},st=class extends j{static{w(this,`ErrorInvalidJson`)}toString(){return`ErrorInvalidJson`}},ct=class extends j{static{w(this,`ErrorInvalidScope`)}toString(){return`ErrorInvalidScope`}},lt=class extends j{static{w(this,`ErrorInvalidRequest`)}toString(){return`ErrorInvalidRequest`}},ut=class extends j{static{w(this,`ErrorInvalidToken`)}toString(){return`ErrorInvalidToken`}},M=class extends j{static{w(this,`ErrorAuthenticationGrant`)}toString(){return`ErrorAuthenticationGrant`}},dt=class extends M{static{w(this,`ErrorUnauthorizedClient`)}toString(){return`ErrorUnauthorizedClient`}},ft=class extends M{static{w(this,`ErrorAccessDenied`)}toString(){return`ErrorAccessDenied`}},pt=class extends M{static{w(this,`ErrorUnsupportedResponseType`)}toString(){return`ErrorUnsupportedResponseType`}},mt=class extends M{static{w(this,`ErrorServerError`)}toString(){return`ErrorServerError`}},ht=class extends M{static{w(this,`ErrorTemporarilyUnavailable`)}toString(){return`ErrorTemporarilyUnavailable`}},gt=class extends j{static{w(this,`ErrorAccessTokenResponse`)}toString(){return`ErrorAccessTokenResponse`}},_t=class extends gt{static{w(this,`ErrorInvalidClient`)}toString(){return`ErrorInvalidClient`}},vt=class extends gt{static{w(this,`ErrorInvalidGrant`)}toString(){return`ErrorInvalidGrant`}},yt=class extends gt{static{w(this,`ErrorUnsupportedGrantType`)}toString(){return`ErrorUnsupportedGrantType`}};function bt(e,t,n){let r=`OAuth error: ${e}`;return t&&(r+=`
14
+ ${t}`),n&&(r+=`
15
+ See: ${n}`),r}w(bt,`formatOAuthErrorMessage`);function N(e,t,n){let r=bt(e,t,n),i;switch(e){case`invalid_request`:i=new lt(r,{telemetryMessage:`user oauth invalid request`});break;case`invalid_grant`:i=new vt(r,{telemetryMessage:`user oauth invalid grant`});break;case`unauthorized_client`:i=new dt(r,{telemetryMessage:`user oauth unauthorized client`});break;case`access_denied`:i=new ft(r,{telemetryMessage:`user oauth access denied`});break;case`unsupported_response_type`:i=new pt(r,{telemetryMessage:`user oauth unsupported response type`});break;case`invalid_scope`:i=new ct(r,{telemetryMessage:`user oauth invalid scope`});break;case`server_error`:i=new mt(r,{telemetryMessage:`user oauth server error`});break;case`temporarily_unavailable`:i=new ht(r,{telemetryMessage:`user oauth temporarily unavailable`});break;case`invalid_client`:i=new _t(r,{telemetryMessage:`user oauth invalid client`});break;case`unsupported_grant_type`:i=new yt(r,{telemetryMessage:`user oauth unsupported grant type`});break;case`invalid_json`:i=new st(r,{telemetryMessage:`user oauth invalid json`});break;case`invalid_token`:i=new ut(r,{telemetryMessage:`user oauth invalid token`});break;default:i=new it(r,{telemetryMessage:`user oauth unknown error`});break}return i.code=e,i.description=t,i.uri=n,i}w(N,`toErrorClass`);function xt(e,t,n){if(e.error)throw N(Array.isArray(e.error)?e.error[0]:e.error,Array.isArray(e.error_description)?e.error_description[0]:e.error_description,Array.isArray(e.error_uri)?e.error_uri[0]:e.error_uri);let r=e.code;if(!r)return!1;if(e.state!==t.stateQueryParam)throw n.warn(`Received query string parameter doesn't match the one sent! Possible malicious activity somewhere.`),new ot(``,{telemetryMessage:`user oauth invalid returned state`});return v(!Array.isArray(r)),t.authorizationCode=r,t.hasAuthCodeBeenExchangedForAccessToken=!1,!0}w(xt,`isReturningFromAuthServer`);async function St(e,t,n,r,i){let{codeChallenge:a,codeVerifier:o}=await Ie(),s=i.generateRandomState(Ne);return Object.assign(r,{codeChallenge:a,codeVerifier:o,stateQueryParam:s}),i.generateAuthUrl({authUrl:ge(),clientId:t,scopes:e,stateQueryParam:s,codeChallenge:a,redirectUri:n})}w(St,`getAuthURL`);async function Ct(e,t,n,r){let i=E({warningLogger:e,storage:r}).refreshToken;i||e.warn(`No refresh token is present.`);let a=await P(new URLSearchParams({grant_type:`refresh_token`,refresh_token:i?.value??``,client_id:n}),e,t);if(a.status>=400){let t;try{t=await F(a,e)}catch(t){e.error(t)}throw t===void 0?new it(`Failed to parse Error from exchangeRefreshTokenForAccessToken`,{telemetryMessage:`user oauth refresh token exchange parse error`}):typeof t==`string`?Error(t):t}else try{let t=await F(a,e);if(`error`in t)throw t.error;let{access_token:n,expires_in:r,refresh_token:o,scope:s}=t;return{token:{value:n,expiry:new Date(Date.now()+r*1e3).toISOString()},scopes:s?s.split(` `):[],refreshToken:o?{value:o}:i}}catch(e){throw typeof e==`string`?N(e):e}}w(Ct,`exchangeRefreshTokenForAccessToken`);async function wt(e,t,n,r,i){let{authorizationCode:a,codeVerifier:o=``}=e;o?a||t.warn(`No authorization grant code is being passed.`):t.warn(`No code verifier is being sent.`);let s=await P(new URLSearchParams({grant_type:`authorization_code`,code:a??``,redirect_uri:i,client_id:r,code_verifier:o}),t,n);if(!s.ok){let{error:e}=await F(s,t);throw e===`invalid_grant`&&t.log(`Expired! Auth code or refresh token needs to be renewed.`),N(e)}let c=await F(s,t);if(`error`in c)throw N(c.error);let{access_token:l,expires_in:u,refresh_token:d,scope:f}=c;return e.hasAuthCodeBeenExchangedForAccessToken=!0,{token:{value:l,expiry:new Date(Date.now()+u*1e3).toISOString()},scopes:f?f.split(` `):[],refreshToken:d?{value:d}:void 0}}w(wt,`exchangeAuthCodeForAccessToken`);async function P(e,t,n){let r={"Content-Type":`application/x-www-form-urlencoded`};if(t.debug(`fetching auth token`,`grant_type=${e.get(`grant_type`)??`<unknown>`}`),await Oe(D(),t)){t.debug(`Using Cloudflare Access to get an access token for the auth request`);let e=await je({logger:t,isNonInteractiveOrCI:n});Object.assign(r,e)}t.debug(`Fetching auth token from`,_e());try{let n=await(0,T.fetch)(_e(),{method:`POST`,body:e.toString(),headers:r});return n.ok||t.debug(`Failed to fetch auth token:`,n.status,n.statusText),n}catch(e){throw t.debug(`Failed to fetch auth token:`,e),e}}w(P,`fetchAuthToken`);async function F(e,t){let n=await e.text();try{return JSON.parse(n)}catch(r){throw n.match(/<!DOCTYPE html>/)&&(t.error(`The body of the response was HTML rather than JSON. Check the debug logs to see the full body of the response.`),n.match(/challenge-platform/)&&t.error(`It looks like you might have hit a bot challenge page. This may be transient but if not, please contact Cloudflare to find out what can be done. When you contact Cloudflare, please provide your Ray ID: ${e.headers.get(`cf-ray`)}`)),t.debug(`Full body of response
16
+
17
+ `,n),Error(`Invalid JSON in response: status: ${e.status} ${e.statusText}`,{cause:r})}}w(F,`getJSONFromResponse`);async function Tt(e,t,n,r){let i=await St(e.scopes,e.clientId,e.redirectUri,t,r),a=new URL(e.redirectUri).pathname,s,c,l=new Promise((e,t)=>{c=setTimeout(()=>{s.close(),clearTimeout(c),t(new o(`Timed out waiting for authorization code, please try again.`,{telemetryMessage:`user oauth authorization timeout`}))},12e4)}),u=new Promise((r,i)=>{s=ne.createServer(async(l,u)=>{function d(e,t){clearTimeout(c),u.writableEnded||u.end(),s.close(n=>{t||n?i(t||n):(v(e),r(e))})}w(d,`finish`);function f(e){let t=w(e=>e.replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]),`escape`),n=`<!doctype html>
18
+ <html lang="en">
19
+ <head>
20
+ <meta charset="utf-8" />
21
+ <title>Wrangler login failed</title>
22
+ <style>
23
+ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; max-width: 720px; margin: 4rem auto; padding: 0 1rem; color: #1f2933; line-height: 1.5; }
24
+ h1 { color: #c12d3f; }
25
+ code { background: #f5f7fa; padding: 0.15em 0.3em; border-radius: 3px; }
26
+ p.detail { background: #f5f7fa; padding: 1rem; border-radius: 4px; white-space: pre-wrap; }
27
+ </style>
28
+ </head>
29
+ <body>
30
+ <h1>Wrangler login failed</h1>
31
+ <p>The Cloudflare OAuth provider returned an error.</p>
32
+ ${e.code?`<p>Code: <code>${t(e.code)}</code></p>`:``}
33
+ ${e.description?`<p class="detail">${t(e.description)}</p>`:``}
34
+ <p>You can close this tab and return to your terminal for more details.</p>
35
+ </body>
36
+ </html>`;u.writeHead(400,{"Content-Type":`text/html; charset=utf-8`}),u.end(n)}w(f,`renderErrorPage`),v(l.url,`This request doesn't have a URL`);let{pathname:p,query:m}=te.parse(l.url,!0);if(l.method!==`GET`)return u.end(`OK`);switch(p){case a:{let r=!1;try{r=xt(m,t,n.logger)}catch(t){if(t instanceof ft){u.writeHead(307,{Location:e.denied.url}),u.end(()=>{d(null,new o(e.denied.error,{telemetryMessage:`user oauth consent denied`}))});return}let n=t;f({code:n.code,description:n.description??n.message}),d(null,n);return}if(!r){let e=`The Cloudflare OAuth provider did not return an authorisation code.`;f({description:e}),d(null,new at(e,{telemetryMessage:`user oauth missing auth code`}));return}try{let r=await wt(t,n.logger,n.isNonInteractiveOrCI,e.clientId,e.redirectUri);u.writeHead(307,{Location:e.granted.url}),u.end(()=>{d(r)})}catch(e){let t=e,n=t instanceof j;f({code:n?t.code:void 0,description:(n?t.description:void 0)??t.message??`Failed to exchange the authorisation code for an access token.`}),d(null,t)}return}}});let l=new URL(e.redirectUri),u=Number(l.port||(l.protocol===`https:`?443:80));(l.hostname!==e.callbackHost||u!==e.callbackPort)&&(n.logger.log(`Temporary login server listening on ${e.callbackHost}:${e.callbackPort}`),n.logger.log(`Note that the OAuth login page will always redirect to \`${e.redirectUri}\`.
37
+ If you have changed the callback host or port because you are running in a container, then ensure that you have port forwarding set up correctly.`)),s.once(`error`,t=>{clearTimeout(c),t.code===`EADDRINUSE`?i(new o(`The OAuth callback server could not bind to ${e.callbackHost}:${e.callbackPort} because the port is already in use. Stop the process using that port or pass a different \`--callback-port\`.`,{telemetryMessage:`user oauth callback port in use`})):i(t)}),s.listen(e.callbackPort,e.callbackHost)});return e.browser?(n.logger.log(`Opening a link in your default browser: ${i}`),await n.openInBrowser(i)):n.logger.log(`Visit this link to authenticate: ${i}`),Promise.race([l,u])}w(Tt,`getOauthToken`);var Et=300,Dt=1;function I(e,t){if(typeof e!=`object`||!e)return;let n=e[t];return typeof n==`string`&&n!==``?n:void 0}w(I,`getStringMember`);function L(e,t){if(typeof e!=`object`||!e)return;let n=e[t];return typeof n==`number`&&Number.isFinite(n)&&n>0?n:void 0}w(L,`getPositiveNumberMember`);function Ot(e,t){let n=`HTTP ${e.status} ${e.statusText}`.trim(),r=I(t,`error_description`);return r?`${n}: ${r}`:n}w(Ot,`describeUnusableResponse`);function kt(e){return e>=500||e===429}w(kt,`isRetryableStatus`);function At(e){let t=I(e,`device_code`),n=I(e,`user_code`),r=I(e,`verification_uri`),i=L(e,`expires_in`);if(!(!t||!n||!r||i===void 0))return{device_code:t,user_code:n,verification_uri:r,verification_uri_complete:I(e,`verification_uri_complete`),expires_in:i,interval:L(e,`interval`)}}w(At,`asDeviceAuthorizationResponse`);async function R(e,t){let n=await e.text();try{return JSON.parse(n)}catch(r){throw n.match(/<!DOCTYPE html>/)&&(t.debug(`The body of the response was HTML rather than JSON. Check the debug logs to see the full body of the response.`),n.match(/challenge-platform/)&&t.debug(`It looks like you might have hit a bot challenge page. This may be transient but if not, please contact Cloudflare to find out what can be done. When you contact Cloudflare, please provide your Ray ID: ${e.headers.get(`cf-ray`)}`)),t.debug(`Full body of response
38
+
39
+ `,n),Error(`Invalid JSON in response: status: ${e.status} ${e.statusText}`,{cause:r})}}w(R,`readJson`);async function jt(e,t){let n={"Content-Type":`application/x-www-form-urlencoded`};return await Oe(D(),e)&&(e.debug(`Using Cloudflare Access to get an access token for the device authorization request`),Object.assign(n,await je({logger:e,isNonInteractiveOrCI:t}))),n}w(jt,`buildDeviceAuthHeaders`);async function Mt(e,t,n,r){let i=new URLSearchParams({client_id:t,scope:[...e,`offline_access`].join(` `)}),a=await jt(n,r),s=Se();n.debug(`Fetching device authorization from`,s);let c=await(0,T.fetch)(s,{method:`POST`,body:i.toString(),headers:a});if(!c.ok){let e=await R(c,n).catch(()=>void 0);throw N(e&&typeof e==`object`&&`error`in e?String(e.error):`HTTP ${c.status} ${c.statusText}`)}let l=await R(c,n),u=At(l);if(u===void 0)throw n.debug(`Unusable device authorization response body:`,l),new o(`The device authorization endpoint returned a response that could not be interpreted (${Ot(c,l)}).
40
+ Enable debug logging to see the full response.`,{telemetryMessage:`user device-flow unusable device authorization response`});return u}w(Mt,`requestDeviceAuthorization`);async function Nt(e,t,n,r){let i=await P(new URLSearchParams({grant_type:`urn:ietf:params:oauth:grant-type:device_code`,device_code:e,client_id:t}),n,r),a=await R(i,n),o=I(a,`error`);if(o!==void 0)return{kind:`oauth-error`,error:o};let s=I(a,`access_token`),c=L(a,`expires_in`);return!i.ok||s===void 0||c===void 0?(n.debug(`Unusable token response body:`,a),{kind:`unexpected`,detail:Ot(i,a),retryable:!i.ok&&kt(i.status)}):{kind:`token`,grant:{access_token:s,expires_in:c,refresh_token:I(a,`refresh_token`),scope:I(a,`scope`)}}}w(Nt,`pollDeviceToken`);function Pt(e){return new Promise(t=>setTimeout(t,e*1e3))}w(Pt,`sleep`);async function Ft(e,t){let{logger:n,openInBrowser:r,isNonInteractiveOrCI:i}=t,a=await Mt(e.scopes,e.clientId,n,i),s=D();ze(a.verification_uri,{field:`verification_uri`,authDomain:s}),a.verification_uri_complete!==void 0&&ze(a.verification_uri_complete,{field:`verification_uri_complete`,authDomain:s});let c=a.verification_uri_complete??Le({verificationUri:a.verification_uri,userCode:a.user_code}),l=Math.min(a.expires_in,Et);n.log(rt`
41
+ To authorize ${t.displayName}, please visit:
42
+
43
+ ${a.verification_uri}
44
+
45
+ and enter the code:
46
+
47
+ ${a.user_code}
48
+
49
+ You have ${It(l)} to approve this request.
50
+ `),e.browser&&(n.log(`
51
+ Opening a link in your default browser: ${c}`),await r(c));let u=Date.now()+l*1e3,d=Math.max(a.interval??Dt,Dt),f=!0,p;for(;Date.now()<u;){f||await Pt(d),f=!1;let r;try{r=await Nt(a.device_code,e.clientId,n,i)}catch(e){n.debug(`Ignoring transient error while polling for token:`,e),p=e instanceof Error?e.message:String(e);continue}if(r.kind===`unexpected`){if(!r.retryable)throw new o(`The token endpoint returned a response that could not be interpreted (${r.detail}).
52
+ Enable debug logging to see the full response.`,{telemetryMessage:`user device-flow unusable token response`});n.debug(`Ignoring transient response while polling for token:`,r.detail),p=r.detail;continue}if(p=void 0,r.kind===`oauth-error`)switch(r.error){case`authorization_pending`:continue;case`slow_down`:d+=5;continue;case`access_denied`:throw new o(`Consent denied. You must grant consent to ${t.displayName} in order to login.
53
+ If you don't want to do this consider passing an API token via the \`CLOUDFLARE_API_TOKEN\` environment variable.`,{telemetryMessage:`user device-flow consent denied`});case`expired_token`:throw new o(`Device code expired before the request was approved. Please run \`${t.deviceLoginCommand}\` again to obtain a new code.`,{telemetryMessage:`user device-flow code expired`});default:throw N(r.error)}let{grant:s}=r;return{token:{value:s.access_token,expiry:new Date(Date.now()+s.expires_in*1e3).toISOString()},scopes:s.scope?s.scope.split(` `):[],refreshToken:s.refresh_token?{value:s.refresh_token}:void 0}}throw p===void 0?new o(`Device authorization timed out after ${It(l)}. Please run \`${t.deviceLoginCommand}\` again to obtain a new code.`,{telemetryMessage:`user device-flow authorization timeout`}):new o(`Gave up waiting for device authorization: the token endpoint kept returning responses that could not be interpreted (last: ${p}).
54
+ Enable debug logging to see the full response, then run \`${t.deviceLoginCommand}\` to try again.`,{telemetryMessage:`user device-flow poll failed`})}w(Ft,`getOauthTokenViaDeviceFlow`);function It(e){if(e<60)return`${e} seconds`;let t=Math.floor(e/60),n=t===1?`minute`:`minutes`,r=e%60;return r===0?`${t} ${n}`:r==59?`${t+1} ${n}`:`${t} ${n} and ${r} ${r===1?`second`:`seconds`}`}w(It,`toHumanPeriod`);function Lt(e){let n={},r={generateAuthUrl:e.generateAuthUrl??Be,generateRandomState:e.generateRandomState??Ve},i=`default`;function a(t){return e.storageFactory(t??i)}w(a,`getStorage`);let s=w(()=>typeof e.clientId==`function`?e.clientId():e.clientId,`getClientId`),c=e.consent,l=!1,u,d=new URL(e.redirectUri),f=d.hostname,p=Number(d.port);async function m(i){if(e.hasEnvCredentials())return e.logger.error(`You are logged in with an API Token. Unset the CLOUDFLARE_API_TOKEN in the environment to log in via OAuth.`),!1;let l=t(i.complianceConfig);if(l===`fedramp_high`)throw new o(rt`
55
+ OAuth login is not supported in the \`${l}\` compliance region.
56
+ Please use a Cloudflare API token (\`CLOUDFLARE_API_TOKEN\` environment variable) or remove the ${i.complianceConfig?.compliance_region?"`compliance_region` configuration property":"`CLOUDFLARE_API_ENVIRONMENT` environment variable"}.
57
+ `,{telemetryMessage:`user login unsupported compliance region`});let u;return i.device?(e.logger.log(`Attempting to login via OAuth Device Authorization Grant...`),u=await Ft({browser:i.browser??!0,scopes:i.scopes,clientId:s()},e)):(e.logger.log(`Attempting to login via OAuth...`),u=await Tt({browser:i.browser??!0,scopes:i.scopes,clientId:s(),redirectUri:e.redirectUri,denied:c.denied,granted:c.granted,callbackHost:i.callbackHost??f,callbackPort:i.callbackPort??p},n,e,r)),a(i.profile).write({oauth_token:u.token?.value??``,expiration_time:u.token?.expiry,refresh_token:u.refreshToken?.value,scopes:u.scopes}),e.logger.log(`Successfully logged in.`),x(),e.purgeOnLoginOrLogout?.(),!0}w(m,`login`);function h(t){if(e.hasEnvCredentials())return!1;let{accessToken:n}=E({warningLogger:e.logger,storage:a(t)});return!!(n&&new Date>=new Date(n.expiry))}w(h,`isRefreshNeeded`);async function g(t){let n=a(t);try{let{token:{value:t,expiry:r}={value:``,expiry:``},refreshToken:{value:i}={},scopes:a}=await Ct(e.logger,e.isNonInteractiveOrCI,s(),n);return n.write({oauth_token:t,expiration_time:r,refresh_token:i,scopes:a}),!0}catch(t){return e.logger.debug(`Token refresh failed: ${t instanceof Error?t.message:String(t)}`),!1}}w(g,`refreshToken`);async function _(t){if(e.hasEnvCredentials())return{loggedIn:!0};let n=E({warningLogger:e.logger,storage:a(t.profile)});return!n.accessToken&&!n.deprecatedApiToken?e.isNonInteractiveOrCI()?{loggedIn:!1,reason:`no-credentials-non-interactive`}:await m(t)?{loggedIn:!0}:{loggedIn:!1,reason:`no-credentials-login-failed`}:h(t.profile)?await g(t.profile)?{loggedIn:!0}:e.isNonInteractiveOrCI()?{loggedIn:!1,reason:`token-expired-non-interactive`}:await m(t)?{loggedIn:!0}:{loggedIn:!1,reason:`token-expired-login-failed`}:{loggedIn:!0}}w(_,`loginOrRefreshIfRequired`);async function v(t){let n=x();if(e.hasEnvCredentials()){e.logger.log(`You are logged in with an API Token. Unset the CLOUDFLARE_API_TOKEN in the environment to log out.`);return}let r=E({warningLogger:e.logger,storage:a(t)}).refreshToken;if(!r){e.logger.log(n?`Cleared temporary preview account.`:`Not logged in, exiting...`);return}let i=`client_id=${encodeURIComponent(s())}&token_type_hint=refresh_token&token=${encodeURIComponent(r.value||``)}`;await(await(0,T.fetch)(ve(),{method:`POST`,body:i,headers:{"Content-Type":`application/x-www-form-urlencoded`}})).text(),a(t).clear(),e.logger.log(`Successfully logged out.`),e.purgeOnLoginOrLogout?.()}w(v,`logout`);async function ee(){let t=E({warningLogger:e.logger,storage:a()});if(t.accessToken){if(t.accessToken&&new Date>=new Date(t.accessToken.expiry)){if(!await g())return;t=E({warningLogger:e.logger,storage:a()})}return t.accessToken?.value}}w(ee,`getOAuthTokenFromLocalState`);function y(){return u?{apiToken:u.account.apiToken}:fe({storage:a(),warningLogger:e.logger,allowGlobalAuthKey:e.allowGlobalAuthKey})}w(y,`getAPITokenInternal`);function te(){return u?{apiToken:u.account.apiToken}:pe({storage:a(),warningLogger:e.logger,allowGlobalAuthKey:e.allowGlobalAuthKey})}w(te,`requireApiTokenInternal`);function ne(t){l=t&&e.temporary!==void 0,u=void 0}w(ne,`setTemporaryAllowed`);function re(){return l}w(re,`isTemporaryAllowed`);function ie(){return u}w(ie,`getActiveTemporaryAccount`);async function b(){if(!e.temporary)throw new o(`Temporary preview accounts are not supported by this CLI.`,{telemetryMessage:`user temporary account unsupported`});let t=await tt({...e.temporary,logger:e.logger});return u=t.account,t}w(b,`activateTemporaryAccount`);function x(){return u=void 0,e.temporary?.storage.clear()??!1}w(x,`clearTemporaryAccount`);function S(e){i=e}w(S,`setProfile`);function ae(){return i}w(ae,`getActiveProfile`);function C(){return E({warningLogger:e.logger,storage:a()}).scopes}return w(C,`getScopes`),{setProfile:S,getActiveProfile:ae,login:m,logout:v,loginOrRefreshIfRequired:_,getOAuthTokenFromLocalState:ee,getAPIToken:y,requireApiToken:te,getScopes:C,setTemporaryAllowed:ne,isTemporaryAllowed:re,getActiveTemporaryAccount:ie,activateTemporaryAccount:b}}w(Lt,`createOAuthFlow`);var Rt=[`default`,`staging`];function zt(e){let t={read(){return e.bindings.read()},write(t){e.bindings.write(t)},activate(t,n){let r=y.resolve(n),i=e.bindings.read();i[r]=t,e.bindings.write(i)},deactivate(t){let n=y.resolve(t),r=e.bindings.read(),i=r[n];if(i===void 0){let e=Bt(n,r);throw e?new o(`No profile is directly bound to "${B(n)}". The active profile "${e.profile}" is bound at "${B(e.dir)}". Run the deactivate command from that directory instead.`,{telemetryMessage:`auth deactivate wrong directory`}):new o(`No profile is bound to "${B(n)}". Nothing to deactivate.`,{telemetryMessage:`auth deactivate no binding`})}delete r[n],e.bindings.write(r);let a=Bt(n,r);return a?{removedProfile:i,newResolution:{profile:a.profile,source:`inherited from ${a.dir}`}}:e.configs.exists(`default`)?{removedProfile:i,newResolution:{profile:`default`,source:`default profile`}}:{removedProfile:i,newResolution:{profile:void 0,source:`no profile`}}},getProfileForDirectory(t){return Bt(t,e.bindings.read())?.profile},getBindingsForProfile(t){return Object.entries(e.bindings.read()).filter(([,e])=>e===t).map(([e])=>e)},removeAllBindingsForProfile(t){let n=e.bindings.read(),r=[];for(let[e,i]of Object.entries(n))i===t&&(r.push(e),delete n[e]);return r.length>0&&e.bindings.write(n),r}};return{configs:e.configs,bindings:t,resolve(e){return e.profile?e.profile===`default`?`default`:(z(e.profile),e.profile):t.getProfileForDirectory(e.cwd)||`default`}}}w(zt,`createProfileStore`);function z(e){if(Rt.includes(e.toLowerCase()))throw new o(`"${e}" is a reserved profile name. Use the login and logout commands to manage the default profile, which applies as a global fallback.`,{telemetryMessage:`auth profile reserved name`});if(!/^[a-zA-Z0-9_-]+$/.test(e))throw new o(`Invalid profile name "${e}". Profile names may only contain alphanumeric characters, hyphens, and underscores.`,{telemetryMessage:`auth profile invalid name`})}w(z,`validateProfileName`);function B(e){return y.relative(process.cwd(),e)||`.`}w(B,`formatDirectoryForUserError`);function Bt(e,t){let n=y.resolve(e),r=Object.entries(t).sort(([e],[t])=>t.length-e.length);for(let[e,t]of r)if(n===e||n.startsWith(e)&&n[e.length]===y.sep)return{profile:t,dir:e}}w(Bt,`getProfileForDirectoryFromBindings`);function Vt(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}w(Vt,`getLineColFromPtr`);function Ht(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+=`
58
+ `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
59
+ `))}return i}w(Ht,`makeCodeBlock`);var V=class extends Error{static{w(this,`TomlError`)}line;column;codeblock;constructor(e,t){let[n,r]=Vt(t.toml,t.ptr),i=Ht(t.toml,n,r);super(`Invalid TOML document: ${e}
60
+
61
+ ${i}`,t),this.line=n,this.column=r,this.codeblock=i}};function Ut(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}w(Ut,`isEscaped`);function H(e,t=0,n=e.length){let r=e.indexOf(`
62
+ `,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}w(H,`indexOfNewline`);function Wt(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
63
+ `)return n;if(r===`\r`&&e[n+1]===`
64
+ `)return n+1;if(r<` `&&r!==` `||r===``)throw new V(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}w(Wt,`skipComment`);function U(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
65
+ `||i===`\r`&&e[t+1]===`
66
+ `);)t++;return r||i!==`#`?t:U(e,Wt(e,t),n)}w(U,`skipVoid`);function Gt(e,t,n,r,i=!1){if(!r)return t=H(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=H(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
67
+ `||t===`\r`&&e[a+1]===`
68
+ `))return a}throw new V(`cannot find end of structure`,{toml:e,ptr:t})}w(Gt,`skipUntil`);function Kt(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!==`'`&&Ut(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}w(Kt,`getStringEnd`);var qt=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i,Jt=class e extends Date{static{w(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(qt);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}},Yt=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,Xt=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,Zt=/^[+-]?0[0-9_]/,Qt=/^[0-9a-f]{4,8}$/i,$t={b:`\b`,t:` `,n:`
69
+ `,f:`\f`,r:`\r`,'"':`"`,"\\":`\\`};function en(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]===`
70
+ `&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
71
+ `||n===`\r`&&e[t]===`
72
+ `){if(!i)throw new V(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new V(`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(!Qt.test(r))throw new V(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new V(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
73
+ `||n===` `||n===` `||n===`\r`)){if(t=U(e,t-1,!0),e[t]!==`
74
+ `&&e[t]!==`\r`)throw new V(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=U(e,t)}else if(n in $t)s+=$t[n];else throw new V(`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)}w(en,`parseString`);function tn(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=Yt.test(e);if(i||Xt.test(e)){if(Zt.test(e))throw new V(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new V(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new V(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new Jt(e);if(!a.isValid())throw new V(`invalid value`,{toml:t,ptr:n});return a}w(tn,`parseValue`);function nn(e,t,n,r){let i=e.slice(t,n),a=i.indexOf(`#`);a>-1&&(Wt(e,a),i=i.slice(0,a));let o=i.trimEnd();if(!r){let n=i.indexOf(`
75
+ `,o.length);if(n>-1)throw new V(`newlines are not allowed in inline tables`,{toml:e,ptr:t+n})}return[o,a]}w(nn,`sliceAndTrimEndOf`);function rn(e,t,n,r,i){if(r===0)throw new V(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?cn(e,t,r,i):sn(e,t,r,i),c=n?Gt(e,s,`,`,n):s;if(s-c&&n===`}`){let t=H(e,s,c);if(t>-1)throw new V(`newlines are not allowed in inline tables`,{toml:e,ptr:t})}return[o,c]}let o;if(a===`"`||a===`'`){o=Kt(e,t);let r=en(e,t,o);if(n){if(o=U(e,o,n!==`]`),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
76
+ `&&e[o]!==`\r`)throw new V(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=Gt(e,t,`,`,n);let s=nn(e,t,o-+(e[o-1]===`,`),n===`]`);if(!s[0])throw new V(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=U(e,t+s[1]),o+=+(e[o]===`,`)),[tn(s[0],e,t,i),o]}w(rn,`extractValue`);var an=/^[a-zA-Z0-9-_]+[ \t]*$/;function on(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new V(`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 V(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=Kt(e,t);if(s<0)throw new V(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=H(c);if(l>-1)throw new V(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new V(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new V(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(en(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!an.test(n))throw new V(`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,U(e,a+1,!0,!0)]}w(on,`parseKey`);function sn(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===`
77
+ `)throw new V(`newlines are not allowed in inline tables`,c);if(o===`#`)throw new V(`inline tables cannot contain comments`,c);if(o===`,`)throw new V(`expected key-value, found comma`,c);if(o!==` `&&o!==` `){let o,c=i,l=!1,[u,d]=on(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 V(`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 V(`trying to redefine an already defined value`,{toml:e,ptr:t});let[f,p]=rn(e,d,`}`,n-1,r);a.add(f),c[o]=f,t=p,s=e[t-1]===`,`?t-1:0}}if(s)throw new V(`trailing commas are not allowed in inline tables`,{toml:e,ptr:s});if(!o)throw new V(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}w(sn,`parseInlineTable`);function cn(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new V(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=Wt(e,t);else if(a!==` `&&a!==` `&&a!==`
78
+ `&&a!==`\r`){let a=rn(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new V(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}w(cn,`parseArray`);function ln(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]}w(ln,`peekTable`);function un(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=U(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=on(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new V(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=ln(n[0],r,i,t?2:1);if(!c)throw new V(`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=on(e,s),i=ln(r[0],a,o,0);if(!i)throw new V(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=rn(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=U(e,s,!0),e[s]&&e[s]!==`
79
+ `&&e[s]!==`\r`)throw new V(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=U(e,s)}return r}w(un,`parse`);var dn=/^[a-z0-9-_]+$/i;function W(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}w(W,`extendedTypeOf`);function fn(e){for(let t=0;t<e.length;t++)if(W(e[t])!==`object`)return!1;return e.length!=0}w(fn,`isArrayOfTables`);function pn(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}w(pn,`formatString`);function mn(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 pn(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return hn(e,n,r);if(t===`array`)return gn(e,n,r)}w(mn,`stringifyValue`);function hn(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+=dn.test(o)?o:pn(o),i+=` = `,i+=mn(e[o],W(e[o]),t-1,n)}return i+` }`}w(hn,`stringifyInlineTable`);function gn(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+=mn(e[i],W(e[i]),t-1,n)}return r+` ]`}w(gn,`stringifyArray`);function _n(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&&`
80
+ `}[[${t}]]
81
+ `,i+=vn(0,e[a],t,n,r);return i}w(_n,`stringifyArrayTable`);function vn(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=W(t[c]);if(e===`symbol`||e===`function`)throw TypeError(`cannot serialize values of type '${e}'`);let s=dn.test(c)?c:pn(c);if(e===`array`&&fn(t[c]))o+=(o&&`
82
+ `)+_n(t[c],n?`${n}.${s}`:s,r-1,i);else if(e===`object`){let e=n?`${n}.${s}`:s;o+=(o&&`
83
+ `)+vn(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=mn(t[c],e,r,i),a+=`
84
+ `}}return e&&(a||!o)&&(a=a?`[${e}]
85
+ ${a}`:`[${e}]`),a&&o?`${a}
86
+ ${o}`:a||o}w(vn,`stringifyTable`);function yn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(W(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=vn(0,e,``,t,n);return r[r.length-1]===`
87
+ `?r:r+`
88
+ `}w(yn,`stringify`);var bn={parse:un,stringify:yn,TomlDate:Jt,TomlError:V},xn={toml:{parse:w(e=>u(e),`parse`),stringify:w(e=>bn.stringify(e),`stringify`)},json:{parse:w(e=>JSON.parse(e),`parse`),stringify:w(e=>JSON.stringify(e,null,` `),`stringify`)}};function G(e,t){return xn[e].parse(t)}w(G,`parseFile`);function Sn(e,t){return xn[e].stringify(t)}w(Sn,`stringifyFile`);var Cn=`config`;function wn(e){if(e===void 0||e===`default`){let e=s();return e===`production`?`default`:e}return z(e),e}w(wn,`resolveAuthProfileBaseName`);function Tn(e,t,n=`toml`){return y.join(e,Cn,`${wn(t)}.${n}`)}w(Tn,`getAuthConfigFilePath`);var En=class{constructor(e,t,n=`toml`){this.configPath=e,this.profile=t,this.format=n}static{w(this,`FileCredentialStore`)}kind=`file`;filePath(){return Tn(this.configPath,this.profile,this.format)}read(){let e=this.filePath();if(m(e))return G(this.format,i(e))}write(e){let t=this.filePath();h(y.dirname(t),{recursive:!0}),_(t,Sn(this.format,e),{encoding:`utf-8`,mode:384}),p(t,384)}clear(){let e=this.filePath(),t=m(e);return t&&g(e),t}path(){return this.filePath()}describe(){return this.filePath()}},K=32,Dn=12,On=16,kn=`AES-256-GCM`,An=`aes-256-gcm`;function jn(){return new Uint8Array(x(K))}w(jn,`generateKey`);function Mn(e,t){if(t.length!==K)throw Error(`AES-256-GCM requires a ${K}-byte key (got ${t.length} bytes).`);let n=x(Dn),r=re(An,t,n),i=Buffer.concat([r.update(e,`utf-8`),r.final()]),a=r.getAuthTag();return{v:1,alg:kn,iv:n.toString(`base64`),tag:a.toString(`base64`),ciphertext:i.toString(`base64`)}}w(Mn,`encryptString`);function Nn(e,t){if(t.length!==K)throw Error(`AES-256-GCM requires a ${K}-byte key (got ${t.length} bytes).`);if(e.v!==1)throw Error(`Unsupported encrypted envelope version: ${e.v}.`);let n=Buffer.from(e.iv,`base64`),r=Buffer.from(e.tag,`base64`),i=Buffer.from(e.ciphertext,`base64`);if(n.length!==Dn)throw Error(`Expected ${Dn}-byte IV in envelope (got ${n.length} bytes).`);if(r.length!==On)throw Error(`Expected ${On}-byte auth tag in envelope (got ${r.length} bytes).`);let a=ie(An,t,n);return a.setAuthTag(r),Buffer.concat([a.update(i),a.final()]).toString(`utf-8`)}w(Nn,`decryptString`);function Pn(e){if(typeof e!=`object`||!e)return;let t=e;if(!(t.v!==1||t.alg!==kn||typeof t.iv!=`string`||typeof t.tag!=`string`||typeof t.ciphertext!=`string`))return t}w(Pn,`parseEncryptedEnvelope`);function q(e,t){return y.join(e,`config`,`${wn(t)}.enc`)}w(q,`getEncryptedAuthConfigFilePath`);var Fn=class{constructor(e,t,n,r,i=`toml`){this.configPath=e,this.keyProvider=t,this.onPlaintextMigration=n,this.profile=r,this.format=i}static{w(this,`EncryptedFileCredentialStore`)}kind=`encrypted-file`;plaintextPath(){return Tn(this.configPath,this.profile,this.format)}read(){let e=q(this.configPath,this.profile);if(m(e))return this.readEncryptedFile(e);let t=this.plaintextPath();if(m(t))return this.migrateFromPlaintext(t,e)}write(e){let t=this.ensureKey(),n=Mn(Sn(this.format,e),t),r=q(this.configPath,this.profile);h(y.dirname(r),{recursive:!0}),_(r,JSON.stringify(n,null,` `),{encoding:`utf-8`,mode:384}),p(r,384);let i=this.plaintextPath();m(i)&&g(i)}clear(){let e=q(this.configPath,this.profile),t=this.plaintextPath(),n=!1;m(e)&&(g(e),n=!0),m(t)&&(g(t),n=!0);try{this.keyProvider.deleteKey()}catch{}return n}path(){return q(this.configPath,this.profile)}describe(){return`Encrypted file (${q(this.configPath,this.profile)}) with key in ${this.keyProvider.describe()}`}readEncryptedFile(e){let t=this.keyProvider.getKey();if(t===void 0)return;let n=i(e),r;try{r=Pn(JSON.parse(n))}catch{return}if(r===void 0)return;let a;try{a=Nn(r,t)}catch{return}try{return G(this.format,a)}catch{return}}migrateFromPlaintext(e,t){let n=i(e),r;try{r=G(this.format,n)}catch{return}return this.write(r),this.onPlaintextMigration?.({plaintextPath:e,encryptedPath:t,keyProviderDescription:this.keyProvider.describe()}),r}ensureKey(){let e=this.keyProvider.getKey();if(e!==void 0)return e;let t=jn();return this.keyProvider.setKey(t),t}},J=`1.3.0`;function In(e){return C(`npm`,e,{encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],shell:process.platform===`win32`})}w(In,`defaultNpmRunner`);var Ln=In,Y=new Map;function Rn(e){Ln=e??In,Y.clear()}w(Rn,`setNpmRunner`);function zn(e){return y.join(e,`native`,`keyring`)}w(zn,`getKeyringInstallDir`);function Bn(e){return y.join(e,`node_modules`,`@napi-rs`,`keyring`)}w(Bn,`getInstalledBindingPath`);function Vn(e){try{return f(e)(e),!0}catch{return!1}}w(Vn,`canLoadKeyringBinding`);function Hn(e){let t=Y.get(e);if(t!==void 0)return t;let n=Bn(e);if(m(y.join(n,`index.js`))&&Vn(n))return Y.set(e,n),n;try{let t=Ln([`root`,`-g`]);if(t.status===0){let n=y.join(t.stdout.trim(),`@napi-rs`,`keyring`);if(m(y.join(n,`index.js`))&&Vn(n))return Y.set(e,n),n}}catch{}return Y.set(e,null),null}w(Hn,`findKeyringBinding`);function Un(e){let t=e;h(t,{recursive:!0});let n=y.join(t,`package.json`);m(n)||_(n,JSON.stringify({private:!0,name:`cloudflare-auth-keyring-host`},null,` `),`utf-8`);let r;try{r=Ln([`install`,`@napi-rs/keyring@${J}`,`--prefix`,t,`--no-save`,`--no-audit`,`--no-fund`,`--no-package-lock`,`--loglevel=error`])}catch(e){throw new o(`Failed to spawn \`npm\` to install the keyring backend: ${e instanceof Error?e.message:String(e)}
89
+
90
+ Install \`npm\` and retry, or install the binding globally:
91
+ npm install -g @napi-rs/keyring@${J}`,{telemetryMessage:`workers-auth keyring npm spawn failed`})}if(r.status!==0)throw new o(`Failed to install \`@napi-rs/keyring\` (npm exited ${r.status}):
92
+ ${r.stderr?.trim()??`(no stderr)`}
93
+
94
+ Retry once the underlying issue is fixed, or install the binding globally:
95
+ npm install -g @napi-rs/keyring@${J}`,{telemetryMessage:`workers-auth keyring npm install failed`});if(Y.delete(e),Hn(e)===null)throw new o(`\`npm\` reported success but the \`@napi-rs/keyring\` native binding still cannot be loaded.
96
+
97
+ Its platform-specific binary ships as a separate optional package, so a download that was skipped or interrupted leaves the binding unusable.
98
+
99
+ Retry once the underlying issue is fixed, or install the binding globally:
100
+ npm install -g @napi-rs/keyring@${J}`,{telemetryMessage:`workers-auth keyring install incomplete`})}w(Un,`installKeyringBindingSync`);var Wn;function Gn(e){Wn=e}w(Gn,`setKeyringEntryFactory`);function Kn(e){if(Wn!==void 0)return Wn;let t=Hn(e);if(t===null)throw new o(`The \`@napi-rs/keyring\` native binding is not available.
101
+
102
+ Retry the command, or install the binding globally:
103
+ npm install -g @napi-rs/keyring@${J}`,{telemetryMessage:`workers-auth keyring binding not loadable`});let n=f(t)(t);return(e,t)=>new n.Entry(e,t)}w(Kn,`resolveKeyringEntryFactory`);function X(e){return wn(e)}w(X,`getKeyringAccountName`);function qn(e){let t={v:1,key:Buffer.from(e).toString(`base64`),created:new Date().toISOString()};return JSON.stringify(t)}w(qn,`encodeKeyEnvelope`);function Z(e){if(e===``)return;let t;try{t=JSON.parse(e)}catch{return}if(!(typeof t!=`object`||!t||t.v!==1||typeof t.key!=`string`))try{let e=Buffer.from(t.key,`base64`);return e.length===32?new Uint8Array(e):void 0}catch{return}}w(Z,`decodeKeyEnvelope`);function Jn(e,t={}){return C(`secret-tool`,e,{encoding:`utf-8`,input:t.input})}w(Jn,`defaultRunner`);var Q=Jn,Yn=void 0;function Xn(e){Q=e??Jn,Yn=void 0}w(Xn,`setLinuxSecretToolRunner`);function Zn(){if(Yn!==void 0)return Yn;let e;try{e=Q([`--version`]).error===void 0}catch{e=!1}return Yn=e,e}w(Zn,`probeSecretTool`);var Qn=class{constructor(e,t){this.serviceName=e,this.profile=t}static{w(this,`LinuxSecretToolKeyProvider`)}getKey(){let e=Q([`lookup`,`service`,this.serviceName,`account`,X(this.profile)]);if(e.status!==1){if(e.status!==0)throw Error(`Failed to read key via secret-tool (exit ${e.status}): ${e.stderr?.trim()??`(no stderr)`}`);return Z(e.stdout.trim())}}setKey(e){let t=Q([`store`,`--label=Cloudflare credentials key`,`service`,this.serviceName,`account`,X(this.profile)],{input:qn(e)});if(t.status!==0)throw Error(`Failed to write key via secret-tool (exit ${t.status}): ${t.stderr?.trim()??`(no stderr)`}`)}deleteKey(){let e=Q([`clear`,`service`,this.serviceName,`account`,X(this.profile)]);if(e.status!==0)throw Error(`Failed to delete key via secret-tool (exit ${e.status}): ${e.stderr?.trim()??`(no stderr)`}`)}describe(){return`Linux secret-tool (service=${this.serviceName}, account=${X(this.profile)})`}},$n=44;function er(e,t={}){return C(`/usr/bin/security`,e,{encoding:`utf-8`,input:t.input})}w(er,`defaultRunner`);var tr=er;function nr(e){tr=e??er}w(nr,`setMacSecurityCommandRunner`);var rr=class{constructor(e,t){this.serviceName=e,this.profile=t}static{w(this,`MacSecurityKeyProvider`)}getKey(){let e=tr([`find-generic-password`,`-s`,this.serviceName,`-a`,X(this.profile),`-w`]);if(e.status!==$n){if(e.status!==0)throw Error(`Failed to read key from macOS Keychain (exit ${e.status}): ${e.stderr?.trim()??`(no stderr)`}`);return Z(e.stdout.trim())}}setKey(e){let t=tr([`add-generic-password`,`-s`,this.serviceName,`-a`,X(this.profile),`-w`,qn(e),`-U`]);if(t.status!==0)throw Error(`Failed to write key to macOS Keychain (exit ${t.status}): ${t.stderr?.trim()??`(no stderr)`}`)}deleteKey(){let e=tr([`delete-generic-password`,`-s`,this.serviceName,`-a`,X(this.profile)]);if(!(e.status===0||e.status===$n))throw Error(`Failed to delete key from macOS Keychain (exit ${e.status}): ${e.stderr?.trim()??`(no stderr)`}`)}describe(){return`macOS Keychain (service=${this.serviceName}, account=${X(this.profile)})`}},ir=class{constructor(e,t,n){this.serviceName=e,this.installDir=t,this.profile=n}static{w(this,`NapiKeyringKeyProvider`)}entry(){return Kn(this.installDir)(this.serviceName,X(this.profile))}getKey(){let e=this.entry().getPassword();if(!(e===null||e===``))return Z(e)}setKey(e){this.entry().setPassword(qn(e))}deleteKey(){try{this.entry().deletePassword()}catch{}}describe(){return`${process.platform===`win32`?`Windows Credential Manager`:`OS keyring`} via @napi-rs/keyring (service=${this.serviceName}, account=${X(this.profile)})`}},ar;function or(e){ar=e}w(or,`setKeyProviderFactoryForTesting`);function sr(e,t,n){if(ar!==void 0)return{kind:`available`,provider:ar(e,t)};switch(process.platform){case`darwin`:return{kind:`available`,provider:new rr(e,t)};case`linux`:return Zn()?{kind:`available`,provider:new Qn(e,t)}:{kind:`unsupported`};case`win32`:{let r=zn(n);return Hn(r)===null?{kind:`needs-install`,install:w(()=>Un(r),`install`),afterInstall:w(()=>new ir(e,r,t),`afterInstall`)}:{kind:`available`,provider:new ir(e,r,t)}}default:return{kind:`unsupported`}}}w(sr,`resolveKeyProvider`);var cr={installFailedThisSession:!1,hasWarnedAboutKeyringFallback:!1,hasWarnedAboutSecretToolMissing:!1};function lr(){return cr}w(lr,`getResolverSessionFlags`);function ur(){cr.installFailedThisSession=!1,cr.hasWarnedAboutKeyringFallback=!1,cr.hasWarnedAboutSecretToolMissing=!1}w(ur,`resetCredentialStorageState`);function dr(e){let t={...e,loginCommand:e.loginCommand??`your CLI login`,format:e.format??`toml`};function n(e){return fr(t,e)}w(n,`getActiveStore`);function r(e){return{read:w(()=>n(e).read(),`read`),write:w(t=>n(e).write(t),`write`),clear:w(()=>n(e).clear(),`clear`),path:w(()=>n(e).path(),`path`)}}return w(r,`storageFactory`),{storageFactory:r,getActiveStore:n}}w(dr,`createCredentialStorageContext`);function fr(e,t){let n=Ee(),r=e.getConfigPath();if(n===!1)return new En(r,t,e.format);let i=n===!0;if(!(n??e.isKeyringEnabled()??!1))return new En(r,t,e.format);let a=sr(e.serviceName,t,r);switch(a.kind){case`available`:return new Fn(r,a.provider,pr(e),t,e.format);case`needs-install`:return mr(a,i,e,t);case`unsupported`:return hr(i,e,t)}}w(fr,`resolveActiveCredentialStore`);function pr(e){return t=>{e.logger.warn(`Migrated credentials from ${t.plaintextPath} into ${t.encryptedPath} (key in ${t.keyProviderDescription}). The plaintext file has been deleted.`)}}w(pr,`buildMigrationLogger`);function mr(e,t,n,r){let i=lr();if(i.installFailedThisSession){if(t)throw new o(`CLOUDFLARE_AUTH_USE_KEYRING is set but the keyring backend could not be installed earlier this session.`,{telemetryMessage:`workers-auth keyring install previously failed`});return $(`The keyring backend could not be installed earlier this session; using the plaintext credentials file.`,n,r)}if(n.isNonInteractiveOrCI())throw new o(_r(n.loginCommand),{telemetryMessage:`workers-auth keyring binding not installed`});try{n.logger.log(`🔐 Installing keyring backend (one-time, ~2 MB)…`),e.install()}catch(e){if(i.installFailedThisSession=!0,t)throw e instanceof o?e:new o(`Failed to install the keyring backend: ${e instanceof Error?e.message:String(e)}`,{telemetryMessage:`workers-auth keyring install threw`});return $(`Failed to install the keyring backend (${e instanceof Error?e.message:String(e)}); falling back to the plaintext credentials file.`,n,r)}return new Fn(n.getConfigPath(),e.afterInstall(),pr(n),r,n.format)}w(mr,`handleNeedsInstall`);function hr(e,t,n){let r=process.platform,i=r===`linux`,a=i?gr(t.loginCommand):`OS keyring storage is not supported on \`${r}\`; falling back to the plaintext credentials file.`;if(e)throw new o(i?`CLOUDFLARE_AUTH_USE_KEYRING is set but ${a}`:`CLOUDFLARE_AUTH_USE_KEYRING is set but no keyring backend is available on \`${r}\`.`,{telemetryMessage:i?`workers-auth keyring secret tool missing`:`workers-auth keyring unsupported platform`});if(i&&t.isNonInteractiveOrCI())throw new o(a,{telemetryMessage:`workers-auth keyring secret tool missing`});let s=lr();return i?(s.hasWarnedAboutSecretToolMissing||(s.hasWarnedAboutSecretToolMissing=!0,t.logger.warn(`${a}
104
+
105
+ Falling back to the plaintext credentials file for this session.`)),new En(t.getConfigPath(),n,t.format)):$(a,t,n)}w(hr,`handleUnsupported`);function $(e,t,n){let r=lr();return r.hasWarnedAboutKeyringFallback||(r.hasWarnedAboutKeyringFallback=!0,t.logger.warn(e)),new En(t.getConfigPath(),n,t.format)}w($,`fallbackToFileWithWarning`);function gr(e){return`\`secret-tool\` is required for OS keyring storage on Linux but is not installed.
106
+
107
+ Install it via your package manager:
108
+ Debian/Ubuntu: sudo apt-get install libsecret-tools
109
+ Fedora/RHEL: sudo dnf install libsecret
110
+ Arch: sudo pacman -S libsecret
111
+ Alpine: apk add libsecret
112
+
113
+ Or disable keyring storage: \`${e} --no-use-keyring\`.`}w(gr,`secretToolMissingMessage`);function _r(e){return`\`@napi-rs/keyring\` is required for OS keyring storage on Windows but is not installed.
114
+
115
+ Run \`${e} --use-keyring\` interactively to install it automatically, or install it globally for CI:
116
+
117
+ npm install -g @napi-rs/keyring@${J}
118
+
119
+ Or disable keyring storage: \`${e} --no-use-keyring\`.`}w(_r,`windowsBindingMissingMessage`);function vr(e){let t=q(e.configPath,e.profile),n=m(t),r=sr(e.serviceName,e.profile,e.configPath);return r.kind===`available`?(new Fn(e.configPath,r.provider,void 0,e.profile,e.format??`toml`).clear(),{backendAvailable:!0,encryptedFileExisted:n}):(n&&g(t),{backendAvailable:!1,encryptedFileExisted:n})}w(vr,`scrubEncryptedCredentials`);export{Tn as a,Ee as c,vr as d,Sn as f,w as h,nt as i,q as l,z as m,Lt as n,de as o,he as p,zt as r,be as s,dr as t,G as u};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{r as e,t}from"./chunk-vbHwaUoU.mjs";import{D as n,P as r,Tt as i,d as a,it as o}from"./dist-BWpErtDM.mjs";import{createRequire as s}from"node:module";import{readFileSync as c}from"node:fs";import l from"node:assert";import u,{resolve as d}from"node:path";import{spawnSync as f}from"node:child_process";var p=Object.create,m=Object.defineProperty,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,_=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,y=(e,t)=>m(e,`name`,{value:t,configurable:!0}),b=e===void 0?s(import.meta.url):e,x=(e,t)=>function(){return t||(0,e[g(e)[0]])((t={exports:{}}).exports,t),t.exports},S=(e,t)=>{for(var n in t)m(e,n,{get:t[n],enumerable:!0})},C=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of g(t))!v.call(e,i)&&i!==n&&m(e,i,{get:()=>t[i],enumerable:!(r=h(t,i))||r.enumerable});return e},w=(e,t,n)=>(n=e==null?{}:p(_(e)),C(t||!e||!e.__esModule?m(n,`default`,{value:e,enumerable:!0}):n,e)),T=t(((t,n)=>{var r=e(`child_process`).exec,i=e(`child_process`).execSync,a=e(`fs`),o=e(`path`),s=a.access,c=a.accessSync,l=a.constants||a,u=process.platform==`win32`,d=function(e,t){s(e,l.F_OK,function(e){t(!e)})},f=function(e){try{return c(e,l.F_OK),!1}catch{return!0}},p=function(e,t){s(e,l.F_OK|l.X_OK,function(e){t(null,!e)})},m=function(e){try{return c(e,l.F_OK|l.X_OK),!0}catch{return!1}},h=function(e,t,n){d(e,function(i){if(!i){r(`command -v `+t+` 2>/dev/null && { echo >&1 `+t+`; exit 0; }`,function(e,t,r){n(null,!!t)});return}p(e,n)})},g=function(e,t,n){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e)){n(null,!1);return}r(`where `+t,function(e){e===null?n(null,!0):n(null,!1)})},_=function(e,t){if(f(e))try{return!!i(`command -v `+t+` 2>/dev/null && { echo >&1 `+t+`; exit 0; }`)}catch{return!1}return m(e)},v=function(e,t,n){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(e))return!1;try{return!!i(`where `+t,{stdio:[]})}catch{return!1}},y=function(e){return/[^A-Za-z0-9_\/:=-]/.test(e)&&(e=`'`+e.replace(/'/g,`'\\''`)+`'`,e=e.replace(/^(?:'')+/g,``).replace(/\\'''/g,`\\'`)),e};u&&(y=function(e){if(/[\\]/.test(e)){var t=`"`+o.dirname(e)+`"`,n=`"`+o.basename(e)+`"`;return t+`:`+n}return`"`+e+`"`}),n.exports=function e(t,n){var r=y(t);if(!n&&typeof Promise<`u`)return new Promise(function(n,r){e(t,function(e,i){i?n(t):r(e)})});u?g(t,r,n):h(t,r,n)},n.exports.sync=function(e){var t=y(e);return u?v(e,t):_(e,t)}})),E=t(((e,t)=>{t.exports=T()})),ee=r(),D=E();function O(e){if(e.compiled_schema)return c(d(e.compiled_schema));let{base_path:t,source_schemas:n}=e,r=(n??[]).map(e=>d(t,e));if(!(0,D.sync)(`capnp`))throw new i(`The capnp compiler is required to upload capnp schemas, but is not present.`,{telemetryMessage:`capnp compiler missing`});let a=f(`capnp`,[`compile`,`-o-`,`--src-prefix=${d(t??`.`)}`,...r],{maxBuffer:3*1024*1024});if(a.error)throw a.error;if(a.stderr.length)throw Error(a.stderr.toString());return a.stdout}y(O,`handleUnsafeCapnp`);var k={esm:`application/javascript+module`,commonjs:`application/javascript`,"compiled-wasm":`application/wasm`,buffer:`application/octet-stream`,text:`text/plain`,python:`text/x-python`,"python-requirement":`text/x-python-requirement`};function A(e){let t=k[e];if(t===void 0)throw TypeError(`Unsupported module: `+e);return t}y(A,`toMimeType`);function j(e){let t=Object.keys(k).find(t=>k[t]===e);if(t===void 0)throw TypeError(`Unsupported mime type: `+e);return t}y(j,`fromMimeType`);function M(e,t,r){let s=new ee.FormData,{main:d,sourceMaps:f,migrations:p,exports:m,compatibility_date:h,compatibility_flags:g,keepVars:_,keepSecrets:v,keepBindings:y,logpush:b,placement:x,tail_consumers:S,streaming_tail_consumers:C,limits:w,annotations:T,keep_assets:E,assets:D,observability:k,cache:j,package_dependencies:M}=e,N={html_handling:D?.assetConfig?.html_handling,not_found_handling:D?.assetConfig?.not_found_handling,run_worker_first:D?.run_worker_first,_redirects:D?._redirects,_headers:D?._headers};if(D&&!D.routerConfig.has_user_worker)return s.set(`metadata`,JSON.stringify({assets:{jwt:D.jwt,config:N},...T&&{annotations:T},...h&&{compatibility_date:h},...g&&{compatibility_flags:g}})),s;let{modules:P}=e,F=[],te=a(`plain_text`,t),ne=a(`json`,t),re=a(`secret_text`,t),ie=a(`kv_namespace`,t),I=a(`send_email`,t),ae=a(`durable_object_namespace`,t),oe=a(`workflow`,t),se=a(`queue`,t),ce=a(`r2_bucket`,t),le=a(`d1`,t),ue=a(`vectorize`,t),de=a(`ai_search_namespace`,t),L=a(`ai_search`,t),R=a(`agent_memory`,t),z=a(`hyperdrive`,t),B=a(`secrets_store_secret`,t),V=a(`artifacts`,t),fe=a(`unsafe_hello_world`,t),pe=a(`flagship`,t),me=a(`ratelimit`,t),he=a(`vpc_service`,t),ge=a(`vpc_network`,t),_e=a(`service`,t),H=a(`analytics_engine`,t),ve=a(`dispatch_namespace`,t),ye=a(`mtls_certificate`,t),be=a(`pipeline`,t),xe=a(`worker_loader`,t),Se=a(`logfwdr`,t),Ce=a(`wasm_module`,t),U=a(`browser`,t)[0],W=a(`ai`,t)[0],G=a(`images`,t)[0],K=a(`stream`,t)[0],q=a(`media`,t)[0],J=a(`version_metadata`,t)[0],Y=a(`assets`,t)[0],we=a(`text_blob`,t),Te=a(`data_blob`,t);a(`inherit`,t).forEach(({binding:e})=>{F.push({name:e,type:`inherit`})}),te.forEach(({binding:e,value:t})=>{F.push({name:e,type:`plain_text`,text:t})}),ne.forEach(({binding:e,value:t})=>{F.push({name:e,type:`json`,json:t})}),re.forEach(({binding:e,value:t})=>{F.push({name:e,type:`secret_text`,text:t})}),ie.forEach(({id:e,binding:t,raw:n})=>{if(r?.dryRun&&(e??=o),e===void 0)throw new i(`${t} bindings must have an "id" field`,{telemetryMessage:`kv namespace binding missing id`});e===o?F.push({name:t,type:`inherit`}):F.push({name:t,type:`kv_namespace`,namespace_id:e,raw:n})}),I.forEach(e=>{let t={name:e.name,type:`send_email`,allowed_sender_addresses:e.allowed_sender_addresses};e.destination_address===void 0?e.allowed_destination_addresses===void 0?F.push(t):F.push({...t,allowed_destination_addresses:e.allowed_destination_addresses}):F.push({...t,destination_address:e.destination_address})}),ae.forEach(({name:e,class_name:t,script_name:n,environment:r})=>{F.push({name:e,type:`durable_object_namespace`,class_name:t,...n&&{script_name:n},...r&&{environment:r}})}),oe.forEach(({binding:e,name:t,class_name:n,script_name:r,raw:i})=>{F.push({type:`workflow`,name:e,workflow_name:t,class_name:n,script_name:r,raw:i})}),se.forEach(({binding:e,queue_name:t,delivery_delay:n,raw:a})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "queue" field. Add a "queue" field to the producer in your Worker configuration specifying the name of the Queue to bind to.`,{telemetryMessage:`queue binding missing name`});t===o?F.push({name:e,type:`inherit`}):F.push({type:`queue`,name:e,queue_name:t,delivery_delay:n,raw:a})}),ce.forEach(({binding:e,bucket_name:t,jurisdiction:n,raw:a})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "bucket_name" field. Add a "bucket_name" field to the binding in your Worker configuration specifying the name of the R2 bucket to bind to.`,{telemetryMessage:`r2 bucket binding missing bucket_name`});t===o?F.push({name:e,type:`inherit`}):F.push({name:e,type:`r2_bucket`,bucket_name:t,jurisdiction:n,raw:a})}),le.forEach(({binding:e,database_id:t,database_internal_env:n,raw:a})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "database_id" field. Add a "database_id" field to the binding in your Worker configuration specifying the ID of the D1 database to bind to.`,{telemetryMessage:`d1 database binding missing database_id`});t===o?F.push({name:e,type:`inherit`}):F.push({name:e,type:`d1`,id:t,internalEnv:n,raw:a})}),ue.forEach(({binding:e,index_name:t,raw:n})=>{F.push({name:e,type:`vectorize`,index_name:t,raw:n})}),de.forEach(({binding:e,namespace:t})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "namespace" field. Add a "namespace" field to the binding in your Worker configuration specifying the AI Search namespace to bind to.`,{telemetryMessage:`ai search namespace binding missing namespace`});t===o?F.push({name:e,type:`inherit`}):F.push({name:e,type:`ai_search_namespace`,namespace:t})}),L.forEach(({binding:e,instance_name:t})=>{F.push({name:e,type:`ai_search`,instance_name:t})}),R.forEach(({binding:e,namespace:t})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "namespace" field. Add a "namespace" field to the binding in your Worker configuration specifying the namespace to bind to.`,{telemetryMessage:!1});t===o?F.push({name:e,type:`inherit`}):F.push({name:e,type:`agent_memory`,namespace:t})}),z.forEach(({binding:e,id:t})=>{F.push({name:e,type:`hyperdrive`,id:t})}),B.forEach(({binding:e,store_id:t,secret_name:n})=>{F.push({name:e,type:`secrets_store_secret`,store_id:t,secret_name:n})}),V.forEach(({binding:e,namespace:t})=>{F.push({name:e,type:`artifacts`,namespace:t})}),fe.forEach(({binding:e,enable_timer:t})=>{F.push({name:e,type:`unsafe_hello_world`,enable_timer:t})}),pe.forEach(({binding:e,app_id:t})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have an "app_id" field. Add an "app_id" field to the binding in your Worker configuration specifying the Flagship app to bind to.`,{telemetryMessage:`flagship binding missing app id`});F.push(t===o?{name:e,type:`inherit`}:{name:e,type:`flagship`,app_id:t})}),me.forEach(({name:e,namespace_id:t,simple:n})=>{F.push({name:e,type:`ratelimit`,namespace_id:t,simple:n})}),he.forEach(({binding:e,service_id:t})=>{F.push({name:e,type:`vpc_service`,service_id:t})}),ge.forEach(({binding:e,tunnel_id:t,network_id:n})=>{F.push({name:e,type:`vpc_network`,...t===void 0?{network_id:n}:{tunnel_id:t}})}),_e.forEach(({binding:e,service:t,environment:n,entrypoint:r,props:i,cross_account_grant:a})=>{F.push({name:e,type:`service`,service:t,cross_account_grant:a,...n&&{environment:n},...r&&{entrypoint:r},...i&&{props:i}})}),H.forEach(({binding:e,dataset:t})=>{F.push({name:e,type:`analytics_engine`,dataset:t})}),ve.forEach(({binding:e,namespace:t,outbound:n})=>{if(r?.dryRun&&(t??=o),t===void 0)throw new i(`${e} bindings must have a "namespace" field. Add a "namespace" field to the binding in your Worker configuration specifying the dispatch namespace to bind to.`,{telemetryMessage:`dispatch namespace binding missing namespace`});t===o?F.push({name:e,type:`inherit`}):F.push({name:e,type:`dispatch_namespace`,namespace:t,...n&&{outbound:{worker:{service:n.service,environment:n.environment},params:n.parameters?.map(e=>({name:e}))}}})}),ye.forEach(({binding:e,certificate_id:t})=>{F.push({name:e,type:`mtls_certificate`,certificate_id:t})}),be.forEach(({binding:e,stream:t,pipeline:n})=>{if(t)F.push({name:e,type:`pipelines`,stream:t});else if(n)F.push({name:e,type:`pipelines`,pipeline:n});else throw Error(`Pipeline binding must specify a stream or pipeline`)}),xe.forEach(({binding:e})=>{F.push({name:e,type:`worker_loader`})}),Se.forEach(({name:e,destination:t})=>{F.push({name:e,type:`logfwdr`,destination:t})}),Ce.forEach(({binding:e,source:t})=>{F.push({name:e,type:`wasm_module`,part:e}),s.set(e,new File([`contents`in t?t.contents:c(t.path)],`path`in t?t.path??e:e,{type:`application/wasm`}))}),U!==void 0&&F.push({name:U.binding,type:`browser`,raw:U.raw}),W!==void 0&&F.push({name:W.binding,staging:W.staging,type:`ai`,raw:W.raw}),G!==void 0&&F.push({name:G.binding,type:`images`,raw:G.raw}),K!==void 0&&F.push({name:K.binding,type:`stream`}),q!==void 0&&F.push({name:q.binding,type:`media`}),J!==void 0&&F.push({name:J.binding,type:`version_metadata`}),Y!==void 0&&F.push({name:Y.binding,type:`assets`}),we.forEach(({binding:e,source:t})=>{F.push({name:e,type:`text_blob`,part:e}),e!==`__STATIC_CONTENT_MANIFEST`&&(`contents`in t?s.set(e,new File([t.contents],t.path??e,{type:`text/plain`})):s.set(e,new File([c(t.path)],t.path,{type:`text/plain`})))}),Te.forEach(({binding:e,source:t})=>{F.push({name:e,type:`data_blob`,part:e}),s.set(e,new File([`contents`in t?t.contents:c(t.path)],`path`in t?t.path??e:e,{type:`application/octet-stream`}))});for(let[e,r]of Object.entries(t??{}))if(n(r.type)&&r.type!==`unsafe_hello_world`){let{type:t,...n}=r;F.push({name:e,type:t.slice(7),...n})}let X=`__STATIC_CONTENT_MANIFEST`;if(P?.some(({name:e})=>e===X)&&d.type===`esm`){l(P!==void 0);let e=new Set(P.map(e=>u.posix.dirname(e.name)));for(let t of e){if(t===`.`)continue;let e=u.posix.relative(t,X),n=u.posix.join(t,X);P.push({name:n,filePath:n,content:`export { default } from ${JSON.stringify(e)};`,type:`esm`})}}if(d.type===`commonjs`){for(let e of Object.values([...P||[]]))if(e.name===`__STATIC_CONTENT_MANIFEST`)s.set(e.name,new File([e.content],e.name,{type:`text/plain`})),P=P?.filter(t=>t!==e);else if(e.type===`compiled-wasm`||e.type===`text`||e.type===`buffer`){let t=e.name.replace(/[^a-zA-Z0-9_$]/g,`_`);F.push({name:t,type:e.type===`compiled-wasm`?`wasm_module`:e.type===`text`?`text_blob`:`data_blob`,part:t}),s.set(t,new File([e.content],e.name,{type:e.type===`compiled-wasm`?`application/wasm`:e.type===`text`?`text/plain`:`application/octet-stream`})),P=P?.filter(t=>t!==e)}}let Z;if(r?.unsafe?.capnp){let e=O(r.unsafe.capnp);Z=`./capnp-${Date.now()}.compiled`,s.set(Z,new File([e],Z,{type:`application/octet-stream`}))}let Q;_&&(Q??=[],Q.push(`plain_text`,`json`)),v&&(Q??=[],Q.push(`secret_text`,`secret_key`)),y&&(Q??=[],Q.push(...y));let $={...d.type===`commonjs`?{body_part:d.name}:{main_module:d.name},bindings:F,containers:e.containers===void 0?void 0:e.containers.map(e=>({...e.name!==void 0&&{name:e.name},...e.class_name!==void 0&&{class_name:e.class_name},...e.images!==void 0&&{images:e.images}})),...h&&{compatibility_date:h},...g&&{compatibility_flags:g},...p&&{migrations:p},...m&&Object.keys(m).length>0&&{exports:m},capnp_schema:Z,...Q&&{keep_bindings:Q},...b!==void 0&&{logpush:b},...x&&{placement:x},...S&&{tail_consumers:S},...C&&{streaming_tail_consumers:C},...w&&{limits:w},...T&&{annotations:T},...E!==void 0&&{keep_assets:E},...D&&{assets:{jwt:D.jwt,config:N}},...k&&{observability:k},...j&&{cache_options:j},...M?.length&&{package_dependencies:M}};if(r?.unsafe?.metadata!==void 0)for(let e of Object.keys(r.unsafe.metadata))$[e]=r.unsafe.metadata[e];if(s.set(`metadata`,JSON.stringify($)),d.type===`commonjs`&&P&&P.length>0)throw TypeError(`More than one module can only be specified when type = 'esm'`);for(let e of[d].concat(P||[]))s.set(e.name,new File([e.content],e.name,{type:A(e.type??d.type??`esm`)}));for(let e of f||[])s.set(e.name,new File([e.content],e.name,{type:`application/source-map`}));return s}y(M,`createWorkerUploadForm`);export{S as a,w as c,x as i,j as n,y as o,k as r,b as s,M as t};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{h as e}from"./oauth-BPizUUqP.mjs";import{r as t}from"./auth-DuLchM18.mjs";import{t as n}from"./output-DgW1hQGX.mjs";import{n as r,t as i}from"./progress-B84wYh91.mjs";import{n as a,t as o}from"./body-parser-CYD7PKFC.mjs";import{n as s}from"./input-validation-BBKJRoRB.mjs";import{a as c,n as l}from"./prompt-CDtLWxNv.mjs";import{t as u}from"./cli-types-BWdZbsFE.mjs";function d(e){return e.option(`csr`,{type:`string`,description:`The Certificate Signing Request (CSR). Must be newline-encoded.`}).option(`validity-days`,{type:`number`,description:`The number of days the Client Certificate will be valid after the issued_on date.`}).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:`Create a new API Shield mTLS Client Certificate.`,builder:d,handler:async l=>{if(l.dryRun){r({command:`cf client-certificates create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${l.zone??l.zoneId??`<zone>`}/client_certificates`,pathParams:{"zone-id":String(l.zone??l[`zone-id`]??``)},bodyKind:`json`,body:l.body===void 0?o({csr:s(l.csr,`csr`,`text`),validity_days:l[`validity-days`]}):a(l.body)});return}let u=await t(l),d=await e({zone:l.zone},u,{quiet:l.quiet});if(l.zoneId=d,l.body){let e=a(l.body);n(await i(`Creating`,async()=>u.clientCertificates.create({...e,zone_id:d})),{successLabel:`Created`});return}if(l.csr===void 0&&(l.csr=await c(`csr`,`The Certificate Signing Request (CSR). Must be newline-encoded.`)),l[`validity-days`]===void 0)throw Error(`--validity-days is required (or pass --body with this field set).`);let f=o({csr:s(l.csr,`csr`,`text`),validity_days:l[`validity-days`]});n(await i(`Creating`,async()=>u.clientCertificates.create({...f,zone_id:d})),{successLabel:`Created`})}};function p(e){return e.positional(`client-certificate-id`,{type:`string`,description:`Identifier.`,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 <client-certificate-id>`,describe:`Set a API Shield mTLS Client Certificate to pending_revocation status for processing to revoked status.`,builder:p,handler:async a=>{if(a.dryRun){r({command:`cf client-certificates delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/client_certificates/${a[`client-certificate-id`]==null?`<client-certificate-id>`:encodeURIComponent(String(a[`client-certificate-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),"client-certificate-id":String(a[`client-certificate-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});if(a.zoneId=s,!await l({force:!!a.force})){process.stderr.write(`Aborted.
2
+ import{h as e}from"./oauth-DuEONNgC.mjs";import{r as t}from"./auth-D3X9HYhD.mjs";import{t as n}from"./output-Ccqw2WOb.mjs";import{t as r}from"./dry-run-DL2V6yFm.mjs";import{t as i}from"./progress-BqQcF5QH.mjs";import{n as a,t as o}from"./body-parser-BshbixEq.mjs";import{n as s}from"./input-validation-QDIYu7Vb.mjs";import{a as c,n as l}from"./prompt-B0sWIs9c.mjs";import{t as u}from"./cli-types-DAYeL_Mj.mjs";function d(e){return e.option(`csr`,{type:`string`,description:`The Certificate Signing Request (CSR). Must be newline-encoded.`}).option(`validity-days`,{type:`number`,description:`The number of days the Client Certificate will be valid after the issued_on date.`}).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:`Create a new API Shield mTLS Client Certificate.`,builder:d,handler:async l=>{if(l.dryRun){r({command:`cf client-certificates create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/zones/${l.zone??l.zoneId??`<zone>`}/client_certificates`,pathParams:{"zone-id":String(l.zone??l[`zone-id`]??``)},bodyKind:`json`,body:l.body===void 0?o({csr:s(l.csr,`csr`,`text`),validity_days:l[`validity-days`]}):a(l.body)});return}let u=await t(l),d=await e({zone:l.zone},u,{quiet:l.quiet});if(l.zoneId=d,l.body){let e=a(l.body);n(await i(`Creating`,async()=>u.clientCertificates.create({...e,zone_id:d})),{successLabel:`Created`});return}if(l.csr===void 0&&(l.csr=await c(`csr`,`The Certificate Signing Request (CSR). Must be newline-encoded.`)),l[`validity-days`]===void 0)throw Error(`--validity-days is required (or pass --body with this field set).`);let f=o({csr:s(l.csr,`csr`,`text`),validity_days:l[`validity-days`]});n(await i(`Creating`,async()=>u.clientCertificates.create({...f,zone_id:d})),{successLabel:`Created`})}};function p(e){return e.positional(`client-certificate-id`,{type:`string`,description:`Identifier.`,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 <client-certificate-id>`,describe:`Set a API Shield mTLS Client Certificate to pending_revocation status for processing to revoked status.`,builder:p,handler:async a=>{if(a.dryRun){r({command:`cf client-certificates delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/client_certificates/${a[`client-certificate-id`]==null?`<client-certificate-id>`:encodeURIComponent(String(a[`client-certificate-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),"client-certificate-id":String(a[`client-certificate-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});if(a.zoneId=s,!await l({force:!!a.force})){process.stderr.write(`Aborted.
3
3
  `);return}n(await i(`Deleting`,async()=>o.clientCertificates.delete({zone_id:s,client_certificate_id:a[`client-certificate-id`]})),{successLabel:`Deleted`})}};function h(e){return e.positional(`client-certificate-id`,{type:`string`,description:`Identifier.`,demandOption:!0}).option(`reactivate`,{type:`boolean`,description:`The reactivate field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const g={command:`edit <client-certificate-id>`,describe:`If a API Shield mTLS Client Certificate is in a pending_revocation state, you may reactivate it with this endpoint.`,builder:h,handler:async s=>{if(s.dryRun){r({command:`cf client-certificates edit`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/zones/${s.zone??s.zoneId??`<zone>`}/client_certificates/${s[`client-certificate-id`]==null?`<client-certificate-id>`:encodeURIComponent(String(s[`client-certificate-id`]))}`,pathParams:{"zone-id":String(s.zone??s[`zone-id`]??``),"client-certificate-id":String(s[`client-certificate-id`]??``)},bodyKind:`json`,body:s.body===void 0?o({reactivate:s.reactivate}):a(s.body)});return}let c=await t(s),l=await e({zone:s.zone},c,{quiet:s.quiet});if(s.zoneId=l,s.body){let e=a(s.body);n(await i(`Updating`,async()=>c.clientCertificates.edit({...e,zone_id:l,client_certificate_id:s[`client-certificate-id`]})),{successLabel:`Updated`});return}let u=o({reactivate:s.reactivate});n(await i(`Updating`,async()=>c.clientCertificates.edit({...u,zone_id:l,client_certificate_id:s[`client-certificate-id`]})),{successLabel:`Updated`})}};function _(e){return e.positional(`client-certificate-id`,{type:`string`,description:`Identifier.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const v={command:`get <client-certificate-id>`,describe:`Get Details for a single mTLS API Shield Client Certificate.`,builder:_,handler:async a=>{if(a.dryRun){r({command:`cf client-certificates get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/client_certificates/${a[`client-certificate-id`]==null?`<client-certificate-id>`:encodeURIComponent(String(a[`client-certificate-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),"client-certificate-id":String(a[`client-certificate-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.clientCertificates.get({zone_id:s,client_certificate_id:a[`client-certificate-id`]})),{successLabel:`Loaded`})}};function y(e){return e.option(`status`,{type:`string`,description:`Client Certitifcate Status to filter results by.`,choices:[`all`,`active`,`pending_reactivation`,`pending_revocation`,`revoked`]}).option(`page`,{type:`number`,description:`Page number of paginated results.`}).option(`per-page`,{type:`number`,description:`Number of records per page.`}).option(`limit`,{type:`number`,description:`Limit to the number of records returned.`}).option(`offset`,{type:`number`,description:`Offset the results.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const b={command:`list`,describe:`List all of your Zone's API Shield mTLS Client Certificates by Status and/or using Pagination.`,builder:u(y),handler:async a=>{let o={status:a.status,page:a.page,per_page:a[`per-page`],limit:a.limit,offset:a.offset};if(a.dryRun){r({command:`cf client-certificates list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/client_certificates`,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.clientCertificates.list({zone_id:c,...o})),{successLabel:`Loaded`})}},x={command:`client-certificates`,describe:`client-certificates`,builder:e=>e.command(f).command(m).command(g).command(v).command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{x as default};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{h as e}from"./oauth-BPizUUqP.mjs";import{r as t}from"./auth-DuLchM18.mjs";import{t as n}from"./output-DgW1hQGX.mjs";import{n as r,t as i}from"./progress-B84wYh91.mjs";import{n as a,t as o}from"./body-parser-CYD7PKFC.mjs";import{n as s}from"./input-validation-BBKJRoRB.mjs";import{a as c,i as l,n as u}from"./prompt-CDtLWxNv.mjs";import{t as d}from"./cli-types-BWdZbsFE.mjs";function f(e){return e.positional(`connection-id`,{type:`string`,description:`Identifier`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const p={command:`get <connection-id>`,describe:`Returns a webpage connection detected on the zone by connection ID.`,builder:f,handler:async a=>{if(a.dryRun){r({command:`cf client-side-security connections get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/page_shield/connections/${a[`connection-id`]==null?`<connection-id>`:encodeURIComponent(String(a[`connection-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),"connection-id":String(a[`connection-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.clientSideSecurity.connections.get({zone_id:s,connection_id:a[`connection-id`]})),{successLabel:`Loaded`})}};function m(e){return e.option(`exclude-urls`,{type:`string`,description:`Excludes connections whose URL contains one of the URL-encoded URLs separated by commas.`}).option(`urls`,{type:`string`,description:`Includes connections whose URL contain one or more URL-encoded URLs separated by commas.`}).option(`hosts`,{type:`string`,description:`Includes connections that match one or more URL-encoded hostnames separated by commas.
2
+ import{h as e}from"./oauth-DuEONNgC.mjs";import{r as t}from"./auth-D3X9HYhD.mjs";import{t as n}from"./output-Ccqw2WOb.mjs";import{t as r}from"./dry-run-DL2V6yFm.mjs";import{t as i}from"./progress-BqQcF5QH.mjs";import{n as a,t as o}from"./body-parser-BshbixEq.mjs";import{n as s}from"./input-validation-QDIYu7Vb.mjs";import{a as c,i as l,n as u}from"./prompt-B0sWIs9c.mjs";import{t as d}from"./cli-types-DAYeL_Mj.mjs";function f(e){return e.positional(`connection-id`,{type:`string`,description:`Identifier`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const p={command:`get <connection-id>`,describe:`Returns a webpage connection detected on the zone by connection ID.`,builder:f,handler:async a=>{if(a.dryRun){r({command:`cf client-side-security connections get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/page_shield/connections/${a[`connection-id`]==null?`<connection-id>`:encodeURIComponent(String(a[`connection-id`]))}`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``),"connection-id":String(a[`connection-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.clientSideSecurity.connections.get({zone_id:s,connection_id:a[`connection-id`]})),{successLabel:`Loaded`})}};function m(e){return e.option(`exclude-urls`,{type:`string`,description:`Excludes connections whose URL contains one of the URL-encoded URLs separated by commas.`}).option(`urls`,{type:`string`,description:`Includes connections whose URL contain one or more URL-encoded URLs separated by commas.`}).option(`hosts`,{type:`string`,description:`Includes connections that match one or more URL-encoded hostnames separated by commas.
3
3
 
4
4
  Wildcards are supported at the start and end of each hostname to support starts with, ends with
5
5
  and contains. If no wildcards are used, results will be filtered by exact match`}).option(`page`,{type:`string`,description:`The current page number of the paginated results.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import{h as e}from"./oauth-DuEONNgC.mjs";import{r as t}from"./auth-D3X9HYhD.mjs";import{t as n}from"./output-Ccqw2WOb.mjs";import{t as r}from"./dry-run-DL2V6yFm.mjs";import{t as i}from"./progress-BqQcF5QH.mjs";import{n as a}from"./body-parser-BshbixEq.mjs";function o(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const s={command:`list`,describe:`Retrieves the Cloud Connector rules configured for a zone. Rules define how traffic is routed to cloud services.`,builder:o,handler:async a=>{if(a.dryRun){r({command:`cf cloud-connector rules list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/zones/${a.zone??a.zoneId??`<zone>`}/cloud_connector/rules`,pathParams:{"zone-id":String(a.zone??a[`zone-id`]??``)},bodyKind:`none`});return}let o=await t(a),s=await e({zone:a.zone},o,{quiet:a.quiet});a.zoneId=s,n(await i(`Loading`,async()=>o.cloudConnector.rules.list({zone_id:s})),{successLabel:`Loaded`})}};function c(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const l={command:`update`,describe:`Updates Cloud Connector rules for a zone, replacing the existing rule configuration.`,builder:c,handler:async o=>{if(o.dryRun){r({command:`cf cloud-connector rules update`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/zones/${o.zone??o.zoneId??`<zone>`}/cloud_connector/rules`,pathParams:{"zone-id":String(o.zone??o[`zone-id`]??``)},bodyKind:`json`,body:o.body===void 0?void 0:a(o.body)});return}let s=await t(o),c=await e({zone:o.zone},s,{quiet:o.quiet});if(o.zoneId=c,o.body){let e=a(o.body);n(await i(`Updating`,async()=>s.cloudConnector.rules.update({body:e,zone_id:c})),{successLabel:`Updated`});return}if(o.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},u={command:`rules`,describe:`Routing rules that map request patterns to cloud provider endpoints`,builder:e=>e.command(s).command(l).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},d={command:`cloud-connector`,describe:`Route traffic from Cloudflare directly to cloud provider services (AWS, Azure, GCP) without origin servers`,builder:e=>e.command(u).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{d as default};