@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.
- package/data/content-schemas/componenttype.json +0 -30
- package/data/scapi-snippets/campaign-promotions.js +40 -0
- package/data/scapi-snippets/code-version-inspect.js +31 -0
- package/data/scapi-snippets/create-product.js +108 -0
- package/data/scapi-snippets/failed-job-triage.js +37 -0
- package/data/scapi-snippets/job-execution-inspect.js +52 -0
- package/data/scapi-snippets/job-execution-review.js +46 -0
- package/data/scapi-snippets/manifest.json +220 -0
- package/data/scapi-snippets/site-cartridge-inspect.js +27 -0
- package/data/tooling/index.json +80 -116
- package/dist/esm/auth/index.d.ts +2 -2
- package/dist/esm/auth/index.js +1 -1
- package/dist/esm/auth/index.js.map +1 -1
- package/dist/esm/auth/oauth-implicit.d.ts +1 -0
- package/dist/esm/auth/oauth-implicit.js +1 -0
- package/dist/esm/auth/oauth-implicit.js.map +1 -1
- package/dist/esm/auth/oauth-jwt.d.ts +18 -4
- package/dist/esm/auth/oauth-jwt.js +67 -17
- package/dist/esm/auth/oauth-jwt.js.map +1 -1
- package/dist/esm/auth/oauth-pkce-fallback.d.ts +1 -0
- package/dist/esm/auth/oauth-pkce-fallback.js +1 -0
- package/dist/esm/auth/oauth-pkce-fallback.js.map +1 -1
- package/dist/esm/auth/oauth-pkce.d.ts +1 -0
- package/dist/esm/auth/oauth-pkce.js +1 -0
- package/dist/esm/auth/oauth-pkce.js.map +1 -1
- package/dist/esm/auth/oauth.d.ts +55 -6
- package/dist/esm/auth/oauth.js +139 -21
- package/dist/esm/auth/oauth.js.map +1 -1
- package/dist/esm/auth/resolve.d.ts +37 -0
- package/dist/esm/auth/resolve.js +48 -0
- package/dist/esm/auth/resolve.js.map +1 -1
- package/dist/esm/auth/types.d.ts +44 -0
- package/dist/esm/auth/types.js.map +1 -1
- package/dist/esm/cli/base-command.d.ts +9 -0
- package/dist/esm/cli/base-command.js +31 -0
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/bm-command.d.ts +15 -0
- package/dist/esm/cli/bm-command.js +25 -0
- package/dist/esm/cli/bm-command.js.map +1 -0
- package/dist/esm/cli/code-command.d.ts +14 -0
- package/dist/esm/cli/code-command.js +22 -0
- package/dist/esm/cli/code-command.js.map +1 -0
- package/dist/esm/cli/config.js +3 -0
- package/dist/esm/cli/config.js.map +1 -1
- package/dist/esm/cli/index.d.ts +5 -1
- package/dist/esm/cli/index.js +7 -1
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +45 -0
- package/dist/esm/cli/instance-command.js +66 -1
- package/dist/esm/cli/instance-command.js.map +1 -1
- package/dist/esm/cli/job-command.d.ts +37 -16
- package/dist/esm/cli/job-command.js +73 -23
- package/dist/esm/cli/job-command.js.map +1 -1
- package/dist/esm/cli/mrt-command.d.ts +138 -9
- package/dist/esm/cli/mrt-command.js +277 -16
- package/dist/esm/cli/mrt-command.js.map +1 -1
- package/dist/esm/cli/oauth-command.d.ts +1 -1
- package/dist/esm/cli/oauth-command.js +2 -0
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/webdav-command.d.ts +1 -0
- package/dist/esm/clients/cdn-zones.js +2 -5
- package/dist/esm/clients/cdn-zones.js.map +1 -1
- package/dist/esm/clients/cip.d.ts +12 -3
- package/dist/esm/clients/cip.js +85 -30
- package/dist/esm/clients/cip.js.map +1 -1
- package/dist/esm/clients/custom-apis.js +2 -5
- package/dist/esm/clients/custom-apis.js.map +1 -1
- package/dist/esm/clients/dual-backend-factory.d.ts +70 -0
- package/dist/esm/clients/dual-backend-factory.js +48 -0
- package/dist/esm/clients/dual-backend-factory.js.map +1 -0
- package/dist/esm/clients/error-utils.d.ts +62 -0
- package/dist/esm/clients/error-utils.js +98 -0
- package/dist/esm/clients/error-utils.js.map +1 -1
- package/dist/esm/clients/granular-replications.js +2 -5
- package/dist/esm/clients/granular-replications.js.map +1 -1
- package/dist/esm/clients/index.d.ts +28 -3
- package/dist/esm/clients/index.js +24 -2
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/clients/metrics.js +2 -5
- package/dist/esm/clients/metrics.js.map +1 -1
- package/dist/esm/clients/middleware-registry.d.ts +4 -2
- package/dist/esm/clients/middleware-registry.js +3 -1
- package/dist/esm/clients/middleware-registry.js.map +1 -1
- package/dist/esm/clients/middleware.d.ts +39 -0
- package/dist/esm/clients/middleware.js +126 -25
- package/dist/esm/clients/middleware.js.map +1 -1
- package/dist/esm/clients/mrt-b2c.js +3 -0
- package/dist/esm/clients/mrt-b2c.js.map +1 -1
- package/dist/esm/clients/mrt.d.ts +27 -10
- package/dist/esm/clients/mrt.generated.d.ts +77 -0
- package/dist/esm/clients/mrt.js +68 -0
- package/dist/esm/clients/mrt.js.map +1 -1
- package/dist/esm/clients/preferences.js +2 -5
- package/dist/esm/clients/preferences.js.map +1 -1
- package/dist/esm/clients/scapi-backend-utils.d.ts +163 -0
- package/dist/esm/clients/scapi-backend-utils.js +180 -0
- package/dist/esm/clients/scapi-backend-utils.js.map +1 -0
- package/dist/esm/clients/scapi-catalogs.d.ts +12 -0
- package/dist/esm/clients/scapi-catalogs.generated.d.ts +104 -0
- package/dist/esm/clients/scapi-catalogs.generated.js +6 -0
- package/dist/esm/clients/scapi-catalogs.generated.js.map +1 -0
- package/dist/esm/clients/scapi-catalogs.js +14 -0
- package/dist/esm/clients/scapi-catalogs.js.map +1 -0
- package/dist/esm/clients/scapi-client-factory.d.ts +81 -0
- package/dist/esm/clients/scapi-client-factory.js +84 -0
- package/dist/esm/clients/scapi-client-factory.js.map +1 -0
- package/dist/esm/clients/scapi-fallback-backend.d.ts +34 -0
- package/dist/esm/clients/scapi-fallback-backend.js +132 -0
- package/dist/esm/clients/scapi-fallback-backend.js.map +1 -0
- package/dist/esm/clients/scapi-jobs.d.ts +32 -0
- package/dist/esm/clients/scapi-jobs.generated.d.ts +535 -0
- package/dist/esm/clients/scapi-jobs.generated.js +6 -0
- package/dist/esm/clients/scapi-jobs.generated.js.map +1 -0
- package/dist/esm/clients/scapi-jobs.js +24 -0
- package/dist/esm/clients/scapi-jobs.js.map +1 -0
- package/dist/esm/clients/scapi-merchant-roles.d.ts +19 -0
- package/dist/esm/clients/scapi-merchant-roles.generated.d.ts +726 -0
- package/dist/esm/clients/scapi-merchant-roles.generated.js +6 -0
- package/dist/esm/clients/scapi-merchant-roles.generated.js.map +1 -0
- package/dist/esm/clients/scapi-merchant-roles.js +12 -0
- package/dist/esm/clients/scapi-merchant-roles.js.map +1 -0
- package/dist/esm/clients/scapi-merchant-users.d.ts +19 -0
- package/dist/esm/clients/scapi-merchant-users.generated.d.ts +300 -0
- package/dist/esm/clients/scapi-merchant-users.generated.js +6 -0
- package/dist/esm/clients/scapi-merchant-users.generated.js.map +1 -0
- package/dist/esm/clients/scapi-merchant-users.js +12 -0
- package/dist/esm/clients/scapi-merchant-users.js.map +1 -0
- package/dist/esm/clients/scapi-schemas.js +2 -5
- package/dist/esm/clients/scapi-schemas.js.map +1 -1
- package/dist/esm/clients/scapi-scope-tier.d.ts +78 -0
- package/dist/esm/clients/scapi-scope-tier.js +113 -0
- package/dist/esm/clients/scapi-scope-tier.js.map +1 -0
- package/dist/esm/clients/scapi-scripts.d.ts +17 -0
- package/dist/esm/clients/scapi-scripts.generated.d.ts +392 -0
- package/dist/esm/clients/scapi-scripts.generated.js +6 -0
- package/dist/esm/clients/scapi-scripts.generated.js.map +1 -0
- package/dist/esm/clients/scapi-scripts.js +12 -0
- package/dist/esm/clients/scapi-scripts.js.map +1 -0
- package/dist/esm/clients/scapi-sites.d.ts +26 -0
- package/dist/esm/clients/scapi-sites.generated.d.ts +500 -0
- package/dist/esm/clients/scapi-sites.generated.js +6 -0
- package/dist/esm/clients/scapi-sites.generated.js.map +1 -0
- package/dist/esm/clients/scapi-sites.js +25 -0
- package/dist/esm/clients/scapi-sites.js.map +1 -0
- package/dist/esm/clients/slas-shopper.d.ts +19 -0
- package/dist/esm/clients/slas-shopper.generated.d.ts +165 -0
- package/dist/esm/clients/slas-shopper.generated.js +6 -0
- package/dist/esm/clients/slas-shopper.generated.js.map +1 -0
- package/dist/esm/clients/slas-shopper.js +35 -0
- package/dist/esm/clients/slas-shopper.js.map +1 -0
- package/dist/esm/clients/storefront-deployments.d.ts +56 -0
- package/dist/esm/clients/storefront-deployments.generated.d.ts +558 -0
- package/dist/esm/clients/storefront-deployments.generated.js +6 -0
- package/dist/esm/clients/storefront-deployments.generated.js.map +1 -0
- package/dist/esm/clients/storefront-deployments.js +24 -0
- package/dist/esm/clients/storefront-deployments.js.map +1 -0
- package/dist/esm/clients/webdav.js +4 -1
- package/dist/esm/clients/webdav.js.map +1 -1
- package/dist/esm/compat/dispatcher.d.ts +49 -0
- package/dist/esm/compat/dispatcher.js +124 -0
- package/dist/esm/compat/dispatcher.js.map +1 -0
- package/dist/esm/compat/index.d.ts +10 -0
- package/dist/esm/compat/index.js +15 -0
- package/dist/esm/compat/index.js.map +1 -0
- package/dist/esm/compat/jobs-backend.d.ts +31 -0
- package/dist/esm/compat/jobs-backend.js +76 -0
- package/dist/esm/compat/jobs-backend.js.map +1 -0
- package/dist/esm/config/dw-json.d.ts +4 -0
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/index.d.ts +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/mapping.d.ts +2 -5
- package/dist/esm/config/mapping.js +25 -1
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/resolved-config.d.ts +2 -2
- package/dist/esm/config/resolved-config.js.map +1 -1
- package/dist/esm/config/sources/env-source.js +17 -0
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +21 -2
- package/dist/esm/docs/search.js +2 -25
- package/dist/esm/docs/search.js.map +1 -1
- package/dist/esm/guidance/catalog.d.ts +37 -0
- package/dist/esm/guidance/catalog.js +282 -0
- package/dist/esm/guidance/catalog.js.map +1 -0
- package/dist/esm/guidance/index.d.ts +8 -0
- package/dist/esm/guidance/index.js +14 -0
- package/dist/esm/guidance/index.js.map +1 -0
- package/dist/esm/guidance/markdown.d.ts +10 -0
- package/dist/esm/guidance/markdown.js +52 -0
- package/dist/esm/guidance/markdown.js.map +1 -0
- package/dist/esm/guidance/types.d.ts +92 -0
- package/dist/esm/guidance/types.js +17 -0
- package/dist/esm/guidance/types.js.map +1 -0
- package/dist/esm/index.d.ts +14 -5
- package/dist/esm/index.js +14 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance/index.d.ts +96 -2
- package/dist/esm/instance/index.js +98 -5
- package/dist/esm/instance/index.js.map +1 -1
- package/dist/esm/operations/bm-roles/backend.d.ts +4 -0
- package/dist/esm/operations/bm-roles/backend.js +11 -0
- package/dist/esm/operations/bm-roles/backend.js.map +1 -0
- package/dist/esm/operations/bm-roles/index.d.ts +6 -0
- package/dist/esm/operations/bm-roles/index.js +4 -0
- package/dist/esm/operations/bm-roles/index.js.map +1 -1
- package/dist/esm/operations/bm-roles/ocapi-backend.d.ts +17 -0
- package/dist/esm/operations/bm-roles/ocapi-backend.js +151 -0
- package/dist/esm/operations/bm-roles/ocapi-backend.js.map +1 -0
- package/dist/esm/operations/bm-roles/roles.js +13 -17
- package/dist/esm/operations/bm-roles/roles.js.map +1 -1
- package/dist/esm/operations/bm-roles/scapi-backend.d.ts +27 -0
- package/dist/esm/operations/bm-roles/scapi-backend.js +138 -0
- package/dist/esm/operations/bm-roles/scapi-backend.js.map +1 -0
- package/dist/esm/operations/bm-roles/types.d.ts +49 -0
- package/dist/esm/operations/bm-roles/types.js +2 -0
- package/dist/esm/operations/bm-roles/types.js.map +1 -0
- package/dist/esm/operations/bm-users/backend.d.ts +4 -0
- package/dist/esm/operations/bm-users/backend.js +11 -0
- package/dist/esm/operations/bm-users/backend.js.map +1 -0
- package/dist/esm/operations/bm-users/index.d.ts +11 -3
- package/dist/esm/operations/bm-users/index.js +9 -3
- package/dist/esm/operations/bm-users/index.js.map +1 -1
- package/dist/esm/operations/bm-users/ocapi-backend.d.ts +13 -0
- package/dist/esm/operations/bm-users/ocapi-backend.js +92 -0
- package/dist/esm/operations/bm-users/ocapi-backend.js.map +1 -0
- package/dist/esm/operations/bm-users/scapi-backend.d.ts +23 -0
- package/dist/esm/operations/bm-users/scapi-backend.js +199 -0
- package/dist/esm/operations/bm-users/scapi-backend.js.map +1 -0
- package/dist/esm/operations/bm-users/types.d.ts +99 -0
- package/dist/esm/operations/bm-users/types.js +2 -0
- package/dist/esm/operations/bm-users/types.js.map +1 -0
- package/dist/esm/operations/bm-users/users.d.ts +4 -3
- package/dist/esm/operations/bm-users/users.js +23 -19
- package/dist/esm/operations/bm-users/users.js.map +1 -1
- package/dist/esm/operations/cap/install.js +23 -45
- package/dist/esm/operations/cap/install.js.map +1 -1
- package/dist/esm/operations/cap/list.js +4 -8
- package/dist/esm/operations/cap/list.js.map +1 -1
- package/dist/esm/operations/cap/uninstall.js +17 -37
- package/dist/esm/operations/cap/uninstall.js.map +1 -1
- package/dist/esm/operations/catalogs/catalogs-backend.d.ts +4 -0
- package/dist/esm/operations/catalogs/catalogs-backend.js +16 -0
- package/dist/esm/operations/catalogs/catalogs-backend.js.map +1 -0
- package/dist/esm/operations/catalogs/catalogs-types.d.ts +14 -0
- package/dist/esm/operations/catalogs/catalogs-types.js +2 -0
- package/dist/esm/operations/catalogs/catalogs-types.js.map +1 -0
- package/dist/esm/operations/catalogs/index.d.ts +7 -0
- package/dist/esm/operations/catalogs/index.js +10 -0
- package/dist/esm/operations/catalogs/index.js.map +1 -0
- package/dist/esm/operations/catalogs/ocapi-catalogs-backend.d.ts +8 -0
- package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js +36 -0
- package/dist/esm/operations/catalogs/ocapi-catalogs-backend.js.map +1 -0
- package/dist/esm/operations/catalogs/scapi-catalogs-backend.d.ts +15 -0
- package/dist/esm/operations/catalogs/scapi-catalogs-backend.js +42 -0
- package/dist/esm/operations/catalogs/scapi-catalogs-backend.js.map +1 -0
- package/dist/esm/operations/cip/index.js +10 -2
- package/dist/esm/operations/cip/index.js.map +1 -1
- package/dist/esm/operations/cip/reports.js +19 -3
- package/dist/esm/operations/cip/reports.js.map +1 -1
- package/dist/esm/operations/cip/types.d.ts +8 -4
- package/dist/esm/operations/code/deploy.d.ts +3 -0
- package/dist/esm/operations/code/deploy.js +5 -3
- package/dist/esm/operations/code/deploy.js.map +1 -1
- package/dist/esm/operations/code/download.d.ts +3 -0
- package/dist/esm/operations/code/download.js +5 -5
- package/dist/esm/operations/code/download.js.map +1 -1
- package/dist/esm/operations/code/index.d.ts +7 -1
- package/dist/esm/operations/code/index.js +5 -1
- package/dist/esm/operations/code/index.js.map +1 -1
- package/dist/esm/operations/code/ocapi-scripts-backend.d.ts +12 -0
- package/dist/esm/operations/code/ocapi-scripts-backend.js +40 -0
- package/dist/esm/operations/code/ocapi-scripts-backend.js.map +1 -0
- package/dist/esm/operations/code/scapi-scripts-backend.d.ts +22 -0
- package/dist/esm/operations/code/scapi-scripts-backend.js +94 -0
- package/dist/esm/operations/code/scapi-scripts-backend.js.map +1 -0
- package/dist/esm/operations/code/scripts-backend.d.ts +17 -0
- package/dist/esm/operations/code/scripts-backend.js +40 -0
- package/dist/esm/operations/code/scripts-backend.js.map +1 -0
- package/dist/esm/operations/code/scripts-types.d.ts +43 -0
- package/dist/esm/operations/code/scripts-types.js +2 -0
- package/dist/esm/operations/code/scripts-types.js.map +1 -0
- package/dist/esm/operations/code/upload-files.d.ts +6 -0
- package/dist/esm/operations/code/upload-files.js +58 -7
- package/dist/esm/operations/code/upload-files.js.map +1 -1
- package/dist/esm/operations/code/versions.d.ts +0 -20
- package/dist/esm/operations/code/versions.js +16 -51
- package/dist/esm/operations/code/versions.js.map +1 -1
- package/dist/esm/operations/code/watch.d.ts +3 -0
- package/dist/esm/operations/code/watch.js +3 -2
- package/dist/esm/operations/code/watch.js.map +1 -1
- package/dist/esm/operations/jobs/discover.d.ts +1 -1
- package/dist/esm/operations/jobs/discover.js +51 -21
- package/dist/esm/operations/jobs/discover.js.map +1 -1
- package/dist/esm/operations/jobs/index.d.ts +14 -57
- package/dist/esm/operations/jobs/index.js +15 -59
- package/dist/esm/operations/jobs/index.js.map +1 -1
- package/dist/esm/operations/jobs/ocapi-mapping.d.ts +34 -0
- package/dist/esm/operations/jobs/ocapi-mapping.js +100 -0
- package/dist/esm/operations/jobs/ocapi-mapping.js.map +1 -0
- package/dist/esm/operations/jobs/run-system-job.d.ts +81 -0
- package/dist/esm/operations/jobs/run-system-job.js +137 -0
- package/dist/esm/operations/jobs/run-system-job.js.map +1 -0
- package/dist/esm/operations/jobs/run.js +16 -4
- package/dist/esm/operations/jobs/run.js.map +1 -1
- package/dist/esm/operations/jobs/scapi-ops.d.ts +61 -0
- package/dist/esm/operations/jobs/scapi-ops.js +214 -0
- package/dist/esm/operations/jobs/scapi-ops.js.map +1 -0
- package/dist/esm/operations/jobs/site-archive.js +28 -66
- package/dist/esm/operations/jobs/site-archive.js.map +1 -1
- package/dist/esm/operations/jobs/types.d.ts +46 -0
- package/dist/esm/operations/jobs/types.js +2 -0
- package/dist/esm/operations/jobs/types.js.map +1 -0
- package/dist/esm/operations/jobs/wait-canonical.d.ts +28 -0
- package/dist/esm/operations/jobs/wait-canonical.js +48 -0
- package/dist/esm/operations/jobs/wait-canonical.js.map +1 -0
- package/dist/esm/operations/mrt/bundle.d.ts +164 -2
- package/dist/esm/operations/mrt/bundle.js +315 -9
- package/dist/esm/operations/mrt/bundle.js.map +1 -1
- package/dist/esm/operations/mrt/deployment.d.ts +221 -0
- package/dist/esm/operations/mrt/deployment.js +239 -0
- package/dist/esm/operations/mrt/deployment.js.map +1 -1
- package/dist/esm/operations/mrt/index.d.ts +8 -6
- package/dist/esm/operations/mrt/index.js +5 -3
- package/dist/esm/operations/mrt/index.js.map +1 -1
- package/dist/esm/operations/mrt/mrt-backend.d.ts +117 -0
- package/dist/esm/operations/mrt/mrt-backend.js +84 -0
- package/dist/esm/operations/mrt/mrt-backend.js.map +1 -0
- package/dist/esm/operations/mrt/push.d.ts +83 -1
- package/dist/esm/operations/mrt/push.js +102 -1
- package/dist/esm/operations/mrt/push.js.map +1 -1
- package/dist/esm/operations/sites/cartridges.d.ts +10 -8
- package/dist/esm/operations/sites/cartridges.js +35 -67
- package/dist/esm/operations/sites/cartridges.js.map +1 -1
- package/dist/esm/operations/sites/index.d.ts +10 -6
- package/dist/esm/operations/sites/index.js +9 -6
- package/dist/esm/operations/sites/index.js.map +1 -1
- package/dist/esm/operations/sites/ocapi-sites-backend.d.ts +20 -0
- package/dist/esm/operations/sites/ocapi-sites-backend.js +98 -0
- package/dist/esm/operations/sites/ocapi-sites-backend.js.map +1 -0
- package/dist/esm/operations/sites/scapi-sites-backend.d.ts +33 -0
- package/dist/esm/operations/sites/scapi-sites-backend.js +166 -0
- package/dist/esm/operations/sites/scapi-sites-backend.js.map +1 -0
- package/dist/esm/operations/sites/sites-backend.d.ts +9 -0
- package/dist/esm/operations/sites/sites-backend.js +16 -0
- package/dist/esm/operations/sites/sites-backend.js.map +1 -0
- package/dist/esm/operations/sites/sites-scopes.d.ts +2 -0
- package/dist/esm/operations/sites/sites-scopes.js +16 -0
- package/dist/esm/operations/sites/sites-scopes.js.map +1 -0
- package/dist/esm/operations/sites/sites-types.d.ts +50 -0
- package/dist/esm/operations/sites/sites-types.js +2 -0
- package/dist/esm/operations/sites/sites-types.js.map +1 -0
- package/dist/esm/safety/safety-middleware.d.ts +7 -3
- package/dist/esm/safety/safety-middleware.js +13 -9
- package/dist/esm/safety/safety-middleware.js.map +1 -1
- package/dist/esm/scaffold/sources.js +6 -9
- package/dist/esm/scaffold/sources.js.map +1 -1
- package/dist/esm/scapi/auth-primitives.d.ts +3 -0
- package/dist/esm/scapi/auth-primitives.js +104 -0
- package/dist/esm/scapi/auth-primitives.js.map +1 -0
- package/dist/esm/scapi/authentication.d.ts +30 -0
- package/dist/esm/scapi/authentication.js +136 -0
- package/dist/esm/scapi/authentication.js.map +1 -0
- package/dist/esm/scapi/catalog.d.ts +29 -0
- package/dist/esm/scapi/catalog.js +81 -0
- package/dist/esm/scapi/catalog.js.map +1 -0
- package/dist/esm/scapi/index.d.ts +12 -0
- package/dist/esm/scapi/index.js +13 -0
- package/dist/esm/scapi/index.js.map +1 -0
- package/dist/esm/scapi/request.d.ts +15 -0
- package/dist/esm/scapi/request.js +239 -0
- package/dist/esm/scapi/request.js.map +1 -0
- package/dist/esm/scapi/runtime.d.ts +20 -0
- package/dist/esm/scapi/runtime.js +131 -0
- package/dist/esm/scapi/runtime.js.map +1 -0
- package/dist/esm/scapi/snippets.d.ts +22 -0
- package/dist/esm/scapi/snippets.js +140 -0
- package/dist/esm/scapi/snippets.js.map +1 -0
- package/dist/esm/scapi/worker-source.d.ts +2 -0
- package/dist/esm/scapi/worker-source.js +101 -0
- package/dist/esm/scapi/worker-source.js.map +1 -0
- package/dist/esm/search/ranking.d.ts +12 -0
- package/dist/esm/search/ranking.js +28 -0
- package/dist/esm/search/ranking.js.map +1 -0
- package/dist/esm/skills/sources.d.ts +2 -2
- package/dist/esm/skills/sources.js +10 -2
- package/dist/esm/skills/sources.js.map +1 -1
- package/dist/esm/skills/types.d.ts +1 -1
- package/dist/esm/slas/token.js +33 -94
- package/dist/esm/slas/token.js.map +1 -1
- package/dist/esm/slas/types.d.ts +5 -0
- package/node_modules/@salesforce/b2c-api-schemas/README.md +23 -0
- package/node_modules/@salesforce/b2c-api-schemas/manifest.json +576 -0
- package/node_modules/@salesforce/b2c-api-schemas/package.json +15 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +11490 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +3589 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +6544 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +7148 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +4411 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +643 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +295 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +2036 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +327 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +234 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +1542 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +405 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +2531 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +7944 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +292 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +2537 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +517 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +589 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +3600 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +2319 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +658 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +2649 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +6615 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +2103 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1760 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +640 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1263 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1259 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +760 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +1047 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1929 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +1542 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +1093 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +1324 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +325 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +631 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +1036 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +5175 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +866 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +747 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +5076 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +509 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +517 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +2961 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1889 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +7014 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1898 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +622 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +192 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +913 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +630 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +223 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +423 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +1088 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +798 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +607 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1418 -0
- package/package.json +24 -3
- package/specs/dx-scripts-v1.yaml +409 -0
- package/specs/merchant-roles-v1.yaml +1085 -0
- package/specs/merchant-users-v1.yaml +398 -0
- package/specs/mrt-api-v1.json +105 -0
- package/specs/operations-jobs-v1.yaml +793 -0
- package/specs/product-catalogs-v1.yaml +111 -0
- package/specs/site-sites-v1.yaml +667 -0
- package/specs/slas-shopper-v1.yaml +83 -0
- package/specs/storefront-deployments-v1.yaml +630 -0
package/dist/esm/auth/oauth.js
CHANGED
|
@@ -66,12 +66,53 @@ export function setCachedOAuthToken(cacheKey, tokenResponse) {
|
|
|
66
66
|
ACCESS_TOKEN_CACHE.set(cacheKey, tokenResponse);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* Scans the cache for a non-expired token (matching the supplied identity
|
|
70
|
+
* prefix) whose scopes are a superset of `requiredScopes`.
|
|
70
71
|
*
|
|
71
|
-
*
|
|
72
|
+
* Used by cascade resolution: a cached token granted with broader scopes
|
|
73
|
+
* (e.g. `sfcc.jobs.rw`) automatically satisfies a later request that needs
|
|
74
|
+
* a narrower scope (e.g. `sfcc.jobs`), with no extra AM round trip.
|
|
75
|
+
*
|
|
76
|
+
* The identity prefix is `${accountManagerHost}:${clientId}:${method}:` —
|
|
77
|
+
* the same prefix `getOAuthCacheKey` produces. We iterate cache values that
|
|
78
|
+
* share this prefix; in practice 1-3 entries per identity.
|
|
79
|
+
*
|
|
80
|
+
* @returns The first satisfying token, or undefined if none.
|
|
81
|
+
*/
|
|
82
|
+
export function findCachedTokenSatisfying(identityPrefix, requiredScopes) {
|
|
83
|
+
const now = new Date();
|
|
84
|
+
for (const [key, entry] of ACCESS_TOKEN_CACHE) {
|
|
85
|
+
if (!key.startsWith(identityPrefix))
|
|
86
|
+
continue;
|
|
87
|
+
if (now.getTime() > entry.expires.getTime()) {
|
|
88
|
+
ACCESS_TOKEN_CACHE.delete(key);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (requiredScopes.every((s) => entry.scopes.includes(s))) {
|
|
92
|
+
return entry;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Invalidates **every** cached token for an identity prefix
|
|
99
|
+
* (`${accountManagerHost}:${clientId}:${method}:`).
|
|
100
|
+
*
|
|
101
|
+
* A cascade-resolving strategy caches tokens under *merged-scope* keys (e.g.
|
|
102
|
+
* base ∪ `sfcc.jobs.rw`), which differ from the strategy's configured base-
|
|
103
|
+
* scope {@link getOAuthCacheKey}. Deleting only the base key on a 401 would
|
|
104
|
+
* leave the rejected merged token cached, so the retry's cascade cache-scan
|
|
105
|
+
* ({@link findCachedTokenSatisfying}) would re-hand out the same rejected
|
|
106
|
+
* token. Clearing by identity prefix evicts all of them so the retry re-
|
|
107
|
+
* requests from Account Manager. The prefix scopes deletion to this
|
|
108
|
+
* client/method/AM host, so unrelated identities are untouched.
|
|
72
109
|
*/
|
|
73
|
-
export function
|
|
74
|
-
ACCESS_TOKEN_CACHE.
|
|
110
|
+
export function invalidateCachedTokensForIdentity(identityPrefix) {
|
|
111
|
+
for (const key of ACCESS_TOKEN_CACHE.keys()) {
|
|
112
|
+
if (key.startsWith(identityPrefix)) {
|
|
113
|
+
ACCESS_TOKEN_CACHE.delete(key);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
75
116
|
}
|
|
76
117
|
/**
|
|
77
118
|
* OAuth 2.0 Client Credentials authentication strategy.
|
|
@@ -99,6 +140,7 @@ export class OAuthStrategy {
|
|
|
99
140
|
accountManagerHost;
|
|
100
141
|
_hasHadSuccess = false;
|
|
101
142
|
cacheKey;
|
|
143
|
+
identityPrefix;
|
|
102
144
|
/**
|
|
103
145
|
* Creates a new OAuthStrategy instance with the provided OAuth configuration.
|
|
104
146
|
*
|
|
@@ -108,6 +150,7 @@ export class OAuthStrategy {
|
|
|
108
150
|
this.config = config;
|
|
109
151
|
this.accountManagerHost = config.accountManagerHost || DEFAULT_ACCOUNT_MANAGER_HOST;
|
|
110
152
|
this.cacheKey = getOAuthCacheKey(this.config.clientId, 'client-credentials', this.accountManagerHost, this.config.scopes);
|
|
153
|
+
this.identityPrefix = `${this.accountManagerHost}:${this.config.clientId}:client-credentials:`;
|
|
111
154
|
}
|
|
112
155
|
/**
|
|
113
156
|
* Performs a fetch request with OAuth bearer token authentication.
|
|
@@ -122,7 +165,7 @@ export class OAuthStrategy {
|
|
|
122
165
|
* @returns The fetch response
|
|
123
166
|
*/
|
|
124
167
|
async fetch(url, init = {}) {
|
|
125
|
-
const token = await this.getAccessToken();
|
|
168
|
+
const token = init.signal ? (await this.getTokenResponse(init.signal)).accessToken : await this.getAccessToken();
|
|
126
169
|
const headers = new Headers(init.headers);
|
|
127
170
|
headers.set('Authorization', `Bearer ${token}`);
|
|
128
171
|
headers.set('x-dw-client-id', this.config.clientId);
|
|
@@ -136,7 +179,9 @@ export class OAuthStrategy {
|
|
|
136
179
|
// Skip retry on initial 401 to avoid retrying with bad credentials.
|
|
137
180
|
if (res.status === 401 && this._hasHadSuccess) {
|
|
138
181
|
this.invalidateToken();
|
|
139
|
-
const newToken =
|
|
182
|
+
const newToken = init.signal
|
|
183
|
+
? (await this.getTokenResponse(init.signal)).accessToken
|
|
184
|
+
: await this.getAccessToken();
|
|
140
185
|
headers.set('Authorization', `Bearer ${newToken}`);
|
|
141
186
|
res = await dispatchFetch(url, { ...init, headers });
|
|
142
187
|
}
|
|
@@ -157,20 +202,31 @@ export class OAuthStrategy {
|
|
|
157
202
|
* Gets the full token response including expiration and scopes.
|
|
158
203
|
* Useful for commands that need to display or return token metadata.
|
|
159
204
|
*/
|
|
160
|
-
async getTokenResponse() {
|
|
205
|
+
async getTokenResponse(signal) {
|
|
206
|
+
signal?.throwIfAborted();
|
|
161
207
|
const logger = getLogger();
|
|
162
208
|
const cached = getCachedOAuthToken(this.cacheKey, this.config.scopes || []);
|
|
163
209
|
if (cached) {
|
|
164
210
|
logger.debug('[OAuthStrategy] Reusing cached access token');
|
|
165
211
|
return cached;
|
|
166
212
|
}
|
|
213
|
+
if (signal) {
|
|
214
|
+
// A cancelled caller must not abort a shared token refresh for other consumers.
|
|
215
|
+
const token = await this.clientCredentialsGrant(this.config.scopes, signal);
|
|
216
|
+
setCachedOAuthToken(this.cacheKey, token);
|
|
217
|
+
return token;
|
|
218
|
+
}
|
|
167
219
|
return this.refreshTokenSingleflight();
|
|
168
220
|
}
|
|
169
221
|
/**
|
|
170
|
-
* Invalidates
|
|
222
|
+
* Invalidates cached tokens, forcing re-authentication on next request.
|
|
223
|
+
*
|
|
224
|
+
* Clears every token for this client/method/AM-host identity — not just the
|
|
225
|
+
* base-scope key — so a 401 retry can't re-use a rejected token that was
|
|
226
|
+
* cached under a merged cascade-scope key.
|
|
171
227
|
*/
|
|
172
228
|
invalidateToken() {
|
|
173
|
-
|
|
229
|
+
invalidateCachedTokensForIdentity(this.identityPrefix);
|
|
174
230
|
}
|
|
175
231
|
/**
|
|
176
232
|
* Creates a new OAuthStrategy with additional scopes merged in.
|
|
@@ -186,6 +242,54 @@ export class OAuthStrategy {
|
|
|
186
242
|
scopes: mergedScopes,
|
|
187
243
|
});
|
|
188
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Resolves a scope cascade. See {@link AuthStrategy.getAccessTokenForCascade}.
|
|
247
|
+
*
|
|
248
|
+
* Each candidate is merged with this strategy's base scopes (e.g. tenant
|
|
249
|
+
* scope baked in via {@link withAdditionalScopes}) before being sent to AM.
|
|
250
|
+
*
|
|
251
|
+
* Cache strategy:
|
|
252
|
+
* 1. For each candidate, scan the cache for any non-expired token whose
|
|
253
|
+
* scopes ⊇ (base ∪ candidate). First hit wins, no AM call.
|
|
254
|
+
* 2. On miss, request each candidate from AM in order. Cache successes.
|
|
255
|
+
* 3. On `invalid_scope` for a candidate, continue to the next candidate.
|
|
256
|
+
* On any other error, rethrow.
|
|
257
|
+
*/
|
|
258
|
+
async getAccessTokenForCascade(candidates) {
|
|
259
|
+
const logger = getLogger();
|
|
260
|
+
const baseScopes = this.config.scopes ?? [];
|
|
261
|
+
const identityPrefix = this.identityPrefix;
|
|
262
|
+
// Pass 1: cache scan. Return the first cached token that satisfies any
|
|
263
|
+
// candidate.
|
|
264
|
+
for (const candidate of candidates) {
|
|
265
|
+
const required = [...new Set([...baseScopes, ...candidate])];
|
|
266
|
+
const cached = findCachedTokenSatisfying(identityPrefix, required);
|
|
267
|
+
if (cached) {
|
|
268
|
+
logger.debug({ required, cachedScopes: cached.scopes }, `[OAuthStrategy] Cache hit: cached token satisfies cascade candidate ${JSON.stringify(candidate)}`);
|
|
269
|
+
return cached.accessToken;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Pass 2: try each candidate against AM in order.
|
|
273
|
+
let lastError;
|
|
274
|
+
for (const candidate of candidates) {
|
|
275
|
+
const merged = [...new Set([...baseScopes, ...candidate])];
|
|
276
|
+
try {
|
|
277
|
+
logger.debug({ scopes: merged }, `[OAuthStrategy] Cascade trying scopes ${JSON.stringify(candidate)}`);
|
|
278
|
+
const tokenResponse = await this.refreshTokenForScopes(merged);
|
|
279
|
+
return tokenResponse.accessToken;
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
if (error instanceof Error && error.message.includes('invalid_scope')) {
|
|
283
|
+
logger.debug({ scopes: merged }, `[OAuthStrategy] Cascade candidate ${JSON.stringify(candidate)} rejected (invalid_scope), trying next`);
|
|
284
|
+
lastError = error;
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
throw error;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// All candidates exhausted. Rethrow the last invalid_scope.
|
|
291
|
+
throw lastError ?? new Error('All scope cascade candidates failed');
|
|
292
|
+
}
|
|
189
293
|
/**
|
|
190
294
|
* Gets an access token, using cache if valid
|
|
191
295
|
*/
|
|
@@ -205,34 +309,45 @@ export class OAuthStrategy {
|
|
|
205
309
|
* when many requests trigger refresh at once.
|
|
206
310
|
*/
|
|
207
311
|
refreshTokenSingleflight() {
|
|
208
|
-
|
|
312
|
+
return this.refreshTokenForScopes(this.config.scopes);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Variant of {@link refreshTokenSingleflight} that requests a specific scope
|
|
316
|
+
* set rather than the strategy's configured scopes. Used by cascade
|
|
317
|
+
* resolution. Caches under a key derived from the requested scopes.
|
|
318
|
+
*/
|
|
319
|
+
refreshTokenForScopes(scopes) {
|
|
320
|
+
const cacheKey = getOAuthCacheKey(this.config.clientId, 'client-credentials', this.accountManagerHost, scopes);
|
|
321
|
+
const existing = PENDING_TOKEN_REQUESTS.get(cacheKey);
|
|
209
322
|
if (existing) {
|
|
210
323
|
getLogger().debug('[OAuthStrategy] Joining in-flight token request');
|
|
211
324
|
return existing;
|
|
212
325
|
}
|
|
213
326
|
const pending = (async () => {
|
|
214
|
-
getLogger().debug('[OAuthStrategy] Requesting new access token');
|
|
215
|
-
const tokenResponse = await this.clientCredentialsGrant();
|
|
216
|
-
setCachedOAuthToken(
|
|
327
|
+
getLogger().debug({ scopes }, '[OAuthStrategy] Requesting new access token');
|
|
328
|
+
const tokenResponse = await this.clientCredentialsGrant(scopes);
|
|
329
|
+
setCachedOAuthToken(cacheKey, tokenResponse);
|
|
217
330
|
return tokenResponse;
|
|
218
331
|
})().finally(() => {
|
|
219
|
-
PENDING_TOKEN_REQUESTS.delete(
|
|
332
|
+
PENDING_TOKEN_REQUESTS.delete(cacheKey);
|
|
220
333
|
});
|
|
221
|
-
PENDING_TOKEN_REQUESTS.set(
|
|
334
|
+
PENDING_TOKEN_REQUESTS.set(cacheKey, pending);
|
|
222
335
|
return pending;
|
|
223
336
|
}
|
|
224
337
|
/**
|
|
225
|
-
* Performs client credentials grant flow
|
|
338
|
+
* Performs client credentials grant flow with the given scope set.
|
|
339
|
+
* Defaults to the strategy's configured scopes when `scopes` is omitted.
|
|
226
340
|
*/
|
|
227
|
-
async clientCredentialsGrant() {
|
|
341
|
+
async clientCredentialsGrant(scopeOverride, signal) {
|
|
228
342
|
const logger = getLogger();
|
|
343
|
+
const requestedScopes = scopeOverride ?? this.config.scopes;
|
|
229
344
|
const url = `https://${this.accountManagerHost}/dwsso/oauth2/access_token`;
|
|
230
345
|
const method = 'POST';
|
|
231
346
|
const params = new URLSearchParams({
|
|
232
347
|
grant_type: 'client_credentials',
|
|
233
348
|
});
|
|
234
|
-
if (
|
|
235
|
-
params.append('scope',
|
|
349
|
+
if (requestedScopes && requestedScopes.length > 0) {
|
|
350
|
+
params.append('scope', requestedScopes.join(' '));
|
|
236
351
|
}
|
|
237
352
|
const credentials = encodeBasicClientCredentials(this.config.clientId, this.config.clientSecret);
|
|
238
353
|
// Build request object for middleware
|
|
@@ -260,7 +375,7 @@ export class OAuthStrategy {
|
|
|
260
375
|
const startTime = Date.now();
|
|
261
376
|
let response;
|
|
262
377
|
try {
|
|
263
|
-
response = await fetch(request);
|
|
378
|
+
response = await fetch(request, { signal, redirect: 'error' });
|
|
264
379
|
}
|
|
265
380
|
catch (err) {
|
|
266
381
|
const host = new URL(url).host;
|
|
@@ -288,7 +403,10 @@ export class OAuthStrategy {
|
|
|
288
403
|
logger.trace({ jwt: jwt.payload }, '[Auth] JWT payload');
|
|
289
404
|
const now = new Date();
|
|
290
405
|
const expiration = new Date(now.getTime() + data.expires_in * 1000);
|
|
291
|
-
|
|
406
|
+
// AM normally echoes back the granted scopes; some configurations omit
|
|
407
|
+
// the `scope` claim in the token response. Fall back to what we
|
|
408
|
+
// requested so cache satisfies-checks (cascade resolution) still work.
|
|
409
|
+
const scopes = data.scope?.split(' ') ?? requestedScopes ?? [];
|
|
292
410
|
return {
|
|
293
411
|
accessToken: data.access_token,
|
|
294
412
|
expires: expiration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,3 +105,40 @@ export declare function checkAvailableAuthMethods(credentials: AuthCredentials,
|
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
107
|
export declare function resolveAuthStrategy(credentials: AuthCredentials, options?: ResolveAuthStrategyOptions): AuthStrategy;
|
|
108
|
+
/**
|
|
109
|
+
* Credentials for the non-interactive (system) OAuth flows — client-credentials
|
|
110
|
+
* and JWT Bearer. A superset of the OAuth fields shared by `NormalizedConfig`
|
|
111
|
+
* and `AuthConfig.oauth`, so either can be passed directly (extra fields are
|
|
112
|
+
* ignored by structural typing).
|
|
113
|
+
*/
|
|
114
|
+
export interface SystemOAuthCredentials {
|
|
115
|
+
clientId?: string;
|
|
116
|
+
clientSecret?: string;
|
|
117
|
+
scopes?: string[];
|
|
118
|
+
accountManagerHost?: string;
|
|
119
|
+
jwtCertPath?: string;
|
|
120
|
+
jwtKeyPath?: string;
|
|
121
|
+
jwtPassphrase?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Builds a stateless, scope-flexible **system** OAuth strategy — client-credentials
|
|
125
|
+
* or JWT Bearer — or `undefined` when neither is fully configured.
|
|
126
|
+
*
|
|
127
|
+
* These are the only flows that can request arbitrary `sfcc.*` scopes from Account
|
|
128
|
+
* Manager per call (via the scope-cascade / additional-scopes hooks the SCAPI client
|
|
129
|
+
* factories rely on). Browser user-auth (PKCE/implicit) and fixed-token stored
|
|
130
|
+
* sessions are intentionally excluded, so this is the shared definition of
|
|
131
|
+
* "SCAPI-eligible auth" used by both {@link B2CInstance.scapiClientConfig} and
|
|
132
|
+
* `MrtCommand.getScapiMrtConfig`.
|
|
133
|
+
*
|
|
134
|
+
* Unlike {@link resolveAuthStrategy}, this handles JWT (which needs cert/key paths
|
|
135
|
+
* not present on {@link AuthCredentials}) and never throws — callers treat
|
|
136
|
+
* `undefined` as "not SCAPI-eligible". The Account Manager host default is applied by
|
|
137
|
+
* the strategy constructors, so `accountManagerHost` may be passed through as-is.
|
|
138
|
+
*
|
|
139
|
+
* @param credentials - The available system OAuth credentials.
|
|
140
|
+
* @param methods - Allowed methods in priority order. Defaults to
|
|
141
|
+
* client-credentials before JWT, matching the CLI's auth priority.
|
|
142
|
+
* @returns The first eligible strategy, or `undefined` if none is configured.
|
|
143
|
+
*/
|
|
144
|
+
export declare function resolveSystemOAuthStrategy(credentials: SystemOAuthCredentials, methods?: AuthMethod[]): AuthStrategy | undefined;
|
package/dist/esm/auth/resolve.js
CHANGED
|
@@ -28,10 +28,12 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import { ALL_AUTH_METHODS } from './types.js';
|
|
30
30
|
import { OAuthStrategy } from './oauth.js';
|
|
31
|
+
import { JwtOAuthStrategy } from './oauth-jwt.js';
|
|
31
32
|
import { ImplicitOAuthStrategy } from './oauth-implicit.js';
|
|
32
33
|
import { createUserAuthStrategy } from './oauth-pkce-fallback.js';
|
|
33
34
|
import { BasicAuthStrategy } from './basic.js';
|
|
34
35
|
import { ApiKeyStrategy } from './api-key.js';
|
|
36
|
+
import { DEFAULT_ACCOUNT_MANAGER_HOST } from '../defaults.js';
|
|
35
37
|
/**
|
|
36
38
|
* Checks which auth methods have the required credentials available.
|
|
37
39
|
*
|
|
@@ -187,4 +189,50 @@ export function resolveAuthStrategy(credentials, options = {}) {
|
|
|
187
189
|
throw new Error(`No valid auth method available. Allowed methods: [${allowedMethods.join(', ')}]. ` +
|
|
188
190
|
`Missing credentials: ${details}`);
|
|
189
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Builds a stateless, scope-flexible **system** OAuth strategy — client-credentials
|
|
194
|
+
* or JWT Bearer — or `undefined` when neither is fully configured.
|
|
195
|
+
*
|
|
196
|
+
* These are the only flows that can request arbitrary `sfcc.*` scopes from Account
|
|
197
|
+
* Manager per call (via the scope-cascade / additional-scopes hooks the SCAPI client
|
|
198
|
+
* factories rely on). Browser user-auth (PKCE/implicit) and fixed-token stored
|
|
199
|
+
* sessions are intentionally excluded, so this is the shared definition of
|
|
200
|
+
* "SCAPI-eligible auth" used by both {@link B2CInstance.scapiClientConfig} and
|
|
201
|
+
* `MrtCommand.getScapiMrtConfig`.
|
|
202
|
+
*
|
|
203
|
+
* Unlike {@link resolveAuthStrategy}, this handles JWT (which needs cert/key paths
|
|
204
|
+
* not present on {@link AuthCredentials}) and never throws — callers treat
|
|
205
|
+
* `undefined` as "not SCAPI-eligible". The Account Manager host default is applied by
|
|
206
|
+
* the strategy constructors, so `accountManagerHost` may be passed through as-is.
|
|
207
|
+
*
|
|
208
|
+
* @param credentials - The available system OAuth credentials.
|
|
209
|
+
* @param methods - Allowed methods in priority order. Defaults to
|
|
210
|
+
* client-credentials before JWT, matching the CLI's auth priority.
|
|
211
|
+
* @returns The first eligible strategy, or `undefined` if none is configured.
|
|
212
|
+
*/
|
|
213
|
+
export function resolveSystemOAuthStrategy(credentials, methods = ['client-credentials', 'jwt']) {
|
|
214
|
+
const { clientId, clientSecret, scopes, jwtCertPath, jwtKeyPath, jwtPassphrase } = credentials;
|
|
215
|
+
if (!clientId) {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
// JwtOAuthConfig requires a defined host; OAuthStrategy applies the same
|
|
219
|
+
// default internally, so this stays consistent across both flows.
|
|
220
|
+
const accountManagerHost = credentials.accountManagerHost ?? DEFAULT_ACCOUNT_MANAGER_HOST;
|
|
221
|
+
for (const method of methods) {
|
|
222
|
+
if (method === 'client-credentials' && clientSecret) {
|
|
223
|
+
return new OAuthStrategy({ clientId, clientSecret, scopes, accountManagerHost });
|
|
224
|
+
}
|
|
225
|
+
if (method === 'jwt' && jwtCertPath && jwtKeyPath) {
|
|
226
|
+
return new JwtOAuthStrategy({
|
|
227
|
+
clientId,
|
|
228
|
+
certPath: jwtCertPath,
|
|
229
|
+
keyPath: jwtKeyPath,
|
|
230
|
+
passphrase: jwtPassphrase,
|
|
231
|
+
accountManagerHost,
|
|
232
|
+
scopes,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
190
238
|
//# sourceMappingURL=resolve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/auth/resolve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/auth/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/auth/types.d.ts
CHANGED
|
@@ -22,6 +22,42 @@ export interface AuthStrategy {
|
|
|
22
22
|
* Used by middleware to retry requests after receiving a 401 response.
|
|
23
23
|
*/
|
|
24
24
|
invalidateToken?(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Optional: Returns a copy of this strategy with the given scopes merged into
|
|
27
|
+
* its requested scope set. SCAPI client factories use this to ensure the
|
|
28
|
+
* tenant scope is present on every token request.
|
|
29
|
+
*
|
|
30
|
+
* Implemented by `OAuthStrategy` and `JwtOAuthStrategy`. Strategies that
|
|
31
|
+
* obtain tokens by other means (basic, api-key, implicit-via-stored-session)
|
|
32
|
+
* may not implement this; callers should treat them as "scopes already
|
|
33
|
+
* established at construction time."
|
|
34
|
+
*/
|
|
35
|
+
withAdditionalScopes?(additionalScopes: string[]): AuthStrategy;
|
|
36
|
+
/**
|
|
37
|
+
* Optional: Resolves a scope cascade by trying each candidate scope set
|
|
38
|
+
* in order and returning the first that AM accepts.
|
|
39
|
+
*
|
|
40
|
+
* Implementations should:
|
|
41
|
+
* 1. Return any cached token whose scopes ⊇ a candidate (no AM call).
|
|
42
|
+
* 2. Otherwise, call AM with each candidate in order until one survives;
|
|
43
|
+
* cache the result keyed by what was requested.
|
|
44
|
+
* 3. Throw the last `invalid_scope` error if all candidates fail.
|
|
45
|
+
*
|
|
46
|
+
* Implementations MUST add any base scopes (e.g. tenant scope baked in
|
|
47
|
+
* via {@link withAdditionalScopes}) to each candidate before sending it
|
|
48
|
+
* to AM.
|
|
49
|
+
*
|
|
50
|
+
* Used by the SCAPI auth middleware to pick the right scope tier (rw vs
|
|
51
|
+
* ro) per operation. Strategies without OAuth-style scope grants (basic,
|
|
52
|
+
* api-key) should leave this unset; the middleware falls through to
|
|
53
|
+
* {@link getAuthorizationHeader} in that case.
|
|
54
|
+
*
|
|
55
|
+
* @param candidates - Outer array is cascade order; inner arrays are the
|
|
56
|
+
* scopes for each token request attempt. e.g.
|
|
57
|
+
* `[['sfcc.jobs.rw'], ['sfcc.jobs']]`.
|
|
58
|
+
* @returns The access token (Bearer value, no `Bearer ` prefix).
|
|
59
|
+
*/
|
|
60
|
+
getAccessTokenForCascade?(candidates: string[][]): Promise<string>;
|
|
25
61
|
}
|
|
26
62
|
/**
|
|
27
63
|
* An interactive, token-bearing OAuth strategy — the "user" auth flow
|
|
@@ -33,6 +69,8 @@ export interface AuthStrategy {
|
|
|
33
69
|
* `PkceWithImplicitFallbackStrategy`.
|
|
34
70
|
*/
|
|
35
71
|
export interface UserAuthStrategy extends AuthStrategy {
|
|
72
|
+
/** Browser auth method represented by this strategy. */
|
|
73
|
+
readonly authMethod: 'user' | 'implicit';
|
|
36
74
|
getAuthorizationHeader(): Promise<string>;
|
|
37
75
|
getJWT(): Promise<DecodedJWT>;
|
|
38
76
|
getTokenResponse(): Promise<AccessTokenResponse>;
|
|
@@ -55,6 +93,12 @@ export interface OAuthAuthConfig {
|
|
|
55
93
|
clientSecret?: string;
|
|
56
94
|
scopes?: string[];
|
|
57
95
|
accountManagerHost?: string;
|
|
96
|
+
/** Path to JWT certificate file (cert.pem) for the JWT Bearer flow */
|
|
97
|
+
jwtCertPath?: string;
|
|
98
|
+
/** Path to JWT private key file (key.pem) for the JWT Bearer flow */
|
|
99
|
+
jwtKeyPath?: string;
|
|
100
|
+
/** Optional passphrase for an encrypted JWT private key */
|
|
101
|
+
jwtPassphrase?: string;
|
|
58
102
|
/** Override redirect URI for browser OAuth flows (e.g., for port forwarding in remote environments) */
|
|
59
103
|
redirectUri?: string;
|
|
60
104
|
/** Custom browser opener for browser OAuth flows. Receives the authorization URL. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+KH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAiB,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -36,6 +36,15 @@ export type ErrorCategory = 'guardrail' | 'runtime' | 'validation';
|
|
|
36
36
|
* 3. Everything else is a genuine `runtime` error (the reliability signal).
|
|
37
37
|
*/
|
|
38
38
|
export declare function classifyError(err: unknown): ErrorCategory;
|
|
39
|
+
/**
|
|
40
|
+
* oclif throws `Flag --<name> can only be specified once` when a non-multiple
|
|
41
|
+
* flag is passed more than once — including when the duplicate arrived through
|
|
42
|
+
* an alias (e.g. `-p my-store -s other`, where `-s` / `--storefront` are aliases
|
|
43
|
+
* of `--project`). The bare message names only the canonical flag, so a user who
|
|
44
|
+
* typed an alias can't tell what collided. When the offending flag has aliases,
|
|
45
|
+
* rewrite the message to list every long and short form it accepts.
|
|
46
|
+
*/
|
|
47
|
+
export declare function augmentDuplicateFlagError(message: string, flags: Record<string, unknown>): string;
|
|
39
48
|
/**
|
|
40
49
|
* Base command class for B2C CLI tools.
|
|
41
50
|
*
|
|
@@ -18,6 +18,7 @@ import { globalMiddlewareRegistry } from '../clients/middleware-registry.js';
|
|
|
18
18
|
import { globalAuthMiddlewareRegistry } from '../auth/middleware.js';
|
|
19
19
|
import { initializeFileAuthSessionStore } from '../auth/session-store.js';
|
|
20
20
|
import { initializeContentCache } from '../docs/content-cache.js';
|
|
21
|
+
import { initializeScapiSnippetStore } from '../scapi/snippets.js';
|
|
21
22
|
import { setUserAgent } from '../clients/user-agent.js';
|
|
22
23
|
import { createTelemetry, Telemetry } from '../telemetry/index.js';
|
|
23
24
|
const LOG_LEVELS = ['trace', 'debug', 'info', 'warn', 'error', 'silent'];
|
|
@@ -61,6 +62,31 @@ export function classifyError(err) {
|
|
|
61
62
|
return 'guardrail';
|
|
62
63
|
return 'runtime';
|
|
63
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* oclif throws `Flag --<name> can only be specified once` when a non-multiple
|
|
67
|
+
* flag is passed more than once — including when the duplicate arrived through
|
|
68
|
+
* an alias (e.g. `-p my-store -s other`, where `-s` / `--storefront` are aliases
|
|
69
|
+
* of `--project`). The bare message names only the canonical flag, so a user who
|
|
70
|
+
* typed an alias can't tell what collided. When the offending flag has aliases,
|
|
71
|
+
* rewrite the message to list every long and short form it accepts.
|
|
72
|
+
*/
|
|
73
|
+
export function augmentDuplicateFlagError(message, flags) {
|
|
74
|
+
const match = /^Flag --(.+) can only be specified once$/.exec(message);
|
|
75
|
+
if (!match)
|
|
76
|
+
return message;
|
|
77
|
+
const flag = flags[match[1]];
|
|
78
|
+
if (!flag)
|
|
79
|
+
return message;
|
|
80
|
+
// Only clarify when the flag actually has aliases; a plain --name/-n pair
|
|
81
|
+
// needs no explanation.
|
|
82
|
+
if (!flag.aliases?.length && !flag.charAliases?.length)
|
|
83
|
+
return message;
|
|
84
|
+
const forms = [
|
|
85
|
+
...[match[1], ...(flag.aliases ?? [])].map((name) => `--${name}`),
|
|
86
|
+
...[flag.char, ...(flag.charAliases ?? [])].filter((c) => Boolean(c)).map((c) => `-${c}`),
|
|
87
|
+
];
|
|
88
|
+
return `${message} (${forms.join(', ')} all refer to the same flag)`;
|
|
89
|
+
}
|
|
64
90
|
/**
|
|
65
91
|
* Base command class for B2C CLI tools.
|
|
66
92
|
*
|
|
@@ -174,6 +200,7 @@ export class BaseCommand extends Command {
|
|
|
174
200
|
// Tests may override the path via B2C_TEST_DATA_DIR to isolate the auth-sessions.json
|
|
175
201
|
// file (e.g. per mocha worker) so they don't race on the developer's real session file.
|
|
176
202
|
initializeFileAuthSessionStore(process.env.B2C_TEST_DATA_DIR ?? this.config.dataDir);
|
|
203
|
+
initializeScapiSnippetStore(process.env.B2C_TEST_DATA_DIR ?? this.config.dataDir);
|
|
177
204
|
// Point the docs online-content cache at oclif's cacheDir (e.g. ~/.cache/b2c)
|
|
178
205
|
// so cached docs live alongside other CLI cache data and honor oclif dir
|
|
179
206
|
// overrides. Standalone SDK use falls back to an OS-idiomatic path.
|
|
@@ -536,6 +563,10 @@ export class BaseCommand extends Command {
|
|
|
536
563
|
* Sends exception to telemetry if initialized.
|
|
537
564
|
*/
|
|
538
565
|
async catch(err) {
|
|
566
|
+
// Surface flag aliases in oclif's "can only be specified once" error so a
|
|
567
|
+
// user who passed, e.g., `-p x -s y` learns that `-s`/`--storefront` are the
|
|
568
|
+
// same flag as `-p`/`--project`.
|
|
569
|
+
err.message = augmentDuplicateFlagError(err.message, { ...this.ctor.baseFlags, ...this.ctor.flags });
|
|
539
570
|
const exitCode = err.exitCode ?? 1;
|
|
540
571
|
const duration = this.commandStartTime ? Date.now() - this.commandStartTime : undefined;
|
|
541
572
|
const errorCategory = classifyError(err);
|