@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
|
@@ -6,70 +6,26 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Job execution operations for B2C Commerce.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* SDK consumers should call SCAPI ops directly via the free functions
|
|
10
|
+
* exported from `./scapi-ops` (or, for legacy code, the OCAPI free
|
|
11
|
+
* functions exported from `./run`). The CLI's `BackendDispatcher`
|
|
12
|
+
* arbitrates between them based on the user's `apiBackend` preference;
|
|
13
|
+
* that policy lives in the CLI layer.
|
|
11
14
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* - {@link executeJob} - Start a job execution
|
|
15
|
-
* - {@link getJobExecution} - Get the status of a job execution
|
|
16
|
-
* - {@link waitForJob} - Wait for a job to complete
|
|
17
|
-
* - {@link searchJobExecutions} - Search for job executions
|
|
18
|
-
* - {@link findRunningJobExecution} - Find a running execution
|
|
19
|
-
* - {@link getJobLog} - Retrieve job log file content
|
|
20
|
-
*
|
|
21
|
-
* ## System Jobs
|
|
22
|
-
*
|
|
23
|
-
* - {@link siteArchiveImport} - Import a site archive
|
|
24
|
-
* - {@link siteArchiveImportSet} - Apply an ordered, receipted set of site archives
|
|
25
|
-
* - {@link siteArchiveImportSplit} - Import a large site archive in multiple parts
|
|
26
|
-
* - {@link siteArchiveExport} - Export a site archive
|
|
27
|
-
* - {@link siteArchiveExportToPath} - Export and save to local path
|
|
28
|
-
*
|
|
29
|
-
* ## Usage
|
|
30
|
-
*
|
|
31
|
-
* ```typescript
|
|
32
|
-
* import {
|
|
33
|
-
* executeJob,
|
|
34
|
-
* waitForJob,
|
|
35
|
-
* searchJobExecutions,
|
|
36
|
-
* siteArchiveImport,
|
|
37
|
-
* siteArchiveExport,
|
|
38
|
-
* } from '@salesforce/b2c-tooling-sdk/operations/jobs';
|
|
39
|
-
* import { resolveConfig } from '@salesforce/b2c-tooling-sdk/config';
|
|
40
|
-
*
|
|
41
|
-
* const config = resolveConfig();
|
|
42
|
-
* const instance = config.createB2CInstance();
|
|
43
|
-
*
|
|
44
|
-
* // Run a custom job and wait for completion
|
|
45
|
-
* const execution = await executeJob(instance, 'my-job-id');
|
|
46
|
-
* const result = await waitForJob(instance, 'my-job-id', execution.id);
|
|
47
|
-
*
|
|
48
|
-
* // Search for recent job executions
|
|
49
|
-
* const results = await searchJobExecutions(instance, {
|
|
50
|
-
* jobId: 'my-job-id',
|
|
51
|
-
* count: 10
|
|
52
|
-
* });
|
|
53
|
-
*
|
|
54
|
-
* // Import a site archive
|
|
55
|
-
* await siteArchiveImport(instance, './my-import-data');
|
|
56
|
-
*
|
|
57
|
-
* // Export site data
|
|
58
|
-
* const exportResult = await siteArchiveExport(instance, {
|
|
59
|
-
* global_data: { meta_data: true }
|
|
60
|
-
* });
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* ## Authentication
|
|
64
|
-
*
|
|
65
|
-
* Job operations require OAuth authentication with appropriate OCAPI permissions
|
|
66
|
-
* for the /jobs and /job_execution_search resources.
|
|
15
|
+
* Ordered import sets are exported from `./import-set` and continue to use
|
|
16
|
+
* the site-archive/WebDAV workflow.
|
|
67
17
|
*
|
|
68
18
|
* @module operations/jobs
|
|
69
19
|
*/
|
|
70
|
-
//
|
|
20
|
+
// OCAPI ops (legacy — will be removed when OCAPI is deprecated)
|
|
71
21
|
export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunningJobExecution, getJobLog, getJobErrorMessage, JobExecutionError, } from './run.js';
|
|
72
|
-
//
|
|
22
|
+
// SCAPI ops + canonical types (primary surface)
|
|
23
|
+
export { executeJob as scapiExecuteJob, getJobExecution as scapiGetJobExecution, searchJobExecutions as scapiSearchJobExecutions, deleteJobExecution as scapiDeleteJobExecution, getJobLog as scapiGetJobLog, ScapiJobStartError, } from './scapi-ops.js';
|
|
24
|
+
// Backend-agnostic helpers
|
|
25
|
+
export { waitForJobExecution, CanonicalJobExecutionError } from './wait-canonical.js';
|
|
26
|
+
export { mapOcapiExecution, mapOcapiSearchResult, mapCanonicalToOcapiExecution } from './ocapi-mapping.js';
|
|
27
|
+
export { runSystemJob } from './run-system-job.js';
|
|
28
|
+
// Site archive import/export (uses OCAPI WebDAV path)
|
|
73
29
|
export { siteArchiveImport, siteArchiveImportSplit, siteArchiveExport, siteArchiveExportToBuffer, siteArchiveExportToPath, } from './site-archive.js';
|
|
74
30
|
// Ordered, idempotent import sets
|
|
75
31
|
export { discoverImportSet, siteArchiveImportSet, ImportSetStateError } from './import-set.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/jobs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;GAaG;AAEH,gEAAgE;AAChE,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAclB,gDAAgD;AAChD,OAAO,EACL,UAAU,IAAI,eAAe,EAC7B,eAAe,IAAI,oBAAoB,EACvC,mBAAmB,IAAI,wBAAwB,EAC/C,kBAAkB,IAAI,uBAAuB,EAC7C,SAAS,IAAI,cAAc,EAC3B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAIxB,2BAA2B;AAC3B,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,4BAA4B,EAAC,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAGjD,sDAAsD;AACtD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,kCAAkC;AAClC,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AA0B7F,iCAAiC;AACjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mapping helpers from raw OCAPI shapes (snake_case) to canonical
|
|
3
|
+
* {@link JobExecutionInfo} (camelCase).
|
|
4
|
+
*
|
|
5
|
+
* These exist as transitional utilities to bridge the two API shapes. They
|
|
6
|
+
* will be deleted along with the OCAPI ops once OCAPI is removed.
|
|
7
|
+
*
|
|
8
|
+
* @module operations/jobs/ocapi-mapping
|
|
9
|
+
*/
|
|
10
|
+
import type { JobExecution } from './run.js';
|
|
11
|
+
import type { JobExecutionInfo, JobExecutionSearchResults } from './types.js';
|
|
12
|
+
/** Map a raw OCAPI {@link JobExecution} into the canonical shape. */
|
|
13
|
+
export declare function mapOcapiExecution(ocapi: JobExecution): JobExecutionInfo;
|
|
14
|
+
/**
|
|
15
|
+
* Map a canonical {@link JobExecutionInfo} back into the raw OCAPI
|
|
16
|
+
* {@link JobExecution} (snake_case) shape.
|
|
17
|
+
*
|
|
18
|
+
* The reverse of {@link mapOcapiExecution}. System-job operations
|
|
19
|
+
* (site-archive import/export, CAP install/uninstall) expose the raw OCAPI
|
|
20
|
+
* `JobExecution` in their public result/error types; when those operations are
|
|
21
|
+
* served over SCAPI, the canonical result is mapped back through this so the
|
|
22
|
+
* public contract stays identical across backends.
|
|
23
|
+
*
|
|
24
|
+
* Prefers the original OCAPI payload when present in `_raw` (lossless
|
|
25
|
+
* round-trip for the OCAPI path); otherwise projects the canonical fields.
|
|
26
|
+
*/
|
|
27
|
+
export declare function mapCanonicalToOcapiExecution(canonical: JobExecutionInfo): JobExecution;
|
|
28
|
+
/** Map a raw OCAPI search result into the canonical shape. */
|
|
29
|
+
export declare function mapOcapiSearchResult(result: {
|
|
30
|
+
total: number;
|
|
31
|
+
count: number;
|
|
32
|
+
start: number;
|
|
33
|
+
hits: JobExecution[];
|
|
34
|
+
}): JobExecutionSearchResults;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function mapStepExecution(step) {
|
|
2
|
+
return {
|
|
3
|
+
id: step.id,
|
|
4
|
+
stepId: step.step_id,
|
|
5
|
+
executionStatus: step.execution_status,
|
|
6
|
+
exitStatus: step.exit_status
|
|
7
|
+
? {
|
|
8
|
+
code: step.exit_status.code ?? '',
|
|
9
|
+
message: step.exit_status.message,
|
|
10
|
+
status: step.exit_status.status,
|
|
11
|
+
}
|
|
12
|
+
: undefined,
|
|
13
|
+
duration: step.duration,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/** Map a raw OCAPI {@link JobExecution} into the canonical shape. */
|
|
17
|
+
export function mapOcapiExecution(ocapi) {
|
|
18
|
+
return {
|
|
19
|
+
id: ocapi.id ?? '',
|
|
20
|
+
jobId: ocapi.job_id ?? '',
|
|
21
|
+
executionStatus: (ocapi.execution_status ?? 'unknown'),
|
|
22
|
+
exitStatus: ocapi.exit_status
|
|
23
|
+
? {
|
|
24
|
+
code: ocapi.exit_status.code ?? '',
|
|
25
|
+
message: ocapi.exit_status.message,
|
|
26
|
+
status: ocapi.exit_status.status,
|
|
27
|
+
}
|
|
28
|
+
: undefined,
|
|
29
|
+
startTime: ocapi.start_time,
|
|
30
|
+
endTime: ocapi.end_time,
|
|
31
|
+
duration: ocapi.duration,
|
|
32
|
+
stepExecutions: ocapi.step_executions?.map(mapStepExecution),
|
|
33
|
+
logFilePath: ocapi.log_file_path,
|
|
34
|
+
isLogFileExisting: ocapi.is_log_file_existing,
|
|
35
|
+
parameters: ocapi.parameters,
|
|
36
|
+
_raw: ocapi,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function mapCanonicalStepExecution(step) {
|
|
40
|
+
return {
|
|
41
|
+
id: step.id,
|
|
42
|
+
step_id: step.stepId,
|
|
43
|
+
execution_status: step.executionStatus,
|
|
44
|
+
exit_status: step.exitStatus
|
|
45
|
+
? {
|
|
46
|
+
code: step.exitStatus.code,
|
|
47
|
+
message: step.exitStatus.message,
|
|
48
|
+
status: step.exitStatus.status,
|
|
49
|
+
}
|
|
50
|
+
: undefined,
|
|
51
|
+
duration: step.duration,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Map a canonical {@link JobExecutionInfo} back into the raw OCAPI
|
|
56
|
+
* {@link JobExecution} (snake_case) shape.
|
|
57
|
+
*
|
|
58
|
+
* The reverse of {@link mapOcapiExecution}. System-job operations
|
|
59
|
+
* (site-archive import/export, CAP install/uninstall) expose the raw OCAPI
|
|
60
|
+
* `JobExecution` in their public result/error types; when those operations are
|
|
61
|
+
* served over SCAPI, the canonical result is mapped back through this so the
|
|
62
|
+
* public contract stays identical across backends.
|
|
63
|
+
*
|
|
64
|
+
* Prefers the original OCAPI payload when present in `_raw` (lossless
|
|
65
|
+
* round-trip for the OCAPI path); otherwise projects the canonical fields.
|
|
66
|
+
*/
|
|
67
|
+
export function mapCanonicalToOcapiExecution(canonical) {
|
|
68
|
+
if (canonical._raw && typeof canonical._raw === 'object' && 'execution_status' in canonical._raw) {
|
|
69
|
+
return canonical._raw;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
id: canonical.id,
|
|
73
|
+
job_id: canonical.jobId,
|
|
74
|
+
execution_status: canonical.executionStatus,
|
|
75
|
+
exit_status: canonical.exitStatus
|
|
76
|
+
? {
|
|
77
|
+
code: canonical.exitStatus.code,
|
|
78
|
+
message: canonical.exitStatus.message,
|
|
79
|
+
status: canonical.exitStatus.status,
|
|
80
|
+
}
|
|
81
|
+
: undefined,
|
|
82
|
+
start_time: canonical.startTime,
|
|
83
|
+
end_time: canonical.endTime,
|
|
84
|
+
duration: canonical.duration,
|
|
85
|
+
step_executions: canonical.stepExecutions?.map(mapCanonicalStepExecution),
|
|
86
|
+
log_file_path: canonical.logFilePath,
|
|
87
|
+
is_log_file_existing: canonical.isLogFileExisting,
|
|
88
|
+
parameters: canonical.parameters,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/** Map a raw OCAPI search result into the canonical shape. */
|
|
92
|
+
export function mapOcapiSearchResult(result) {
|
|
93
|
+
return {
|
|
94
|
+
total: result.total,
|
|
95
|
+
limit: result.count,
|
|
96
|
+
offset: result.start,
|
|
97
|
+
hits: result.hits.map(mapOcapiExecution),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=ocapi-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ocapi-mapping.js","sourceRoot":"","sources":["../../../../src/operations/jobs/ocapi-mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dual-backend runner for B2C Commerce **system jobs** (site-archive
|
|
3
|
+
* import/export, CAP install/uninstall).
|
|
4
|
+
*
|
|
5
|
+
* These operations all follow the same shape: trigger a named system job,
|
|
6
|
+
* wait for it to finish, and surface the job log on failure. This module
|
|
7
|
+
* centralizes that flow over either backend so each operation declares only
|
|
8
|
+
* its job ID and request body — not the OCAPI-vs-SCAPI plumbing.
|
|
9
|
+
*
|
|
10
|
+
* ## Contract
|
|
11
|
+
*
|
|
12
|
+
* The public result/error types of every caller expose the **raw OCAPI**
|
|
13
|
+
* {@link JobExecution} (snake_case). To keep that contract identical across
|
|
14
|
+
* backends, the SCAPI path maps its canonical result back to the OCAPI shape
|
|
15
|
+
* via {@link mapCanonicalToOcapiExecution}, and a SCAPI job failure is
|
|
16
|
+
* re-thrown as the raw {@link JobExecutionError} — so a caller's existing
|
|
17
|
+
* `catch (JobExecutionError) → getJobLog(instance, err.execution)` works
|
|
18
|
+
* unchanged regardless of which backend served the job.
|
|
19
|
+
*
|
|
20
|
+
* ## Backend selection & fallback
|
|
21
|
+
*
|
|
22
|
+
* Honors {@link B2CInstance.apiBackend}:
|
|
23
|
+
* - `'ocapi'`: always OCAPI.
|
|
24
|
+
* - `'scapi'`: always SCAPI (throws if the instance can't reach SCAPI).
|
|
25
|
+
* - `'auto'` (default): SCAPI when {@link B2CInstance.scapiClientConfig} is
|
|
26
|
+
* available, else OCAPI. **Fallback to OCAPI happens only when the SCAPI
|
|
27
|
+
* start provably created no job** — an Account Manager scope rejection
|
|
28
|
+
* (before the POST) or a client-side rejection status (the server refused
|
|
29
|
+
* the start). Ambiguous failures (network drop after dispatch, timeout,
|
|
30
|
+
* 5xx) and any post-start failure propagate without a re-run, because
|
|
31
|
+
* re-running a mutating system job over OCAPI could execute it twice. See
|
|
32
|
+
* {@link isSafeStartFallback}.
|
|
33
|
+
*
|
|
34
|
+
* ## Lifecycle
|
|
35
|
+
*
|
|
36
|
+
* Lives alongside the other transitional jobs plumbing. When OCAPI is removed,
|
|
37
|
+
* delete the OCAPI branch and inline the SCAPI calls.
|
|
38
|
+
*
|
|
39
|
+
* @module operations/jobs/run-system-job
|
|
40
|
+
*/
|
|
41
|
+
import type { B2CInstance } from '../../instance/index.js';
|
|
42
|
+
import { type JobExecution, type WaitForJobOptions } from './run.js';
|
|
43
|
+
/**
|
|
44
|
+
* Declarative description of a system job to run. The operation supplies its
|
|
45
|
+
* job ID and the two request-body forms; this module drives the rest.
|
|
46
|
+
*/
|
|
47
|
+
export interface SystemJobSpec {
|
|
48
|
+
/** System job ID, e.g. `sfcc-site-archive-import`. */
|
|
49
|
+
jobId: string;
|
|
50
|
+
/**
|
|
51
|
+
* System-job configuration sent on both APIs (e.g.
|
|
52
|
+
* `{file_name}`, `{export_file, data_units}`, or the CAP `{app_name, ...}`
|
|
53
|
+
* shape). These system jobs retain snake_case fields on SCAPI. When the
|
|
54
|
+
* instance rejects it with `UnknownPropertyException`, the
|
|
55
|
+
* OCAPI path retries with {@link parameters}.
|
|
56
|
+
*/
|
|
57
|
+
body: Record<string, unknown>;
|
|
58
|
+
/**
|
|
59
|
+
* Job parameters (`[{name, value}]`) for the OCAPI internal-user retry.
|
|
60
|
+
* System jobs do not use the generic SCAPI JobExecutionRequest body.
|
|
61
|
+
*/
|
|
62
|
+
parameters: Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
value: string;
|
|
65
|
+
}>;
|
|
66
|
+
/** Scopes named in the OCAPI-deprecation error (the rw jobs scope). */
|
|
67
|
+
deprecatedScopes?: string[];
|
|
68
|
+
/** Whether to wait for completion (default `true`). */
|
|
69
|
+
wait?: boolean;
|
|
70
|
+
/** Wait options forwarded to the poll loop. */
|
|
71
|
+
waitOptions?: WaitForJobOptions;
|
|
72
|
+
/** Human-readable verb for error messages, e.g. `'execute import job'`. */
|
|
73
|
+
failVerb: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Starts a system job (waiting for completion unless `spec.wait === false`)
|
|
77
|
+
* and returns the raw OCAPI {@link JobExecution}. Throws {@link JobExecutionError}
|
|
78
|
+
* (raw) when the job fails, or {@link OcapiDeprecatedError} when the only
|
|
79
|
+
* reachable backend is a deprecated OCAPI.
|
|
80
|
+
*/
|
|
81
|
+
export declare function runSystemJob(instance: B2CInstance, spec: SystemJobSpec): Promise<JobExecution>;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { isOcapiDeprecatedFault, OcapiDeprecatedError } from '../../clients/error-utils.js';
|
|
2
|
+
import { isFallbackTrigger, scapiUnavailableMessage } from '../../clients/scapi-backend-utils.js';
|
|
3
|
+
import { createScapiJobsClient } from '../../clients/scapi-jobs.js';
|
|
4
|
+
import { getLogger } from '../../logging/logger.js';
|
|
5
|
+
import { mapCanonicalToOcapiExecution } from './ocapi-mapping.js';
|
|
6
|
+
import { executeJob as scapiExecuteJob, getJobExecution as scapiGetJobExecution } from './scapi-ops.js';
|
|
7
|
+
import { waitForJob, JobExecutionError } from './run.js';
|
|
8
|
+
import { waitForJobExecution, CanonicalJobExecutionError } from './wait-canonical.js';
|
|
9
|
+
/**
|
|
10
|
+
* Decides whether a SCAPI start failure is provably safe to fall back to OCAPI
|
|
11
|
+
* for. Safe cases guarantee no job was created:
|
|
12
|
+
* - `invalid_scope`: Account Manager rejected the scope during
|
|
13
|
+
* token acquisition — thrown before the job POST is ever sent.
|
|
14
|
+
* - a SCAPI capability error: a purely local rejection.
|
|
15
|
+
* - a typed SCAPI start error whose HTTP status is a client-side rejection
|
|
16
|
+
* (the server refused before starting the job).
|
|
17
|
+
*
|
|
18
|
+
* Everything else — a network/timeout error (which may have reached the server
|
|
19
|
+
* with the job now running), a 5xx, or a 429 — is ambiguous and must NOT
|
|
20
|
+
* trigger an OCAPI re-run of a mutating job.
|
|
21
|
+
*/
|
|
22
|
+
function isSafeStartFallback(error) {
|
|
23
|
+
return isFallbackTrigger(error);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Starts a system job (waiting for completion unless `spec.wait === false`)
|
|
27
|
+
* and returns the raw OCAPI {@link JobExecution}. Throws {@link JobExecutionError}
|
|
28
|
+
* (raw) when the job fails, or {@link OcapiDeprecatedError} when the only
|
|
29
|
+
* reachable backend is a deprecated OCAPI.
|
|
30
|
+
*/
|
|
31
|
+
export async function runSystemJob(instance, spec) {
|
|
32
|
+
const preference = instance.apiBackend;
|
|
33
|
+
const scapiConfig = instance.scapiClientConfig;
|
|
34
|
+
if (preference === 'ocapi') {
|
|
35
|
+
return runOcapiSystemJob(instance, spec);
|
|
36
|
+
}
|
|
37
|
+
if (preference === 'scapi') {
|
|
38
|
+
if (!scapiConfig) {
|
|
39
|
+
// Domain label (not the job ID) so the message reads "Jobs SCAPI
|
|
40
|
+
// backend requires…", consistent with resolveScapiOrOcapi.
|
|
41
|
+
throw new Error(scapiUnavailableMessage('Jobs'));
|
|
42
|
+
}
|
|
43
|
+
return runScapiSystemJob(instance, scapiConfig, spec);
|
|
44
|
+
}
|
|
45
|
+
// auto
|
|
46
|
+
if (!scapiConfig) {
|
|
47
|
+
return runOcapiSystemJob(instance, spec);
|
|
48
|
+
}
|
|
49
|
+
// Try SCAPI start; fall back to OCAPI only for a provably-safe start failure
|
|
50
|
+
// (see isSafeStartFallback). Once started, finishScapiJob handles wait/failure
|
|
51
|
+
// without falling back.
|
|
52
|
+
const client = createScapiJobsClient({ shortCode: scapiConfig.shortCode, tenantId: scapiConfig.tenantId }, scapiConfig.auth);
|
|
53
|
+
let started;
|
|
54
|
+
try {
|
|
55
|
+
started = await startScapiJob(client, scapiConfig.tenantId, spec);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// Fall back to OCAPI ONLY when the SCAPI start provably created no job.
|
|
59
|
+
// An ambiguous failure (network drop after dispatch, timeout, 5xx) must
|
|
60
|
+
// propagate — re-running a mutating system job over OCAPI could execute it
|
|
61
|
+
// twice.
|
|
62
|
+
if (!isSafeStartFallback(error)) {
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
getLogger().info({ jobId: spec.jobId, reason: error instanceof Error ? error.message : String(error) }, `SCAPI ${spec.jobId} start rejected, falling back to OCAPI`);
|
|
66
|
+
return runOcapiSystemJob(instance, spec);
|
|
67
|
+
}
|
|
68
|
+
return finishScapiJob(client, scapiConfig.tenantId, spec, started);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* SCAPI path: trigger the job (start phase, fallback-eligible in auto) then
|
|
72
|
+
* wait/map (finish phase, never falls back).
|
|
73
|
+
*/
|
|
74
|
+
async function runScapiSystemJob(instance, scapiConfig, spec) {
|
|
75
|
+
const client = createScapiJobsClient({ shortCode: scapiConfig.shortCode, tenantId: scapiConfig.tenantId }, scapiConfig.auth);
|
|
76
|
+
const started = await startScapiJob(client, scapiConfig.tenantId, spec);
|
|
77
|
+
return finishScapiJob(client, scapiConfig.tenantId, spec, started);
|
|
78
|
+
}
|
|
79
|
+
async function startScapiJob(client, tenantId, spec) {
|
|
80
|
+
return scapiExecuteJob(client, spec.jobId, { body: spec.body, tenantId });
|
|
81
|
+
}
|
|
82
|
+
async function finishScapiJob(client, tenantId, spec, started) {
|
|
83
|
+
if (spec.wait === false) {
|
|
84
|
+
return mapCanonicalToOcapiExecution(started);
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const final = await waitForJobExecution((jobId, executionId) => scapiGetJobExecution(client, jobId, executionId, tenantId), spec.jobId, started.id, spec.waitOptions);
|
|
88
|
+
return mapCanonicalToOcapiExecution(final);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
// Re-throw a job FAILURE as the raw JobExecutionError so callers' existing
|
|
92
|
+
// log-fetch handling works identically across backends. Other errors
|
|
93
|
+
// (timeout, network) propagate as-is — never fall back post-start.
|
|
94
|
+
if (error instanceof CanonicalJobExecutionError) {
|
|
95
|
+
throw new JobExecutionError(error.message, mapCanonicalToOcapiExecution(error.execution));
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* OCAPI path: preserves the legacy behavior exactly — POST the shorthand body,
|
|
102
|
+
* retry with the parameters body on `UnknownPropertyException`, then wait.
|
|
103
|
+
*/
|
|
104
|
+
async function runOcapiSystemJob(instance, spec) {
|
|
105
|
+
let execution;
|
|
106
|
+
const { data, error } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
|
|
107
|
+
params: { path: { job_id: spec.jobId } },
|
|
108
|
+
body: spec.body,
|
|
109
|
+
});
|
|
110
|
+
if (error?.fault?.type === 'UnknownPropertyException' &&
|
|
111
|
+
error.fault.arguments?.document === 'job_execution_request') {
|
|
112
|
+
// Retry with parameters format (internal/support users)
|
|
113
|
+
const { data: retryData, error: retryError } = await instance.ocapi.POST('/jobs/{job_id}/executions', {
|
|
114
|
+
params: { path: { job_id: spec.jobId } },
|
|
115
|
+
body: { parameters: spec.parameters },
|
|
116
|
+
});
|
|
117
|
+
if (retryError || !retryData) {
|
|
118
|
+
if (isOcapiDeprecatedFault(retryError))
|
|
119
|
+
throw new OcapiDeprecatedError({ cause: retryError, requiredScopes: spec.deprecatedScopes });
|
|
120
|
+
throw new Error(retryError?.fault?.message ?? `Failed to ${spec.failVerb}`, { cause: retryError });
|
|
121
|
+
}
|
|
122
|
+
execution = retryData;
|
|
123
|
+
}
|
|
124
|
+
else if (error || !data) {
|
|
125
|
+
if (isOcapiDeprecatedFault(error))
|
|
126
|
+
throw new OcapiDeprecatedError({ cause: error, requiredScopes: spec.deprecatedScopes });
|
|
127
|
+
throw new Error(error?.fault?.message ?? `Failed to ${spec.failVerb}`, { cause: error });
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
execution = data;
|
|
131
|
+
}
|
|
132
|
+
if (spec.wait === false) {
|
|
133
|
+
return execution;
|
|
134
|
+
}
|
|
135
|
+
return waitForJob(instance, spec.jobId, execution.id, spec.waitOptions);
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=run-system-job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-system-job.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run-system-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,14 @@
|
|
|
9
9
|
* Provides functions for executing and monitoring jobs on B2C Commerce instances.
|
|
10
10
|
*/
|
|
11
11
|
import { B2CInstance } from '../../instance/index.js';
|
|
12
|
-
import { getApiErrorMessage } from '../../clients/error-utils.js';
|
|
12
|
+
import { isOcapiDeprecatedFault, OcapiDeprecatedError, getApiErrorMessage } from '../../clients/error-utils.js';
|
|
13
|
+
import { SCAPI_JOBS_CASCADE } from '../../clients/scapi-jobs.js';
|
|
13
14
|
import { getLogger } from '../../logging/logger.js';
|
|
15
|
+
// SCAPI Jobs scopes named in the OCAPI-deprecation message, derived from the
|
|
16
|
+
// canonical cascade so they can't drift. Reads accept either tier; writes
|
|
17
|
+
// (execute) require the rw scope.
|
|
18
|
+
const JOBS_READ_SCOPES = [...new Set(SCAPI_JOBS_CASCADE.read.flat())];
|
|
19
|
+
const JOBS_RW_SCOPES = [...new Set(SCAPI_JOBS_CASCADE.write.flat())];
|
|
14
20
|
/**
|
|
15
21
|
* Executes a job on a B2C Commerce instance.
|
|
16
22
|
*
|
|
@@ -79,8 +85,10 @@ export async function executeJob(instance, jobId, options = {}) {
|
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
if (error || !data) {
|
|
88
|
+
if (isOcapiDeprecatedFault(error))
|
|
89
|
+
throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_RW_SCOPES });
|
|
82
90
|
const message = error?.fault?.message ?? `Failed to execute job ${jobId}`;
|
|
83
|
-
throw new Error(message);
|
|
91
|
+
throw new Error(message, { cause: error });
|
|
84
92
|
}
|
|
85
93
|
logger.debug({ jobId, executionId: data.id, status: data.execution_status }, `Job ${jobId} started: ${data.id}`);
|
|
86
94
|
return data;
|
|
@@ -105,8 +113,10 @@ export async function getJobExecution(instance, jobId, executionId) {
|
|
|
105
113
|
params: { path: { job_id: jobId, id: executionId } },
|
|
106
114
|
});
|
|
107
115
|
if (error || !data) {
|
|
116
|
+
if (isOcapiDeprecatedFault(error))
|
|
117
|
+
throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_READ_SCOPES });
|
|
108
118
|
const message = error?.fault?.message ?? `Failed to get job execution ${executionId}`;
|
|
109
|
-
throw new Error(message);
|
|
119
|
+
throw new Error(message, { cause: error });
|
|
110
120
|
}
|
|
111
121
|
return data;
|
|
112
122
|
}
|
|
@@ -257,8 +267,10 @@ export async function searchJobExecutions(instance, options = {}) {
|
|
|
257
267
|
},
|
|
258
268
|
});
|
|
259
269
|
if (error || !data) {
|
|
270
|
+
if (isOcapiDeprecatedFault(error))
|
|
271
|
+
throw new OcapiDeprecatedError({ cause: error, requiredScopes: JOBS_READ_SCOPES });
|
|
260
272
|
const message = error && response ? getApiErrorMessage(error, response) : (error?.fault?.message ?? 'Unknown error');
|
|
261
|
-
throw new Error(`Failed to search job executions: ${message}
|
|
273
|
+
throw new Error(`Failed to search job executions: ${message}`, { cause: error });
|
|
262
274
|
}
|
|
263
275
|
return {
|
|
264
276
|
total: data.total ?? 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AACH,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/operations/jobs/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SCAPI Jobs operations.
|
|
3
|
+
*
|
|
4
|
+
* Free functions over a {@link ScapiJobsClient}. Each operation declares its
|
|
5
|
+
* scope tier (`read` or `write`) via the `x-b2c-scope-mode` header; the
|
|
6
|
+
* auth middleware on the client reads that header and resolves the
|
|
7
|
+
* appropriate scope cascade against Account Manager.
|
|
8
|
+
*
|
|
9
|
+
* SDK consumers (or the CLI dispatcher in auto/scapi mode) call these
|
|
10
|
+
* directly. This is the future primary surface for jobs once OCAPI is
|
|
11
|
+
* deprecated.
|
|
12
|
+
*
|
|
13
|
+
* @module operations/jobs/scapi-ops
|
|
14
|
+
*/
|
|
15
|
+
import type { B2CInstance } from '../../instance/index.js';
|
|
16
|
+
import { ScapiRequestError } from '../../clients/scapi-backend-utils.js';
|
|
17
|
+
import { type ScapiJobsClient } from '../../clients/scapi-jobs.js';
|
|
18
|
+
import type { ExecuteJobOptions, SearchJobExecutionsOptions } from './run.js';
|
|
19
|
+
import type { JobExecutionInfo, JobExecutionSearchResults } from './types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Thrown by {@link executeJob} when the SCAPI job-start POST is rejected with
|
|
22
|
+
* a response (non-2xx). Carries the received HTTP status so callers can tell a
|
|
23
|
+
* *request rejection* (server refused before starting the job — safe to treat
|
|
24
|
+
* as "no job created") from an ambiguous failure.
|
|
25
|
+
*
|
|
26
|
+
* A network/timeout error during the POST does NOT produce this — it surfaces
|
|
27
|
+
* as a raw thrown error with no status, because the request may have reached
|
|
28
|
+
* the server and the job may already be running.
|
|
29
|
+
*/
|
|
30
|
+
export declare class ScapiJobStartError extends ScapiRequestError {
|
|
31
|
+
/** HTTP status of the rejection response. */
|
|
32
|
+
readonly status: number;
|
|
33
|
+
constructor(message: string,
|
|
34
|
+
/** HTTP status of the rejection response. */
|
|
35
|
+
status: number);
|
|
36
|
+
}
|
|
37
|
+
export interface ExecuteJobScapiOptions extends ExecuteJobOptions {
|
|
38
|
+
/** Tenant ID for organization path param. Required. */
|
|
39
|
+
tenantId: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execute a job. Requires the rw scope (no ro fallback for writes).
|
|
43
|
+
*
|
|
44
|
+
* If the job is already running and `waitForRunning` is not `false`, polls
|
|
45
|
+
* until the prior run reaches a terminal state, then retries.
|
|
46
|
+
*/
|
|
47
|
+
export declare function executeJob(client: ScapiJobsClient, jobId: string, options: ExecuteJobScapiOptions): Promise<JobExecutionInfo>;
|
|
48
|
+
export declare function getJobExecution(client: ScapiJobsClient, jobId: string, executionId: string, tenantId: string): Promise<JobExecutionInfo>;
|
|
49
|
+
export interface SearchJobExecutionsScapiOptions extends SearchJobExecutionsOptions {
|
|
50
|
+
/** Tenant ID for organization path param. Required. */
|
|
51
|
+
tenantId: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function searchJobExecutions(client: ScapiJobsClient, options: SearchJobExecutionsScapiOptions): Promise<JobExecutionSearchResults>;
|
|
54
|
+
export declare function deleteJobExecution(client: ScapiJobsClient, jobId: string, executionId: string, tenantId: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves a job's log file content over WebDAV. Both backends
|
|
57
|
+
* (SCAPI and OCAPI) expose `logFilePath` under `/Sites/LOGS/...`; WebDAV is
|
|
58
|
+
* shared, so this lives in jobs/scapi-ops.ts only as a convenience for SDK
|
|
59
|
+
* consumers building purely against SCAPI ops.
|
|
60
|
+
*/
|
|
61
|
+
export declare function getJobLog(instance: B2CInstance, execution: JobExecutionInfo): Promise<string>;
|