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
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{r as e}from"./sdk-m4xeaua4.mjs";import{$ as t}from"./chunk-LQW53VED-Xakf_rUn.mjs";import{r as n}from"./local-DTyuGwTw.mjs";import{p as r}from"./oauth-BPizUUqP.mjs";import{i,s as a,t as o}from"./auth-DuLchM18.mjs";async function s(s,c={}){let{method:l=`GET`,local:u=!1}=c,d=t({compliance_region:await r()}),f=`${d.replace(/\/+$/,``)}${s}`,p={...a()};c.headers&&Object.assign(p,c.headers);let m=globalThis.fetch;u?m=n({persistTo:c.persistTo,apiBaseUrl:d}):p.Authorization=`Bearer ${await i()}`;let h,g=c.body;g!=null&&(g instanceof FormData?h=g:Buffer.isBuffer(g)||g instanceof Uint8Array||g instanceof ArrayBuffer?(h=g,p[`Content-Type`]??=c.contentType??`application/octet-stream`):typeof g==`string`?(h=g,c.contentType&&(p[`Content-Type`]??=c.contentType)):(h=JSON.stringify(g),p[`Content-Type`]??=c.contentType??`application/json`));let _=await m(f,{method:l,headers:p,...h===void 0?{}:{body:h},signal:AbortSignal.timeout(o)});if(!_.ok){let t=_.headers.get(`content-type`)??``,n;try{n=t.includes(`application/json`)?await _.json():await _.text()}catch{n=null}throw new e({statusCode:_.status,body:n,rawResponse:{status:_.status,statusText:_.statusText,url:_.url||f,headers:_.headers,redirected:_.redirected,type:_.type}})}let v=await _.arrayBuffer();return Buffer.from(v)}function c(e){process.stdout.write(e)}export{c as n,s as t};
@@ -1,7 +0,0 @@
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{a as u,i as d,n as f}from"./prompt-CDtLWxNv.mjs";import{t as p}from"./cli-types-BWdZbsFE.mjs";function m(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`start-time`,{type:`number`,description:`Specify the start time as a Unix timestamp in seconds to access the livestream analytics.`}).option(`end-time`,{type:`number`,description:`Specify the end time as a Unix timestamp in seconds to access the livestream analytics.`}).option(`filters`,{type:`string`,description:`Optional filters for livestream analytics.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const h={command:`get <app-id>`,describe:`Returns day-wise livestream analytics for the specified time range.`,builder:m,handler:async s=>{let c={start_time:s[`start-time`],end_time:s[`end-time`],filters:s.filters};if(s.dryRun){a({command:`cf realtimekit analytics livestreams daily get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/analytics/livestreams/daywise`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.analytics.livestreams.daily.get({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}},ee={command:`daily`,describe:`Daily livestream analytics for RealtimeKit applications`,builder:e=>e.command(h).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function te(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`start-time`,{type:`number`,description:`Specify the start time as a Unix timestamp in seconds to access the livestream analytics.`}).option(`end-time`,{type:`number`,description:`Specify the end time as a Unix timestamp in seconds to access the livestream analytics.`}).option(`filters`,{type:`string`,description:`Optional filters for livestream analytics.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`get <app-id>`,describe:`Returns livestream analytics for the specified time range.`,builder:te,handler:async s=>{let c={start_time:s[`start-time`],end_time:s[`end-time`],filters:s.filters};if(s.dryRun){a({command:`cf realtimekit analytics livestreams get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/analytics/livestreams/overall`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.analytics.livestreams.get({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}},_={command:`livestreams`,describe:`Livestream analytics for RealtimeKit applications`,builder:e=>e.command(g).command(ee).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function v(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`start-date`,{type:`string`,description:`start date in YYYY-MM-DD format`}).option(`end-date`,{type:`string`,description:`end date in YYYY-MM-DD format`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const y={command:`get <app-id>`,describe:`Returns day-wise session and recording analytics data of an App for the specified time range start_date to end_date. If start_date and end_date are not provided, the default time range is set from 30 days ago to the current date.`,builder:v,handler:async s=>{let c={start_date:s[`start-date`],end_date:s[`end-date`]};if(s.dryRun){a({command:`cf realtimekit analytics usage get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/analytics/daywise`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.analytics.usage.get({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}},b={command:`usage`,describe:`Usage analytics for RealtimeKit applications`,builder:e=>e.command(y).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},x={command:`analytics`,describe:`Usage and livestream analytics for RealtimeKit applications`,builder:e=>e.command(_).command(b).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function S(e){return e.option(`name`,{type:`string`,description:`The name 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 C={command:`create`,describe:`Create new app for your account`,builder:S,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit apps create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/apps`,pathParams:{},bodyKind:`json`,body:d.body===void 0?c({name:l(d.name,`name`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.apps.create({...e,account_id:p})),{successLabel:`Created`});return}d.name===void 0&&(d.name=await u(`name`,`The name field`));let m=c({name:l(d.name,`name`,`text`)});i(await o(`Creating`,async()=>f.realtimekit.apps.create({...m,account_id:p})),{successLabel:`Created`})}};function w(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const T={command:`get <app-id>`,describe:`Fetch details for an app in your account.`,builder:w,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit apps get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/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.realtimekit.apps.get({account_id:l,app_id:s[`app-id`]})),{successLabel:`Loaded`})}};function E(e){return e.option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`search`,{type:`string`,description:`Search string that matches apps by name.`}).option(`sort-order`,{type:`string`,description:`Sort order for apps by creation time.`,choices:[`ASC`,`DESC`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const D={command:`list`,describe:`Fetch all apps for your account`,builder:p(E),handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`],search:s.search,sort_order:s[`sort-order`]};if(s.dryRun){a({command:`cf realtimekit apps list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/apps`,pathParams:{},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.apps.list({account_id:u,...c})),{successLabel:`Loaded`})}},O={command:`apps`,describe:`RealtimeKit applications that group meetings, sessions, and configuration`,builder:e=>e.command(C).command(T).command(D).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function k(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`name`,{type:`string`,description:`Name of the livestream`}).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 A={command:`create <app-id>`,describe:`Creates a livestream for the given App ID and returns ingest server, stream key, and playback URL. You can pass custom input to the ingest server and stream key, and freely distribute the content using the playback URL on any player that supports HLS/LHLS.`,builder:k,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit livestreams create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/livestreams`,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(`Creating`,async()=>d.realtimekit.livestreams.create({...e,account_id:f,app_id:u[`app-id`]})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`)});i(await o(`Creating`,async()=>d.realtimekit.livestreams.create({...p,account_id:f,app_id:u[`app-id`]})),{successLabel:`Created`})}};function j(e){return e.positional(`livestream-id`,{type:`string`,description:`Livestream ID`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const M={command:`get <livestream-id>`,describe:"Returns details of a livestream with sessions for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API.",builder:j,handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`]};if(s.dryRun){a({command:`cf realtimekit livestreams get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/livestreams/${s[`livestream-id`]==null?`<livestream-id>`:encodeURIComponent(String(s[`livestream-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"livestream-id":String(s[`livestream-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.livestreams.get({account_id:u,app_id:s[`app-id`],livestream_id:s[`livestream-id`],...c})),{successLabel:`Loaded`})}};function N(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`exclude-meetings`,{type:`boolean`,description:`Exclude the RealtimeKit meetings that are livestreamed.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`status`,{type:`string`,description:`Specifies the status of the operation.`,choices:[`LIVE`,`IDLE`,`ERRORED`,`INVOKED`]}).option(`start-time`,{type:`string`,description:`Specify the start time range in ISO format to access the live stream.`}).option(`end-time`,{type:`string`,description:`Specify the end time range in ISO format to access the live stream.`}).option(`sort-order`,{type:`string`,description:`Specifies the sorting order for the results.`,choices:[`ASC`,`DSC`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const P={command:`list`,describe:"Returns details of livestreams associated with the given App ID. It includes livestreams created by your App and RealtimeKit meetings that are livestreamed by your App. If you only want details of livestreams created by your App and not RealtimeKit meetings, you can use the `exclude_meetings` query parameter.",builder:p(N),handler:async s=>{let c={exclude_meetings:s[`exclude-meetings`],per_page:s[`per-page`],page_no:s[`page-no`],status:s.status,start_time:s[`start-time`],end_time:s[`end-time`],sort_order:s[`sort-order`]};if(s.dryRun){a({command:`cf realtimekit livestreams list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/livestreams`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.livestreams.list({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}};function F(e){return e.positional(`livestream-session-id`,{type:`string`,description:`Livestream-session-id`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const I={command:`get <livestream-session-id>`,describe:"Returns livestream session details for the given livestream session ID. Retrieve the `livestream_session_id`using the `Fetch livestream session details using a session ID` API.",builder:F,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit livestreams sessions get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/livestreams/sessions/${s[`livestream-session-id`]==null?`<livestream-session-id>`:encodeURIComponent(String(s[`livestream-session-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"livestream-session-id":String(s[`livestream-session-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.livestreams.sessions.get({account_id:l,app_id:s[`app-id`],"livestream-session-id":s[`livestream-session-id`]})),{successLabel:`Loaded`})}};function L(e){return e.positional(`livestream-id`,{type:`string`,description:`Livestream ID`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const R={command:`list-active <livestream-id>`,describe:"Returns details of all active livestreams for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API.",builder:L,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit livestreams sessions list-active`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/livestreams/${s[`livestream-id`]==null?`<livestream-id>`:encodeURIComponent(String(s[`livestream-id`]))}/active-livestream-session`,pathParams:{"app-id":String(s[`app-id`]??``),"livestream-id":String(s[`livestream-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.livestreams.sessions.listActive({account_id:l,app_id:s[`app-id`],livestream_id:s[`livestream-id`]})),{successLabel:`Loaded`})}},z={command:`sessions`,describe:`Sessions for RealtimeKit livestreams`,builder:e=>e.command(I).command(R).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function B(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`name`,{type:`string`,description:`The name field`}).option(`video-config-height`,{type:`number`,description:`Height of the livestreaming video in pixels`}).option(`video-config-width`,{type:`number`,description:`Width of the livestreaming video in pixels`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`})}const V={command:`start <meeting-id>`,describe:"Starts livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API.",builder:B,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit livestreams start`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/meetings/${u[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(u[`meeting-id`]))}/livestreams`,pathParams:{"app-id":String(u[`app-id`]??``),"meeting-id":String(u[`meeting-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`),video_config:{height:u[`video-config-height`],width:u[`video-config-width`]}}):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.realtimekit.livestreams.start({...e,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Created`});return}let p=c({name:l(u.name,`name`,`text`),video_config:{height:u[`video-config-height`],width:u[`video-config-width`]}});i(await o(`Creating`,async()=>d.realtimekit.livestreams.start({...p,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Created`})}};function H(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,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 U={command:`stop <meeting-id>`,describe:"Stops the active livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API.",builder:H,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit livestreams stop`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/active-livestream/stop`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await f({force:!!s.force,message:`This operation stops the active livestream. Viewers lose the broadcast immediately.`})){process.stderr.write(`Aborted.
3
- `);return}i(await o(`Deleting`,async()=>c.realtimekit.livestreams.stop({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`]})),{successLabel:`Deleted`})}},W={command:`livestreams`,describe:`Independent and meeting-based livestreams and their sessions`,builder:e=>e.command(A).command(M).command(P).command(V).command(U).command(z).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function G(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const K={command:`get <meeting-id>`,describe:`Returns details of an ongoing active session for the given meeting ID.`,builder:G,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings active get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/active-session`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.meetings.active.get({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`]})),{successLabel:`Loaded`})}};function q(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip confirmation (useful in scripts and CI)`,default:!1})}const J={command:`kick-all <meeting-id>`,describe:`Kicks all participants from an active session for the given meeting ID.`,builder:q,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings active kick-all`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/active-session/kick-all`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await f({force:!!s.force,message:`This operation disconnects every active participant immediately.`})){process.stderr.write(`Aborted.
4
- `);return}i(await o(`Deleting`,async()=>c.realtimekit.meetings.active.kickAll({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`]})),{successLabel:`Deleted`})}};function Y(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`custom-participant-ids`,{type:`string`,array:!0,description:`The custom_participant_ids field`}).option(`participant-ids`,{type:`string`,array:!0,description:`The participant_ids field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:"Request body for kicking participants from an active session. At least one of `participant_ids` or `custom_participant_ids` must contain a value."})}const X={command:`kick <meeting-id>`,describe:`Kicks one or more participants from an active session using user ID or custom participant ID.`,builder:Y,handler:async l=>{if(l.dryRun){a({command:`cf realtimekit meetings active kick`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${l[`app-id`]==null?`<app-id>`:encodeURIComponent(String(l[`app-id`]))}/meetings/${l[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(l[`meeting-id`]))}/active-session/kick`,pathParams:{"app-id":String(l[`app-id`]??``),"meeting-id":String(l[`meeting-id`]??``)},bodyKind:`json`,body:l.body===void 0?c({custom_participant_ids:l[`custom-participant-ids`],participant_ids:l[`participant-ids`]}):s(l.body)});return}let u=await r(l),d=l.local?e:await t();if(l.accountId=d,l.body){let e=s(l.body);i(await o(`Creating`,async()=>u.realtimekit.meetings.active.kick({...e,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`});return}let f=c({custom_participant_ids:l[`custom-participant-ids`],participant_ids:l[`participant-ids`]});i(await o(`Creating`,async()=>u.realtimekit.meetings.active.kick({...f,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`})}};function Z(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`allow-unmute`,{type:`boolean`,description:`if false, participants won't be able to unmute themselves after they are muted`,default:!1}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Request body for muting all participants in an active session.`})}const Q={command:`mute-all <meeting-id>`,describe:`Mutes all participants of an active session for the given meeting ID.`,builder:Z,handler:async l=>{if(l.dryRun){a({command:`cf realtimekit meetings active mute-all`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${l[`app-id`]==null?`<app-id>`:encodeURIComponent(String(l[`app-id`]))}/meetings/${l[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(l[`meeting-id`]))}/active-session/mute-all`,pathParams:{"app-id":String(l[`app-id`]??``),"meeting-id":String(l[`meeting-id`]??``)},bodyKind:`json`,body:l.body===void 0?c({allow_unmute:l[`allow-unmute`]}):s(l.body)});return}let u=await r(l),d=l.local?e:await t();if(l.accountId=d,l.body){let e=s(l.body);i(await o(`Creating`,async()=>u.realtimekit.meetings.active.muteAll({...e,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`});return}let f=c({allow_unmute:l[`allow-unmute`]});i(await o(`Creating`,async()=>u.realtimekit.meetings.active.muteAll({...f,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`})}};function ne(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`custom-participant-ids`,{type:`string`,array:!0,description:`The custom_participant_ids field`}).option(`participant-ids`,{type:`string`,array:!0,description:`The participant_ids field`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:"Request body for muting participants in an active session. At least one of `participant_ids` or `custom_participant_ids` must contain a value."})}const re={command:`mute <meeting-id>`,describe:`Mutes one or more participants from an active session using user ID or custom participant ID.`,builder:ne,handler:async l=>{if(l.dryRun){a({command:`cf realtimekit meetings active mute`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${l[`app-id`]==null?`<app-id>`:encodeURIComponent(String(l[`app-id`]))}/meetings/${l[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(l[`meeting-id`]))}/active-session/mute`,pathParams:{"app-id":String(l[`app-id`]??``),"meeting-id":String(l[`meeting-id`]??``)},bodyKind:`json`,body:l.body===void 0?c({custom_participant_ids:l[`custom-participant-ids`],participant_ids:l[`participant-ids`]}):s(l.body)});return}let u=await r(l),d=l.local?e:await t();if(l.accountId=d,l.body){let e=s(l.body);i(await o(`Creating`,async()=>u.realtimekit.meetings.active.mute({...e,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`});return}let f=c({custom_participant_ids:l[`custom-participant-ids`],participant_ids:l[`participant-ids`]});i(await o(`Creating`,async()=>u.realtimekit.meetings.active.mute({...f,account_id:d,app_id:l[`app-id`],meeting_id:l[`meeting-id`]})),{successLabel:`Created`})}};function ie(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`anonymous`,{type:`boolean`,description:`if voters on a poll are anonymous`}).option(`hide-votes`,{type:`boolean`,description:`if votes on an option are visible before a person votes`}).option(`options`,{type:`string`,array:!0,description:`Different options for the question`}).option(`question`,{type:`string`,description:`Question of the poll`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Request body for creating a new poll`})}const ae={command:`create <meeting-id>`,describe:`Creates a new poll in an active session for the given meeting ID.`,builder:ie,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit meetings active polls create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/meetings/${d[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(d[`meeting-id`]))}/active-session/poll`,pathParams:{"app-id":String(d[`app-id`]??``),"meeting-id":String(d[`meeting-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({anonymous:d.anonymous,hide_votes:d[`hide-votes`],options:d.options,question:l(d.question,`question`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.meetings.active.polls.create({...e,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`]})),{successLabel:`Created`});return}if(d.options===void 0)throw Error(`--options is required (or pass --body with this field set).`);d.question===void 0&&(d.question=await u(`question`,`Question of the poll`));let m=c({anonymous:d.anonymous,hide_votes:d[`hide-votes`],options:d.options,question:l(d.question,`question`,`text`)});i(await o(`Creating`,async()=>f.realtimekit.meetings.active.polls.create({...m,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`]})),{successLabel:`Created`})}},oe={command:`polls`,describe:`Polls for active meeting sessions`,builder:e=>e.command(ae).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},se={command:`active`,describe:`Live meeting state and participant controls`,builder:e=>e.command(K).command(X).command(J).command(re).command(Q).command(oe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function ce(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`ai-config-summarization-summary-type`,{type:`string`,description:`Defines the style of the summary, such as general, team meeting, or sales call.`,choices:[`general`,`team_meeting`,`sales_call`,`client_check_in`,`interview`,`daily_standup`,`one_on_one_meeting`,`lecture`,`code_review`],default:`general`}).option(`ai-config-summarization-text-format`,{type:`string`,description:`Determines the text format of the summary, such as plain text or markdown.`,choices:[`plain_text`,`markdown`],default:`markdown`}).option(`ai-config-summarization-word-limit`,{type:`number`,description:`Sets the maximum number of words in the meeting summary.`,default:500}).option(`ai-config-transcription-keywords`,{type:`string`,array:!0,description:`Adds specific terms to improve accurate detection during transcription.`}).option(`ai-config-transcription-language`,{type:`string`,description:`Specifies the language code for transcription to ensure accurate results.`,choices:[`en-US`,`en-IN`,`de`,`hi`,`sv`,`ru`,`pl`,`el`,`fr`,`nl`],default:`en-US`}).option(`ai-config-transcription-profanity-filter`,{type:`boolean`,description:`Control the inclusion of offensive language in transcriptions.`,default:!1}).option(`live-stream-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting livestreamed on start.`,default:!1}).option(`persist-chat`,{type:`boolean`,description:`If a meeting is set to persist_chat, meeting chat would remain for a week within the meeting space.`,default:!1}).option(`record-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting recorded as soon as someone joins the meeting.`,default:!1}).option(`recording-config-audio-config-channel`,{type:`string`,description:`Audio signal pathway within an audio file that carries a specific sound source.`,choices:[`mono`,`stereo`],default:`stereo`}).option(`recording-config-audio-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.`,choices:[`MP3`,`AAC`],default:`AAC`}).option(`recording-config-audio-config-export-file`,{type:`boolean`,description:`Controls whether to export audio file seperately`,default:!0}).option(`recording-config-file-name-prefix`,{type:`string`,description:`Adds a prefix to the beginning of the file name of the recording.`}).option(`recording-config-live-streaming-config-rtmp-url`,{type:`string`,description:`RTMP URL to stream to`}).option(`recording-config-max-seconds`,{type:`number`,description:`Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.`}).option(`recording-config-realtimekit-bucket-config-enabled`,{type:`boolean`,description:"Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won't be generated for a recording."}).option(`recording-config-video-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded.`,choices:[`H264`,`VP8`,`VP9`],default:`H264`}).option(`recording-config-video-config-export-file`,{type:`boolean`,description:`Controls whether to export video file seperately`,default:!0}).option(`recording-config-video-config-height`,{type:`number`,description:`Height of the recording video in pixels`,default:720}).option(`recording-config-video-config-watermark-position`,{type:`string`,description:`Position of the watermark`,choices:[`left top`,`right top`,`left bottom`,`right bottom`],default:`left top`}).option(`recording-config-video-config-watermark-url`,{type:`string`,description:`URL of the watermark image`}).option(`recording-config-video-config-width`,{type:`number`,description:`Width of the recording video in pixels`,default:1280}).option(`session-keep-alive-time-in-secs`,{type:`number`,description:`Time in seconds, for which a session remains active, after the last participant has left the meeting.`,default:60}).option(`summarize-on-end`,{type:`boolean`,description:`Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.`,default:!1}).option(`title`,{type:`string`,description:`Title of the meeting`}).option(`transcribe-on-end`,{type:`boolean`,description:`Automatically generate transcripts when the meeting ends.`,default:!1}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Create meeting body`}).check(e=>{if([`recording-config-file-name-prefix`,`recording-config-live-streaming-config-rtmp-url`,`recording-config-max-seconds`,`recording-config-realtimekit-bucket-config-enabled`,`recording-config-video-config-watermark-url`].some(t=>e[t]!==void 0)){let t=[`recording-config-realtimekit-bucket-config-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --recording_config-* flag is set`)}return!0})}const le={command:`create <app-id>`,describe:`Create a meeting for the given App ID.`,builder:ce,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit meetings create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/meetings`,pathParams:{"app-id":String(u[`app-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]}):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.realtimekit.meetings.create({...e,account_id:f,app_id:u[`app-id`]})),{successLabel:`Created`});return}let p=c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]});i(await o(`Creating`,async()=>d.realtimekit.meetings.create({...p,account_id:f,app_id:u[`app-id`]})),{successLabel:`Created`})}};function ue(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting. Fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`name`,{type:`string`,description:`Name`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const de={command:`get <meeting-id>`,describe:`Returns a meeting details in an App for the given meeting ID.`,builder:ue,handler:async s=>{let c={name:s.name};if(s.dryRun){a({command:`cf realtimekit meetings get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.meetings.get({account_id:u,app_id:s[`app-id`],meeting_id:s[`meeting-id`],...c})),{successLabel:`Loaded`})}};function fe(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`start-time`,{type:`string`,description:`The start time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`end-time`,{type:`string`,description:`The end time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`search`,{type:`string`,description:`The search query string. You can search using the meeting ID or title.`}).option(`status`,{type:`string`,description:`Filter meetings by status.`,choices:[`ACTIVE`,`INACTIVE`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const pe={command:`list`,describe:`Returns all meetings for the given App ID.`,builder:p(fe),handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`],start_time:s[`start-time`],end_time:s[`end-time`],search:s.search,status:s.status};if(s.dryRun){a({command:`cf realtimekit meetings list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.meetings.list({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}};function me(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const he={command:`get <meeting-id>`,describe:"Returns livestream session details for the given meeting ID. Retreive the meeting ID using the `Create a meeting` API.",builder:me,handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`]};if(s.dryRun){a({command:`cf realtimekit meetings livestream get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/livestream`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.meetings.livestream.get({account_id:u,app_id:s[`app-id`],meeting_id:s[`meeting-id`],...c})),{successLabel:`Loaded`})}};function ge(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const _e={command:`list-active <meeting-id>`,describe:`Returns details of all active livestreams for the given meeting ID.`,builder:ge,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings livestream list-active`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/active-livestream`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.meetings.livestream.listActive({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`]})),{successLabel:`Loaded`})}},ve={command:`livestream`,describe:`Livestream operations associated with RealtimeKit meetings`,builder:e=>e.command(he).command(_e).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function ye(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting. Fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`custom-participant-id`,{type:`string`,description:`A unique participant ID. You must specify a unique ID for the participant, for example, UUID, email address, and so on. `}).option(`name`,{type:`string`,description:`(Optional) Name of the participant. `}).option(`picture`,{type:`string`,description:`(Optional) A URL to a picture to be used for the participant. `}).option(`preset-name`,{type:`string`,description:`Name of the preset to apply to this participant.`,default:`group_call_host`}).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 be={command:`create <meeting-id>`,describe:`Adds a participant to the given meeting ID.`,builder:ye,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit meetings participants create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/meetings/${d[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(d[`meeting-id`]))}/participants`,pathParams:{"app-id":String(d[`app-id`]??``),"meeting-id":String(d[`meeting-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({custom_participant_id:l(d[`custom-participant-id`],`custom-participant-id`,`text`),name:l(d.name,`name`,`text`),picture:l(d.picture,`picture`,`text`),preset_name:l(d[`preset-name`],`preset-name`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.meetings.participants.create({...e,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`]})),{successLabel:`Created`});return}d[`custom-participant-id`]===void 0&&(d[`custom-participant-id`]=await u(`custom-participant-id`,`A unique participant ID. You must specify a unique ID for the participant, for example, UUID, email address, and so on. `)),d[`preset-name`]===void 0&&(d[`preset-name`]=await u(`preset-name`,`Name of the preset to apply to this participant.`));let m=c({custom_participant_id:l(d[`custom-participant-id`],`custom-participant-id`,`text`),name:l(d.name,`name`,`text`),picture:l(d.picture,`picture`,`text`),preset_name:l(d[`preset-name`],`preset-name`,`text`)});i(await o(`Creating`,async()=>f.realtimekit.meetings.participants.create({...m,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`]})),{successLabel:`Created`})}};function xe(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant. You can fetch the participant ID using the add a participant API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. You can fetch the meeting ID using the create a meeting API.`,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 Se={command:`delete <participant-id>`,describe:`Deletes a participant for the given meeting and participant ID.`,builder:xe,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings participants delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/participants/${s[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(s[`participant-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``),"participant-id":String(s[`participant-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await f({force:!!s.force,message:`This operation removes the participant from the meeting and revokes their authentication token.`})){process.stderr.write(`Aborted.
5
- `);return}i(await o(`Deleting`,async()=>c.realtimekit.meetings.participants.delete({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`],participant_id:s[`participant-id`]})),{successLabel:`Deleted`})}};function Ce(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant. You can fetch the participant ID using the add a participant API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. You can fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const we={command:`get <participant-id>`,describe:`Returns a participant details for the given meeting and participant ID.`,builder:Ce,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings participants get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/participants/${s[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(s[`participant-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``),"participant-id":String(s[`participant-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.meetings.participants.get({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`],participant_id:s[`participant-id`]})),{successLabel:`Loaded`})}};function Te(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. Fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Ee={command:`list`,describe:`Returns all participants detail for the given meeting ID.`,builder:Te,handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`]};if(s.dryRun){a({command:`cf realtimekit meetings participants list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/participants`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.meetings.participants.list({account_id:u,app_id:s[`app-id`],meeting_id:s[`meeting-id`],...c})),{successLabel:`Loaded`})}};function De(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant. You can fetch the participant ID using the add a participant API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. You can fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`custom-participant-id`,{type:`string`,description:`Unique participant ID accepted by the replace participant API.`}).option(`name`,{type:`string`,description:`(Optional) Name of the participant.`}).option(`picture`,{type:`string`,description:`(Optional) A URL to a picture to be used for the participant.`}).option(`preset-name`,{type:`string`,description:`Name of the preset to apply to this participant.`}).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 Oe={command:`replace <participant-id>`,describe:`Replaces a participant's details for the given meeting and participant ID.`,builder:De,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit meetings participants replace`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/meetings/${d[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(d[`meeting-id`]))}/participants/${d[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(d[`participant-id`]))}`,pathParams:{"app-id":String(d[`app-id`]??``),"meeting-id":String(d[`meeting-id`]??``),"participant-id":String(d[`participant-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({custom_participant_id:l(d[`custom-participant-id`],`custom-participant-id`,`text`),name:l(d.name,`name`,`text`),picture:l(d.picture,`picture`,`text`),preset_name:l(d[`preset-name`],`preset-name`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Updating`,async()=>f.realtimekit.meetings.participants.replace({...e,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`],participant_id:d[`participant-id`]})),{successLabel:`Updated`});return}d[`custom-participant-id`]===void 0&&(d[`custom-participant-id`]=await u(`custom-participant-id`,`Unique participant ID accepted by the replace participant API.`)),d[`preset-name`]===void 0&&(d[`preset-name`]=await u(`preset-name`,`Name of the preset to apply to this participant.`));let m=c({custom_participant_id:l(d[`custom-participant-id`],`custom-participant-id`,`text`),name:l(d.name,`name`,`text`),picture:l(d.picture,`picture`,`text`),preset_name:l(d[`preset-name`],`preset-name`,`text`)});i(await o(`Updating`,async()=>f.realtimekit.meetings.participants.replace({...m,account_id:p,app_id:d[`app-id`],meeting_id:d[`meeting-id`],participant_id:d[`participant-id`]})),{successLabel:`Updated`})}};function ke(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant. You can fetch the participant ID using the add a participant API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. You can fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Ae={command:`refresh <participant-id>`,describe:`Regenerates participant's authentication token for the given meeting and participant ID.`,builder:ke,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit meetings participants tokens refresh`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/meetings/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}/participants/${s[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(s[`participant-id`]))}/token`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``),"participant-id":String(s[`participant-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Creating`,async()=>c.realtimekit.meetings.participants.tokens.refresh({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`],participant_id:s[`participant-id`]})),{successLabel:`Created`})}},je={command:`tokens`,describe:`Access tokens for RealtimeKit meeting participants`,builder:e=>e.command(Ae).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Me(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant. You can fetch the participant ID using the add a participant API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting. You can fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`name`,{type:`string`,description:`(Optional) Name of the participant.`}).option(`picture`,{type:`string`,description:`(Optional) A URL to a picture to be used for the participant.`}).option(`preset-name`,{type:`string`,description:`(Optional) Name of the preset to apply to this participant.`}).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 Ne={command:`update <participant-id>`,describe:`Updates a participant's details for the given meeting and participant ID.`,builder:Me,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit meetings participants update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/meetings/${u[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(u[`meeting-id`]))}/participants/${u[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(u[`participant-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"meeting-id":String(u[`meeting-id`]??``),"participant-id":String(u[`participant-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({name:l(u.name,`name`,`text`),picture:l(u.picture,`picture`,`text`),preset_name:l(u[`preset-name`],`preset-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.realtimekit.meetings.participants.update({...e,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`],participant_id:u[`participant-id`]})),{successLabel:`Updated`});return}let p=c({name:l(u.name,`name`,`text`),picture:l(u.picture,`picture`,`text`),preset_name:l(u[`preset-name`],`preset-name`,`text`)});i(await o(`Updating`,async()=>d.realtimekit.meetings.participants.update({...p,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`],participant_id:u[`participant-id`]})),{successLabel:`Updated`})}},Pe={command:`participants`,describe:`Participants in RealtimeKit meetings`,builder:e=>e.command(be).command(Se).command(we).command(Ee).command(Oe).command(Ne).command(je).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Fe(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting. Fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`ai-config-summarization-summary-type`,{type:`string`,description:`Defines the style of the summary, such as general, team meeting, or sales call.`,choices:[`general`,`team_meeting`,`sales_call`,`client_check_in`,`interview`,`daily_standup`,`one_on_one_meeting`,`lecture`,`code_review`]}).option(`ai-config-summarization-text-format`,{type:`string`,description:`Determines the text format of the summary, such as plain text or markdown.`,choices:[`plain_text`,`markdown`]}).option(`ai-config-summarization-word-limit`,{type:`number`,description:`Sets the maximum number of words in the meeting summary.`}).option(`ai-config-transcription-keywords`,{type:`string`,array:!0,description:`Adds specific terms to improve accurate detection during transcription.`}).option(`ai-config-transcription-language`,{type:`string`,description:`Specifies the language code for transcription to ensure accurate results.`,choices:[`en-US`,`en-IN`,`de`,`hi`,`sv`,`ru`,`pl`,`el`,`fr`,`nl`]}).option(`ai-config-transcription-profanity-filter`,{type:`boolean`,description:`Control the inclusion of offensive language in transcriptions.`}).option(`live-stream-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting livestreamed on start.`}).option(`persist-chat`,{type:`boolean`,description:`If a meeting is set to persist_chat, meeting chat would remain for a week within the meeting space.`}).option(`record-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting recorded as soon as someone joins the meeting.`}).option(`recording-config-audio-config-channel`,{type:`string`,description:`Audio signal pathway within an audio file that carries a specific sound source.`,choices:[`mono`,`stereo`]}).option(`recording-config-audio-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.`,choices:[`MP3`,`AAC`]}).option(`recording-config-audio-config-export-file`,{type:`boolean`,description:`Controls whether to export audio file seperately`}).option(`recording-config-file-name-prefix`,{type:`string`,description:`Adds a prefix to the beginning of the file name of the recording.`}).option(`recording-config-live-streaming-config-rtmp-url`,{type:`string`,description:`RTMP URL to stream to`}).option(`recording-config-max-seconds`,{type:`number`,description:`Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.`}).option(`recording-config-realtimekit-bucket-config-enabled`,{type:`boolean`,description:"Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won't be generated for a recording."}).option(`recording-config-video-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded.`,choices:[`H264`,`VP8`,`VP9`]}).option(`recording-config-video-config-export-file`,{type:`boolean`,description:`Controls whether to export video file seperately`}).option(`recording-config-video-config-height`,{type:`number`,description:`Height of the recording video in pixels`}).option(`recording-config-video-config-watermark-position`,{type:`string`,description:`Position of the watermark`,choices:[`left top`,`right top`,`left bottom`,`right bottom`]}).option(`recording-config-video-config-watermark-url`,{type:`string`,description:`URL of the watermark image`}).option(`recording-config-video-config-width`,{type:`number`,description:`Width of the recording video in pixels`}).option(`session-keep-alive-time-in-secs`,{type:`number`,description:`Time in seconds, for which a session remains active, after the last participant has left the meeting.`}).option(`summarize-on-end`,{type:`boolean`,description:`Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.`}).option(`title`,{type:`string`,description:`Title of the meeting`}).option(`transcribe-on-end`,{type:`boolean`,description:`Automatically generate transcripts when the meeting ends.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Create meeting body`}).check(e=>{if([`recording-config-file-name-prefix`,`recording-config-live-streaming-config-rtmp-url`,`recording-config-max-seconds`,`recording-config-realtimekit-bucket-config-enabled`,`recording-config-video-config-watermark-url`].some(t=>e[t]!==void 0)){let t=[`recording-config-realtimekit-bucket-config-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --recording_config-* flag is set`)}return!0})}const Ie={command:`replace <meeting-id>`,describe:`Replaces all the details for the given meeting ID.`,builder:Fe,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit meetings replace`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/meetings/${u[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(u[`meeting-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"meeting-id":String(u[`meeting-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]}):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.realtimekit.meetings.replace({...e,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Updated`});return}let p=c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]});i(await o(`Updating`,async()=>d.realtimekit.meetings.replace({...p,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Updated`})}};function Le(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting. Fetch the meeting ID using the create a meeting API.`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`ai-config-summarization-summary-type`,{type:`string`,description:`Defines the style of the summary, such as general, team meeting, or sales call.`,choices:[`general`,`team_meeting`,`sales_call`,`client_check_in`,`interview`,`daily_standup`,`one_on_one_meeting`,`lecture`,`code_review`]}).option(`ai-config-summarization-text-format`,{type:`string`,description:`Determines the text format of the summary, such as plain text or markdown.`,choices:[`plain_text`,`markdown`]}).option(`ai-config-summarization-word-limit`,{type:`number`,description:`Sets the maximum number of words in the meeting summary.`}).option(`ai-config-transcription-keywords`,{type:`string`,array:!0,description:`Adds specific terms to improve accurate detection during transcription.`}).option(`ai-config-transcription-language`,{type:`string`,description:`Specifies the language code for transcription to ensure accurate results.`,choices:[`en-US`,`en-IN`,`de`,`hi`,`sv`,`ru`,`pl`,`el`,`fr`,`nl`]}).option(`ai-config-transcription-profanity-filter`,{type:`boolean`,description:`Control the inclusion of offensive language in transcriptions.`}).option(`live-stream-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting livestreamed on start.`}).option(`persist-chat`,{type:`boolean`,description:`If a meeting is updated to persist_chat, meeting chat would remain for a week within the meeting space.`}).option(`record-on-start`,{type:`boolean`,description:`Specifies if the meeting should start getting recorded as soon as someone joins the meeting.`}).option(`recording-config-audio-config-channel`,{type:`string`,description:`Audio signal pathway within an audio file that carries a specific sound source.`,choices:[`mono`,`stereo`]}).option(`recording-config-audio-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.`,choices:[`MP3`,`AAC`]}).option(`recording-config-audio-config-export-file`,{type:`boolean`,description:`Controls whether to export audio file seperately`}).option(`recording-config-file-name-prefix`,{type:`string`,description:`Adds a prefix to the beginning of the file name of the recording.`}).option(`recording-config-live-streaming-config-rtmp-url`,{type:`string`,description:`RTMP URL to stream to`}).option(`recording-config-max-seconds`,{type:`number`,description:`Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.`}).option(`recording-config-realtimekit-bucket-config-enabled`,{type:`boolean`,description:"Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won't be generated for a recording."}).option(`recording-config-video-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded.`,choices:[`H264`,`VP8`,`VP9`]}).option(`recording-config-video-config-export-file`,{type:`boolean`,description:`Controls whether to export video file seperately`}).option(`recording-config-video-config-height`,{type:`number`,description:`Height of the recording video in pixels`}).option(`recording-config-video-config-watermark-position`,{type:`string`,description:`Position of the watermark`,choices:[`left top`,`right top`,`left bottom`,`right bottom`]}).option(`recording-config-video-config-watermark-url`,{type:`string`,description:`URL of the watermark image`}).option(`recording-config-video-config-width`,{type:`number`,description:`Width of the recording video in pixels`}).option(`session-keep-alive-time-in-secs`,{type:`number`,description:`Time in seconds, for which a session remains active, after the last participant has left the meeting.`}).option(`status`,{type:`string`,description:"Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting.",choices:[`ACTIVE`,`INACTIVE`]}).option(`summarize-on-end`,{type:`boolean`,description:`Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.`}).option(`title`,{type:`string`,description:`Title of the meeting`}).option(`transcribe-on-end`,{type:`boolean`,description:`Automatically generate transcripts when the meeting ends.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Update meeting body`}).check(e=>{if([`recording-config-file-name-prefix`,`recording-config-live-streaming-config-rtmp-url`,`recording-config-max-seconds`,`recording-config-realtimekit-bucket-config-enabled`,`recording-config-video-config-watermark-url`].some(t=>e[t]!==void 0)){let t=[`recording-config-realtimekit-bucket-config-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --recording_config-* flag is set`)}return!0})}const Re={command:`update <meeting-id>`,describe:`Updates a meeting in an App for the given meeting ID.`,builder:Le,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit meetings update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/meetings/${u[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(u[`meeting-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"meeting-id":String(u[`meeting-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],status:l(u.status,`status`,`text`),summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]}):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.realtimekit.meetings.update({...e,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Updated`});return}let p=c({ai_config:{summarization:{summary_type:l(u[`ai-config-summarization-summary-type`],`ai-config-summarization-summary-type`,`text`),text_format:l(u[`ai-config-summarization-text-format`],`ai-config-summarization-text-format`,`text`),word_limit:u[`ai-config-summarization-word-limit`]},transcription:{keywords:u[`ai-config-transcription-keywords`],language:l(u[`ai-config-transcription-language`],`ai-config-transcription-language`,`text`),profanity_filter:u[`ai-config-transcription-profanity-filter`]}},live_stream_on_start:u[`live-stream-on-start`],persist_chat:u[`persist-chat`],record_on_start:u[`record-on-start`],recording_config:{audio_config:{channel:l(u[`recording-config-audio-config-channel`],`recording-config-audio-config-channel`,`text`),codec:l(u[`recording-config-audio-config-codec`],`recording-config-audio-config-codec`,`text`),export_file:u[`recording-config-audio-config-export-file`]},file_name_prefix:l(u[`recording-config-file-name-prefix`],`recording-config-file-name-prefix`,`text`),live_streaming_config:{rtmp_url:l(u[`recording-config-live-streaming-config-rtmp-url`],`recording-config-live-streaming-config-rtmp-url`,`text`)},max_seconds:u[`recording-config-max-seconds`],realtimekit_bucket_config:{enabled:u[`recording-config-realtimekit-bucket-config-enabled`]},video_config:{codec:l(u[`recording-config-video-config-codec`],`recording-config-video-config-codec`,`text`),export_file:u[`recording-config-video-config-export-file`],height:u[`recording-config-video-config-height`],watermark:{position:l(u[`recording-config-video-config-watermark-position`],`recording-config-video-config-watermark-position`,`text`),url:l(u[`recording-config-video-config-watermark-url`],`recording-config-video-config-watermark-url`,`text`)},width:u[`recording-config-video-config-width`]}},session_keep_alive_time_in_secs:u[`session-keep-alive-time-in-secs`],status:l(u.status,`status`,`text`),summarize_on_end:u[`summarize-on-end`],title:l(u.title,`title`,`text`),transcribe_on_end:u[`transcribe-on-end`]});i(await o(`Updating`,async()=>d.realtimekit.meetings.update({...p,account_id:f,app_id:u[`app-id`],meeting_id:u[`meeting-id`]})),{successLabel:`Updated`})}},ze={command:`meetings`,describe:`Meetings, participants, access tokens, and meeting livestreams`,builder:e=>e.command(le).command(de).command(pe).command(Ie).command(Re).command(se).command(ve).command(Pe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Be(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`config-livestream-viewer-qualities`,{type:`string`,array:!0,description:`Livestream viewer quality levels.`}).option(`config-max-screenshare-count`,{type:`number`,description:`Maximum number of screen shares that can be active at a given time`}).option(`config-max-video-streams-desktop`,{type:`number`,description:`Maximum number of video streams visible on desktop devices`}).option(`config-max-video-streams-mobile`,{type:`number`,description:`Maximum number of streams visible on mobile devices`}).option(`config-media-audio-enable-high-bitrate`,{type:`boolean`,description:`Enable High Quality Audio for your meetings`}).option(`config-media-audio-enable-stereo`,{type:`boolean`,description:`Enable Stereo for your meetings`}).option(`config-media-screenshare-frame-rate`,{type:`number`,description:`Frame rate of screen share`}).option(`config-media-screenshare-quality`,{type:`string`,description:`Quality of screen share `,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-frame-rate`,{type:`number`,description:`Frame rate of participants' video`}).option(`config-media-video-quality`,{type:`string`,description:`Video quality of participants`,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-simulcast`,{type:`boolean`,description:`Enable simulcast for participant videos.`,default:!1}).option(`config-view-type`,{type:`string`,description:`Type of the meeting`,choices:[`GROUP_CALL`,`WEBINAR`,`AUDIO_ROOM`,`LIVESTREAM`]}).option(`name`,{type:`string`,description:`Name of the preset`}).option(`permissions-accept-stage-requests`,{type:`boolean`,description:`The permissions.accept_stage_requests field`}).option(`permissions-accept-waiting-requests`,{type:`boolean`,description:`Whether this participant can accept waiting requests`}).option(`permissions-can-accept-production-requests`,{type:`boolean`,description:`The permissions.can_accept_production_requests field`}).option(`permissions-can-change-participant-permissions`,{type:`boolean`,description:`The permissions.can_change_participant_permissions field`}).option(`permissions-can-edit-display-name`,{type:`boolean`,description:`The permissions.can_edit_display_name field`}).option(`permissions-can-livestream`,{type:`boolean`,description:`The permissions.can_livestream field`}).option(`permissions-can-record`,{type:`boolean`,description:`The permissions.can_record field`}).option(`permissions-can-spotlight`,{type:`boolean`,description:`The permissions.can_spotlight field`}).option(`permissions-chat-private-can-receive`,{type:`boolean`,description:`The permissions.chat.private.can_receive field`}).option(`permissions-chat-private-can-send`,{type:`boolean`,description:`The permissions.chat.private.can_send field`}).option(`permissions-chat-private-files`,{type:`boolean`,description:`The permissions.chat.private.files field`}).option(`permissions-chat-private-text`,{type:`boolean`,description:`The permissions.chat.private.text field`}).option(`permissions-chat-public-can-send`,{type:`boolean`,description:`Can send messages in general`}).option(`permissions-chat-public-files`,{type:`boolean`,description:`Can send file messages`}).option(`permissions-chat-public-text`,{type:`boolean`,description:`Can send text messages`}).option(`permissions-connected-meetings-can-alter-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_alter_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-to-parent-meeting`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_to_parent_meeting field`}).option(`permissions-disable-participant-audio`,{type:`boolean`,description:`The permissions.disable_participant_audio field`}).option(`permissions-disable-participant-screensharing`,{type:`boolean`,description:`The permissions.disable_participant_screensharing field`}).option(`permissions-disable-participant-video`,{type:`boolean`,description:`The permissions.disable_participant_video field`}).option(`permissions-hidden-participant`,{type:`boolean`,description:`Whether this participant is visible to others or not`}).option(`permissions-is-recorder`,{type:`boolean`,description:`The permissions.is_recorder field`}).option(`permissions-kick-participant`,{type:`boolean`,description:`The permissions.kick_participant field`}).option(`permissions-media-audio-can-produce`,{type:`string`,description:`Can produce audio`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-screenshare-can-produce`,{type:`string`,description:`Can produce screen share video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-video-can-produce`,{type:`string`,description:`Can produce video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-pin-participant`,{type:`boolean`,description:`The permissions.pin_participant field`}).option(`permissions-plugins-can-close`,{type:`boolean`,description:`Can close plugins that are already open`}).option(`permissions-plugins-can-edit-config`,{type:`boolean`,description:`Can edit plugin config`}).option(`permissions-plugins-can-start`,{type:`boolean`,description:`Can start plugins`}).option(`permissions-polls-can-create`,{type:`boolean`,description:`Can create polls`}).option(`permissions-polls-can-view`,{type:`boolean`,description:`Can view polls`}).option(`permissions-polls-can-vote`,{type:`boolean`,description:`Can vote on polls`}).option(`permissions-recorder-type`,{type:`string`,description:`Type of the recording peer`,choices:[`RECORDER`,`LIVESTREAMER`,`NONE`]}).option(`permissions-show-participant-list`,{type:`boolean`,description:`The permissions.show_participant_list field`}).option(`permissions-stage-access`,{type:`string`,description:`The permissions.stage_access field`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-stage-enabled`,{type:`boolean`,description:`The permissions.stage_enabled field`}).option(`permissions-transcription-enabled`,{type:`boolean`,description:`The permissions.transcription_enabled field`}).option(`permissions-waiting-room-type`,{type:`string`,description:`Waiting room type`,choices:[`SKIP`,`ON_PRIVILEGED_USER_ENTRY`,`SKIP_ON_ACCEPT`]}).option(`ui-design-tokens-border-radius`,{type:`string`,description:`The ui.design_tokens.border_radius field`,choices:[`sharp`,`rounded`,`extra-rounded`,`circular`]}).option(`ui-design-tokens-border-width`,{type:`string`,description:`The ui.design_tokens.border_width field`,choices:[`none`,`thin`,`fat`]}).option(`ui-design-tokens-colors-danger`,{type:`string`,description:`The ui.design_tokens.colors.danger field`}).option(`ui-design-tokens-colors-success`,{type:`string`,description:`The ui.design_tokens.colors.success field`}).option(`ui-design-tokens-colors-text`,{type:`string`,description:`The ui.design_tokens.colors.text field`}).option(`ui-design-tokens-colors-text-on-brand`,{type:`string`,description:`The ui.design_tokens.colors.text_on_brand field`}).option(`ui-design-tokens-colors-video-bg`,{type:`string`,description:`The ui.design_tokens.colors.video_bg field`}).option(`ui-design-tokens-colors-warning`,{type:`string`,description:`The ui.design_tokens.colors.warning field`}).option(`ui-design-tokens-font-family`,{type:`string`,description:`The ui.design_tokens.font_family field`}).option(`ui-design-tokens-google-font`,{type:`string`,description:`The ui.design_tokens.google_font field`}).option(`ui-design-tokens-logo`,{type:`string`,description:`The ui.design_tokens.logo field`}).option(`ui-design-tokens-spacing-base`,{type:`number`,description:`The ui.design_tokens.spacing_base field`}).option(`ui-design-tokens-theme`,{type:`string`,description:`The ui.design_tokens.theme field`,choices:[`darkest`,`dark`,`light`]}).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 Ve={command:`create <app-id>`,describe:`Creates a preset belonging to the current App`,builder:Be,handler:async f=>{if(f.dryRun){a({command:`cf realtimekit presets create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${f[`app-id`]==null?`<app-id>`:encodeURIComponent(String(f[`app-id`]))}/presets`,pathParams:{"app-id":String(f[`app-id`]??``)},bodyKind:`json`,body:f.body===void 0?c({config:{livestream_viewer_qualities:f[`config-livestream-viewer-qualities`],max_screenshare_count:f[`config-max-screenshare-count`],max_video_streams:{desktop:f[`config-max-video-streams-desktop`],mobile:f[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:f[`config-media-audio-enable-high-bitrate`],enable_stereo:f[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:f[`config-media-screenshare-frame-rate`],quality:l(f[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:f[`config-media-video-frame-rate`],quality:l(f[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:f[`config-media-video-simulcast`]}},view_type:l(f[`config-view-type`],`config-view-type`,`text`)},name:l(f.name,`name`,`text`),permissions:{accept_stage_requests:f[`permissions-accept-stage-requests`],accept_waiting_requests:f[`permissions-accept-waiting-requests`],can_accept_production_requests:f[`permissions-can-accept-production-requests`],can_change_participant_permissions:f[`permissions-can-change-participant-permissions`],can_edit_display_name:f[`permissions-can-edit-display-name`],can_livestream:f[`permissions-can-livestream`],can_record:f[`permissions-can-record`],can_spotlight:f[`permissions-can-spotlight`],chat:{private:{can_receive:f[`permissions-chat-private-can-receive`],can_send:f[`permissions-chat-private-can-send`],files:f[`permissions-chat-private-files`],text:f[`permissions-chat-private-text`]},public:{can_send:f[`permissions-chat-public-can-send`],files:f[`permissions-chat-public-files`],text:f[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:f[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:f[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:f[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:f[`permissions-disable-participant-audio`],disable_participant_screensharing:f[`permissions-disable-participant-screensharing`],disable_participant_video:f[`permissions-disable-participant-video`],hidden_participant:f[`permissions-hidden-participant`],is_recorder:f[`permissions-is-recorder`],kick_participant:f[`permissions-kick-participant`],media:{audio:{can_produce:l(f[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(f[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(f[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:f[`permissions-pin-participant`],plugins:{can_close:f[`permissions-plugins-can-close`],can_edit_config:f[`permissions-plugins-can-edit-config`],can_start:f[`permissions-plugins-can-start`]},polls:{can_create:f[`permissions-polls-can-create`],can_view:f[`permissions-polls-can-view`],can_vote:f[`permissions-polls-can-vote`]},recorder_type:l(f[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:f[`permissions-show-participant-list`],stage_access:l(f[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:f[`permissions-stage-enabled`],transcription_enabled:f[`permissions-transcription-enabled`],waiting_room_type:l(f[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(f[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(f[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(f[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(f[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(f[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(f[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(f[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(f[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(f[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(f[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(f[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:f[`ui-design-tokens-spacing-base`],theme:l(f[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`text`)}}}):s(f.body)});return}let p=await r(f),m=f.local?e:await t();if(f.accountId=m,f.body){let e=s(f.body);i(await o(`Creating`,async()=>p.realtimekit.presets.create({body:e,account_id:m,app_id:f[`app-id`]})),{successLabel:`Created`});return}if(f[`config-max-screenshare-count`]===void 0)throw Error(`--config-max-screenshare-count is required (or pass --body with this field set).`);if(f[`config-max-video-streams-desktop`]===void 0)throw Error(`--config-max-video-streams-desktop is required (or pass --body with this field set).`);if(f[`config-max-video-streams-mobile`]===void 0)throw Error(`--config-max-video-streams-mobile is required (or pass --body with this field set).`);if(f[`config-media-screenshare-frame-rate`]===void 0)throw Error(`--config-media-screenshare-frame-rate is required (or pass --body with this field set).`);if(f[`config-media-screenshare-quality`]===void 0&&(f[`config-media-screenshare-quality`]=await d(`config-media-screenshare-quality`,`Quality of screen share `,[`hd`,`vga`,`qvga`,`fhd`,`uhd`])),f[`config-media-video-frame-rate`]===void 0)throw Error(`--config-media-video-frame-rate is required (or pass --body with this field set).`);if(f[`config-media-video-quality`]===void 0&&(f[`config-media-video-quality`]=await d(`config-media-video-quality`,`Video quality of participants`,[`hd`,`vga`,`qvga`,`fhd`,`uhd`])),f[`config-view-type`]===void 0&&(f[`config-view-type`]=await d(`config-view-type`,`Type of the meeting`,[`GROUP_CALL`,`WEBINAR`,`AUDIO_ROOM`,`LIVESTREAM`])),f.name===void 0&&(f.name=await u(`name`,`Name of the preset`)),f[`permissions-accept-waiting-requests`]===void 0)throw Error(`--permissions-accept-waiting-requests is required (or pass --body with this field set).`);if(f[`permissions-can-accept-production-requests`]===void 0)throw Error(`--permissions-can-accept-production-requests is required (or pass --body with this field set).`);if(f[`permissions-can-change-participant-permissions`]===void 0)throw Error(`--permissions-can-change-participant-permissions is required (or pass --body with this field set).`);if(f[`permissions-can-edit-display-name`]===void 0)throw Error(`--permissions-can-edit-display-name is required (or pass --body with this field set).`);if(f[`permissions-can-livestream`]===void 0)throw Error(`--permissions-can-livestream is required (or pass --body with this field set).`);if(f[`permissions-can-record`]===void 0)throw Error(`--permissions-can-record is required (or pass --body with this field set).`);if(f[`permissions-can-spotlight`]===void 0)throw Error(`--permissions-can-spotlight is required (or pass --body with this field set).`);if(f[`permissions-chat-private-can-receive`]===void 0)throw Error(`--permissions-chat-private-can-receive is required (or pass --body with this field set).`);if(f[`permissions-chat-private-can-send`]===void 0)throw Error(`--permissions-chat-private-can-send is required (or pass --body with this field set).`);if(f[`permissions-chat-private-files`]===void 0)throw Error(`--permissions-chat-private-files is required (or pass --body with this field set).`);if(f[`permissions-chat-private-text`]===void 0)throw Error(`--permissions-chat-private-text is required (or pass --body with this field set).`);if(f[`permissions-chat-public-can-send`]===void 0)throw Error(`--permissions-chat-public-can-send is required (or pass --body with this field set).`);if(f[`permissions-chat-public-files`]===void 0)throw Error(`--permissions-chat-public-files is required (or pass --body with this field set).`);if(f[`permissions-chat-public-text`]===void 0)throw Error(`--permissions-chat-public-text is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-alter-connected-meetings`]===void 0)throw Error(`--permissions-connected-meetings-can-alter-connected-meetings is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-switch-connected-meetings`]===void 0)throw Error(`--permissions-connected-meetings-can-switch-connected-meetings is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-switch-to-parent-meeting`]===void 0)throw Error(`--permissions-connected-meetings-can-switch-to-parent-meeting is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-audio`]===void 0)throw Error(`--permissions-disable-participant-audio is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-screensharing`]===void 0)throw Error(`--permissions-disable-participant-screensharing is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-video`]===void 0)throw Error(`--permissions-disable-participant-video is required (or pass --body with this field set).`);if(f[`permissions-hidden-participant`]===void 0)throw Error(`--permissions-hidden-participant is required (or pass --body with this field set).`);if(f[`permissions-kick-participant`]===void 0)throw Error(`--permissions-kick-participant is required (or pass --body with this field set).`);if(f[`permissions-media-audio-can-produce`]===void 0&&(f[`permissions-media-audio-can-produce`]=await d(`permissions-media-audio-can-produce`,`Can produce audio`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-media-screenshare-can-produce`]===void 0&&(f[`permissions-media-screenshare-can-produce`]=await d(`permissions-media-screenshare-can-produce`,`Can produce screen share video`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-media-video-can-produce`]===void 0&&(f[`permissions-media-video-can-produce`]=await d(`permissions-media-video-can-produce`,`Can produce video`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-pin-participant`]===void 0)throw Error(`--permissions-pin-participant is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-close`]===void 0)throw Error(`--permissions-plugins-can-close is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-edit-config`]===void 0)throw Error(`--permissions-plugins-can-edit-config is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-start`]===void 0)throw Error(`--permissions-plugins-can-start is required (or pass --body with this field set).`);if(f[`permissions-polls-can-create`]===void 0)throw Error(`--permissions-polls-can-create is required (or pass --body with this field set).`);if(f[`permissions-polls-can-view`]===void 0)throw Error(`--permissions-polls-can-view is required (or pass --body with this field set).`);if(f[`permissions-polls-can-vote`]===void 0)throw Error(`--permissions-polls-can-vote is required (or pass --body with this field set).`);if(f[`permissions-recorder-type`]===void 0&&(f[`permissions-recorder-type`]=await d(`permissions-recorder-type`,`Type of the recording peer`,[`RECORDER`,`LIVESTREAMER`,`NONE`])),f[`permissions-show-participant-list`]===void 0)throw Error(`--permissions-show-participant-list is required (or pass --body with this field set).`);if(f[`permissions-waiting-room-type`]===void 0&&(f[`permissions-waiting-room-type`]=await d(`permissions-waiting-room-type`,`Waiting room type`,[`SKIP`,`ON_PRIVILEGED_USER_ENTRY`,`SKIP_ON_ACCEPT`])),f[`ui-design-tokens-border-radius`]===void 0&&(f[`ui-design-tokens-border-radius`]=await d(`ui-design-tokens-border-radius`,`The ui.design_tokens.border_radius field`,[`sharp`,`rounded`,`extra-rounded`,`circular`])),f[`ui-design-tokens-border-width`]===void 0&&(f[`ui-design-tokens-border-width`]=await d(`ui-design-tokens-border-width`,`The ui.design_tokens.border_width field`,[`none`,`thin`,`fat`])),f[`ui-design-tokens-colors-danger`]===void 0&&(f[`ui-design-tokens-colors-danger`]=await u(`ui-design-tokens-colors-danger`,`The ui.design_tokens.colors.danger field`)),f[`ui-design-tokens-colors-success`]===void 0&&(f[`ui-design-tokens-colors-success`]=await u(`ui-design-tokens-colors-success`,`The ui.design_tokens.colors.success field`)),f[`ui-design-tokens-colors-text`]===void 0&&(f[`ui-design-tokens-colors-text`]=await u(`ui-design-tokens-colors-text`,`The ui.design_tokens.colors.text field`)),f[`ui-design-tokens-colors-text-on-brand`]===void 0&&(f[`ui-design-tokens-colors-text-on-brand`]=await u(`ui-design-tokens-colors-text-on-brand`,`The ui.design_tokens.colors.text_on_brand field`)),f[`ui-design-tokens-colors-video-bg`]===void 0&&(f[`ui-design-tokens-colors-video-bg`]=await u(`ui-design-tokens-colors-video-bg`,`The ui.design_tokens.colors.video_bg field`)),f[`ui-design-tokens-colors-warning`]===void 0&&(f[`ui-design-tokens-colors-warning`]=await u(`ui-design-tokens-colors-warning`,`The ui.design_tokens.colors.warning field`)),f[`ui-design-tokens-spacing-base`]===void 0)throw Error(`--ui-design-tokens-spacing-base is required (or pass --body with this field set).`);f[`ui-design-tokens-theme`]===void 0&&(f[`ui-design-tokens-theme`]=await d(`ui-design-tokens-theme`,`The ui.design_tokens.theme field`,[`darkest`,`dark`,`light`]));let h=c({config:{livestream_viewer_qualities:f[`config-livestream-viewer-qualities`],max_screenshare_count:f[`config-max-screenshare-count`],max_video_streams:{desktop:f[`config-max-video-streams-desktop`],mobile:f[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:f[`config-media-audio-enable-high-bitrate`],enable_stereo:f[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:f[`config-media-screenshare-frame-rate`],quality:l(f[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:f[`config-media-video-frame-rate`],quality:l(f[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:f[`config-media-video-simulcast`]}},view_type:l(f[`config-view-type`],`config-view-type`,`text`)},name:l(f.name,`name`,`text`),permissions:{accept_stage_requests:f[`permissions-accept-stage-requests`],accept_waiting_requests:f[`permissions-accept-waiting-requests`],can_accept_production_requests:f[`permissions-can-accept-production-requests`],can_change_participant_permissions:f[`permissions-can-change-participant-permissions`],can_edit_display_name:f[`permissions-can-edit-display-name`],can_livestream:f[`permissions-can-livestream`],can_record:f[`permissions-can-record`],can_spotlight:f[`permissions-can-spotlight`],chat:{private:{can_receive:f[`permissions-chat-private-can-receive`],can_send:f[`permissions-chat-private-can-send`],files:f[`permissions-chat-private-files`],text:f[`permissions-chat-private-text`]},public:{can_send:f[`permissions-chat-public-can-send`],files:f[`permissions-chat-public-files`],text:f[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:f[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:f[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:f[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:f[`permissions-disable-participant-audio`],disable_participant_screensharing:f[`permissions-disable-participant-screensharing`],disable_participant_video:f[`permissions-disable-participant-video`],hidden_participant:f[`permissions-hidden-participant`],is_recorder:f[`permissions-is-recorder`],kick_participant:f[`permissions-kick-participant`],media:{audio:{can_produce:l(f[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(f[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(f[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:f[`permissions-pin-participant`],plugins:{can_close:f[`permissions-plugins-can-close`],can_edit_config:f[`permissions-plugins-can-edit-config`],can_start:f[`permissions-plugins-can-start`]},polls:{can_create:f[`permissions-polls-can-create`],can_view:f[`permissions-polls-can-view`],can_vote:f[`permissions-polls-can-vote`]},recorder_type:l(f[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:f[`permissions-show-participant-list`],stage_access:l(f[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:f[`permissions-stage-enabled`],transcription_enabled:f[`permissions-transcription-enabled`],waiting_room_type:l(f[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(f[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(f[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(f[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(f[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(f[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(f[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(f[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(f[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(f[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(f[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(f[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:f[`ui-design-tokens-spacing-base`],theme:l(f[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`text`)}}});i(await o(`Creating`,async()=>p.realtimekit.presets.create({body:h,account_id:m,app_id:f[`app-id`]})),{successLabel:`Created`})}};function He(e){return e.positional(`preset-id`,{type:`string`,description:`ID of the preset to fetch`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,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 Ue={command:`delete <preset-id>`,describe:`Deletes a preset using the provided preset ID`,builder:He,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit presets delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/presets/${s[`preset-id`]==null?`<preset-id>`:encodeURIComponent(String(s[`preset-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"preset-id":String(s[`preset-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await f({force:!!s.force,message:`This operation permanently deletes the preset.`})){process.stderr.write(`Aborted.
6
- `);return}i(await o(`Deleting`,async()=>c.realtimekit.presets.delete({account_id:l,app_id:s[`app-id`],preset_id:s[`preset-id`]})),{successLabel:`Deleted`})}};function We(e){return e.positional(`preset-id`,{type:`string`,description:`ID of the preset to fetch`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Ge={command:`get <preset-id>`,describe:`Fetches details of a preset using the provided preset ID`,builder:We,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit presets get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/presets/${s[`preset-id`]==null?`<preset-id>`:encodeURIComponent(String(s[`preset-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"preset-id":String(s[`preset-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.presets.get({account_id:l,app_id:s[`app-id`],preset_id:s[`preset-id`]})),{successLabel:`Loaded`})}};function Ke(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`search`,{type:`string`,description:`Search presets by name.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const qe={command:`list`,describe:`Fetches all the presets belonging to an App.`,builder:Ke,handler:async s=>{let c={per_page:s[`per-page`],page_no:s[`page-no`],search:s.search};if(s.dryRun){a({command:`cf realtimekit presets list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/presets`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.presets.list({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}};function Je(e){return e.positional(`preset-id`,{type:`string`,description:`ID of the preset to replace`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`config-livestream-viewer-qualities`,{type:`string`,array:!0,description:`Livestream viewer quality levels.`}).option(`config-max-screenshare-count`,{type:`number`,description:`Maximum number of screen shares that can be active at a given time`}).option(`config-max-video-streams-desktop`,{type:`number`,description:`Maximum number of video streams visible on desktop devices`}).option(`config-max-video-streams-mobile`,{type:`number`,description:`Maximum number of streams visible on mobile devices`}).option(`config-media-audio-enable-high-bitrate`,{type:`boolean`,description:`Enable High Quality Audio for your meetings`}).option(`config-media-audio-enable-stereo`,{type:`boolean`,description:`Enable Stereo for your meetings`}).option(`config-media-screenshare-frame-rate`,{type:`number`,description:`Frame rate of screen share`}).option(`config-media-screenshare-quality`,{type:`string`,description:`Quality of screen share `,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-frame-rate`,{type:`number`,description:`Frame rate of participants' video`}).option(`config-media-video-quality`,{type:`string`,description:`Video quality of participants`,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-simulcast`,{type:`boolean`,description:`Enable simulcast for participant videos.`}).option(`config-view-type`,{type:`string`,description:`Type of the meeting`,choices:[`GROUP_CALL`,`WEBINAR`,`AUDIO_ROOM`,`LIVESTREAM`]}).option(`name`,{type:`string`,description:`Name of the preset`}).option(`permissions-accept-stage-requests`,{type:`boolean`,description:`The permissions.accept_stage_requests field`}).option(`permissions-accept-waiting-requests`,{type:`boolean`,description:`Whether this participant can accept waiting requests`}).option(`permissions-can-accept-production-requests`,{type:`boolean`,description:`The permissions.can_accept_production_requests field`}).option(`permissions-can-change-participant-permissions`,{type:`boolean`,description:`The permissions.can_change_participant_permissions field`}).option(`permissions-can-edit-display-name`,{type:`boolean`,description:`The permissions.can_edit_display_name field`}).option(`permissions-can-livestream`,{type:`boolean`,description:`The permissions.can_livestream field`}).option(`permissions-can-record`,{type:`boolean`,description:`The permissions.can_record field`}).option(`permissions-can-spotlight`,{type:`boolean`,description:`The permissions.can_spotlight field`}).option(`permissions-chat-private-can-receive`,{type:`boolean`,description:`The permissions.chat.private.can_receive field`}).option(`permissions-chat-private-can-send`,{type:`boolean`,description:`The permissions.chat.private.can_send field`}).option(`permissions-chat-private-files`,{type:`boolean`,description:`The permissions.chat.private.files field`}).option(`permissions-chat-private-text`,{type:`boolean`,description:`The permissions.chat.private.text field`}).option(`permissions-chat-public-can-send`,{type:`boolean`,description:`Can send messages in general`}).option(`permissions-chat-public-files`,{type:`boolean`,description:`Can send file messages`}).option(`permissions-chat-public-text`,{type:`boolean`,description:`Can send text messages`}).option(`permissions-connected-meetings-can-alter-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_alter_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-to-parent-meeting`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_to_parent_meeting field`}).option(`permissions-disable-participant-audio`,{type:`boolean`,description:`The permissions.disable_participant_audio field`}).option(`permissions-disable-participant-screensharing`,{type:`boolean`,description:`The permissions.disable_participant_screensharing field`}).option(`permissions-disable-participant-video`,{type:`boolean`,description:`The permissions.disable_participant_video field`}).option(`permissions-hidden-participant`,{type:`boolean`,description:`Whether this participant is visible to others or not`}).option(`permissions-is-recorder`,{type:`boolean`,description:`The permissions.is_recorder field`}).option(`permissions-kick-participant`,{type:`boolean`,description:`The permissions.kick_participant field`}).option(`permissions-media-audio-can-produce`,{type:`string`,description:`Can produce audio`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-screenshare-can-produce`,{type:`string`,description:`Can produce screen share video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-video-can-produce`,{type:`string`,description:`Can produce video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-pin-participant`,{type:`boolean`,description:`The permissions.pin_participant field`}).option(`permissions-plugins-can-close`,{type:`boolean`,description:`Can close plugins that are already open`}).option(`permissions-plugins-can-edit-config`,{type:`boolean`,description:`Can edit plugin config`}).option(`permissions-plugins-can-start`,{type:`boolean`,description:`Can start plugins`}).option(`permissions-polls-can-create`,{type:`boolean`,description:`Can create polls`}).option(`permissions-polls-can-view`,{type:`boolean`,description:`Can view polls`}).option(`permissions-polls-can-vote`,{type:`boolean`,description:`Can vote on polls`}).option(`permissions-recorder-type`,{type:`string`,description:`Type of the recording peer`,choices:[`RECORDER`,`LIVESTREAMER`,`NONE`]}).option(`permissions-show-participant-list`,{type:`boolean`,description:`The permissions.show_participant_list field`}).option(`permissions-stage-access`,{type:`string`,description:`The permissions.stage_access field`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-stage-enabled`,{type:`boolean`,description:`The permissions.stage_enabled field`}).option(`permissions-transcription-enabled`,{type:`boolean`,description:`The permissions.transcription_enabled field`}).option(`permissions-waiting-room-type`,{type:`string`,description:`Waiting room type`,choices:[`SKIP`,`ON_PRIVILEGED_USER_ENTRY`,`SKIP_ON_ACCEPT`]}).option(`ui-design-tokens-border-radius`,{type:`string`,description:`The ui.design_tokens.border_radius field`,choices:[`sharp`,`rounded`,`extra-rounded`,`circular`]}).option(`ui-design-tokens-border-width`,{type:`string`,description:`The ui.design_tokens.border_width field`,choices:[`none`,`thin`,`fat`]}).option(`ui-design-tokens-colors-danger`,{type:`string`,description:`The ui.design_tokens.colors.danger field`}).option(`ui-design-tokens-colors-success`,{type:`string`,description:`The ui.design_tokens.colors.success field`}).option(`ui-design-tokens-colors-text`,{type:`string`,description:`The ui.design_tokens.colors.text field`}).option(`ui-design-tokens-colors-text-on-brand`,{type:`string`,description:`The ui.design_tokens.colors.text_on_brand field`}).option(`ui-design-tokens-colors-video-bg`,{type:`string`,description:`The ui.design_tokens.colors.video_bg field`}).option(`ui-design-tokens-colors-warning`,{type:`string`,description:`The ui.design_tokens.colors.warning field`}).option(`ui-design-tokens-font-family`,{type:`string`,description:`The ui.design_tokens.font_family field`}).option(`ui-design-tokens-google-font`,{type:`string`,description:`The ui.design_tokens.google_font field`}).option(`ui-design-tokens-logo`,{type:`string`,description:`The ui.design_tokens.logo field`}).option(`ui-design-tokens-spacing-base`,{type:`number`,description:`The ui.design_tokens.spacing_base field`}).option(`ui-design-tokens-theme`,{type:`string`,description:`The ui.design_tokens.theme field`,choices:[`darkest`,`dark`,`light`]}).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 Ye={command:`replace <preset-id>`,describe:`Replace all details for the preset using the provided preset ID.`,builder:Je,handler:async f=>{if(f.dryRun){a({command:`cf realtimekit presets replace`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${f[`app-id`]==null?`<app-id>`:encodeURIComponent(String(f[`app-id`]))}/presets/${f[`preset-id`]==null?`<preset-id>`:encodeURIComponent(String(f[`preset-id`]))}`,pathParams:{"app-id":String(f[`app-id`]??``),"preset-id":String(f[`preset-id`]??``)},bodyKind:`json`,body:f.body===void 0?c({config:{livestream_viewer_qualities:f[`config-livestream-viewer-qualities`],max_screenshare_count:f[`config-max-screenshare-count`],max_video_streams:{desktop:f[`config-max-video-streams-desktop`],mobile:f[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:f[`config-media-audio-enable-high-bitrate`],enable_stereo:f[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:f[`config-media-screenshare-frame-rate`],quality:l(f[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:f[`config-media-video-frame-rate`],quality:l(f[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:f[`config-media-video-simulcast`]}},view_type:l(f[`config-view-type`],`config-view-type`,`text`)},name:l(f.name,`name`,`text`),permissions:{accept_stage_requests:f[`permissions-accept-stage-requests`],accept_waiting_requests:f[`permissions-accept-waiting-requests`],can_accept_production_requests:f[`permissions-can-accept-production-requests`],can_change_participant_permissions:f[`permissions-can-change-participant-permissions`],can_edit_display_name:f[`permissions-can-edit-display-name`],can_livestream:f[`permissions-can-livestream`],can_record:f[`permissions-can-record`],can_spotlight:f[`permissions-can-spotlight`],chat:{private:{can_receive:f[`permissions-chat-private-can-receive`],can_send:f[`permissions-chat-private-can-send`],files:f[`permissions-chat-private-files`],text:f[`permissions-chat-private-text`]},public:{can_send:f[`permissions-chat-public-can-send`],files:f[`permissions-chat-public-files`],text:f[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:f[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:f[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:f[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:f[`permissions-disable-participant-audio`],disable_participant_screensharing:f[`permissions-disable-participant-screensharing`],disable_participant_video:f[`permissions-disable-participant-video`],hidden_participant:f[`permissions-hidden-participant`],is_recorder:f[`permissions-is-recorder`],kick_participant:f[`permissions-kick-participant`],media:{audio:{can_produce:l(f[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(f[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(f[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:f[`permissions-pin-participant`],plugins:{can_close:f[`permissions-plugins-can-close`],can_edit_config:f[`permissions-plugins-can-edit-config`],can_start:f[`permissions-plugins-can-start`]},polls:{can_create:f[`permissions-polls-can-create`],can_view:f[`permissions-polls-can-view`],can_vote:f[`permissions-polls-can-vote`]},recorder_type:l(f[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:f[`permissions-show-participant-list`],stage_access:l(f[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:f[`permissions-stage-enabled`],transcription_enabled:f[`permissions-transcription-enabled`],waiting_room_type:l(f[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(f[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(f[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(f[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(f[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(f[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(f[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(f[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(f[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(f[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(f[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(f[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:f[`ui-design-tokens-spacing-base`],theme:l(f[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`text`)}}}):s(f.body)});return}let p=await r(f),m=f.local?e:await t();if(f.accountId=m,f.body){let e=s(f.body);i(await o(`Updating`,async()=>p.realtimekit.presets.replace({body:e,account_id:m,app_id:f[`app-id`],preset_id:f[`preset-id`]})),{successLabel:`Updated`});return}if(f[`config-max-screenshare-count`]===void 0)throw Error(`--config-max-screenshare-count is required (or pass --body with this field set).`);if(f[`config-max-video-streams-desktop`]===void 0)throw Error(`--config-max-video-streams-desktop is required (or pass --body with this field set).`);if(f[`config-max-video-streams-mobile`]===void 0)throw Error(`--config-max-video-streams-mobile is required (or pass --body with this field set).`);if(f[`config-media-screenshare-frame-rate`]===void 0)throw Error(`--config-media-screenshare-frame-rate is required (or pass --body with this field set).`);if(f[`config-media-screenshare-quality`]===void 0&&(f[`config-media-screenshare-quality`]=await d(`config-media-screenshare-quality`,`Quality of screen share `,[`hd`,`vga`,`qvga`,`fhd`,`uhd`])),f[`config-media-video-frame-rate`]===void 0)throw Error(`--config-media-video-frame-rate is required (or pass --body with this field set).`);if(f[`config-media-video-quality`]===void 0&&(f[`config-media-video-quality`]=await d(`config-media-video-quality`,`Video quality of participants`,[`hd`,`vga`,`qvga`,`fhd`,`uhd`])),f[`config-view-type`]===void 0&&(f[`config-view-type`]=await d(`config-view-type`,`Type of the meeting`,[`GROUP_CALL`,`WEBINAR`,`AUDIO_ROOM`,`LIVESTREAM`])),f.name===void 0&&(f.name=await u(`name`,`Name of the preset`)),f[`permissions-accept-waiting-requests`]===void 0)throw Error(`--permissions-accept-waiting-requests is required (or pass --body with this field set).`);if(f[`permissions-can-accept-production-requests`]===void 0)throw Error(`--permissions-can-accept-production-requests is required (or pass --body with this field set).`);if(f[`permissions-can-change-participant-permissions`]===void 0)throw Error(`--permissions-can-change-participant-permissions is required (or pass --body with this field set).`);if(f[`permissions-can-edit-display-name`]===void 0)throw Error(`--permissions-can-edit-display-name is required (or pass --body with this field set).`);if(f[`permissions-can-livestream`]===void 0)throw Error(`--permissions-can-livestream is required (or pass --body with this field set).`);if(f[`permissions-can-record`]===void 0)throw Error(`--permissions-can-record is required (or pass --body with this field set).`);if(f[`permissions-can-spotlight`]===void 0)throw Error(`--permissions-can-spotlight is required (or pass --body with this field set).`);if(f[`permissions-chat-private-can-receive`]===void 0)throw Error(`--permissions-chat-private-can-receive is required (or pass --body with this field set).`);if(f[`permissions-chat-private-can-send`]===void 0)throw Error(`--permissions-chat-private-can-send is required (or pass --body with this field set).`);if(f[`permissions-chat-private-files`]===void 0)throw Error(`--permissions-chat-private-files is required (or pass --body with this field set).`);if(f[`permissions-chat-private-text`]===void 0)throw Error(`--permissions-chat-private-text is required (or pass --body with this field set).`);if(f[`permissions-chat-public-can-send`]===void 0)throw Error(`--permissions-chat-public-can-send is required (or pass --body with this field set).`);if(f[`permissions-chat-public-files`]===void 0)throw Error(`--permissions-chat-public-files is required (or pass --body with this field set).`);if(f[`permissions-chat-public-text`]===void 0)throw Error(`--permissions-chat-public-text is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-alter-connected-meetings`]===void 0)throw Error(`--permissions-connected-meetings-can-alter-connected-meetings is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-switch-connected-meetings`]===void 0)throw Error(`--permissions-connected-meetings-can-switch-connected-meetings is required (or pass --body with this field set).`);if(f[`permissions-connected-meetings-can-switch-to-parent-meeting`]===void 0)throw Error(`--permissions-connected-meetings-can-switch-to-parent-meeting is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-audio`]===void 0)throw Error(`--permissions-disable-participant-audio is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-screensharing`]===void 0)throw Error(`--permissions-disable-participant-screensharing is required (or pass --body with this field set).`);if(f[`permissions-disable-participant-video`]===void 0)throw Error(`--permissions-disable-participant-video is required (or pass --body with this field set).`);if(f[`permissions-hidden-participant`]===void 0)throw Error(`--permissions-hidden-participant is required (or pass --body with this field set).`);if(f[`permissions-kick-participant`]===void 0)throw Error(`--permissions-kick-participant is required (or pass --body with this field set).`);if(f[`permissions-media-audio-can-produce`]===void 0&&(f[`permissions-media-audio-can-produce`]=await d(`permissions-media-audio-can-produce`,`Can produce audio`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-media-screenshare-can-produce`]===void 0&&(f[`permissions-media-screenshare-can-produce`]=await d(`permissions-media-screenshare-can-produce`,`Can produce screen share video`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-media-video-can-produce`]===void 0&&(f[`permissions-media-video-can-produce`]=await d(`permissions-media-video-can-produce`,`Can produce video`,[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`])),f[`permissions-pin-participant`]===void 0)throw Error(`--permissions-pin-participant is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-close`]===void 0)throw Error(`--permissions-plugins-can-close is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-edit-config`]===void 0)throw Error(`--permissions-plugins-can-edit-config is required (or pass --body with this field set).`);if(f[`permissions-plugins-can-start`]===void 0)throw Error(`--permissions-plugins-can-start is required (or pass --body with this field set).`);if(f[`permissions-polls-can-create`]===void 0)throw Error(`--permissions-polls-can-create is required (or pass --body with this field set).`);if(f[`permissions-polls-can-view`]===void 0)throw Error(`--permissions-polls-can-view is required (or pass --body with this field set).`);if(f[`permissions-polls-can-vote`]===void 0)throw Error(`--permissions-polls-can-vote is required (or pass --body with this field set).`);if(f[`permissions-recorder-type`]===void 0&&(f[`permissions-recorder-type`]=await d(`permissions-recorder-type`,`Type of the recording peer`,[`RECORDER`,`LIVESTREAMER`,`NONE`])),f[`permissions-show-participant-list`]===void 0)throw Error(`--permissions-show-participant-list is required (or pass --body with this field set).`);if(f[`permissions-waiting-room-type`]===void 0&&(f[`permissions-waiting-room-type`]=await d(`permissions-waiting-room-type`,`Waiting room type`,[`SKIP`,`ON_PRIVILEGED_USER_ENTRY`,`SKIP_ON_ACCEPT`])),f[`ui-design-tokens-border-radius`]===void 0&&(f[`ui-design-tokens-border-radius`]=await d(`ui-design-tokens-border-radius`,`The ui.design_tokens.border_radius field`,[`sharp`,`rounded`,`extra-rounded`,`circular`])),f[`ui-design-tokens-border-width`]===void 0&&(f[`ui-design-tokens-border-width`]=await d(`ui-design-tokens-border-width`,`The ui.design_tokens.border_width field`,[`none`,`thin`,`fat`])),f[`ui-design-tokens-colors-danger`]===void 0&&(f[`ui-design-tokens-colors-danger`]=await u(`ui-design-tokens-colors-danger`,`The ui.design_tokens.colors.danger field`)),f[`ui-design-tokens-colors-success`]===void 0&&(f[`ui-design-tokens-colors-success`]=await u(`ui-design-tokens-colors-success`,`The ui.design_tokens.colors.success field`)),f[`ui-design-tokens-colors-text`]===void 0&&(f[`ui-design-tokens-colors-text`]=await u(`ui-design-tokens-colors-text`,`The ui.design_tokens.colors.text field`)),f[`ui-design-tokens-colors-text-on-brand`]===void 0&&(f[`ui-design-tokens-colors-text-on-brand`]=await u(`ui-design-tokens-colors-text-on-brand`,`The ui.design_tokens.colors.text_on_brand field`)),f[`ui-design-tokens-colors-video-bg`]===void 0&&(f[`ui-design-tokens-colors-video-bg`]=await u(`ui-design-tokens-colors-video-bg`,`The ui.design_tokens.colors.video_bg field`)),f[`ui-design-tokens-colors-warning`]===void 0&&(f[`ui-design-tokens-colors-warning`]=await u(`ui-design-tokens-colors-warning`,`The ui.design_tokens.colors.warning field`)),f[`ui-design-tokens-spacing-base`]===void 0)throw Error(`--ui-design-tokens-spacing-base is required (or pass --body with this field set).`);f[`ui-design-tokens-theme`]===void 0&&(f[`ui-design-tokens-theme`]=await d(`ui-design-tokens-theme`,`The ui.design_tokens.theme field`,[`darkest`,`dark`,`light`]));let h=c({config:{livestream_viewer_qualities:f[`config-livestream-viewer-qualities`],max_screenshare_count:f[`config-max-screenshare-count`],max_video_streams:{desktop:f[`config-max-video-streams-desktop`],mobile:f[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:f[`config-media-audio-enable-high-bitrate`],enable_stereo:f[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:f[`config-media-screenshare-frame-rate`],quality:l(f[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:f[`config-media-video-frame-rate`],quality:l(f[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:f[`config-media-video-simulcast`]}},view_type:l(f[`config-view-type`],`config-view-type`,`text`)},name:l(f.name,`name`,`text`),permissions:{accept_stage_requests:f[`permissions-accept-stage-requests`],accept_waiting_requests:f[`permissions-accept-waiting-requests`],can_accept_production_requests:f[`permissions-can-accept-production-requests`],can_change_participant_permissions:f[`permissions-can-change-participant-permissions`],can_edit_display_name:f[`permissions-can-edit-display-name`],can_livestream:f[`permissions-can-livestream`],can_record:f[`permissions-can-record`],can_spotlight:f[`permissions-can-spotlight`],chat:{private:{can_receive:f[`permissions-chat-private-can-receive`],can_send:f[`permissions-chat-private-can-send`],files:f[`permissions-chat-private-files`],text:f[`permissions-chat-private-text`]},public:{can_send:f[`permissions-chat-public-can-send`],files:f[`permissions-chat-public-files`],text:f[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:f[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:f[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:f[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:f[`permissions-disable-participant-audio`],disable_participant_screensharing:f[`permissions-disable-participant-screensharing`],disable_participant_video:f[`permissions-disable-participant-video`],hidden_participant:f[`permissions-hidden-participant`],is_recorder:f[`permissions-is-recorder`],kick_participant:f[`permissions-kick-participant`],media:{audio:{can_produce:l(f[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(f[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(f[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:f[`permissions-pin-participant`],plugins:{can_close:f[`permissions-plugins-can-close`],can_edit_config:f[`permissions-plugins-can-edit-config`],can_start:f[`permissions-plugins-can-start`]},polls:{can_create:f[`permissions-polls-can-create`],can_view:f[`permissions-polls-can-view`],can_vote:f[`permissions-polls-can-vote`]},recorder_type:l(f[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:f[`permissions-show-participant-list`],stage_access:l(f[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:f[`permissions-stage-enabled`],transcription_enabled:f[`permissions-transcription-enabled`],waiting_room_type:l(f[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(f[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(f[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(f[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(f[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(f[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(f[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(f[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(f[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(f[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(f[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(f[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:f[`ui-design-tokens-spacing-base`],theme:l(f[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`text`)}}});i(await o(`Updating`,async()=>p.realtimekit.presets.replace({body:h,account_id:m,app_id:f[`app-id`],preset_id:f[`preset-id`]})),{successLabel:`Updated`})}};function Xe(e){return e.positional(`preset-id`,{type:`string`,description:`ID of the preset to fetch`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`config-livestream-viewer-qualities`,{type:`string`,array:!0,description:`Livestream viewer quality levels.`}).option(`config-max-screenshare-count`,{type:`number`,description:`Maximum number of screen shares that can be active at a given time`}).option(`config-max-video-streams-desktop`,{type:`number`,description:`Maximum number of video streams visible on desktop devices`}).option(`config-max-video-streams-mobile`,{type:`number`,description:`Maximum number of streams visible on mobile devices`}).option(`config-media-audio-enable-high-bitrate`,{type:`boolean`,description:`Enable High Quality Audio for your meetings`}).option(`config-media-audio-enable-stereo`,{type:`boolean`,description:`Enable Stereo for your meetings`}).option(`config-media-screenshare-frame-rate`,{type:`number`,description:`Frame rate of screen share`}).option(`config-media-screenshare-quality`,{type:`string`,description:`Quality of screen share `,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-frame-rate`,{type:`number`,description:`Frame rate of participants' video`}).option(`config-media-video-quality`,{type:`string`,description:`Video quality of participants`,choices:[`hd`,`vga`,`qvga`,`fhd`,`uhd`]}).option(`config-media-video-simulcast`,{type:`boolean`,description:`Enable simulcast for participant videos.`}).option(`config-view-type`,{type:`string`,description:`Type of the meeting`,choices:[`GROUP_CALL`,`WEBINAR`,`AUDIO_ROOM`,`LIVESTREAM`]}).option(`name`,{type:`string`,description:`Name of the preset`}).option(`permissions-accept-stage-requests`,{type:`boolean`,description:`The permissions.accept_stage_requests field`}).option(`permissions-accept-waiting-requests`,{type:`boolean`,description:`Whether this participant can accept waiting requests`}).option(`permissions-can-accept-production-requests`,{type:`boolean`,description:`The permissions.can_accept_production_requests field`}).option(`permissions-can-change-participant-permissions`,{type:`boolean`,description:`The permissions.can_change_participant_permissions field`}).option(`permissions-can-edit-display-name`,{type:`boolean`,description:`The permissions.can_edit_display_name field`}).option(`permissions-can-livestream`,{type:`boolean`,description:`The permissions.can_livestream field`}).option(`permissions-can-record`,{type:`boolean`,description:`The permissions.can_record field`}).option(`permissions-can-spotlight`,{type:`boolean`,description:`The permissions.can_spotlight field`}).option(`permissions-chat-private-can-receive`,{type:`boolean`,description:`The permissions.chat.private.can_receive field`}).option(`permissions-chat-private-can-send`,{type:`boolean`,description:`The permissions.chat.private.can_send field`}).option(`permissions-chat-private-files`,{type:`boolean`,description:`The permissions.chat.private.files field`}).option(`permissions-chat-private-text`,{type:`boolean`,description:`The permissions.chat.private.text field`}).option(`permissions-chat-public-can-send`,{type:`boolean`,description:`Can send messages in general`}).option(`permissions-chat-public-files`,{type:`boolean`,description:`Can send file messages`}).option(`permissions-chat-public-text`,{type:`boolean`,description:`Can send text messages`}).option(`permissions-connected-meetings-can-alter-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_alter_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-connected-meetings`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_connected_meetings field`}).option(`permissions-connected-meetings-can-switch-to-parent-meeting`,{type:`boolean`,description:`The permissions.connected_meetings.can_switch_to_parent_meeting field`}).option(`permissions-disable-participant-audio`,{type:`boolean`,description:`The permissions.disable_participant_audio field`}).option(`permissions-disable-participant-screensharing`,{type:`boolean`,description:`The permissions.disable_participant_screensharing field`}).option(`permissions-disable-participant-video`,{type:`boolean`,description:`The permissions.disable_participant_video field`}).option(`permissions-hidden-participant`,{type:`boolean`,description:`Whether this participant is visible to others or not`}).option(`permissions-is-recorder`,{type:`boolean`,description:`The permissions.is_recorder field`}).option(`permissions-kick-participant`,{type:`boolean`,description:`The permissions.kick_participant field`}).option(`permissions-media-audio-can-produce`,{type:`string`,description:`Can produce audio`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-screenshare-can-produce`,{type:`string`,description:`Can produce screen share video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-media-video-can-produce`,{type:`string`,description:`Can produce video`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-pin-participant`,{type:`boolean`,description:`The permissions.pin_participant field`}).option(`permissions-plugins-can-close`,{type:`boolean`,description:`Can close plugins that are already open`}).option(`permissions-plugins-can-edit-config`,{type:`boolean`,description:`Can edit plugin config`}).option(`permissions-plugins-can-start`,{type:`boolean`,description:`Can start plugins`}).option(`permissions-polls-can-create`,{type:`boolean`,description:`Can create polls`}).option(`permissions-polls-can-view`,{type:`boolean`,description:`Can view polls`}).option(`permissions-polls-can-vote`,{type:`boolean`,description:`Can vote on polls`}).option(`permissions-recorder-type`,{type:`string`,description:`Type of the recording peer`,choices:[`RECORDER`,`LIVESTREAMER`,`NONE`]}).option(`permissions-show-participant-list`,{type:`boolean`,description:`The permissions.show_participant_list field`}).option(`permissions-stage-access`,{type:`string`,description:`The permissions.stage_access field`,choices:[`ALLOWED`,`NOT_ALLOWED`,`CAN_REQUEST`]}).option(`permissions-stage-enabled`,{type:`boolean`,description:`The permissions.stage_enabled field`}).option(`permissions-transcription-enabled`,{type:`boolean`,description:`The permissions.transcription_enabled field`}).option(`permissions-waiting-room-type`,{type:`string`,description:`Waiting room type`,choices:[`SKIP`,`ON_PRIVILEGED_USER_ENTRY`,`SKIP_ON_ACCEPT`]}).option(`ui-design-tokens-border-radius`,{type:`string`,description:`The ui.design_tokens.border_radius field`,choices:[`sharp`,`rounded`,`extra-rounded`,`circular`]}).option(`ui-design-tokens-border-width`,{type:`string`,description:`The ui.design_tokens.border_width field`,choices:[`none`,`thin`,`fat`]}).option(`ui-design-tokens-colors-danger`,{type:`string`,description:`The ui.design_tokens.colors.danger field`}).option(`ui-design-tokens-colors-success`,{type:`string`,description:`The ui.design_tokens.colors.success field`}).option(`ui-design-tokens-colors-text`,{type:`string`,description:`The ui.design_tokens.colors.text field`}).option(`ui-design-tokens-colors-text-on-brand`,{type:`string`,description:`The ui.design_tokens.colors.text_on_brand field`}).option(`ui-design-tokens-colors-video-bg`,{type:`string`,description:`The ui.design_tokens.colors.video_bg field`}).option(`ui-design-tokens-colors-warning`,{type:`string`,description:`The ui.design_tokens.colors.warning field`}).option(`ui-design-tokens-font-family`,{type:`string`,description:`The ui.design_tokens.font_family field`}).option(`ui-design-tokens-google-font`,{type:`string`,description:`The ui.design_tokens.google_font field`}).option(`ui-design-tokens-logo`,{type:`string`,description:`The ui.design_tokens.logo field`}).option(`ui-design-tokens-spacing-base`,{type:`number`,description:`The ui.design_tokens.spacing_base field`}).option(`ui-design-tokens-theme`,{type:`string`,description:`The ui.design_tokens.theme field`,choices:[`darkest`,`dark`,`light`]}).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 Ze={command:`update <preset-id>`,describe:`Update a preset by the provided preset ID`,builder:Xe,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit presets update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/presets/${u[`preset-id`]==null?`<preset-id>`:encodeURIComponent(String(u[`preset-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"preset-id":String(u[`preset-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({config:{livestream_viewer_qualities:u[`config-livestream-viewer-qualities`],max_screenshare_count:u[`config-max-screenshare-count`],max_video_streams:{desktop:u[`config-max-video-streams-desktop`],mobile:u[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:u[`config-media-audio-enable-high-bitrate`],enable_stereo:u[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:u[`config-media-screenshare-frame-rate`],quality:l(u[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:u[`config-media-video-frame-rate`],quality:l(u[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:u[`config-media-video-simulcast`]}},view_type:l(u[`config-view-type`],`config-view-type`,`text`)},name:l(u.name,`name`,`text`),permissions:{accept_stage_requests:u[`permissions-accept-stage-requests`],accept_waiting_requests:u[`permissions-accept-waiting-requests`],can_accept_production_requests:u[`permissions-can-accept-production-requests`],can_change_participant_permissions:u[`permissions-can-change-participant-permissions`],can_edit_display_name:u[`permissions-can-edit-display-name`],can_livestream:u[`permissions-can-livestream`],can_record:u[`permissions-can-record`],can_spotlight:u[`permissions-can-spotlight`],chat:{private:{can_receive:u[`permissions-chat-private-can-receive`],can_send:u[`permissions-chat-private-can-send`],files:u[`permissions-chat-private-files`],text:u[`permissions-chat-private-text`]},public:{can_send:u[`permissions-chat-public-can-send`],files:u[`permissions-chat-public-files`],text:u[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:u[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:u[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:u[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:u[`permissions-disable-participant-audio`],disable_participant_screensharing:u[`permissions-disable-participant-screensharing`],disable_participant_video:u[`permissions-disable-participant-video`],hidden_participant:u[`permissions-hidden-participant`],is_recorder:u[`permissions-is-recorder`],kick_participant:u[`permissions-kick-participant`],media:{audio:{can_produce:l(u[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(u[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(u[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:u[`permissions-pin-participant`],plugins:{can_close:u[`permissions-plugins-can-close`],can_edit_config:u[`permissions-plugins-can-edit-config`],can_start:u[`permissions-plugins-can-start`]},polls:{can_create:u[`permissions-polls-can-create`],can_view:u[`permissions-polls-can-view`],can_vote:u[`permissions-polls-can-vote`]},recorder_type:l(u[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:u[`permissions-show-participant-list`],stage_access:l(u[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:u[`permissions-stage-enabled`],transcription_enabled:u[`permissions-transcription-enabled`],waiting_room_type:l(u[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(u[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(u[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(u[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(u[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(u[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(u[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(u[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(u[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(u[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(u[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(u[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:u[`ui-design-tokens-spacing-base`],theme:l(u[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`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.realtimekit.presets.update({...e,account_id:f,app_id:u[`app-id`],preset_id:u[`preset-id`]})),{successLabel:`Updated`});return}let p=c({config:{livestream_viewer_qualities:u[`config-livestream-viewer-qualities`],max_screenshare_count:u[`config-max-screenshare-count`],max_video_streams:{desktop:u[`config-max-video-streams-desktop`],mobile:u[`config-max-video-streams-mobile`]},media:{audio:{enable_high_bitrate:u[`config-media-audio-enable-high-bitrate`],enable_stereo:u[`config-media-audio-enable-stereo`]},screenshare:{frame_rate:u[`config-media-screenshare-frame-rate`],quality:l(u[`config-media-screenshare-quality`],`config-media-screenshare-quality`,`text`)},video:{frame_rate:u[`config-media-video-frame-rate`],quality:l(u[`config-media-video-quality`],`config-media-video-quality`,`text`),simulcast:u[`config-media-video-simulcast`]}},view_type:l(u[`config-view-type`],`config-view-type`,`text`)},name:l(u.name,`name`,`text`),permissions:{accept_stage_requests:u[`permissions-accept-stage-requests`],accept_waiting_requests:u[`permissions-accept-waiting-requests`],can_accept_production_requests:u[`permissions-can-accept-production-requests`],can_change_participant_permissions:u[`permissions-can-change-participant-permissions`],can_edit_display_name:u[`permissions-can-edit-display-name`],can_livestream:u[`permissions-can-livestream`],can_record:u[`permissions-can-record`],can_spotlight:u[`permissions-can-spotlight`],chat:{private:{can_receive:u[`permissions-chat-private-can-receive`],can_send:u[`permissions-chat-private-can-send`],files:u[`permissions-chat-private-files`],text:u[`permissions-chat-private-text`]},public:{can_send:u[`permissions-chat-public-can-send`],files:u[`permissions-chat-public-files`],text:u[`permissions-chat-public-text`]}},connected_meetings:{can_alter_connected_meetings:u[`permissions-connected-meetings-can-alter-connected-meetings`],can_switch_connected_meetings:u[`permissions-connected-meetings-can-switch-connected-meetings`],can_switch_to_parent_meeting:u[`permissions-connected-meetings-can-switch-to-parent-meeting`]},disable_participant_audio:u[`permissions-disable-participant-audio`],disable_participant_screensharing:u[`permissions-disable-participant-screensharing`],disable_participant_video:u[`permissions-disable-participant-video`],hidden_participant:u[`permissions-hidden-participant`],is_recorder:u[`permissions-is-recorder`],kick_participant:u[`permissions-kick-participant`],media:{audio:{can_produce:l(u[`permissions-media-audio-can-produce`],`permissions-media-audio-can-produce`,`text`)},screenshare:{can_produce:l(u[`permissions-media-screenshare-can-produce`],`permissions-media-screenshare-can-produce`,`text`)},video:{can_produce:l(u[`permissions-media-video-can-produce`],`permissions-media-video-can-produce`,`text`)}},pin_participant:u[`permissions-pin-participant`],plugins:{can_close:u[`permissions-plugins-can-close`],can_edit_config:u[`permissions-plugins-can-edit-config`],can_start:u[`permissions-plugins-can-start`]},polls:{can_create:u[`permissions-polls-can-create`],can_view:u[`permissions-polls-can-view`],can_vote:u[`permissions-polls-can-vote`]},recorder_type:l(u[`permissions-recorder-type`],`permissions-recorder-type`,`text`),show_participant_list:u[`permissions-show-participant-list`],stage_access:l(u[`permissions-stage-access`],`permissions-stage-access`,`text`),stage_enabled:u[`permissions-stage-enabled`],transcription_enabled:u[`permissions-transcription-enabled`],waiting_room_type:l(u[`permissions-waiting-room-type`],`permissions-waiting-room-type`,`text`)},ui:{design_tokens:{border_radius:l(u[`ui-design-tokens-border-radius`],`ui-design-tokens-border-radius`,`text`),border_width:l(u[`ui-design-tokens-border-width`],`ui-design-tokens-border-width`,`text`),colors:{danger:l(u[`ui-design-tokens-colors-danger`],`ui-design-tokens-colors-danger`,`text`),success:l(u[`ui-design-tokens-colors-success`],`ui-design-tokens-colors-success`,`text`),text:l(u[`ui-design-tokens-colors-text`],`ui-design-tokens-colors-text`,`text`),text_on_brand:l(u[`ui-design-tokens-colors-text-on-brand`],`ui-design-tokens-colors-text-on-brand`,`text`),video_bg:l(u[`ui-design-tokens-colors-video-bg`],`ui-design-tokens-colors-video-bg`,`text`),warning:l(u[`ui-design-tokens-colors-warning`],`ui-design-tokens-colors-warning`,`text`)},font_family:l(u[`ui-design-tokens-font-family`],`ui-design-tokens-font-family`,`text`),google_font:l(u[`ui-design-tokens-google-font`],`ui-design-tokens-google-font`,`text`),logo:l(u[`ui-design-tokens-logo`],`ui-design-tokens-logo`,`text`),spacing_base:u[`ui-design-tokens-spacing-base`],theme:l(u[`ui-design-tokens-theme`],`ui-design-tokens-theme`,`text`)}}});i(await o(`Updating`,async()=>d.realtimekit.presets.update({...p,account_id:f,app_id:u[`app-id`],preset_id:u[`preset-id`]})),{successLabel:`Updated`})}},Qe={command:`presets`,describe:`Reusable meeting configuration for media, permissions, and interface behavior`,builder:e=>e.command(Ve).command(Ue).command(Ge).command(qe).command(Ye).command(Ze).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function $e(e){return e.positional(`meeting-id`,{type:`string`,description:`ID of the meeting`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const et={command:`get <meeting-id>`,describe:`Returns the active recording details for the given meeting ID.`,builder:$e,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit recordings active get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/recordings/active-recording/${s[`meeting-id`]==null?`<meeting-id>`:encodeURIComponent(String(s[`meeting-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"meeting-id":String(s[`meeting-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.recordings.active.get({account_id:l,app_id:s[`app-id`],meeting_id:s[`meeting-id`]})),{successLabel:`Loaded`})}},tt={command:`active`,describe:`Active recordings for RealtimeKit meetings`,builder:e=>e.command(et).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function nt(e){return e.positional(`recording-id`,{type:`string`,description:`ID of the recording`,demandOption:!0}).option(`app-id`,{type:`string`,description:`A Cloudflare-generated unique identifier for an item.`,demandOption:!0}).option(`action`,{type:`string`,description:`The action field`,choices:[`stop`,`pause`,`resume`]}).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 rt={command:`control <recording-id>`,describe:`Pause/Resume/Stop a given recording ID.`,builder:nt,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit recordings control`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/recordings/${u[`recording-id`]==null?`<recording-id>`:encodeURIComponent(String(u[`recording-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"recording-id":String(u[`recording-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({action:l(u.action,`action`,`text`)}):s(u.body)});return}let f=await r(u),p=u.local?e:await t();if(u.accountId=p,u.body){let e=s(u.body);i(await o(`Updating`,async()=>f.realtimekit.recordings.control({...e,account_id:p,app_id:u[`app-id`],recording_id:u[`recording-id`]})),{successLabel:`Updated`});return}u.action===void 0&&(u.action=await d(`action`,`The action field`,[`stop`,`pause`,`resume`]));let m=c({action:l(u.action,`action`,`text`)});i(await o(`Updating`,async()=>f.realtimekit.recordings.control({...m,account_id:p,app_id:u[`app-id`],recording_id:u[`recording-id`]})),{successLabel:`Updated`})}};function it(e){return e.positional(`recording-id`,{type:`string`,description:`ID of the recording`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const at={command:`get <recording-id>`,describe:`Returns details of a recording for the given recording ID.`,builder:it,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit recordings get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/recordings/${s[`recording-id`]==null?`<recording-id>`:encodeURIComponent(String(s[`recording-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"recording-id":String(s[`recording-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.recordings.get({account_id:l,app_id:s[`app-id`],recording_id:s[`recording-id`]})),{successLabel:`Loaded`})}};function ot(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of a meeting. Optional. Will limit results to only this meeting if passed.`}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`expired`,{type:`boolean`,description:`If passed, only shows expired/non-expired recordings on RealtimeKit's bucket`}).option(`search`,{type:`string`,description:`The search query string. You can search using the meeting ID or title.`}).option(`sort-by`,{type:`string`,description:`Sort by`,choices:[`invokedTime`]}).option(`sort-order`,{type:`string`,description:`Sort order`,choices:[`ASC`,`DESC`]}).option(`start-time`,{type:`string`,description:`The start time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`end-time`,{type:`string`,description:`The end time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`status`,{type:`string`,description:`Filter by one or more recording status`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const st={command:`list`,describe:"Returns all recordings for an App. If the `meeting_id` parameter is passed, returns all recordings for the given meeting ID.",builder:p(ot),handler:async s=>{let c={meeting_id:s[`meeting-id`],page_no:s[`page-no`],per_page:s[`per-page`],expired:s.expired,search:s.search,sort_by:s[`sort-by`],sort_order:s[`sort-order`],start_time:s[`start-time`],end_time:s[`end-time`],status:s.status};if(s.dryRun){a({command:`cf realtimekit recordings list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/recordings`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.recordings.list({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}};function ct(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`allow-multiple-recordings`,{type:`boolean`,description:"By default, a meeting allows only one recording to run at a time. Enabling the `allow_multiple_recordings` parameter to true allows you to initiate multiple recordings concurrently in the same meeting. This allows you to record separate videos of the same meeting with different configurations, such as portrait mode or landscape mode.",default:!1}).option(`audio-config-channel`,{type:`string`,description:`Audio signal pathway within an audio file that carries a specific sound source.`,choices:[`mono`,`stereo`],default:`stereo`}).option(`audio-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.`,choices:[`MP3`,`AAC`],default:`AAC`}).option(`audio-config-export-file`,{type:`boolean`,description:`Controls whether to export audio file seperately`,default:!0}).option(`file-name-prefix`,{type:`string`,description:`Update the recording file name.`}).option(`interactive-config-type`,{type:`string`,description:`The metadata is presented in the form of ID3 tags.`,choices:[`ID3`]}).option(`max-seconds`,{type:`number`,description:`Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.`}).option(`meeting-id`,{type:`string`,description:`ID of the meeting to record.`}).option(`realtimekit-bucket-config-enabled`,{type:`boolean`,description:"Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won't be generated for a recording."}).option(`rtmp-out-config-rtmp-url`,{type:`string`,description:`RTMP URL to stream to`}).option(`url`,{type:`string`,description:`Pass a custom url to record arbitary screen`}).option(`video-config-codec`,{type:`string`,description:`Codec using which the recording will be encoded.`,choices:[`H264`,`VP8`,`VP9`],default:`H264`}).option(`video-config-export-file`,{type:`boolean`,description:`Controls whether to export video file seperately`,default:!0}).option(`video-config-height`,{type:`number`,description:`Height of the recording video in pixels`,default:720}).option(`video-config-watermark-position`,{type:`string`,description:`Position of the watermark`,choices:[`left top`,`right top`,`left bottom`,`right bottom`],default:`left top`}).option(`video-config-watermark-size-height`,{type:`number`,description:`Height of the watermark in px`}).option(`video-config-watermark-size-width`,{type:`number`,description:`Width of the watermark in px`}).option(`video-config-watermark-url`,{type:`string`,description:`URL of the watermark image`}).option(`video-config-width`,{type:`number`,description:`Width of the recording video in pixels`,default:1280}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body (bypasses individual flags)`}).check(e=>{if([`realtimekit-bucket-config-enabled`].some(t=>e[t]!==void 0)){let t=[`realtimekit-bucket-config-enabled`].filter(t=>e[t]===void 0);if(t.length>0)throw Error(`${t.map(e=>`--`+e).join(`, `)} ${t.length===1?`is`:`are`} required when any --realtimekit_bucket_config-* flag is set`)}return!0})}const lt={command:`start <app-id>`,describe:`Starts recording a meeting. The meeting can be started by an App admin directly, or a participant with permissions to start a recording, based on the type of authorization used.`,builder:ct,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit recordings start`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/recordings`,pathParams:{"app-id":String(d[`app-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({allow_multiple_recordings:d[`allow-multiple-recordings`],audio_config:{channel:l(d[`audio-config-channel`],`audio-config-channel`,`text`),codec:l(d[`audio-config-codec`],`audio-config-codec`,`text`),export_file:d[`audio-config-export-file`]},file_name_prefix:l(d[`file-name-prefix`],`file-name-prefix`,`text`),interactive_config:{type:l(d[`interactive-config-type`],`interactive-config-type`,`text`)},max_seconds:d[`max-seconds`],meeting_id:l(d[`meeting-id`],`meeting-id`,`text`),realtimekit_bucket_config:{enabled:d[`realtimekit-bucket-config-enabled`]},rtmp_out_config:{rtmp_url:l(d[`rtmp-out-config-rtmp-url`],`rtmp-out-config-rtmp-url`,`text`)},url:l(d.url,`url`,`text`),video_config:{codec:l(d[`video-config-codec`],`video-config-codec`,`text`),export_file:d[`video-config-export-file`],height:d[`video-config-height`],watermark:{position:l(d[`video-config-watermark-position`],`video-config-watermark-position`,`text`),size:{height:d[`video-config-watermark-size-height`],width:d[`video-config-watermark-size-width`]},url:l(d[`video-config-watermark-url`],`video-config-watermark-url`,`text`)},width:d[`video-config-width`]}}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.recordings.start({...e,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`});return}d[`meeting-id`]===void 0&&(d[`meeting-id`]=await u(`meeting-id`,`ID of the meeting to record.`));let m=c({allow_multiple_recordings:d[`allow-multiple-recordings`],audio_config:{channel:l(d[`audio-config-channel`],`audio-config-channel`,`text`),codec:l(d[`audio-config-codec`],`audio-config-codec`,`text`),export_file:d[`audio-config-export-file`]},file_name_prefix:l(d[`file-name-prefix`],`file-name-prefix`,`text`),interactive_config:{type:l(d[`interactive-config-type`],`interactive-config-type`,`text`)},max_seconds:d[`max-seconds`],meeting_id:l(d[`meeting-id`],`meeting-id`,`text`),realtimekit_bucket_config:{enabled:d[`realtimekit-bucket-config-enabled`]},rtmp_out_config:{rtmp_url:l(d[`rtmp-out-config-rtmp-url`],`rtmp-out-config-rtmp-url`,`text`)},url:l(d.url,`url`,`text`),video_config:{codec:l(d[`video-config-codec`],`video-config-codec`,`text`),export_file:d[`video-config-export-file`],height:d[`video-config-height`],watermark:{position:l(d[`video-config-watermark-position`],`video-config-watermark-position`,`text`),size:{height:d[`video-config-watermark-size-height`],width:d[`video-config-watermark-size-width`]},url:l(d[`video-config-watermark-url`],`video-config-watermark-url`,`text`)},width:d[`video-config-width`]}});i(await o(`Creating`,async()=>f.realtimekit.recordings.start({...m,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`})}};function ut(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`meeting-id`,{type:`string`,description:`ID of the meeting to record.`}).option(`user-ids`,{type:`string`,array:!0,description:"Optional list of participant user IDs to record. Selective track recording (`user_ids`) is in early beta contact support to use this feature."}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:"Starts audio track recording for an active meeting. Use `layers` only when you need to set a file name prefix. Selective track recording (`user_ids`) is in early beta contact support to use this feature."})}const dt={command:`start <app-id>`,describe:`Starts track recording for a meeting. Track recording currently records separate participant audio tracks as WebM files in the RealtimeKit bucket. Video track recording is in development. For more information, refer to [Track recording](/realtime/realtimekit/recording-guide/track-recording/).`,builder:ut,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit recordings tracks start`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/recordings/track`,pathParams:{"app-id":String(d[`app-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({meeting_id:l(d[`meeting-id`],`meeting-id`,`text`),user_ids:d[`user-ids`]}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.recordings.tracks.start({...e,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`});return}d[`meeting-id`]===void 0&&(d[`meeting-id`]=await u(`meeting-id`,`ID of the meeting to record.`));let m=c({meeting_id:l(d[`meeting-id`],`meeting-id`,`text`),user_ids:d[`user-ids`]});i(await o(`Creating`,async()=>f.realtimekit.recordings.tracks.start({...m,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`})}},ft={command:`tracks`,describe:`Participant-track recordings for RealtimeKit meetings`,builder:e=>e.command(dt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},pt={command:`recordings`,describe:`Meeting and participant-track recordings and recording controls`,builder:e=>e.command(rt).command(at).command(st).command(lt).command(tt).command(ft).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function mt(e){return e.positional(`session-id`,{type:`string`,description:`ID of the session`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ht={command:`export <session-id>`,describe:`Returns a URL to download all chat messages of the session ID in CSV format.`,builder:mt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit sessions chat export`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/chat`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.sessions.chat.export({account_id:l,app_id:s[`app-id`],session_id:s[`session-id`]})),{successLabel:`Loaded`})}},gt={command:`chat`,describe:`Chat messages from historical RealtimeKit sessions`,builder:e=>e.command(ht).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function _t(e){return e.positional(`session-id`,{type:`string`,description:`ID of the session`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`include-breakout-rooms`,{type:`boolean`,description:`List all breakout rooms`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const vt={command:`get <session-id>`,describe:`Returns data of the given session ID including recording details.`,builder:_t,handler:async s=>{let c={include_breakout_rooms:s[`include-breakout-rooms`]};if(s.dryRun){a({command:`cf realtimekit sessions get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.get({account_id:u,app_id:s[`app-id`],session_id:s[`session-id`],...c})),{successLabel:`Loaded`})}};function yt(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`sort-by`,{type:`string`,description:`Sort by`,choices:[`minutesConsumed`,`createdAt`]}).option(`sort-order`,{type:`string`,description:`Sort order`,choices:[`ASC`,`DESC`]}).option(`start-time`,{type:`string`,description:`The start time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`end-time`,{type:`string`,description:`The end time range for which you want to retrieve the meetings. The time must be specified in ISO format.`}).option(`participants`,{type:`string`,description:`Participants`}).option(`status`,{type:`string`,description:`Status`,choices:[`LIVE`,`ENDED`]}).option(`search`,{type:`string`,description:`Search string that matches sessions based on meeting title, meeting ID, and session ID`}).option(`associated-id`,{type:`string`,description:`ID of the meeting that sessions should be associated with`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const bt={command:`list`,describe:`Returns details of all sessions of an App.`,builder:p(yt),handler:async s=>{let c={page_no:s[`page-no`],per_page:s[`per-page`],sort_by:s[`sort-by`],sort_order:s[`sort-order`],start_time:s[`start-time`],end_time:s[`end-time`],participants:s.participants,status:s.status,search:s.search,associated_id:s[`associated-id`]};if(s.dryRun){a({command:`cf realtimekit sessions list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions`,pathParams:{"app-id":String(s[`app-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.list({account_id:u,app_id:s[`app-id`],...c})),{successLabel:`Loaded`})}};function xt(e){return e.positional(`session-id`,{type:`string`,description:`Session ID`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`per-page`,{type:`number`,description:`Number of results per page.`}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const St={command:`get <session-id>`,describe:"Returns livestream session details for the given session ID. Retreive the session ID using the `Fetch all sessions of an App` API.",builder:xt,handler:async s=>{let c={per_page:s[`per-page`],page_no:s[`page-no`]};if(s.dryRun){a({command:`cf realtimekit sessions livestreams get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/livestream-sessions`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.livestreams.get({account_id:u,app_id:s[`app-id`],session_id:s[`session-id`],...c})),{successLabel:`Loaded`})}},Ct={command:`livestreams`,describe:`Livestreams associated with historical RealtimeKit sessions`,builder:e=>e.command(St).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function wt(e){return e.positional(`participant-id`,{type:`string`,description:`ID of the participant`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`ID of the session`,demandOption:!0}).option(`include-peer-events`,{type:`boolean`,description:`if true, response includes all the peer events of participant.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Tt={command:`get <participant-id>`,describe:`Returns details of the given participant ID along with call statistics for the given session ID.`,builder:wt,handler:async s=>{let c={include_peer_events:s[`include-peer-events`]};if(s.dryRun){a({command:`cf realtimekit sessions participants get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/participants/${s[`participant-id`]==null?`<participant-id>`:encodeURIComponent(String(s[`participant-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"participant-id":String(s[`participant-id`]??``),"session-id":String(s[`session-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.participants.get({account_id:u,app_id:s[`app-id`],session_id:s[`session-id`],participant_id:s[`participant-id`],...c})),{successLabel:`Loaded`})}};function Et(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`session-id`,{type:`string`,description:`ID of the session`,demandOption:!0}).option(`search`,{type:`string`,description:`The search query string. You can search using participant ID, custom participant ID, or display name.`}).option(`page-no`,{type:`number`,description:`The page number from which you want your page search results to be displayed.`}).option(`per-page`,{type:`number`,description:`Number of results per page`}).option(`sort-order`,{type:`string`,description:`Sort order`,choices:[`ASC`,`DESC`]}).option(`sort-by`,{type:`string`,description:`Sort by`,choices:[`joinedAt`,`duration`]}).option(`include-peer-events`,{type:`boolean`,description:`if true, response includes all the peer events of participants.`}).option(`view`,{type:`string`,description:"In breakout room sessions, the view parameter can be set to `raw` for session specific duration for participants or `consolidated` to accumulate breakout room durations.",choices:[`raw`,`consolidated`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Dt={command:`list`,describe:`Returns a list of participants for the given session ID.`,builder:p(Et),handler:async s=>{let c={search:s.search,page_no:s[`page-no`],per_page:s[`per-page`],sort_order:s[`sort-order`],sort_by:s[`sort-by`],include_peer_events:s[`include-peer-events`],view:s.view};if(s.dryRun){a({command:`cf realtimekit sessions participants list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/participants`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.participants.list({account_id:u,app_id:s[`app-id`],session_id:s[`session-id`],...c})),{successLabel:`Loaded`})}},Ot={command:`participants`,describe:`Participants in historical RealtimeKit sessions`,builder:e=>e.command(Tt).command(Dt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function kt(e){return e.positional(`peer-id`,{type:`string`,description:`ID of the peer`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`filters`,{type:`string`,description:`Filter to apply to the peer report.`,choices:[`device_info`,`ip_information`,`precall_network_information`,`events`,`quality_stats`]}).option(`include-peer-events`,{type:`boolean`,description:`if true, response includes all the peer events of participant.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const At={command:`get <peer-id>`,describe:`Returns participant details for the given peer ID along with call statistics.`,builder:p(kt),handler:async s=>{let c={filters:s.filters,include_peer_events:s[`include-peer-events`]};if(s.dryRun){a({command:`cf realtimekit sessions peers get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/peer-report/${s[`peer-id`]==null?`<peer-id>`:encodeURIComponent(String(s[`peer-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"peer-id":String(s[`peer-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.peers.get({account_id:u,app_id:s[`app-id`],peer_id:s[`peer-id`],...c})),{successLabel:`Loaded`})}},jt={command:`peers`,describe:`Peer details from historical RealtimeKit sessions`,builder:e=>e.command(At).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Mt(e){return e.positional(`session-id`,{type:`string`,description:`Session ID`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Nt={command:`export <session-id>`,describe:`Returns a Summary URL to download the Summary of Transcripts for the session ID as plain text.`,builder:Mt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit sessions summaries export`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/summary`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.sessions.summaries.export({account_id:l,app_id:s[`app-id`],session_id:s[`session-id`]})),{successLabel:`Loaded`})}};function Pt(e){return e.positional(`session-id`,{type:`string`,description:`Session ID`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Ft={command:`generate <session-id>`,describe:`Trigger Summary generation of Transcripts for the session ID.`,builder:Pt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit sessions summaries generate`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/summary`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Creating`,async()=>c.realtimekit.sessions.summaries.generate({account_id:l,app_id:s[`app-id`],session_id:s[`session-id`]})),{successLabel:`Created`})}},It={command:`summaries`,describe:`Summaries of historical RealtimeKit sessions`,builder:e=>e.command(Nt).command(Ft).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function Lt(e){return e.positional(`session-id`,{type:`string`,description:`ID of the session`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`format`,{type:`string`,description:`Transcript file format to fetch.`,choices:[`SRT`,`VTT`,`JSON`,`CSV`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Rt={command:`export <session-id>`,describe:`Returns a URL to download the transcript for the session ID in CSV format.`,builder:p(Lt),handler:async s=>{let c={format:s.format};if(s.dryRun){a({command:`cf realtimekit sessions transcripts export`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/sessions/${s[`session-id`]==null?`<session-id>`:encodeURIComponent(String(s[`session-id`]))}/transcript`,pathParams:{"app-id":String(s[`app-id`]??``),"session-id":String(s[`session-id`]??``)},query:c,bodyKind:`none`});return}let l=await r(s),u=s.local?e:await t();s.accountId=u,i(await o(`Loading`,async()=>l.realtimekit.sessions.transcripts.export({account_id:u,app_id:s[`app-id`],session_id:s[`session-id`],...c})),{successLabel:`Loaded`})}},zt={command:`transcripts`,describe:`Transcripts from historical RealtimeKit sessions`,builder:e=>e.command(Rt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},Bt={command:`sessions`,describe:`Historical session data, participants, chat, transcripts, and summaries`,builder:e=>e.command(vt).command(bt).command(gt).command(Ct).command(Ot).command(jt).command(It).command(zt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function $(e){return e.positional(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`enabled`,{type:`boolean`,description:`Set whether or not the webhook should be active when created`,default:!0}).option(`events`,{type:`string`,array:!0,description:`Events that this webhook will get triggered by`}).option(`name`,{type:`string`,description:`Name of the webhook`}).option(`url`,{type:`string`,description:`URL this webhook will send events to`}).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 Vt={command:`create <app-id>`,describe:`Adds a new webhook to an App.`,builder:$,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit webhooks create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/webhooks`,pathParams:{"app-id":String(d[`app-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({enabled:d.enabled,events:d.events,name:l(d.name,`name`,`text`),url:l(d.url,`url`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Creating`,async()=>f.realtimekit.webhooks.create({body:e,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`});return}if(d.events===void 0)throw Error(`--events is required (or pass --body with this field set).`);d.name===void 0&&(d.name=await u(`name`,`Name of the webhook`)),d.url===void 0&&(d.url=await u(`url`,`URL this webhook will send events to`));let m=c({enabled:d.enabled,events:d.events,name:l(d.name,`name`,`text`),url:l(d.url,`url`,`text`)});i(await o(`Creating`,async()=>f.realtimekit.webhooks.create({body:m,account_id:p,app_id:d[`app-id`]})),{successLabel:`Created`})}};function Ht(e){return e.positional(`webhook-id`,{type:`string`,description:`ID of the webhook`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,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 Ut={command:`delete <webhook-id>`,describe:`Removes a webhook for the given webhook ID.`,builder:Ht,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit webhooks delete`,method:`DELETE`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/webhooks/${s[`webhook-id`]==null?`<webhook-id>`:encodeURIComponent(String(s[`webhook-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"webhook-id":String(s[`webhook-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();if(s.accountId=l,!await f({force:!!s.force,message:`This operation deletes the webhook. Event delivery to it will stop.`})){process.stderr.write(`Aborted.
7
- `);return}i(await o(`Deleting`,async()=>c.realtimekit.webhooks.delete({account_id:l,app_id:s[`app-id`],webhook_id:s[`webhook-id`]})),{successLabel:`Deleted`})}};function Wt(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Gt={command:`list`,describe:`Returns the list of webhook event names supported by RealtimeKit.`,builder:Wt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit webhooks events list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/webhooks/all`,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.realtimekit.webhooks.events.list({account_id:l,app_id:s[`app-id`]})),{successLabel:`Loaded`})}},Kt={command:`events`,describe:`Supported events for RealtimeKit webhooks`,builder:e=>e.command(Gt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function qt(e){return e.positional(`webhook-id`,{type:`string`,description:`ID of the webhook`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Jt={command:`get <webhook-id>`,describe:`Returns webhook details for the given webhook ID.`,builder:qt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit webhooks get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/webhooks/${s[`webhook-id`]==null?`<webhook-id>`:encodeURIComponent(String(s[`webhook-id`]))}`,pathParams:{"app-id":String(s[`app-id`]??``),"webhook-id":String(s[`webhook-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.realtimekit.webhooks.get({account_id:l,app_id:s[`app-id`],webhook_id:s[`webhook-id`]})),{successLabel:`Loaded`})}};function Yt(e){return e.option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Xt={command:`list`,describe:`Returns details of all webhooks for an App.`,builder:Yt,handler:async s=>{if(s.dryRun){a({command:`cf realtimekit webhooks list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${s[`app-id`]==null?`<app-id>`:encodeURIComponent(String(s[`app-id`]))}/webhooks`,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.realtimekit.webhooks.list({account_id:l,app_id:s[`app-id`]})),{successLabel:`Loaded`})}};function Zt(e){return e.positional(`webhook-id`,{type:`string`,description:`ID of the webhook`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`enabled`,{type:`boolean`,description:`Set whether or not the webhook should be active when created`}).option(`events`,{type:`string`,array:!0,description:`Events that this webhook will get triggered by`}).option(`name`,{type:`string`,description:`Name of the webhook`}).option(`url`,{type:`string`,description:`URL this webhook will send events to`}).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 Qt={command:`replace <webhook-id>`,describe:`Replace all details for the given webhook ID.`,builder:Zt,handler:async d=>{if(d.dryRun){a({command:`cf realtimekit webhooks replace`,method:`PUT`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${d[`app-id`]==null?`<app-id>`:encodeURIComponent(String(d[`app-id`]))}/webhooks/${d[`webhook-id`]==null?`<webhook-id>`:encodeURIComponent(String(d[`webhook-id`]))}`,pathParams:{"app-id":String(d[`app-id`]??``),"webhook-id":String(d[`webhook-id`]??``)},bodyKind:`json`,body:d.body===void 0?c({enabled:d.enabled,events:d.events,name:l(d.name,`name`,`text`),url:l(d.url,`url`,`text`)}):s(d.body)});return}let f=await r(d),p=d.local?e:await t();if(d.accountId=p,d.body){let e=s(d.body);i(await o(`Updating`,async()=>f.realtimekit.webhooks.replace({body:e,account_id:p,app_id:d[`app-id`],webhook_id:d[`webhook-id`]})),{successLabel:`Updated`});return}if(d.events===void 0)throw Error(`--events is required (or pass --body with this field set).`);d.name===void 0&&(d.name=await u(`name`,`Name of the webhook`)),d.url===void 0&&(d.url=await u(`url`,`URL this webhook will send events to`));let m=c({enabled:d.enabled,events:d.events,name:l(d.name,`name`,`text`),url:l(d.url,`url`,`text`)});i(await o(`Updating`,async()=>f.realtimekit.webhooks.replace({body:m,account_id:p,app_id:d[`app-id`],webhook_id:d[`webhook-id`]})),{successLabel:`Updated`})}};function $t(e){return e.positional(`webhook-id`,{type:`string`,description:`ID of the webhook`,demandOption:!0}).option(`app-id`,{type:`string`,description:`The app identifier tag.`,demandOption:!0}).option(`enabled`,{type:`boolean`,description:`The enabled field`}).option(`events`,{type:`string`,array:!0,description:`Events that the webhook will get triggered by`}).option(`name`,{type:`string`,description:`Name of the webhook`}).option(`url`,{type:`string`,description:`URL the webhook will send events to`}).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 en={command:`update <webhook-id>`,describe:`Edits the webhook details for the given webhook ID.`,builder:$t,handler:async u=>{if(u.dryRun){a({command:`cf realtimekit webhooks update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/realtime/kit/${u[`app-id`]==null?`<app-id>`:encodeURIComponent(String(u[`app-id`]))}/webhooks/${u[`webhook-id`]==null?`<webhook-id>`:encodeURIComponent(String(u[`webhook-id`]))}`,pathParams:{"app-id":String(u[`app-id`]??``),"webhook-id":String(u[`webhook-id`]??``)},bodyKind:`json`,body:u.body===void 0?c({enabled:u.enabled,events:u.events,name:l(u.name,`name`,`text`),url:l(u.url,`url`,`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.realtimekit.webhooks.update({...e,account_id:f,app_id:u[`app-id`],webhook_id:u[`webhook-id`]})),{successLabel:`Updated`});return}let p=c({enabled:u.enabled,events:u.events,name:l(u.name,`name`,`text`),url:l(u.url,`url`,`text`)});i(await o(`Updating`,async()=>d.realtimekit.webhooks.update({...p,account_id:f,app_id:u[`app-id`],webhook_id:u[`webhook-id`]})),{successLabel:`Updated`})}},tn={command:`webhooks`,describe:`Webhook endpoints and supported events for RealtimeKit notifications`,builder:e=>e.command(Vt).command(Ut).command(Jt).command(Xt).command(Qt).command(en).command(Kt).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},nn={command:`realtimekit`,describe:`SDK-backed meetings, participants, recordings, livestreams, and webhooks`,builder:e=>e.command(x).command(O).command(W).command(ze).command(Qe).command(pt).command(Bt).command(tn).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{nn as default};
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a as e}from"./theme-BePJemMn.mjs";import{n as t,t as n}from"./local-DTyuGwTw.mjs";import{f as r,g as i}from"./oauth-BPizUUqP.mjs";import{a,o,r as s}from"./auth-DuLchM18.mjs";import{t as c}from"./output-DgW1hQGX.mjs";import{n as l,t as u}from"./progress-B84wYh91.mjs";import{n as d,r as f,t as p}from"./body-parser-CYD7PKFC.mjs";import{n as m}from"./input-validation-BBKJRoRB.mjs";import{a as h,i as g,n as _,r as v}from"./prompt-CDtLWxNv.mjs";import{t as y}from"./cli-types-BWdZbsFE.mjs";import{a as b,c as x,d as S,i as C,l as w,r as T,s as E,t as D,u as O}from"./schema-flags-DHryz6SF.mjs";function k(e){return e.positional(`extension`,{type:`string`,description:"The extension name (e.g., `com`, `co.uk`).",demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const A={command:`get <extension>`,describe:"Returns metadata and JSON Schema documents describing the expected input structure for registration operations on a specific extension (TLD). Supports HTTP conditional GET via `ETag`. Include the `ETag` value from a previous response in an `If-None-Match` header to receive a `304 Not Modified` when the data has not changed.",builder:k,handler:async e=>{if(e.dryRun){l({command:`cf registrar extensions get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/extensions/${e.extension==null?`<extension>`:encodeURIComponent(String(e.extension))}`,pathParams:{extension:String(e.extension??``)},bodyKind:`none`});return}let t=await s(e),a=e.local?n:await r();e.accountId=a,c(await u(`Loading`,async()=>t.registrar.extensions.get({account_id:a,extension:e.extension})),{successLabel:`Loaded`})}};function j(e){return e.option(`name`,{type:`string`,description:"Filter extensions by exact name match.\nFor example, `name=com` returns only the `com` extension."}).option(`cursor`,{type:`string`,description:`Opaque token from a previous response's \`result_info.cursor\`.
3
- Pass this value to fetch the next page of results. Omit (or
4
- pass an empty string) for the first page.`}).option(`per-page`,{type:`number`,description:`Number of items to return per page.`}).option(`direction`,{type:`string`,description:`Sort direction for results. Defaults to ascending order.`,choices:[`asc`,`desc`]}).option(`sort-by`,{type:`string`,description:"Column to sort results by. Defaults to `name` when omitted.",choices:[`name`,`created_at`,`updated_at`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const M={command:`list`,describe:"Returns metadata and JSON Schema documents describing the expected input structure for registration operations on each supported extension (TLD). This endpoint uses cursor-based pagination. Results are ordered by extension name by default. To fetch the next page, pass the `cursor` value from the `result_info` object in the response as the `cursor` query parameter in your next request. An empty `cursor` string indicates there are no more pages. Supports HTTP conditional GET via `ETag`. Include the `ETag` value from a previous response in an `If-None-Match` header to receive a `304 Not Modified` when the data has not changed.",builder:y(j),handler:async e=>{let t={name:e.name,cursor:e.cursor,per_page:e[`per-page`],direction:e.direction,sort_by:e[`sort-by`]};if(e.dryRun){l({command:`cf registrar extensions list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/extensions`,pathParams:{},query:t,bodyKind:`none`});return}let a=await s(e),o=e.local?n:await r();e.accountId=o,c(await u(`Loading`,async()=>a.registrar.extensions.list({account_id:o,...t})),{successLabel:`Loaded`})}},N={command:`extensions`,describe:`Operations for extensions`,builder:e=>e.command(A).command(M).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},P=`registrar-extension-schema`;function F(e){let t=e.trim().toLowerCase().replace(/\.$/,``).split(`.`);return t.slice(1).map((e,n)=>t.slice(n+1).join(`.`))}async function I(e,t,n,r){let i;try{i=r===void 0?await n.registrar.extensions.get({account_id:t,extension:e}):await n.registrar.extensions.get({account_id:t,extension:e},{timeoutInSeconds:r/1e3,maxRetries:0})}catch(e){return{ok:!1,reason:x(e)}}let a=w(i,`registration_schema`);return a?{ok:!0,extension:e,schema:a}:{ok:!1,reason:`the API returned no registration schema for .${e}`}}async function L(e,t,n,r,i){let a=t?[t]:F(e);if(a.length===0)return{ok:!1,reason:`'${e}' has no extension — pass a fully qualified domain name`};let o,s=`not found`;for(let e of a){let t=O(P,[n,e]);if(t)return{ok:!0,extension:e,schema:t};if(!o)try{o=await r()}catch(e){return{ok:!1,reason:x(e)}}let a;if(i!==void 0&&(a=i-Date.now(),a<=0))return{ok:!1,reason:`the request timed out`};let c=await I(e,n,o,a);if(c.ok)return S(P,[n,e],c.schema),c;if(s=c.reason,!/not found/i.test(c.reason))return c}return{ok:!1,reason:a.length>1?`no registration schema for ${a.map(e=>`.${e}`).join(` or `)} (${s})`:s}}const R=[`domain_name`],z=[`domain-name`,`domainName`,`extension`,`force`,`f`,`prefer`];let B;function V(e){let t=m(e,`domain-name`,`text`);if(t!==void 0&&typeof t!=`string`)throw Error(`--domain-name must be a string`);return t}function H(e){return B=e,e.positional(`domain-name`,{type:`string`,description:`Fully qualified domain name, e.g. example.travel`}).option(`extension`,{type:`string`,description:`Extension whose registration schema to use (default: derived from the domain)`}).option(`prefer`,{type:`string`,description:"Set the Prefer header, e.g. `respond-async` to skip the synchronous wait"}).option(`force`,{type:`boolean`,alias:`f`,description:`Skip the registration confirmation prompt`,default:!1}).option(`body`,{type:`string`,description:`Raw JSON request body, or @path to a JSON file`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).strictOptions(!1).help(!1).option(`help`,{type:`boolean`,alias:`h`,description:`Show help, including this extension's input flags`}).epilogue("Input flags depend on the extension: run `cf registrar registrations create <domain> --help`.\nRun `cf registrar domain-check --domains <domain>` to check availability and pricing first.")}async function U(t){B?.showHelp(`log`);let n=V(t[`domain-name`]);if(!n)return;if(t.local){console.log(`\n${e.muted(`Registration fields are unavailable in local mode.`)}`);return}let r=Date.now()+E,i=await o(r);if(!i){console.log(`\n${e.muted(`Set \`CLOUDFLARE_ACCOUNT_ID\` or sign in with \`cf auth login\` to see the registration fields for ${n}.`)}`);return}let a=await L(n,t.extension,i,()=>s(t),r);console.log(a.ok?`\n${C(b(a.schema,{exclude:[R]}),`Registration fields for .${a.extension}`)}`:`\n${e.muted(`Could not load the registration fields for ${n}: ${a.reason}.`)}`)}async function W(e,t){for(let n of T(e,t)){let e=n.description??``;if(n.type===`boolean`&&n.schema.const===!0){let r=n.schema.description??e;if(!await v(n.name,r))return!1;t[n.name]=!0}else n.choices?.length?t[n.name]=await g(n.name,e,n.choices):t[n.name]=await h(n.name,e)}return!0}function ee(e){let t=d(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`--body must contain a JSON object`);return t}const G={command:`create [domain-name]`,describe:"Register a domain. Billable and non-refundable — input fields are extension-specific, see `create <domain> --help`",builder:H,handler:async e=>{if(e.help){await U(e);return}if(e.local)throw Error(t);let n={};e.prefer!==void 0&&(n.Prefer=String(e.prefer));let o;if(e.body!==void 0){if(D([],e,{reserved:z}).errors.some(e=>e.startsWith(`Unknown flag`)))throw Error(`--body cannot be combined with registration field flags. Pass one or the other.`);o=ee(e.body)}let d=V(e[`domain-name`]),f=o?.domain_name;if(f!==void 0&&typeof f!=`string`)throw Error(`--body field domain_name must be a string`);if(d!==void 0&&f!==void 0&&d!==f)throw Error(`The positional domain '${d}' does not match --body domain_name '${f}'`);let p=d??f??await h(`domain-name`,`Fully qualified domain name to register, e.g. example.travel`);o&&(o.domain_name=p);let m=e.dryRun?await i()??`<account-id>`:await r();if(!o){let t=await L(p,e.extension,m,()=>s(e));if(!t.ok)throw Error(`Could not load the registration schema for ${p}: ${t.reason}.\nPass the request body directly instead: cf registrar registrations create ${p} --body '{…}'`);let n=b(t.schema,{exclude:[R]});if(!await W(n,e))return;let r=D(n,e,{reserved:z});if(r.errors.length>0)throw Error(`${r.errors.join(`
5
- `)}\n\nRun \`cf registrar registrations create ${p} --help\` for .${t.extension}'s registration fields.`);o={domain_name:p,...r.body}}if(e.dryRun){l({command:`cf registrar registrations create`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${m}/registrar/registrations`,pathParams:{},bodyKind:`json`,body:o});return}let g=typeof o.years==`number`?o.years:void 0;if(!await _({force:e.force,message:`Registering ${p}${g===void 0?``:` for ${g} year(s)`} charges the account's default payment method and cannot be refunded.`}))return;let v=await s(e);e.accountId=m,c(await u(`Registering`,async()=>a(v,`POST`,`/accounts/${m}/registrar/registrations`,{body:o,headers:Object.keys(n).length>0?n:void 0})),{successLabel:`Registered ${p}`})}};function K(e){return e.option(`domains`,{type:`string`,array:!0,description:`List of fully qualified domain names (FQDNs) to check for availability. Each domain must include the extension.
6
- - Minimum: 1 domain.
7
- - Maximum: 20 domains per request.
8
- - The response returns domains on unsupported extensions with \`registrable: false\` and a \`reason\` field.
9
- - The response may omit malformed domain names (e.g., names missing an extension).
10
- `}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:`List of fully qualified domain names (FQDNs) to check. Each domain must include the extension (e.g., "example.com", not "example").`})}const q={command:`check`,describe:"Performs real-time, authoritative availability checks directly against domain registries. Use this endpoint to verify a domain is available before attempting registration via `POST /registrations`. **Important:** Unlike the Search endpoint, these results are authoritative and reflect current registry status. Always check availability immediately before registration as domain status can change rapidly. **Note:** This endpoint uses POST to accept a list of domains in the request body. It is a read-only operation — it does not create, modify, or reserve any domains. ### Extension support Only domains on extensions supported for programmatic registration by this API can be registered. If you check a domain on an unsupported extension, the response will include `registrable: false` with a `reason` field explaining why: - `extension_not_supported_via_api` — Cloudflare Registrar supports this extension in the dashboard, but it is not yet available for programmatic registration via this API. Register via `https://dash.cloudflare.com/{account_id}/domains/registrations` instead. - `extension_not_supported` — This extension is not supported by Cloudflare Registrar. - `extension_disallows_registration` — The extension's registry has temporarily or permanently frozen new registrations. No registrar can register domains on this extension at this time. - `domain_premium` — The domain is premium priced. Premium registration is not currently supported by this API. - `domain_unavailable` — The domain is already registered, reserved, or otherwise not available for registration on a supported extension. The `reason` field is only present when `registrable` is `false`. ### Behavior - Maximum 20 domains per request - Pricing is only returned for domains where `registrable: true` - Results are not cached; each request queries the registry ### Workflow 1. Call this endpoint with domains the user wants to register. 2. For each domain where `registrable: true`, present pricing to the user. 3. If `tier: premium`, note that premium registration is not currently supported by this API and do not proceed to `POST /registrations`. 4. Proceed to `POST /registrations` only for supported non-premium domains.",builder:K,handler:async e=>{if(e.dryRun){l({command:`cf registrar registrations check`,method:`POST`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/domain-check`,pathParams:{},bodyKind:`json`,body:e.body===void 0?p({domains:e.domains}):d(e.body)});return}let t=await s(e),a=e.local?n:await r();if(e.accountId=a,e.body){let n=d(e.body);c(await u(`Creating`,async()=>t.registrar.registrations.check({...n,account_id:a})),{successLabel:`Created`});return}if(e.domains===void 0)throw Error(`--domains is required (or pass --body with this field set).`);let o=p({domains:e.domains});c(await u(`Creating`,async()=>t.registrar.registrations.check({...o,account_id:a})),{successLabel:`Created`})}};function J(e){return e.positional(`domain-name`,{type:`string`,description:"Provides a fully qualified domain name (FQDN), including the extension (e.g., `example.com`, `mybrand.app`). The domain name uniquely identifies a registration. Cloudflare permits only one registration per domain, making the domain name a natural idempotency key for registration requests.",demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Y={command:`get-registration-status <domain-name>`,describe:"Returns the current status of a domain registration workflow. Use this endpoint to poll for completion when the POST response returned `202 Accepted`. The URL is provided in the `links.self` field of the workflow status response. Poll this endpoint until the workflow reaches a terminal state or a state that requires user attention. **Terminal states:** `succeeded` and `failed` are terminal and always have `completed: true`. **Non-terminal states:** - `action_required` has `completed: false` and will not resolve on its own. The workflow is paused pending user intervention. - `blocked` has `completed: false` and indicates the workflow is waiting on a third party such as the extension registry or losing registrar. Continue polling while informing the user of the delay. Use increasing backoff between polls. When `state: blocked`, use a longer polling interval and do not poll indefinitely. A naive polling loop that only checks `completed` can run indefinitely when `state: action_required`. Break explicitly on `action_required`: ```js let status; do { await new Promise(r => setTimeout(r, 2000)); status = await cloudflare.request({ method: 'GET', path: reg.result.links.self, }); } while ( !status.result.completed && status.result.state !== 'action_required' ); if (status.result.state === 'action_required') { // Surface context.action and context.confirmation_sent_to to the user. // Do not re-submit the registration request. } ```",builder:J,handler:async e=>{if(e.dryRun){l({command:`cf registrar registrations get-registration-status`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/registrations/${e[`domain-name`]==null?`<domain-name>`:encodeURIComponent(String(e[`domain-name`]))}/registration-status`,pathParams:{"domain-name":String(e[`domain-name`]??``)},bodyKind:`none`});return}let t=await s(e),a=e.local?n:await r();e.accountId=a,c(await u(`Loading`,async()=>t.registrar.registrations.getRegistrationStatus({account_id:a,domain_name:e[`domain-name`]})),{successLabel:`Loaded`})}};function X(e){return e.positional(`domain-name`,{type:`string`,description:"Provides a fully qualified domain name (FQDN), including the extension (e.g., `example.com`, `mybrand.app`). The domain name uniquely identifies a registration. Cloudflare permits only one registration per domain, making the domain name a natural idempotency key for registration requests.",demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const Z={command:`get-update-status <domain-name>`,describe:"Returns the current status of a domain update workflow. Use this endpoint to poll for completion when the PATCH response returned `202 Accepted`. The URL is provided in the `links.self` field of the workflow status response. Poll this endpoint until the workflow reaches a terminal state or a state that requires user attention. Use increasing backoff between polls. When the workflow remains blocked on a third party, use a longer polling interval and do not poll indefinitely.",builder:X,handler:async e=>{if(e.dryRun){l({command:`cf registrar registrations get-update-status`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/registrations/${e[`domain-name`]==null?`<domain-name>`:encodeURIComponent(String(e[`domain-name`]))}/update-status`,pathParams:{"domain-name":String(e[`domain-name`]??``)},bodyKind:`none`});return}let t=await s(e),a=e.local?n:await r();e.accountId=a,c(await u(`Loading`,async()=>t.registrar.registrations.getUpdateStatus({account_id:a,domain_name:e[`domain-name`]})),{successLabel:`Loaded`})}};function Q(e){return e.positional(`domain-name`,{type:`string`,description:`Domain name to retrieve.`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const $={command:`get <domain-name>`,describe:"Returns the current state of a domain registration. This is the canonical read endpoint for a domain you own. It returns the full registration resource including current settings and expiration. When the registration resource is ready, both `created_at` and `expires_at` are present in the response.",builder:Q,handler:async e=>{if(e.dryRun){l({command:`cf registrar registrations get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/registrations/${e[`domain-name`]==null?`<domain-name>`:encodeURIComponent(String(e[`domain-name`]))}`,pathParams:{"domain-name":String(e[`domain-name`]??``)},bodyKind:`none`});return}let t=await s(e),a=e.local?n:await r();e.accountId=a,c(await u(`Loading`,async()=>t.registrar.registrations.get({account_id:a,domain_name:e[`domain-name`]})),{successLabel:`Loaded`})}};function te(e){return e.option(`cursor`,{type:`string`,description:`Opaque token from a previous response's \`result_info.cursor\`.
11
- Pass this value to fetch the next page of results. Omit (or
12
- pass an empty string) for the first page.`}).option(`per-page`,{type:`number`,description:`Number of items to return per page.`}).option(`direction`,{type:`string`,description:`Sort direction for results. Defaults to ascending order.`,choices:[`asc`,`desc`]}).option(`sort-by`,{type:`string`,description:"Column to sort results by. Defaults to registration date (`registry_created_at`) when omitted.",choices:[`registry_created_at`,`registry_expires_at`,`name`]}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ne={command:`list`,describe:"Returns a paginated list of domain registrations owned by the account. This endpoint uses cursor-based pagination. Results are ordered by registration date by default. To fetch the next page, pass the `cursor` value from the `result_info` object in the response as the `cursor` query parameter in your next request. An empty `cursor` string indicates there are no more pages.",builder:y(te),handler:async e=>{let t={cursor:e.cursor,per_page:e[`per-page`],direction:e.direction,sort_by:e[`sort-by`]};if(e.dryRun){l({command:`cf registrar registrations list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/registrations`,pathParams:{},query:t,bodyKind:`none`});return}let a=await s(e),o=e.local?n:await r();e.accountId=o,c(await u(`Loading`,async()=>a.registrar.registrations.list({account_id:o,...t})),{successLabel:`Loaded`})}};function re(e){return e.option(`q`,{type:`string`,description:`The search term to find domain suggestions. Accepts keywords, phrases, or full domain names.
13
- - Phrases: "coffee shop" returns coffeeshop.com, mycoffeeshop.net, etc.
14
- - Domain names: "example.com" returns example.com and variations across extensions`,demandOption:!0}).option(`extensions`,{type:`string`,description:`Limits results to specific domain extensions from the supported set. If not specified,
15
- returns results across all supported extensions. Extensions not in the supported
16
- set are silently ignored.`}).option(`limit`,{type:`number`,description:`Maximum number of domain suggestions to return. Defaults to 20 if not specified.`}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const ie={command:`search`,describe:'Searches for domain name suggestions based on a keyword, phrase, or partial domain name. Returns a list of potentially available domains with pricing information. **Important:** Results are non-authoritative and based on cached data. Always use the `/domain-check` endpoint to verify real-time availability before attempting registration. Suggestions are scoped to extensions supported for programmatic registration via this API (`POST /registrations`). Domains on unsupported extensions will not appear in results, even if they are available at the registry level. ### Use cases - Brand name discovery (e.g., "acme corp" → acmecorp.com, acmecorp.dev) - Keyword-based suggestions (e.g., "coffee shop" → coffeeshop.com, mycoffeeshop.net) - Alternative extension discovery (e.g., "example.com" → example.com, example.app, example.xyz) ### Workflow 1. Call this endpoint with a keyword or domain name. 2. Present suggestions to the user. 3. Call `/domain-check` with the user\'s chosen domains to confirm real-time availability and pricing. 4. Proceed to `POST /registrations` only for supported non-premium domains where the Check response returns `registrable: true`. **Note:** Searching with just a domain extension (e.g., "com" or ".app") is not supported. Provide a keyword or domain name.',builder:re,handler:async e=>{let t={q:e.q,extensions:e.extensions,limit:e.limit};if(e.dryRun){l({command:`cf registrar registrations search`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/domain-search`,pathParams:{},query:t,bodyKind:`none`});return}let a=await s(e),o=e.local?n:await r();e.accountId=o,c(await u(`Loading`,async()=>a.registrar.registrations.search({account_id:o,...t})),{successLabel:`Loaded`})}};function ae(e){return e.positional(`domain-name`,{type:`string`,description:`Domain name to update.`,demandOption:!0}).option(`prefer`,{type:`string`,description:"Set to `respond-async` to receive an immediate `202 Accepted` without\nwaiting for the operation to complete (RFC 7240)."}).option(`auto-renew`,{type:`boolean`,description:`Enable or disable automatic renewal.
17
- Setting this field to \`true\` authorizes Cloudflare to charge the
18
- account's default payment method up to 30 days before domain expiry
19
- to renew the domain automatically. Renewal pricing may change over
20
- time based on registry pricing.
21
- `}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1}).option(`body`,{type:`string`,description:"Request to update an existing domain registration. This endpoint currently supports updating `auto_renew` only. "})}const oe={command:`update <domain-name>`,describe:"Updates an existing domain registration. By default, the server holds the connection for a bounded, server-defined amount of time while the update completes. Most updates finish within this window and return `200 OK` with a completed workflow status. If the update is still processing after this synchronous wait window, the server returns `202 Accepted`. Poll the URL in `links.self` to track progress. To skip the wait and receive an immediate `202`, send `Prefer: respond-async`. This endpoint currently supports updating `auto_renew` only.",builder:ae,handler:async e=>{let t={};if(e.prefer!==void 0&&(t.Prefer=String(e.prefer)),e.dryRun){l({command:`cf registrar registrations update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await i()??`<account-id>`}/registrar/registrations/${e[`domain-name`]==null?`<domain-name>`:encodeURIComponent(String(e[`domain-name`]))}`,pathParams:{"domain-name":String(e[`domain-name`]??``)},bodyKind:`json`,body:e.body===void 0?p({auto_renew:e[`auto-renew`]}):d(e.body)});return}let o=await s(e),m=e.local?n:await r();if(e.accountId=m,e.body){let n=d(e.body);c(await u(`Updating`,async()=>a(o,`PATCH`,`/accounts/${m}/registrar/registrations/${encodeURIComponent(String(e[`domain-name`]))}`,{body:n,headers:Object.keys(t).length>0?t:void 0})),{successLabel:`Updated`});return}let h={};e[`auto-renew`]!==void 0&&f(h,[`auto_renew`],e[`auto-renew`]),c(await u(`Updating`,async()=>a(o,`PATCH`,`/accounts/${m}/registrar/registrations/${encodeURIComponent(String(e[`domain-name`]))}`,{body:Object.keys(h).length>0?h:void 0,headers:Object.keys(t).length>0?t:void 0})),{successLabel:`Updated`})}},se={command:`registrations`,describe:`Operations for registrations`,builder:e=>e.command(q).command(G).command($).command(Y).command(Z).command(ne).command(ie).command(oe).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},ce={command:`registrar`,describe:`registrar`,builder:e=>e.command(N).command(se).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{ce as default};
@@ -1,2 +0,0 @@
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}from"./body-parser-CYD7PKFC.mjs";function c(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const l={command:`get`,describe:`Gets the industry classification for an account.`,builder:c,handler:async s=>{if(s.dryRun){a({command:`cf reporting industry get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/industry`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.reporting.industry.get({account_id:l})),{successLabel:`Loaded`})}};function u(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 d={command:`update`,describe:`Updates the industry classification for an account.`,builder:u,handler:async c=>{if(c.dryRun){a({command:`cf reporting industry update`,method:`PATCH`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/industry`,pathParams:{},bodyKind:`json`,body:c.body===void 0?void 0:s(c.body)});return}let l=await r(c),u=c.local?e:await t();if(c.accountId=u,c.body){let e=s(c.body);i(await o(`Updating`,async()=>l.reporting.industry.update({...e,account_id:u})),{successLabel:`Updated`});return}if(c.body===void 0)throw Error(`--body is required for this command. Pass --body '<json>' or --body @path/to/file.json.`)}},f={command:`industry`,describe:`Operations for industry`,builder:e=>e.command(l).command(d).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function p(e){return e.positional(`policy-id`,{type:`string`,description:`Unique identifier for the policy (UUID format)`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const m={command:`get <policy-id>`,describe:`Gets a reporting policy by identifier.`,builder:p,handler:async s=>{if(s.dryRun){a({command:`cf reporting policies get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/policies/${s[`policy-id`]==null?`<policy-id>`:encodeURIComponent(String(s[`policy-id`]))}`,pathParams:{"policy-id":String(s[`policy-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.reporting.policies.get({account_id:l,policy_id:s[`policy-id`]})),{successLabel:`Loaded`})}};function h(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const g={command:`list`,describe:`Lists all reporting policies for an account.`,builder:h,handler:async s=>{if(s.dryRun){a({command:`cf reporting policies list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/policies`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.reporting.policies.list({account_id:l})),{successLabel:`Loaded`})}},_={command:`policies`,describe:`Operations for policies`,builder:e=>e.command(m).command(g).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};function v(e){return e.positional(`report-id`,{type:`string`,description:`Unique report identifier`,demandOption:!0}).option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const y={command:`get <report-id>`,describe:`Gets a generated report by identifier.`,builder:v,handler:async s=>{if(s.dryRun){a({command:`cf reporting reports get`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/reports/${s[`report-id`]==null?`<report-id>`:encodeURIComponent(String(s[`report-id`]))}`,pathParams:{"report-id":String(s[`report-id`]??``)},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.reporting.reports.get({account_id:l,report_id:s[`report-id`]})),{successLabel:`Loaded`})}};function b(e){return e.option(`dry-run`,{type:`boolean`,description:`Validate and show what would happen without executing`,default:!1})}const x={command:`list`,describe:`Lists all generated reports for an account.`,builder:b,handler:async s=>{if(s.dryRun){a({command:`cf reporting reports list`,method:`GET`,url:`https://api.cloudflare.com/client/v4/accounts/${await n()??`<account-id>`}/reporting/reports`,pathParams:{},bodyKind:`none`});return}let c=await r(s),l=s.local?e:await t();s.accountId=l,i(await o(`Loading`,async()=>c.reporting.reports.list({account_id:l})),{successLabel:`Loaded`})}},S={command:`reports`,describe:`Operations for reports`,builder:e=>e.command(y).command(x).demandCommand(1,`Please specify a subcommand`),handler:()=>{}},C={command:`reporting`,describe:`reporting`,builder:e=>e.command(f).command(_).command(S).demandCommand(1,`Please specify a subcommand`),handler:()=>{}};export{C as default};