@salesforce/b2c-cli 0.2.1 → 0.4.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 (522) hide show
  1. package/README.md +72 -3
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +14 -1
  4. package/dist/commands/am/clients/create.d.ts +28 -0
  5. package/dist/commands/am/clients/create.js +156 -0
  6. package/dist/commands/am/clients/create.js.map +1 -0
  7. package/dist/commands/am/clients/delete.d.ts +13 -0
  8. package/dist/commands/am/clients/delete.js +29 -0
  9. package/dist/commands/am/clients/delete.js.map +1 -0
  10. package/dist/commands/am/clients/get.d.ts +26 -0
  11. package/dist/commands/am/clients/get.js +186 -0
  12. package/dist/commands/am/clients/get.js.map +1 -0
  13. package/dist/commands/am/clients/list.d.ts +18 -0
  14. package/dist/commands/am/clients/list.js +139 -0
  15. package/dist/commands/am/clients/list.js.map +1 -0
  16. package/dist/commands/am/clients/password.d.ts +16 -0
  17. package/dist/commands/am/clients/password.js +51 -0
  18. package/dist/commands/am/clients/password.js.map +1 -0
  19. package/dist/commands/am/clients/update.d.ts +34 -0
  20. package/dist/commands/am/clients/update.js +146 -0
  21. package/dist/commands/am/clients/update.js.map +1 -0
  22. package/dist/commands/am/orgs/get.d.ts +23 -0
  23. package/dist/commands/am/orgs/get.js +175 -0
  24. package/dist/commands/am/orgs/get.js.map +1 -0
  25. package/dist/commands/am/orgs/list.d.ts +18 -0
  26. package/dist/commands/am/orgs/list.js +149 -0
  27. package/dist/commands/am/orgs/list.js.map +1 -0
  28. package/dist/commands/am/roles/get.d.ts +15 -0
  29. package/dist/commands/am/roles/get.js +63 -0
  30. package/dist/commands/am/roles/get.js.map +1 -0
  31. package/dist/commands/am/roles/grant.d.ts +18 -0
  32. package/dist/commands/am/roles/grant.js +66 -0
  33. package/dist/commands/am/roles/grant.js.map +1 -0
  34. package/dist/commands/am/roles/list.d.ts +22 -0
  35. package/dist/commands/am/roles/list.js +142 -0
  36. package/dist/commands/am/roles/list.js.map +1 -0
  37. package/dist/commands/am/roles/revoke.d.ts +18 -0
  38. package/dist/commands/am/roles/revoke.js +66 -0
  39. package/dist/commands/am/roles/revoke.js.map +1 -0
  40. package/dist/commands/am/users/create.d.ts +17 -0
  41. package/dist/commands/am/users/create.js +56 -0
  42. package/dist/commands/am/users/create.js.map +1 -0
  43. package/dist/commands/am/users/delete.d.ts +16 -0
  44. package/dist/commands/am/users/delete.js +63 -0
  45. package/dist/commands/am/users/delete.js.map +1 -0
  46. package/dist/commands/am/users/get.d.ts +23 -0
  47. package/dist/commands/am/users/get.js +161 -0
  48. package/dist/commands/am/users/get.js.map +1 -0
  49. package/dist/commands/am/users/list.d.ts +21 -0
  50. package/dist/commands/am/users/list.js +162 -0
  51. package/dist/commands/am/users/list.js.map +1 -0
  52. package/dist/commands/am/users/reset.d.ts +13 -0
  53. package/dist/commands/am/users/reset.js +43 -0
  54. package/dist/commands/am/users/reset.js.map +1 -0
  55. package/dist/commands/am/users/update.d.ts +18 -0
  56. package/dist/commands/am/users/update.js +63 -0
  57. package/dist/commands/am/users/update.js.map +1 -0
  58. package/dist/commands/auth/token.js +2 -2
  59. package/dist/commands/auth/token.js.map +1 -1
  60. package/dist/commands/code/activate.d.ts +5 -0
  61. package/dist/commands/code/activate.js +2 -2
  62. package/dist/commands/code/activate.js.map +1 -1
  63. package/dist/commands/code/delete.d.ts +5 -0
  64. package/dist/commands/code/delete.js +2 -2
  65. package/dist/commands/code/delete.js.map +1 -1
  66. package/dist/commands/code/deploy.d.ts +5 -0
  67. package/dist/commands/code/deploy.js +12 -3
  68. package/dist/commands/code/deploy.js.map +1 -1
  69. package/dist/commands/code/list.js +2 -2
  70. package/dist/commands/code/list.js.map +1 -1
  71. package/dist/commands/code/watch.d.ts +5 -0
  72. package/dist/commands/code/watch.js +6 -3
  73. package/dist/commands/code/watch.js.map +1 -1
  74. package/dist/commands/content/export.d.ts +57 -0
  75. package/dist/commands/content/export.js +217 -0
  76. package/dist/commands/content/export.js.map +1 -0
  77. package/dist/commands/content/list.d.ts +56 -0
  78. package/dist/commands/content/list.js +133 -0
  79. package/dist/commands/content/list.js.map +1 -0
  80. package/dist/commands/docs/download.d.ts +6 -1
  81. package/dist/commands/docs/download.js +1 -1
  82. package/dist/commands/docs/download.js.map +1 -1
  83. package/dist/commands/docs/read.d.ts +1 -1
  84. package/dist/commands/docs/read.js +1 -1
  85. package/dist/commands/docs/read.js.map +1 -1
  86. package/dist/commands/docs/schema.d.ts +1 -1
  87. package/dist/commands/docs/schema.js +1 -1
  88. package/dist/commands/docs/schema.js.map +1 -1
  89. package/dist/commands/docs/search.d.ts +1 -1
  90. package/dist/commands/docs/search.js +1 -1
  91. package/dist/commands/docs/search.js.map +1 -1
  92. package/dist/commands/ecdn/cache/purge.d.ts +1 -0
  93. package/dist/commands/ecdn/cache/purge.js +2 -2
  94. package/dist/commands/ecdn/cache/purge.js.map +1 -1
  95. package/dist/commands/ecdn/certificates/add.d.ts +1 -0
  96. package/dist/commands/ecdn/certificates/add.js +2 -2
  97. package/dist/commands/ecdn/certificates/add.js.map +1 -1
  98. package/dist/commands/ecdn/certificates/delete.d.ts +1 -0
  99. package/dist/commands/ecdn/certificates/delete.js +2 -2
  100. package/dist/commands/ecdn/certificates/delete.js.map +1 -1
  101. package/dist/commands/ecdn/certificates/list.d.ts +1 -0
  102. package/dist/commands/ecdn/certificates/list.js +2 -2
  103. package/dist/commands/ecdn/certificates/list.js.map +1 -1
  104. package/dist/commands/ecdn/certificates/update.d.ts +1 -0
  105. package/dist/commands/ecdn/certificates/update.js +2 -2
  106. package/dist/commands/ecdn/certificates/update.js.map +1 -1
  107. package/dist/commands/ecdn/certificates/validate.d.ts +1 -0
  108. package/dist/commands/ecdn/certificates/validate.js +2 -2
  109. package/dist/commands/ecdn/certificates/validate.js.map +1 -1
  110. package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -0
  111. package/dist/commands/ecdn/cipher-suites/get.js +2 -2
  112. package/dist/commands/ecdn/cipher-suites/get.js.map +1 -1
  113. package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -0
  114. package/dist/commands/ecdn/cipher-suites/update.js +2 -2
  115. package/dist/commands/ecdn/cipher-suites/update.js.map +1 -1
  116. package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -0
  117. package/dist/commands/ecdn/logpush/jobs/create.js +2 -2
  118. package/dist/commands/ecdn/logpush/jobs/create.js.map +1 -1
  119. package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -0
  120. package/dist/commands/ecdn/logpush/jobs/delete.js +2 -2
  121. package/dist/commands/ecdn/logpush/jobs/delete.js.map +1 -1
  122. package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -0
  123. package/dist/commands/ecdn/logpush/jobs/get.js +2 -2
  124. package/dist/commands/ecdn/logpush/jobs/get.js.map +1 -1
  125. package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -0
  126. package/dist/commands/ecdn/logpush/jobs/list.js +2 -2
  127. package/dist/commands/ecdn/logpush/jobs/list.js.map +1 -1
  128. package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -0
  129. package/dist/commands/ecdn/logpush/jobs/update.js +2 -2
  130. package/dist/commands/ecdn/logpush/jobs/update.js.map +1 -1
  131. package/dist/commands/ecdn/logpush/ownership.d.ts +1 -0
  132. package/dist/commands/ecdn/logpush/ownership.js +2 -2
  133. package/dist/commands/ecdn/logpush/ownership.js.map +1 -1
  134. package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -0
  135. package/dist/commands/ecdn/mrt-rules/create.js +2 -2
  136. package/dist/commands/ecdn/mrt-rules/create.js.map +1 -1
  137. package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -0
  138. package/dist/commands/ecdn/mrt-rules/delete.js +2 -2
  139. package/dist/commands/ecdn/mrt-rules/delete.js.map +1 -1
  140. package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -0
  141. package/dist/commands/ecdn/mrt-rules/get.js +2 -2
  142. package/dist/commands/ecdn/mrt-rules/get.js.map +1 -1
  143. package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -0
  144. package/dist/commands/ecdn/mrt-rules/rules/delete.js +2 -2
  145. package/dist/commands/ecdn/mrt-rules/rules/delete.js.map +1 -1
  146. package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -0
  147. package/dist/commands/ecdn/mrt-rules/rules/update.js +2 -2
  148. package/dist/commands/ecdn/mrt-rules/rules/update.js.map +1 -1
  149. package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -0
  150. package/dist/commands/ecdn/mrt-rules/update.js +2 -2
  151. package/dist/commands/ecdn/mrt-rules/update.js.map +1 -1
  152. package/dist/commands/ecdn/mtls/create.d.ts +1 -0
  153. package/dist/commands/ecdn/mtls/create.js +2 -2
  154. package/dist/commands/ecdn/mtls/create.js.map +1 -1
  155. package/dist/commands/ecdn/mtls/delete.d.ts +1 -0
  156. package/dist/commands/ecdn/mtls/delete.js +2 -2
  157. package/dist/commands/ecdn/mtls/delete.js.map +1 -1
  158. package/dist/commands/ecdn/mtls/get.d.ts +1 -0
  159. package/dist/commands/ecdn/mtls/get.js +2 -2
  160. package/dist/commands/ecdn/mtls/get.js.map +1 -1
  161. package/dist/commands/ecdn/mtls/list.d.ts +1 -0
  162. package/dist/commands/ecdn/mtls/list.js +2 -2
  163. package/dist/commands/ecdn/mtls/list.js.map +1 -1
  164. package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -0
  165. package/dist/commands/ecdn/origin-headers/delete.js +2 -2
  166. package/dist/commands/ecdn/origin-headers/delete.js.map +1 -1
  167. package/dist/commands/ecdn/origin-headers/get.d.ts +1 -0
  168. package/dist/commands/ecdn/origin-headers/get.js +2 -2
  169. package/dist/commands/ecdn/origin-headers/get.js.map +1 -1
  170. package/dist/commands/ecdn/origin-headers/set.d.ts +1 -0
  171. package/dist/commands/ecdn/origin-headers/set.js +2 -2
  172. package/dist/commands/ecdn/origin-headers/set.js.map +1 -1
  173. package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -0
  174. package/dist/commands/ecdn/page-shield/notifications/create.js +2 -2
  175. package/dist/commands/ecdn/page-shield/notifications/create.js.map +1 -1
  176. package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -0
  177. package/dist/commands/ecdn/page-shield/notifications/delete.js +2 -2
  178. package/dist/commands/ecdn/page-shield/notifications/delete.js.map +1 -1
  179. package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -0
  180. package/dist/commands/ecdn/page-shield/notifications/list.js +2 -2
  181. package/dist/commands/ecdn/page-shield/notifications/list.js.map +1 -1
  182. package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -0
  183. package/dist/commands/ecdn/page-shield/policies/create.js +2 -2
  184. package/dist/commands/ecdn/page-shield/policies/create.js.map +1 -1
  185. package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -0
  186. package/dist/commands/ecdn/page-shield/policies/delete.js +2 -2
  187. package/dist/commands/ecdn/page-shield/policies/delete.js.map +1 -1
  188. package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -0
  189. package/dist/commands/ecdn/page-shield/policies/get.js +2 -2
  190. package/dist/commands/ecdn/page-shield/policies/get.js.map +1 -1
  191. package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -0
  192. package/dist/commands/ecdn/page-shield/policies/list.js +2 -2
  193. package/dist/commands/ecdn/page-shield/policies/list.js.map +1 -1
  194. package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -0
  195. package/dist/commands/ecdn/page-shield/policies/update.js +2 -2
  196. package/dist/commands/ecdn/page-shield/policies/update.js.map +1 -1
  197. package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -0
  198. package/dist/commands/ecdn/page-shield/scripts/get.js +2 -2
  199. package/dist/commands/ecdn/page-shield/scripts/get.js.map +1 -1
  200. package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -0
  201. package/dist/commands/ecdn/page-shield/scripts/list.js +2 -2
  202. package/dist/commands/ecdn/page-shield/scripts/list.js.map +1 -1
  203. package/dist/commands/ecdn/security/get.d.ts +1 -0
  204. package/dist/commands/ecdn/security/get.js +2 -2
  205. package/dist/commands/ecdn/security/get.js.map +1 -1
  206. package/dist/commands/ecdn/security/update.d.ts +1 -0
  207. package/dist/commands/ecdn/security/update.js +2 -2
  208. package/dist/commands/ecdn/security/update.js.map +1 -1
  209. package/dist/commands/ecdn/speed/get.d.ts +1 -0
  210. package/dist/commands/ecdn/speed/get.js +2 -2
  211. package/dist/commands/ecdn/speed/get.js.map +1 -1
  212. package/dist/commands/ecdn/speed/update.d.ts +1 -0
  213. package/dist/commands/ecdn/speed/update.js +2 -2
  214. package/dist/commands/ecdn/speed/update.js.map +1 -1
  215. package/dist/commands/ecdn/waf/groups/list.d.ts +1 -0
  216. package/dist/commands/ecdn/waf/groups/list.js +2 -2
  217. package/dist/commands/ecdn/waf/groups/list.js.map +1 -1
  218. package/dist/commands/ecdn/waf/groups/update.d.ts +1 -0
  219. package/dist/commands/ecdn/waf/groups/update.js +2 -2
  220. package/dist/commands/ecdn/waf/groups/update.js.map +1 -1
  221. package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -0
  222. package/dist/commands/ecdn/waf/managed-rules/list.js +2 -2
  223. package/dist/commands/ecdn/waf/managed-rules/list.js.map +1 -1
  224. package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -0
  225. package/dist/commands/ecdn/waf/managed-rules/update.js +2 -2
  226. package/dist/commands/ecdn/waf/managed-rules/update.js.map +1 -1
  227. package/dist/commands/ecdn/waf/migrate.d.ts +1 -0
  228. package/dist/commands/ecdn/waf/migrate.js +2 -2
  229. package/dist/commands/ecdn/waf/migrate.js.map +1 -1
  230. package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -0
  231. package/dist/commands/ecdn/waf/owasp/get.js +2 -2
  232. package/dist/commands/ecdn/waf/owasp/get.js.map +1 -1
  233. package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -0
  234. package/dist/commands/ecdn/waf/owasp/update.js +2 -2
  235. package/dist/commands/ecdn/waf/owasp/update.js.map +1 -1
  236. package/dist/commands/ecdn/waf/rules/get.d.ts +1 -0
  237. package/dist/commands/ecdn/waf/rules/get.js +2 -2
  238. package/dist/commands/ecdn/waf/rules/get.js.map +1 -1
  239. package/dist/commands/ecdn/waf/rules/list.d.ts +1 -0
  240. package/dist/commands/ecdn/waf/rules/list.js +2 -2
  241. package/dist/commands/ecdn/waf/rules/list.js.map +1 -1
  242. package/dist/commands/ecdn/waf/rules/update.d.ts +1 -0
  243. package/dist/commands/ecdn/waf/rules/update.js +2 -2
  244. package/dist/commands/ecdn/waf/rules/update.js.map +1 -1
  245. package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -0
  246. package/dist/commands/ecdn/waf/rulesets/list.js +2 -2
  247. package/dist/commands/ecdn/waf/rulesets/list.js.map +1 -1
  248. package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -0
  249. package/dist/commands/ecdn/waf/rulesets/update.js +2 -2
  250. package/dist/commands/ecdn/waf/rulesets/update.js.map +1 -1
  251. package/dist/commands/ecdn/zones/create.d.ts +1 -0
  252. package/dist/commands/ecdn/zones/create.js +2 -2
  253. package/dist/commands/ecdn/zones/create.js.map +1 -1
  254. package/dist/commands/ecdn/zones/list.d.ts +1 -0
  255. package/dist/commands/ecdn/zones/list.js +2 -2
  256. package/dist/commands/ecdn/zones/list.js.map +1 -1
  257. package/dist/commands/job/export.d.ts +5 -0
  258. package/dist/commands/job/export.js +2 -2
  259. package/dist/commands/job/export.js.map +1 -1
  260. package/dist/commands/job/import.d.ts +5 -0
  261. package/dist/commands/job/import.js +2 -2
  262. package/dist/commands/job/import.js.map +1 -1
  263. package/dist/commands/job/run.d.ts +5 -0
  264. package/dist/commands/job/run.js +2 -2
  265. package/dist/commands/job/run.js.map +1 -1
  266. package/dist/commands/job/search.d.ts +5 -0
  267. package/dist/commands/job/search.js +2 -2
  268. package/dist/commands/job/search.js.map +1 -1
  269. package/dist/commands/job/wait.d.ts +5 -0
  270. package/dist/commands/job/wait.js +2 -2
  271. package/dist/commands/job/wait.js.map +1 -1
  272. package/dist/commands/logs/get.d.ts +50 -0
  273. package/dist/commands/logs/get.js +122 -0
  274. package/dist/commands/logs/get.js.map +1 -0
  275. package/dist/commands/logs/list.d.ts +45 -0
  276. package/dist/commands/logs/list.js +94 -0
  277. package/dist/commands/logs/list.js.map +1 -0
  278. package/dist/commands/logs/tail.d.ts +44 -0
  279. package/dist/commands/logs/tail.js +138 -0
  280. package/dist/commands/logs/tail.js.map +1 -0
  281. package/dist/commands/mrt/bundle/deploy.js +26 -6
  282. package/dist/commands/mrt/bundle/deploy.js.map +1 -1
  283. package/dist/commands/mrt/bundle/download.js +2 -2
  284. package/dist/commands/mrt/bundle/download.js.map +1 -1
  285. package/dist/commands/mrt/bundle/history.js +2 -2
  286. package/dist/commands/mrt/bundle/history.js.map +1 -1
  287. package/dist/commands/mrt/bundle/list.js +2 -2
  288. package/dist/commands/mrt/bundle/list.js.map +1 -1
  289. package/dist/commands/mrt/env/access-control/list.js +2 -2
  290. package/dist/commands/mrt/env/access-control/list.js.map +1 -1
  291. package/dist/commands/mrt/env/b2c.js +2 -2
  292. package/dist/commands/mrt/env/b2c.js.map +1 -1
  293. package/dist/commands/mrt/env/create.js +2 -2
  294. package/dist/commands/mrt/env/create.js.map +1 -1
  295. package/dist/commands/mrt/env/delete.js +2 -2
  296. package/dist/commands/mrt/env/delete.js.map +1 -1
  297. package/dist/commands/mrt/env/get.js +2 -2
  298. package/dist/commands/mrt/env/get.js.map +1 -1
  299. package/dist/commands/mrt/env/invalidate.js +2 -2
  300. package/dist/commands/mrt/env/invalidate.js.map +1 -1
  301. package/dist/commands/mrt/env/list.js +2 -2
  302. package/dist/commands/mrt/env/list.js.map +1 -1
  303. package/dist/commands/mrt/env/redirect/clone.js +2 -2
  304. package/dist/commands/mrt/env/redirect/clone.js.map +1 -1
  305. package/dist/commands/mrt/env/redirect/create.js +2 -2
  306. package/dist/commands/mrt/env/redirect/create.js.map +1 -1
  307. package/dist/commands/mrt/env/redirect/delete.js +2 -2
  308. package/dist/commands/mrt/env/redirect/delete.js.map +1 -1
  309. package/dist/commands/mrt/env/redirect/list.js +2 -2
  310. package/dist/commands/mrt/env/redirect/list.js.map +1 -1
  311. package/dist/commands/mrt/env/update.js +2 -2
  312. package/dist/commands/mrt/env/update.js.map +1 -1
  313. package/dist/commands/mrt/env/var/delete.js +2 -2
  314. package/dist/commands/mrt/env/var/delete.js.map +1 -1
  315. package/dist/commands/mrt/env/var/list.js +2 -2
  316. package/dist/commands/mrt/env/var/list.js.map +1 -1
  317. package/dist/commands/mrt/env/var/set.js +2 -2
  318. package/dist/commands/mrt/env/var/set.js.map +1 -1
  319. package/dist/commands/mrt/org/b2c.js +2 -2
  320. package/dist/commands/mrt/org/b2c.js.map +1 -1
  321. package/dist/commands/mrt/org/list.js +2 -2
  322. package/dist/commands/mrt/org/list.js.map +1 -1
  323. package/dist/commands/mrt/project/create.js +2 -2
  324. package/dist/commands/mrt/project/create.js.map +1 -1
  325. package/dist/commands/mrt/project/delete.js +2 -2
  326. package/dist/commands/mrt/project/delete.js.map +1 -1
  327. package/dist/commands/mrt/project/get.js +2 -2
  328. package/dist/commands/mrt/project/get.js.map +1 -1
  329. package/dist/commands/mrt/project/list.js +2 -2
  330. package/dist/commands/mrt/project/list.js.map +1 -1
  331. package/dist/commands/mrt/project/member/add.js +2 -2
  332. package/dist/commands/mrt/project/member/add.js.map +1 -1
  333. package/dist/commands/mrt/project/member/get.js +2 -2
  334. package/dist/commands/mrt/project/member/get.js.map +1 -1
  335. package/dist/commands/mrt/project/member/list.js +2 -2
  336. package/dist/commands/mrt/project/member/list.js.map +1 -1
  337. package/dist/commands/mrt/project/member/remove.js +2 -2
  338. package/dist/commands/mrt/project/member/remove.js.map +1 -1
  339. package/dist/commands/mrt/project/member/update.js +2 -2
  340. package/dist/commands/mrt/project/member/update.js.map +1 -1
  341. package/dist/commands/mrt/project/notification/create.js +2 -2
  342. package/dist/commands/mrt/project/notification/create.js.map +1 -1
  343. package/dist/commands/mrt/project/notification/delete.js +2 -2
  344. package/dist/commands/mrt/project/notification/delete.js.map +1 -1
  345. package/dist/commands/mrt/project/notification/get.js +2 -2
  346. package/dist/commands/mrt/project/notification/get.js.map +1 -1
  347. package/dist/commands/mrt/project/notification/list.js +2 -2
  348. package/dist/commands/mrt/project/notification/list.js.map +1 -1
  349. package/dist/commands/mrt/project/notification/update.js +2 -2
  350. package/dist/commands/mrt/project/notification/update.js.map +1 -1
  351. package/dist/commands/mrt/project/update.js +2 -2
  352. package/dist/commands/mrt/project/update.js.map +1 -1
  353. package/dist/commands/mrt/tail-logs.d.ts +27 -0
  354. package/dist/commands/mrt/tail-logs.js +137 -0
  355. package/dist/commands/mrt/tail-logs.js.map +1 -0
  356. package/dist/commands/mrt/user/api-key.js +2 -2
  357. package/dist/commands/mrt/user/api-key.js.map +1 -1
  358. package/dist/commands/mrt/user/email-prefs.js +2 -2
  359. package/dist/commands/mrt/user/email-prefs.js.map +1 -1
  360. package/dist/commands/mrt/user/profile.js +2 -2
  361. package/dist/commands/mrt/user/profile.js.map +1 -1
  362. package/dist/commands/{ods → sandbox}/create.d.ts +8 -14
  363. package/dist/commands/sandbox/create.js +264 -0
  364. package/dist/commands/sandbox/create.js.map +1 -0
  365. package/dist/commands/sandbox/delete.d.ts +19 -0
  366. package/dist/commands/sandbox/delete.js +141 -0
  367. package/dist/commands/sandbox/delete.js.map +1 -0
  368. package/dist/commands/{ods → sandbox}/get.d.ts +2 -1
  369. package/dist/commands/{ods → sandbox}/get.js +10 -8
  370. package/dist/commands/sandbox/get.js.map +1 -0
  371. package/dist/commands/{ods → sandbox}/info.d.ts +2 -1
  372. package/dist/commands/{ods → sandbox}/info.js +7 -6
  373. package/dist/commands/sandbox/info.js.map +1 -0
  374. package/dist/commands/{ods → sandbox}/list.d.ts +2 -1
  375. package/dist/commands/{ods → sandbox}/list.js +7 -6
  376. package/dist/commands/sandbox/list.js.map +1 -0
  377. package/dist/commands/{ods → sandbox}/restart.d.ts +7 -1
  378. package/dist/commands/sandbox/restart.js +107 -0
  379. package/dist/commands/sandbox/restart.js.map +1 -0
  380. package/dist/commands/{ods → sandbox}/start.d.ts +7 -1
  381. package/dist/commands/sandbox/start.js +108 -0
  382. package/dist/commands/sandbox/start.js.map +1 -0
  383. package/dist/commands/{ods → sandbox}/stop.d.ts +7 -1
  384. package/dist/commands/sandbox/stop.js +107 -0
  385. package/dist/commands/sandbox/stop.js.map +1 -0
  386. package/dist/commands/scaffold/generate.d.ts +22 -0
  387. package/dist/commands/scaffold/generate.js +74 -0
  388. package/dist/commands/scaffold/generate.js.map +1 -0
  389. package/dist/commands/scaffold/index.d.ts +24 -0
  390. package/dist/commands/scaffold/index.js +80 -0
  391. package/dist/commands/scaffold/index.js.map +1 -0
  392. package/dist/commands/scaffold/info.d.ts +24 -0
  393. package/dist/commands/scaffold/info.js +89 -0
  394. package/dist/commands/scaffold/info.js.map +1 -0
  395. package/dist/commands/scaffold/init.d.ts +29 -0
  396. package/dist/commands/scaffold/init.js +221 -0
  397. package/dist/commands/scaffold/init.js.map +1 -0
  398. package/dist/commands/scaffold/list.d.ts +38 -0
  399. package/dist/commands/scaffold/list.js +131 -0
  400. package/dist/commands/scaffold/list.js.map +1 -0
  401. package/dist/commands/scaffold/search.d.ts +32 -0
  402. package/dist/commands/scaffold/search.js +97 -0
  403. package/dist/commands/scaffold/search.js.map +1 -0
  404. package/dist/commands/scaffold/validate.d.ts +24 -0
  405. package/dist/commands/scaffold/validate.js +74 -0
  406. package/dist/commands/scaffold/validate.js.map +1 -0
  407. package/dist/commands/scapi/custom/status.d.ts +2 -20
  408. package/dist/commands/scapi/custom/status.js +4 -11
  409. package/dist/commands/scapi/custom/status.js.map +1 -1
  410. package/dist/commands/scapi/schemas/get.d.ts +1 -0
  411. package/dist/commands/scapi/schemas/get.js +3 -3
  412. package/dist/commands/scapi/schemas/get.js.map +1 -1
  413. package/dist/commands/scapi/schemas/list.d.ts +1 -0
  414. package/dist/commands/scapi/schemas/list.js +2 -2
  415. package/dist/commands/scapi/schemas/list.js.map +1 -1
  416. package/dist/commands/setup/index.d.ts +12 -0
  417. package/dist/commands/setup/index.js +34 -0
  418. package/dist/commands/setup/index.js.map +1 -0
  419. package/dist/commands/setup/{config.d.ts → inspect.d.ts} +5 -4
  420. package/dist/commands/setup/{config.js → inspect.js} +6 -3
  421. package/dist/commands/setup/inspect.js.map +1 -0
  422. package/dist/commands/setup/instance/create.d.ts +43 -0
  423. package/dist/commands/setup/instance/create.js +269 -0
  424. package/dist/commands/setup/instance/create.js.map +1 -0
  425. package/dist/commands/setup/instance/index.d.ts +9 -0
  426. package/dist/commands/setup/instance/index.js +22 -0
  427. package/dist/commands/setup/instance/index.js.map +1 -0
  428. package/dist/commands/setup/instance/list.d.ts +31 -0
  429. package/dist/commands/setup/instance/list.js +68 -0
  430. package/dist/commands/setup/instance/list.js.map +1 -0
  431. package/dist/commands/setup/instance/remove.d.ts +34 -0
  432. package/dist/commands/setup/instance/remove.js +75 -0
  433. package/dist/commands/setup/instance/remove.js.map +1 -0
  434. package/dist/commands/setup/instance/set-active.d.ts +33 -0
  435. package/dist/commands/setup/instance/set-active.js +78 -0
  436. package/dist/commands/setup/instance/set-active.js.map +1 -0
  437. package/dist/commands/setup/skills.js +2 -2
  438. package/dist/commands/setup/skills.js.map +1 -1
  439. package/dist/commands/sites/list.js +2 -2
  440. package/dist/commands/sites/list.js.map +1 -1
  441. package/dist/commands/slas/client/create.d.ts +1 -0
  442. package/dist/commands/slas/client/create.js +3 -2
  443. package/dist/commands/slas/client/create.js.map +1 -1
  444. package/dist/commands/slas/client/delete.d.ts +1 -0
  445. package/dist/commands/slas/client/delete.js +2 -2
  446. package/dist/commands/slas/client/delete.js.map +1 -1
  447. package/dist/commands/slas/client/get.d.ts +1 -0
  448. package/dist/commands/slas/client/get.js +2 -2
  449. package/dist/commands/slas/client/get.js.map +1 -1
  450. package/dist/commands/slas/client/list.d.ts +1 -0
  451. package/dist/commands/slas/client/list.js +10 -5
  452. package/dist/commands/slas/client/list.js.map +1 -1
  453. package/dist/commands/slas/client/open.js +2 -2
  454. package/dist/commands/slas/client/open.js.map +1 -1
  455. package/dist/commands/slas/client/update.d.ts +1 -0
  456. package/dist/commands/slas/client/update.js +2 -2
  457. package/dist/commands/slas/client/update.js.map +1 -1
  458. package/dist/commands/webdav/get.d.ts +5 -0
  459. package/dist/commands/webdav/get.js +2 -2
  460. package/dist/commands/webdav/get.js.map +1 -1
  461. package/dist/commands/webdav/ls.js +2 -2
  462. package/dist/commands/webdav/ls.js.map +1 -1
  463. package/dist/commands/webdav/mkdir.js +2 -2
  464. package/dist/commands/webdav/mkdir.js.map +1 -1
  465. package/dist/commands/webdav/put.js +2 -2
  466. package/dist/commands/webdav/put.js.map +1 -1
  467. package/dist/commands/webdav/rm.d.ts +5 -0
  468. package/dist/commands/webdav/rm.js +2 -2
  469. package/dist/commands/webdav/rm.js.map +1 -1
  470. package/dist/commands/webdav/unzip.js +2 -2
  471. package/dist/commands/webdav/unzip.js.map +1 -1
  472. package/dist/commands/webdav/zip.js +2 -2
  473. package/dist/commands/webdav/zip.js.map +1 -1
  474. package/dist/i18n/index.d.ts +12 -0
  475. package/dist/i18n/index.js +16 -0
  476. package/dist/i18n/index.js.map +1 -1
  477. package/dist/i18n/locales/en.d.ts +42 -0
  478. package/dist/i18n/locales/en.js +42 -0
  479. package/dist/i18n/locales/en.js.map +1 -1
  480. package/dist/i18n/locales/index.d.ts +42 -0
  481. package/dist/lib/scaffold/generate-helper.d.ts +47 -0
  482. package/dist/lib/scaffold/generate-helper.js +271 -0
  483. package/dist/lib/scaffold/generate-helper.js.map +1 -0
  484. package/dist/lib/scaffold/source-resolver.d.ts +25 -0
  485. package/dist/lib/scaffold/source-resolver.js +37 -0
  486. package/dist/lib/scaffold/source-resolver.js.map +1 -0
  487. package/dist/utils/ecdn/zone-command.d.ts +1 -0
  488. package/dist/utils/logs/filter.d.ts +40 -0
  489. package/dist/utils/logs/filter.js +112 -0
  490. package/dist/utils/logs/filter.js.map +1 -0
  491. package/dist/utils/logs/format.d.ts +18 -0
  492. package/dist/utils/logs/format.js +74 -0
  493. package/dist/utils/logs/format.js.map +1 -0
  494. package/dist/utils/logs/index.d.ts +2 -0
  495. package/dist/utils/logs/index.js +8 -0
  496. package/dist/utils/logs/index.js.map +1 -0
  497. package/dist/utils/mrt-logs/format.d.ts +28 -0
  498. package/dist/utils/mrt-logs/format.js +90 -0
  499. package/dist/utils/mrt-logs/format.js.map +1 -0
  500. package/dist/utils/mrt-logs/index.d.ts +1 -0
  501. package/dist/utils/mrt-logs/index.js +7 -0
  502. package/dist/utils/mrt-logs/index.js.map +1 -0
  503. package/dist/utils/slas/client.d.ts +7 -5
  504. package/dist/utils/slas/client.js +26 -24
  505. package/dist/utils/slas/client.js.map +1 -1
  506. package/oclif.manifest.json +15624 -5067
  507. package/package.json +115 -63
  508. package/dist/commands/ods/create.js +0 -254
  509. package/dist/commands/ods/create.js.map +0 -1
  510. package/dist/commands/ods/delete.d.ts +0 -15
  511. package/dist/commands/ods/delete.js +0 -85
  512. package/dist/commands/ods/delete.js.map +0 -1
  513. package/dist/commands/ods/get.js.map +0 -1
  514. package/dist/commands/ods/info.js.map +0 -1
  515. package/dist/commands/ods/list.js.map +0 -1
  516. package/dist/commands/ods/restart.js +0 -50
  517. package/dist/commands/ods/restart.js.map +0 -1
  518. package/dist/commands/ods/start.js +0 -50
  519. package/dist/commands/ods/start.js.map +0 -1
  520. package/dist/commands/ods/stop.js +0 -50
  521. package/dist/commands/ods/stop.js.map +0 -1
  522. package/dist/commands/setup/config.js.map +0 -1
@@ -0,0 +1,221 @@
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 fs from 'node:fs/promises';
7
+ import os from 'node:os';
8
+ import path from 'node:path';
9
+ import { Args, Flags } from '@oclif/core';
10
+ import { input, select } from '@inquirer/prompts';
11
+ import { BaseCommand } from '@salesforce/b2c-tooling-sdk/cli';
12
+ import { isValidScaffoldName } from '@salesforce/b2c-tooling-sdk/scaffold';
13
+ import { t, withDocs } from '../../i18n/index.js';
14
+ const SCAFFOLD_TEMPLATE = `{
15
+ "name": "{{name}}",
16
+ "displayName": "{{displayName}}",
17
+ "description": "{{description}}",
18
+ "category": "{{category}}",
19
+ "version": "1.0",
20
+ "tags": [],
21
+ "parameters": [
22
+ {
23
+ "name": "exampleParam",
24
+ "prompt": "Enter a value for the example parameter:",
25
+ "type": "string",
26
+ "required": true
27
+ }
28
+ ],
29
+ "files": [
30
+ {
31
+ "template": "example.txt.ejs",
32
+ "destination": "{{exampleParam}}/example.txt"
33
+ }
34
+ ],
35
+ "postInstructions": "Your scaffold has been generated!\\n\\nNext steps:\\n1. Review the generated files\\n2. Customize as needed"
36
+ }`;
37
+ const EXAMPLE_TEMPLATE = `<%# Example template file %>
38
+ <%# Available helpers: kebabCase, camelCase, pascalCase, snakeCase, year, date, uuid %>
39
+
40
+ This is an example file generated by the <%= name %> scaffold.
41
+
42
+ Parameter value: <%= exampleParam %>
43
+ Generated on: <%= date %>
44
+ `;
45
+ /**
46
+ * Command to initialize a new custom scaffold.
47
+ */
48
+ export default class ScaffoldInit extends BaseCommand {
49
+ static args = {
50
+ name: Args.string({
51
+ description: 'Name for the new scaffold (kebab-case)',
52
+ required: false,
53
+ }),
54
+ };
55
+ static description = withDocs(t('commands.scaffold.init.description', 'Create a new custom scaffold template'), '/cli/scaffold.html#b2c-scaffold-init');
56
+ static enableJsonFlag = true;
57
+ static examples = [
58
+ '<%= config.bin %> <%= command.id %> my-scaffold',
59
+ '<%= config.bin %> <%= command.id %> my-scaffold --project',
60
+ '<%= config.bin %> <%= command.id %> my-scaffold --user',
61
+ '<%= config.bin %> <%= command.id %> --output ./scaffolds/custom',
62
+ ];
63
+ static flags = {
64
+ project: Flags.boolean({
65
+ description: 'Create in project scaffolds directory (.b2c/scaffolds/)',
66
+ exclusive: ['user', 'output'],
67
+ }),
68
+ user: Flags.boolean({
69
+ description: 'Create in user scaffolds directory (~/.b2c/scaffolds/)',
70
+ exclusive: ['project', 'output'],
71
+ }),
72
+ output: Flags.string({
73
+ char: 'o',
74
+ description: 'Custom output directory for the scaffold',
75
+ exclusive: ['project', 'user'],
76
+ }),
77
+ force: Flags.boolean({
78
+ char: 'f',
79
+ description: 'Overwrite existing scaffold if it exists',
80
+ default: false,
81
+ }),
82
+ };
83
+ async run() {
84
+ let scaffoldName = this.args.name;
85
+ const isTTY = process.stdin.isTTY && process.stdout.isTTY;
86
+ // Prompt for name if not provided
87
+ if (!scaffoldName && isTTY) {
88
+ scaffoldName = await input({
89
+ message: 'What is the scaffold name?',
90
+ validate(value) {
91
+ if (!value)
92
+ return 'Name is required';
93
+ if (!isValidScaffoldName(value)) {
94
+ return 'Scaffold name must be kebab-case (lowercase letters, numbers, hyphens)';
95
+ }
96
+ return true;
97
+ },
98
+ });
99
+ }
100
+ if (!scaffoldName) {
101
+ this.error('Scaffold name is required');
102
+ }
103
+ if (!isValidScaffoldName(scaffoldName)) {
104
+ this.error('Scaffold name must be kebab-case (lowercase letters, numbers, hyphens)');
105
+ }
106
+ // Determine output location
107
+ let scaffoldDir;
108
+ let location;
109
+ if (this.flags.output) {
110
+ scaffoldDir = path.resolve(this.flags.output, scaffoldName);
111
+ location = 'custom';
112
+ }
113
+ else if (this.flags.user) {
114
+ scaffoldDir = path.join(os.homedir(), '.b2c', 'scaffolds', scaffoldName);
115
+ location = 'user';
116
+ }
117
+ else if (this.flags.project || !isTTY) {
118
+ scaffoldDir = path.join(process.cwd(), '.b2c', 'scaffolds', scaffoldName);
119
+ location = 'project';
120
+ }
121
+ else {
122
+ // Interactive location selection
123
+ const selectedLocation = await select({
124
+ message: 'Where should the scaffold be created?',
125
+ choices: [
126
+ {
127
+ name: 'Project (.b2c/scaffolds/)',
128
+ value: 'project',
129
+ description: 'Scaffold available only in this project',
130
+ },
131
+ {
132
+ name: 'User (~/.b2c/scaffolds/)',
133
+ value: 'user',
134
+ description: 'Scaffold available to all your projects',
135
+ },
136
+ ],
137
+ });
138
+ location = selectedLocation;
139
+ scaffoldDir =
140
+ location === 'user'
141
+ ? path.join(os.homedir(), '.b2c', 'scaffolds', scaffoldName)
142
+ : path.join(process.cwd(), '.b2c', 'scaffolds', scaffoldName);
143
+ }
144
+ // Check if scaffold already exists
145
+ try {
146
+ await fs.access(scaffoldDir);
147
+ if (!this.flags.force) {
148
+ this.error(`Scaffold already exists at ${scaffoldDir}. Use --force to overwrite.`);
149
+ }
150
+ }
151
+ catch {
152
+ // Directory doesn't exist, which is what we want
153
+ }
154
+ // Gather additional info interactively
155
+ let displayName = scaffoldName
156
+ .split('-')
157
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
158
+ .join(' ');
159
+ let description = 'A custom scaffold';
160
+ let category = 'cartridge';
161
+ if (isTTY && !this.jsonEnabled()) {
162
+ displayName = await input({
163
+ message: 'Display name for the scaffold:',
164
+ default: displayName,
165
+ });
166
+ description = await input({
167
+ message: 'Describe what this scaffold creates:',
168
+ default: description,
169
+ });
170
+ category = (await select({
171
+ message: 'Category for the scaffold:',
172
+ choices: [
173
+ { name: 'Cartridge', value: 'cartridge' },
174
+ { name: 'Custom API', value: 'custom-api' },
175
+ { name: 'Page Designer', value: 'page-designer' },
176
+ { name: 'Job', value: 'job' },
177
+ { name: 'Metadata', value: 'metadata' },
178
+ ],
179
+ }));
180
+ }
181
+ // Create the scaffold directory structure
182
+ const filesDir = path.join(scaffoldDir, 'files');
183
+ await fs.mkdir(filesDir, { recursive: true });
184
+ // Generate scaffold.json
185
+ const manifestContent = SCAFFOLD_TEMPLATE.replaceAll('{{name}}', scaffoldName)
186
+ .replaceAll('{{displayName}}', displayName)
187
+ .replaceAll('{{description}}', description)
188
+ .replaceAll('{{category}}', category);
189
+ await fs.writeFile(path.join(scaffoldDir, 'scaffold.json'), manifestContent, 'utf8');
190
+ // Generate example template
191
+ const exampleContent = EXAMPLE_TEMPLATE.replaceAll('{{name}}', scaffoldName);
192
+ await fs.writeFile(path.join(filesDir, 'example.txt.ejs'), exampleContent, 'utf8');
193
+ const createdFiles = ['scaffold.json', 'files/example.txt.ejs'];
194
+ const response = {
195
+ name: scaffoldName,
196
+ path: scaffoldDir,
197
+ location,
198
+ files: createdFiles,
199
+ };
200
+ if (this.jsonEnabled()) {
201
+ return response;
202
+ }
203
+ this.log('');
204
+ this.log(t('commands.scaffold.init.success', 'Scaffold "{{name}}" created successfully!', { name: scaffoldName }));
205
+ this.log('');
206
+ this.log(`Location: ${scaffoldDir}`);
207
+ this.log('');
208
+ this.log('Created files:');
209
+ for (const file of createdFiles) {
210
+ this.log(` + ${file}`);
211
+ }
212
+ this.log('');
213
+ this.log('Next steps:');
214
+ this.log(' 1. Edit scaffold.json to define your parameters');
215
+ this.log(' 2. Add template files in the files/ directory');
216
+ this.log(' 3. Test with: b2c scaffold generate ' + scaffoldName + ' --dry-run');
217
+ this.log(' 4. Validate with: b2c scaffold validate ' + scaffoldDir);
218
+ return response;
219
+ }
220
+ }
221
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/scaffold/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { BaseCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ import { type ScaffoldCategory, type ScaffoldSource } from '@salesforce/b2c-tooling-sdk/scaffold';
3
+ /**
4
+ * Response type for the list command.
5
+ */
6
+ interface ScaffoldListResponse {
7
+ count: number;
8
+ categories: ScaffoldCategory[];
9
+ sources: ScaffoldSource[];
10
+ data: Array<{
11
+ id: string;
12
+ displayName: string;
13
+ description: string;
14
+ category: ScaffoldCategory;
15
+ source: string;
16
+ path: string;
17
+ }>;
18
+ }
19
+ /**
20
+ * Command to list available project scaffolds.
21
+ */
22
+ export default class ScaffoldList extends BaseCommand<typeof ScaffoldList> {
23
+ static description: string;
24
+ static enableJsonFlag: boolean;
25
+ static examples: string[];
26
+ static flags: {
27
+ category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
+ extended: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ };
32
+ run(): Promise<ScaffoldListResponse>;
33
+ /**
34
+ * Determines which columns to display based on flags.
35
+ */
36
+ private getSelectedColumns;
37
+ }
38
+ export {};
@@ -0,0 +1,131 @@
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 { BaseCommand, TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { createScaffoldRegistry, } from '@salesforce/b2c-tooling-sdk/scaffold';
9
+ import { t, withDocs } from '../../i18n/index.js';
10
+ const COLUMNS = {
11
+ id: {
12
+ header: 'ID',
13
+ get: (s) => s.id,
14
+ },
15
+ displayName: {
16
+ header: 'Name',
17
+ get: (s) => s.manifest.displayName,
18
+ },
19
+ category: {
20
+ header: 'Category',
21
+ get: (s) => s.manifest.category,
22
+ },
23
+ source: {
24
+ header: 'Source',
25
+ get: (s) => s.source,
26
+ },
27
+ description: {
28
+ header: 'Description',
29
+ get: (s) => s.manifest.description,
30
+ extended: true,
31
+ },
32
+ path: {
33
+ header: 'Path',
34
+ get: (s) => s.path,
35
+ extended: true,
36
+ },
37
+ };
38
+ const DEFAULT_COLUMNS = ['id', 'displayName', 'category', 'source'];
39
+ const tableRenderer = new TableRenderer(COLUMNS);
40
+ /**
41
+ * Command to list available project scaffolds.
42
+ */
43
+ export default class ScaffoldList extends BaseCommand {
44
+ static description = withDocs(t('commands.scaffold.list.description', 'List available project scaffolds'), '/cli/scaffold.html#b2c-scaffold-list');
45
+ static enableJsonFlag = true;
46
+ static examples = [
47
+ '<%= config.bin %> <%= command.id %>',
48
+ '<%= config.bin %> <%= command.id %> --category cartridge',
49
+ '<%= config.bin %> <%= command.id %> --source project',
50
+ '<%= config.bin %> <%= command.id %> --extended',
51
+ '<%= config.bin %> <%= command.id %> --json',
52
+ ];
53
+ static flags = {
54
+ category: Flags.string({
55
+ char: 'c',
56
+ description: 'Filter by category',
57
+ }),
58
+ source: Flags.string({
59
+ char: 's',
60
+ description: 'Filter by source (built-in, user, project, plugin)',
61
+ options: ['built-in', 'user', 'project', 'plugin'],
62
+ }),
63
+ columns: Flags.string({
64
+ description: `Columns to display (comma-separated). Available: ${Object.keys(COLUMNS).join(', ')}`,
65
+ }),
66
+ extended: Flags.boolean({
67
+ char: 'x',
68
+ description: 'Show all columns including extended fields',
69
+ default: false,
70
+ }),
71
+ };
72
+ async run() {
73
+ const registry = createScaffoldRegistry();
74
+ const category = this.flags.category;
75
+ const source = this.flags.source;
76
+ const projectRoot = this.flags['working-directory'] || process.cwd();
77
+ const scaffolds = await registry.getScaffolds({
78
+ category,
79
+ sources: source ? [source] : undefined,
80
+ projectRoot,
81
+ });
82
+ // Collect unique categories and sources for metadata
83
+ const uniqueCategories = [...new Set(scaffolds.map((s) => s.manifest.category))];
84
+ const uniqueSources = [...new Set(scaffolds.map((s) => s.source))];
85
+ const response = {
86
+ count: scaffolds.length,
87
+ categories: uniqueCategories,
88
+ sources: uniqueSources,
89
+ data: scaffolds.map((s) => ({
90
+ id: s.id,
91
+ displayName: s.manifest.displayName,
92
+ description: s.manifest.description,
93
+ category: s.manifest.category,
94
+ source: s.source,
95
+ path: s.path,
96
+ })),
97
+ };
98
+ if (this.jsonEnabled()) {
99
+ return response;
100
+ }
101
+ if (scaffolds.length === 0) {
102
+ this.log(t('commands.scaffold.list.noScaffolds', 'No scaffolds found.'));
103
+ return response;
104
+ }
105
+ this.log(t('commands.scaffold.list.foundScaffolds', 'Found {{count}} scaffold(s):', { count: scaffolds.length }));
106
+ this.log('');
107
+ tableRenderer.render(scaffolds, this.getSelectedColumns());
108
+ return response;
109
+ }
110
+ /**
111
+ * Determines which columns to display based on flags.
112
+ */
113
+ getSelectedColumns() {
114
+ const columnsFlag = this.flags.columns;
115
+ const extended = this.flags.extended;
116
+ if (columnsFlag) {
117
+ const requested = columnsFlag.split(',').map((c) => c.trim());
118
+ const valid = tableRenderer.validateColumnKeys(requested);
119
+ if (valid.length === 0) {
120
+ this.warn(`No valid columns specified. Available: ${tableRenderer.getColumnKeys().join(', ')}`);
121
+ return DEFAULT_COLUMNS;
122
+ }
123
+ return valid;
124
+ }
125
+ if (extended) {
126
+ return tableRenderer.getColumnKeys();
127
+ }
128
+ return DEFAULT_COLUMNS;
129
+ }
130
+ }
131
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/scaffold/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { BaseCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ import { type ScaffoldCategory } from '@salesforce/b2c-tooling-sdk/scaffold';
3
+ /**
4
+ * Response type for the search command.
5
+ */
6
+ interface ScaffoldSearchResponse {
7
+ query: string;
8
+ count: number;
9
+ data: Array<{
10
+ id: string;
11
+ displayName: string;
12
+ description: string;
13
+ category: ScaffoldCategory;
14
+ source: string;
15
+ }>;
16
+ }
17
+ /**
18
+ * Command to search available scaffolds.
19
+ */
20
+ export default class ScaffoldSearch extends BaseCommand<typeof ScaffoldSearch> {
21
+ static args: {
22
+ query: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
23
+ };
24
+ static description: string;
25
+ static enableJsonFlag: boolean;
26
+ static examples: string[];
27
+ static flags: {
28
+ category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ };
30
+ run(): Promise<ScaffoldSearchResponse>;
31
+ }
32
+ export {};
@@ -0,0 +1,97 @@
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 { Args, Flags } from '@oclif/core';
7
+ import { BaseCommand, TableRenderer } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { createScaffoldRegistry } from '@salesforce/b2c-tooling-sdk/scaffold';
9
+ import { t, withDocs } from '../../i18n/index.js';
10
+ const COLUMNS = {
11
+ id: {
12
+ header: 'ID',
13
+ get: (s) => s.id,
14
+ },
15
+ displayName: {
16
+ header: 'Name',
17
+ get: (s) => s.manifest.displayName,
18
+ },
19
+ category: {
20
+ header: 'Category',
21
+ get: (s) => s.manifest.category,
22
+ },
23
+ source: {
24
+ header: 'Source',
25
+ get: (s) => s.source,
26
+ },
27
+ description: {
28
+ header: 'Description',
29
+ get: (s) => s.manifest.description,
30
+ extended: true,
31
+ },
32
+ };
33
+ const DEFAULT_COLUMNS = ['id', 'displayName', 'category', 'description'];
34
+ const tableRenderer = new TableRenderer(COLUMNS);
35
+ /**
36
+ * Command to search available scaffolds.
37
+ */
38
+ export default class ScaffoldSearch extends BaseCommand {
39
+ static args = {
40
+ query: Args.string({
41
+ description: 'Search query (matches name and description)',
42
+ required: true,
43
+ }),
44
+ };
45
+ static description = withDocs(t('commands.scaffold.search.description', 'Search for scaffolds by name or description'), '/cli/scaffold.html#b2c-scaffold-search');
46
+ static enableJsonFlag = true;
47
+ static examples = [
48
+ '<%= config.bin %> <%= command.id %> controller',
49
+ '<%= config.bin %> <%= command.id %> api',
50
+ '<%= config.bin %> <%= command.id %> hook --category cartridge',
51
+ '<%= config.bin %> <%= command.id %> job --json',
52
+ ];
53
+ static flags = {
54
+ category: Flags.string({
55
+ char: 'c',
56
+ description: 'Filter results by category',
57
+ }),
58
+ };
59
+ async run() {
60
+ const { query } = this.args;
61
+ const registry = createScaffoldRegistry();
62
+ const category = this.flags.category;
63
+ const projectRoot = this.flags['working-directory'] || process.cwd();
64
+ const scaffolds = await registry.searchScaffolds(query, {
65
+ category,
66
+ projectRoot,
67
+ });
68
+ const response = {
69
+ query,
70
+ count: scaffolds.length,
71
+ data: scaffolds.map((s) => ({
72
+ id: s.id,
73
+ displayName: s.manifest.displayName,
74
+ description: s.manifest.description,
75
+ category: s.manifest.category,
76
+ source: s.source,
77
+ })),
78
+ };
79
+ if (this.jsonEnabled()) {
80
+ return response;
81
+ }
82
+ if (scaffolds.length === 0) {
83
+ this.log(t('commands.scaffold.search.noResults', 'No scaffolds found matching "{{query}}"', { query }));
84
+ return response;
85
+ }
86
+ this.log(t('commands.scaffold.search.foundScaffolds', 'Found {{count}} scaffold(s) matching "{{query}}":', {
87
+ count: scaffolds.length,
88
+ query,
89
+ }));
90
+ this.log('');
91
+ tableRenderer.render(scaffolds, DEFAULT_COLUMNS);
92
+ this.log('');
93
+ this.log(t('commands.scaffold.search.hint', 'Use "b2c scaffold info <id>" for more details'));
94
+ return response;
95
+ }
96
+ }
97
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/scaffold/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { BaseCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ import { type ValidationResult } from '@salesforce/b2c-tooling-sdk/scaffold';
3
+ /**
4
+ * Response type for the validate command.
5
+ */
6
+ interface ScaffoldValidateResponse extends ValidationResult {
7
+ path: string;
8
+ }
9
+ /**
10
+ * Command to validate a custom scaffold.
11
+ */
12
+ export default class ScaffoldValidate extends BaseCommand<typeof ScaffoldValidate> {
13
+ static args: {
14
+ path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
15
+ };
16
+ static description: string;
17
+ static enableJsonFlag: boolean;
18
+ static examples: string[];
19
+ static flags: {
20
+ strict: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ };
22
+ run(): Promise<ScaffoldValidateResponse>;
23
+ }
24
+ export {};
@@ -0,0 +1,74 @@
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 path from 'node:path';
7
+ import { Args, Flags } from '@oclif/core';
8
+ import { BaseCommand } from '@salesforce/b2c-tooling-sdk/cli';
9
+ import { validateScaffoldDirectory } from '@salesforce/b2c-tooling-sdk/scaffold';
10
+ import { t, withDocs } from '../../i18n/index.js';
11
+ /**
12
+ * Command to validate a custom scaffold.
13
+ */
14
+ export default class ScaffoldValidate extends BaseCommand {
15
+ static args = {
16
+ path: Args.string({
17
+ description: 'Path to the scaffold directory',
18
+ required: true,
19
+ }),
20
+ };
21
+ static description = withDocs(t('commands.scaffold.validate.description', 'Validate a custom scaffold manifest and templates'), '/cli/scaffold.html#b2c-scaffold-validate');
22
+ static enableJsonFlag = true;
23
+ static examples = [
24
+ '<%= config.bin %> <%= command.id %> ./my-scaffold',
25
+ '<%= config.bin %> <%= command.id %> ~/.b2c/scaffolds/my-scaffold',
26
+ '<%= config.bin %> <%= command.id %> .b2c/scaffolds/my-scaffold --json',
27
+ ];
28
+ static flags = {
29
+ strict: Flags.boolean({
30
+ description: 'Treat warnings as errors',
31
+ default: false,
32
+ }),
33
+ };
34
+ async run() {
35
+ const scaffoldPath = path.resolve(this.args.path);
36
+ // Use SDK validation function
37
+ const result = await validateScaffoldDirectory(scaffoldPath, {
38
+ strict: this.flags.strict,
39
+ });
40
+ const response = {
41
+ path: scaffoldPath,
42
+ ...result,
43
+ };
44
+ if (this.jsonEnabled()) {
45
+ return response;
46
+ }
47
+ // Display results
48
+ this.log('');
49
+ this.log(`Validating scaffold at: ${scaffoldPath}`);
50
+ this.log('');
51
+ if (result.issues.length === 0) {
52
+ this.log('No issues found.');
53
+ }
54
+ else {
55
+ for (const issue of result.issues) {
56
+ const prefix = issue.severity === 'error' ? 'ERROR' : 'WARN';
57
+ const fileInfo = issue.file ? ` (${issue.file})` : '';
58
+ this.log(` ${prefix}: ${issue.message}${fileInfo}`);
59
+ }
60
+ }
61
+ this.log('');
62
+ this.log(`Summary: ${result.errors} error(s), ${result.warnings} warning(s)`);
63
+ if (result.valid) {
64
+ this.log('');
65
+ this.log('Scaffold is valid.');
66
+ }
67
+ else {
68
+ this.log('');
69
+ this.error('Validation failed');
70
+ }
71
+ return response;
72
+ }
73
+ }
74
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/scaffold/validate.ts"],"names":[],"mappings":"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"}