@salesforce/b2c-tooling-sdk 1.24.2 → 2.1.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 (482) hide show
  1. package/data/content-schemas/componenttype.json +0 -30
  2. package/data/scapi-snippets/campaign-promotions.js +40 -0
  3. package/data/scapi-snippets/code-version-inspect.js +31 -0
  4. package/data/scapi-snippets/create-product.js +108 -0
  5. package/data/scapi-snippets/failed-job-triage.js +37 -0
  6. package/data/scapi-snippets/job-execution-inspect.js +52 -0
  7. package/data/scapi-snippets/job-execution-review.js +46 -0
  8. package/data/scapi-snippets/manifest.json +220 -0
  9. package/data/scapi-snippets/site-cartridge-inspect.js +27 -0
  10. package/data/tooling/index.json +83 -119
  11. package/dist/esm/auth/index.d.ts +2 -2
  12. package/dist/esm/auth/index.js +1 -1
  13. package/dist/esm/auth/index.js.map +1 -1
  14. package/dist/esm/auth/oauth-implicit.d.ts +1 -0
  15. package/dist/esm/auth/oauth-implicit.js +1 -0
  16. package/dist/esm/auth/oauth-implicit.js.map +1 -1
  17. package/dist/esm/auth/oauth-jwt.d.ts +18 -4
  18. package/dist/esm/auth/oauth-jwt.js +67 -17
  19. package/dist/esm/auth/oauth-jwt.js.map +1 -1
  20. package/dist/esm/auth/oauth-pkce-fallback.d.ts +1 -0
  21. package/dist/esm/auth/oauth-pkce-fallback.js +1 -0
  22. package/dist/esm/auth/oauth-pkce-fallback.js.map +1 -1
  23. package/dist/esm/auth/oauth-pkce.d.ts +1 -0
  24. package/dist/esm/auth/oauth-pkce.js +1 -0
  25. package/dist/esm/auth/oauth-pkce.js.map +1 -1
  26. package/dist/esm/auth/oauth.d.ts +55 -6
  27. package/dist/esm/auth/oauth.js +139 -21
  28. package/dist/esm/auth/oauth.js.map +1 -1
  29. package/dist/esm/auth/resolve.d.ts +37 -0
  30. package/dist/esm/auth/resolve.js +48 -0
  31. package/dist/esm/auth/resolve.js.map +1 -1
  32. package/dist/esm/auth/types.d.ts +44 -0
  33. package/dist/esm/auth/types.js.map +1 -1
  34. package/dist/esm/cli/base-command.d.ts +9 -0
  35. package/dist/esm/cli/base-command.js +31 -0
  36. package/dist/esm/cli/base-command.js.map +1 -1
  37. package/dist/esm/cli/bm-command.d.ts +15 -0
  38. package/dist/esm/cli/bm-command.js +25 -0
  39. package/dist/esm/cli/bm-command.js.map +1 -0
  40. package/dist/esm/cli/code-command.d.ts +14 -0
  41. package/dist/esm/cli/code-command.js +22 -0
  42. package/dist/esm/cli/code-command.js.map +1 -0
  43. package/dist/esm/cli/config.js +10 -1
  44. package/dist/esm/cli/config.js.map +1 -1
  45. package/dist/esm/cli/index.d.ts +5 -1
  46. package/dist/esm/cli/index.js +7 -1
  47. package/dist/esm/cli/index.js.map +1 -1
  48. package/dist/esm/cli/instance-command.d.ts +45 -0
  49. package/dist/esm/cli/instance-command.js +66 -1
  50. package/dist/esm/cli/instance-command.js.map +1 -1
  51. package/dist/esm/cli/job-command.d.ts +37 -16
  52. package/dist/esm/cli/job-command.js +73 -23
  53. package/dist/esm/cli/job-command.js.map +1 -1
  54. package/dist/esm/cli/mrt-command.d.ts +154 -9
  55. package/dist/esm/cli/mrt-command.js +299 -16
  56. package/dist/esm/cli/mrt-command.js.map +1 -1
  57. package/dist/esm/cli/oauth-command.d.ts +1 -1
  58. package/dist/esm/cli/oauth-command.js +2 -0
  59. package/dist/esm/cli/oauth-command.js.map +1 -1
  60. package/dist/esm/cli/webdav-command.d.ts +2 -0
  61. package/dist/esm/cli/webdav-command.js +1 -0
  62. package/dist/esm/cli/webdav-command.js.map +1 -1
  63. package/dist/esm/clients/cdn-zones.js +2 -5
  64. package/dist/esm/clients/cdn-zones.js.map +1 -1
  65. package/dist/esm/clients/cip.d.ts +12 -3
  66. package/dist/esm/clients/cip.js +85 -30
  67. package/dist/esm/clients/cip.js.map +1 -1
  68. package/dist/esm/clients/custom-apis.js +2 -5
  69. package/dist/esm/clients/custom-apis.js.map +1 -1
  70. package/dist/esm/clients/dual-backend-factory.d.ts +70 -0
  71. package/dist/esm/clients/dual-backend-factory.js +48 -0
  72. package/dist/esm/clients/dual-backend-factory.js.map +1 -0
  73. package/dist/esm/clients/error-utils.d.ts +62 -0
  74. package/dist/esm/clients/error-utils.js +98 -0
  75. package/dist/esm/clients/error-utils.js.map +1 -1
  76. package/dist/esm/clients/granular-replications.js +2 -5
  77. package/dist/esm/clients/granular-replications.js.map +1 -1
  78. package/dist/esm/clients/index.d.ts +30 -3
  79. package/dist/esm/clients/index.js +25 -2
  80. package/dist/esm/clients/index.js.map +1 -1
  81. package/dist/esm/clients/metrics.js +2 -5
  82. package/dist/esm/clients/metrics.js.map +1 -1
  83. package/dist/esm/clients/middleware-registry.d.ts +4 -2
  84. package/dist/esm/clients/middleware-registry.js +3 -1
  85. package/dist/esm/clients/middleware-registry.js.map +1 -1
  86. package/dist/esm/clients/middleware.d.ts +39 -0
  87. package/dist/esm/clients/middleware.js +126 -25
  88. package/dist/esm/clients/middleware.js.map +1 -1
  89. package/dist/esm/clients/mrt-b2c.js +3 -0
  90. package/dist/esm/clients/mrt-b2c.js.map +1 -1
  91. package/dist/esm/clients/mrt.d.ts +27 -10
  92. package/dist/esm/clients/mrt.generated.d.ts +77 -0
  93. package/dist/esm/clients/mrt.js +68 -0
  94. package/dist/esm/clients/mrt.js.map +1 -1
  95. package/dist/esm/clients/preferences.js +2 -5
  96. package/dist/esm/clients/preferences.js.map +1 -1
  97. package/dist/esm/clients/scapi-backend-utils.d.ts +163 -0
  98. package/dist/esm/clients/scapi-backend-utils.js +180 -0
  99. package/dist/esm/clients/scapi-backend-utils.js.map +1 -0
  100. package/dist/esm/clients/scapi-catalogs.d.ts +12 -0
  101. package/dist/esm/clients/scapi-catalogs.generated.d.ts +104 -0
  102. package/dist/esm/clients/scapi-catalogs.generated.js +6 -0
  103. package/dist/esm/clients/scapi-catalogs.generated.js.map +1 -0
  104. package/dist/esm/clients/scapi-catalogs.js +14 -0
  105. package/dist/esm/clients/scapi-catalogs.js.map +1 -0
  106. package/dist/esm/clients/scapi-client-factory.d.ts +81 -0
  107. package/dist/esm/clients/scapi-client-factory.js +84 -0
  108. package/dist/esm/clients/scapi-client-factory.js.map +1 -0
  109. package/dist/esm/clients/scapi-fallback-backend.d.ts +34 -0
  110. package/dist/esm/clients/scapi-fallback-backend.js +132 -0
  111. package/dist/esm/clients/scapi-fallback-backend.js.map +1 -0
  112. package/dist/esm/clients/scapi-jobs.d.ts +32 -0
  113. package/dist/esm/clients/scapi-jobs.generated.d.ts +535 -0
  114. package/dist/esm/clients/scapi-jobs.generated.js +6 -0
  115. package/dist/esm/clients/scapi-jobs.generated.js.map +1 -0
  116. package/dist/esm/clients/scapi-jobs.js +24 -0
  117. package/dist/esm/clients/scapi-jobs.js.map +1 -0
  118. package/dist/esm/clients/scapi-merchant-roles.d.ts +19 -0
  119. package/dist/esm/clients/scapi-merchant-roles.generated.d.ts +726 -0
  120. package/dist/esm/clients/scapi-merchant-roles.generated.js +6 -0
  121. package/dist/esm/clients/scapi-merchant-roles.generated.js.map +1 -0
  122. package/dist/esm/clients/scapi-merchant-roles.js +12 -0
  123. package/dist/esm/clients/scapi-merchant-roles.js.map +1 -0
  124. package/dist/esm/clients/scapi-merchant-users.d.ts +19 -0
  125. package/dist/esm/clients/scapi-merchant-users.generated.d.ts +300 -0
  126. package/dist/esm/clients/scapi-merchant-users.generated.js +6 -0
  127. package/dist/esm/clients/scapi-merchant-users.generated.js.map +1 -0
  128. package/dist/esm/clients/scapi-merchant-users.js +12 -0
  129. package/dist/esm/clients/scapi-merchant-users.js.map +1 -0
  130. package/dist/esm/clients/scapi-schemas.js +2 -5
  131. package/dist/esm/clients/scapi-schemas.js.map +1 -1
  132. package/dist/esm/clients/scapi-scope-tier.d.ts +78 -0
  133. package/dist/esm/clients/scapi-scope-tier.js +113 -0
  134. package/dist/esm/clients/scapi-scope-tier.js.map +1 -0
  135. package/dist/esm/clients/scapi-scripts.d.ts +17 -0
  136. package/dist/esm/clients/scapi-scripts.generated.d.ts +392 -0
  137. package/dist/esm/clients/scapi-scripts.generated.js +6 -0
  138. package/dist/esm/clients/scapi-scripts.generated.js.map +1 -0
  139. package/dist/esm/clients/scapi-scripts.js +12 -0
  140. package/dist/esm/clients/scapi-scripts.js.map +1 -0
  141. package/dist/esm/clients/scapi-sites.d.ts +26 -0
  142. package/dist/esm/clients/scapi-sites.generated.d.ts +500 -0
  143. package/dist/esm/clients/scapi-sites.generated.js +6 -0
  144. package/dist/esm/clients/scapi-sites.generated.js.map +1 -0
  145. package/dist/esm/clients/scapi-sites.js +25 -0
  146. package/dist/esm/clients/scapi-sites.js.map +1 -0
  147. package/dist/esm/clients/slas-shopper.d.ts +19 -0
  148. package/dist/esm/clients/slas-shopper.generated.d.ts +165 -0
  149. package/dist/esm/clients/slas-shopper.generated.js +6 -0
  150. package/dist/esm/clients/slas-shopper.generated.js.map +1 -0
  151. package/dist/esm/clients/slas-shopper.js +35 -0
  152. package/dist/esm/clients/slas-shopper.js.map +1 -0
  153. package/dist/esm/clients/storefront-deployments.d.ts +57 -0
  154. package/dist/esm/clients/storefront-deployments.generated.d.ts +558 -0
  155. package/dist/esm/clients/storefront-deployments.generated.js +6 -0
  156. package/dist/esm/clients/storefront-deployments.generated.js.map +1 -0
  157. package/dist/esm/clients/storefront-deployments.js +24 -0
  158. package/dist/esm/clients/storefront-deployments.js.map +1 -0
  159. package/dist/esm/clients/storefront-environments.d.ts +56 -0
  160. package/dist/esm/clients/storefront-environments.generated.d.ts +208 -0
  161. package/dist/esm/clients/storefront-environments.generated.js +6 -0
  162. package/dist/esm/clients/storefront-environments.generated.js.map +1 -0
  163. package/dist/esm/clients/storefront-environments.js +24 -0
  164. package/dist/esm/clients/storefront-environments.js.map +1 -0
  165. package/dist/esm/clients/webdav.js +4 -1
  166. package/dist/esm/clients/webdav.js.map +1 -1
  167. package/dist/esm/compat/dispatcher.d.ts +49 -0
  168. package/dist/esm/compat/dispatcher.js +124 -0
  169. package/dist/esm/compat/dispatcher.js.map +1 -0
  170. package/dist/esm/compat/index.d.ts +10 -0
  171. package/dist/esm/compat/index.js +15 -0
  172. package/dist/esm/compat/index.js.map +1 -0
  173. package/dist/esm/compat/jobs-backend.d.ts +31 -0
  174. package/dist/esm/compat/jobs-backend.js +76 -0
  175. package/dist/esm/compat/jobs-backend.js.map +1 -0
  176. package/dist/esm/config/dw-json.d.ts +4 -0
  177. package/dist/esm/config/dw-json.js.map +1 -1
  178. package/dist/esm/config/index.d.ts +1 -1
  179. package/dist/esm/config/index.js.map +1 -1
  180. package/dist/esm/config/mapping.d.ts +2 -5
  181. package/dist/esm/config/mapping.js +25 -1
  182. package/dist/esm/config/mapping.js.map +1 -1
  183. package/dist/esm/config/resolved-config.d.ts +2 -2
  184. package/dist/esm/config/resolved-config.js.map +1 -1
  185. package/dist/esm/config/resolver.js +12 -0
  186. package/dist/esm/config/resolver.js.map +1 -1
  187. package/dist/esm/config/sources/env-source.d.ts +10 -1
  188. package/dist/esm/config/sources/env-source.js +46 -1
  189. package/dist/esm/config/sources/env-source.js.map +1 -1
  190. package/dist/esm/config/types.d.ts +22 -3
  191. package/dist/esm/docs/search.js +2 -25
  192. package/dist/esm/docs/search.js.map +1 -1
  193. package/dist/esm/guidance/catalog.d.ts +37 -0
  194. package/dist/esm/guidance/catalog.js +282 -0
  195. package/dist/esm/guidance/catalog.js.map +1 -0
  196. package/dist/esm/guidance/index.d.ts +8 -0
  197. package/dist/esm/guidance/index.js +14 -0
  198. package/dist/esm/guidance/index.js.map +1 -0
  199. package/dist/esm/guidance/markdown.d.ts +10 -0
  200. package/dist/esm/guidance/markdown.js +52 -0
  201. package/dist/esm/guidance/markdown.js.map +1 -0
  202. package/dist/esm/guidance/types.d.ts +96 -0
  203. package/dist/esm/guidance/types.js +17 -0
  204. package/dist/esm/guidance/types.js.map +1 -0
  205. package/dist/esm/index.d.ts +14 -5
  206. package/dist/esm/index.js +14 -2
  207. package/dist/esm/index.js.map +1 -1
  208. package/dist/esm/instance/index.d.ts +96 -2
  209. package/dist/esm/instance/index.js +98 -5
  210. package/dist/esm/instance/index.js.map +1 -1
  211. package/dist/esm/operations/bm-roles/backend.d.ts +4 -0
  212. package/dist/esm/operations/bm-roles/backend.js +11 -0
  213. package/dist/esm/operations/bm-roles/backend.js.map +1 -0
  214. package/dist/esm/operations/bm-roles/index.d.ts +6 -0
  215. package/dist/esm/operations/bm-roles/index.js +4 -0
  216. package/dist/esm/operations/bm-roles/index.js.map +1 -1
  217. package/dist/esm/operations/bm-roles/ocapi-backend.d.ts +17 -0
  218. package/dist/esm/operations/bm-roles/ocapi-backend.js +151 -0
  219. package/dist/esm/operations/bm-roles/ocapi-backend.js.map +1 -0
  220. package/dist/esm/operations/bm-roles/roles.js +13 -17
  221. package/dist/esm/operations/bm-roles/roles.js.map +1 -1
  222. package/dist/esm/operations/bm-roles/scapi-backend.d.ts +27 -0
  223. package/dist/esm/operations/bm-roles/scapi-backend.js +138 -0
  224. package/dist/esm/operations/bm-roles/scapi-backend.js.map +1 -0
  225. package/dist/esm/operations/bm-roles/types.d.ts +49 -0
  226. package/dist/esm/operations/bm-roles/types.js +2 -0
  227. package/dist/esm/operations/bm-roles/types.js.map +1 -0
  228. package/dist/esm/operations/bm-users/backend.d.ts +4 -0
  229. package/dist/esm/operations/bm-users/backend.js +11 -0
  230. package/dist/esm/operations/bm-users/backend.js.map +1 -0
  231. package/dist/esm/operations/bm-users/index.d.ts +11 -3
  232. package/dist/esm/operations/bm-users/index.js +9 -3
  233. package/dist/esm/operations/bm-users/index.js.map +1 -1
  234. package/dist/esm/operations/bm-users/ocapi-backend.d.ts +13 -0
  235. package/dist/esm/operations/bm-users/ocapi-backend.js +92 -0
  236. package/dist/esm/operations/bm-users/ocapi-backend.js.map +1 -0
  237. package/dist/esm/operations/bm-users/scapi-backend.d.ts +23 -0
  238. package/dist/esm/operations/bm-users/scapi-backend.js +199 -0
  239. package/dist/esm/operations/bm-users/scapi-backend.js.map +1 -0
  240. package/dist/esm/operations/bm-users/types.d.ts +99 -0
  241. package/dist/esm/operations/bm-users/types.js +2 -0
  242. package/dist/esm/operations/bm-users/types.js.map +1 -0
  243. package/dist/esm/operations/bm-users/users.d.ts +4 -3
  244. package/dist/esm/operations/bm-users/users.js +23 -19
  245. package/dist/esm/operations/bm-users/users.js.map +1 -1
  246. package/dist/esm/operations/cap/install.js +23 -45
  247. package/dist/esm/operations/cap/install.js.map +1 -1
  248. package/dist/esm/operations/cap/list.js +4 -8
  249. package/dist/esm/operations/cap/list.js.map +1 -1
  250. package/dist/esm/operations/cap/uninstall.js +17 -37
  251. package/dist/esm/operations/cap/uninstall.js.map +1 -1
  252. package/dist/esm/operations/catalogs/catalogs-backend.d.ts +4 -0
  253. package/dist/esm/operations/catalogs/catalogs-backend.js +16 -0
  254. package/dist/esm/operations/catalogs/catalogs-backend.js.map +1 -0
  255. package/dist/esm/operations/catalogs/catalogs-types.d.ts +14 -0
  256. package/dist/esm/operations/catalogs/catalogs-types.js +2 -0
  257. package/dist/esm/operations/catalogs/catalogs-types.js.map +1 -0
  258. package/dist/esm/operations/catalogs/index.d.ts +7 -0
  259. package/dist/esm/operations/catalogs/index.js +10 -0
  260. package/dist/esm/operations/catalogs/index.js.map +1 -0
  261. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.d.ts +8 -0
  262. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js +36 -0
  263. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js.map +1 -0
  264. package/dist/esm/operations/catalogs/scapi-catalogs-backend.d.ts +15 -0
  265. package/dist/esm/operations/catalogs/scapi-catalogs-backend.js +42 -0
  266. package/dist/esm/operations/catalogs/scapi-catalogs-backend.js.map +1 -0
  267. package/dist/esm/operations/cip/index.js +10 -2
  268. package/dist/esm/operations/cip/index.js.map +1 -1
  269. package/dist/esm/operations/cip/reports.js +19 -3
  270. package/dist/esm/operations/cip/reports.js.map +1 -1
  271. package/dist/esm/operations/cip/types.d.ts +8 -4
  272. package/dist/esm/operations/code/deploy.d.ts +3 -0
  273. package/dist/esm/operations/code/deploy.js +9 -3
  274. package/dist/esm/operations/code/deploy.js.map +1 -1
  275. package/dist/esm/operations/code/download.d.ts +3 -0
  276. package/dist/esm/operations/code/download.js +5 -5
  277. package/dist/esm/operations/code/download.js.map +1 -1
  278. package/dist/esm/operations/code/index.d.ts +7 -1
  279. package/dist/esm/operations/code/index.js +5 -1
  280. package/dist/esm/operations/code/index.js.map +1 -1
  281. package/dist/esm/operations/code/ocapi-scripts-backend.d.ts +12 -0
  282. package/dist/esm/operations/code/ocapi-scripts-backend.js +40 -0
  283. package/dist/esm/operations/code/ocapi-scripts-backend.js.map +1 -0
  284. package/dist/esm/operations/code/scapi-scripts-backend.d.ts +22 -0
  285. package/dist/esm/operations/code/scapi-scripts-backend.js +94 -0
  286. package/dist/esm/operations/code/scapi-scripts-backend.js.map +1 -0
  287. package/dist/esm/operations/code/scripts-backend.d.ts +17 -0
  288. package/dist/esm/operations/code/scripts-backend.js +40 -0
  289. package/dist/esm/operations/code/scripts-backend.js.map +1 -0
  290. package/dist/esm/operations/code/scripts-types.d.ts +43 -0
  291. package/dist/esm/operations/code/scripts-types.js +2 -0
  292. package/dist/esm/operations/code/scripts-types.js.map +1 -0
  293. package/dist/esm/operations/code/upload-files.d.ts +6 -0
  294. package/dist/esm/operations/code/upload-files.js +58 -7
  295. package/dist/esm/operations/code/upload-files.js.map +1 -1
  296. package/dist/esm/operations/code/versions.d.ts +0 -20
  297. package/dist/esm/operations/code/versions.js +16 -51
  298. package/dist/esm/operations/code/versions.js.map +1 -1
  299. package/dist/esm/operations/code/watch.d.ts +3 -0
  300. package/dist/esm/operations/code/watch.js +3 -2
  301. package/dist/esm/operations/code/watch.js.map +1 -1
  302. package/dist/esm/operations/jobs/discover.d.ts +1 -1
  303. package/dist/esm/operations/jobs/discover.js +51 -21
  304. package/dist/esm/operations/jobs/discover.js.map +1 -1
  305. package/dist/esm/operations/jobs/index.d.ts +14 -57
  306. package/dist/esm/operations/jobs/index.js +15 -59
  307. package/dist/esm/operations/jobs/index.js.map +1 -1
  308. package/dist/esm/operations/jobs/ocapi-mapping.d.ts +34 -0
  309. package/dist/esm/operations/jobs/ocapi-mapping.js +100 -0
  310. package/dist/esm/operations/jobs/ocapi-mapping.js.map +1 -0
  311. package/dist/esm/operations/jobs/run-system-job.d.ts +81 -0
  312. package/dist/esm/operations/jobs/run-system-job.js +137 -0
  313. package/dist/esm/operations/jobs/run-system-job.js.map +1 -0
  314. package/dist/esm/operations/jobs/run.js +16 -4
  315. package/dist/esm/operations/jobs/run.js.map +1 -1
  316. package/dist/esm/operations/jobs/scapi-ops.d.ts +61 -0
  317. package/dist/esm/operations/jobs/scapi-ops.js +214 -0
  318. package/dist/esm/operations/jobs/scapi-ops.js.map +1 -0
  319. package/dist/esm/operations/jobs/site-archive.d.ts +7 -0
  320. package/dist/esm/operations/jobs/site-archive.js +28 -66
  321. package/dist/esm/operations/jobs/site-archive.js.map +1 -1
  322. package/dist/esm/operations/jobs/types.d.ts +46 -0
  323. package/dist/esm/operations/jobs/types.js +2 -0
  324. package/dist/esm/operations/jobs/types.js.map +1 -0
  325. package/dist/esm/operations/jobs/wait-canonical.d.ts +28 -0
  326. package/dist/esm/operations/jobs/wait-canonical.js +48 -0
  327. package/dist/esm/operations/jobs/wait-canonical.js.map +1 -0
  328. package/dist/esm/operations/mrt/bundle.d.ts +164 -2
  329. package/dist/esm/operations/mrt/bundle.js +315 -9
  330. package/dist/esm/operations/mrt/bundle.js.map +1 -1
  331. package/dist/esm/operations/mrt/deployment.d.ts +248 -0
  332. package/dist/esm/operations/mrt/deployment.js +252 -0
  333. package/dist/esm/operations/mrt/deployment.js.map +1 -1
  334. package/dist/esm/operations/mrt/env-var.d.ts +135 -0
  335. package/dist/esm/operations/mrt/env-var.js +203 -0
  336. package/dist/esm/operations/mrt/env-var.js.map +1 -1
  337. package/dist/esm/operations/mrt/index.d.ts +10 -8
  338. package/dist/esm/operations/mrt/index.js +6 -4
  339. package/dist/esm/operations/mrt/index.js.map +1 -1
  340. package/dist/esm/operations/mrt/mrt-backend.d.ts +117 -0
  341. package/dist/esm/operations/mrt/mrt-backend.js +84 -0
  342. package/dist/esm/operations/mrt/mrt-backend.js.map +1 -0
  343. package/dist/esm/operations/mrt/push.d.ts +285 -1
  344. package/dist/esm/operations/mrt/push.js +382 -1
  345. package/dist/esm/operations/mrt/push.js.map +1 -1
  346. package/dist/esm/operations/sites/cartridges.d.ts +10 -8
  347. package/dist/esm/operations/sites/cartridges.js +35 -67
  348. package/dist/esm/operations/sites/cartridges.js.map +1 -1
  349. package/dist/esm/operations/sites/index.d.ts +10 -6
  350. package/dist/esm/operations/sites/index.js +9 -6
  351. package/dist/esm/operations/sites/index.js.map +1 -1
  352. package/dist/esm/operations/sites/ocapi-sites-backend.d.ts +20 -0
  353. package/dist/esm/operations/sites/ocapi-sites-backend.js +98 -0
  354. package/dist/esm/operations/sites/ocapi-sites-backend.js.map +1 -0
  355. package/dist/esm/operations/sites/scapi-sites-backend.d.ts +33 -0
  356. package/dist/esm/operations/sites/scapi-sites-backend.js +166 -0
  357. package/dist/esm/operations/sites/scapi-sites-backend.js.map +1 -0
  358. package/dist/esm/operations/sites/sites-backend.d.ts +9 -0
  359. package/dist/esm/operations/sites/sites-backend.js +16 -0
  360. package/dist/esm/operations/sites/sites-backend.js.map +1 -0
  361. package/dist/esm/operations/sites/sites-scopes.d.ts +2 -0
  362. package/dist/esm/operations/sites/sites-scopes.js +16 -0
  363. package/dist/esm/operations/sites/sites-scopes.js.map +1 -0
  364. package/dist/esm/operations/sites/sites-types.d.ts +50 -0
  365. package/dist/esm/operations/sites/sites-types.js +2 -0
  366. package/dist/esm/operations/sites/sites-types.js.map +1 -0
  367. package/dist/esm/safety/safety-guard.d.ts +1 -0
  368. package/dist/esm/safety/safety-guard.js +2 -1
  369. package/dist/esm/safety/safety-guard.js.map +1 -1
  370. package/dist/esm/safety/safety-middleware.d.ts +7 -3
  371. package/dist/esm/safety/safety-middleware.js +13 -9
  372. package/dist/esm/safety/safety-middleware.js.map +1 -1
  373. package/dist/esm/safety/types.d.ts +2 -2
  374. package/dist/esm/scaffold/sources.js +6 -9
  375. package/dist/esm/scaffold/sources.js.map +1 -1
  376. package/dist/esm/scapi/auth-primitives.d.ts +3 -0
  377. package/dist/esm/scapi/auth-primitives.js +104 -0
  378. package/dist/esm/scapi/auth-primitives.js.map +1 -0
  379. package/dist/esm/scapi/authentication.d.ts +30 -0
  380. package/dist/esm/scapi/authentication.js +136 -0
  381. package/dist/esm/scapi/authentication.js.map +1 -0
  382. package/dist/esm/scapi/catalog.d.ts +29 -0
  383. package/dist/esm/scapi/catalog.js +81 -0
  384. package/dist/esm/scapi/catalog.js.map +1 -0
  385. package/dist/esm/scapi/index.d.ts +12 -0
  386. package/dist/esm/scapi/index.js +13 -0
  387. package/dist/esm/scapi/index.js.map +1 -0
  388. package/dist/esm/scapi/request.d.ts +28 -0
  389. package/dist/esm/scapi/request.js +273 -0
  390. package/dist/esm/scapi/request.js.map +1 -0
  391. package/dist/esm/scapi/runtime.d.ts +27 -0
  392. package/dist/esm/scapi/runtime.js +161 -0
  393. package/dist/esm/scapi/runtime.js.map +1 -0
  394. package/dist/esm/scapi/snippets.d.ts +22 -0
  395. package/dist/esm/scapi/snippets.js +140 -0
  396. package/dist/esm/scapi/snippets.js.map +1 -0
  397. package/dist/esm/scapi/worker-source.d.ts +2 -0
  398. package/dist/esm/scapi/worker-source.js +101 -0
  399. package/dist/esm/scapi/worker-source.js.map +1 -0
  400. package/dist/esm/search/ranking.d.ts +12 -0
  401. package/dist/esm/search/ranking.js +28 -0
  402. package/dist/esm/search/ranking.js.map +1 -0
  403. package/dist/esm/skills/sources.d.ts +2 -2
  404. package/dist/esm/skills/sources.js +18 -2
  405. package/dist/esm/skills/sources.js.map +1 -1
  406. package/dist/esm/skills/types.d.ts +1 -1
  407. package/dist/esm/slas/token.js +33 -94
  408. package/dist/esm/slas/token.js.map +1 -1
  409. package/dist/esm/slas/types.d.ts +5 -0
  410. package/dist/esm/test-utils/config-isolation.js +2 -2
  411. package/dist/esm/test-utils/config-isolation.js.map +1 -1
  412. package/node_modules/@salesforce/b2c-api-schemas/README.md +23 -0
  413. package/node_modules/@salesforce/b2c-api-schemas/manifest.json +576 -0
  414. package/node_modules/@salesforce/b2c-api-schemas/package.json +15 -0
  415. package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +11490 -0
  416. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +3589 -0
  417. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +6544 -0
  418. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +7148 -0
  419. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +4411 -0
  420. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +643 -0
  421. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +295 -0
  422. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +2036 -0
  423. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +327 -0
  424. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +234 -0
  425. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +1542 -0
  426. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +405 -0
  427. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +2531 -0
  428. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +7944 -0
  429. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +292 -0
  430. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +2537 -0
  431. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +517 -0
  432. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +589 -0
  433. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +3600 -0
  434. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +2319 -0
  435. package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +658 -0
  436. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +2649 -0
  437. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +6615 -0
  438. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +2103 -0
  439. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1760 -0
  440. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +640 -0
  441. package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1263 -0
  442. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1259 -0
  443. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +760 -0
  444. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +1047 -0
  445. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1929 -0
  446. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +1542 -0
  447. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +1093 -0
  448. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +1324 -0
  449. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +325 -0
  450. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +631 -0
  451. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +1036 -0
  452. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +5175 -0
  453. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +866 -0
  454. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +747 -0
  455. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +5076 -0
  456. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +509 -0
  457. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +517 -0
  458. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +2961 -0
  459. package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1889 -0
  460. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +7014 -0
  461. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1898 -0
  462. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +622 -0
  463. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +192 -0
  464. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +913 -0
  465. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +630 -0
  466. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +223 -0
  467. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +423 -0
  468. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +1088 -0
  469. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +798 -0
  470. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +607 -0
  471. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1418 -0
  472. package/package.json +24 -3
  473. package/specs/dx-scripts-v1.yaml +409 -0
  474. package/specs/merchant-roles-v1.yaml +1085 -0
  475. package/specs/merchant-users-v1.yaml +398 -0
  476. package/specs/mrt-api-v1.json +105 -0
  477. package/specs/operations-jobs-v1.yaml +793 -0
  478. package/specs/product-catalogs-v1.yaml +111 -0
  479. package/specs/site-sites-v1.yaml +667 -0
  480. package/specs/slas-shopper-v1.yaml +83 -0
  481. package/specs/storefront-deployments-v1.yaml +630 -0
  482. package/specs/storefront-environments-v1.yaml +272 -0
@@ -6,70 +6,26 @@
6
6
  /**
7
7
  * Job execution operations for B2C Commerce.
8
8
  *
9
- * This module provides functions for running and monitoring jobs
10
- * on B2C Commerce instances via OCAPI.
9
+ * SDK consumers should call SCAPI ops directly via the free functions
10
+ * exported from `./scapi-ops` (or, for legacy code, the OCAPI free
11
+ * functions exported from `./run`). The CLI's `BackendDispatcher`
12
+ * arbitrates between them based on the user's `apiBackend` preference;
13
+ * that policy lives in the CLI layer.
11
14
  *
12
- * ## Core Job Functions
13
- *
14
- * - {@link executeJob} - Start a job execution
15
- * - {@link getJobExecution} - Get the status of a job execution
16
- * - {@link waitForJob} - Wait for a job to complete
17
- * - {@link searchJobExecutions} - Search for job executions
18
- * - {@link findRunningJobExecution} - Find a running execution
19
- * - {@link getJobLog} - Retrieve job log file content
20
- *
21
- * ## System Jobs
22
- *
23
- * - {@link siteArchiveImport} - Import a site archive
24
- * - {@link siteArchiveImportSet} - Apply an ordered, receipted set of site archives
25
- * - {@link siteArchiveImportSplit} - Import a large site archive in multiple parts
26
- * - {@link siteArchiveExport} - Export a site archive
27
- * - {@link siteArchiveExportToPath} - Export and save to local path
28
- *
29
- * ## Usage
30
- *
31
- * ```typescript
32
- * import {
33
- * executeJob,
34
- * waitForJob,
35
- * searchJobExecutions,
36
- * siteArchiveImport,
37
- * siteArchiveExport,
38
- * } from '@salesforce/b2c-tooling-sdk/operations/jobs';
39
- * import { resolveConfig } from '@salesforce/b2c-tooling-sdk/config';
40
- *
41
- * const config = resolveConfig();
42
- * const instance = config.createB2CInstance();
43
- *
44
- * // Run a custom job and wait for completion
45
- * const execution = await executeJob(instance, 'my-job-id');
46
- * const result = await waitForJob(instance, 'my-job-id', execution.id);
47
- *
48
- * // Search for recent job executions
49
- * const results = await searchJobExecutions(instance, {
50
- * jobId: 'my-job-id',
51
- * count: 10
52
- * });
53
- *
54
- * // Import a site archive
55
- * await siteArchiveImport(instance, './my-import-data');
56
- *
57
- * // Export site data
58
- * const exportResult = await siteArchiveExport(instance, {
59
- * global_data: { meta_data: true }
60
- * });
61
- * ```
62
- *
63
- * ## Authentication
64
- *
65
- * Job operations require OAuth authentication with appropriate OCAPI permissions
66
- * for the /jobs and /job_execution_search resources.
15
+ * Ordered import sets are exported from `./import-set` and continue to use
16
+ * the site-archive/WebDAV workflow.
67
17
  *
68
18
  * @module operations/jobs
69
19
  */
70
- // Core job execution
20
+ // OCAPI ops (legacy — will be removed when OCAPI is deprecated)
71
21
  export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunningJobExecution, getJobLog, getJobErrorMessage, JobExecutionError, } from './run.js';
72
- // Site archive import/export
22
+ // SCAPI ops + canonical types (primary surface)
23
+ export { executeJob as scapiExecuteJob, getJobExecution as scapiGetJobExecution, searchJobExecutions as scapiSearchJobExecutions, deleteJobExecution as scapiDeleteJobExecution, getJobLog as scapiGetJobLog, ScapiJobStartError, } from './scapi-ops.js';
24
+ // Backend-agnostic helpers
25
+ export { waitForJobExecution, CanonicalJobExecutionError } from './wait-canonical.js';
26
+ export { mapOcapiExecution, mapOcapiSearchResult, mapCanonicalToOcapiExecution } from './ocapi-mapping.js';
27
+ export { runSystemJob } from './run-system-job.js';
28
+ // Site archive import/export (uses OCAPI WebDAV path)
73
29
  export { siteArchiveImport, siteArchiveImportSplit, siteArchiveExport, siteArchiveExportToBuffer, siteArchiveExportToPath, } from './site-archive.js';
74
30
  // Ordered, idempotent import sets
75
31
  export { discoverImportSet, siteArchiveImportSet, ImportSetStateError } from './import-set.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,qBAAqB;AACrB,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAclB,6BAA6B;AAC7B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,kCAAkC;AAClC,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AA0B7F,iCAAiC;AACjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;GAaG;AAEH,gEAAgE;AAChE,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAclB,gDAAgD;AAChD,OAAO,EACL,UAAU,IAAI,eAAe,EAC7B,eAAe,IAAI,oBAAoB,EACvC,mBAAmB,IAAI,wBAAwB,EAC/C,kBAAkB,IAAI,uBAAuB,EAC7C,SAAS,IAAI,cAAc,EAC3B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAIxB,2BAA2B;AAC3B,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAGjD,sDAAsD;AACtD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,kCAAkC;AAClC,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AA0B7F,iCAAiC;AACjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Mapping helpers from raw OCAPI shapes (snake_case) to canonical
3
+ * {@link JobExecutionInfo} (camelCase).
4
+ *
5
+ * These exist as transitional utilities to bridge the two API shapes. They
6
+ * will be deleted along with the OCAPI ops once OCAPI is removed.
7
+ *
8
+ * @module operations/jobs/ocapi-mapping
9
+ */
10
+ import type { JobExecution } from './run.js';
11
+ import type { JobExecutionInfo, JobExecutionSearchResults } from './types.js';
12
+ /** Map a raw OCAPI {@link JobExecution} into the canonical shape. */
13
+ export declare function mapOcapiExecution(ocapi: JobExecution): JobExecutionInfo;
14
+ /**
15
+ * Map a canonical {@link JobExecutionInfo} back into the raw OCAPI
16
+ * {@link JobExecution} (snake_case) shape.
17
+ *
18
+ * The reverse of {@link mapOcapiExecution}. System-job operations
19
+ * (site-archive import/export, CAP install/uninstall) expose the raw OCAPI
20
+ * `JobExecution` in their public result/error types; when those operations are
21
+ * served over SCAPI, the canonical result is mapped back through this so the
22
+ * public contract stays identical across backends.
23
+ *
24
+ * Prefers the original OCAPI payload when present in `_raw` (lossless
25
+ * round-trip for the OCAPI path); otherwise projects the canonical fields.
26
+ */
27
+ export declare function mapCanonicalToOcapiExecution(canonical: JobExecutionInfo): JobExecution;
28
+ /** Map a raw OCAPI search result into the canonical shape. */
29
+ export declare function mapOcapiSearchResult(result: {
30
+ total: number;
31
+ count: number;
32
+ start: number;
33
+ hits: JobExecution[];
34
+ }): JobExecutionSearchResults;
@@ -0,0 +1,100 @@
1
+ function mapStepExecution(step) {
2
+ return {
3
+ id: step.id,
4
+ stepId: step.step_id,
5
+ executionStatus: step.execution_status,
6
+ exitStatus: step.exit_status
7
+ ? {
8
+ code: step.exit_status.code ?? '',
9
+ message: step.exit_status.message,
10
+ status: step.exit_status.status,
11
+ }
12
+ : undefined,
13
+ duration: step.duration,
14
+ };
15
+ }
16
+ /** Map a raw OCAPI {@link JobExecution} into the canonical shape. */
17
+ export function mapOcapiExecution(ocapi) {
18
+ return {
19
+ id: ocapi.id ?? '',
20
+ jobId: ocapi.job_id ?? '',
21
+ executionStatus: (ocapi.execution_status ?? 'unknown'),
22
+ exitStatus: ocapi.exit_status
23
+ ? {
24
+ code: ocapi.exit_status.code ?? '',
25
+ message: ocapi.exit_status.message,
26
+ status: ocapi.exit_status.status,
27
+ }
28
+ : undefined,
29
+ startTime: ocapi.start_time,
30
+ endTime: ocapi.end_time,
31
+ duration: ocapi.duration,
32
+ stepExecutions: ocapi.step_executions?.map(mapStepExecution),
33
+ logFilePath: ocapi.log_file_path,
34
+ isLogFileExisting: ocapi.is_log_file_existing,
35
+ parameters: ocapi.parameters,
36
+ _raw: ocapi,
37
+ };
38
+ }
39
+ function mapCanonicalStepExecution(step) {
40
+ return {
41
+ id: step.id,
42
+ step_id: step.stepId,
43
+ execution_status: step.executionStatus,
44
+ exit_status: step.exitStatus
45
+ ? {
46
+ code: step.exitStatus.code,
47
+ message: step.exitStatus.message,
48
+ status: step.exitStatus.status,
49
+ }
50
+ : undefined,
51
+ duration: step.duration,
52
+ };
53
+ }
54
+ /**
55
+ * Map a canonical {@link JobExecutionInfo} back into the raw OCAPI
56
+ * {@link JobExecution} (snake_case) shape.
57
+ *
58
+ * The reverse of {@link mapOcapiExecution}. System-job operations
59
+ * (site-archive import/export, CAP install/uninstall) expose the raw OCAPI
60
+ * `JobExecution` in their public result/error types; when those operations are
61
+ * served over SCAPI, the canonical result is mapped back through this so the
62
+ * public contract stays identical across backends.
63
+ *
64
+ * Prefers the original OCAPI payload when present in `_raw` (lossless
65
+ * round-trip for the OCAPI path); otherwise projects the canonical fields.
66
+ */
67
+ export function mapCanonicalToOcapiExecution(canonical) {
68
+ if (canonical._raw && typeof canonical._raw === 'object' && 'execution_status' in canonical._raw) {
69
+ return canonical._raw;
70
+ }
71
+ return {
72
+ id: canonical.id,
73
+ job_id: canonical.jobId,
74
+ execution_status: canonical.executionStatus,
75
+ exit_status: canonical.exitStatus
76
+ ? {
77
+ code: canonical.exitStatus.code,
78
+ message: canonical.exitStatus.message,
79
+ status: canonical.exitStatus.status,
80
+ }
81
+ : undefined,
82
+ start_time: canonical.startTime,
83
+ end_time: canonical.endTime,
84
+ duration: canonical.duration,
85
+ step_executions: canonical.stepExecutions?.map(mapCanonicalStepExecution),
86
+ log_file_path: canonical.logFilePath,
87
+ is_log_file_existing: canonical.isLogFileExisting,
88
+ parameters: canonical.parameters,
89
+ };
90
+ }
91
+ /** Map a raw OCAPI search result into the canonical shape. */
92
+ export function mapOcapiSearchResult(result) {
93
+ return {
94
+ total: result.total,
95
+ limit: result.count,
96
+ offset: result.start,
97
+ hits: result.hits.map(mapOcapiExecution),
98
+ };
99
+ }
100
+ //# sourceMappingURL=ocapi-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocapi-mapping.js","sourceRoot":"","sources":["../../../../src/operations/jobs/ocapi-mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Dual-backend runner for B2C Commerce **system jobs** (site-archive
3
+ * import/export, CAP install/uninstall).
4
+ *
5
+ * These operations all follow the same shape: trigger a named system job,
6
+ * wait for it to finish, and surface the job log on failure. This module
7
+ * centralizes that flow over either backend so each operation declares only
8
+ * its job ID and request body — not the OCAPI-vs-SCAPI plumbing.
9
+ *
10
+ * ## Contract
11
+ *
12
+ * The public result/error types of every caller expose the **raw OCAPI**
13
+ * {@link JobExecution} (snake_case). To keep that contract identical across
14
+ * backends, the SCAPI path maps its canonical result back to the OCAPI shape
15
+ * via {@link mapCanonicalToOcapiExecution}, and a SCAPI job failure is
16
+ * re-thrown as the raw {@link JobExecutionError} — so a caller's existing
17
+ * `catch (JobExecutionError) → getJobLog(instance, err.execution)` works
18
+ * unchanged regardless of which backend served the job.
19
+ *
20
+ * ## Backend selection & fallback
21
+ *
22
+ * Honors {@link B2CInstance.apiBackend}:
23
+ * - `'ocapi'`: always OCAPI.
24
+ * - `'scapi'`: always SCAPI (throws if the instance can't reach SCAPI).
25
+ * - `'auto'` (default): SCAPI when {@link B2CInstance.scapiClientConfig} is
26
+ * available, else OCAPI. **Fallback to OCAPI happens only when the SCAPI
27
+ * start provably created no job** — an Account Manager scope rejection
28
+ * (before the POST) or a client-side rejection status (the server refused
29
+ * the start). Ambiguous failures (network drop after dispatch, timeout,
30
+ * 5xx) and any post-start failure propagate without a re-run, because
31
+ * re-running a mutating system job over OCAPI could execute it twice. See
32
+ * {@link isSafeStartFallback}.
33
+ *
34
+ * ## Lifecycle
35
+ *
36
+ * Lives alongside the other transitional jobs plumbing. When OCAPI is removed,
37
+ * delete the OCAPI branch and inline the SCAPI calls.
38
+ *
39
+ * @module operations/jobs/run-system-job
40
+ */
41
+ import type { B2CInstance } from '../../instance/index.js';
42
+ import { type JobExecution, type WaitForJobOptions } from './run.js';
43
+ /**
44
+ * Declarative description of a system job to run. The operation supplies its
45
+ * job ID and the two request-body forms; this module drives the rest.
46
+ */
47
+ export interface SystemJobSpec {
48
+ /** System job ID, e.g. `sfcc-site-archive-import`. */
49
+ jobId: string;
50
+ /**
51
+ * System-job configuration sent on both APIs (e.g.
52
+ * `{file_name}`, `{export_file, data_units}`, or the CAP `{app_name, ...}`
53
+ * shape). These system jobs retain snake_case fields on SCAPI. When the
54
+ * instance rejects it with `UnknownPropertyException`, the
55
+ * OCAPI path retries with {@link parameters}.
56
+ */
57
+ body: Record<string, unknown>;
58
+ /**
59
+ * Job parameters (`[{name, value}]`) for the OCAPI internal-user retry.
60
+ * System jobs do not use the generic SCAPI JobExecutionRequest body.
61
+ */
62
+ parameters: Array<{
63
+ name: string;
64
+ value: string;
65
+ }>;
66
+ /** Scopes named in the OCAPI-deprecation error (the rw jobs scope). */
67
+ deprecatedScopes?: string[];
68
+ /** Whether to wait for completion (default `true`). */
69
+ wait?: boolean;
70
+ /** Wait options forwarded to the poll loop. */
71
+ waitOptions?: WaitForJobOptions;
72
+ /** Human-readable verb for error messages, e.g. `'execute import job'`. */
73
+ failVerb: string;
74
+ }
75
+ /**
76
+ * Starts a system job (waiting for completion unless `spec.wait === false`)
77
+ * and returns the raw OCAPI {@link JobExecution}. Throws {@link JobExecutionError}
78
+ * (raw) when the job fails, or {@link OcapiDeprecatedError} when the only
79
+ * reachable backend is a deprecated OCAPI.
80
+ */
81
+ export declare function runSystemJob(instance: B2CInstance, spec: SystemJobSpec): Promise<JobExecution>;
@@ -0,0 +1,137 @@
1
+ import { isOcapiDeprecatedFault, OcapiDeprecatedError } from '../../clients/error-utils.js';
2
+ import { isFallbackTrigger, scapiUnavailableMessage } from '../../clients/scapi-backend-utils.js';
3
+ import { createScapiJobsClient } from '../../clients/scapi-jobs.js';
4
+ import { getLogger } from '../../logging/logger.js';
5
+ import { mapCanonicalToOcapiExecution } from './ocapi-mapping.js';
6
+ import { executeJob as scapiExecuteJob, getJobExecution as scapiGetJobExecution } from './scapi-ops.js';
7
+ import { waitForJob, JobExecutionError } from './run.js';
8
+ import { waitForJobExecution, CanonicalJobExecutionError } from './wait-canonical.js';
9
+ /**
10
+ * Decides whether a SCAPI start failure is provably safe to fall back to OCAPI
11
+ * for. Safe cases guarantee no job was created:
12
+ * - `invalid_scope`: Account Manager rejected the scope during
13
+ * token acquisition — thrown before the job POST is ever sent.
14
+ * - a SCAPI capability error: a purely local rejection.
15
+ * - a typed SCAPI start error whose HTTP status is a client-side rejection
16
+ * (the server refused before starting the job).
17
+ *
18
+ * Everything else — a network/timeout error (which may have reached the server
19
+ * with the job now running), a 5xx, or a 429 — is ambiguous and must NOT
20
+ * trigger an OCAPI re-run of a mutating job.
21
+ */
22
+ function isSafeStartFallback(error) {
23
+ return isFallbackTrigger(error);
24
+ }
25
+ /**
26
+ * Starts a system job (waiting for completion unless `spec.wait === false`)
27
+ * and returns the raw OCAPI {@link JobExecution}. Throws {@link JobExecutionError}
28
+ * (raw) when the job fails, or {@link OcapiDeprecatedError} when the only
29
+ * reachable backend is a deprecated OCAPI.
30
+ */
31
+ export async function runSystemJob(instance, spec) {
32
+ const preference = instance.apiBackend;
33
+ const scapiConfig = instance.scapiClientConfig;
34
+ if (preference === 'ocapi') {
35
+ return runOcapiSystemJob(instance, spec);
36
+ }
37
+ if (preference === 'scapi') {
38
+ if (!scapiConfig) {
39
+ // Domain label (not the job ID) so the message reads "Jobs SCAPI
40
+ // backend requires…", consistent with resolveScapiOrOcapi.
41
+ throw new Error(scapiUnavailableMessage('Jobs'));
42
+ }
43
+ return runScapiSystemJob(instance, scapiConfig, spec);
44
+ }
45
+ // auto
46
+ if (!scapiConfig) {
47
+ return runOcapiSystemJob(instance, spec);
48
+ }
49
+ // Try SCAPI start; fall back to OCAPI only for a provably-safe start failure
50
+ // (see isSafeStartFallback). Once started, finishScapiJob handles wait/failure
51
+ // without falling back.
52
+ const client = createScapiJobsClient({ shortCode: scapiConfig.shortCode, tenantId: scapiConfig.tenantId }, scapiConfig.auth);
53
+ let started;
54
+ try {
55
+ started = await startScapiJob(client, scapiConfig.tenantId, spec);
56
+ }
57
+ catch (error) {
58
+ // Fall back to OCAPI ONLY when the SCAPI start provably created no job.
59
+ // An ambiguous failure (network drop after dispatch, timeout, 5xx) must
60
+ // propagate — re-running a mutating system job over OCAPI could execute it
61
+ // twice.
62
+ if (!isSafeStartFallback(error)) {
63
+ throw error;
64
+ }
65
+ getLogger().info({ jobId: spec.jobId, reason: error instanceof Error ? error.message : String(error) }, `SCAPI ${spec.jobId} start rejected, falling back to OCAPI`);
66
+ return runOcapiSystemJob(instance, spec);
67
+ }
68
+ return finishScapiJob(client, scapiConfig.tenantId, spec, started);
69
+ }
70
+ /**
71
+ * SCAPI path: trigger the job (start phase, fallback-eligible in auto) then
72
+ * wait/map (finish phase, never falls back).
73
+ */
74
+ async function runScapiSystemJob(instance, scapiConfig, spec) {
75
+ const client = createScapiJobsClient({ shortCode: scapiConfig.shortCode, tenantId: scapiConfig.tenantId }, scapiConfig.auth);
76
+ const started = await startScapiJob(client, scapiConfig.tenantId, spec);
77
+ return finishScapiJob(client, scapiConfig.tenantId, spec, started);
78
+ }
79
+ async function startScapiJob(client, tenantId, spec) {
80
+ return scapiExecuteJob(client, spec.jobId, { body: spec.body, tenantId });
81
+ }
82
+ async function finishScapiJob(client, tenantId, spec, started) {
83
+ if (spec.wait === false) {
84
+ return mapCanonicalToOcapiExecution(started);
85
+ }
86
+ try {
87
+ const final = await waitForJobExecution((jobId, executionId) => scapiGetJobExecution(client, jobId, executionId, tenantId), spec.jobId, started.id, spec.waitOptions);
88
+ return mapCanonicalToOcapiExecution(final);
89
+ }
90
+ catch (error) {
91
+ // Re-throw a job FAILURE as the raw JobExecutionError so callers' existing
92
+ // log-fetch handling works identically across backends. Other errors
93
+ // (timeout, network) propagate as-is — never fall back post-start.
94
+ if (error instanceof CanonicalJobExecutionError) {
95
+ throw new JobExecutionError(error.message, mapCanonicalToOcapiExecution(error.execution));
96
+ }
97
+ throw error;
98
+ }
99
+ }
100
+ /**
101
+ * OCAPI path: preserves the legacy behavior exactly — POST the shorthand body,
102
+ * retry with the parameters body on `UnknownPropertyException`, then wait.
103
+ */
104
+ async function runOcapiSystemJob(instance, spec) {
105
+ let execution;
106
+ const { data, error } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
107
+ params: { path: { job_id: spec.jobId } },
108
+ body: spec.body,
109
+ });
110
+ if (error?.fault?.type === 'UnknownPropertyException' &&
111
+ error.fault.arguments?.document === 'job_execution_request') {
112
+ // Retry with parameters format (internal/support users)
113
+ const { data: retryData, error: retryError } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
114
+ params: { path: { job_id: spec.jobId } },
115
+ body: { parameters: spec.parameters },
116
+ });
117
+ if (retryError || !retryData) {
118
+ if (isOcapiDeprecatedFault(retryError))
119
+ throw new OcapiDeprecatedError({ cause: retryError, requiredScopes: spec.deprecatedScopes });
120
+ throw new Error(retryError?.fault?.message ?? `Failed to ${spec.failVerb}`, { cause: retryError });
121
+ }
122
+ execution = retryData;
123
+ }
124
+ else if (error || !data) {
125
+ if (isOcapiDeprecatedFault(error))
126
+ throw new OcapiDeprecatedError({ cause: error, requiredScopes: spec.deprecatedScopes });
127
+ throw new Error(error?.fault?.message ?? `Failed to ${spec.failVerb}`, { cause: error });
128
+ }
129
+ else {
130
+ execution = data;
131
+ }
132
+ if (spec.wait === false) {
133
+ return execution;
134
+ }
135
+ return waitForJob(instance, spec.jobId, execution.id, spec.waitOptions);
136
+ }
137
+ //# sourceMappingURL=run-system-job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-system-job.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run-system-job.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,14 @@
9
9
  * Provides functions for executing and monitoring jobs on B2C Commerce instances.
10
10
  */
11
11
  import { B2CInstance } from '../../instance/index.js';
12
- import { getApiErrorMessage } from '../../clients/error-utils.js';
12
+ import { isOcapiDeprecatedFault, OcapiDeprecatedError, getApiErrorMessage } from '../../clients/error-utils.js';
13
+ import { SCAPI_JOBS_CASCADE } from '../../clients/scapi-jobs.js';
13
14
  import { getLogger } from '../../logging/logger.js';
15
+ // SCAPI Jobs scopes named in the OCAPI-deprecation message, derived from the
16
+ // canonical cascade so they can't drift. Reads accept either tier; writes
17
+ // (execute) require the rw scope.
18
+ const JOBS_READ_SCOPES = [...new Set(SCAPI_JOBS_CASCADE.read.flat())];
19
+ const JOBS_RW_SCOPES = [...new Set(SCAPI_JOBS_CASCADE.write.flat())];
14
20
  /**
15
21
  * Executes a job on a B2C Commerce instance.
16
22
  *
@@ -79,8 +85,10 @@ export async function executeJob(instance, jobId, options = {}) {
79
85
  }
80
86
  }
81
87
  if (error || !data) {
88
+ if (isOcapiDeprecatedFault(error))
89
+ throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_RW_SCOPES });
82
90
  const message = error?.fault?.message ?? `Failed to execute job ${jobId}`;
83
- throw new Error(message);
91
+ throw new Error(message, { cause: error });
84
92
  }
85
93
  logger.debug({ jobId, executionId: data.id, status: data.execution_status }, `Job ${jobId} started: ${data.id}`);
86
94
  return data;
@@ -105,8 +113,10 @@ export async function getJobExecution(instance, jobId, executionId) {
105
113
  params: { path: { job_id: jobId, id: executionId } },
106
114
  });
107
115
  if (error || !data) {
116
+ if (isOcapiDeprecatedFault(error))
117
+ throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_READ_SCOPES });
108
118
  const message = error?.fault?.message ?? `Failed to get job execution ${executionId}`;
109
- throw new Error(message);
119
+ throw new Error(message, { cause: error });
110
120
  }
111
121
  return data;
112
122
  }
@@ -257,8 +267,10 @@ export async function searchJobExecutions(instance, options = {}) {
257
267
  },
258
268
  });
259
269
  if (error || !data) {
270
+ if (isOcapiDeprecatedFault(error))
271
+ throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_READ_SCOPES });
260
272
  const message = error && response ? getApiErrorMessage(error, response) : (error?.fault?.message ?? 'Unknown error');
261
- throw new Error(`Failed to search job executions: ${message}`);
273
+ throw new Error(`Failed to search job executions: ${message}`, { cause: error });
262
274
  }
263
275
  return {
264
276
  total: data.total ?? 0,
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * SCAPI Jobs operations.
3
+ *
4
+ * Free functions over a {@link ScapiJobsClient}. Each operation declares its
5
+ * scope tier (`read` or `write`) via the `x-b2c-scope-mode` header; the
6
+ * auth middleware on the client reads that header and resolves the
7
+ * appropriate scope cascade against Account Manager.
8
+ *
9
+ * SDK consumers (or the CLI dispatcher in auto/scapi mode) call these
10
+ * directly. This is the future primary surface for jobs once OCAPI is
11
+ * deprecated.
12
+ *
13
+ * @module operations/jobs/scapi-ops
14
+ */
15
+ import type { B2CInstance } from '../../instance/index.js';
16
+ import { ScapiRequestError } from '../../clients/scapi-backend-utils.js';
17
+ import { type ScapiJobsClient } from '../../clients/scapi-jobs.js';
18
+ import type { ExecuteJobOptions, SearchJobExecutionsOptions } from './run.js';
19
+ import type { JobExecutionInfo, JobExecutionSearchResults } from './types.js';
20
+ /**
21
+ * Thrown by {@link executeJob} when the SCAPI job-start POST is rejected with
22
+ * a response (non-2xx). Carries the received HTTP status so callers can tell a
23
+ * *request rejection* (server refused before starting the job — safe to treat
24
+ * as "no job created") from an ambiguous failure.
25
+ *
26
+ * A network/timeout error during the POST does NOT produce this — it surfaces
27
+ * as a raw thrown error with no status, because the request may have reached
28
+ * the server and the job may already be running.
29
+ */
30
+ export declare class ScapiJobStartError extends ScapiRequestError {
31
+ /** HTTP status of the rejection response. */
32
+ readonly status: number;
33
+ constructor(message: string,
34
+ /** HTTP status of the rejection response. */
35
+ status: number);
36
+ }
37
+ export interface ExecuteJobScapiOptions extends ExecuteJobOptions {
38
+ /** Tenant ID for organization path param. Required. */
39
+ tenantId: string;
40
+ }
41
+ /**
42
+ * Execute a job. Requires the rw scope (no ro fallback for writes).
43
+ *
44
+ * If the job is already running and `waitForRunning` is not `false`, polls
45
+ * until the prior run reaches a terminal state, then retries.
46
+ */
47
+ export declare function executeJob(client: ScapiJobsClient, jobId: string, options: ExecuteJobScapiOptions): Promise<JobExecutionInfo>;
48
+ export declare function getJobExecution(client: ScapiJobsClient, jobId: string, executionId: string, tenantId: string): Promise<JobExecutionInfo>;
49
+ export interface SearchJobExecutionsScapiOptions extends SearchJobExecutionsOptions {
50
+ /** Tenant ID for organization path param. Required. */
51
+ tenantId: string;
52
+ }
53
+ export declare function searchJobExecutions(client: ScapiJobsClient, options: SearchJobExecutionsScapiOptions): Promise<JobExecutionSearchResults>;
54
+ export declare function deleteJobExecution(client: ScapiJobsClient, jobId: string, executionId: string, tenantId: string): Promise<void>;
55
+ /**
56
+ * Retrieves a job's log file content over WebDAV. Both backends
57
+ * (SCAPI and OCAPI) expose `logFilePath` under `/Sites/LOGS/...`; WebDAV is
58
+ * shared, so this lives in jobs/scapi-ops.ts only as a convenience for SDK
59
+ * consumers building purely against SCAPI ops.
60
+ */
61
+ export declare function getJobLog(instance: B2CInstance, execution: JobExecutionInfo): Promise<string>;