@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.
- 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 +83 -119
- 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 +10 -1
- 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 +154 -9
- package/dist/esm/cli/mrt-command.js +299 -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 +2 -0
- package/dist/esm/cli/webdav-command.js +1 -0
- package/dist/esm/cli/webdav-command.js.map +1 -1
- 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 +30 -3
- package/dist/esm/clients/index.js +25 -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 +57 -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/storefront-environments.d.ts +56 -0
- package/dist/esm/clients/storefront-environments.generated.d.ts +208 -0
- package/dist/esm/clients/storefront-environments.generated.js +6 -0
- package/dist/esm/clients/storefront-environments.generated.js.map +1 -0
- package/dist/esm/clients/storefront-environments.js +24 -0
- package/dist/esm/clients/storefront-environments.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/resolver.js +12 -0
- package/dist/esm/config/resolver.js.map +1 -1
- package/dist/esm/config/sources/env-source.d.ts +10 -1
- package/dist/esm/config/sources/env-source.js +46 -1
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +22 -3
- 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 +96 -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 +9 -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.d.ts +7 -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 +248 -0
- package/dist/esm/operations/mrt/deployment.js +252 -0
- package/dist/esm/operations/mrt/deployment.js.map +1 -1
- package/dist/esm/operations/mrt/env-var.d.ts +135 -0
- package/dist/esm/operations/mrt/env-var.js +203 -0
- package/dist/esm/operations/mrt/env-var.js.map +1 -1
- package/dist/esm/operations/mrt/index.d.ts +10 -8
- package/dist/esm/operations/mrt/index.js +6 -4
- 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 +285 -1
- package/dist/esm/operations/mrt/push.js +382 -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-guard.d.ts +1 -0
- package/dist/esm/safety/safety-guard.js +2 -1
- package/dist/esm/safety/safety-guard.js.map +1 -1
- 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/safety/types.d.ts +2 -2
- 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 +28 -0
- package/dist/esm/scapi/request.js +273 -0
- package/dist/esm/scapi/request.js.map +1 -0
- package/dist/esm/scapi/runtime.d.ts +27 -0
- package/dist/esm/scapi/runtime.js +161 -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 +18 -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/dist/esm/test-utils/config-isolation.js +2 -2
- package/dist/esm/test-utils/config-isolation.js.map +1 -1
- 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/specs/storefront-environments-v1.yaml +272 -0
|
@@ -5,62 +5,112 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from '@oclif/core';
|
|
7
7
|
import { InstanceCommand } from './instance-command.js';
|
|
8
|
-
import {
|
|
8
|
+
import { BackendDispatcher } from '../compat/dispatcher.js';
|
|
9
|
+
import { createScapiJobsClient } from '../clients/scapi-jobs.js';
|
|
10
|
+
import { mapOcapiExecution } from '../operations/jobs/index.js';
|
|
9
11
|
import { t } from '../i18n/index.js';
|
|
10
12
|
/**
|
|
11
13
|
* Base command for job operations.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* Provides:
|
|
16
|
+
* - {@link createJobsDispatcher} for routing operations to SCAPI or OCAPI
|
|
17
|
+
* - {@link buildScapiJobsClient} for SCAPI-only commands (e.g. delete) that
|
|
18
|
+
* don't need the dispatcher's auto-fallback
|
|
19
|
+
* - {@link showJobLog} for retrieving and printing canonical job logs on failure
|
|
15
20
|
*
|
|
16
21
|
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import {scapiExecuteJob, mapOcapiExecution, executeJob as ocapiExecuteJob} from
|
|
24
|
+
* '@salesforce/b2c-tooling-sdk/operations/jobs';
|
|
25
|
+
*
|
|
17
26
|
* export default class MyJobCommand extends JobCommand<typeof MyJobCommand> {
|
|
18
|
-
* async run()
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* }
|
|
25
|
-
* throw error;
|
|
26
|
-
* }
|
|
27
|
+
* async run() {
|
|
28
|
+
* const dispatcher = this.createJobsDispatcher();
|
|
29
|
+
* const exec = await dispatcher.run({
|
|
30
|
+
* scapi: (client) => scapiExecuteJob(client, 'my-job', {tenantId: this.resolvedConfig.values.tenantId!}),
|
|
31
|
+
* ocapi: async () => mapOcapiExecution(await ocapiExecuteJob(this.instance, 'my-job')),
|
|
32
|
+
* });
|
|
27
33
|
* }
|
|
28
34
|
* }
|
|
35
|
+
* ```
|
|
29
36
|
*/
|
|
30
37
|
export class JobCommand extends InstanceCommand {
|
|
38
|
+
createJobsDispatcher() {
|
|
39
|
+
return this.createDispatcher('jobs', () => this.buildScapiJobsClient());
|
|
40
|
+
}
|
|
31
41
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
42
|
+
* Builds a SCAPI Jobs client, or `undefined` if SCAPI is not configured.
|
|
43
|
+
* Used both as the dispatcher's SCAPI factory and directly by SCAPI-only
|
|
44
|
+
* commands (e.g. `job execution delete`) that don't use the dispatcher.
|
|
34
45
|
*
|
|
35
|
-
*
|
|
46
|
+
* The shortCode/tenantId and the scope-flexible auth strategy come from the
|
|
47
|
+
* instance ({@link B2CInstance.scapiClientConfig}), which already encodes the
|
|
48
|
+
* "only stateless OAuth qualifies for auto-SCAPI" gating.
|
|
49
|
+
*/
|
|
50
|
+
buildScapiJobsClient() {
|
|
51
|
+
const scapi = this.instance.scapiClientConfig;
|
|
52
|
+
if (!scapi)
|
|
53
|
+
return undefined;
|
|
54
|
+
return createScapiJobsClient({ shortCode: scapi.shortCode, tenantId: scapi.tenantId }, scapi.auth);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Display a job execution's log file content and error message if available.
|
|
58
|
+
*
|
|
59
|
+
* Accepts either canonical {@link JobExecutionInfo} (preferred) or raw
|
|
60
|
+
* OCAPI {@link JobExecution} (from the legacy {@link JobExecutionError}).
|
|
61
|
+
* Raw OCAPI is mapped to canonical at the entry point so the rest of the
|
|
62
|
+
* function works on a single shape.
|
|
36
63
|
*/
|
|
37
64
|
async showJobLog(execution) {
|
|
38
|
-
|
|
39
|
-
const errorMessage =
|
|
40
|
-
if (!
|
|
41
|
-
// No log file, but we may still have an error message
|
|
65
|
+
const canonical = isCanonical(execution) ? execution : mapOcapiExecution(execution);
|
|
66
|
+
const errorMessage = getCanonicalJobErrorMessage(canonical);
|
|
67
|
+
if (!canonical.isLogFileExisting) {
|
|
42
68
|
if (errorMessage) {
|
|
43
69
|
this.logger.error({ errorMessage }, errorMessage);
|
|
44
70
|
}
|
|
45
71
|
return;
|
|
46
72
|
}
|
|
47
73
|
try {
|
|
48
|
-
const log = await
|
|
49
|
-
const logFileName =
|
|
74
|
+
const log = await this.fetchCanonicalLog(canonical);
|
|
75
|
+
const logFileName = canonical.logFilePath?.split('/').pop() ?? 'job.log';
|
|
50
76
|
const header = t('cli.job.logHeader', 'Job log ({{logFileName}}):', { logFileName });
|
|
51
77
|
this.logger.error({ log, errorMessage }, `${header}\n${log}`);
|
|
52
|
-
// Log the error message separately if available
|
|
53
78
|
if (errorMessage) {
|
|
54
79
|
this.logger.error(t('cli.job.errorMessage', 'Error: {{message}}', { message: errorMessage }));
|
|
55
80
|
}
|
|
56
81
|
}
|
|
57
82
|
catch {
|
|
58
83
|
this.warn(t('cli.job.logFetchFailed', 'Could not retrieve job log'));
|
|
59
|
-
// Still try to show error message even if log fetch failed
|
|
60
84
|
if (errorMessage) {
|
|
61
85
|
this.logger.error({ errorMessage }, errorMessage);
|
|
62
86
|
}
|
|
63
87
|
}
|
|
64
88
|
}
|
|
89
|
+
async fetchCanonicalLog(execution) {
|
|
90
|
+
const logPath = execution.logFilePath;
|
|
91
|
+
if (!logPath) {
|
|
92
|
+
throw new Error('No log file path available');
|
|
93
|
+
}
|
|
94
|
+
// Both SCAPI and OCAPI return logFilePath under /Sites/LOGS/...; WebDAV
|
|
95
|
+
// base is /webdav/Sites, so the leading /Sites/ is stripped.
|
|
96
|
+
const webdavPath = logPath.replace(/^\/Sites\//, '');
|
|
97
|
+
const content = await this.instance.webdav.get(webdavPath);
|
|
98
|
+
return new TextDecoder().decode(content);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function isCanonical(execution) {
|
|
102
|
+
return 'executionStatus' in execution;
|
|
103
|
+
}
|
|
104
|
+
function getCanonicalJobErrorMessage(execution) {
|
|
105
|
+
if (!execution.stepExecutions || execution.stepExecutions.length === 0) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
for (let i = execution.stepExecutions.length - 1; i >= 0; i--) {
|
|
109
|
+
const step = execution.stepExecutions[i];
|
|
110
|
+
if (step.exitStatus?.status === 'error' && step.exitStatus?.message) {
|
|
111
|
+
return step.exitStatus.message;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
65
115
|
}
|
|
66
116
|
//# sourceMappingURL=job-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-command.js","sourceRoot":"","sources":["../../../src/cli/job-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"job-command.js","sourceRoot":"","sources":["../../../src/cli/job-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
import { Command } from '@oclif/core';
|
|
2
|
-
import {
|
|
2
|
+
import { OAuthCommand } from './oauth-command.js';
|
|
3
3
|
import type { ResolvedB2CConfig } from '../config/index.js';
|
|
4
4
|
import type { AuthStrategy } from '../auth/types.js';
|
|
5
|
+
import type { ScapiClientConfig } from '../instance/index.js';
|
|
6
|
+
import type { MrtBackendPreference, ScapiMrtConnection } from '../operations/mrt/mrt-backend.js';
|
|
5
7
|
/**
|
|
6
8
|
* Base command for Managed Runtime (MRT) operations.
|
|
7
|
-
* Uses API key authentication.
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* MRT has two backends:
|
|
11
|
+
* - **legacy** — the MRT Cloud API (`cloud.mobify.com`), authenticated with a
|
|
12
|
+
* per-user API key (`--api-key` / `~/.mobify`).
|
|
13
|
+
* - **scapi** — the SCAPI MRT backend, authenticated with a stateless OAuth flow
|
|
14
|
+
* (client-credentials or JWT Bearer) via Account Manager, reusing the same
|
|
15
|
+
* shortCode + tenant setup as other SCAPI commands. Each supported command maps
|
|
16
|
+
* to its own SCAPI API (bundle history/deploy use Storefront Deployments today;
|
|
17
|
+
* more MRT surfaces will be added over time).
|
|
18
|
+
*
|
|
19
|
+
* Because SCAPI MRT reuses the SCAPI auth stack, this base extends
|
|
20
|
+
* {@link OAuthCommand} to inherit `--client-id`/`--client-secret`/`--short-code`/
|
|
21
|
+
* `--tenant-id`/JWT flags plus `getOAuthStrategy()`, `requireTenantId()`, and
|
|
22
|
+
* `getOrganizationId()`. The legacy API-key path is preserved via
|
|
23
|
+
* {@link getMrtAuth}.
|
|
24
|
+
*
|
|
25
|
+
* API key resolution order (legacy):
|
|
10
26
|
* 1. --api-key flag
|
|
11
27
|
* 2. MRT_API_KEY environment variable (SFCC_MRT_API_KEY also supported)
|
|
12
28
|
* 3. ~/.mobify config file (api_key field), or ~/.mobify--[hostname] if --cloud-origin is set
|
|
13
29
|
*
|
|
14
30
|
* Project/environment resolution order:
|
|
15
|
-
* 1. --project / --environment flags
|
|
16
|
-
* 2. MRT_PROJECT / MRT_ENVIRONMENT environment variables (SFCC_-prefixed and MRT_TARGET also supported)
|
|
31
|
+
* 1. --project (alias: --storefront) / --environment flags
|
|
32
|
+
* 2. MRT_PROJECT / MRT_ENVIRONMENT environment variables (SFCC_-prefixed, MRT_STOREFRONT / SFCC_MRT_STOREFRONT, and MRT_TARGET also supported)
|
|
17
33
|
* 3. dw.json (mrtProject / mrtEnvironment fields)
|
|
18
34
|
*
|
|
19
35
|
* Cloud origin resolution:
|
|
@@ -21,14 +37,29 @@ import type { AuthStrategy } from '../auth/types.js';
|
|
|
21
37
|
* 2. MRT_CLOUD_ORIGIN environment variable (SFCC_MRT_CLOUD_ORIGIN also supported)
|
|
22
38
|
* 3. dw.json (mrtOrigin field)
|
|
23
39
|
* 4. Default: https://cloud.mobify.com
|
|
40
|
+
*
|
|
41
|
+
* Backend selection:
|
|
42
|
+
* - `--mrt-backend` flag > `MRT_BACKEND` env (`SFCC_MRT_BACKEND` also supported) > `mrtBackend` dw.json > `auto`.
|
|
24
43
|
*/
|
|
25
|
-
export declare abstract class MrtCommand<T extends typeof Command> extends
|
|
44
|
+
export declare abstract class MrtCommand<T extends typeof Command> extends OAuthCommand<T> {
|
|
26
45
|
static baseFlags: {
|
|
27
46
|
'api-key': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
47
|
project: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
29
48
|
environment: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
49
|
'cloud-origin': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
50
|
'credentials-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
51
|
+
'mrt-backend': import("@oclif/core/interfaces").OptionFlag<"scapi" | "auto" | "legacy", import("@oclif/core/interfaces").CustomOptions>;
|
|
52
|
+
'client-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
53
|
+
'client-secret': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
54
|
+
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
55
|
+
'short-code': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
56
|
+
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
57
|
+
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
58
|
+
'user-auth': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
59
|
+
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
60
|
+
'jwt-cert': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
61
|
+
'jwt-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
62
|
+
'jwt-passphrase': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
63
|
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
64
|
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
34
65
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -41,18 +72,132 @@ export declare abstract class MrtCommand<T extends typeof Command> extends BaseC
|
|
|
41
72
|
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
42
73
|
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
43
74
|
};
|
|
75
|
+
/** Ensures the read-only warning prints at most once per command run. */
|
|
76
|
+
private mrtReadOnlyWarned;
|
|
77
|
+
/** Warn once if any read is served while Managed Runtime is in read-only mode. */
|
|
78
|
+
_run<R>(): Promise<R>;
|
|
79
|
+
/**
|
|
80
|
+
* Suppress human-readable logging in `--json` mode.
|
|
81
|
+
*
|
|
82
|
+
* MRT commands emit progress/status lines via {@link BaseCommand.log}, which
|
|
83
|
+
* routes to the structured logger on stderr. When `--json` is set the caller
|
|
84
|
+
* wants machine-readable output only, so these lines are swallowed centrally
|
|
85
|
+
* here instead of guarding every call site with `if (!this.jsonEnabled())`.
|
|
86
|
+
*
|
|
87
|
+
* This only affects `this.log()` (stderr diagnostics). Structured stdout
|
|
88
|
+
* output — tables and detail views written via `ux.stdout` — is untouched and
|
|
89
|
+
* must still be guarded by `jsonEnabled()` at its call site so it never
|
|
90
|
+
* corrupts the JSON payload on stdout.
|
|
91
|
+
*/
|
|
92
|
+
log(message?: string, ...args: unknown[]): void;
|
|
44
93
|
protected loadConfiguration(): Promise<ResolvedB2CConfig>;
|
|
94
|
+
/** Resolved `--mrt-backend` preference (default `'auto'`). */
|
|
95
|
+
protected get mrtBackendPreference(): 'auto' | 'legacy' | 'scapi';
|
|
45
96
|
/**
|
|
46
|
-
* Gets an API key auth strategy for MRT.
|
|
97
|
+
* Gets an API key auth strategy for MRT (legacy MRT Cloud API).
|
|
47
98
|
*/
|
|
48
99
|
protected getMrtAuth(): AuthStrategy;
|
|
49
100
|
/**
|
|
50
|
-
* Check if MRT credentials are available.
|
|
101
|
+
* Check if legacy MRT credentials (API key) are available.
|
|
51
102
|
*/
|
|
52
103
|
protected hasMrtCredentials(): boolean;
|
|
53
104
|
/**
|
|
54
|
-
* Validates that MRT credentials are configured, errors if not.
|
|
105
|
+
* Validates that legacy MRT credentials are configured, errors if not.
|
|
55
106
|
* @throws {Error} If MRT API key is not configured
|
|
56
107
|
*/
|
|
57
108
|
protected requireMrtCredentials(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Resolve the target MRT project slug for a command that accepts it either as
|
|
111
|
+
* a positional argument or via the `--project` / `--storefront` flag.
|
|
112
|
+
*
|
|
113
|
+
* An explicit positional wins; otherwise the resolved `--project` /
|
|
114
|
+
* `--storefront` flag value is used (which also covers `MRT_PROJECT`,
|
|
115
|
+
* `SFCC_MRT_PROJECT`, `MRT_STOREFRONT` / `SFCC_MRT_STOREFRONT`, and the
|
|
116
|
+
* `mrtProject` field in dw.json). Errors when neither yields a value.
|
|
117
|
+
*/
|
|
118
|
+
protected resolveProjectSlug(positional?: string): string;
|
|
119
|
+
/**
|
|
120
|
+
* Resolve the target MRT environment slug for a command that accepts it either
|
|
121
|
+
* as a positional argument or via the `--environment` / `--target` (`-e`) flag.
|
|
122
|
+
*
|
|
123
|
+
* An explicit positional wins; otherwise the resolved `--environment` /
|
|
124
|
+
* `--target` flag value is used (which also covers `MRT_ENVIRONMENT`,
|
|
125
|
+
* `SFCC_MRT_ENVIRONMENT`, `MRT_TARGET`, and the `mrtEnvironment` field in
|
|
126
|
+
* dw.json). Errors when neither yields a value.
|
|
127
|
+
*/
|
|
128
|
+
protected resolveEnvironmentSlug(positional?: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* SCAPI MRT connection bundle (shortCode + tenantId + a SCAPI-capable OAuth
|
|
131
|
+
* strategy), or `undefined` when this command cannot reach the SCAPI
|
|
132
|
+
* Storefront APIs.
|
|
133
|
+
*
|
|
134
|
+
* Requires:
|
|
135
|
+
* 1. `shortCode` and `tenantId` are configured, and
|
|
136
|
+
* 2. an OAuth strategy that SCAPI Admin accepts.
|
|
137
|
+
*
|
|
138
|
+
* Auth is resolved via {@link OAuthCommand.getOAuthStrategy} — the same path
|
|
139
|
+
* sibling SCAPI-only commands (e.g. eCDN) use — so a stored client-credentials
|
|
140
|
+
* session (from `b2c auth client`) is reused just like live client-credentials
|
|
141
|
+
* or JWT Bearer config. Browser user auth (Authorization Code + PKCE or the
|
|
142
|
+
* deprecated implicit flow) is the only flow SCAPI Admin rejects, so
|
|
143
|
+
* {@link assertScapiAdminAuthSupported} — the SCAPI client factory's own guard —
|
|
144
|
+
* filters it out here too: under `auto` that lets MRT fall back to legacy, and
|
|
145
|
+
* under explicit `--mrt-backend scapi` it surfaces as
|
|
146
|
+
* {@link mrtScapiUnavailableMessage}.
|
|
147
|
+
*
|
|
148
|
+
* This runs eagerly during backend resolution, so it must never throw or start
|
|
149
|
+
* browser auth. `getOAuthStrategy()` throws when no credentials are configured
|
|
150
|
+
* and `assertScapiAdminAuthSupported()` throws for browser user auth; both mean
|
|
151
|
+
* "SCAPI not available" and yield `undefined`. Built directly rather than via
|
|
152
|
+
* `createB2CInstance`, which requires a hostname MRT commands never set.
|
|
153
|
+
*/
|
|
154
|
+
protected getScapiMrtConfig(): ScapiClientConfig | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Whether this command implements the SCAPI MRT backend. Defaults to `false`;
|
|
157
|
+
* the supported commands (`mrt bundle history`, `mrt bundle list`,
|
|
158
|
+
* `mrt bundle deploy` — both the local-build push and `<bundleId>` deploy —
|
|
159
|
+
* and the `mrt env var` family: `list`, `set`, `delete`, `push`) override it
|
|
160
|
+
* to `true`. Used by {@link init} to reject an explicit `--mrt-backend scapi`
|
|
161
|
+
* on commands that would otherwise silently fall back to legacy — an explicit
|
|
162
|
+
* SCAPI request must never be quietly downgraded.
|
|
163
|
+
*/
|
|
164
|
+
protected supportsScapiMrt(): boolean;
|
|
165
|
+
init(): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Resolves the MRT backend context for a supported command: the resolved
|
|
168
|
+
* `--mrt-backend` preference, a SCAPI connection when the SCAPI prerequisites
|
|
169
|
+
* are met, and the legacy API-key auth when configured. Emits per-prerequisite
|
|
170
|
+
* `-D` debug and validates that at least one usable backend exists for the
|
|
171
|
+
* resolved preference, erroring early with an actionable message otherwise.
|
|
172
|
+
*/
|
|
173
|
+
protected getMrtBackendContext(): {
|
|
174
|
+
preference: MrtBackendPreference;
|
|
175
|
+
scapiConnection?: ScapiMrtConnection;
|
|
176
|
+
legacyAuth?: AuthStrategy;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Guardrail for MRT operations the SCAPI backend does not implement yet (e.g.
|
|
180
|
+
* pushing a local build). Explicit `--mrt-backend scapi` errors; `auto` warns
|
|
181
|
+
* only when SCAPI is actually configured (a meaningful notice, not noise for
|
|
182
|
+
* legacy-only users). Callers proceed on the legacy path afterward.
|
|
183
|
+
*/
|
|
184
|
+
protected guardUnsupportedByScapiMrt(operationDescription: string): void;
|
|
185
|
+
/** Logs each MRT backend prerequisite as satisfied/missing under `-D`/`--debug`. */
|
|
186
|
+
private debugMrtBackendPrereqs;
|
|
187
|
+
/**
|
|
188
|
+
* Legacy-only flags that configure the MRT Cloud API and have no effect on the
|
|
189
|
+
* SCAPI MRT backend. Detected from the raw argv (like
|
|
190
|
+
* {@link OAuthCommand.detectExplicitAuthFlags}) so only flags the user actually
|
|
191
|
+
* typed are reported — env vars and dw.json are intentionally not covered. Each
|
|
192
|
+
* entry pairs the canonical long flag with any short char alias to match.
|
|
193
|
+
*
|
|
194
|
+
* @returns the long-flag names that were supplied, for a single grouped warning.
|
|
195
|
+
*/
|
|
196
|
+
private detectIgnoredLegacyFlags;
|
|
197
|
+
/** Warn once (to stderr) that reads are served from a read-only Managed Runtime. */
|
|
198
|
+
protected warnReadOnlyOnce(): void;
|
|
199
|
+
/** Replace a read-only write rejection with actionable guidance; other errors pass through. */
|
|
200
|
+
protected catch(err: Error & {
|
|
201
|
+
exitCode?: number;
|
|
202
|
+
}): Promise<never>;
|
|
58
203
|
}
|