@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,334 @@
|
|
|
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
|
+
/** Valid parameter types */
|
|
7
|
+
const VALID_PARAMETER_TYPES = ['string', 'boolean', 'choice', 'multi-choice'];
|
|
8
|
+
/** Reserved variable names that cannot be used as parameter names */
|
|
9
|
+
const RESERVED_NAMES = ['kebabCase', 'camelCase', 'pascalCase', 'snakeCase', 'year', 'date', 'uuid'];
|
|
10
|
+
/** Valid dynamic parameter sources */
|
|
11
|
+
const VALID_SOURCES = ['cartridges', 'hook-points', 'sites'];
|
|
12
|
+
/**
|
|
13
|
+
* Validate a scaffold manifest
|
|
14
|
+
* @param manifest - The manifest to validate
|
|
15
|
+
* @returns Array of validation error messages (empty if valid)
|
|
16
|
+
*/
|
|
17
|
+
export function validateScaffoldManifest(manifest) {
|
|
18
|
+
const errors = [];
|
|
19
|
+
if (!manifest || typeof manifest !== 'object') {
|
|
20
|
+
return ['Manifest must be an object'];
|
|
21
|
+
}
|
|
22
|
+
const m = manifest;
|
|
23
|
+
// Required fields
|
|
24
|
+
if (!m.name || typeof m.name !== 'string') {
|
|
25
|
+
errors.push('Manifest must have a "name" field (string)');
|
|
26
|
+
}
|
|
27
|
+
else if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(m.name) && m.name.length > 1) {
|
|
28
|
+
errors.push('Manifest "name" must be kebab-case (lowercase letters, numbers, hyphens)');
|
|
29
|
+
}
|
|
30
|
+
if (!m.displayName || typeof m.displayName !== 'string') {
|
|
31
|
+
errors.push('Manifest must have a "displayName" field (string)');
|
|
32
|
+
}
|
|
33
|
+
if (!m.description || typeof m.description !== 'string') {
|
|
34
|
+
errors.push('Manifest must have a "description" field (string)');
|
|
35
|
+
}
|
|
36
|
+
if (!m.category || typeof m.category !== 'string') {
|
|
37
|
+
errors.push('Manifest must have a "category" field (string)');
|
|
38
|
+
}
|
|
39
|
+
// Parameters validation
|
|
40
|
+
if (!Array.isArray(m.parameters)) {
|
|
41
|
+
errors.push('Manifest must have a "parameters" array');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const paramNames = new Set();
|
|
45
|
+
for (let i = 0; i < m.parameters.length; i++) {
|
|
46
|
+
const param = m.parameters[i];
|
|
47
|
+
const prefix = `parameters[${i}]`;
|
|
48
|
+
if (!param || typeof param !== 'object') {
|
|
49
|
+
errors.push(`${prefix}: must be an object`);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const p = param;
|
|
53
|
+
if (!p.name || typeof p.name !== 'string') {
|
|
54
|
+
errors.push(`${prefix}: must have a "name" field (string)`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
if (!/^[a-z][a-zA-Z0-9]*$/.test(p.name)) {
|
|
58
|
+
errors.push(`${prefix}: "name" must be camelCase (start with lowercase letter)`);
|
|
59
|
+
}
|
|
60
|
+
if (paramNames.has(p.name)) {
|
|
61
|
+
errors.push(`${prefix}: duplicate parameter name "${p.name}"`);
|
|
62
|
+
}
|
|
63
|
+
if (RESERVED_NAMES.includes(p.name)) {
|
|
64
|
+
errors.push(`${prefix}: "${p.name}" is a reserved name`);
|
|
65
|
+
}
|
|
66
|
+
paramNames.add(p.name);
|
|
67
|
+
}
|
|
68
|
+
if (!p.prompt || typeof p.prompt !== 'string') {
|
|
69
|
+
errors.push(`${prefix}: must have a "prompt" field (string)`);
|
|
70
|
+
}
|
|
71
|
+
if (!p.type || typeof p.type !== 'string') {
|
|
72
|
+
errors.push(`${prefix}: must have a "type" field (string)`);
|
|
73
|
+
}
|
|
74
|
+
else if (!VALID_PARAMETER_TYPES.includes(p.type)) {
|
|
75
|
+
errors.push(`${prefix}: "type" must be one of: ${VALID_PARAMETER_TYPES.join(', ')}`);
|
|
76
|
+
}
|
|
77
|
+
if (typeof p.required !== 'boolean') {
|
|
78
|
+
errors.push(`${prefix}: must have a "required" field (boolean)`);
|
|
79
|
+
}
|
|
80
|
+
// Source validation
|
|
81
|
+
if (p.source !== undefined) {
|
|
82
|
+
if (typeof p.source !== 'string') {
|
|
83
|
+
errors.push(`${prefix}: "source" must be a string`);
|
|
84
|
+
}
|
|
85
|
+
else if (!VALID_SOURCES.includes(p.source)) {
|
|
86
|
+
errors.push(`${prefix}: "source" must be one of: ${VALID_SOURCES.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Choice validation (choices are optional if source is provided)
|
|
90
|
+
if ((p.type === 'choice' || p.type === 'multi-choice') && !Array.isArray(p.choices) && !p.source) {
|
|
91
|
+
errors.push(`${prefix}: choice/multi-choice types must have a "choices" array or a "source" field`);
|
|
92
|
+
}
|
|
93
|
+
else if (Array.isArray(p.choices)) {
|
|
94
|
+
for (let j = 0; j < p.choices.length; j++) {
|
|
95
|
+
const choice = p.choices[j];
|
|
96
|
+
if (!choice || typeof choice !== 'object') {
|
|
97
|
+
errors.push(`${prefix}.choices[${j}]: must be an object`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
if (!choice.value || typeof choice.value !== 'string') {
|
|
101
|
+
errors.push(`${prefix}.choices[${j}]: must have a "value" field (string)`);
|
|
102
|
+
}
|
|
103
|
+
if (!choice.label || typeof choice.label !== 'string') {
|
|
104
|
+
errors.push(`${prefix}.choices[${j}]: must have a "label" field (string)`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Pattern validation
|
|
110
|
+
if (p.pattern !== undefined && typeof p.pattern !== 'string') {
|
|
111
|
+
errors.push(`${prefix}: "pattern" must be a string`);
|
|
112
|
+
}
|
|
113
|
+
else if (typeof p.pattern === 'string') {
|
|
114
|
+
try {
|
|
115
|
+
new RegExp(p.pattern);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
errors.push(`${prefix}: "pattern" is not a valid regex`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Files validation (optional)
|
|
124
|
+
if (m.files !== undefined) {
|
|
125
|
+
if (!Array.isArray(m.files)) {
|
|
126
|
+
errors.push('Manifest "files" must be an array');
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
for (let i = 0; i < m.files.length; i++) {
|
|
130
|
+
const file = m.files[i];
|
|
131
|
+
const prefix = `files[${i}]`;
|
|
132
|
+
if (!file || typeof file !== 'object') {
|
|
133
|
+
errors.push(`${prefix}: must be an object`);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (!file.template || typeof file.template !== 'string') {
|
|
137
|
+
errors.push(`${prefix}: must have a "template" field (string)`);
|
|
138
|
+
}
|
|
139
|
+
if (!file.destination || typeof file.destination !== 'string') {
|
|
140
|
+
errors.push(`${prefix}: must have a "destination" field (string)`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return errors;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Check if a condition expression is satisfied
|
|
149
|
+
* @param condition - The condition expression (e.g., "paramName=value" or "paramName")
|
|
150
|
+
* @param variables - The current variable values
|
|
151
|
+
* @returns Whether the condition is satisfied
|
|
152
|
+
*/
|
|
153
|
+
export function evaluateCondition(condition, variables) {
|
|
154
|
+
if (!condition) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
// Handle equality check: "paramName=value"
|
|
158
|
+
if (condition.includes('=')) {
|
|
159
|
+
const [paramName, expectedValue] = condition.split('=', 2);
|
|
160
|
+
const actualValue = variables[paramName];
|
|
161
|
+
if (Array.isArray(actualValue)) {
|
|
162
|
+
return actualValue.includes(expectedValue);
|
|
163
|
+
}
|
|
164
|
+
return String(actualValue) === expectedValue;
|
|
165
|
+
}
|
|
166
|
+
// Handle negation: "!paramName"
|
|
167
|
+
if (condition.startsWith('!')) {
|
|
168
|
+
const paramName = condition.slice(1);
|
|
169
|
+
const value = variables[paramName];
|
|
170
|
+
return !value || value === '' || (Array.isArray(value) && value.length === 0);
|
|
171
|
+
}
|
|
172
|
+
// Handle truthy check: "paramName"
|
|
173
|
+
const value = variables[condition];
|
|
174
|
+
return Boolean(value) && value !== '' && !(Array.isArray(value) && value.length === 0);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Validate parameter values against a manifest
|
|
178
|
+
* @param manifest - The scaffold manifest
|
|
179
|
+
* @param values - The parameter values to validate
|
|
180
|
+
* @returns Validation result
|
|
181
|
+
*/
|
|
182
|
+
export function validateParameters(manifest, values) {
|
|
183
|
+
const errors = [];
|
|
184
|
+
const resolvedValues = {};
|
|
185
|
+
for (const param of manifest.parameters) {
|
|
186
|
+
// Check if this parameter should be evaluated (based on `when` condition)
|
|
187
|
+
if (param.when && !evaluateCondition(param.when, resolvedValues)) {
|
|
188
|
+
// Parameter is conditional and condition not met - skip it
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
let value = values[param.name];
|
|
192
|
+
// Use default if not provided
|
|
193
|
+
if (value === undefined || value === '') {
|
|
194
|
+
if (param.default !== undefined) {
|
|
195
|
+
value = param.default;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Required check
|
|
199
|
+
if (param.required) {
|
|
200
|
+
const isEmpty = value === undefined || value === '' || (Array.isArray(value) && value.length === 0);
|
|
201
|
+
if (isEmpty) {
|
|
202
|
+
errors.push({
|
|
203
|
+
parameter: param.name,
|
|
204
|
+
message: `"${param.name}" is required`,
|
|
205
|
+
value,
|
|
206
|
+
});
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Type-specific validation
|
|
211
|
+
if (value !== undefined && value !== '') {
|
|
212
|
+
switch (param.type) {
|
|
213
|
+
case 'boolean':
|
|
214
|
+
if (typeof value !== 'boolean' && value !== 'true' && value !== 'false') {
|
|
215
|
+
errors.push({
|
|
216
|
+
parameter: param.name,
|
|
217
|
+
message: `"${param.name}" must be a boolean`,
|
|
218
|
+
value,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Normalize to boolean
|
|
223
|
+
resolvedValues[param.name] = value === true || value === 'true';
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
case 'string':
|
|
227
|
+
if (typeof value !== 'string') {
|
|
228
|
+
errors.push({
|
|
229
|
+
parameter: param.name,
|
|
230
|
+
message: `"${param.name}" must be a string`,
|
|
231
|
+
value,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Pattern validation
|
|
236
|
+
if (param.pattern) {
|
|
237
|
+
const regex = new RegExp(param.pattern);
|
|
238
|
+
if (!regex.test(value)) {
|
|
239
|
+
errors.push({
|
|
240
|
+
parameter: param.name,
|
|
241
|
+
message: param.validationMessage || `"${param.name}" does not match required pattern`,
|
|
242
|
+
value,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
resolvedValues[param.name] = value;
|
|
247
|
+
}
|
|
248
|
+
break;
|
|
249
|
+
case 'choice':
|
|
250
|
+
if (typeof value !== 'string') {
|
|
251
|
+
errors.push({
|
|
252
|
+
parameter: param.name,
|
|
253
|
+
message: `"${param.name}" must be a string`,
|
|
254
|
+
value,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
else if (param.choices) {
|
|
258
|
+
const validValues = param.choices.map((c) => c.value);
|
|
259
|
+
if (!validValues.includes(value)) {
|
|
260
|
+
errors.push({
|
|
261
|
+
parameter: param.name,
|
|
262
|
+
message: `"${param.name}" must be one of: ${validValues.join(', ')}`,
|
|
263
|
+
value,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
resolvedValues[param.name] = value;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
break;
|
|
271
|
+
case 'multi-choice':
|
|
272
|
+
{
|
|
273
|
+
const arr = Array.isArray(value) ? value : [String(value)];
|
|
274
|
+
if (param.choices) {
|
|
275
|
+
const validValues = param.choices.map((c) => c.value);
|
|
276
|
+
for (const v of arr) {
|
|
277
|
+
if (!validValues.includes(v)) {
|
|
278
|
+
errors.push({
|
|
279
|
+
parameter: param.name,
|
|
280
|
+
message: `"${param.name}" contains invalid value "${v}". Must be one of: ${validValues.join(', ')}`,
|
|
281
|
+
value,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
resolvedValues[param.name] = arr;
|
|
287
|
+
}
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else if (value !== undefined) {
|
|
292
|
+
// Value is defined but empty - still store it if not required
|
|
293
|
+
if (param.type === 'multi-choice') {
|
|
294
|
+
resolvedValues[param.name] = [];
|
|
295
|
+
}
|
|
296
|
+
else if (param.type === 'boolean') {
|
|
297
|
+
resolvedValues[param.name] = false;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
resolvedValues[param.name] = '';
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Preserve any extra variables that aren't manifest parameters
|
|
305
|
+
// (e.g., cartridgeNamePath set by CLI for cartridge source parameters)
|
|
306
|
+
const manifestParamNames = new Set(manifest.parameters.map((p) => p.name));
|
|
307
|
+
for (const [key, value] of Object.entries(values)) {
|
|
308
|
+
if (!manifestParamNames.has(key) && value !== undefined) {
|
|
309
|
+
resolvedValues[key] = value;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return {
|
|
313
|
+
valid: errors.length === 0,
|
|
314
|
+
errors,
|
|
315
|
+
values: resolvedValues,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Validate that a string is a valid scaffold name (kebab-case)
|
|
320
|
+
* @param name - The name to validate
|
|
321
|
+
* @returns Whether the name is valid
|
|
322
|
+
*/
|
|
323
|
+
export function isValidScaffoldName(name) {
|
|
324
|
+
return /^[a-z][a-z0-9-]*[a-z0-9]$/.test(name) || /^[a-z]$/.test(name);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Validate that a string is a valid parameter name (camelCase)
|
|
328
|
+
* @param name - The name to validate
|
|
329
|
+
* @returns Whether the name is valid
|
|
330
|
+
*/
|
|
331
|
+
export function isValidParameterName(name) {
|
|
332
|
+
return /^[a-z][a-zA-Z0-9]*$/.test(name) && !RESERVED_NAMES.includes(name);
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/scaffold/validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type { TelemetryAttributes, TelemetryEventProperties, TelemetryOptions } from './types.js';
|
|
2
|
+
export { Telemetry } from './telemetry.js';
|
|
3
|
+
import { Telemetry } from './telemetry.js';
|
|
4
|
+
import type { TelemetryOptions } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Factory function to create a Telemetry instance.
|
|
7
|
+
*
|
|
8
|
+
* @param options - Telemetry configuration options
|
|
9
|
+
* @returns A new Telemetry instance
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createTelemetry } from '@salesforce/b2c-tooling-sdk/telemetry';
|
|
14
|
+
*
|
|
15
|
+
* const telemetry = createTelemetry({
|
|
16
|
+
* project: 'my-mcp-server',
|
|
17
|
+
* appInsightsKey: process.env.APP_INSIGHTS_KEY,
|
|
18
|
+
* version: '1.0.0',
|
|
19
|
+
* initialAttributes: { environment: 'production' },
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* await telemetry.start();
|
|
23
|
+
* telemetry.sendEvent('SERVER_STATUS', { status: 'started' });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function createTelemetry(options: TelemetryOptions): Telemetry;
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
export { Telemetry } from './telemetry.js';
|
|
7
|
+
import { Telemetry } from './telemetry.js';
|
|
8
|
+
/**
|
|
9
|
+
* Factory function to create a Telemetry instance.
|
|
10
|
+
*
|
|
11
|
+
* @param options - Telemetry configuration options
|
|
12
|
+
* @returns A new Telemetry instance
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { createTelemetry } from '@salesforce/b2c-tooling-sdk/telemetry';
|
|
17
|
+
*
|
|
18
|
+
* const telemetry = createTelemetry({
|
|
19
|
+
* project: 'my-mcp-server',
|
|
20
|
+
* appInsightsKey: process.env.APP_INSIGHTS_KEY,
|
|
21
|
+
* version: '1.0.0',
|
|
22
|
+
* initialAttributes: { environment: 'production' },
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* await telemetry.start();
|
|
26
|
+
* telemetry.sendEvent('SERVER_STATUS', { status: 'started' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function createTelemetry(options) {
|
|
30
|
+
return new Telemetry(options);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { TelemetryAttributes, TelemetryOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Telemetry client for sending events to Application Insights.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const telemetry = new Telemetry({
|
|
8
|
+
* project: 'my-app',
|
|
9
|
+
* appInsightsKey: 'InstrumentationKey=...',
|
|
10
|
+
* version: '1.0.0',
|
|
11
|
+
* dataDir: '/path/to/data',
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* await telemetry.start();
|
|
15
|
+
* telemetry.sendEvent('USER_ACTION', { action: 'click' });
|
|
16
|
+
* telemetry.stop();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class Telemetry {
|
|
20
|
+
private attributes;
|
|
21
|
+
private cliId;
|
|
22
|
+
private project;
|
|
23
|
+
private reporter;
|
|
24
|
+
private sessionId;
|
|
25
|
+
private started;
|
|
26
|
+
private version;
|
|
27
|
+
private appInsightsKey;
|
|
28
|
+
private traceLog;
|
|
29
|
+
/**
|
|
30
|
+
* Check if telemetry is disabled via environment variables.
|
|
31
|
+
* Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
|
|
32
|
+
*/
|
|
33
|
+
static isDisabled(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Get the connection string for telemetry, respecting disable flags and env overrides.
|
|
36
|
+
* @param projectDefault - Default connection string from project config (e.g., package.json)
|
|
37
|
+
* @returns Connection string to use, or undefined if telemetry should be disabled
|
|
38
|
+
*/
|
|
39
|
+
static getConnectionString(projectDefault?: string): string | undefined;
|
|
40
|
+
constructor(options: TelemetryOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Add additional attributes to include with all future events.
|
|
43
|
+
*/
|
|
44
|
+
addAttributes(attributes: TelemetryAttributes): void;
|
|
45
|
+
/**
|
|
46
|
+
* Send a telemetry event. Events are buffered until you call {@link flush} or
|
|
47
|
+
* {@link stop}. Use this for batching; use {@link sendEventAndFlush} when you
|
|
48
|
+
* need one event sent before continuing.
|
|
49
|
+
*
|
|
50
|
+
* @param eventName - Name of the event (e.g., 'SERVER_STATUS', 'TOOL_CALLED')
|
|
51
|
+
* @param attributes - Event-specific attributes (only string/number/boolean are sent)
|
|
52
|
+
*/
|
|
53
|
+
sendEvent(eventName: string, attributes?: TelemetryAttributes): void;
|
|
54
|
+
/**
|
|
55
|
+
* Send a telemetry event and flush immediately. Use this when you need the event
|
|
56
|
+
* delivered before continuing (e.g. after a tool call or server lifecycle event),
|
|
57
|
+
* so you don't have to remember to call {@link flush}. For batching multiple
|
|
58
|
+
* events and flushing once, use {@link sendEvent} and then {@link flush}.
|
|
59
|
+
*
|
|
60
|
+
* @param eventName - Name of the event (e.g., 'SERVER_STATUS', 'TOOL_CALLED')
|
|
61
|
+
* @param attributes - Event-specific attributes (only string/number/boolean are sent)
|
|
62
|
+
*/
|
|
63
|
+
sendEventAndFlush(eventName: string, attributes?: TelemetryAttributes): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Send an exception to telemetry.
|
|
66
|
+
*
|
|
67
|
+
* @param error - The error to report
|
|
68
|
+
* @param attributes - Additional attributes to include with the exception
|
|
69
|
+
*/
|
|
70
|
+
sendException(error: Error, attributes?: TelemetryAttributes): void;
|
|
71
|
+
/**
|
|
72
|
+
* Start the telemetry reporter.
|
|
73
|
+
* Must be called before sending events.
|
|
74
|
+
*/
|
|
75
|
+
start(): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Flush pending telemetry events without stopping the reporter.
|
|
78
|
+
* Use this for long-running processes that need to ensure events are sent periodically.
|
|
79
|
+
* Uses the native reporter.flush() as documented in https://github.com/forcedotcom/telemetry,
|
|
80
|
+
* and also flushes the App Insights client when present (SDK flush() only flushes O11y).
|
|
81
|
+
*/
|
|
82
|
+
flush(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Stop the telemetry reporter and flush any pending events.
|
|
85
|
+
* Includes a delay to allow async HTTP requests to complete.
|
|
86
|
+
*/
|
|
87
|
+
stop(): Promise<void>;
|
|
88
|
+
private buildEventProperties;
|
|
89
|
+
private createReporter;
|
|
90
|
+
}
|