@salesforce/b2c-tooling-sdk 0.3.0 → 0.4.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/README.md +180 -13
- package/data/scaffolds/cartridge/files/.project.ejs +17 -0
- package/data/scaffolds/cartridge/files/cartridge/cartridge.properties.ejs +4 -0
- package/data/scaffolds/cartridge/files/cartridge/controllers/Example.js.ejs +19 -0
- package/data/scaffolds/cartridge/files/cartridge/models/example.js.ejs +14 -0
- package/data/scaffolds/cartridge/files/cartridge/scripts/helpers/exampleHelpers.js.ejs +18 -0
- package/data/scaffolds/cartridge/files/cartridge/static/default/css/example.css +6 -0
- package/data/scaffolds/cartridge/files/cartridge/templates/default/example/show.isml.ejs +11 -0
- package/data/scaffolds/cartridge/scaffold.json +88 -0
- package/data/scaffolds/controller/files/controller.js.ejs +134 -0
- package/data/scaffolds/controller/files/template.isml.ejs +22 -0
- package/data/scaffolds/controller/scaffold.json +64 -0
- package/data/scaffolds/custom-api/files/api.json.ejs +11 -0
- package/data/scaffolds/custom-api/files/schema.yaml.ejs +188 -0
- package/data/scaffolds/custom-api/files/script.js.ejs +95 -0
- package/data/scaffolds/custom-api/scaffold.json +65 -0
- package/data/scaffolds/hook/files/hook.js.ejs +99 -0
- package/data/scaffolds/hook/files/hooks-entry.json.ejs +6 -0
- package/data/scaffolds/hook/scaffold.json +60 -0
- package/data/scaffolds/job-step/files/step-chunk.js.ejs +136 -0
- package/data/scaffolds/job-step/files/step-task.js.ejs +47 -0
- package/data/scaffolds/job-step/files/steptypes-entry.json.ejs +41 -0
- package/data/scaffolds/job-step/scaffold.json +64 -0
- package/data/scaffolds/page-designer-component/files/component.isml.ejs +23 -0
- package/data/scaffolds/page-designer-component/files/component.js.ejs +35 -0
- package/data/scaffolds/page-designer-component/files/component.json.ejs +50 -0
- package/data/scaffolds/page-designer-component/scaffold.json +66 -0
- package/data/scaffolds/service/files/service-http.js.ejs +245 -0
- package/data/scaffolds/service/files/service-sftp.js.ejs +371 -0
- package/data/scaffolds/service/files/service-soap.js.ejs +230 -0
- package/data/scaffolds/service/scaffold.json +83 -0
- package/data/script-api/dw.extensions.payments.SalesforcePaymentsMgr.md +48 -0
- package/data/script-api/dw.system.Request.md +5 -0
- package/data/script-api/dw.web.Cookie.md +108 -31
- package/data/script-api/index.json +2 -2
- package/data/script-api/index.md +1 -1
- package/dist/cjs/auth/oauth-implicit.d.ts +1 -0
- package/dist/cjs/auth/oauth-implicit.js +8 -3
- package/dist/cjs/auth/oauth-implicit.js.map +1 -1
- package/dist/cjs/auth/oauth.d.ts +1 -0
- package/dist/cjs/auth/oauth.js +8 -3
- package/dist/cjs/auth/oauth.js.map +1 -1
- package/dist/cjs/auth/types.d.ts +5 -0
- package/dist/cjs/auth/types.js.map +1 -1
- package/dist/cjs/cli/am-command.d.ts +74 -0
- package/dist/cjs/cli/am-command.js +189 -0
- package/dist/cjs/cli/am-command.js.map +1 -0
- package/dist/cjs/cli/base-command.d.ts +38 -0
- package/dist/cjs/cli/base-command.js +142 -0
- package/dist/cjs/cli/base-command.js.map +1 -1
- package/dist/cjs/cli/config.d.ts +9 -0
- package/dist/cjs/cli/config.js +19 -2
- package/dist/cjs/cli/config.js.map +1 -1
- package/dist/cjs/cli/index.d.ts +1 -0
- package/dist/cjs/cli/index.js +1 -0
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/instance-command.d.ts +1 -0
- package/dist/cjs/cli/oauth-command.d.ts +21 -1
- package/dist/cjs/cli/oauth-command.js +52 -7
- package/dist/cjs/cli/oauth-command.js.map +1 -1
- package/dist/cjs/cli/ods-command.d.ts +5 -1
- package/dist/cjs/cli/ods-command.js +10 -4
- package/dist/cjs/cli/ods-command.js.map +1 -1
- package/dist/cjs/cli/webdav-command.d.ts +1 -0
- package/dist/cjs/clients/am-api.d.ts +491 -0
- package/dist/cjs/clients/am-api.js +944 -0
- package/dist/cjs/clients/am-api.js.map +1 -0
- package/dist/cjs/clients/am-apiclients-api.generated.d.ts +803 -0
- package/dist/cjs/clients/am-apiclients-api.generated.js +6 -0
- package/dist/cjs/clients/am-apiclients-api.generated.js.map +1 -0
- package/dist/cjs/clients/am-roles-api.generated.d.ts +298 -0
- package/dist/cjs/clients/am-roles-api.generated.js +6 -0
- package/dist/cjs/clients/am-roles-api.generated.js.map +1 -0
- package/dist/cjs/clients/am-users-api.generated.d.ts +891 -0
- package/dist/cjs/clients/am-users-api.generated.js +6 -0
- package/dist/cjs/clients/am-users-api.generated.js.map +1 -0
- package/dist/cjs/clients/index.d.ts +4 -2
- package/dist/cjs/clients/index.js +2 -1
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/clients/middleware-registry.d.ts +1 -1
- package/dist/cjs/clients/middleware-registry.js.map +1 -1
- package/dist/cjs/clients/middleware.d.ts +49 -2
- package/dist/cjs/clients/middleware.js +214 -2
- package/dist/cjs/clients/middleware.js.map +1 -1
- package/dist/cjs/clients/mrt.js +5 -1
- package/dist/cjs/clients/mrt.js.map +1 -1
- package/dist/cjs/config/dw-json.d.ts +104 -33
- package/dist/cjs/config/dw-json.js +167 -2
- package/dist/cjs/config/dw-json.js.map +1 -1
- package/dist/cjs/config/index.d.ts +6 -4
- package/dist/cjs/config/index.js +6 -2
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/config/instance-manager.d.ts +97 -0
- package/dist/cjs/config/instance-manager.js +166 -0
- package/dist/cjs/config/instance-manager.js.map +1 -0
- package/dist/cjs/config/mapping.d.ts +63 -5
- package/dist/cjs/config/mapping.js +165 -20
- package/dist/cjs/config/mapping.js.map +1 -1
- package/dist/cjs/config/sources/dw-json-source.d.ts +17 -1
- package/dist/cjs/config/sources/dw-json-source.js +70 -3
- package/dist/cjs/config/sources/dw-json-source.js.map +1 -1
- package/dist/cjs/config/sources/package-json-source.js +6 -3
- package/dist/cjs/config/sources/package-json-source.js.map +1 -1
- package/dist/cjs/config/types.d.ts +72 -0
- package/dist/cjs/defaults.d.ts +6 -0
- package/dist/cjs/defaults.js +6 -0
- package/dist/cjs/defaults.js.map +1 -1
- package/dist/cjs/i18n/index.js +3 -0
- package/dist/cjs/i18n/index.js.map +1 -1
- package/dist/cjs/index.d.ts +8 -4
- package/dist/cjs/index.js +9 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logging/logger.js +13 -1
- package/dist/cjs/logging/logger.js.map +1 -1
- package/dist/cjs/operations/content/asset-query.d.ts +22 -0
- package/dist/cjs/operations/content/asset-query.js +77 -0
- package/dist/cjs/operations/content/asset-query.js.map +1 -0
- package/dist/cjs/operations/content/export.d.ts +57 -0
- package/dist/cjs/operations/content/export.js +224 -0
- package/dist/cjs/operations/content/export.js.map +1 -0
- package/dist/cjs/operations/content/index.d.ts +43 -0
- package/dist/cjs/operations/content/index.js +48 -0
- package/dist/cjs/operations/content/index.js.map +1 -0
- package/dist/cjs/operations/content/library.d.ts +137 -0
- package/dist/cjs/operations/content/library.js +392 -0
- package/dist/cjs/operations/content/library.js.map +1 -0
- package/dist/cjs/operations/content/types.d.ts +144 -0
- package/dist/cjs/operations/content/types.js +7 -0
- package/dist/cjs/operations/content/types.js.map +1 -0
- package/dist/cjs/operations/mrt/b2c-config.js +19 -4
- package/dist/cjs/operations/mrt/b2c-config.js.map +1 -1
- package/dist/cjs/operations/mrt/index.d.ts +2 -0
- package/dist/cjs/operations/mrt/index.js +2 -0
- package/dist/cjs/operations/mrt/index.js.map +1 -1
- package/dist/cjs/operations/mrt/tail-logs.d.ts +130 -0
- package/dist/cjs/operations/mrt/tail-logs.js +223 -0
- package/dist/cjs/operations/mrt/tail-logs.js.map +1 -0
- package/dist/cjs/operations/ods/index.d.ts +2 -0
- package/dist/cjs/operations/ods/index.js +1 -0
- package/dist/cjs/operations/ods/index.js.map +1 -1
- package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +64 -0
- package/dist/cjs/operations/ods/wait-for-sandbox.js +114 -0
- package/dist/cjs/operations/ods/wait-for-sandbox.js.map +1 -0
- package/dist/cjs/operations/orgs/index.d.ts +74 -0
- package/dist/cjs/operations/orgs/index.js +33 -0
- package/dist/cjs/operations/orgs/index.js.map +1 -0
- package/dist/cjs/operations/roles/index.d.ts +43 -0
- package/dist/cjs/operations/roles/index.js +48 -0
- package/dist/cjs/operations/roles/index.js.map +1 -0
- package/dist/cjs/operations/users/index.d.ts +143 -0
- package/dist/cjs/operations/users/index.js +141 -0
- package/dist/cjs/operations/users/index.js.map +1 -0
- package/dist/cjs/scaffold/engine.d.ts +68 -0
- package/dist/cjs/scaffold/engine.js +149 -0
- package/dist/cjs/scaffold/engine.js.map +1 -0
- package/dist/cjs/scaffold/executor.d.ts +36 -0
- package/dist/cjs/scaffold/executor.js +285 -0
- package/dist/cjs/scaffold/executor.js.map +1 -0
- package/dist/cjs/scaffold/index.d.ts +74 -0
- package/dist/cjs/scaffold/index.js +23 -0
- package/dist/cjs/scaffold/index.js.map +1 -0
- package/dist/cjs/scaffold/merge.d.ts +56 -0
- package/dist/cjs/scaffold/merge.js +183 -0
- package/dist/cjs/scaffold/merge.js.map +1 -0
- package/dist/cjs/scaffold/parameter-resolver.d.ts +86 -0
- package/dist/cjs/scaffold/parameter-resolver.js +179 -0
- package/dist/cjs/scaffold/parameter-resolver.js.map +1 -0
- package/dist/cjs/scaffold/registry.d.ts +45 -0
- package/dist/cjs/scaffold/registry.js +219 -0
- package/dist/cjs/scaffold/registry.js.map +1 -0
- package/dist/cjs/scaffold/sources.d.ts +45 -0
- package/dist/cjs/scaffold/sources.js +113 -0
- package/dist/cjs/scaffold/sources.js.map +1 -0
- package/dist/cjs/scaffold/types.d.ts +280 -0
- package/dist/cjs/scaffold/types.js +14 -0
- package/dist/cjs/scaffold/types.js.map +1 -0
- package/dist/cjs/scaffold/validation.d.ts +81 -0
- package/dist/cjs/scaffold/validation.js +250 -0
- package/dist/cjs/scaffold/validation.js.map +1 -0
- package/dist/cjs/scaffold/validators.d.ts +33 -0
- package/dist/cjs/scaffold/validators.js +334 -0
- package/dist/cjs/scaffold/validators.js.map +1 -0
- package/dist/cjs/telemetry/index.d.ts +26 -0
- package/dist/cjs/telemetry/index.js +32 -0
- package/dist/cjs/telemetry/index.js.map +1 -0
- package/dist/cjs/telemetry/telemetry.d.ts +90 -0
- package/dist/cjs/telemetry/telemetry.js +283 -0
- package/dist/cjs/telemetry/telemetry.js.map +1 -0
- package/dist/cjs/telemetry/types.d.ts +62 -0
- package/dist/cjs/telemetry/types.js +7 -0
- package/dist/cjs/telemetry/types.js.map +1 -0
- package/dist/esm/auth/oauth-implicit.d.ts +1 -0
- package/dist/esm/auth/oauth-implicit.js +8 -3
- package/dist/esm/auth/oauth-implicit.js.map +1 -1
- package/dist/esm/auth/oauth.d.ts +1 -0
- package/dist/esm/auth/oauth.js +8 -3
- package/dist/esm/auth/oauth.js.map +1 -1
- package/dist/esm/auth/types.d.ts +5 -0
- package/dist/esm/auth/types.js.map +1 -1
- package/dist/esm/cli/am-command.d.ts +74 -0
- package/dist/esm/cli/am-command.js +196 -0
- package/dist/esm/cli/am-command.js.map +1 -0
- package/dist/esm/cli/base-command.d.ts +38 -0
- package/dist/esm/cli/base-command.js +142 -0
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/config.d.ts +9 -0
- package/dist/esm/cli/config.js +19 -2
- package/dist/esm/cli/config.js.map +1 -1
- package/dist/esm/cli/index.d.ts +1 -0
- package/dist/esm/cli/index.js +1 -0
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +1 -0
- package/dist/esm/cli/oauth-command.d.ts +21 -1
- package/dist/esm/cli/oauth-command.js +52 -7
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/ods-command.d.ts +5 -1
- package/dist/esm/cli/ods-command.js +10 -4
- package/dist/esm/cli/ods-command.js.map +1 -1
- package/dist/esm/cli/webdav-command.d.ts +1 -0
- package/dist/esm/clients/am-api.d.ts +491 -0
- package/dist/esm/clients/am-api.js +944 -0
- package/dist/esm/clients/am-api.js.map +1 -0
- package/dist/esm/clients/am-apiclients-api.generated.d.ts +803 -0
- package/dist/esm/clients/am-apiclients-api.generated.js +6 -0
- package/dist/esm/clients/am-apiclients-api.generated.js.map +1 -0
- package/dist/esm/clients/am-roles-api.generated.d.ts +298 -0
- package/dist/esm/clients/am-roles-api.generated.js +6 -0
- package/dist/esm/clients/am-roles-api.generated.js.map +1 -0
- package/dist/esm/clients/am-users-api.generated.d.ts +891 -0
- package/dist/esm/clients/am-users-api.generated.js +6 -0
- package/dist/esm/clients/am-users-api.generated.js.map +1 -0
- package/dist/esm/clients/index.d.ts +4 -2
- package/dist/esm/clients/index.js +2 -1
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/clients/middleware-registry.d.ts +1 -1
- package/dist/esm/clients/middleware-registry.js.map +1 -1
- package/dist/esm/clients/middleware.d.ts +49 -2
- package/dist/esm/clients/middleware.js +214 -2
- package/dist/esm/clients/middleware.js.map +1 -1
- package/dist/esm/clients/mrt.js +5 -1
- package/dist/esm/clients/mrt.js.map +1 -1
- package/dist/esm/config/dw-json.d.ts +104 -33
- package/dist/esm/config/dw-json.js +167 -2
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/index.d.ts +6 -4
- package/dist/esm/config/index.js +6 -2
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/instance-manager.d.ts +97 -0
- package/dist/esm/config/instance-manager.js +166 -0
- package/dist/esm/config/instance-manager.js.map +1 -0
- package/dist/esm/config/mapping.d.ts +63 -5
- package/dist/esm/config/mapping.js +165 -20
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/sources/dw-json-source.d.ts +17 -1
- package/dist/esm/config/sources/dw-json-source.js +70 -3
- package/dist/esm/config/sources/dw-json-source.js.map +1 -1
- package/dist/esm/config/sources/package-json-source.js +6 -3
- package/dist/esm/config/sources/package-json-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +72 -0
- package/dist/esm/defaults.d.ts +6 -0
- package/dist/esm/defaults.js +6 -0
- package/dist/esm/defaults.js.map +1 -1
- package/dist/esm/i18n/index.js +3 -0
- package/dist/esm/i18n/index.js.map +1 -1
- package/dist/esm/index.d.ts +8 -4
- package/dist/esm/index.js +9 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logging/logger.js +13 -1
- package/dist/esm/logging/logger.js.map +1 -1
- package/dist/esm/operations/content/asset-query.d.ts +22 -0
- package/dist/esm/operations/content/asset-query.js +77 -0
- package/dist/esm/operations/content/asset-query.js.map +1 -0
- package/dist/esm/operations/content/export.d.ts +57 -0
- package/dist/esm/operations/content/export.js +224 -0
- package/dist/esm/operations/content/export.js.map +1 -0
- package/dist/esm/operations/content/index.d.ts +43 -0
- package/dist/esm/operations/content/index.js +48 -0
- package/dist/esm/operations/content/index.js.map +1 -0
- package/dist/esm/operations/content/library.d.ts +137 -0
- package/dist/esm/operations/content/library.js +392 -0
- package/dist/esm/operations/content/library.js.map +1 -0
- package/dist/esm/operations/content/types.d.ts +144 -0
- package/dist/esm/operations/content/types.js +7 -0
- package/dist/esm/operations/content/types.js.map +1 -0
- package/dist/esm/operations/mrt/b2c-config.js +19 -4
- package/dist/esm/operations/mrt/b2c-config.js.map +1 -1
- package/dist/esm/operations/mrt/index.d.ts +2 -0
- package/dist/esm/operations/mrt/index.js +2 -0
- package/dist/esm/operations/mrt/index.js.map +1 -1
- package/dist/esm/operations/mrt/tail-logs.d.ts +130 -0
- package/dist/esm/operations/mrt/tail-logs.js +223 -0
- package/dist/esm/operations/mrt/tail-logs.js.map +1 -0
- package/dist/esm/operations/ods/index.d.ts +2 -0
- package/dist/esm/operations/ods/index.js +1 -0
- package/dist/esm/operations/ods/index.js.map +1 -1
- package/dist/esm/operations/ods/wait-for-sandbox.d.ts +64 -0
- package/dist/esm/operations/ods/wait-for-sandbox.js +114 -0
- package/dist/esm/operations/ods/wait-for-sandbox.js.map +1 -0
- package/dist/esm/operations/orgs/index.d.ts +74 -0
- package/dist/esm/operations/orgs/index.js +33 -0
- package/dist/esm/operations/orgs/index.js.map +1 -0
- package/dist/esm/operations/roles/index.d.ts +43 -0
- package/dist/esm/operations/roles/index.js +48 -0
- package/dist/esm/operations/roles/index.js.map +1 -0
- package/dist/esm/operations/users/index.d.ts +143 -0
- package/dist/esm/operations/users/index.js +141 -0
- package/dist/esm/operations/users/index.js.map +1 -0
- package/dist/esm/scaffold/engine.d.ts +68 -0
- package/dist/esm/scaffold/engine.js +149 -0
- package/dist/esm/scaffold/engine.js.map +1 -0
- package/dist/esm/scaffold/executor.d.ts +36 -0
- package/dist/esm/scaffold/executor.js +285 -0
- package/dist/esm/scaffold/executor.js.map +1 -0
- package/dist/esm/scaffold/index.d.ts +74 -0
- package/dist/esm/scaffold/index.js +23 -0
- package/dist/esm/scaffold/index.js.map +1 -0
- package/dist/esm/scaffold/merge.d.ts +56 -0
- package/dist/esm/scaffold/merge.js +183 -0
- package/dist/esm/scaffold/merge.js.map +1 -0
- package/dist/esm/scaffold/parameter-resolver.d.ts +86 -0
- package/dist/esm/scaffold/parameter-resolver.js +179 -0
- package/dist/esm/scaffold/parameter-resolver.js.map +1 -0
- package/dist/esm/scaffold/registry.d.ts +45 -0
- package/dist/esm/scaffold/registry.js +219 -0
- package/dist/esm/scaffold/registry.js.map +1 -0
- package/dist/esm/scaffold/sources.d.ts +45 -0
- package/dist/esm/scaffold/sources.js +113 -0
- package/dist/esm/scaffold/sources.js.map +1 -0
- package/dist/esm/scaffold/types.d.ts +280 -0
- package/dist/esm/scaffold/types.js +14 -0
- package/dist/esm/scaffold/types.js.map +1 -0
- package/dist/esm/scaffold/validation.d.ts +81 -0
- package/dist/esm/scaffold/validation.js +250 -0
- package/dist/esm/scaffold/validation.js.map +1 -0
- package/dist/esm/scaffold/validators.d.ts +33 -0
- package/dist/esm/scaffold/validators.js +334 -0
- package/dist/esm/scaffold/validators.js.map +1 -0
- package/dist/esm/telemetry/index.d.ts +26 -0
- package/dist/esm/telemetry/index.js +32 -0
- package/dist/esm/telemetry/index.js.map +1 -0
- package/dist/esm/telemetry/telemetry.d.ts +90 -0
- package/dist/esm/telemetry/telemetry.js +283 -0
- package/dist/esm/telemetry/telemetry.js.map +1 -0
- package/dist/esm/telemetry/types.d.ts +62 -0
- package/dist/esm/telemetry/types.js +7 -0
- package/dist/esm/telemetry/types.js.map +1 -0
- package/package.json +86 -17
- package/specs/am-apiclients-api-v1.yaml +965 -0
- package/specs/am-roles-api-v1.yaml +316 -0
- package/specs/am-users-api-v1.yaml +1102 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/operations/content/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { createMrtB2CClient, DEFAULT_MRT_B2C_ORIGIN, } from '../../clients/mrt-b2c.js';
|
|
2
2
|
import { getLogger } from '../../logging/logger.js';
|
|
3
|
+
const B2C_API_PATH = '/api/cc/b2c';
|
|
4
|
+
/**
|
|
5
|
+
* Ensures the origin has the /api/cc/b2c path suffix.
|
|
6
|
+
* When callers pass the generic MRT origin (e.g. https://cloud.mobify.com),
|
|
7
|
+
* we need to append the B2C API path.
|
|
8
|
+
*/
|
|
9
|
+
function toB2COrigin(origin) {
|
|
10
|
+
if (!origin)
|
|
11
|
+
return DEFAULT_MRT_B2C_ORIGIN;
|
|
12
|
+
// Already has the B2C path
|
|
13
|
+
if (origin.endsWith(B2C_API_PATH))
|
|
14
|
+
return origin;
|
|
15
|
+
// Strip trailing slash before appending
|
|
16
|
+
return origin.replace(/\/+$/, '') + B2C_API_PATH;
|
|
17
|
+
}
|
|
3
18
|
/**
|
|
4
19
|
* Gets B2C Commerce info for an organization.
|
|
5
20
|
*
|
|
@@ -29,7 +44,7 @@ export async function getB2COrgInfo(options, auth) {
|
|
|
29
44
|
const logger = getLogger();
|
|
30
45
|
const { organizationSlug, origin } = options;
|
|
31
46
|
logger.debug({ organizationSlug }, '[MRT-B2C] Getting B2C organization info');
|
|
32
|
-
const client = createMrtB2CClient({ origin: origin
|
|
47
|
+
const client = createMrtB2CClient({ origin: toB2COrigin(origin) }, auth);
|
|
33
48
|
const { data, error } = await client.GET('/b2c-organization-info/{organization_slug}/', {
|
|
34
49
|
params: {
|
|
35
50
|
path: { organization_slug: organizationSlug },
|
|
@@ -74,7 +89,7 @@ export async function getB2CTargetInfo(options, auth) {
|
|
|
74
89
|
const logger = getLogger();
|
|
75
90
|
const { projectSlug, targetSlug, origin } = options;
|
|
76
91
|
logger.debug({ projectSlug, targetSlug }, '[MRT-B2C] Getting B2C target info');
|
|
77
|
-
const client = createMrtB2CClient({ origin: origin
|
|
92
|
+
const client = createMrtB2CClient({ origin: toB2COrigin(origin) }, auth);
|
|
78
93
|
const { data, error } = await client.GET('/projects/{project_slug}/b2c-target-info/{target_slug}/', {
|
|
79
94
|
params: {
|
|
80
95
|
path: { project_slug: projectSlug, target_slug: targetSlug },
|
|
@@ -118,7 +133,7 @@ export async function setB2CTargetInfo(options, auth) {
|
|
|
118
133
|
const logger = getLogger();
|
|
119
134
|
const { projectSlug, targetSlug, instanceId, sites, origin } = options;
|
|
120
135
|
logger.debug({ projectSlug, targetSlug, instanceId }, '[MRT-B2C] Setting B2C target info');
|
|
121
|
-
const client = createMrtB2CClient({ origin: origin
|
|
136
|
+
const client = createMrtB2CClient({ origin: toB2COrigin(origin) }, auth);
|
|
122
137
|
const body = {
|
|
123
138
|
instance_id: instanceId,
|
|
124
139
|
};
|
|
@@ -169,7 +184,7 @@ export async function updateB2CTargetInfo(options, auth) {
|
|
|
169
184
|
const logger = getLogger();
|
|
170
185
|
const { projectSlug, targetSlug, instanceId, sites, origin } = options;
|
|
171
186
|
logger.debug({ projectSlug, targetSlug, instanceId }, '[MRT-B2C] Updating B2C target info');
|
|
172
|
-
const client = createMrtB2CClient({ origin: origin
|
|
187
|
+
const client = createMrtB2CClient({ origin: toB2COrigin(origin) }, auth);
|
|
173
188
|
const body = {};
|
|
174
189
|
if (instanceId !== undefined) {
|
|
175
190
|
body.instance_id = instanceId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b2c-config.js","sourceRoot":"","sources":["../../../../src/operations/mrt/b2c-config.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAIvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"b2c-config.js","sourceRoot":"","sources":["../../../../src/operations/mrt/b2c-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,3 +67,5 @@ export { getProfile, resetApiKey, getEmailPreferences, updateEmailPreferences }
|
|
|
67
67
|
export type { UserOperationOptions, ApiKeyResult, UpdateEmailPreferencesOptions, MrtUserProfile, MrtEmailPreferences, PatchedMrtEmailPreferences, } from './user.js';
|
|
68
68
|
export { getB2COrgInfo, getB2CTargetInfo, setB2CTargetInfo, updateB2CTargetInfo } from './b2c-config.js';
|
|
69
69
|
export type { GetB2COrgInfoOptions, GetB2CTargetInfoOptions, SetB2CTargetInfoOptions, UpdateB2CTargetInfoOptions, B2COrgInfo, B2CTargetInfo, PatchedB2CTargetInfo, } from './b2c-config.js';
|
|
70
|
+
export { createLoggingToken, parseMrtLogLine, getLogsWebSocketUrl, tailMrtLogs } from './tail-logs.js';
|
|
71
|
+
export type { MrtLogEntry, CreateLoggingTokenOptions, TailMrtLogsOptions, TailMrtLogsResult } from './tail-logs.js';
|
|
@@ -72,4 +72,6 @@ export { invalidateCache } from './cache.js';
|
|
|
72
72
|
export { getProfile, resetApiKey, getEmailPreferences, updateEmailPreferences } from './user.js';
|
|
73
73
|
// B2C Commerce config operations
|
|
74
74
|
export { getB2COrgInfo, getB2CTargetInfo, setB2CTargetInfo, updateB2CTargetInfo } from './b2c-config.js';
|
|
75
|
+
// Log tailing operations
|
|
76
|
+
export { createLoggingToken, parseMrtLogLine, getLogsWebSocketUrl, tailMrtLogs } from './tail-logs.js';
|
|
75
77
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/mrt/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,kBAAkB;AAClB,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGtG,6BAA6B;AAC7B,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAWhF,kCAAkC;AAClC,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAU9E,kCAAkC;AAClC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAevF,wBAAwB;AACxB,OAAO,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAUlE,0BAA0B;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAQpD,qBAAqB;AACrB,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAcnG,oBAAoB;AACpB,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAaxG,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAa3B,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AAevB,mCAAmC;AACnC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAU7B,mBAAmB;AACnB,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAG3C,kBAAkB;AAClB,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAU/F,iCAAiC;AACjC,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/mrt/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,kBAAkB;AAClB,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAGtG,6BAA6B;AAC7B,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAWhF,kCAAkC;AAClC,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAU9E,kCAAkC;AAClC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAevF,wBAAwB;AACxB,OAAO,EAAC,eAAe,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAUlE,0BAA0B;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAQpD,qBAAqB;AACrB,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAcnG,oBAAoB;AACpB,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAaxG,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAa3B,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AAevB,mCAAmC;AACnC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAU7B,mBAAmB;AACnB,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAG3C,kBAAkB;AAClB,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAC,MAAM,WAAW,CAAC;AAU/F,iCAAiC;AACjC,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAWvG,yBAAyB;AACzB,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tail application logs from Managed Runtime environments via WebSocket.
|
|
3
|
+
*
|
|
4
|
+
* Connects to the MRT logging WebSocket to stream real-time application logs
|
|
5
|
+
* from SSR environments.
|
|
6
|
+
*
|
|
7
|
+
* @module operations/mrt/tail-logs
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthStrategy } from '../../auth/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* A parsed MRT log entry.
|
|
12
|
+
*/
|
|
13
|
+
export interface MrtLogEntry {
|
|
14
|
+
/** ISO 8601 timestamp, if present. */
|
|
15
|
+
timestamp?: string;
|
|
16
|
+
/** Full request UUID, if present. */
|
|
17
|
+
requestId?: string;
|
|
18
|
+
/** Shortened request ID (first 8 hex chars). */
|
|
19
|
+
shortRequestId?: string;
|
|
20
|
+
/** Log level (ERROR, WARN, INFO, DEBUG, etc.), if detected. */
|
|
21
|
+
level?: string;
|
|
22
|
+
/** The log message content. */
|
|
23
|
+
message: string;
|
|
24
|
+
/** The original raw log line. */
|
|
25
|
+
raw: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Options for creating a logging JWT token.
|
|
29
|
+
*/
|
|
30
|
+
export interface CreateLoggingTokenOptions {
|
|
31
|
+
/** MRT project slug. */
|
|
32
|
+
projectSlug: string;
|
|
33
|
+
/** MRT environment slug. */
|
|
34
|
+
environmentSlug: string;
|
|
35
|
+
/** MRT API origin URL. */
|
|
36
|
+
origin?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Options for tailing MRT logs.
|
|
40
|
+
*/
|
|
41
|
+
export interface TailMrtLogsOptions {
|
|
42
|
+
/** MRT project slug. */
|
|
43
|
+
projectSlug: string;
|
|
44
|
+
/** MRT environment slug. */
|
|
45
|
+
environmentSlug: string;
|
|
46
|
+
/** MRT API origin URL. */
|
|
47
|
+
origin?: string;
|
|
48
|
+
/** User email for the WebSocket connection. */
|
|
49
|
+
user?: string;
|
|
50
|
+
/** Called for each parsed log entry. */
|
|
51
|
+
onEntry?: (entry: MrtLogEntry) => void;
|
|
52
|
+
/** Called when the WebSocket connection is established. */
|
|
53
|
+
onConnect?: () => void;
|
|
54
|
+
/** Called on WebSocket error. */
|
|
55
|
+
onError?: (error: Error) => void;
|
|
56
|
+
/** Called when the WebSocket connection closes. */
|
|
57
|
+
onClose?: (code: number, reason: string) => void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Result from starting a log tail session.
|
|
61
|
+
*/
|
|
62
|
+
export interface TailMrtLogsResult {
|
|
63
|
+
/** Call to stop tailing and close the WebSocket. */
|
|
64
|
+
stop: () => void;
|
|
65
|
+
/** Resolves when the WebSocket connection is closed. */
|
|
66
|
+
done: Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Creates a logging JWT token for WebSocket authentication.
|
|
70
|
+
*
|
|
71
|
+
* POST /api/projects/{project}/target/{environment}/jwt/
|
|
72
|
+
*
|
|
73
|
+
* @param options - Token creation options
|
|
74
|
+
* @param auth - Authentication strategy (ApiKeyStrategy)
|
|
75
|
+
* @returns The JWT token string
|
|
76
|
+
* @throws Error if token creation fails
|
|
77
|
+
*/
|
|
78
|
+
export declare function createLoggingToken(options: CreateLoggingTokenOptions, auth: AuthStrategy): Promise<string>;
|
|
79
|
+
/**
|
|
80
|
+
* Parses a raw MRT log line into a structured entry.
|
|
81
|
+
*
|
|
82
|
+
* Application log format (tab-separated):
|
|
83
|
+
* {ISO8601}\t{UUID}\t{LEVEL}\t{message}
|
|
84
|
+
*
|
|
85
|
+
* Platform log format:
|
|
86
|
+
* {LEVEL} {message}
|
|
87
|
+
*
|
|
88
|
+
* @param raw - The raw log line string
|
|
89
|
+
* @returns Parsed log entry
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseMrtLogLine(raw: string): MrtLogEntry;
|
|
92
|
+
/**
|
|
93
|
+
* Transforms the MRT cloud origin URL into the logs WebSocket URL.
|
|
94
|
+
*
|
|
95
|
+
* Replaces the `cloud` prefix in the hostname with `logs` and switches
|
|
96
|
+
* the protocol to `wss://`.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* getLogsWebSocketUrl('https://cloud.mobify.com')
|
|
100
|
+
* // → 'wss://logs.mobify.com'
|
|
101
|
+
*
|
|
102
|
+
* getLogsWebSocketUrl('https://cloud-soak.mrt-soak.com')
|
|
103
|
+
* // → 'wss://logs-soak.mrt-soak.com'
|
|
104
|
+
*/
|
|
105
|
+
export declare function getLogsWebSocketUrl(origin: string): string;
|
|
106
|
+
/**
|
|
107
|
+
* Streams application logs from an MRT environment via WebSocket.
|
|
108
|
+
*
|
|
109
|
+
* @param options - Tail options
|
|
110
|
+
* @param auth - Authentication strategy (ApiKeyStrategy)
|
|
111
|
+
* @returns Object with `stop()` to end streaming and `done` promise
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
|
|
116
|
+
* import { tailMrtLogs } from '@salesforce/b2c-tooling-sdk/operations/mrt';
|
|
117
|
+
*
|
|
118
|
+
* const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
|
|
119
|
+
*
|
|
120
|
+
* const { stop, done } = await tailMrtLogs({
|
|
121
|
+
* projectSlug: 'my-storefront',
|
|
122
|
+
* environmentSlug: 'staging',
|
|
123
|
+
* onEntry: (entry) => console.log(entry.message),
|
|
124
|
+
* onConnect: () => console.log('Connected'),
|
|
125
|
+
* }, auth);
|
|
126
|
+
*
|
|
127
|
+
* // Later: stop()
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export declare function tailMrtLogs(options: TailMrtLogsOptions, auth: AuthStrategy): Promise<TailMrtLogsResult>;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { DEFAULT_MRT_ORIGIN } from '../../clients/mrt.js';
|
|
2
|
+
import { getLogger } from '../../logging/logger.js';
|
|
3
|
+
/** Known platform log levels. */
|
|
4
|
+
const PLATFORM_LEVELS = new Set(['ERROR', 'WARN', 'WARNING', 'INFO', 'DEBUG', 'TRACE']);
|
|
5
|
+
/** Heartbeat interval: 5 minutes (server has 10-min idle timeout). */
|
|
6
|
+
const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000;
|
|
7
|
+
/**
|
|
8
|
+
* Creates a logging JWT token for WebSocket authentication.
|
|
9
|
+
*
|
|
10
|
+
* POST /api/projects/{project}/target/{environment}/jwt/
|
|
11
|
+
*
|
|
12
|
+
* @param options - Token creation options
|
|
13
|
+
* @param auth - Authentication strategy (ApiKeyStrategy)
|
|
14
|
+
* @returns The JWT token string
|
|
15
|
+
* @throws Error if token creation fails
|
|
16
|
+
*/
|
|
17
|
+
export async function createLoggingToken(options, auth) {
|
|
18
|
+
const logger = getLogger();
|
|
19
|
+
const { projectSlug, environmentSlug, origin } = options;
|
|
20
|
+
const baseUrl = origin || DEFAULT_MRT_ORIGIN;
|
|
21
|
+
logger.debug({ projectSlug, environmentSlug }, '[MRT] Creating logging token');
|
|
22
|
+
const url = `${baseUrl}/api/projects/${encodeURIComponent(projectSlug)}/target/${encodeURIComponent(environmentSlug)}/jwt/`;
|
|
23
|
+
const response = await auth.fetch(url, {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
});
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
const body = await response.text().catch(() => '');
|
|
28
|
+
throw new Error(`Failed to create logging token (${response.status}): ${body}`);
|
|
29
|
+
}
|
|
30
|
+
const data = (await response.json());
|
|
31
|
+
logger.debug('[MRT] Logging token created');
|
|
32
|
+
return data.token;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parses a raw MRT log line into a structured entry.
|
|
36
|
+
*
|
|
37
|
+
* Application log format (tab-separated):
|
|
38
|
+
* {ISO8601}\t{UUID}\t{LEVEL}\t{message}
|
|
39
|
+
*
|
|
40
|
+
* Platform log format:
|
|
41
|
+
* {LEVEL} {message}
|
|
42
|
+
*
|
|
43
|
+
* @param raw - The raw log line string
|
|
44
|
+
* @returns Parsed log entry
|
|
45
|
+
*/
|
|
46
|
+
export function parseMrtLogLine(raw) {
|
|
47
|
+
// Try application format: tab-separated with at least 4 fields
|
|
48
|
+
const parts = raw.split('\t');
|
|
49
|
+
if (parts.length >= 4) {
|
|
50
|
+
const [timestamp, requestId, level, ...messageParts] = parts;
|
|
51
|
+
// Validate this looks like an application log (timestamp should be ISO-ish)
|
|
52
|
+
if (timestamp && /^\d{4}-\d{2}-\d{2}/.test(timestamp)) {
|
|
53
|
+
const message = messageParts.join('\t');
|
|
54
|
+
return {
|
|
55
|
+
timestamp,
|
|
56
|
+
requestId,
|
|
57
|
+
shortRequestId: requestId ? requestId.replace(/-/g, '').slice(0, 8) : undefined,
|
|
58
|
+
level: level || undefined,
|
|
59
|
+
message,
|
|
60
|
+
raw,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Try platform format: "LEVEL message"
|
|
65
|
+
const spaceIdx = raw.indexOf(' ');
|
|
66
|
+
if (spaceIdx > 0) {
|
|
67
|
+
const maybeLevel = raw.slice(0, spaceIdx).toUpperCase();
|
|
68
|
+
if (PLATFORM_LEVELS.has(maybeLevel)) {
|
|
69
|
+
return {
|
|
70
|
+
level: maybeLevel,
|
|
71
|
+
message: raw.slice(spaceIdx + 1),
|
|
72
|
+
raw,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Fallback: entire line is the message
|
|
77
|
+
return {
|
|
78
|
+
message: raw,
|
|
79
|
+
raw,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Transforms the MRT cloud origin URL into the logs WebSocket URL.
|
|
84
|
+
*
|
|
85
|
+
* Replaces the `cloud` prefix in the hostname with `logs` and switches
|
|
86
|
+
* the protocol to `wss://`.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* getLogsWebSocketUrl('https://cloud.mobify.com')
|
|
90
|
+
* // → 'wss://logs.mobify.com'
|
|
91
|
+
*
|
|
92
|
+
* getLogsWebSocketUrl('https://cloud-soak.mrt-soak.com')
|
|
93
|
+
* // → 'wss://logs-soak.mrt-soak.com'
|
|
94
|
+
*/
|
|
95
|
+
export function getLogsWebSocketUrl(origin) {
|
|
96
|
+
const url = new URL(origin);
|
|
97
|
+
url.protocol = 'wss:';
|
|
98
|
+
url.hostname = url.hostname.replace('cloud', 'logs');
|
|
99
|
+
return url.origin;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Streams application logs from an MRT environment via WebSocket.
|
|
103
|
+
*
|
|
104
|
+
* @param options - Tail options
|
|
105
|
+
* @param auth - Authentication strategy (ApiKeyStrategy)
|
|
106
|
+
* @returns Object with `stop()` to end streaming and `done` promise
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
|
|
111
|
+
* import { tailMrtLogs } from '@salesforce/b2c-tooling-sdk/operations/mrt';
|
|
112
|
+
*
|
|
113
|
+
* const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
|
|
114
|
+
*
|
|
115
|
+
* const { stop, done } = await tailMrtLogs({
|
|
116
|
+
* projectSlug: 'my-storefront',
|
|
117
|
+
* environmentSlug: 'staging',
|
|
118
|
+
* onEntry: (entry) => console.log(entry.message),
|
|
119
|
+
* onConnect: () => console.log('Connected'),
|
|
120
|
+
* }, auth);
|
|
121
|
+
*
|
|
122
|
+
* // Later: stop()
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export async function tailMrtLogs(options, auth) {
|
|
126
|
+
const logger = getLogger();
|
|
127
|
+
const { projectSlug, environmentSlug, origin, user, onEntry, onConnect, onError, onClose } = options;
|
|
128
|
+
const baseOrigin = origin || DEFAULT_MRT_ORIGIN;
|
|
129
|
+
logger.debug({ projectSlug, environmentSlug, origin: baseOrigin }, '[MRT] Starting log tail');
|
|
130
|
+
// Step 1: Get JWT token
|
|
131
|
+
logger.trace({ projectSlug, environmentSlug }, '[MRT] Requesting logging JWT token');
|
|
132
|
+
const token = await createLoggingToken({ projectSlug, environmentSlug, origin: baseOrigin }, auth);
|
|
133
|
+
logger.trace('[MRT] Logging JWT token received');
|
|
134
|
+
// Step 2: Build WebSocket URL (connect to root of logs host, like pwa-kit)
|
|
135
|
+
const wsBase = getLogsWebSocketUrl(baseOrigin);
|
|
136
|
+
logger.trace({ cloudOrigin: baseOrigin, wsOrigin: wsBase }, '[MRT] Transformed cloud origin to WebSocket origin');
|
|
137
|
+
const wsUrl = new URL(wsBase);
|
|
138
|
+
wsUrl.searchParams.set('project', projectSlug);
|
|
139
|
+
wsUrl.searchParams.set('environment', environmentSlug);
|
|
140
|
+
wsUrl.searchParams.set('access_token', token);
|
|
141
|
+
if (user) {
|
|
142
|
+
wsUrl.searchParams.set('user', user);
|
|
143
|
+
}
|
|
144
|
+
logger.debug({ wsUrl: wsUrl.toString() }, '[MRT] Opening log stream WebSocket');
|
|
145
|
+
// Step 3: Open WebSocket
|
|
146
|
+
const ws = new WebSocket(wsUrl.toString());
|
|
147
|
+
logger.trace({ readyState: ws.readyState }, '[MRT] WebSocket instance created');
|
|
148
|
+
let heartbeatTimer;
|
|
149
|
+
let stopped = false;
|
|
150
|
+
let hadError = false;
|
|
151
|
+
const done = new Promise((resolve, reject) => {
|
|
152
|
+
ws.addEventListener('open', () => {
|
|
153
|
+
logger.debug('[MRT] WebSocket connected successfully');
|
|
154
|
+
onConnect?.();
|
|
155
|
+
// Send heartbeat to avoid idle timeout (server disconnects after 10 min)
|
|
156
|
+
heartbeatTimer = setInterval(() => {
|
|
157
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
158
|
+
logger.trace('[MRT] Sending WebSocket heartbeat');
|
|
159
|
+
ws.send('');
|
|
160
|
+
}
|
|
161
|
+
}, HEARTBEAT_INTERVAL_MS);
|
|
162
|
+
logger.trace({ intervalMs: HEARTBEAT_INTERVAL_MS }, '[MRT] Heartbeat timer started');
|
|
163
|
+
});
|
|
164
|
+
ws.addEventListener('message', (event) => {
|
|
165
|
+
logger.trace({ dataLength: String(event.data).length }, '[MRT] WebSocket message received');
|
|
166
|
+
if (!onEntry)
|
|
167
|
+
return;
|
|
168
|
+
try {
|
|
169
|
+
const messages = JSON.parse(String(event.data));
|
|
170
|
+
logger.trace({ messageCount: messages.length }, '[MRT] Parsed WebSocket message batch');
|
|
171
|
+
for (const msg of messages) {
|
|
172
|
+
if (msg.message) {
|
|
173
|
+
const entry = parseMrtLogLine(msg.message);
|
|
174
|
+
onEntry(entry);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
logger.debug({ error: err, rawData: String(event.data).slice(0, 200) }, '[MRT] Failed to parse WebSocket message');
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
// The browser WebSocket API fires 'error' before 'close', but the error
|
|
183
|
+
// event carries no details. We flag it here and report in the close handler
|
|
184
|
+
// where we have the close code and reason.
|
|
185
|
+
ws.addEventListener('error', () => {
|
|
186
|
+
hadError = true;
|
|
187
|
+
logger.debug('[MRT] WebSocket error event fired (waiting for close event for details)');
|
|
188
|
+
});
|
|
189
|
+
ws.addEventListener('close', (event) => {
|
|
190
|
+
if (heartbeatTimer) {
|
|
191
|
+
clearInterval(heartbeatTimer);
|
|
192
|
+
logger.trace('[MRT] Heartbeat timer cleared');
|
|
193
|
+
}
|
|
194
|
+
logger.debug({ code: event.code, reason: event.reason, hadError, stopped, wasClean: event.code === 1000 }, '[MRT] WebSocket closed');
|
|
195
|
+
if (hadError && !stopped) {
|
|
196
|
+
// Build a descriptive error from the close code/reason
|
|
197
|
+
const detail = event.reason || `close code ${event.code}`;
|
|
198
|
+
const error = new Error(`WebSocket connection failed: ${detail}`);
|
|
199
|
+
logger.debug({ detail, code: event.code, reason: event.reason }, '[MRT] WebSocket connection failed');
|
|
200
|
+
onError?.(error);
|
|
201
|
+
onClose?.(event.code, event.reason);
|
|
202
|
+
reject(error);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
onClose?.(event.code, event.reason);
|
|
206
|
+
resolve();
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
const stop = () => {
|
|
211
|
+
logger.debug('[MRT] Stopping log tail');
|
|
212
|
+
stopped = true;
|
|
213
|
+
if (heartbeatTimer) {
|
|
214
|
+
clearInterval(heartbeatTimer);
|
|
215
|
+
}
|
|
216
|
+
if (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING) {
|
|
217
|
+
logger.trace({ readyState: ws.readyState }, '[MRT] Closing WebSocket connection');
|
|
218
|
+
ws.close();
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
return { stop, done };
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=tail-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tail-logs.js","sourceRoot":"","sources":["../../../../src/operations/mrt/tail-logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,3 +4,5 @@
|
|
|
4
4
|
* @module operations/ods
|
|
5
5
|
*/
|
|
6
6
|
export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
|
|
7
|
+
export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
|
|
8
|
+
export type { SandboxState, WaitForSandboxOptions, WaitForSandboxPollInfo } from './wait-for-sandbox.js';
|
|
@@ -9,4 +9,5 @@
|
|
|
9
9
|
* @module operations/ods
|
|
10
10
|
*/
|
|
11
11
|
export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
|
|
12
|
+
export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { OdsClient } from '../../clients/ods.js';
|
|
2
|
+
export type SandboxState = 'deleted' | 'failed' | 'started' | 'stopped' | (string & {});
|
|
3
|
+
export declare class SandboxPollingTimeoutError extends Error {
|
|
4
|
+
readonly sandboxId: string;
|
|
5
|
+
readonly targetState: SandboxState;
|
|
6
|
+
readonly timeoutSeconds: number;
|
|
7
|
+
readonly lastState?: SandboxState | undefined;
|
|
8
|
+
constructor(sandboxId: string, targetState: SandboxState, timeoutSeconds: number, lastState?: SandboxState | undefined);
|
|
9
|
+
}
|
|
10
|
+
export declare class SandboxPollingError extends Error {
|
|
11
|
+
readonly sandboxId: string;
|
|
12
|
+
readonly message: string;
|
|
13
|
+
constructor(sandboxId: string, message: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class SandboxTerminalStateError extends Error {
|
|
16
|
+
readonly sandboxId: string;
|
|
17
|
+
readonly targetState: SandboxState;
|
|
18
|
+
readonly state: SandboxState;
|
|
19
|
+
constructor(sandboxId: string, targetState: SandboxState, state: SandboxState);
|
|
20
|
+
}
|
|
21
|
+
export interface WaitForSandboxPollInfo {
|
|
22
|
+
sandboxId: string;
|
|
23
|
+
elapsedSeconds: number;
|
|
24
|
+
state: SandboxState;
|
|
25
|
+
}
|
|
26
|
+
export interface WaitForSandboxOptions {
|
|
27
|
+
sandboxId: string;
|
|
28
|
+
targetState: SandboxState;
|
|
29
|
+
pollIntervalSeconds: number;
|
|
30
|
+
timeoutSeconds: number;
|
|
31
|
+
onPoll?: (info: WaitForSandboxPollInfo) => void;
|
|
32
|
+
sleep?: (ms: number) => Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Waits for a sandbox to reach a target state by polling its status.
|
|
36
|
+
*
|
|
37
|
+
* This function polls the ODS API at regular intervals until the sandbox reaches the desired state,
|
|
38
|
+
* times out, or enters a terminal error state (failed/deleted).
|
|
39
|
+
*
|
|
40
|
+
* @param client - ODS client for API calls
|
|
41
|
+
* @param options - Polling configuration options
|
|
42
|
+
* @param options.sandboxId - ID of the sandbox to monitor
|
|
43
|
+
* @param options.targetState - Desired sandbox state (e.g., 'started', 'stopped', 'deleted')
|
|
44
|
+
* @param options.pollIntervalSeconds - Seconds between status checks
|
|
45
|
+
* @param options.timeoutSeconds - Maximum seconds to wait (0 = no timeout)
|
|
46
|
+
* @param options.onPoll - Optional callback invoked on each poll with current state
|
|
47
|
+
* @param options.sleep - Optional custom sleep function (primarily for testing)
|
|
48
|
+
*
|
|
49
|
+
* @throws {SandboxPollingTimeoutError} If the timeout is exceeded before reaching target state
|
|
50
|
+
* @throws {SandboxPollingError} If the API request fails
|
|
51
|
+
* @throws {SandboxTerminalStateError} If the sandbox enters a terminal error state
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* await waitForSandbox(odsClient, {
|
|
56
|
+
* sandboxId: 'abc-123',
|
|
57
|
+
* targetState: 'started',
|
|
58
|
+
* pollIntervalSeconds: 5,
|
|
59
|
+
* timeoutSeconds: 300,
|
|
60
|
+
* onPoll: (info) => console.log(`State: ${info.state} (${info.elapsedSeconds}s)`),
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function waitForSandbox(client: OdsClient, options: WaitForSandboxOptions): Promise<void>;
|