@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
@@ -7,13 +7,13 @@
7
7
  * Site cartridge path operations for B2C Commerce instances.
8
8
  *
9
9
  * Provides functions for managing the ordered list of active cartridges
10
- * on a site via OCAPI Data API, with automatic fallback to site archive
11
- * import/export when OCAPI permissions are unavailable.
10
+ * on a site via SCAPI with temporary OCAPI fallback, plus site archive
11
+ * import/export when neither direct API is available.
12
12
  */
13
13
  import JSZip from 'jszip';
14
- import { getApiErrorMessage } from '../../clients/error-utils.js';
15
14
  import { getLogger } from '../../logging/logger.js';
16
15
  import { siteArchiveImport, siteArchiveExportToBuffer } from '../jobs/site-archive.js';
16
+ import { createSitesBackend } from './sites-backend.js';
17
17
  /** The special site ID for Business Manager. */
18
18
  export const BM_SITE_ID = 'Sites-Site';
19
19
  /**
@@ -30,7 +30,8 @@ function toResult(siteId, cartridges) {
30
30
  /**
31
31
  * Gets the cartridge path for a site.
32
32
  *
33
- * Uses OCAPI `GET /sites/{site_id}` to read the cartridge path.
33
+ * Uses the configured Sites backend to read the cartridge path. Auto mode
34
+ * prefers SCAPI and temporarily falls back to OCAPI.
34
35
  * Works for all sites including Business Manager (Sites-Site).
35
36
  *
36
37
  * @param instance - B2C instance to query
@@ -47,22 +48,20 @@ function toResult(siteId, cartridges) {
47
48
  * ```
48
49
  */
49
50
  export async function getCartridgePath(instance, siteId) {
50
- const { data, error, response } = await instance.ocapi.GET('/sites/{site_id}', {
51
- params: { path: { site_id: siteId } },
52
- });
53
- if (error) {
54
- throw new Error(`Failed to get cartridge path for site "${siteId}": ${getApiErrorMessage(error, response)}`, {
55
- cause: error,
56
- });
51
+ try {
52
+ const cartridges = await createSitesBackend({ instance }).getCartridgePath(siteId);
53
+ return toResult(siteId, cartridges);
54
+ }
55
+ catch (error) {
56
+ const message = error instanceof Error ? error.message : String(error);
57
+ throw new Error(`Failed to get cartridge path for site "${siteId}": ${message}`, { cause: error });
57
58
  }
58
- const site = data;
59
- return toResult(siteId, site.cartridges ?? '');
60
59
  }
61
60
  /**
62
61
  * Adds a cartridge to a site's cartridge path.
63
62
  *
64
- * For regular sites, tries OCAPI `POST /sites/{site_id}/cartridges` first,
65
- * falling back to site archive import if OCAPI permissions are unavailable.
63
+ * For regular sites, uses the SCAPI-first Sites backend and falls back to site
64
+ * archive import if neither direct backend is available.
66
65
  * For Business Manager (Sites-Site), always uses site archive import.
67
66
  *
68
67
  * @param instance - B2C instance
@@ -91,27 +90,19 @@ export async function addCartridge(instance, siteId, options, updateOptions) {
91
90
  logger.debug({ siteId }, 'Business Manager site — using site archive import for cartridge add');
92
91
  return addCartridgeViaImport(instance, siteId, options, updateOptions);
93
92
  }
94
- // Try OCAPI first for regular sites
93
+ const backend = createSitesBackend({ instance });
95
94
  try {
96
- const { data, error, response } = await instance.ocapi.POST('/sites/{site_id}/cartridges', {
97
- params: { path: { site_id: siteId } },
98
- body: options,
99
- });
100
- if (error) {
101
- throw new OcapiError(getApiErrorMessage(error, response), response.status);
102
- }
103
- const result = data;
104
- return toResult(siteId, result.cartridges ?? '');
95
+ return toResult(siteId, await backend.addCartridge(siteId, options.name, options.position, options.target));
105
96
  }
106
- catch (ocapiError) {
107
- return handleFallback(instance, siteId, 'add', ocapiError, () => addCartridgeViaImport(instance, siteId, options, updateOptions));
97
+ catch (backendError) {
98
+ return handleFallback(instance, siteId, 'add', backendError, () => addCartridgeViaImport(instance, siteId, options, updateOptions));
108
99
  }
109
100
  }
110
101
  /**
111
102
  * Removes a cartridge from a site's cartridge path.
112
103
  *
113
- * For regular sites, tries OCAPI `DELETE /sites/{site_id}/cartridges/{cartridge_name}`
114
- * first, falling back to site archive import if OCAPI permissions are unavailable.
104
+ * For regular sites, uses the SCAPI-first Sites backend and falls back to site
105
+ * archive import if neither direct backend is available.
115
106
  * For Business Manager (Sites-Site), always uses site archive import.
116
107
  *
117
108
  * @param instance - B2C instance
@@ -130,25 +121,19 @@ export async function removeCartridge(instance, siteId, cartridgeName, updateOpt
130
121
  logger.debug({ siteId }, 'Business Manager site — using site archive import for cartridge remove');
131
122
  return removeCartridgeViaImport(instance, siteId, cartridgeName, updateOptions);
132
123
  }
124
+ const backend = createSitesBackend({ instance });
133
125
  try {
134
- const { data, error, response } = await instance.ocapi.DELETE('/sites/{site_id}/cartridges/{cartridge_name}', {
135
- params: { path: { site_id: siteId, cartridge_name: cartridgeName } },
136
- });
137
- if (error) {
138
- throw new OcapiError(getApiErrorMessage(error, response), response.status);
139
- }
140
- const result = data;
141
- return toResult(siteId, result.cartridges ?? '');
126
+ return toResult(siteId, await backend.removeCartridge(siteId, cartridgeName));
142
127
  }
143
- catch (ocapiError) {
144
- return handleFallback(instance, siteId, 'remove', ocapiError, () => removeCartridgeViaImport(instance, siteId, cartridgeName, updateOptions));
128
+ catch (backendError) {
129
+ return handleFallback(instance, siteId, 'remove', backendError, () => removeCartridgeViaImport(instance, siteId, cartridgeName, updateOptions));
145
130
  }
146
131
  }
147
132
  /**
148
133
  * Replaces the entire cartridge path for a site.
149
134
  *
150
- * For regular sites, tries OCAPI `PUT /sites/{site_id}/cartridges` first,
151
- * falling back to site archive import if OCAPI permissions are unavailable.
135
+ * For regular sites, uses the SCAPI-first Sites backend and falls back to site
136
+ * archive import if neither direct backend is available.
152
137
  * For Business Manager (Sites-Site), always uses site archive import.
153
138
  *
154
139
  * @param instance - B2C instance
@@ -167,39 +152,21 @@ export async function setCartridgePath(instance, siteId, cartridges, updateOptio
167
152
  logger.debug({ siteId }, 'Business Manager site — using site archive import for cartridge set');
168
153
  return setCartridgePathViaImport(instance, siteId, cartridges, updateOptions);
169
154
  }
155
+ const backend = createSitesBackend({ instance });
170
156
  try {
171
- const { data, error, response } = await instance.ocapi.PUT('/sites/{site_id}/cartridges', {
172
- params: { path: { site_id: siteId } },
173
- body: { cartridges },
174
- });
175
- if (error) {
176
- throw new OcapiError(getApiErrorMessage(error, response), response.status);
177
- }
178
- const result = data;
179
- return toResult(siteId, result.cartridges ?? '');
157
+ return toResult(siteId, await backend.setCartridgePath(siteId, cartridges));
180
158
  }
181
- catch (ocapiError) {
182
- return handleFallback(instance, siteId, 'set', ocapiError, () => setCartridgePathViaImport(instance, siteId, cartridges, updateOptions));
183
- }
184
- }
185
- // ---------------------------------------------------------------------------
186
- // Internal: OCAPI error wrapper
187
- // ---------------------------------------------------------------------------
188
- class OcapiError extends Error {
189
- statusCode;
190
- constructor(message, statusCode) {
191
- super(message);
192
- this.name = 'OcapiError';
193
- this.statusCode = statusCode;
159
+ catch (backendError) {
160
+ return handleFallback(instance, siteId, 'set', backendError, () => setCartridgePathViaImport(instance, siteId, cartridges, updateOptions));
194
161
  }
195
162
  }
196
163
  // ---------------------------------------------------------------------------
197
164
  // Internal: Fallback handler
198
165
  // ---------------------------------------------------------------------------
199
- async function handleFallback(instance, siteId, operation, ocapiError, fallbackFn) {
166
+ async function handleFallback(instance, siteId, operation, backendError, fallbackFn) {
200
167
  const logger = getLogger();
201
- const ocapiMessage = ocapiError instanceof Error ? ocapiError.message : String(ocapiError);
202
- logger.warn({ siteId, operation, error: ocapiMessage }, `OCAPI ${operation} failed, trying site archive import fallback`);
168
+ const backendMessage = backendError instanceof Error ? backendError.message : String(backendError);
169
+ logger.warn({ siteId, operation, error: backendMessage }, `Direct API ${operation} failed, trying site archive import fallback`);
203
170
  try {
204
171
  return await fallbackFn();
205
172
  }
@@ -208,10 +175,11 @@ async function handleFallback(instance, siteId, operation, ocapiError, fallbackF
208
175
  throw new Error([
209
176
  `Failed to ${operation} cartridge path for site "${siteId}".`,
210
177
  '',
211
- `OCAPI direct update failed: ${ocapiMessage}`,
178
+ `SCAPI/OCAPI direct update failed: ${backendMessage}`,
212
179
  `Site archive import fallback also failed: ${importMessage}`,
213
180
  '',
214
181
  'To fix, configure one of:',
182
+ ' • SCAPI Sites API: Grant sfcc.sites.rw',
215
183
  ' • OCAPI Data API: Grant POST/PUT/DELETE on /sites/*/cartridges',
216
184
  ' • Site import: Grant job execution permissions for sfcc-site-archive-import and WebDAV write access to Impex/',
217
185
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"cartridges.js","sourceRoot":"","sources":["../../../../src/operations/sites/cartridges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cartridges.js","sourceRoot":"","sources":["../../../../src/operations/sites/cartridges.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,9 @@
2
2
  * Site operations for B2C Commerce instances.
3
3
  *
4
4
  * This module provides functions for managing site cartridge paths
5
- * on B2C Commerce instances. Operations work via OCAPI Data API with
6
- * automatic fallback to site archive import/export when OCAPI permissions
7
- * are unavailable. Business Manager (Sites-Site) is supported via the
8
- * import/export mechanism.
5
+ * on B2C Commerce instances. Operations use SCAPI first, with temporary
6
+ * OCAPI and site-archive fallbacks. Business Manager (Sites-Site) is
7
+ * supported via the import/export mechanism.
9
8
  *
10
9
  * ## Cartridge Path Functions
11
10
  *
@@ -36,11 +35,16 @@
36
35
  *
37
36
  * ## Authentication
38
37
  *
39
- * Cartridge path operations require OAuth authentication. For OCAPI direct updates,
40
- * grant POST/PUT/DELETE on `/sites/∗/cartridges`. For import/export fallback,
38
+ * Cartridge path operations require OAuth authentication. For SCAPI direct updates,
39
+ * grant `sfcc.sites.rw`; for OCAPI grant POST/PUT/DELETE on `/sites/∗/cartridges`. For import/export fallback,
41
40
  * grant job execution permissions and WebDAV write access.
42
41
  *
43
42
  * @module operations/sites
44
43
  */
45
44
  export { getCartridgePath, addCartridge, removeCartridge, setCartridgePath, BM_SITE_ID } from './cartridges.js';
46
45
  export type { CartridgePathResult, AddCartridgeOptions, CartridgePosition, CartridgeUpdateOptions, } from './cartridges.js';
46
+ export { createSitesBackend } from './sites-backend.js';
47
+ export type { SitesBackendConfig } from './sites-backend.js';
48
+ export { ScapiSitesBackend } from './scapi-sites-backend.js';
49
+ export { OcapiSitesBackend } from './ocapi-sites-backend.js';
50
+ export type { SitesBackend, SiteInfo, ListSitesOptions } from './sites-types.js';
@@ -7,10 +7,9 @@
7
7
  * Site operations for B2C Commerce instances.
8
8
  *
9
9
  * This module provides functions for managing site cartridge paths
10
- * on B2C Commerce instances. Operations work via OCAPI Data API with
11
- * automatic fallback to site archive import/export when OCAPI permissions
12
- * are unavailable. Business Manager (Sites-Site) is supported via the
13
- * import/export mechanism.
10
+ * on B2C Commerce instances. Operations use SCAPI first, with temporary
11
+ * OCAPI and site-archive fallbacks. Business Manager (Sites-Site) is
12
+ * supported via the import/export mechanism.
14
13
  *
15
14
  * ## Cartridge Path Functions
16
15
  *
@@ -41,11 +40,15 @@
41
40
  *
42
41
  * ## Authentication
43
42
  *
44
- * Cartridge path operations require OAuth authentication. For OCAPI direct updates,
45
- * grant POST/PUT/DELETE on `/sites/∗/cartridges`. For import/export fallback,
43
+ * Cartridge path operations require OAuth authentication. For SCAPI direct updates,
44
+ * grant `sfcc.sites.rw`; for OCAPI grant POST/PUT/DELETE on `/sites/∗/cartridges`. For import/export fallback,
46
45
  * grant job execution permissions and WebDAV write access.
47
46
  *
48
47
  * @module operations/sites
49
48
  */
50
49
  export { getCartridgePath, addCartridge, removeCartridge, setCartridgePath, BM_SITE_ID } from './cartridges.js';
50
+ // Site read operations (list/get) — SCAPI with OCAPI fallback
51
+ export { createSitesBackend } from './sites-backend.js';
52
+ export { ScapiSitesBackend } from './scapi-sites-backend.js';
53
+ export { OcapiSitesBackend } from './ocapi-sites-backend.js';
51
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/sites/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/sites/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAS9G,8DAA8D;AAC9D,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { B2CInstance } from '../../instance/index.js';
2
+ import type { SitesBackend, SiteInfo, ListSitesOptions } from './sites-types.js';
3
+ import type { CartridgePosition } from './sites-types.js';
4
+ /**
5
+ * OCAPI Sites backend (legacy/fallback). Reads sites and per-site detail via
6
+ * the OCAPI Data API `/sites` resource.
7
+ */
8
+ export declare class OcapiSitesBackend implements SitesBackend {
9
+ private instance;
10
+ readonly name: "ocapi";
11
+ constructor(instance: B2CInstance);
12
+ listSites(options?: ListSitesOptions): Promise<SiteInfo[]>;
13
+ private fetchSitePage;
14
+ private fetchSitePageWithTotal;
15
+ getSite(siteId: string): Promise<SiteInfo>;
16
+ getCartridgePath(siteId: string): Promise<string>;
17
+ setCartridgePath(siteId: string, cartridges: string): Promise<string>;
18
+ addCartridge(siteId: string, name: string, position: CartridgePosition, target?: string): Promise<string>;
19
+ removeCartridge(siteId: string, name: string): Promise<string>;
20
+ }
@@ -0,0 +1,98 @@
1
+ import { throwOcapiError } from '../../clients/error-utils.js';
2
+ import { SCAPI_SITES_READ_AND_RW_SCOPES } from './sites-scopes.js';
3
+ function mapOcapiSite(ocapi) {
4
+ return {
5
+ id: ocapi.id ?? '',
6
+ displayName: ocapi.display_name?.default ?? ocapi.id ?? '',
7
+ storefrontStatus: ocapi.storefront_status,
8
+ cartridges: ocapi.cartridges,
9
+ _raw: ocapi,
10
+ };
11
+ }
12
+ /**
13
+ * OCAPI Sites backend (legacy/fallback). Reads sites and per-site detail via
14
+ * the OCAPI Data API `/sites` resource.
15
+ */
16
+ export class OcapiSitesBackend {
17
+ instance;
18
+ name = 'ocapi';
19
+ constructor(instance) {
20
+ this.instance = instance;
21
+ }
22
+ async listSites(options = {}) {
23
+ // When the caller bounds the result (start/count), honor it as a single
24
+ // page. Otherwise page through the whole collection so callers that need
25
+ // *all* sites (export-unit discovery, CAP feature listing) don't silently
26
+ // truncate at the OCAPI default page size.
27
+ if (options.start !== undefined || options.count !== undefined) {
28
+ return this.fetchSitePage(options.start, options.count);
29
+ }
30
+ const all = [];
31
+ const pageSize = 200;
32
+ let start = 0;
33
+ for (;;) {
34
+ const { sites, total } = await this.fetchSitePageWithTotal(start, pageSize);
35
+ all.push(...sites);
36
+ start += pageSize;
37
+ if (sites.length === 0 || start >= total)
38
+ break;
39
+ }
40
+ return all;
41
+ }
42
+ async fetchSitePage(start, count) {
43
+ return (await this.fetchSitePageWithTotal(start, count)).sites;
44
+ }
45
+ async fetchSitePageWithTotal(start, count) {
46
+ const { data, error, response } = await this.instance.ocapi.GET('/sites', {
47
+ params: { query: { start, count, select: '(**)' } },
48
+ });
49
+ if (error || !data) {
50
+ throwOcapiError(error, response, 'Failed to list sites', SCAPI_SITES_READ_AND_RW_SCOPES);
51
+ }
52
+ const body = data;
53
+ const sites = (body.data ?? []).map(mapOcapiSite);
54
+ return { sites, total: body.total ?? (start ?? 0) + sites.length };
55
+ }
56
+ async getSite(siteId) {
57
+ const { data, error, response } = await this.instance.ocapi.GET('/sites/{site_id}', {
58
+ params: { path: { site_id: siteId } },
59
+ });
60
+ if (error || !data) {
61
+ throwOcapiError(error, response, `Failed to get site ${siteId}`, SCAPI_SITES_READ_AND_RW_SCOPES);
62
+ }
63
+ return mapOcapiSite(data);
64
+ }
65
+ async getCartridgePath(siteId) {
66
+ return (await this.getSite(siteId)).cartridges ?? '';
67
+ }
68
+ async setCartridgePath(siteId, cartridges) {
69
+ const { data, error, response } = await this.instance.ocapi.PUT('/sites/{site_id}/cartridges', {
70
+ params: { path: { site_id: siteId } },
71
+ body: { cartridges },
72
+ });
73
+ if (error || !data) {
74
+ throwOcapiError(error, response, `Failed to set cartridge path for site ${siteId}`, SCAPI_SITES_READ_AND_RW_SCOPES);
75
+ }
76
+ return data.cartridges ?? cartridges;
77
+ }
78
+ async addCartridge(siteId, name, position, target) {
79
+ const { data, error, response } = await this.instance.ocapi.POST('/sites/{site_id}/cartridges', {
80
+ params: { path: { site_id: siteId } },
81
+ body: { name, position, target },
82
+ });
83
+ if (error || !data) {
84
+ throwOcapiError(error, response, `Failed to add cartridge ${name} to site ${siteId}`, SCAPI_SITES_READ_AND_RW_SCOPES);
85
+ }
86
+ return data.cartridges ?? '';
87
+ }
88
+ async removeCartridge(siteId, name) {
89
+ const { data, error, response } = await this.instance.ocapi.DELETE('/sites/{site_id}/cartridges/{cartridge_name}', {
90
+ params: { path: { site_id: siteId, cartridge_name: name } },
91
+ });
92
+ if (error || !data) {
93
+ throwOcapiError(error, response, `Failed to remove cartridge ${name} from site ${siteId}`, SCAPI_SITES_READ_AND_RW_SCOPES);
94
+ }
95
+ return data.cartridges ?? '';
96
+ }
97
+ }
98
+ //# sourceMappingURL=ocapi-sites-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocapi-sites-backend.js","sourceRoot":"","sources":["../../../../src/operations/sites/ocapi-sites-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { AuthStrategy } from '../../auth/types.js';
2
+ import type { SitesBackend, SiteInfo, ListSitesOptions, CartridgePosition } from './sites-types.js';
3
+ export interface ScapiSitesBackendConfig {
4
+ shortCode: string;
5
+ tenantId: string;
6
+ auth: AuthStrategy;
7
+ /** Unused by Sites; accepted for compatibility with the dual-backend factory. */
8
+ instance?: unknown;
9
+ }
10
+ /**
11
+ * SCAPI Sites backend. Reads sites and manages custom cartridge paths via the
12
+ * `site/sites/v1` Admin API.
13
+ */
14
+ export declare class ScapiSitesBackend implements SitesBackend {
15
+ readonly name: "scapi";
16
+ private organizationId;
17
+ private client;
18
+ constructor(config: ScapiSitesBackendConfig);
19
+ listSites(options?: ListSitesOptions): Promise<SiteInfo[]>;
20
+ /**
21
+ * Fetches the requested window of sites, paginating across 50-item SCAPI
22
+ * pages. `start` is the offset into the full result set; `count` bounds how
23
+ * many are returned (unbounded when omitted).
24
+ */
25
+ private fetchSitePage;
26
+ /** Maps sites, fetching per-site detail (bounded concurrency) for sparse items. */
27
+ private enrichSites;
28
+ getSite(siteId: string): Promise<SiteInfo>;
29
+ getCartridgePath(siteId: string): Promise<string>;
30
+ setCartridgePath(siteId: string, cartridges: string): Promise<string>;
31
+ addCartridge(siteId: string, name: string, position: CartridgePosition, target?: string): Promise<string>;
32
+ removeCartridge(siteId: string, name: string): Promise<string>;
33
+ }
@@ -0,0 +1,166 @@
1
+ import { createScapiSitesClient, toOrganizationId, } from '../../clients/scapi-sites.js';
2
+ import { SCOPE_MODE_HEADER } from '../../clients/middleware.js';
3
+ import { createScapiRequestError } from '../../clients/scapi-backend-utils.js';
4
+ const READ_HEADERS = { [SCOPE_MODE_HEADER]: 'read' };
5
+ const WRITE_HEADERS = { [SCOPE_MODE_HEADER]: 'write' };
6
+ /** SCAPI `getSites` caps `limit` at 50 (spec `site-sites-v1.yaml`). */
7
+ const SCAPI_SITES_MAX_PAGE = 50;
8
+ /** Concurrency for per-site detail enrichment; bounds rate-limit pressure. */
9
+ const ENRICH_CONCURRENCY = 5;
10
+ function defaultLocaleValue(map) {
11
+ if (!map)
12
+ return undefined;
13
+ return map.default ?? Object.values(map)[0];
14
+ }
15
+ function mapScapiSite(scapi) {
16
+ return {
17
+ id: scapi.id,
18
+ displayName: defaultLocaleValue(scapi.displayName) ?? scapi.id,
19
+ storefrontStatus: scapi.storefrontStatus,
20
+ cartridges: scapi.cartridges,
21
+ _raw: scapi,
22
+ };
23
+ }
24
+ /**
25
+ * SCAPI Sites backend. Reads sites and manages custom cartridge paths via the
26
+ * `site/sites/v1` Admin API.
27
+ */
28
+ export class ScapiSitesBackend {
29
+ name = 'scapi';
30
+ organizationId;
31
+ client;
32
+ constructor(config) {
33
+ this.organizationId = toOrganizationId(config.tenantId);
34
+ const clientConfig = { shortCode: config.shortCode, tenantId: config.tenantId };
35
+ this.client = createScapiSitesClient(clientConfig, config.auth);
36
+ }
37
+ async listSites(options = {}) {
38
+ // Page through `getSites` on the server (limit capped at 50) rather than
39
+ // relying on the default single 25-item page — otherwise instances with
40
+ // more than 25 sites silently lose the rest. The caller's start/count map
41
+ // to SCAPI offset/limit.
42
+ const rawSites = await this.fetchSitePage(options);
43
+ // `getSites` returns items that carry only the id (display name, storefront
44
+ // status, and cartridges live on the per-site detail endpoint). Enrich any
45
+ // sparse item via `getSite`, with bounded concurrency to limit rate-limit
46
+ // pressure. Items that already arrive rich (future-proofing if the platform
47
+ // starts populating list fields) are mapped directly with no extra call.
48
+ return this.enrichSites(rawSites);
49
+ }
50
+ /**
51
+ * Fetches the requested window of sites, paginating across 50-item SCAPI
52
+ * pages. `start` is the offset into the full result set; `count` bounds how
53
+ * many are returned (unbounded when omitted).
54
+ */
55
+ async fetchSitePage(options) {
56
+ const startOffset = options.start ?? 0;
57
+ const target = options.count; // undefined → all remaining
58
+ const collected = [];
59
+ let offset = startOffset;
60
+ while (true) {
61
+ const remaining = target === undefined ? SCAPI_SITES_MAX_PAGE : target - collected.length;
62
+ if (remaining <= 0)
63
+ break;
64
+ const limit = Math.min(SCAPI_SITES_MAX_PAGE, remaining);
65
+ const { data, error, response } = await this.client.GET('/organizations/{organizationId}/sites', {
66
+ params: { path: { organizationId: this.organizationId }, query: { limit, offset } },
67
+ headers: READ_HEADERS,
68
+ });
69
+ if (error || !data) {
70
+ throw createScapiRequestError(error, response, 'Failed to list sites');
71
+ }
72
+ const page = data;
73
+ const items = page.data ?? [];
74
+ collected.push(...items);
75
+ offset += items.length;
76
+ // Stop when the server has no more items, or we've reached the reported
77
+ // total, or the page came back short (defensive against a missing total).
78
+ const total = page.total ?? startOffset + collected.length;
79
+ if (items.length === 0 || offset >= total)
80
+ break;
81
+ }
82
+ return collected;
83
+ }
84
+ /** Maps sites, fetching per-site detail (bounded concurrency) for sparse items. */
85
+ async enrichSites(sites) {
86
+ const results = [];
87
+ for (let i = 0; i < sites.length; i += ENRICH_CONCURRENCY) {
88
+ const batch = sites.slice(i, i + ENRICH_CONCURRENCY);
89
+ const mapped = await Promise.all(batch.map((site) => {
90
+ // If the list item is already rich, avoid the extra detail call.
91
+ if (site.displayName !== undefined || site.storefrontStatus !== undefined) {
92
+ return Promise.resolve(mapScapiSite(site));
93
+ }
94
+ return site.id ? this.getSite(site.id) : Promise.resolve(mapScapiSite(site));
95
+ }));
96
+ results.push(...mapped);
97
+ }
98
+ return results;
99
+ }
100
+ async getSite(siteId) {
101
+ const { data, error, response } = await this.client.GET('/organizations/{organizationId}/sites/{siteId}', {
102
+ params: { path: { organizationId: this.organizationId, siteId } },
103
+ headers: READ_HEADERS,
104
+ });
105
+ if (error || !data) {
106
+ throw createScapiRequestError(error, response, `Failed to get site ${siteId}`);
107
+ }
108
+ return mapScapiSite(data);
109
+ }
110
+ async getCartridgePath(siteId) {
111
+ const { data, error, response } = await this.client.GET('/organizations/{organizationId}/sites/{siteId}/custom-cartridges', {
112
+ params: { path: { organizationId: this.organizationId, siteId } },
113
+ headers: READ_HEADERS,
114
+ });
115
+ if (error || !data) {
116
+ throw createScapiRequestError(error, response, `Failed to get cartridge path for site ${siteId}`);
117
+ }
118
+ return data.customCartridges;
119
+ }
120
+ async setCartridgePath(siteId, cartridges) {
121
+ const { data, error, response } = await this.client.PUT('/organizations/{organizationId}/sites/{siteId}/custom-cartridges', {
122
+ params: { path: { organizationId: this.organizationId, siteId } },
123
+ headers: WRITE_HEADERS,
124
+ body: { customCartridges: cartridges },
125
+ });
126
+ if (error || !data) {
127
+ throw createScapiRequestError(error, response, `Failed to set cartridge path for site ${siteId}`);
128
+ }
129
+ return data.customCartridges;
130
+ }
131
+ async addCartridge(siteId, name, position, target) {
132
+ const current = await this.getCartridgePath(siteId);
133
+ const cartridges = current ? current.split(':') : [];
134
+ if (cartridges.includes(name)) {
135
+ throw new Error(`Cartridge "${name}" already exists in the cartridge path for site "${siteId}"`);
136
+ }
137
+ insertCartridge(cartridges, name, position, target);
138
+ return this.setCartridgePath(siteId, cartridges.join(':'));
139
+ }
140
+ async removeCartridge(siteId, name) {
141
+ const current = await this.getCartridgePath(siteId);
142
+ const cartridges = current ? current.split(':') : [];
143
+ const index = cartridges.indexOf(name);
144
+ if (index < 0)
145
+ throw new Error(`Cartridge "${name}" not found in the cartridge path for site "${siteId}"`);
146
+ cartridges.splice(index, 1);
147
+ return this.setCartridgePath(siteId, cartridges.join(':'));
148
+ }
149
+ }
150
+ function insertCartridge(cartridges, name, position, target) {
151
+ if (position === 'first') {
152
+ cartridges.unshift(name);
153
+ return;
154
+ }
155
+ if (position === 'last') {
156
+ cartridges.push(name);
157
+ return;
158
+ }
159
+ if (!target)
160
+ throw new Error(`Target cartridge is required for position "${position}"`);
161
+ const targetIndex = cartridges.indexOf(target);
162
+ if (targetIndex < 0)
163
+ throw new Error(`Target cartridge "${target}" not found in cartridge path`);
164
+ cartridges.splice(position === 'before' ? targetIndex : targetIndex + 1, 0, name);
165
+ }
166
+ //# sourceMappingURL=scapi-sites-backend.js.map