@salesforce/b2c-tooling-sdk 1.9.0 → 1.11.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 +37 -0
- package/dist/esm/config/dw-json.d.ts +9 -2
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/index.d.ts +2 -2
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/mapping.d.ts +7 -1
- package/dist/esm/config/mapping.js +10 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/sources/package-json-source.js +1 -0
- package/dist/esm/config/sources/package-json-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +23 -2
- package/dist/esm/operations/content/validate.js +46 -4
- package/dist/esm/operations/content/validate.js.map +1 -1
- package/dist/esm/operations/jobs/site-archive.d.ts +12 -0
- package/dist/esm/operations/jobs/site-archive.js +107 -3
- package/dist/esm/operations/jobs/site-archive.js.map +1 -1
- package/package.json +73 -285
- package/dist/cjs/auth/api-key.d.ts +0 -28
- package/dist/cjs/auth/api-key.js +0 -45
- package/dist/cjs/auth/api-key.js.map +0 -1
- package/dist/cjs/auth/basic.d.ts +0 -7
- package/dist/cjs/auth/basic.js +0 -20
- package/dist/cjs/auth/basic.js.map +0 -1
- package/dist/cjs/auth/index.d.ts +0 -74
- package/dist/cjs/auth/index.js +0 -76
- package/dist/cjs/auth/index.js.map +0 -1
- package/dist/cjs/auth/jwt-utils.d.ts +0 -25
- package/dist/cjs/auth/jwt-utils.js +0 -66
- package/dist/cjs/auth/jwt-utils.js.map +0 -1
- package/dist/cjs/auth/middleware.d.ts +0 -196
- package/dist/cjs/auth/middleware.js +0 -190
- package/dist/cjs/auth/middleware.js.map +0 -1
- package/dist/cjs/auth/oauth-implicit.d.ts +0 -89
- package/dist/cjs/auth/oauth-implicit.js +0 -350
- package/dist/cjs/auth/oauth-implicit.js.map +0 -1
- package/dist/cjs/auth/oauth-jwt.d.ts +0 -99
- package/dist/cjs/auth/oauth-jwt.js +0 -343
- package/dist/cjs/auth/oauth-jwt.js.map +0 -1
- package/dist/cjs/auth/oauth.d.ts +0 -88
- package/dist/cjs/auth/oauth.js +0 -252
- package/dist/cjs/auth/oauth.js.map +0 -1
- package/dist/cjs/auth/resolve.d.ts +0 -100
- package/dist/cjs/auth/resolve.js +0 -175
- package/dist/cjs/auth/resolve.js.map +0 -1
- package/dist/cjs/auth/stateful-oauth-strategy.d.ts +0 -39
- package/dist/cjs/auth/stateful-oauth-strategy.js +0 -130
- package/dist/cjs/auth/stateful-oauth-strategy.js.map +0 -1
- package/dist/cjs/auth/stateful-store.d.ts +0 -49
- package/dist/cjs/auth/stateful-store.js +0 -166
- package/dist/cjs/auth/stateful-store.js.map +0 -1
- package/dist/cjs/auth/types.d.ts +0 -124
- package/dist/cjs/auth/types.js +0 -8
- package/dist/cjs/auth/types.js.map +0 -1
- package/dist/cjs/cli/am-command.d.ts +0 -74
- package/dist/cjs/cli/am-command.js +0 -199
- package/dist/cjs/cli/am-command.js.map +0 -1
- package/dist/cjs/cli/base-command.d.ts +0 -232
- package/dist/cjs/cli/base-command.js +0 -695
- package/dist/cjs/cli/base-command.js.map +0 -1
- package/dist/cjs/cli/cartridge-command.d.ts +0 -67
- package/dist/cjs/cli/cartridge-command.js +0 -146
- package/dist/cjs/cli/cartridge-command.js.map +0 -1
- package/dist/cjs/cli/cartridge-providers.d.ts +0 -149
- package/dist/cjs/cli/cartridge-providers.js +0 -103
- package/dist/cjs/cli/cartridge-providers.js.map +0 -1
- package/dist/cjs/cli/columns.d.ts +0 -128
- package/dist/cjs/cli/columns.js +0 -128
- package/dist/cjs/cli/columns.js.map +0 -1
- package/dist/cjs/cli/config.d.ts +0 -159
- package/dist/cjs/cli/config.js +0 -185
- package/dist/cjs/cli/config.js.map +0 -1
- package/dist/cjs/cli/details.d.ts +0 -69
- package/dist/cjs/cli/details.js +0 -72
- package/dist/cjs/cli/details.js.map +0 -1
- package/dist/cjs/cli/hooks.d.ts +0 -324
- package/dist/cjs/cli/hooks.js +0 -3
- package/dist/cjs/cli/hooks.js.map +0 -1
- package/dist/cjs/cli/index.d.ts +0 -108
- package/dist/cjs/cli/index.js +0 -111
- package/dist/cjs/cli/index.js.map +0 -1
- package/dist/cjs/cli/instance-command.d.ts +0 -131
- package/dist/cjs/cli/instance-command.js +0 -214
- package/dist/cjs/cli/instance-command.js.map +0 -1
- package/dist/cjs/cli/job-command.d.ts +0 -32
- package/dist/cjs/cli/job-command.js +0 -60
- package/dist/cjs/cli/job-command.js.map +0 -1
- package/dist/cjs/cli/lifecycle.d.ts +0 -189
- package/dist/cjs/cli/lifecycle.js +0 -130
- package/dist/cjs/cli/lifecycle.js.map +0 -1
- package/dist/cjs/cli/mrt-command.d.ts +0 -57
- package/dist/cjs/cli/mrt-command.js +0 -95
- package/dist/cjs/cli/mrt-command.js.map +0 -1
- package/dist/cjs/cli/oauth-command.d.ts +0 -122
- package/dist/cjs/cli/oauth-command.js +0 -311
- package/dist/cjs/cli/oauth-command.js.map +0 -1
- package/dist/cjs/cli/ods-command.d.ts +0 -97
- package/dist/cjs/cli/ods-command.js +0 -136
- package/dist/cjs/cli/ods-command.js.map +0 -1
- package/dist/cjs/cli/table.d.ts +0 -113
- package/dist/cjs/cli/table.js +0 -175
- package/dist/cjs/cli/table.js.map +0 -1
- package/dist/cjs/cli/webdav-command.d.ts +0 -110
- package/dist/cjs/cli/webdav-command.js +0 -106
- package/dist/cjs/cli/webdav-command.js.map +0 -1
- package/dist/cjs/clients/am-api.d.ts +0 -521
- package/dist/cjs/clients/am-api.js +0 -992
- package/dist/cjs/clients/am-api.js.map +0 -1
- package/dist/cjs/clients/am-apiclients-api.generated.d.ts +0 -803
- package/dist/cjs/clients/am-apiclients-api.generated.js +0 -6
- package/dist/cjs/clients/am-apiclients-api.generated.js.map +0 -1
- package/dist/cjs/clients/am-roles-api.generated.d.ts +0 -298
- package/dist/cjs/clients/am-roles-api.generated.js +0 -6
- package/dist/cjs/clients/am-roles-api.generated.js.map +0 -1
- package/dist/cjs/clients/am-users-api.generated.d.ts +0 -954
- package/dist/cjs/clients/am-users-api.generated.js +0 -6
- package/dist/cjs/clients/am-users-api.generated.js.map +0 -1
- package/dist/cjs/clients/cdn-zones.d.ts +0 -186
- package/dist/cjs/clients/cdn-zones.generated.d.ts +0 -8330
- package/dist/cjs/clients/cdn-zones.generated.js +0 -6
- package/dist/cjs/clients/cdn-zones.generated.js.map +0 -1
- package/dist/cjs/clients/cdn-zones.js +0 -103
- package/dist/cjs/clients/cdn-zones.js.map +0 -1
- package/dist/cjs/clients/cip.d.ts +0 -162
- package/dist/cjs/clients/cip.js +0 -572
- package/dist/cjs/clients/cip.js.map +0 -1
- package/dist/cjs/clients/custom-apis.d.ts +0 -174
- package/dist/cjs/clients/custom-apis.generated.d.ts +0 -202
- package/dist/cjs/clients/custom-apis.generated.js +0 -6
- package/dist/cjs/clients/custom-apis.generated.js.map +0 -1
- package/dist/cjs/clients/custom-apis.js +0 -140
- package/dist/cjs/clients/custom-apis.js.map +0 -1
- package/dist/cjs/clients/error-utils.d.ts +0 -35
- package/dist/cjs/clients/error-utils.js +0 -69
- package/dist/cjs/clients/error-utils.js.map +0 -1
- package/dist/cjs/clients/granular-replications.d.ts +0 -70
- package/dist/cjs/clients/granular-replications.generated.d.ts +0 -416
- package/dist/cjs/clients/granular-replications.generated.js +0 -6
- package/dist/cjs/clients/granular-replications.generated.js.map +0 -1
- package/dist/cjs/clients/granular-replications.js +0 -73
- package/dist/cjs/clients/granular-replications.js.map +0 -1
- package/dist/cjs/clients/index.d.ts +0 -145
- package/dist/cjs/clients/index.js +0 -137
- package/dist/cjs/clients/index.js.map +0 -1
- package/dist/cjs/clients/middleware-registry.d.ts +0 -184
- package/dist/cjs/clients/middleware-registry.js +0 -104
- package/dist/cjs/clients/middleware-registry.js.map +0 -1
- package/dist/cjs/clients/middleware.d.ts +0 -183
- package/dist/cjs/clients/middleware.js +0 -465
- package/dist/cjs/clients/middleware.js.map +0 -1
- package/dist/cjs/clients/mrt-b2c.d.ts +0 -138
- package/dist/cjs/clients/mrt-b2c.generated.d.ts +0 -176
- package/dist/cjs/clients/mrt-b2c.generated.js +0 -6
- package/dist/cjs/clients/mrt-b2c.generated.js.map +0 -1
- package/dist/cjs/clients/mrt-b2c.js +0 -86
- package/dist/cjs/clients/mrt-b2c.js.map +0 -1
- package/dist/cjs/clients/mrt.d.ts +0 -143
- package/dist/cjs/clients/mrt.generated.d.ts +0 -3806
- package/dist/cjs/clients/mrt.generated.js +0 -6
- package/dist/cjs/clients/mrt.generated.js.map +0 -1
- package/dist/cjs/clients/mrt.js +0 -93
- package/dist/cjs/clients/mrt.js.map +0 -1
- package/dist/cjs/clients/ocapi.d.ts +0 -128
- package/dist/cjs/clients/ocapi.generated.d.ts +0 -26052
- package/dist/cjs/clients/ocapi.generated.js +0 -6
- package/dist/cjs/clients/ocapi.generated.js.map +0 -1
- package/dist/cjs/clients/ocapi.js +0 -78
- package/dist/cjs/clients/ocapi.js.map +0 -1
- package/dist/cjs/clients/ods.d.ts +0 -160
- package/dist/cjs/clients/ods.generated.d.ts +0 -2860
- package/dist/cjs/clients/ods.generated.js +0 -6
- package/dist/cjs/clients/ods.generated.js.map +0 -1
- package/dist/cjs/clients/ods.js +0 -103
- package/dist/cjs/clients/ods.js.map +0 -1
- package/dist/cjs/clients/scapi-schemas.d.ts +0 -161
- package/dist/cjs/clients/scapi-schemas.generated.d.ts +0 -328
- package/dist/cjs/clients/scapi-schemas.generated.js +0 -6
- package/dist/cjs/clients/scapi-schemas.generated.js.map +0 -1
- package/dist/cjs/clients/scapi-schemas.js +0 -98
- package/dist/cjs/clients/scapi-schemas.js.map +0 -1
- package/dist/cjs/clients/slas-admin.d.ts +0 -132
- package/dist/cjs/clients/slas-admin.generated.d.ts +0 -1434
- package/dist/cjs/clients/slas-admin.generated.js +0 -6
- package/dist/cjs/clients/slas-admin.generated.js.map +0 -1
- package/dist/cjs/clients/slas-admin.js +0 -79
- package/dist/cjs/clients/slas-admin.js.map +0 -1
- package/dist/cjs/clients/tls-dispatcher.d.ts +0 -42
- package/dist/cjs/clients/tls-dispatcher.js +0 -107
- package/dist/cjs/clients/tls-dispatcher.js.map +0 -1
- package/dist/cjs/clients/user-agent.d.ts +0 -43
- package/dist/cjs/clients/user-agent.js +0 -87
- package/dist/cjs/clients/user-agent.js.map +0 -1
- package/dist/cjs/clients/webdav.d.ts +0 -186
- package/dist/cjs/clients/webdav.js +0 -395
- package/dist/cjs/clients/webdav.js.map +0 -1
- package/dist/cjs/config/config-source-registry.d.ts +0 -115
- package/dist/cjs/config/config-source-registry.js +0 -103
- package/dist/cjs/config/config-source-registry.js.map +0 -1
- package/dist/cjs/config/dw-json.d.ts +0 -267
- package/dist/cjs/config/dw-json.js +0 -333
- package/dist/cjs/config/dw-json.js.map +0 -1
- package/dist/cjs/config/index.d.ts +0 -100
- package/dist/cjs/config/index.js +0 -110
- package/dist/cjs/config/index.js.map +0 -1
- package/dist/cjs/config/instance-manager.d.ts +0 -97
- package/dist/cjs/config/instance-manager.js +0 -166
- package/dist/cjs/config/instance-manager.js.map +0 -1
- package/dist/cjs/config/mapping.d.ts +0 -193
- package/dist/cjs/config/mapping.js +0 -530
- package/dist/cjs/config/mapping.js.map +0 -1
- package/dist/cjs/config/resolved-config.d.ts +0 -29
- package/dist/cjs/config/resolved-config.js +0 -81
- package/dist/cjs/config/resolved-config.js.map +0 -1
- package/dist/cjs/config/resolver.d.ts +0 -191
- package/dist/cjs/config/resolver.js +0 -406
- package/dist/cjs/config/resolver.js.map +0 -1
- package/dist/cjs/config/sources/dw-json-source.d.ts +0 -27
- package/dist/cjs/config/sources/dw-json-source.js +0 -106
- package/dist/cjs/config/sources/dw-json-source.js.map +0 -1
- package/dist/cjs/config/sources/env-source.d.ts +0 -32
- package/dist/cjs/config/sources/env-source.js +0 -116
- package/dist/cjs/config/sources/env-source.js.map +0 -1
- package/dist/cjs/config/sources/index.d.ts +0 -9
- package/dist/cjs/config/sources/index.js +0 -15
- package/dist/cjs/config/sources/index.js.map +0 -1
- package/dist/cjs/config/sources/mobify-source.d.ts +0 -25
- package/dist/cjs/config/sources/mobify-source.js +0 -84
- package/dist/cjs/config/sources/mobify-source.js.map +0 -1
- package/dist/cjs/config/sources/package-json-source.d.ts +0 -14
- package/dist/cjs/config/sources/package-json-source.js +0 -96
- package/dist/cjs/config/sources/package-json-source.js.map +0 -1
- package/dist/cjs/config/types.d.ts +0 -407
- package/dist/cjs/config/types.js +0 -2
- package/dist/cjs/config/types.js.map +0 -1
- package/dist/cjs/defaults.d.ts +0 -36
- package/dist/cjs/defaults.js +0 -54
- package/dist/cjs/defaults.js.map +0 -1
- package/dist/cjs/discovery/detector.d.ts +0 -75
- package/dist/cjs/discovery/detector.js +0 -108
- package/dist/cjs/discovery/detector.js.map +0 -1
- package/dist/cjs/discovery/index.d.ts +0 -63
- package/dist/cjs/discovery/index.js +0 -70
- package/dist/cjs/discovery/index.js.map +0 -1
- package/dist/cjs/discovery/patterns/cartridges.d.ts +0 -16
- package/dist/cjs/discovery/patterns/cartridges.js +0 -16
- package/dist/cjs/discovery/patterns/cartridges.js.map +0 -1
- package/dist/cjs/discovery/patterns/index.d.ts +0 -21
- package/dist/cjs/discovery/patterns/index.js +0 -16
- package/dist/cjs/discovery/patterns/index.js.map +0 -1
- package/dist/cjs/discovery/patterns/pwa-kit.d.ts +0 -15
- package/dist/cjs/discovery/patterns/pwa-kit.js +0 -26
- package/dist/cjs/discovery/patterns/pwa-kit.js.map +0 -1
- package/dist/cjs/discovery/patterns/sfra.d.ts +0 -34
- package/dist/cjs/discovery/patterns/sfra.js +0 -50
- package/dist/cjs/discovery/patterns/sfra.js.map +0 -1
- package/dist/cjs/discovery/patterns/storefront-next.d.ts +0 -10
- package/dist/cjs/discovery/patterns/storefront-next.js +0 -65
- package/dist/cjs/discovery/patterns/storefront-next.js.map +0 -1
- package/dist/cjs/discovery/types.d.ts +0 -47
- package/dist/cjs/discovery/types.js +0 -12
- package/dist/cjs/discovery/types.js.map +0 -1
- package/dist/cjs/discovery/utils.d.ts +0 -44
- package/dist/cjs/discovery/utils.js +0 -82
- package/dist/cjs/discovery/utils.js.map +0 -1
- package/dist/cjs/docs/download.d.ts +0 -45
- package/dist/cjs/docs/download.js +0 -96
- package/dist/cjs/docs/download.js.map +0 -1
- package/dist/cjs/docs/index.d.ts +0 -44
- package/dist/cjs/docs/index.js +0 -12
- package/dist/cjs/docs/index.js.map +0 -1
- package/dist/cjs/docs/schema.d.ts +0 -26
- package/dist/cjs/docs/schema.js +0 -92
- package/dist/cjs/docs/schema.js.map +0 -1
- package/dist/cjs/docs/search.d.ts +0 -67
- package/dist/cjs/docs/search.js +0 -128
- package/dist/cjs/docs/search.js.map +0 -1
- package/dist/cjs/docs/types.d.ts +0 -64
- package/dist/cjs/docs/types.js +0 -15
- package/dist/cjs/docs/types.js.map +0 -1
- package/dist/cjs/errors/http-error.d.ts +0 -34
- package/dist/cjs/errors/http-error.js +0 -45
- package/dist/cjs/errors/http-error.js.map +0 -1
- package/dist/cjs/errors/index.d.ts +0 -12
- package/dist/cjs/errors/index.js +0 -18
- package/dist/cjs/errors/index.js.map +0 -1
- package/dist/cjs/i18n/index.d.ts +0 -144
- package/dist/cjs/i18n/index.js +0 -245
- package/dist/cjs/i18n/index.js.map +0 -1
- package/dist/cjs/i18n/locales/de.d.ts +0 -13
- package/dist/cjs/i18n/locales/de.js +0 -19
- package/dist/cjs/i18n/locales/de.js.map +0 -1
- package/dist/cjs/i18n/locales/index.d.ts +0 -28
- package/dist/cjs/i18n/locales/index.js +0 -25
- package/dist/cjs/i18n/locales/index.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -33
- package/dist/cjs/index.js +0 -41
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/instance/index.d.ts +0 -136
- package/dist/cjs/instance/index.js +0 -131
- package/dist/cjs/instance/index.js.map +0 -1
- package/dist/cjs/logging/index.d.ts +0 -116
- package/dist/cjs/logging/index.js +0 -121
- package/dist/cjs/logging/index.js.map +0 -1
- package/dist/cjs/logging/logger.d.ts +0 -9
- package/dist/cjs/logging/logger.js +0 -138
- package/dist/cjs/logging/logger.js.map +0 -1
- package/dist/cjs/logging/types.d.ts +0 -45
- package/dist/cjs/logging/types.js +0 -10
- package/dist/cjs/logging/types.js.map +0 -1
- package/dist/cjs/operations/bm-roles/index.d.ts +0 -52
- package/dist/cjs/operations/bm-roles/index.js +0 -57
- package/dist/cjs/operations/bm-roles/index.js.map +0 -1
- package/dist/cjs/operations/bm-roles/roles.d.ts +0 -155
- package/dist/cjs/operations/bm-roles/roles.js +0 -194
- package/dist/cjs/operations/bm-roles/roles.js.map +0 -1
- package/dist/cjs/operations/bm-users/index.d.ts +0 -50
- package/dist/cjs/operations/bm-users/index.js +0 -55
- package/dist/cjs/operations/bm-users/index.js.map +0 -1
- package/dist/cjs/operations/bm-users/users.d.ts +0 -189
- package/dist/cjs/operations/bm-users/users.js +0 -229
- package/dist/cjs/operations/bm-users/users.js.map +0 -1
- package/dist/cjs/operations/cap/index.d.ts +0 -56
- package/dist/cjs/operations/cap/index.js +0 -57
- package/dist/cjs/operations/cap/index.js.map +0 -1
- package/dist/cjs/operations/cap/install.d.ts +0 -53
- package/dist/cjs/operations/cap/install.js +0 -181
- package/dist/cjs/operations/cap/install.js.map +0 -1
- package/dist/cjs/operations/cap/list.d.ts +0 -92
- package/dist/cjs/operations/cap/list.js +0 -230
- package/dist/cjs/operations/cap/list.js.map +0 -1
- package/dist/cjs/operations/cap/package.d.ts +0 -39
- package/dist/cjs/operations/cap/package.js +0 -77
- package/dist/cjs/operations/cap/package.js.map +0 -1
- package/dist/cjs/operations/cap/pull.d.ts +0 -21
- package/dist/cjs/operations/cap/pull.js +0 -77
- package/dist/cjs/operations/cap/pull.js.map +0 -1
- package/dist/cjs/operations/cap/uninstall.d.ts +0 -46
- package/dist/cjs/operations/cap/uninstall.js +0 -87
- package/dist/cjs/operations/cap/uninstall.js.map +0 -1
- package/dist/cjs/operations/cap/validate.d.ts +0 -47
- package/dist/cjs/operations/cap/validate.js +0 -235
- package/dist/cjs/operations/cap/validate.js.map +0 -1
- package/dist/cjs/operations/cip/index.d.ts +0 -35
- package/dist/cjs/operations/cip/index.js +0 -128
- package/dist/cjs/operations/cip/index.js.map +0 -1
- package/dist/cjs/operations/cip/reports.d.ts +0 -2
- package/dist/cjs/operations/cip/reports.js +0 -210
- package/dist/cjs/operations/cip/reports.js.map +0 -1
- package/dist/cjs/operations/cip/types.d.ts +0 -97
- package/dist/cjs/operations/cip/types.js +0 -7
- package/dist/cjs/operations/cip/types.js.map +0 -1
- package/dist/cjs/operations/code/cartridges.d.ts +0 -46
- package/dist/cjs/operations/code/cartridges.js +0 -69
- package/dist/cjs/operations/code/cartridges.js.map +0 -1
- package/dist/cjs/operations/code/deploy.d.ts +0 -121
- package/dist/cjs/operations/code/deploy.js +0 -255
- package/dist/cjs/operations/code/deploy.js.map +0 -1
- package/dist/cjs/operations/code/download.d.ts +0 -77
- package/dist/cjs/operations/code/download.js +0 -300
- package/dist/cjs/operations/code/download.js.map +0 -1
- package/dist/cjs/operations/code/index.d.ts +0 -74
- package/dist/cjs/operations/code/index.js +0 -80
- package/dist/cjs/operations/code/index.js.map +0 -1
- package/dist/cjs/operations/code/upload-files.d.ts +0 -47
- package/dist/cjs/operations/code/upload-files.js +0 -116
- package/dist/cjs/operations/code/upload-files.js.map +0 -1
- package/dist/cjs/operations/code/versions.d.ts +0 -99
- package/dist/cjs/operations/code/versions.js +0 -156
- package/dist/cjs/operations/code/versions.js.map +0 -1
- package/dist/cjs/operations/code/watch.d.ts +0 -58
- package/dist/cjs/operations/code/watch.js +0 -175
- package/dist/cjs/operations/code/watch.js.map +0 -1
- package/dist/cjs/operations/content/asset-query.d.ts +0 -22
- package/dist/cjs/operations/content/asset-query.js +0 -77
- package/dist/cjs/operations/content/asset-query.js.map +0 -1
- package/dist/cjs/operations/content/export.d.ts +0 -57
- package/dist/cjs/operations/content/export.js +0 -221
- package/dist/cjs/operations/content/export.js.map +0 -1
- package/dist/cjs/operations/content/index.d.ts +0 -56
- package/dist/cjs/operations/content/index.js +0 -60
- package/dist/cjs/operations/content/index.js.map +0 -1
- package/dist/cjs/operations/content/library.d.ts +0 -137
- package/dist/cjs/operations/content/library.js +0 -396
- package/dist/cjs/operations/content/library.js.map +0 -1
- package/dist/cjs/operations/content/types.d.ts +0 -144
- package/dist/cjs/operations/content/types.js +0 -7
- package/dist/cjs/operations/content/types.js.map +0 -1
- package/dist/cjs/operations/content/validate.d.ts +0 -64
- package/dist/cjs/operations/content/validate.js +0 -170
- package/dist/cjs/operations/content/validate.js.map +0 -1
- package/dist/cjs/operations/debug/dap-adapter.d.ts +0 -72
- package/dist/cjs/operations/debug/dap-adapter.js +0 -505
- package/dist/cjs/operations/debug/dap-adapter.js.map +0 -1
- package/dist/cjs/operations/debug/debug-session.d.ts +0 -51
- package/dist/cjs/operations/debug/debug-session.js +0 -234
- package/dist/cjs/operations/debug/debug-session.js.map +0 -1
- package/dist/cjs/operations/debug/index.d.ts +0 -20
- package/dist/cjs/operations/debug/index.js +0 -21
- package/dist/cjs/operations/debug/index.js.map +0 -1
- package/dist/cjs/operations/debug/projections.d.ts +0 -72
- package/dist/cjs/operations/debug/projections.js +0 -84
- package/dist/cjs/operations/debug/projections.js.map +0 -1
- package/dist/cjs/operations/debug/resolve-path.d.ts +0 -15
- package/dist/cjs/operations/debug/resolve-path.js +0 -52
- package/dist/cjs/operations/debug/resolve-path.js.map +0 -1
- package/dist/cjs/operations/debug/sdapi-client.d.ts +0 -44
- package/dist/cjs/operations/debug/sdapi-client.js +0 -169
- package/dist/cjs/operations/debug/sdapi-client.js.map +0 -1
- package/dist/cjs/operations/debug/source-mapping.d.ts +0 -13
- package/dist/cjs/operations/debug/source-mapping.js +0 -57
- package/dist/cjs/operations/debug/source-mapping.js.map +0 -1
- package/dist/cjs/operations/debug/types.d.ts +0 -95
- package/dist/cjs/operations/debug/types.js +0 -2
- package/dist/cjs/operations/debug/types.js.map +0 -1
- package/dist/cjs/operations/debug/variable-store.d.ts +0 -35
- package/dist/cjs/operations/debug/variable-store.js +0 -52
- package/dist/cjs/operations/debug/variable-store.js.map +0 -1
- package/dist/cjs/operations/jobs/index.d.ts +0 -66
- package/dist/cjs/operations/jobs/index.js +0 -72
- package/dist/cjs/operations/jobs/index.js.map +0 -1
- package/dist/cjs/operations/jobs/run.d.ts +0 -239
- package/dist/cjs/operations/jobs/run.js +0 -324
- package/dist/cjs/operations/jobs/run.js.map +0 -1
- package/dist/cjs/operations/jobs/site-archive.d.ts +0 -267
- package/dist/cjs/operations/jobs/site-archive.js +0 -423
- package/dist/cjs/operations/jobs/site-archive.js.map +0 -1
- package/dist/cjs/operations/logs/index.d.ts +0 -65
- package/dist/cjs/operations/logs/index.js +0 -73
- package/dist/cjs/operations/logs/index.js.map +0 -1
- package/dist/cjs/operations/logs/list.d.ts +0 -35
- package/dist/cjs/operations/logs/list.js +0 -144
- package/dist/cjs/operations/logs/list.js.map +0 -1
- package/dist/cjs/operations/logs/path-normalizer.d.ts +0 -82
- package/dist/cjs/operations/logs/path-normalizer.js +0 -190
- package/dist/cjs/operations/logs/path-normalizer.js.map +0 -1
- package/dist/cjs/operations/logs/tail.d.ts +0 -92
- package/dist/cjs/operations/logs/tail.js +0 -525
- package/dist/cjs/operations/logs/tail.js.map +0 -1
- package/dist/cjs/operations/logs/types.d.ts +0 -132
- package/dist/cjs/operations/logs/types.js +0 -7
- package/dist/cjs/operations/logs/types.js.map +0 -1
- package/dist/cjs/operations/mrt/access-control.d.ts +0 -192
- package/dist/cjs/operations/mrt/access-control.js +0 -152
- package/dist/cjs/operations/mrt/access-control.js.map +0 -1
- package/dist/cjs/operations/mrt/b2c-config.d.ts +0 -201
- package/dist/cjs/operations/mrt/b2c-config.js +0 -210
- package/dist/cjs/operations/mrt/b2c-config.js.map +0 -1
- package/dist/cjs/operations/mrt/bundle.d.ts +0 -114
- package/dist/cjs/operations/mrt/bundle.js +0 -166
- package/dist/cjs/operations/mrt/bundle.js.map +0 -1
- package/dist/cjs/operations/mrt/cache.d.ts +0 -80
- package/dist/cjs/operations/mrt/cache.js +0 -65
- package/dist/cjs/operations/mrt/cache.js.map +0 -1
- package/dist/cjs/operations/mrt/certificate.d.ts +0 -60
- package/dist/cjs/operations/mrt/certificate.js +0 -76
- package/dist/cjs/operations/mrt/certificate.js.map +0 -1
- package/dist/cjs/operations/mrt/deployment.d.ts +0 -157
- package/dist/cjs/operations/mrt/deployment.js +0 -109
- package/dist/cjs/operations/mrt/deployment.js.map +0 -1
- package/dist/cjs/operations/mrt/env-var.d.ts +0 -176
- package/dist/cjs/operations/mrt/env-var.js +0 -231
- package/dist/cjs/operations/mrt/env-var.js.map +0 -1
- package/dist/cjs/operations/mrt/env.d.ts +0 -491
- package/dist/cjs/operations/mrt/env.js +0 -425
- package/dist/cjs/operations/mrt/env.js.map +0 -1
- package/dist/cjs/operations/mrt/index.d.ts +0 -75
- package/dist/cjs/operations/mrt/index.js +0 -81
- package/dist/cjs/operations/mrt/index.js.map +0 -1
- package/dist/cjs/operations/mrt/member.d.ts +0 -281
- package/dist/cjs/operations/mrt/member.js +0 -244
- package/dist/cjs/operations/mrt/member.js.map +0 -1
- package/dist/cjs/operations/mrt/notification.d.ts +0 -252
- package/dist/cjs/operations/mrt/notification.js +0 -206
- package/dist/cjs/operations/mrt/notification.js.map +0 -1
- package/dist/cjs/operations/mrt/organization-member.d.ts +0 -68
- package/dist/cjs/operations/mrt/organization-member.js +0 -88
- package/dist/cjs/operations/mrt/organization-member.js.map +0 -1
- package/dist/cjs/operations/mrt/organization.d.ts +0 -80
- package/dist/cjs/operations/mrt/organization.js +0 -53
- package/dist/cjs/operations/mrt/organization.js.map +0 -1
- package/dist/cjs/operations/mrt/project.d.ts +0 -261
- package/dist/cjs/operations/mrt/project.js +0 -232
- package/dist/cjs/operations/mrt/project.js.map +0 -1
- package/dist/cjs/operations/mrt/push.d.ts +0 -290
- package/dist/cjs/operations/mrt/push.js +0 -288
- package/dist/cjs/operations/mrt/push.js.map +0 -1
- package/dist/cjs/operations/mrt/redirect.d.ts +0 -337
- package/dist/cjs/operations/mrt/redirect.js +0 -256
- package/dist/cjs/operations/mrt/redirect.js.map +0 -1
- package/dist/cjs/operations/mrt/tail-logs.d.ts +0 -130
- package/dist/cjs/operations/mrt/tail-logs.js +0 -224
- package/dist/cjs/operations/mrt/tail-logs.js.map +0 -1
- package/dist/cjs/operations/mrt/user.d.ts +0 -135
- package/dist/cjs/operations/mrt/user.js +0 -153
- package/dist/cjs/operations/mrt/user.js.map +0 -1
- package/dist/cjs/operations/ods/index.d.ts +0 -10
- package/dist/cjs/operations/ods/index.js +0 -14
- package/dist/cjs/operations/ods/index.js.map +0 -1
- package/dist/cjs/operations/ods/sandbox-lookup.d.ts +0 -63
- package/dist/cjs/operations/ods/sandbox-lookup.js +0 -130
- package/dist/cjs/operations/ods/sandbox-lookup.js.map +0 -1
- package/dist/cjs/operations/ods/wait-for-clone.d.ts +0 -46
- package/dist/cjs/operations/ods/wait-for-clone.js +0 -100
- package/dist/cjs/operations/ods/wait-for-clone.js.map +0 -1
- package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +0 -64
- package/dist/cjs/operations/ods/wait-for-sandbox.js +0 -114
- package/dist/cjs/operations/ods/wait-for-sandbox.js.map +0 -1
- package/dist/cjs/operations/orgs/index.d.ts +0 -74
- package/dist/cjs/operations/orgs/index.js +0 -33
- package/dist/cjs/operations/orgs/index.js.map +0 -1
- package/dist/cjs/operations/roles/index.d.ts +0 -43
- package/dist/cjs/operations/roles/index.js +0 -48
- package/dist/cjs/operations/roles/index.js.map +0 -1
- package/dist/cjs/operations/sites/cartridges.d.ts +0 -114
- package/dist/cjs/operations/sites/cartridges.js +0 -378
- package/dist/cjs/operations/sites/cartridges.js.map +0 -1
- package/dist/cjs/operations/sites/index.d.ts +0 -46
- package/dist/cjs/operations/sites/index.js +0 -51
- package/dist/cjs/operations/sites/index.js.map +0 -1
- package/dist/cjs/operations/users/index.d.ts +0 -153
- package/dist/cjs/operations/users/index.js +0 -139
- package/dist/cjs/operations/users/index.js.map +0 -1
- package/dist/cjs/operations/util/zip.d.ts +0 -5
- package/dist/cjs/operations/util/zip.js +0 -25
- package/dist/cjs/operations/util/zip.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/plugins/discovery.d.ts +0 -46
- package/dist/cjs/plugins/discovery.js +0 -122
- package/dist/cjs/plugins/discovery.js.map +0 -1
- package/dist/cjs/plugins/index.d.ts +0 -26
- package/dist/cjs/plugins/index.js +0 -32
- package/dist/cjs/plugins/index.js.map +0 -1
- package/dist/cjs/plugins/loader.d.ts +0 -34
- package/dist/cjs/plugins/loader.js +0 -59
- package/dist/cjs/plugins/loader.js.map +0 -1
- package/dist/cjs/plugins/manager.d.ts +0 -70
- package/dist/cjs/plugins/manager.js +0 -173
- package/dist/cjs/plugins/manager.js.map +0 -1
- package/dist/cjs/safety/index.d.ts +0 -12
- package/dist/cjs/safety/index.js +0 -11
- package/dist/cjs/safety/index.js.map +0 -1
- package/dist/cjs/safety/safety-guard.d.ts +0 -92
- package/dist/cjs/safety/safety-guard.js +0 -270
- package/dist/cjs/safety/safety-guard.js.map +0 -1
- package/dist/cjs/safety/safety-middleware.d.ts +0 -130
- package/dist/cjs/safety/safety-middleware.js +0 -248
- package/dist/cjs/safety/safety-middleware.js.map +0 -1
- package/dist/cjs/safety/types.d.ts +0 -81
- package/dist/cjs/safety/types.js +0 -16
- package/dist/cjs/safety/types.js.map +0 -1
- package/dist/cjs/safety/with-confirmation.d.ts +0 -58
- package/dist/cjs/safety/with-confirmation.js +0 -67
- package/dist/cjs/safety/with-confirmation.js.map +0 -1
- package/dist/cjs/scaffold/engine.d.ts +0 -68
- package/dist/cjs/scaffold/engine.js +0 -149
- package/dist/cjs/scaffold/engine.js.map +0 -1
- package/dist/cjs/scaffold/executor.d.ts +0 -36
- package/dist/cjs/scaffold/executor.js +0 -293
- package/dist/cjs/scaffold/executor.js.map +0 -1
- package/dist/cjs/scaffold/index.d.ts +0 -76
- package/dist/cjs/scaffold/index.js +0 -23
- package/dist/cjs/scaffold/index.js.map +0 -1
- package/dist/cjs/scaffold/merge.d.ts +0 -63
- package/dist/cjs/scaffold/merge.js +0 -192
- package/dist/cjs/scaffold/merge.js.map +0 -1
- package/dist/cjs/scaffold/parameter-resolver.d.ts +0 -86
- package/dist/cjs/scaffold/parameter-resolver.js +0 -191
- package/dist/cjs/scaffold/parameter-resolver.js.map +0 -1
- package/dist/cjs/scaffold/registry.d.ts +0 -60
- package/dist/cjs/scaffold/registry.js +0 -225
- package/dist/cjs/scaffold/registry.js.map +0 -1
- package/dist/cjs/scaffold/sources.d.ts +0 -83
- package/dist/cjs/scaffold/sources.js +0 -236
- package/dist/cjs/scaffold/sources.js.map +0 -1
- package/dist/cjs/scaffold/types.d.ts +0 -282
- package/dist/cjs/scaffold/types.js +0 -14
- package/dist/cjs/scaffold/types.js.map +0 -1
- package/dist/cjs/scaffold/validation.d.ts +0 -81
- package/dist/cjs/scaffold/validation.js +0 -250
- package/dist/cjs/scaffold/validation.js.map +0 -1
- package/dist/cjs/scaffold/validators.d.ts +0 -33
- package/dist/cjs/scaffold/validators.js +0 -340
- package/dist/cjs/scaffold/validators.js.map +0 -1
- package/dist/cjs/schemas/collapse.d.ts +0 -150
- package/dist/cjs/schemas/collapse.js +0 -180
- package/dist/cjs/schemas/collapse.js.map +0 -1
- package/dist/cjs/schemas/index.d.ts +0 -58
- package/dist/cjs/schemas/index.js +0 -65
- package/dist/cjs/schemas/index.js.map +0 -1
- package/dist/cjs/schemas/security-schemes.d.ts +0 -26
- package/dist/cjs/schemas/security-schemes.js +0 -44
- package/dist/cjs/schemas/security-schemes.js.map +0 -1
- package/dist/cjs/skills/agents.d.ts +0 -42
- package/dist/cjs/skills/agents.js +0 -200
- package/dist/cjs/skills/agents.js.map +0 -1
- package/dist/cjs/skills/github.d.ts +0 -31
- package/dist/cjs/skills/github.js +0 -450
- package/dist/cjs/skills/github.js.map +0 -1
- package/dist/cjs/skills/index.d.ts +0 -43
- package/dist/cjs/skills/index.js +0 -16
- package/dist/cjs/skills/index.js.map +0 -1
- package/dist/cjs/skills/installer.d.ts +0 -35
- package/dist/cjs/skills/installer.js +0 -182
- package/dist/cjs/skills/installer.js.map +0 -1
- package/dist/cjs/skills/parser.d.ts +0 -39
- package/dist/cjs/skills/parser.js +0 -126
- package/dist/cjs/skills/parser.js.map +0 -1
- package/dist/cjs/skills/sources.d.ts +0 -4
- package/dist/cjs/skills/sources.js +0 -52
- package/dist/cjs/skills/sources.js.map +0 -1
- package/dist/cjs/skills/types.d.ts +0 -153
- package/dist/cjs/skills/types.js +0 -7
- package/dist/cjs/skills/types.js.map +0 -1
- package/dist/cjs/slas/index.d.ts +0 -12
- package/dist/cjs/slas/index.js +0 -8
- package/dist/cjs/slas/index.js.map +0 -1
- package/dist/cjs/slas/pkce.d.ts +0 -13
- package/dist/cjs/slas/pkce.js +0 -35
- package/dist/cjs/slas/pkce.js.map +0 -1
- package/dist/cjs/slas/token.d.ts +0 -24
- package/dist/cjs/slas/token.js +0 -261
- package/dist/cjs/slas/token.js.map +0 -1
- package/dist/cjs/slas/types.d.ts +0 -43
- package/dist/cjs/slas/types.js +0 -7
- package/dist/cjs/slas/types.js.map +0 -1
- package/dist/cjs/telemetry/index.d.ts +0 -34
- package/dist/cjs/telemetry/index.js +0 -32
- package/dist/cjs/telemetry/index.js.map +0 -1
- package/dist/cjs/telemetry/telemetry.d.ts +0 -88
- package/dist/cjs/telemetry/telemetry.js +0 -298
- package/dist/cjs/telemetry/telemetry.js.map +0 -1
- package/dist/cjs/telemetry/types.d.ts +0 -62
- package/dist/cjs/telemetry/types.js +0 -7
- package/dist/cjs/telemetry/types.js.map +0 -1
- package/dist/cjs/test-utils/config-isolation.d.ts +0 -2
- package/dist/cjs/test-utils/config-isolation.js +0 -48
- package/dist/cjs/test-utils/config-isolation.js.map +0 -1
- package/dist/cjs/test-utils/index.d.ts +0 -1
- package/dist/cjs/test-utils/index.js +0 -7
- package/dist/cjs/test-utils/index.js.map +0 -1
- package/dist/cjs/ux/confirm.d.ts +0 -14
- package/dist/cjs/ux/confirm.js +0 -36
- package/dist/cjs/ux/confirm.js.map +0 -1
- package/dist/cjs/ux/index.d.ts +0 -1
- package/dist/cjs/ux/index.js +0 -7
- package/dist/cjs/ux/index.js.map +0 -1
- package/dist/cjs/version.d.ts +0 -14
- package/dist/cjs/version.js +0 -29
- package/dist/cjs/version.js.map +0 -1
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
-
* SPDX-License-Identifier: Apache-2
|
|
4
|
-
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Flags } from '@oclif/core';
|
|
7
|
-
import { BaseCommand } from './base-command.js';
|
|
8
|
-
import { loadConfig, extractOAuthFlags, ALL_AUTH_METHODS } from './config.js';
|
|
9
|
-
import { OAuthStrategy } from '../auth/oauth.js';
|
|
10
|
-
import { ImplicitOAuthStrategy } from '../auth/oauth-implicit.js';
|
|
11
|
-
import { StatefulOAuthStrategy } from '../auth/stateful-oauth-strategy.js';
|
|
12
|
-
import { JwtOAuthStrategy } from '../auth/oauth-jwt.js';
|
|
13
|
-
import { getStoredSession, isStatefulTokenValid } from '../auth/stateful-store.js';
|
|
14
|
-
import { t } from '../i18n/index.js';
|
|
15
|
-
import { DEFAULT_ACCOUNT_MANAGER_HOST } from '../defaults.js';
|
|
16
|
-
import { normalizeTenantId, toOrganizationId } from '../clients/custom-apis.js';
|
|
17
|
-
/**
|
|
18
|
-
* Default OAuth authentication methods array used by getOAuthStrategy.
|
|
19
|
-
* Extracted from getOAuthStrategy() to ensure getDefaultAuthMethods() returns the same array.
|
|
20
|
-
*
|
|
21
|
-
* Priority order:
|
|
22
|
-
* 1. client-credentials (requires clientId + clientSecret)
|
|
23
|
-
* 2. jwt (requires clientId + jwtCertPath + jwtKeyPath)
|
|
24
|
-
* 3. implicit (requires clientId, browser-based)
|
|
25
|
-
*/
|
|
26
|
-
const DEFAULT_OAUTH_AUTH_METHODS = ['client-credentials', 'jwt', 'implicit'];
|
|
27
|
-
/**
|
|
28
|
-
* Base command for operations requiring OAuth authentication.
|
|
29
|
-
* Use this for platform-level operations like ODS, APIs.
|
|
30
|
-
*
|
|
31
|
-
* Environment variables:
|
|
32
|
-
* - SFCC_CLIENT_ID: OAuth client ID
|
|
33
|
-
* - SFCC_CLIENT_SECRET: OAuth client secret
|
|
34
|
-
*
|
|
35
|
-
* For B2C instance specific operations, use InstanceCommand instead.
|
|
36
|
-
*/
|
|
37
|
-
export class OAuthCommand extends BaseCommand {
|
|
38
|
-
_rawArgv;
|
|
39
|
-
constructor(argv, config) {
|
|
40
|
-
super(argv, config);
|
|
41
|
-
this._rawArgv = [...argv];
|
|
42
|
-
}
|
|
43
|
-
static baseFlags = {
|
|
44
|
-
...BaseCommand.baseFlags,
|
|
45
|
-
'client-id': Flags.string({
|
|
46
|
-
description: 'Client ID for OAuth',
|
|
47
|
-
env: 'SFCC_CLIENT_ID',
|
|
48
|
-
default: async () => process.env.SFCC_OAUTH_CLIENT_ID || undefined,
|
|
49
|
-
helpGroup: 'AUTH',
|
|
50
|
-
}),
|
|
51
|
-
'client-secret': Flags.string({
|
|
52
|
-
description: 'Client Secret for OAuth',
|
|
53
|
-
env: 'SFCC_CLIENT_SECRET',
|
|
54
|
-
default: async () => process.env.SFCC_OAUTH_CLIENT_SECRET || undefined,
|
|
55
|
-
helpGroup: 'AUTH',
|
|
56
|
-
}),
|
|
57
|
-
'auth-scope': Flags.string({
|
|
58
|
-
description: 'OAuth scopes to request (comma-separated)',
|
|
59
|
-
env: 'SFCC_OAUTH_SCOPES',
|
|
60
|
-
multiple: true,
|
|
61
|
-
multipleNonGreedy: true,
|
|
62
|
-
delimiter: ',',
|
|
63
|
-
helpGroup: 'AUTH',
|
|
64
|
-
}),
|
|
65
|
-
'short-code': Flags.string({
|
|
66
|
-
description: 'SCAPI short code',
|
|
67
|
-
env: 'SFCC_SHORTCODE',
|
|
68
|
-
helpGroup: 'AUTH',
|
|
69
|
-
}),
|
|
70
|
-
'tenant-id': Flags.string({
|
|
71
|
-
description: 'Organization/tenant ID',
|
|
72
|
-
env: 'SFCC_TENANT_ID',
|
|
73
|
-
helpGroup: 'AUTH',
|
|
74
|
-
aliases: ['tenant'],
|
|
75
|
-
}),
|
|
76
|
-
'auth-methods': Flags.string({
|
|
77
|
-
description: 'Allowed auth methods in priority order (comma-separated)',
|
|
78
|
-
env: 'SFCC_AUTH_METHODS',
|
|
79
|
-
multiple: true,
|
|
80
|
-
multipleNonGreedy: true,
|
|
81
|
-
delimiter: ',',
|
|
82
|
-
options: ALL_AUTH_METHODS,
|
|
83
|
-
helpGroup: 'AUTH',
|
|
84
|
-
exclusive: ['user-auth'],
|
|
85
|
-
}),
|
|
86
|
-
'user-auth': Flags.boolean({
|
|
87
|
-
description: 'Use browser-based user authentication (implicit OAuth flow)',
|
|
88
|
-
default: false,
|
|
89
|
-
exclusive: ['auth-methods'],
|
|
90
|
-
helpGroup: 'AUTH',
|
|
91
|
-
}),
|
|
92
|
-
'account-manager-host': Flags.string({
|
|
93
|
-
description: `Account Manager hostname for OAuth (default: ${DEFAULT_ACCOUNT_MANAGER_HOST})`,
|
|
94
|
-
env: 'SFCC_ACCOUNT_MANAGER_HOST',
|
|
95
|
-
default: async () => process.env.SFCC_LOGIN_URL || undefined,
|
|
96
|
-
helpGroup: 'AUTH',
|
|
97
|
-
}),
|
|
98
|
-
'jwt-cert': Flags.string({
|
|
99
|
-
description: 'Path to JWT certificate file (cert.pem) for JWT Bearer authentication',
|
|
100
|
-
env: 'SFCC_JWT_CERT',
|
|
101
|
-
helpGroup: 'AUTH',
|
|
102
|
-
}),
|
|
103
|
-
'jwt-key': Flags.string({
|
|
104
|
-
description: 'Path to JWT private key file (key.pem) for JWT Bearer authentication',
|
|
105
|
-
env: 'SFCC_JWT_KEY',
|
|
106
|
-
helpGroup: 'AUTH',
|
|
107
|
-
}),
|
|
108
|
-
'jwt-passphrase': Flags.string({
|
|
109
|
-
description: 'Passphrase for encrypted JWT private key',
|
|
110
|
-
env: 'SFCC_JWT_PASSPHRASE',
|
|
111
|
-
helpGroup: 'AUTH',
|
|
112
|
-
}),
|
|
113
|
-
};
|
|
114
|
-
async loadConfiguration() {
|
|
115
|
-
return loadConfig(extractOAuthFlags(this.flags), this.getBaseConfigOptions());
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Gets the configured Account Manager host.
|
|
119
|
-
*/
|
|
120
|
-
get accountManagerHost() {
|
|
121
|
-
return this.resolvedConfig.values.accountManagerHost ?? DEFAULT_ACCOUNT_MANAGER_HOST;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Gets the default authentication methods in priority order.
|
|
125
|
-
* This method is used by getOAuthStrategy() when no auth methods are specified in config.
|
|
126
|
-
* Subclasses can override this to change the default priority — for example,
|
|
127
|
-
* commands that talk to endpoints requiring a real user identity should
|
|
128
|
-
* return `['implicit']` so that user-auth is preferred when the user has
|
|
129
|
-
* not explicitly chosen an auth method.
|
|
130
|
-
*
|
|
131
|
-
* Explicit user input via `--auth-methods`, `--client-secret`, `--jwt-cert`,
|
|
132
|
-
* etc. always wins over the default; this method only changes what happens
|
|
133
|
-
* when the user has not specified anything.
|
|
134
|
-
*
|
|
135
|
-
* @returns Array of auth methods in priority order (first is highest priority)
|
|
136
|
-
*/
|
|
137
|
-
getDefaultAuthMethods() {
|
|
138
|
-
return DEFAULT_OAUTH_AUTH_METHODS;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Returns a default client ID for implicit OAuth flows when no client ID is configured.
|
|
142
|
-
* Returns undefined by default. Subclasses (AmCommand, OdsCommand, etc.) override this
|
|
143
|
-
* to return DEFAULT_PUBLIC_CLIENT_ID for platform-level commands that support public client tokens.
|
|
144
|
-
*/
|
|
145
|
-
getDefaultClientId() {
|
|
146
|
-
return undefined;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Gets an OAuth auth strategy based on allowed auth methods and available credentials.
|
|
150
|
-
*
|
|
151
|
-
* Iterates through allowed methods (in priority order) and returns the first
|
|
152
|
-
* strategy for which the required credentials are available.
|
|
153
|
-
*
|
|
154
|
-
* For the implicit flow, falls back to getDefaultClientId() when no client ID
|
|
155
|
-
* is explicitly configured.
|
|
156
|
-
*
|
|
157
|
-
* @throws Error if no allowed method has the required credentials configured
|
|
158
|
-
*/
|
|
159
|
-
getOAuthStrategy() {
|
|
160
|
-
const config = this.resolvedConfig.values;
|
|
161
|
-
const accountManagerHost = this.accountManagerHost;
|
|
162
|
-
const requiredScopes = config.scopes ?? [];
|
|
163
|
-
const statefulSession = getStoredSession();
|
|
164
|
-
const explicitAuthFlags = this.detectExplicitAuthFlags();
|
|
165
|
-
const configuredClientId = config.clientId;
|
|
166
|
-
const validSession = statefulSession !== null && isStatefulTokenValid(statefulSession, requiredScopes, undefined, configuredClientId);
|
|
167
|
-
// Use stateful auth only when the session is valid and no explicit auth flags override it
|
|
168
|
-
if (validSession && explicitAuthFlags.length === 0) {
|
|
169
|
-
this.logger.debug('[Auth] Using stateful session');
|
|
170
|
-
return new StatefulOAuthStrategy(statefulSession, {
|
|
171
|
-
accountManagerHost,
|
|
172
|
-
scopes: requiredScopes,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
// Warn when an invalid stored session exists or explicit auth flags override a valid one
|
|
176
|
-
if (statefulSession) {
|
|
177
|
-
if (validSession && explicitAuthFlags.length > 0) {
|
|
178
|
-
this.warn(t('warning.statefulTokenOverridden', '[StatefulAuth] Valid token found in stored session. ' +
|
|
179
|
-
`However, switching to stateless auth due to presence of ${explicitAuthFlags.join(', ')}. ` +
|
|
180
|
-
'Remove these flags to use the stored session.'));
|
|
181
|
-
}
|
|
182
|
-
else if (!validSession) {
|
|
183
|
-
const renewable = statefulSession.renewBase !== null && statefulSession.renewBase !== undefined;
|
|
184
|
-
this.warn(t(renewable ? 'warning.statefulTokenExpired' : 'warning.statefulTokenExpiredNoRenew', '[StatefulAuth] [sfcc-ci compatibility] Stored token is expired or invalid for the given request. ' +
|
|
185
|
-
(renewable
|
|
186
|
-
? 'Run `b2c auth client renew` to refresh it. '
|
|
187
|
-
: 'Run `b2c auth client` or `b2c auth login` to re-authenticate. ') +
|
|
188
|
-
'Falling back to stateless auth.'));
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
// Fall back to stateless auth
|
|
192
|
-
const allowedMethods = config.authMethods || this.getDefaultAuthMethods();
|
|
193
|
-
const defaultClientId = this.getDefaultClientId();
|
|
194
|
-
for (const method of allowedMethods) {
|
|
195
|
-
switch (method) {
|
|
196
|
-
case 'client-credentials':
|
|
197
|
-
if (config.clientId && config.clientSecret) {
|
|
198
|
-
return new OAuthStrategy({
|
|
199
|
-
clientId: config.clientId,
|
|
200
|
-
clientSecret: config.clientSecret,
|
|
201
|
-
scopes: config.scopes,
|
|
202
|
-
accountManagerHost,
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
break;
|
|
206
|
-
case 'jwt':
|
|
207
|
-
// JWT Bearer authentication - requires client ID and cert/key pair
|
|
208
|
-
if (config.clientId && config.jwtCertPath && config.jwtKeyPath) {
|
|
209
|
-
try {
|
|
210
|
-
this.logger.debug('[Auth] Using JWT Bearer authentication');
|
|
211
|
-
return new JwtOAuthStrategy({
|
|
212
|
-
clientId: config.clientId,
|
|
213
|
-
certPath: config.jwtCertPath,
|
|
214
|
-
keyPath: config.jwtKeyPath,
|
|
215
|
-
passphrase: config.jwtPassphrase,
|
|
216
|
-
accountManagerHost,
|
|
217
|
-
scopes: config.scopes,
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
// JWT config is present but invalid (corrupted files, wrong passphrase, etc.)
|
|
222
|
-
// Log warning and fall through to next auth method
|
|
223
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
224
|
-
this.logger.warn(`[Auth] JWT authentication configured but invalid: ${message}. Trying next auth method.`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
break;
|
|
228
|
-
case 'implicit': {
|
|
229
|
-
const effectiveClientId = config.clientId ?? defaultClientId;
|
|
230
|
-
if (effectiveClientId) {
|
|
231
|
-
if (!config.clientId && defaultClientId) {
|
|
232
|
-
this.logger.debug('Using default B2C CLI public client for authentication');
|
|
233
|
-
}
|
|
234
|
-
return new ImplicitOAuthStrategy({
|
|
235
|
-
clientId: effectiveClientId,
|
|
236
|
-
scopes: config.scopes,
|
|
237
|
-
accountManagerHost,
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
// 'basic' and 'api-key' are not applicable for OAuth strategies
|
|
243
|
-
// They would be handled by different command bases (e.g., InstanceCommand, MRTCommand)
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
// Build helpful error message based on what methods were allowed
|
|
247
|
-
const methodsStr = allowedMethods.join(', ');
|
|
248
|
-
throw new Error(t('error.noValidAuthMethod', `No valid auth method available. Allowed methods: [${methodsStr}]. ` +
|
|
249
|
-
`Ensure required credentials are configured for at least one method.`));
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Detects explicit CLI flags that indicate intent to use stateless auth.
|
|
253
|
-
* Only flags that mandate a specific auth flow are considered:
|
|
254
|
-
* - --client-secret: indicates client-credentials flow
|
|
255
|
-
* - --jwt-cert / --jwt-key: indicates JWT Bearer flow
|
|
256
|
-
* - --user-auth: indicates browser-based implicit flow
|
|
257
|
-
* - --auth-methods: explicit auth method selection
|
|
258
|
-
*
|
|
259
|
-
* Contextual flags (--client-id, --auth-scope, --short-code, --tenant-id,
|
|
260
|
-
* --account-manager-host) are NOT included because they are handled by
|
|
261
|
-
* isStatefulTokenValid (clientId/scope matching) or don't affect auth flow.
|
|
262
|
-
*/
|
|
263
|
-
detectExplicitAuthFlags() {
|
|
264
|
-
const rawArgs = this._rawArgv;
|
|
265
|
-
const statelessFlags = ['--client-secret', '--jwt-cert', '--jwt-key', '--user-auth', '--auth-methods'];
|
|
266
|
-
return statelessFlags.filter((flag) => rawArgs.some((arg) => arg === flag || arg.startsWith(`${flag}=`)));
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Check if OAuth credentials are available.
|
|
270
|
-
* Returns true if clientId is configured (with or without clientSecret),
|
|
271
|
-
* or if a default client ID is available for implicit flows.
|
|
272
|
-
*/
|
|
273
|
-
hasOAuthCredentials() {
|
|
274
|
-
return (this.resolvedConfig.hasOAuthConfig() || this.getDefaultClientId() !== undefined || getStoredSession() !== null);
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Check if full OAuth credentials (client credentials flow) are available.
|
|
278
|
-
* Returns true only if both clientId and clientSecret are configured.
|
|
279
|
-
*/
|
|
280
|
-
hasFullOAuthCredentials() {
|
|
281
|
-
const config = this.resolvedConfig.values;
|
|
282
|
-
return Boolean(config.clientId && config.clientSecret);
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Validates that OAuth credentials are configured, errors if not.
|
|
286
|
-
* Only clientId is required (implicit flow can be used without clientSecret).
|
|
287
|
-
*/
|
|
288
|
-
requireOAuthCredentials() {
|
|
289
|
-
if (!this.hasOAuthCredentials()) {
|
|
290
|
-
this.error(t('error.oauthClientIdRequired', 'OAuth client ID required. Provide --client-id or set SFCC_CLIENT_ID.'));
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Get the tenant ID from resolved config, throwing if not available.
|
|
295
|
-
* @throws Error if tenant ID is not provided through any source
|
|
296
|
-
*/
|
|
297
|
-
requireTenantId() {
|
|
298
|
-
const tenantId = this.resolvedConfig.values.tenantId;
|
|
299
|
-
if (!tenantId) {
|
|
300
|
-
this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.'));
|
|
301
|
-
}
|
|
302
|
-
return normalizeTenantId(tenantId);
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Organization ID (`f_ecom_*`) for API path parameters from the resolved tenant.
|
|
306
|
-
*/
|
|
307
|
-
getOrganizationId() {
|
|
308
|
-
return toOrganizationId(this.requireTenantId());
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
//# sourceMappingURL=oauth-command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-command.js","sourceRoot":"","sources":["../../../src/cli/oauth-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
import { OAuthCommand } from './oauth-command.js';
|
|
3
|
-
import type { ResolvedB2CConfig } from '../config/index.js';
|
|
4
|
-
import { type OdsClient } from '../clients/ods.js';
|
|
5
|
-
/**
|
|
6
|
-
* Base command for ODS (On-Demand Sandbox) operations.
|
|
7
|
-
* Use this for commands that interact with the Developer Sandbox API
|
|
8
|
-
* (sandbox creation, deletion, start/stop, realm info, etc.)
|
|
9
|
-
*
|
|
10
|
-
* Environment variables:
|
|
11
|
-
* - SFCC_SANDBOX_API_HOST: ODS API hostname
|
|
12
|
-
* - Plus all from OAuthCommand (SFCC_CLIENT_ID, SFCC_CLIENT_SECRET)
|
|
13
|
-
*
|
|
14
|
-
* Provides:
|
|
15
|
-
* - Host configuration flag with env var support
|
|
16
|
-
* - Typed ODS API client via `this.odsClient`
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* export default class MySandboxCommand extends OdsCommand<typeof MySandboxCommand> {
|
|
20
|
-
* async run(): Promise<void> {
|
|
21
|
-
* const { data } = await this.odsClient.GET('/me', {});
|
|
22
|
-
* console.log('User:', data?.data?.user?.name);
|
|
23
|
-
* }
|
|
24
|
-
* }
|
|
25
|
-
*/
|
|
26
|
-
export declare abstract class OdsCommand<T extends typeof Command> extends OAuthCommand<T> {
|
|
27
|
-
protected getDefaultClientId(): string;
|
|
28
|
-
static baseFlags: {
|
|
29
|
-
'sandbox-api-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
|
-
'client-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
-
'client-secret': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
-
'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
-
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
-
'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
-
'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
-
'user-auth': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
37
|
-
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
38
|
-
'jwt-cert': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
39
|
-
'jwt-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
40
|
-
'jwt-passphrase': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
41
|
-
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
42
|
-
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
43
|
-
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
44
|
-
jsonl: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
45
|
-
lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
46
|
-
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
47
|
-
instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
48
|
-
'project-directory': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
49
|
-
'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
50
|
-
'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
51
|
-
'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
52
|
-
};
|
|
53
|
-
protected loadConfiguration(): Promise<ResolvedB2CConfig>;
|
|
54
|
-
private _odsClient?;
|
|
55
|
-
/**
|
|
56
|
-
* Gets the ODS API client for this command.
|
|
57
|
-
*
|
|
58
|
-
* The client is lazily created using the configured host and OAuth credentials.
|
|
59
|
-
* It provides typed methods for all ODS API operations.
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* // Get user info
|
|
63
|
-
* const { data } = await this.odsClient.GET('/me', {});
|
|
64
|
-
*
|
|
65
|
-
* // List sandboxes
|
|
66
|
-
* const { data } = await this.odsClient.GET('/sandboxes', {});
|
|
67
|
-
*
|
|
68
|
-
* // Create a sandbox operation
|
|
69
|
-
* const { data } = await this.odsClient.POST('/sandboxes/{sandboxId}/operations', {
|
|
70
|
-
* params: { path: { sandboxId: 'uuid' } },
|
|
71
|
-
* body: { operation: 'start' }
|
|
72
|
-
* });
|
|
73
|
-
*/
|
|
74
|
-
protected get odsClient(): OdsClient;
|
|
75
|
-
/**
|
|
76
|
-
* Gets the configured ODS API host.
|
|
77
|
-
*/
|
|
78
|
-
protected get odsHost(): string;
|
|
79
|
-
/**
|
|
80
|
-
* Resolves a sandbox identifier to a UUID.
|
|
81
|
-
*
|
|
82
|
-
* Supports both UUID format and friendly format (realm-instance, e.g., "abcd-123" or "abcd_123").
|
|
83
|
-
* If given a UUID, returns it directly. If given a friendly format, queries the API to find
|
|
84
|
-
* the matching sandbox and logs the resolution.
|
|
85
|
-
*
|
|
86
|
-
* @param identifier - Sandbox identifier (UUID or friendly format)
|
|
87
|
-
* @returns The sandbox UUID
|
|
88
|
-
* @throws Error if the sandbox cannot be found (friendly ID not resolved)
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```typescript
|
|
92
|
-
* // In a command's run() method:
|
|
93
|
-
* const sandboxId = await this.resolveSandboxId(this.args.sandboxId);
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
protected resolveSandboxId(identifier: string): Promise<string>;
|
|
97
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
-
* SPDX-License-Identifier: Apache-2
|
|
4
|
-
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Flags } from '@oclif/core';
|
|
7
|
-
import { OAuthCommand } from './oauth-command.js';
|
|
8
|
-
import { loadConfig, extractOdsFlags } from './config.js';
|
|
9
|
-
import { createOdsClient } from '../clients/ods.js';
|
|
10
|
-
import { DEFAULT_ODS_HOST, getDefaultPublicClientId } from '../defaults.js';
|
|
11
|
-
import { isUuid, parseFriendlySandboxId, SandboxNotFoundError } from '../operations/ods/sandbox-lookup.js';
|
|
12
|
-
/**
|
|
13
|
-
* Base command for ODS (On-Demand Sandbox) operations.
|
|
14
|
-
* Use this for commands that interact with the Developer Sandbox API
|
|
15
|
-
* (sandbox creation, deletion, start/stop, realm info, etc.)
|
|
16
|
-
*
|
|
17
|
-
* Environment variables:
|
|
18
|
-
* - SFCC_SANDBOX_API_HOST: ODS API hostname
|
|
19
|
-
* - Plus all from OAuthCommand (SFCC_CLIENT_ID, SFCC_CLIENT_SECRET)
|
|
20
|
-
*
|
|
21
|
-
* Provides:
|
|
22
|
-
* - Host configuration flag with env var support
|
|
23
|
-
* - Typed ODS API client via `this.odsClient`
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* export default class MySandboxCommand extends OdsCommand<typeof MySandboxCommand> {
|
|
27
|
-
* async run(): Promise<void> {
|
|
28
|
-
* const { data } = await this.odsClient.GET('/me', {});
|
|
29
|
-
* console.log('User:', data?.data?.user?.name);
|
|
30
|
-
* }
|
|
31
|
-
* }
|
|
32
|
-
*/
|
|
33
|
-
export class OdsCommand extends OAuthCommand {
|
|
34
|
-
getDefaultClientId() {
|
|
35
|
-
return getDefaultPublicClientId(this.accountManagerHost);
|
|
36
|
-
}
|
|
37
|
-
static baseFlags = {
|
|
38
|
-
...OAuthCommand.baseFlags,
|
|
39
|
-
'sandbox-api-host': Flags.string({
|
|
40
|
-
description: `ODS API hostname (default: ${DEFAULT_ODS_HOST})`,
|
|
41
|
-
env: 'SFCC_SANDBOX_API_HOST',
|
|
42
|
-
// helpGroup: 'ODS',
|
|
43
|
-
}),
|
|
44
|
-
};
|
|
45
|
-
async loadConfiguration() {
|
|
46
|
-
return loadConfig(extractOdsFlags(this.flags), this.getBaseConfigOptions());
|
|
47
|
-
}
|
|
48
|
-
_odsClient;
|
|
49
|
-
/**
|
|
50
|
-
* Gets the ODS API client for this command.
|
|
51
|
-
*
|
|
52
|
-
* The client is lazily created using the configured host and OAuth credentials.
|
|
53
|
-
* It provides typed methods for all ODS API operations.
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* // Get user info
|
|
57
|
-
* const { data } = await this.odsClient.GET('/me', {});
|
|
58
|
-
*
|
|
59
|
-
* // List sandboxes
|
|
60
|
-
* const { data } = await this.odsClient.GET('/sandboxes', {});
|
|
61
|
-
*
|
|
62
|
-
* // Create a sandbox operation
|
|
63
|
-
* const { data } = await this.odsClient.POST('/sandboxes/{sandboxId}/operations', {
|
|
64
|
-
* params: { path: { sandboxId: 'uuid' } },
|
|
65
|
-
* body: { operation: 'start' }
|
|
66
|
-
* });
|
|
67
|
-
*/
|
|
68
|
-
get odsClient() {
|
|
69
|
-
if (!this._odsClient) {
|
|
70
|
-
this.requireOAuthCredentials();
|
|
71
|
-
const authStrategy = this.getOAuthStrategy();
|
|
72
|
-
this._odsClient = createOdsClient({
|
|
73
|
-
host: this.odsHost,
|
|
74
|
-
extraParams: this.getExtraParams(),
|
|
75
|
-
}, authStrategy);
|
|
76
|
-
}
|
|
77
|
-
return this._odsClient;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Gets the configured ODS API host.
|
|
81
|
-
*/
|
|
82
|
-
get odsHost() {
|
|
83
|
-
return this.resolvedConfig?.values.sandboxApiHost ?? DEFAULT_ODS_HOST;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Resolves a sandbox identifier to a UUID.
|
|
87
|
-
*
|
|
88
|
-
* Supports both UUID format and friendly format (realm-instance, e.g., "abcd-123" or "abcd_123").
|
|
89
|
-
* If given a UUID, returns it directly. If given a friendly format, queries the API to find
|
|
90
|
-
* the matching sandbox and logs the resolution.
|
|
91
|
-
*
|
|
92
|
-
* @param identifier - Sandbox identifier (UUID or friendly format)
|
|
93
|
-
* @returns The sandbox UUID
|
|
94
|
-
* @throws Error if the sandbox cannot be found (friendly ID not resolved)
|
|
95
|
-
*
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* // In a command's run() method:
|
|
99
|
-
* const sandboxId = await this.resolveSandboxId(this.args.sandboxId);
|
|
100
|
-
* ```
|
|
101
|
-
*/
|
|
102
|
-
async resolveSandboxId(identifier) {
|
|
103
|
-
// If already a UUID, return directly
|
|
104
|
-
if (isUuid(identifier)) {
|
|
105
|
-
return identifier;
|
|
106
|
-
}
|
|
107
|
-
// Try to parse as friendly ID
|
|
108
|
-
const parsed = parseFriendlySandboxId(identifier);
|
|
109
|
-
if (!parsed) {
|
|
110
|
-
// Not a UUID and not a friendly ID - pass through as-is
|
|
111
|
-
// (let the API return an appropriate error)
|
|
112
|
-
return identifier;
|
|
113
|
-
}
|
|
114
|
-
// Log that we're looking up the sandbox
|
|
115
|
-
this.log(`Looking up sandbox ${identifier}...`);
|
|
116
|
-
// Query sandboxes filtered by realm
|
|
117
|
-
const { data, error } = await this.odsClient.GET('/sandboxes', {
|
|
118
|
-
params: {
|
|
119
|
-
query: {
|
|
120
|
-
filter_params: `realm=${parsed.realm}`,
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
if (error || !data?.data) {
|
|
125
|
-
this.error(new SandboxNotFoundError(identifier, parsed.realm, parsed.instance).message);
|
|
126
|
-
}
|
|
127
|
-
// Find sandbox with matching instance
|
|
128
|
-
const sandbox = data.data.find((s) => s.instance?.toLowerCase() === parsed.instance);
|
|
129
|
-
if (!sandbox?.id) {
|
|
130
|
-
this.error(new SandboxNotFoundError(identifier, parsed.realm, parsed.instance).message);
|
|
131
|
-
}
|
|
132
|
-
this.log(`Resolved ${identifier} to sandbox ${sandbox.id}`);
|
|
133
|
-
return sandbox.id;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=ods-command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ods-command.js","sourceRoot":"","sources":["../../../src/cli/ods-command.ts"],"names":[],"mappings":"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"}
|