@salesforce/b2c-cli 0.0.0-nightly.20260122024142 → 0.0.0-nightly.20260122144746

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 (321) hide show
  1. package/dist/commands/ecdn/cache/purge.d.ts +43 -0
  2. package/dist/commands/ecdn/cache/purge.js +104 -0
  3. package/dist/commands/ecdn/cache/purge.js.map +1 -0
  4. package/dist/commands/ecdn/certificates/add.d.ts +44 -0
  5. package/dist/commands/ecdn/certificates/add.js +109 -0
  6. package/dist/commands/ecdn/certificates/add.js.map +1 -0
  7. package/dist/commands/ecdn/certificates/delete.d.ts +41 -0
  8. package/dist/commands/ecdn/certificates/delete.js +69 -0
  9. package/dist/commands/ecdn/certificates/delete.js.map +1 -0
  10. package/dist/commands/ecdn/certificates/list.d.ts +46 -0
  11. package/dist/commands/ecdn/certificates/list.js +124 -0
  12. package/dist/commands/ecdn/certificates/list.js.map +1 -0
  13. package/dist/commands/ecdn/certificates/update.d.ts +45 -0
  14. package/dist/commands/ecdn/certificates/update.js +104 -0
  15. package/dist/commands/ecdn/certificates/update.js.map +1 -0
  16. package/dist/commands/ecdn/certificates/validate.d.ts +40 -0
  17. package/dist/commands/ecdn/certificates/validate.js +68 -0
  18. package/dist/commands/ecdn/certificates/validate.js.map +1 -0
  19. package/dist/commands/ecdn/cipher-suites/get.d.ts +39 -0
  20. package/dist/commands/ecdn/cipher-suites/get.js +63 -0
  21. package/dist/commands/ecdn/cipher-suites/get.js.map +1 -0
  22. package/dist/commands/ecdn/cipher-suites/update.d.ts +41 -0
  23. package/dist/commands/ecdn/cipher-suites/update.js +81 -0
  24. package/dist/commands/ecdn/cipher-suites/update.js.map +1 -0
  25. package/dist/commands/ecdn/logpush/jobs/create.d.ts +45 -0
  26. package/dist/commands/ecdn/logpush/jobs/create.js +103 -0
  27. package/dist/commands/ecdn/logpush/jobs/create.js.map +1 -0
  28. package/dist/commands/ecdn/logpush/jobs/delete.d.ts +39 -0
  29. package/dist/commands/ecdn/logpush/jobs/delete.js +50 -0
  30. package/dist/commands/ecdn/logpush/jobs/delete.js.map +1 -0
  31. package/dist/commands/ecdn/logpush/jobs/get.d.ts +40 -0
  32. package/dist/commands/ecdn/logpush/jobs/get.js +85 -0
  33. package/dist/commands/ecdn/logpush/jobs/get.js.map +1 -0
  34. package/dist/commands/ecdn/logpush/jobs/list.d.ts +43 -0
  35. package/dist/commands/ecdn/logpush/jobs/list.js +124 -0
  36. package/dist/commands/ecdn/logpush/jobs/list.js.map +1 -0
  37. package/dist/commands/ecdn/logpush/jobs/update.d.ts +43 -0
  38. package/dist/commands/ecdn/logpush/jobs/update.js +94 -0
  39. package/dist/commands/ecdn/logpush/jobs/update.js.map +1 -0
  40. package/dist/commands/ecdn/logpush/ownership.d.ts +39 -0
  41. package/dist/commands/ecdn/logpush/ownership.js +72 -0
  42. package/dist/commands/ecdn/logpush/ownership.js.map +1 -0
  43. package/dist/commands/ecdn/mrt-rules/create.d.ts +42 -0
  44. package/dist/commands/ecdn/mrt-rules/create.js +81 -0
  45. package/dist/commands/ecdn/mrt-rules/create.js.map +1 -0
  46. package/dist/commands/ecdn/mrt-rules/delete.d.ts +39 -0
  47. package/dist/commands/ecdn/mrt-rules/delete.js +52 -0
  48. package/dist/commands/ecdn/mrt-rules/delete.js.map +1 -0
  49. package/dist/commands/ecdn/mrt-rules/get.d.ts +39 -0
  50. package/dist/commands/ecdn/mrt-rules/get.js +89 -0
  51. package/dist/commands/ecdn/mrt-rules/get.js.map +1 -0
  52. package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +40 -0
  53. package/dist/commands/ecdn/mrt-rules/rules/delete.js +57 -0
  54. package/dist/commands/ecdn/mrt-rules/rules/delete.js.map +1 -0
  55. package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +44 -0
  56. package/dist/commands/ecdn/mrt-rules/rules/update.js +88 -0
  57. package/dist/commands/ecdn/mrt-rules/rules/update.js.map +1 -0
  58. package/dist/commands/ecdn/mrt-rules/update.d.ts +43 -0
  59. package/dist/commands/ecdn/mrt-rules/update.js +87 -0
  60. package/dist/commands/ecdn/mrt-rules/update.js.map +1 -0
  61. package/dist/commands/ecdn/mtls/create.d.ts +41 -0
  62. package/dist/commands/ecdn/mtls/create.js +84 -0
  63. package/dist/commands/ecdn/mtls/create.js.map +1 -0
  64. package/dist/commands/ecdn/mtls/delete.d.ts +38 -0
  65. package/dist/commands/ecdn/mtls/delete.js +53 -0
  66. package/dist/commands/ecdn/mtls/delete.js.map +1 -0
  67. package/dist/commands/ecdn/mtls/get.d.ts +39 -0
  68. package/dist/commands/ecdn/mtls/get.js +72 -0
  69. package/dist/commands/ecdn/mtls/get.js.map +1 -0
  70. package/dist/commands/ecdn/mtls/list.d.ts +42 -0
  71. package/dist/commands/ecdn/mtls/list.js +118 -0
  72. package/dist/commands/ecdn/mtls/list.js.map +1 -0
  73. package/dist/commands/ecdn/origin-headers/delete.d.ts +37 -0
  74. package/dist/commands/ecdn/origin-headers/delete.js +46 -0
  75. package/dist/commands/ecdn/origin-headers/delete.js.map +1 -0
  76. package/dist/commands/ecdn/origin-headers/get.d.ts +39 -0
  77. package/dist/commands/ecdn/origin-headers/get.js +61 -0
  78. package/dist/commands/ecdn/origin-headers/get.js.map +1 -0
  79. package/dist/commands/ecdn/origin-headers/set.d.ts +41 -0
  80. package/dist/commands/ecdn/origin-headers/set.js +76 -0
  81. package/dist/commands/ecdn/origin-headers/set.js.map +1 -0
  82. package/dist/commands/ecdn/page-shield/notifications/create.d.ts +41 -0
  83. package/dist/commands/ecdn/page-shield/notifications/create.js +84 -0
  84. package/dist/commands/ecdn/page-shield/notifications/create.js.map +1 -0
  85. package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +38 -0
  86. package/dist/commands/ecdn/page-shield/notifications/delete.js +53 -0
  87. package/dist/commands/ecdn/page-shield/notifications/delete.js.map +1 -0
  88. package/dist/commands/ecdn/page-shield/notifications/list.d.ts +42 -0
  89. package/dist/commands/ecdn/page-shield/notifications/list.js +118 -0
  90. package/dist/commands/ecdn/page-shield/notifications/list.js.map +1 -0
  91. package/dist/commands/ecdn/page-shield/policies/create.d.ts +44 -0
  92. package/dist/commands/ecdn/page-shield/policies/create.js +100 -0
  93. package/dist/commands/ecdn/page-shield/policies/create.js.map +1 -0
  94. package/dist/commands/ecdn/page-shield/policies/delete.d.ts +39 -0
  95. package/dist/commands/ecdn/page-shield/policies/delete.js +56 -0
  96. package/dist/commands/ecdn/page-shield/policies/delete.js.map +1 -0
  97. package/dist/commands/ecdn/page-shield/policies/get.d.ts +40 -0
  98. package/dist/commands/ecdn/page-shield/policies/get.js +72 -0
  99. package/dist/commands/ecdn/page-shield/policies/get.js.map +1 -0
  100. package/dist/commands/ecdn/page-shield/policies/list.d.ts +43 -0
  101. package/dist/commands/ecdn/page-shield/policies/list.js +119 -0
  102. package/dist/commands/ecdn/page-shield/policies/list.js.map +1 -0
  103. package/dist/commands/ecdn/page-shield/policies/update.d.ts +45 -0
  104. package/dist/commands/ecdn/page-shield/policies/update.js +110 -0
  105. package/dist/commands/ecdn/page-shield/policies/update.js.map +1 -0
  106. package/dist/commands/ecdn/page-shield/scripts/get.d.ts +40 -0
  107. package/dist/commands/ecdn/page-shield/scripts/get.js +99 -0
  108. package/dist/commands/ecdn/page-shield/scripts/get.js.map +1 -0
  109. package/dist/commands/ecdn/page-shield/scripts/list.d.ts +43 -0
  110. package/dist/commands/ecdn/page-shield/scripts/list.js +124 -0
  111. package/dist/commands/ecdn/page-shield/scripts/list.js.map +1 -0
  112. package/dist/commands/ecdn/security/get.d.ts +39 -0
  113. package/dist/commands/ecdn/security/get.js +69 -0
  114. package/dist/commands/ecdn/security/get.js.map +1 -0
  115. package/dist/commands/ecdn/security/update.d.ts +47 -0
  116. package/dist/commands/ecdn/security/update.js +136 -0
  117. package/dist/commands/ecdn/security/update.js.map +1 -0
  118. package/dist/commands/ecdn/speed/get.d.ts +39 -0
  119. package/dist/commands/ecdn/speed/get.js +64 -0
  120. package/dist/commands/ecdn/speed/get.js.map +1 -0
  121. package/dist/commands/ecdn/speed/update.d.ts +46 -0
  122. package/dist/commands/ecdn/speed/update.js +105 -0
  123. package/dist/commands/ecdn/speed/update.js.map +1 -0
  124. package/dist/commands/ecdn/waf/groups/list.d.ts +42 -0
  125. package/dist/commands/ecdn/waf/groups/list.js +89 -0
  126. package/dist/commands/ecdn/waf/groups/list.js.map +1 -0
  127. package/dist/commands/ecdn/waf/groups/update.d.ts +43 -0
  128. package/dist/commands/ecdn/waf/groups/update.js +84 -0
  129. package/dist/commands/ecdn/waf/groups/update.js.map +1 -0
  130. package/dist/commands/ecdn/waf/managed-rules/list.d.ts +44 -0
  131. package/dist/commands/ecdn/waf/managed-rules/list.js +124 -0
  132. package/dist/commands/ecdn/waf/managed-rules/list.js.map +1 -0
  133. package/dist/commands/ecdn/waf/managed-rules/update.d.ts +43 -0
  134. package/dist/commands/ecdn/waf/managed-rules/update.js +94 -0
  135. package/dist/commands/ecdn/waf/managed-rules/update.js.map +1 -0
  136. package/dist/commands/ecdn/waf/migrate.d.ts +40 -0
  137. package/dist/commands/ecdn/waf/migrate.js +83 -0
  138. package/dist/commands/ecdn/waf/migrate.js.map +1 -0
  139. package/dist/commands/ecdn/waf/owasp/get.d.ts +40 -0
  140. package/dist/commands/ecdn/waf/owasp/get.js +64 -0
  141. package/dist/commands/ecdn/waf/owasp/get.js.map +1 -0
  142. package/dist/commands/ecdn/waf/owasp/update.d.ts +42 -0
  143. package/dist/commands/ecdn/waf/owasp/update.js +79 -0
  144. package/dist/commands/ecdn/waf/owasp/update.js.map +1 -0
  145. package/dist/commands/ecdn/waf/rules/get.d.ts +41 -0
  146. package/dist/commands/ecdn/waf/rules/get.js +68 -0
  147. package/dist/commands/ecdn/waf/rules/get.js.map +1 -0
  148. package/dist/commands/ecdn/waf/rules/list.d.ts +45 -0
  149. package/dist/commands/ecdn/waf/rules/list.js +120 -0
  150. package/dist/commands/ecdn/waf/rules/list.js.map +1 -0
  151. package/dist/commands/ecdn/waf/rules/update.d.ts +42 -0
  152. package/dist/commands/ecdn/waf/rules/update.js +77 -0
  153. package/dist/commands/ecdn/waf/rules/update.js.map +1 -0
  154. package/dist/commands/ecdn/waf/rulesets/list.d.ts +43 -0
  155. package/dist/commands/ecdn/waf/rulesets/list.js +119 -0
  156. package/dist/commands/ecdn/waf/rulesets/list.js.map +1 -0
  157. package/dist/commands/ecdn/waf/rulesets/update.d.ts +44 -0
  158. package/dist/commands/ecdn/waf/rulesets/update.js +101 -0
  159. package/dist/commands/ecdn/waf/rulesets/update.js.map +1 -0
  160. package/dist/commands/ecdn/zones/create.d.ts +40 -0
  161. package/dist/commands/ecdn/zones/create.js +71 -0
  162. package/dist/commands/ecdn/zones/create.js.map +1 -0
  163. package/dist/commands/ecdn/zones/list.d.ts +44 -0
  164. package/dist/commands/ecdn/zones/list.js +112 -0
  165. package/dist/commands/ecdn/zones/list.js.map +1 -0
  166. package/dist/commands/mrt/{push.d.ts → bundle/deploy.d.ts} +24 -9
  167. package/dist/commands/mrt/bundle/deploy.js +182 -0
  168. package/dist/commands/mrt/bundle/deploy.js.map +1 -0
  169. package/dist/commands/mrt/bundle/download.d.ts +40 -0
  170. package/dist/commands/mrt/bundle/download.js +109 -0
  171. package/dist/commands/mrt/bundle/download.js.map +1 -0
  172. package/dist/commands/mrt/bundle/history.d.ts +30 -0
  173. package/dist/commands/mrt/bundle/history.js +90 -0
  174. package/dist/commands/mrt/bundle/history.js.map +1 -0
  175. package/dist/commands/mrt/bundle/list.d.ts +30 -0
  176. package/dist/commands/mrt/bundle/list.js +79 -0
  177. package/dist/commands/mrt/bundle/list.js.map +1 -0
  178. package/dist/commands/mrt/env/access-control/list.d.ts +30 -0
  179. package/dist/commands/mrt/env/access-control/list.js +83 -0
  180. package/dist/commands/mrt/env/access-control/list.js.map +1 -0
  181. package/dist/commands/mrt/env/b2c.d.ts +32 -0
  182. package/dist/commands/mrt/env/b2c.js +120 -0
  183. package/dist/commands/mrt/env/b2c.js.map +1 -0
  184. package/dist/commands/mrt/env/get.d.ts +28 -0
  185. package/dist/commands/mrt/env/get.js +98 -0
  186. package/dist/commands/mrt/env/get.js.map +1 -0
  187. package/dist/commands/mrt/env/invalidate.d.ts +29 -0
  188. package/dist/commands/mrt/env/invalidate.js +66 -0
  189. package/dist/commands/mrt/env/invalidate.js.map +1 -0
  190. package/dist/commands/mrt/env/list.d.ts +28 -0
  191. package/dist/commands/mrt/env/list.js +68 -0
  192. package/dist/commands/mrt/env/list.js.map +1 -0
  193. package/dist/commands/mrt/env/redirect/clone.d.ts +31 -0
  194. package/dist/commands/mrt/env/redirect/clone.js +95 -0
  195. package/dist/commands/mrt/env/redirect/clone.js.map +1 -0
  196. package/dist/commands/mrt/env/redirect/create.d.ts +33 -0
  197. package/dist/commands/mrt/env/redirect/create.js +87 -0
  198. package/dist/commands/mrt/env/redirect/create.js.map +1 -0
  199. package/dist/commands/mrt/env/redirect/delete.d.ts +34 -0
  200. package/dist/commands/mrt/env/redirect/delete.js +92 -0
  201. package/dist/commands/mrt/env/redirect/delete.js.map +1 -0
  202. package/dist/commands/mrt/env/redirect/list.d.ts +31 -0
  203. package/dist/commands/mrt/env/redirect/list.js +90 -0
  204. package/dist/commands/mrt/env/redirect/list.js.map +1 -0
  205. package/dist/commands/mrt/env/update.d.ts +37 -0
  206. package/dist/commands/mrt/env/update.js +173 -0
  207. package/dist/commands/mrt/env/update.js.map +1 -0
  208. package/dist/commands/mrt/org/b2c.d.ts +31 -0
  209. package/dist/commands/mrt/org/b2c.js +55 -0
  210. package/dist/commands/mrt/org/b2c.js.map +1 -0
  211. package/dist/commands/mrt/org/list.d.ts +30 -0
  212. package/dist/commands/mrt/org/list.js +70 -0
  213. package/dist/commands/mrt/org/list.js.map +1 -0
  214. package/dist/commands/mrt/project/create.d.ts +35 -0
  215. package/dist/commands/mrt/project/create.js +129 -0
  216. package/dist/commands/mrt/project/create.js.map +1 -0
  217. package/dist/commands/mrt/project/delete.d.ts +39 -0
  218. package/dist/commands/mrt/project/delete.js +81 -0
  219. package/dist/commands/mrt/project/delete.js.map +1 -0
  220. package/dist/commands/mrt/project/get.d.ts +31 -0
  221. package/dist/commands/mrt/project/get.js +79 -0
  222. package/dist/commands/mrt/project/get.js.map +1 -0
  223. package/dist/commands/mrt/project/list.d.ts +31 -0
  224. package/dist/commands/mrt/project/list.js +80 -0
  225. package/dist/commands/mrt/project/list.js.map +1 -0
  226. package/dist/commands/mrt/project/member/add.d.ts +32 -0
  227. package/dist/commands/mrt/project/member/add.js +73 -0
  228. package/dist/commands/mrt/project/member/add.js.map +1 -0
  229. package/dist/commands/mrt/project/member/get.d.ts +31 -0
  230. package/dist/commands/mrt/project/member/get.js +70 -0
  231. package/dist/commands/mrt/project/member/get.js.map +1 -0
  232. package/dist/commands/mrt/project/member/list.d.ts +32 -0
  233. package/dist/commands/mrt/project/member/list.js +82 -0
  234. package/dist/commands/mrt/project/member/list.js.map +1 -0
  235. package/dist/commands/mrt/project/member/remove.d.ts +34 -0
  236. package/dist/commands/mrt/project/member/remove.js +89 -0
  237. package/dist/commands/mrt/project/member/remove.js.map +1 -0
  238. package/dist/commands/mrt/project/member/update.d.ts +32 -0
  239. package/dist/commands/mrt/project/member/update.js +72 -0
  240. package/dist/commands/mrt/project/member/update.js.map +1 -0
  241. package/dist/commands/mrt/project/notification/create.d.ts +33 -0
  242. package/dist/commands/mrt/project/notification/create.js +86 -0
  243. package/dist/commands/mrt/project/notification/create.js.map +1 -0
  244. package/dist/commands/mrt/project/notification/delete.d.ts +34 -0
  245. package/dist/commands/mrt/project/notification/delete.js +88 -0
  246. package/dist/commands/mrt/project/notification/delete.js.map +1 -0
  247. package/dist/commands/mrt/project/notification/get.d.ts +31 -0
  248. package/dist/commands/mrt/project/notification/get.js +86 -0
  249. package/dist/commands/mrt/project/notification/get.js.map +1 -0
  250. package/dist/commands/mrt/project/notification/list.d.ts +31 -0
  251. package/dist/commands/mrt/project/notification/list.js +88 -0
  252. package/dist/commands/mrt/project/notification/list.js.map +1 -0
  253. package/dist/commands/mrt/project/notification/update.d.ts +36 -0
  254. package/dist/commands/mrt/project/notification/update.js +86 -0
  255. package/dist/commands/mrt/project/notification/update.js.map +1 -0
  256. package/dist/commands/mrt/project/update.d.ts +34 -0
  257. package/dist/commands/mrt/project/update.js +123 -0
  258. package/dist/commands/mrt/project/update.js.map +1 -0
  259. package/dist/commands/mrt/user/api-key.d.ts +30 -0
  260. package/dist/commands/mrt/user/api-key.js +63 -0
  261. package/dist/commands/mrt/user/api-key.js.map +1 -0
  262. package/dist/commands/mrt/user/email-prefs.d.ts +30 -0
  263. package/dist/commands/mrt/user/email-prefs.js +83 -0
  264. package/dist/commands/mrt/user/email-prefs.js.map +1 -0
  265. package/dist/commands/mrt/user/profile.d.ts +28 -0
  266. package/dist/commands/mrt/user/profile.js +50 -0
  267. package/dist/commands/mrt/user/profile.js.map +1 -0
  268. package/dist/commands/ods/create.d.ts +1 -1
  269. package/dist/commands/ods/create.js +2 -3
  270. package/dist/commands/ods/create.js.map +1 -1
  271. package/dist/commands/ods/delete.js +2 -3
  272. package/dist/commands/ods/delete.js.map +1 -1
  273. package/dist/commands/ods/list.d.ts +1 -1
  274. package/dist/commands/ods/list.js +2 -3
  275. package/dist/commands/ods/list.js.map +1 -1
  276. package/dist/commands/ods/restart.d.ts +1 -1
  277. package/dist/commands/ods/restart.js +2 -3
  278. package/dist/commands/ods/restart.js.map +1 -1
  279. package/dist/commands/ods/start.d.ts +1 -1
  280. package/dist/commands/ods/start.js +2 -3
  281. package/dist/commands/ods/start.js.map +1 -1
  282. package/dist/commands/ods/stop.d.ts +1 -1
  283. package/dist/commands/ods/stop.js +2 -3
  284. package/dist/commands/ods/stop.js.map +1 -1
  285. package/dist/commands/scapi/custom/status.js +3 -3
  286. package/dist/commands/scapi/custom/status.js.map +1 -1
  287. package/dist/commands/scapi/schemas/get.js +2 -2
  288. package/dist/commands/scapi/schemas/get.js.map +1 -1
  289. package/dist/commands/scapi/schemas/list.js +2 -2
  290. package/dist/commands/scapi/schemas/list.js.map +1 -1
  291. package/dist/commands/sites/list.js +5 -2
  292. package/dist/commands/sites/list.js.map +1 -1
  293. package/dist/commands/slas/client/create.js +1 -1
  294. package/dist/commands/slas/client/create.js.map +1 -1
  295. package/dist/commands/slas/client/delete.js +2 -2
  296. package/dist/commands/slas/client/delete.js.map +1 -1
  297. package/dist/commands/slas/client/get.js +2 -2
  298. package/dist/commands/slas/client/get.js.map +1 -1
  299. package/dist/commands/slas/client/list.js +2 -2
  300. package/dist/commands/slas/client/list.js.map +1 -1
  301. package/dist/commands/slas/client/update.js +4 -4
  302. package/dist/commands/slas/client/update.js.map +1 -1
  303. package/dist/utils/ecdn/base-command.d.ts +46 -0
  304. package/dist/utils/ecdn/base-command.js +69 -0
  305. package/dist/utils/ecdn/base-command.js.map +1 -0
  306. package/dist/utils/ecdn/index.d.ts +2 -0
  307. package/dist/utils/ecdn/index.js +8 -0
  308. package/dist/utils/ecdn/index.js.map +1 -0
  309. package/dist/utils/ecdn/zone-command.d.ts +42 -0
  310. package/dist/utils/ecdn/zone-command.js +75 -0
  311. package/dist/utils/ecdn/zone-command.js.map +1 -0
  312. package/dist/utils/scapi/schemas.d.ts +1 -1
  313. package/dist/utils/scapi/schemas.js +3 -3
  314. package/dist/utils/scapi/schemas.js.map +1 -1
  315. package/dist/utils/slas/client.d.ts +1 -1
  316. package/dist/utils/slas/client.js +6 -6
  317. package/dist/utils/slas/client.js.map +1 -1
  318. package/oclif.manifest.json +21535 -2858
  319. package/package.json +118 -8
  320. package/dist/commands/mrt/push.js +0 -125
  321. package/dist/commands/mrt/push.js.map +0 -1
@@ -0,0 +1,124 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { Flags } from '@oclif/core';
7
+ import { TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
9
+ import { t } from '../../../../i18n/index.js';
10
+ const COLUMNS = {
11
+ ruleId: {
12
+ header: 'Rule ID',
13
+ get: (r) => r.ruleId || '-',
14
+ },
15
+ description: {
16
+ header: 'Description',
17
+ get: (r) => r.description || '-',
18
+ },
19
+ action: {
20
+ header: 'Action',
21
+ get: (r) => r.action || '-',
22
+ },
23
+ enabled: {
24
+ header: 'Enabled',
25
+ get: (r) => (r.enabled ? 'yes' : 'no'),
26
+ },
27
+ categories: {
28
+ header: 'Categories',
29
+ get: (r) => r.categories?.join(', ') || '-',
30
+ extended: true,
31
+ },
32
+ score: {
33
+ header: 'Score',
34
+ get: (r) => (r.score === undefined ? '-' : String(r.score)),
35
+ extended: true,
36
+ },
37
+ };
38
+ const DEFAULT_COLUMNS = ['ruleId', 'description', 'action', 'enabled'];
39
+ const tableRenderer = new TableRenderer(COLUMNS);
40
+ /**
41
+ * Command to list WAF v2 managed rules within a ruleset.
42
+ */
43
+ export default class EcdnWafManagedRulesList extends EcdnZoneCommand {
44
+ static description = t('commands.ecdn.waf.managed-rules.list.description', 'List WAF v2 managed rules in a ruleset');
45
+ static enableJsonFlag = true;
46
+ static examples = [
47
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123',
48
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --extended',
49
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --json',
50
+ ];
51
+ static flags = {
52
+ ...EcdnZoneCommand.baseFlags,
53
+ 'ruleset-id': Flags.string({
54
+ description: t('flags.rulesetId.description', 'WAF ruleset ID to list rules for'),
55
+ required: true,
56
+ }),
57
+ columns: Flags.string({
58
+ char: 'c',
59
+ description: `Columns to display (comma-separated). Available: ${Object.keys(COLUMNS).join(', ')}`,
60
+ }),
61
+ extended: Flags.boolean({
62
+ char: 'x',
63
+ description: t('flags.extended.description', 'Show all columns including extended fields'),
64
+ default: false,
65
+ }),
66
+ };
67
+ async run() {
68
+ this.requireOAuthCredentials();
69
+ const zoneId = await this.resolveZoneId();
70
+ const rulesetId = this.flags['ruleset-id'];
71
+ if (!this.jsonEnabled()) {
72
+ this.log(t('commands.ecdn.waf.managed-rules.list.fetching', 'Fetching WAF v2 managed rules...'));
73
+ }
74
+ const client = this.getCdnZonesClient();
75
+ const organizationId = this.getOrganizationId();
76
+ const { data, error } = await client.GET('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/rulesets/{rulesetId}/rules', {
77
+ params: {
78
+ path: { organizationId, zoneId, rulesetId },
79
+ },
80
+ });
81
+ if (error) {
82
+ this.error(t('commands.ecdn.waf.managed-rules.list.error', 'Failed to fetch WAF managed rules: {{message}}', {
83
+ message: formatApiError(error),
84
+ }));
85
+ }
86
+ const rules = data?.data ?? [];
87
+ const output = {
88
+ rules,
89
+ total: rules.length,
90
+ };
91
+ if (this.jsonEnabled()) {
92
+ return output;
93
+ }
94
+ if (rules.length === 0) {
95
+ this.log(t('commands.ecdn.waf.managed-rules.list.noRules', 'No WAF managed rules found.'));
96
+ return output;
97
+ }
98
+ this.log(t('commands.ecdn.waf.managed-rules.list.count', 'Found {{count}} WAF managed rule(s):', {
99
+ count: rules.length,
100
+ }));
101
+ this.log('');
102
+ const columns = this.getSelectedColumns();
103
+ tableRenderer.render(rules, columns);
104
+ return output;
105
+ }
106
+ getSelectedColumns() {
107
+ const columnsFlag = this.flags.columns;
108
+ const extended = this.flags.extended;
109
+ if (columnsFlag) {
110
+ const requested = columnsFlag.split(',').map((c) => c.trim());
111
+ const valid = tableRenderer.validateColumnKeys(requested);
112
+ if (valid.length === 0) {
113
+ this.warn(`No valid columns specified. Available: ${tableRenderer.getColumnKeys().join(', ')}`);
114
+ return DEFAULT_COLUMNS;
115
+ }
116
+ return valid;
117
+ }
118
+ if (extended) {
119
+ return tableRenderer.getColumnKeys();
120
+ }
121
+ return DEFAULT_COLUMNS;
122
+ }
123
+ }
124
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/managed-rules/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
2
+ import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
3
+ type WAFManagedRule = CdnZonesComponents['schemas']['WAFManagedRule'];
4
+ /**
5
+ * Response type for the update command.
6
+ */
7
+ interface UpdateOutput {
8
+ rule: WAFManagedRule;
9
+ }
10
+ /**
11
+ * Command to update a WAF v2 managed rule within a ruleset.
12
+ */
13
+ export default class EcdnWafManagedRulesUpdate extends EcdnZoneCommand<typeof EcdnWafManagedRulesUpdate> {
14
+ static description: string;
15
+ static enableJsonFlag: boolean;
16
+ static examples: string[];
17
+ static flags: {
18
+ 'ruleset-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
+ 'rule-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ enabled: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ action: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
23
+ 'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
24
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
33
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
35
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
+ 'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
37
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
38
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
39
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
40
+ };
41
+ run(): Promise<UpdateOutput>;
42
+ }
43
+ export {};
@@ -0,0 +1,94 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { Flags, ux } from '@oclif/core';
7
+ import cliui from 'cliui';
8
+ import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
9
+ import { t } from '../../../../i18n/index.js';
10
+ /**
11
+ * Command to update a WAF v2 managed rule within a ruleset.
12
+ */
13
+ export default class EcdnWafManagedRulesUpdate extends EcdnZoneCommand {
14
+ static description = t('commands.ecdn.waf.managed-rules.update.description', 'Update a WAF v2 managed rule in a ruleset');
15
+ static enableJsonFlag = true;
16
+ static examples = [
17
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --enabled',
18
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --action block',
19
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --ruleset-id abc123 --rule-id def456 --no-enabled',
20
+ ];
21
+ static flags = {
22
+ ...EcdnZoneCommand.baseFlags,
23
+ 'ruleset-id': Flags.string({
24
+ description: t('flags.rulesetId.description', 'WAF ruleset ID containing the rule'),
25
+ required: true,
26
+ }),
27
+ 'rule-id': Flags.string({
28
+ description: t('flags.ruleId.description', 'WAF managed rule ID to update'),
29
+ required: true,
30
+ }),
31
+ enabled: Flags.boolean({
32
+ description: t('flags.enabled.description', 'Enable the rule'),
33
+ allowNo: true,
34
+ }),
35
+ action: Flags.string({
36
+ description: t('flags.action.description', 'Action for the rule (e.g., default, block, challenge)'),
37
+ }),
38
+ };
39
+ async run() {
40
+ this.requireOAuthCredentials();
41
+ const zoneId = await this.resolveZoneId();
42
+ const rulesetId = this.flags['ruleset-id'];
43
+ const ruleId = this.flags['rule-id'];
44
+ if (!this.jsonEnabled()) {
45
+ this.log(t('commands.ecdn.waf.managed-rules.update.updating', 'Updating WAF managed rule {{id}}...', { id: ruleId }));
46
+ }
47
+ const body = {};
48
+ if (this.flags.enabled !== undefined) {
49
+ body.enabled = this.flags.enabled;
50
+ }
51
+ if (this.flags.action) {
52
+ body.action = this.flags.action;
53
+ }
54
+ const client = this.getCdnZonesRwClient();
55
+ const organizationId = this.getOrganizationId();
56
+ const { data, error } = await client.PATCH('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/rulesets/{rulesetId}/rules/{ruleId}', {
57
+ params: {
58
+ path: { organizationId, zoneId, rulesetId, ruleId },
59
+ },
60
+ body,
61
+ });
62
+ if (error) {
63
+ this.error(t('commands.ecdn.waf.managed-rules.update.error', 'Failed to update WAF managed rule: {{message}}', {
64
+ message: formatApiError(error),
65
+ }));
66
+ }
67
+ const rule = data?.data;
68
+ if (!rule) {
69
+ this.error(t('commands.ecdn.waf.managed-rules.update.noData', 'No WAF managed rule data returned from API'));
70
+ }
71
+ const output = { rule };
72
+ if (this.jsonEnabled()) {
73
+ return output;
74
+ }
75
+ const ui = cliui({ width: process.stdout.columns || 80 });
76
+ const labelWidth = 16;
77
+ ui.div('');
78
+ ui.div({ text: t('commands.ecdn.waf.managed-rules.update.success', 'WAF managed rule updated successfully!') });
79
+ ui.div('');
80
+ ui.div({ text: 'Rule ID:', width: labelWidth }, { text: rule.ruleId || '-' });
81
+ ui.div({ text: 'Description:', width: labelWidth }, { text: rule.description || '-' });
82
+ ui.div({ text: 'Action:', width: labelWidth }, { text: rule.action || '-' });
83
+ ui.div({ text: 'Enabled:', width: labelWidth }, { text: rule.enabled ? 'yes' : 'no' });
84
+ if (rule.score !== undefined) {
85
+ ui.div({ text: 'Score:', width: labelWidth }, { text: String(rule.score) });
86
+ }
87
+ if (rule.categories && rule.categories.length > 0) {
88
+ ui.div({ text: 'Categories:', width: labelWidth }, { text: rule.categories.join(', ') });
89
+ }
90
+ ux.stdout(ui.toString());
91
+ return output;
92
+ }
93
+ }
94
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/managed-rules/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
2
+ import { EcdnZoneCommand } from '../../../utils/ecdn/index.js';
3
+ type WAFManagedRuleset = CdnZonesComponents['schemas']['WAFManagedRuleset'];
4
+ /**
5
+ * Response type for the migrate command.
6
+ */
7
+ interface MigrateOutput {
8
+ rulesets: WAFManagedRuleset[];
9
+ total: number;
10
+ }
11
+ /**
12
+ * Command to migrate a zone from WAF v1 to WAF v2.
13
+ */
14
+ export default class EcdnWafMigrate extends EcdnZoneCommand<typeof EcdnWafMigrate> {
15
+ static description: string;
16
+ static enableJsonFlag: boolean;
17
+ static examples: string[];
18
+ static flags: {
19
+ zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ 'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
32
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
35
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
37
+ };
38
+ run(): Promise<MigrateOutput>;
39
+ }
40
+ export {};
@@ -0,0 +1,83 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { ux } from '@oclif/core';
7
+ import { TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { EcdnZoneCommand, formatApiError } from '../../../utils/ecdn/index.js';
9
+ import { t } from '../../../i18n/index.js';
10
+ const COLUMNS = {
11
+ rulesetId: {
12
+ header: 'Ruleset ID',
13
+ get: (r) => r.rulesetId || '-',
14
+ },
15
+ name: {
16
+ header: 'Name',
17
+ get: (r) => r.name || '-',
18
+ },
19
+ enabled: {
20
+ header: 'Enabled',
21
+ get: (r) => (r.enabled ? 'yes' : 'no'),
22
+ },
23
+ action: {
24
+ header: 'Action',
25
+ get: (r) => r.action || '-',
26
+ },
27
+ };
28
+ const tableRenderer = new TableRenderer(COLUMNS);
29
+ /**
30
+ * Command to migrate a zone from WAF v1 to WAF v2.
31
+ */
32
+ export default class EcdnWafMigrate extends EcdnZoneCommand {
33
+ static description = t('commands.ecdn.waf.migrate.description', 'Migrate a zone from WAF v1 to WAF v2 (only applicable for existing WAFv1 zones)');
34
+ static enableJsonFlag = true;
35
+ static examples = [
36
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone',
37
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --json',
38
+ ];
39
+ static flags = {
40
+ ...EcdnZoneCommand.baseFlags,
41
+ };
42
+ async run() {
43
+ this.requireOAuthCredentials();
44
+ const zoneId = await this.resolveZoneId();
45
+ if (!this.jsonEnabled()) {
46
+ this.log(t('commands.ecdn.waf.migrate.migrating', 'Migrating zone to WAF v2...'));
47
+ }
48
+ const client = this.getCdnZonesRwClient();
49
+ const organizationId = this.getOrganizationId();
50
+ const { data, error } = await client.PUT('/organizations/{organizationId}/zones/{zoneId}/firewall-managed/migration', {
51
+ params: {
52
+ path: { organizationId, zoneId },
53
+ },
54
+ });
55
+ if (error) {
56
+ this.error(t('commands.ecdn.waf.migrate.error', 'Failed to migrate zone to WAF v2: {{message}}', {
57
+ message: formatApiError(error),
58
+ }));
59
+ }
60
+ const rulesets = data?.data ?? [];
61
+ const output = {
62
+ rulesets,
63
+ total: rulesets.length,
64
+ };
65
+ if (this.jsonEnabled()) {
66
+ return output;
67
+ }
68
+ this.log('');
69
+ ux.stdout(t('commands.ecdn.waf.migrate.success', 'Zone successfully migrated to WAF v2!'));
70
+ this.log('');
71
+ if (rulesets.length === 0) {
72
+ this.log(t('commands.ecdn.waf.migrate.noRulesets', 'No WAF rulesets created during migration.'));
73
+ return output;
74
+ }
75
+ this.log(t('commands.ecdn.waf.migrate.count', 'Created {{count}} WAF v2 ruleset(s):', {
76
+ count: rulesets.length,
77
+ }));
78
+ this.log('');
79
+ tableRenderer.render(rulesets, Object.keys(COLUMNS));
80
+ return output;
81
+ }
82
+ }
83
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../../src/commands/ecdn/waf/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
2
+ import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
3
+ type WAFRulePackage = CdnZonesComponents['schemas']['WAFRulePackage'];
4
+ /**
5
+ * Response type for the get command.
6
+ */
7
+ interface GetOutput {
8
+ package: WAFRulePackage;
9
+ }
10
+ /**
11
+ * Command to get OWASP ModSecurity package settings for a zone.
12
+ * Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
13
+ */
14
+ export default class EcdnWafOwaspGet extends EcdnZoneCommand<typeof EcdnWafOwaspGet> {
15
+ static description: string;
16
+ static enableJsonFlag: boolean;
17
+ static examples: string[];
18
+ static flags: {
19
+ zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ 'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
32
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
35
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
37
+ };
38
+ run(): Promise<GetOutput>;
39
+ }
40
+ export {};
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { ux } from '@oclif/core';
7
+ import cliui from 'cliui';
8
+ import { EcdnZoneCommand, formatApiError } from '../../../../utils/ecdn/index.js';
9
+ import { t } from '../../../../i18n/index.js';
10
+ /**
11
+ * Command to get OWASP ModSecurity package settings for a zone.
12
+ * Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
13
+ */
14
+ export default class EcdnWafOwaspGet extends EcdnZoneCommand {
15
+ static description = t('commands.ecdn.waf.owasp.get.description', 'Get OWASP ModSecurity package settings for a zone (not applicable for WAFv2 zones)');
16
+ static enableJsonFlag = true;
17
+ static examples = [
18
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone',
19
+ '<%= config.bin %> <%= command.id %> --tenant-id zzxy_prd --zone my-zone --json',
20
+ ];
21
+ static flags = {
22
+ ...EcdnZoneCommand.baseFlags,
23
+ };
24
+ async run() {
25
+ this.requireOAuthCredentials();
26
+ const zoneId = await this.resolveZoneId();
27
+ if (!this.jsonEnabled()) {
28
+ this.log(t('commands.ecdn.waf.owasp.get.fetching', 'Fetching OWASP package settings...'));
29
+ }
30
+ const client = this.getCdnZonesClient();
31
+ const organizationId = this.getOrganizationId();
32
+ const { data, error } = await client.GET('/organizations/{organizationId}/zones/{zoneId}/firewall/waf/packages/owasp', {
33
+ params: {
34
+ path: { organizationId, zoneId },
35
+ },
36
+ });
37
+ if (error) {
38
+ this.error(t('commands.ecdn.waf.owasp.get.error', 'Failed to fetch OWASP package settings: {{message}}', {
39
+ message: formatApiError(error),
40
+ }));
41
+ }
42
+ const pkg = data?.data;
43
+ if (!pkg) {
44
+ this.error(t('commands.ecdn.waf.owasp.get.noData', 'No OWASP package data returned from API'));
45
+ }
46
+ const output = { package: pkg };
47
+ if (this.jsonEnabled()) {
48
+ return output;
49
+ }
50
+ const ui = cliui({ width: process.stdout.columns || 80 });
51
+ const labelWidth = 18;
52
+ ui.div('');
53
+ ui.div({ text: 'OWASP Package:', padding: [0, 0, 1, 0] });
54
+ ui.div({ text: 'ID:', width: labelWidth }, { text: pkg.id });
55
+ ui.div({ text: 'Name:', width: labelWidth }, { text: pkg.name });
56
+ ui.div({ text: 'Description:', width: labelWidth }, { text: pkg.description });
57
+ ui.div({ text: 'Detection Mode:', width: labelWidth }, { text: pkg.detection_mode });
58
+ ui.div({ text: 'Sensitivity:', width: labelWidth }, { text: pkg.sensitivity });
59
+ ui.div({ text: 'Action Mode:', width: labelWidth }, { text: pkg.action_mode });
60
+ ux.stdout(ui.toString());
61
+ return output;
62
+ }
63
+ }
64
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/ecdn/waf/owasp/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { CdnZonesComponents } from '@salesforce/b2c-tooling-sdk/clients';
2
+ import { EcdnZoneCommand } from '../../../../utils/ecdn/index.js';
3
+ type WAFRulePackage = CdnZonesComponents['schemas']['WAFRulePackage'];
4
+ /**
5
+ * Response type for the update command.
6
+ */
7
+ interface UpdateOutput {
8
+ package: WAFRulePackage;
9
+ }
10
+ /**
11
+ * Command to update OWASP ModSecurity package settings for a zone.
12
+ * Note: This is for WAF v1. For zones created after 24.5, use waf rulesets commands.
13
+ */
14
+ export default class EcdnWafOwaspUpdate extends EcdnZoneCommand<typeof EcdnWafOwaspUpdate> {
15
+ static description: string;
16
+ static enableJsonFlag: boolean;
17
+ static examples: string[];
18
+ static flags: {
19
+ sensitivity: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ 'action-mode': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
+ zone: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'tenant-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
23
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
33
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
35
+ 'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
37
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
38
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
39
+ };
40
+ run(): Promise<UpdateOutput>;
41
+ }
42
+ export {};