@salesforce/b2c-tooling-sdk 1.24.2 → 2.0.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 (460) 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 +80 -116
  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 +3 -0
  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 +138 -9
  55. package/dist/esm/cli/mrt-command.js +277 -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 +1 -0
  61. package/dist/esm/clients/cdn-zones.js +2 -5
  62. package/dist/esm/clients/cdn-zones.js.map +1 -1
  63. package/dist/esm/clients/cip.d.ts +12 -3
  64. package/dist/esm/clients/cip.js +85 -30
  65. package/dist/esm/clients/cip.js.map +1 -1
  66. package/dist/esm/clients/custom-apis.js +2 -5
  67. package/dist/esm/clients/custom-apis.js.map +1 -1
  68. package/dist/esm/clients/dual-backend-factory.d.ts +70 -0
  69. package/dist/esm/clients/dual-backend-factory.js +48 -0
  70. package/dist/esm/clients/dual-backend-factory.js.map +1 -0
  71. package/dist/esm/clients/error-utils.d.ts +62 -0
  72. package/dist/esm/clients/error-utils.js +98 -0
  73. package/dist/esm/clients/error-utils.js.map +1 -1
  74. package/dist/esm/clients/granular-replications.js +2 -5
  75. package/dist/esm/clients/granular-replications.js.map +1 -1
  76. package/dist/esm/clients/index.d.ts +28 -3
  77. package/dist/esm/clients/index.js +24 -2
  78. package/dist/esm/clients/index.js.map +1 -1
  79. package/dist/esm/clients/metrics.js +2 -5
  80. package/dist/esm/clients/metrics.js.map +1 -1
  81. package/dist/esm/clients/middleware-registry.d.ts +4 -2
  82. package/dist/esm/clients/middleware-registry.js +3 -1
  83. package/dist/esm/clients/middleware-registry.js.map +1 -1
  84. package/dist/esm/clients/middleware.d.ts +39 -0
  85. package/dist/esm/clients/middleware.js +126 -25
  86. package/dist/esm/clients/middleware.js.map +1 -1
  87. package/dist/esm/clients/mrt-b2c.js +3 -0
  88. package/dist/esm/clients/mrt-b2c.js.map +1 -1
  89. package/dist/esm/clients/mrt.d.ts +27 -10
  90. package/dist/esm/clients/mrt.generated.d.ts +77 -0
  91. package/dist/esm/clients/mrt.js +68 -0
  92. package/dist/esm/clients/mrt.js.map +1 -1
  93. package/dist/esm/clients/preferences.js +2 -5
  94. package/dist/esm/clients/preferences.js.map +1 -1
  95. package/dist/esm/clients/scapi-backend-utils.d.ts +163 -0
  96. package/dist/esm/clients/scapi-backend-utils.js +180 -0
  97. package/dist/esm/clients/scapi-backend-utils.js.map +1 -0
  98. package/dist/esm/clients/scapi-catalogs.d.ts +12 -0
  99. package/dist/esm/clients/scapi-catalogs.generated.d.ts +104 -0
  100. package/dist/esm/clients/scapi-catalogs.generated.js +6 -0
  101. package/dist/esm/clients/scapi-catalogs.generated.js.map +1 -0
  102. package/dist/esm/clients/scapi-catalogs.js +14 -0
  103. package/dist/esm/clients/scapi-catalogs.js.map +1 -0
  104. package/dist/esm/clients/scapi-client-factory.d.ts +81 -0
  105. package/dist/esm/clients/scapi-client-factory.js +84 -0
  106. package/dist/esm/clients/scapi-client-factory.js.map +1 -0
  107. package/dist/esm/clients/scapi-fallback-backend.d.ts +34 -0
  108. package/dist/esm/clients/scapi-fallback-backend.js +132 -0
  109. package/dist/esm/clients/scapi-fallback-backend.js.map +1 -0
  110. package/dist/esm/clients/scapi-jobs.d.ts +32 -0
  111. package/dist/esm/clients/scapi-jobs.generated.d.ts +535 -0
  112. package/dist/esm/clients/scapi-jobs.generated.js +6 -0
  113. package/dist/esm/clients/scapi-jobs.generated.js.map +1 -0
  114. package/dist/esm/clients/scapi-jobs.js +24 -0
  115. package/dist/esm/clients/scapi-jobs.js.map +1 -0
  116. package/dist/esm/clients/scapi-merchant-roles.d.ts +19 -0
  117. package/dist/esm/clients/scapi-merchant-roles.generated.d.ts +726 -0
  118. package/dist/esm/clients/scapi-merchant-roles.generated.js +6 -0
  119. package/dist/esm/clients/scapi-merchant-roles.generated.js.map +1 -0
  120. package/dist/esm/clients/scapi-merchant-roles.js +12 -0
  121. package/dist/esm/clients/scapi-merchant-roles.js.map +1 -0
  122. package/dist/esm/clients/scapi-merchant-users.d.ts +19 -0
  123. package/dist/esm/clients/scapi-merchant-users.generated.d.ts +300 -0
  124. package/dist/esm/clients/scapi-merchant-users.generated.js +6 -0
  125. package/dist/esm/clients/scapi-merchant-users.generated.js.map +1 -0
  126. package/dist/esm/clients/scapi-merchant-users.js +12 -0
  127. package/dist/esm/clients/scapi-merchant-users.js.map +1 -0
  128. package/dist/esm/clients/scapi-schemas.js +2 -5
  129. package/dist/esm/clients/scapi-schemas.js.map +1 -1
  130. package/dist/esm/clients/scapi-scope-tier.d.ts +78 -0
  131. package/dist/esm/clients/scapi-scope-tier.js +113 -0
  132. package/dist/esm/clients/scapi-scope-tier.js.map +1 -0
  133. package/dist/esm/clients/scapi-scripts.d.ts +17 -0
  134. package/dist/esm/clients/scapi-scripts.generated.d.ts +392 -0
  135. package/dist/esm/clients/scapi-scripts.generated.js +6 -0
  136. package/dist/esm/clients/scapi-scripts.generated.js.map +1 -0
  137. package/dist/esm/clients/scapi-scripts.js +12 -0
  138. package/dist/esm/clients/scapi-scripts.js.map +1 -0
  139. package/dist/esm/clients/scapi-sites.d.ts +26 -0
  140. package/dist/esm/clients/scapi-sites.generated.d.ts +500 -0
  141. package/dist/esm/clients/scapi-sites.generated.js +6 -0
  142. package/dist/esm/clients/scapi-sites.generated.js.map +1 -0
  143. package/dist/esm/clients/scapi-sites.js +25 -0
  144. package/dist/esm/clients/scapi-sites.js.map +1 -0
  145. package/dist/esm/clients/slas-shopper.d.ts +19 -0
  146. package/dist/esm/clients/slas-shopper.generated.d.ts +165 -0
  147. package/dist/esm/clients/slas-shopper.generated.js +6 -0
  148. package/dist/esm/clients/slas-shopper.generated.js.map +1 -0
  149. package/dist/esm/clients/slas-shopper.js +35 -0
  150. package/dist/esm/clients/slas-shopper.js.map +1 -0
  151. package/dist/esm/clients/storefront-deployments.d.ts +56 -0
  152. package/dist/esm/clients/storefront-deployments.generated.d.ts +558 -0
  153. package/dist/esm/clients/storefront-deployments.generated.js +6 -0
  154. package/dist/esm/clients/storefront-deployments.generated.js.map +1 -0
  155. package/dist/esm/clients/storefront-deployments.js +24 -0
  156. package/dist/esm/clients/storefront-deployments.js.map +1 -0
  157. package/dist/esm/clients/webdav.js +4 -1
  158. package/dist/esm/clients/webdav.js.map +1 -1
  159. package/dist/esm/compat/dispatcher.d.ts +49 -0
  160. package/dist/esm/compat/dispatcher.js +124 -0
  161. package/dist/esm/compat/dispatcher.js.map +1 -0
  162. package/dist/esm/compat/index.d.ts +10 -0
  163. package/dist/esm/compat/index.js +15 -0
  164. package/dist/esm/compat/index.js.map +1 -0
  165. package/dist/esm/compat/jobs-backend.d.ts +31 -0
  166. package/dist/esm/compat/jobs-backend.js +76 -0
  167. package/dist/esm/compat/jobs-backend.js.map +1 -0
  168. package/dist/esm/config/dw-json.d.ts +4 -0
  169. package/dist/esm/config/dw-json.js.map +1 -1
  170. package/dist/esm/config/index.d.ts +1 -1
  171. package/dist/esm/config/index.js.map +1 -1
  172. package/dist/esm/config/mapping.d.ts +2 -5
  173. package/dist/esm/config/mapping.js +25 -1
  174. package/dist/esm/config/mapping.js.map +1 -1
  175. package/dist/esm/config/resolved-config.d.ts +2 -2
  176. package/dist/esm/config/resolved-config.js.map +1 -1
  177. package/dist/esm/config/sources/env-source.js +17 -0
  178. package/dist/esm/config/sources/env-source.js.map +1 -1
  179. package/dist/esm/config/types.d.ts +21 -2
  180. package/dist/esm/docs/search.js +2 -25
  181. package/dist/esm/docs/search.js.map +1 -1
  182. package/dist/esm/guidance/catalog.d.ts +37 -0
  183. package/dist/esm/guidance/catalog.js +282 -0
  184. package/dist/esm/guidance/catalog.js.map +1 -0
  185. package/dist/esm/guidance/index.d.ts +8 -0
  186. package/dist/esm/guidance/index.js +14 -0
  187. package/dist/esm/guidance/index.js.map +1 -0
  188. package/dist/esm/guidance/markdown.d.ts +10 -0
  189. package/dist/esm/guidance/markdown.js +52 -0
  190. package/dist/esm/guidance/markdown.js.map +1 -0
  191. package/dist/esm/guidance/types.d.ts +92 -0
  192. package/dist/esm/guidance/types.js +17 -0
  193. package/dist/esm/guidance/types.js.map +1 -0
  194. package/dist/esm/index.d.ts +14 -5
  195. package/dist/esm/index.js +14 -2
  196. package/dist/esm/index.js.map +1 -1
  197. package/dist/esm/instance/index.d.ts +96 -2
  198. package/dist/esm/instance/index.js +98 -5
  199. package/dist/esm/instance/index.js.map +1 -1
  200. package/dist/esm/operations/bm-roles/backend.d.ts +4 -0
  201. package/dist/esm/operations/bm-roles/backend.js +11 -0
  202. package/dist/esm/operations/bm-roles/backend.js.map +1 -0
  203. package/dist/esm/operations/bm-roles/index.d.ts +6 -0
  204. package/dist/esm/operations/bm-roles/index.js +4 -0
  205. package/dist/esm/operations/bm-roles/index.js.map +1 -1
  206. package/dist/esm/operations/bm-roles/ocapi-backend.d.ts +17 -0
  207. package/dist/esm/operations/bm-roles/ocapi-backend.js +151 -0
  208. package/dist/esm/operations/bm-roles/ocapi-backend.js.map +1 -0
  209. package/dist/esm/operations/bm-roles/roles.js +13 -17
  210. package/dist/esm/operations/bm-roles/roles.js.map +1 -1
  211. package/dist/esm/operations/bm-roles/scapi-backend.d.ts +27 -0
  212. package/dist/esm/operations/bm-roles/scapi-backend.js +138 -0
  213. package/dist/esm/operations/bm-roles/scapi-backend.js.map +1 -0
  214. package/dist/esm/operations/bm-roles/types.d.ts +49 -0
  215. package/dist/esm/operations/bm-roles/types.js +2 -0
  216. package/dist/esm/operations/bm-roles/types.js.map +1 -0
  217. package/dist/esm/operations/bm-users/backend.d.ts +4 -0
  218. package/dist/esm/operations/bm-users/backend.js +11 -0
  219. package/dist/esm/operations/bm-users/backend.js.map +1 -0
  220. package/dist/esm/operations/bm-users/index.d.ts +11 -3
  221. package/dist/esm/operations/bm-users/index.js +9 -3
  222. package/dist/esm/operations/bm-users/index.js.map +1 -1
  223. package/dist/esm/operations/bm-users/ocapi-backend.d.ts +13 -0
  224. package/dist/esm/operations/bm-users/ocapi-backend.js +92 -0
  225. package/dist/esm/operations/bm-users/ocapi-backend.js.map +1 -0
  226. package/dist/esm/operations/bm-users/scapi-backend.d.ts +23 -0
  227. package/dist/esm/operations/bm-users/scapi-backend.js +199 -0
  228. package/dist/esm/operations/bm-users/scapi-backend.js.map +1 -0
  229. package/dist/esm/operations/bm-users/types.d.ts +99 -0
  230. package/dist/esm/operations/bm-users/types.js +2 -0
  231. package/dist/esm/operations/bm-users/types.js.map +1 -0
  232. package/dist/esm/operations/bm-users/users.d.ts +4 -3
  233. package/dist/esm/operations/bm-users/users.js +23 -19
  234. package/dist/esm/operations/bm-users/users.js.map +1 -1
  235. package/dist/esm/operations/cap/install.js +23 -45
  236. package/dist/esm/operations/cap/install.js.map +1 -1
  237. package/dist/esm/operations/cap/list.js +4 -8
  238. package/dist/esm/operations/cap/list.js.map +1 -1
  239. package/dist/esm/operations/cap/uninstall.js +17 -37
  240. package/dist/esm/operations/cap/uninstall.js.map +1 -1
  241. package/dist/esm/operations/catalogs/catalogs-backend.d.ts +4 -0
  242. package/dist/esm/operations/catalogs/catalogs-backend.js +16 -0
  243. package/dist/esm/operations/catalogs/catalogs-backend.js.map +1 -0
  244. package/dist/esm/operations/catalogs/catalogs-types.d.ts +14 -0
  245. package/dist/esm/operations/catalogs/catalogs-types.js +2 -0
  246. package/dist/esm/operations/catalogs/catalogs-types.js.map +1 -0
  247. package/dist/esm/operations/catalogs/index.d.ts +7 -0
  248. package/dist/esm/operations/catalogs/index.js +10 -0
  249. package/dist/esm/operations/catalogs/index.js.map +1 -0
  250. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.d.ts +8 -0
  251. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js +36 -0
  252. package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js.map +1 -0
  253. package/dist/esm/operations/catalogs/scapi-catalogs-backend.d.ts +15 -0
  254. package/dist/esm/operations/catalogs/scapi-catalogs-backend.js +42 -0
  255. package/dist/esm/operations/catalogs/scapi-catalogs-backend.js.map +1 -0
  256. package/dist/esm/operations/cip/index.js +10 -2
  257. package/dist/esm/operations/cip/index.js.map +1 -1
  258. package/dist/esm/operations/cip/reports.js +19 -3
  259. package/dist/esm/operations/cip/reports.js.map +1 -1
  260. package/dist/esm/operations/cip/types.d.ts +8 -4
  261. package/dist/esm/operations/code/deploy.d.ts +3 -0
  262. package/dist/esm/operations/code/deploy.js +5 -3
  263. package/dist/esm/operations/code/deploy.js.map +1 -1
  264. package/dist/esm/operations/code/download.d.ts +3 -0
  265. package/dist/esm/operations/code/download.js +5 -5
  266. package/dist/esm/operations/code/download.js.map +1 -1
  267. package/dist/esm/operations/code/index.d.ts +7 -1
  268. package/dist/esm/operations/code/index.js +5 -1
  269. package/dist/esm/operations/code/index.js.map +1 -1
  270. package/dist/esm/operations/code/ocapi-scripts-backend.d.ts +12 -0
  271. package/dist/esm/operations/code/ocapi-scripts-backend.js +40 -0
  272. package/dist/esm/operations/code/ocapi-scripts-backend.js.map +1 -0
  273. package/dist/esm/operations/code/scapi-scripts-backend.d.ts +22 -0
  274. package/dist/esm/operations/code/scapi-scripts-backend.js +94 -0
  275. package/dist/esm/operations/code/scapi-scripts-backend.js.map +1 -0
  276. package/dist/esm/operations/code/scripts-backend.d.ts +17 -0
  277. package/dist/esm/operations/code/scripts-backend.js +40 -0
  278. package/dist/esm/operations/code/scripts-backend.js.map +1 -0
  279. package/dist/esm/operations/code/scripts-types.d.ts +43 -0
  280. package/dist/esm/operations/code/scripts-types.js +2 -0
  281. package/dist/esm/operations/code/scripts-types.js.map +1 -0
  282. package/dist/esm/operations/code/upload-files.d.ts +6 -0
  283. package/dist/esm/operations/code/upload-files.js +58 -7
  284. package/dist/esm/operations/code/upload-files.js.map +1 -1
  285. package/dist/esm/operations/code/versions.d.ts +0 -20
  286. package/dist/esm/operations/code/versions.js +16 -51
  287. package/dist/esm/operations/code/versions.js.map +1 -1
  288. package/dist/esm/operations/code/watch.d.ts +3 -0
  289. package/dist/esm/operations/code/watch.js +3 -2
  290. package/dist/esm/operations/code/watch.js.map +1 -1
  291. package/dist/esm/operations/jobs/discover.d.ts +1 -1
  292. package/dist/esm/operations/jobs/discover.js +51 -21
  293. package/dist/esm/operations/jobs/discover.js.map +1 -1
  294. package/dist/esm/operations/jobs/index.d.ts +14 -57
  295. package/dist/esm/operations/jobs/index.js +15 -59
  296. package/dist/esm/operations/jobs/index.js.map +1 -1
  297. package/dist/esm/operations/jobs/ocapi-mapping.d.ts +34 -0
  298. package/dist/esm/operations/jobs/ocapi-mapping.js +100 -0
  299. package/dist/esm/operations/jobs/ocapi-mapping.js.map +1 -0
  300. package/dist/esm/operations/jobs/run-system-job.d.ts +81 -0
  301. package/dist/esm/operations/jobs/run-system-job.js +137 -0
  302. package/dist/esm/operations/jobs/run-system-job.js.map +1 -0
  303. package/dist/esm/operations/jobs/run.js +16 -4
  304. package/dist/esm/operations/jobs/run.js.map +1 -1
  305. package/dist/esm/operations/jobs/scapi-ops.d.ts +61 -0
  306. package/dist/esm/operations/jobs/scapi-ops.js +214 -0
  307. package/dist/esm/operations/jobs/scapi-ops.js.map +1 -0
  308. package/dist/esm/operations/jobs/site-archive.js +28 -66
  309. package/dist/esm/operations/jobs/site-archive.js.map +1 -1
  310. package/dist/esm/operations/jobs/types.d.ts +46 -0
  311. package/dist/esm/operations/jobs/types.js +2 -0
  312. package/dist/esm/operations/jobs/types.js.map +1 -0
  313. package/dist/esm/operations/jobs/wait-canonical.d.ts +28 -0
  314. package/dist/esm/operations/jobs/wait-canonical.js +48 -0
  315. package/dist/esm/operations/jobs/wait-canonical.js.map +1 -0
  316. package/dist/esm/operations/mrt/bundle.d.ts +164 -2
  317. package/dist/esm/operations/mrt/bundle.js +315 -9
  318. package/dist/esm/operations/mrt/bundle.js.map +1 -1
  319. package/dist/esm/operations/mrt/deployment.d.ts +221 -0
  320. package/dist/esm/operations/mrt/deployment.js +239 -0
  321. package/dist/esm/operations/mrt/deployment.js.map +1 -1
  322. package/dist/esm/operations/mrt/index.d.ts +8 -6
  323. package/dist/esm/operations/mrt/index.js +5 -3
  324. package/dist/esm/operations/mrt/index.js.map +1 -1
  325. package/dist/esm/operations/mrt/mrt-backend.d.ts +117 -0
  326. package/dist/esm/operations/mrt/mrt-backend.js +84 -0
  327. package/dist/esm/operations/mrt/mrt-backend.js.map +1 -0
  328. package/dist/esm/operations/mrt/push.d.ts +83 -1
  329. package/dist/esm/operations/mrt/push.js +102 -1
  330. package/dist/esm/operations/mrt/push.js.map +1 -1
  331. package/dist/esm/operations/sites/cartridges.d.ts +10 -8
  332. package/dist/esm/operations/sites/cartridges.js +35 -67
  333. package/dist/esm/operations/sites/cartridges.js.map +1 -1
  334. package/dist/esm/operations/sites/index.d.ts +10 -6
  335. package/dist/esm/operations/sites/index.js +9 -6
  336. package/dist/esm/operations/sites/index.js.map +1 -1
  337. package/dist/esm/operations/sites/ocapi-sites-backend.d.ts +20 -0
  338. package/dist/esm/operations/sites/ocapi-sites-backend.js +98 -0
  339. package/dist/esm/operations/sites/ocapi-sites-backend.js.map +1 -0
  340. package/dist/esm/operations/sites/scapi-sites-backend.d.ts +33 -0
  341. package/dist/esm/operations/sites/scapi-sites-backend.js +166 -0
  342. package/dist/esm/operations/sites/scapi-sites-backend.js.map +1 -0
  343. package/dist/esm/operations/sites/sites-backend.d.ts +9 -0
  344. package/dist/esm/operations/sites/sites-backend.js +16 -0
  345. package/dist/esm/operations/sites/sites-backend.js.map +1 -0
  346. package/dist/esm/operations/sites/sites-scopes.d.ts +2 -0
  347. package/dist/esm/operations/sites/sites-scopes.js +16 -0
  348. package/dist/esm/operations/sites/sites-scopes.js.map +1 -0
  349. package/dist/esm/operations/sites/sites-types.d.ts +50 -0
  350. package/dist/esm/operations/sites/sites-types.js +2 -0
  351. package/dist/esm/operations/sites/sites-types.js.map +1 -0
  352. package/dist/esm/safety/safety-middleware.d.ts +7 -3
  353. package/dist/esm/safety/safety-middleware.js +13 -9
  354. package/dist/esm/safety/safety-middleware.js.map +1 -1
  355. package/dist/esm/scaffold/sources.js +6 -9
  356. package/dist/esm/scaffold/sources.js.map +1 -1
  357. package/dist/esm/scapi/auth-primitives.d.ts +3 -0
  358. package/dist/esm/scapi/auth-primitives.js +104 -0
  359. package/dist/esm/scapi/auth-primitives.js.map +1 -0
  360. package/dist/esm/scapi/authentication.d.ts +30 -0
  361. package/dist/esm/scapi/authentication.js +136 -0
  362. package/dist/esm/scapi/authentication.js.map +1 -0
  363. package/dist/esm/scapi/catalog.d.ts +29 -0
  364. package/dist/esm/scapi/catalog.js +81 -0
  365. package/dist/esm/scapi/catalog.js.map +1 -0
  366. package/dist/esm/scapi/index.d.ts +12 -0
  367. package/dist/esm/scapi/index.js +13 -0
  368. package/dist/esm/scapi/index.js.map +1 -0
  369. package/dist/esm/scapi/request.d.ts +15 -0
  370. package/dist/esm/scapi/request.js +239 -0
  371. package/dist/esm/scapi/request.js.map +1 -0
  372. package/dist/esm/scapi/runtime.d.ts +20 -0
  373. package/dist/esm/scapi/runtime.js +131 -0
  374. package/dist/esm/scapi/runtime.js.map +1 -0
  375. package/dist/esm/scapi/snippets.d.ts +22 -0
  376. package/dist/esm/scapi/snippets.js +140 -0
  377. package/dist/esm/scapi/snippets.js.map +1 -0
  378. package/dist/esm/scapi/worker-source.d.ts +2 -0
  379. package/dist/esm/scapi/worker-source.js +101 -0
  380. package/dist/esm/scapi/worker-source.js.map +1 -0
  381. package/dist/esm/search/ranking.d.ts +12 -0
  382. package/dist/esm/search/ranking.js +28 -0
  383. package/dist/esm/search/ranking.js.map +1 -0
  384. package/dist/esm/skills/sources.d.ts +2 -2
  385. package/dist/esm/skills/sources.js +10 -2
  386. package/dist/esm/skills/sources.js.map +1 -1
  387. package/dist/esm/skills/types.d.ts +1 -1
  388. package/dist/esm/slas/token.js +33 -94
  389. package/dist/esm/slas/token.js.map +1 -1
  390. package/dist/esm/slas/types.d.ts +5 -0
  391. package/node_modules/@salesforce/b2c-api-schemas/README.md +23 -0
  392. package/node_modules/@salesforce/b2c-api-schemas/manifest.json +576 -0
  393. package/node_modules/@salesforce/b2c-api-schemas/package.json +15 -0
  394. package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +11490 -0
  395. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +3589 -0
  396. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +6544 -0
  397. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +7148 -0
  398. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +4411 -0
  399. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +643 -0
  400. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +295 -0
  401. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +2036 -0
  402. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +327 -0
  403. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +234 -0
  404. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +1542 -0
  405. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +405 -0
  406. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +2531 -0
  407. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +7944 -0
  408. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +292 -0
  409. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +2537 -0
  410. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +517 -0
  411. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +589 -0
  412. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +3600 -0
  413. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +2319 -0
  414. package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +658 -0
  415. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +2649 -0
  416. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +6615 -0
  417. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +2103 -0
  418. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1760 -0
  419. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +640 -0
  420. package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1263 -0
  421. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1259 -0
  422. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +760 -0
  423. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +1047 -0
  424. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1929 -0
  425. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +1542 -0
  426. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +1093 -0
  427. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +1324 -0
  428. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +325 -0
  429. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +631 -0
  430. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +1036 -0
  431. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +5175 -0
  432. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +866 -0
  433. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +747 -0
  434. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +5076 -0
  435. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +509 -0
  436. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +517 -0
  437. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +2961 -0
  438. package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1889 -0
  439. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +7014 -0
  440. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1898 -0
  441. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +622 -0
  442. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +192 -0
  443. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +913 -0
  444. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +630 -0
  445. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +223 -0
  446. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +423 -0
  447. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +1088 -0
  448. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +798 -0
  449. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +607 -0
  450. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1418 -0
  451. package/package.json +24 -3
  452. package/specs/dx-scripts-v1.yaml +409 -0
  453. package/specs/merchant-roles-v1.yaml +1085 -0
  454. package/specs/merchant-users-v1.yaml +398 -0
  455. package/specs/mrt-api-v1.json +105 -0
  456. package/specs/operations-jobs-v1.yaml +793 -0
  457. package/specs/product-catalogs-v1.yaml +111 -0
  458. package/specs/site-sites-v1.yaml +667 -0
  459. package/specs/slas-shopper-v1.yaml +83 -0
  460. package/specs/storefront-deployments-v1.yaml +630 -0
@@ -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>;
@@ -0,0 +1,214 @@
1
+ import { createScapiRequestError, ScapiRequestError } from '../../clients/scapi-backend-utils.js';
2
+ import { SCOPE_MODE_HEADER } from '../../clients/middleware.js';
3
+ import { toOrganizationId, } from '../../clients/scapi-jobs.js';
4
+ import { getLogger } from '../../logging/logger.js';
5
+ const READ_HEADERS = { [SCOPE_MODE_HEADER]: 'read' };
6
+ const WRITE_HEADERS = { [SCOPE_MODE_HEADER]: 'write' };
7
+ /**
8
+ * Thrown by {@link executeJob} when the SCAPI job-start POST is rejected with
9
+ * a response (non-2xx). Carries the received HTTP status so callers can tell a
10
+ * *request rejection* (server refused before starting the job — safe to treat
11
+ * as "no job created") from an ambiguous failure.
12
+ *
13
+ * A network/timeout error during the POST does NOT produce this — it surfaces
14
+ * as a raw thrown error with no status, because the request may have reached
15
+ * the server and the job may already be running.
16
+ */
17
+ export class ScapiJobStartError extends ScapiRequestError {
18
+ status;
19
+ constructor(message,
20
+ /** HTTP status of the rejection response. */
21
+ status) {
22
+ super(message, status);
23
+ this.status = status;
24
+ this.name = 'ScapiJobStartError';
25
+ }
26
+ }
27
+ function mapStepExecution(step) {
28
+ return {
29
+ id: step.id,
30
+ stepId: step.stepId,
31
+ executionStatus: step.executionStatus,
32
+ exitStatus: step.exitStatus
33
+ ? {
34
+ code: step.exitStatus.code ?? '',
35
+ message: step.exitStatus.message,
36
+ status: step.exitStatus.status,
37
+ }
38
+ : undefined,
39
+ duration: step.duration,
40
+ };
41
+ }
42
+ function mapScapiExecution(scapi) {
43
+ return {
44
+ id: scapi.id,
45
+ jobId: scapi.jobId,
46
+ executionStatus: (scapi.executionStatus ?? 'unknown'),
47
+ exitStatus: scapi.exitStatus
48
+ ? {
49
+ code: scapi.exitStatus.code ?? '',
50
+ message: scapi.exitStatus.message,
51
+ status: scapi.exitStatus.status,
52
+ }
53
+ : undefined,
54
+ startTime: scapi.startTime,
55
+ endTime: scapi.endTime,
56
+ duration: scapi.duration,
57
+ stepExecutions: scapi.stepExecutions?.map(mapStepExecution),
58
+ logFilePath: scapi.logFilePath,
59
+ isLogFileExisting: scapi.isLogFileExisting,
60
+ parameters: scapi.parameters,
61
+ _raw: scapi,
62
+ };
63
+ }
64
+ /**
65
+ * Execute a job. Requires the rw scope (no ro fallback for writes).
66
+ *
67
+ * If the job is already running and `waitForRunning` is not `false`, polls
68
+ * until the prior run reaches a terminal state, then retries.
69
+ */
70
+ export async function executeJob(client, jobId, options) {
71
+ const organizationId = toOrganizationId(options.tenantId);
72
+ const { parameters = [], body: rawBody } = options;
73
+ let requestBody;
74
+ if (rawBody) {
75
+ requestBody = rawBody;
76
+ }
77
+ else if (parameters.length > 0) {
78
+ requestBody = { parameters };
79
+ }
80
+ const { data, error, response } = await client.POST('/organizations/{organizationId}/jobs/{jobId}/executions', {
81
+ params: { path: { organizationId, jobId } },
82
+ headers: WRITE_HEADERS,
83
+ body: requestBody,
84
+ });
85
+ if (response.status === 400) {
86
+ const errorBody = error;
87
+ if (errorBody?.type?.includes('job-already-running') || errorBody?.title === 'Job Already Running') {
88
+ if (options.waitForRunning !== false) {
89
+ getLogger().warn({ jobId }, `Job ${jobId} already running, waiting for it to finish...`);
90
+ const running = await findRunningExecution(client, jobId, options.tenantId);
91
+ if (running) {
92
+ await waitForTerminal(client, jobId, running.id, options.tenantId);
93
+ }
94
+ return executeJob(client, jobId, { ...options, waitForRunning: false });
95
+ }
96
+ throw new Error(`Job ${jobId} is already running`);
97
+ }
98
+ }
99
+ if (error || !data) {
100
+ const errorBody = error;
101
+ const message = errorBody?.detail ?? errorBody?.title ?? `Failed to execute job ${jobId}`;
102
+ // A received (non-2xx) response means the server refused the start — carry
103
+ // the status so callers can classify request-rejection vs ambiguous.
104
+ throw new ScapiJobStartError(message, response.status);
105
+ }
106
+ return mapScapiExecution(data);
107
+ }
108
+ export async function getJobExecution(client, jobId, executionId, tenantId) {
109
+ const organizationId = toOrganizationId(tenantId);
110
+ const { data, error, response } = await client.GET('/organizations/{organizationId}/jobs/{jobId}/executions/{executionId}', {
111
+ params: { path: { organizationId, jobId, executionId } },
112
+ headers: READ_HEADERS,
113
+ });
114
+ if (error || !data) {
115
+ throw createScapiRequestError(error, response, `Failed to get job execution ${executionId}`);
116
+ }
117
+ return mapScapiExecution(data);
118
+ }
119
+ export async function searchJobExecutions(client, options) {
120
+ const organizationId = toOrganizationId(options.tenantId);
121
+ const { jobId, status, count = 25, start = 0, sortBy = 'start_time', sortOrder = 'desc' } = options;
122
+ // The SCAPI search DSL uses camelCase wrapper names (`termQuery`, `boolQuery`),
123
+ // but the underlying searchable/sortable field names on this endpoint are
124
+ // the legacy OCAPI snake_case identifiers (`job_id`, `status`, `start_time`).
125
+ // Don't rename these to camelCase to "match the response schema" — the
126
+ // request side wouldn't match anything. See scapi-ops.test.ts.
127
+ const queries = [];
128
+ if (jobId) {
129
+ queries.push({ termQuery: { fields: ['job_id'], operator: 'is', values: [jobId] } });
130
+ }
131
+ if (status) {
132
+ const statusValues = Array.isArray(status) ? status : [status];
133
+ queries.push({ termQuery: { fields: ['status'], operator: 'one_of', values: statusValues } });
134
+ }
135
+ let query;
136
+ if (queries.length === 0) {
137
+ query = { matchAllQuery: {} };
138
+ }
139
+ else if (queries.length === 1) {
140
+ query = queries[0];
141
+ }
142
+ else {
143
+ query = { boolQuery: { must: queries } };
144
+ }
145
+ const { data, error, response } = await client.POST('/organizations/{organizationId}/job-execution-search', {
146
+ params: { path: { organizationId } },
147
+ headers: READ_HEADERS,
148
+ body: {
149
+ query,
150
+ limit: count,
151
+ offset: start,
152
+ sorts: [{ field: sortBy, sortOrder }],
153
+ },
154
+ });
155
+ if (error || !data) {
156
+ throw createScapiRequestError(error, response, 'Failed to search job executions');
157
+ }
158
+ const result = data;
159
+ return {
160
+ total: result.total ?? 0,
161
+ limit: result.limit ?? count,
162
+ offset: result.offset ?? start,
163
+ hits: (result.hits ?? []).map(mapScapiExecution),
164
+ };
165
+ }
166
+ export async function deleteJobExecution(client, jobId, executionId, tenantId) {
167
+ const organizationId = toOrganizationId(tenantId);
168
+ const { error, response } = await client.DELETE('/organizations/{organizationId}/jobs/{jobId}/executions/{executionId}', {
169
+ params: { path: { organizationId, jobId, executionId } },
170
+ headers: WRITE_HEADERS,
171
+ });
172
+ if (error) {
173
+ throw createScapiRequestError(error, response, `Failed to delete job execution ${executionId}`);
174
+ }
175
+ }
176
+ /**
177
+ * Retrieves a job's log file content over WebDAV. Both backends
178
+ * (SCAPI and OCAPI) expose `logFilePath` under `/Sites/LOGS/...`; WebDAV is
179
+ * shared, so this lives in jobs/scapi-ops.ts only as a convenience for SDK
180
+ * consumers building purely against SCAPI ops.
181
+ */
182
+ export async function getJobLog(instance, execution) {
183
+ if (!execution.logFilePath) {
184
+ throw new Error('No log file path available');
185
+ }
186
+ if (!execution.isLogFileExisting) {
187
+ throw new Error('Log file does not exist');
188
+ }
189
+ const logPath = execution.logFilePath.replace(/^\/Sites\//, '');
190
+ const content = await instance.webdav.get(logPath);
191
+ return new TextDecoder().decode(content);
192
+ }
193
+ async function findRunningExecution(client, jobId, tenantId) {
194
+ const results = await searchJobExecutions(client, {
195
+ jobId,
196
+ status: ['RUNNING', 'PENDING'],
197
+ sortBy: 'start_time',
198
+ sortOrder: 'asc',
199
+ count: 1,
200
+ tenantId,
201
+ });
202
+ return results.hits[0];
203
+ }
204
+ async function waitForTerminal(client, jobId, executionId, tenantId) {
205
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
206
+ while (true) {
207
+ await sleep(3000);
208
+ const execution = await getJobExecution(client, jobId, executionId, tenantId);
209
+ if (execution.executionStatus === 'finished' || execution.executionStatus === 'aborted') {
210
+ return;
211
+ }
212
+ }
213
+ }
214
+ //# sourceMappingURL=scapi-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scapi-ops.js","sourceRoot":"","sources":["../../../../src/operations/jobs/scapi-ops.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,12 @@ import * as zlib from 'node:zlib';
15
15
  import { glob, hasMagic } from 'glob';
16
16
  import JSZip from 'jszip';
17
17
  import { B2CInstance } from '../../instance/index.js';
18
+ import { SCAPI_JOBS_CASCADE } from '../../clients/scapi-jobs.js';
18
19
  import { addDirectoryToZip } from '../util/zip.js';
19
- import { waitForJob } from './run.js';
20
+ import {} from './run.js';
21
+ import { runSystemJob } from './run-system-job.js';
22
+ // Import/export trigger system jobs via the job-execution write surface.
23
+ const JOBS_RW_SCOPES = [...new Set(SCAPI_JOBS_CASCADE.write.flat())];
20
24
  const IMPORT_JOB_ID = 'sfcc-site-archive-import';
21
25
  const EXPORT_JOB_ID = 'sfcc-site-archive-export';
22
26
  /**
@@ -147,38 +151,19 @@ export async function siteArchiveImport(instance, target, options = {}) {
147
151
  if (needsUpload && archiveContent) {
148
152
  await instance.webdav.put(uploadPath, archiveContent, 'application/zip');
149
153
  }
150
- let execution;
151
- // Try file_name format first (standard OCAPI format)
152
- const { data, error } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
153
- params: { path: { job_id: IMPORT_JOB_ID } },
154
+ // Execute the import job (SCAPI when configured, OCAPI fallback in auto).
155
+ const execution = await runSystemJob(instance, {
156
+ jobId: IMPORT_JOB_ID,
154
157
  body: { file_name: zipFilename },
158
+ parameters: [{ name: 'ImportFile', value: zipFilename }],
159
+ deprecatedScopes: JOBS_RW_SCOPES,
160
+ wait,
161
+ waitOptions,
162
+ failVerb: 'execute import job',
155
163
  });
156
- if (error?.fault?.type === 'UnknownPropertyException' &&
157
- error.fault.arguments?.document === 'job_execution_request') {
158
- // Retry with parameters format (internal/support users)
159
- const { data: retryData, error: retryError } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
160
- params: { path: { job_id: IMPORT_JOB_ID } },
161
- body: {
162
- parameters: [{ name: 'ImportFile', value: zipFilename }],
163
- },
164
- });
165
- if (retryError || !retryData) {
166
- throw new Error(retryError?.fault?.message ?? 'Failed to execute import job');
167
- }
168
- execution = retryData;
169
- }
170
- else if (error || !data) {
171
- throw new Error(error?.fault?.message ?? 'Failed to execute import job');
172
- }
173
- else {
174
- execution = data;
175
- }
176
- if (wait) {
177
- execution = await waitForJob(instance, IMPORT_JOB_ID, execution.id, waitOptions);
178
- // Clean up archive if not keeping
179
- if (!keepArchive && needsUpload) {
180
- await instance.webdav.delete(uploadPath);
181
- }
164
+ // Clean up archive if not keeping (only when we waited for completion)
165
+ if (wait && !keepArchive && needsUpload) {
166
+ await instance.webdav.delete(uploadPath);
182
167
  }
183
168
  return {
184
169
  execution,
@@ -633,41 +618,18 @@ export async function siteArchiveExport(instance, dataUnits, options = {}) {
633
618
  const timestamp = new Date().toISOString().replace(/[:.-]+/g, '');
634
619
  const archiveDirName = `${timestamp}_export`;
635
620
  const zipFilename = `${archiveDirName}.zip`;
636
- let execution;
637
- // Execute export job - try export_file format first
638
- {
639
- const { data, error } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
640
- params: { path: { job_id: EXPORT_JOB_ID } },
641
- body: {
642
- export_file: zipFilename,
643
- data_units: dataUnits,
644
- },
645
- });
646
- if (error?.fault?.type === 'UnknownPropertyException' &&
647
- error.fault.arguments?.document === 'job_execution_request') {
648
- // Retry with parameters format (internal/support users)
649
- const { data: retryData, error: retryError } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
650
- params: { path: { job_id: EXPORT_JOB_ID } },
651
- body: {
652
- parameters: [
653
- { name: 'ExportFile', value: zipFilename },
654
- { name: 'DataUnits', value: JSON.stringify(dataUnits) },
655
- ],
656
- },
657
- });
658
- if (retryError || !retryData) {
659
- throw new Error(retryError?.fault?.message ?? 'Failed to execute export job');
660
- }
661
- execution = retryData;
662
- }
663
- else if (error || !data) {
664
- throw new Error(error?.fault?.message ?? 'Failed to execute export job');
665
- }
666
- else {
667
- execution = data;
668
- }
669
- }
670
- execution = await waitForJob(instance, EXPORT_JOB_ID, execution.id, waitOptions);
621
+ // Execute export job (SCAPI when configured, OCAPI fallback in auto).
622
+ const execution = await runSystemJob(instance, {
623
+ jobId: EXPORT_JOB_ID,
624
+ body: { export_file: zipFilename, data_units: dataUnits },
625
+ parameters: [
626
+ { name: 'ExportFile', value: zipFilename },
627
+ { name: 'DataUnits', value: JSON.stringify(dataUnits) },
628
+ ],
629
+ deprecatedScopes: JOBS_RW_SCOPES,
630
+ waitOptions,
631
+ failVerb: 'execute export job',
632
+ });
671
633
  return {
672
634
  execution,
673
635
  archiveFilename: zipFilename,