@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,14 @@
|
|
|
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 path from 'node:path';
|
|
7
|
+
import { createRequire } from 'node:module';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const packageRoot = path.dirname(require.resolve('@salesforce/b2c-tooling-sdk/package.json'));
|
|
10
|
+
/**
|
|
11
|
+
* Path to the built-in scaffolds data directory
|
|
12
|
+
*/
|
|
13
|
+
export const SCAFFOLDS_DATA_DIR = path.join(packageRoot, 'data/scaffolds');
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/scaffold/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;AAE9F;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { ScaffoldManifest } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Severity of a validation issue.
|
|
4
|
+
*/
|
|
5
|
+
export type ValidationIssueSeverity = 'error' | 'warning';
|
|
6
|
+
/**
|
|
7
|
+
* A validation issue found during scaffold validation.
|
|
8
|
+
*/
|
|
9
|
+
export interface ValidationIssue {
|
|
10
|
+
/** Severity of the issue */
|
|
11
|
+
severity: ValidationIssueSeverity;
|
|
12
|
+
/** Human-readable message describing the issue */
|
|
13
|
+
message: string;
|
|
14
|
+
/** File path where the issue was found, if applicable */
|
|
15
|
+
file?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of validating a scaffold directory.
|
|
19
|
+
*/
|
|
20
|
+
export interface ValidationResult {
|
|
21
|
+
/** Whether the scaffold is valid (no errors) */
|
|
22
|
+
valid: boolean;
|
|
23
|
+
/** Number of errors found */
|
|
24
|
+
errors: number;
|
|
25
|
+
/** Number of warnings found */
|
|
26
|
+
warnings: number;
|
|
27
|
+
/** All issues found during validation */
|
|
28
|
+
issues: ValidationIssue[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate EJS syntax in template content.
|
|
32
|
+
*
|
|
33
|
+
* Checks for:
|
|
34
|
+
* - Mismatched opening/closing EJS tags
|
|
35
|
+
* - Invalid EJS tag patterns
|
|
36
|
+
* - Empty output tags
|
|
37
|
+
*
|
|
38
|
+
* @param content - Template content to validate
|
|
39
|
+
* @param filename - Optional filename for error reporting
|
|
40
|
+
* @returns Array of validation issues found
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateEjsSyntax(content: string, filename?: string): ValidationIssue[];
|
|
43
|
+
/**
|
|
44
|
+
* Check that all referenced template files exist.
|
|
45
|
+
*
|
|
46
|
+
* @param filesDir - Path to the files/ directory
|
|
47
|
+
* @param manifest - Scaffold manifest
|
|
48
|
+
* @returns Array of validation issues for missing files
|
|
49
|
+
*/
|
|
50
|
+
export declare function checkTemplateFiles(filesDir: string, manifest: ScaffoldManifest): Promise<ValidationIssue[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Check for orphaned template files not referenced in manifest.
|
|
53
|
+
*
|
|
54
|
+
* @param allTemplates - All template file paths in files/ directory
|
|
55
|
+
* @param manifest - Scaffold manifest
|
|
56
|
+
* @returns Array of validation issues for orphaned files
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkOrphanedFiles(allTemplates: string[], manifest: ScaffoldManifest): ValidationIssue[];
|
|
59
|
+
/**
|
|
60
|
+
* Options for scaffold directory validation.
|
|
61
|
+
*/
|
|
62
|
+
export interface ValidateScaffoldOptions {
|
|
63
|
+
/** Treat warnings as errors */
|
|
64
|
+
strict?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Validate a complete scaffold directory.
|
|
68
|
+
*
|
|
69
|
+
* Performs comprehensive validation including:
|
|
70
|
+
* - Checking scaffold.json exists and is valid JSON
|
|
71
|
+
* - Validating manifest structure against schema
|
|
72
|
+
* - Verifying files/ directory exists
|
|
73
|
+
* - Checking all referenced template files exist
|
|
74
|
+
* - Finding orphaned template files
|
|
75
|
+
* - Validating EJS syntax in templates
|
|
76
|
+
*
|
|
77
|
+
* @param scaffoldPath - Path to the scaffold directory
|
|
78
|
+
* @param options - Validation options
|
|
79
|
+
* @returns Validation result with issues found
|
|
80
|
+
*/
|
|
81
|
+
export declare function validateScaffoldDirectory(scaffoldPath: string, options?: ValidateScaffoldOptions): Promise<ValidationResult>;
|
|
@@ -0,0 +1,250 @@
|
|
|
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 fs from 'node:fs/promises';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import { glob } from 'glob';
|
|
9
|
+
import { validateScaffoldManifest } from './validators.js';
|
|
10
|
+
/**
|
|
11
|
+
* Check if a file exists.
|
|
12
|
+
*/
|
|
13
|
+
async function fileExists(filePath) {
|
|
14
|
+
try {
|
|
15
|
+
await fs.access(filePath);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Check if a path is a directory.
|
|
24
|
+
*/
|
|
25
|
+
async function isDirectory(dirPath) {
|
|
26
|
+
try {
|
|
27
|
+
const stat = await fs.stat(dirPath);
|
|
28
|
+
return stat.isDirectory();
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Load and parse a manifest file.
|
|
36
|
+
*/
|
|
37
|
+
async function loadManifest(manifestPath) {
|
|
38
|
+
try {
|
|
39
|
+
const content = await fs.readFile(manifestPath, 'utf8');
|
|
40
|
+
return { manifest: JSON.parse(content), error: null };
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error.code === 'ENOENT') {
|
|
44
|
+
return { manifest: null, error: 'scaffold.json not found' };
|
|
45
|
+
}
|
|
46
|
+
return { manifest: null, error: 'scaffold.json is not valid JSON' };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validate EJS syntax in template content.
|
|
51
|
+
*
|
|
52
|
+
* Checks for:
|
|
53
|
+
* - Mismatched opening/closing EJS tags
|
|
54
|
+
* - Invalid EJS tag patterns
|
|
55
|
+
* - Empty output tags
|
|
56
|
+
*
|
|
57
|
+
* @param content - Template content to validate
|
|
58
|
+
* @param filename - Optional filename for error reporting
|
|
59
|
+
* @returns Array of validation issues found
|
|
60
|
+
*/
|
|
61
|
+
export function validateEjsSyntax(content, filename) {
|
|
62
|
+
const issues = [];
|
|
63
|
+
const fileRef = filename ? `files/${filename}` : undefined;
|
|
64
|
+
// Check for unclosed EJS tags
|
|
65
|
+
const openTags = (content.match(/<%/g) || []).length;
|
|
66
|
+
const closeTags = (content.match(/%>/g) || []).length;
|
|
67
|
+
if (openTags !== closeTags) {
|
|
68
|
+
issues.push({
|
|
69
|
+
severity: 'error',
|
|
70
|
+
message: `Mismatched EJS tags: ${openTags} opening, ${closeTags} closing`,
|
|
71
|
+
file: fileRef,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Check for common EJS errors
|
|
75
|
+
const invalidPatterns = [
|
|
76
|
+
{ pattern: /<%[^%=_\-\s#]/, message: 'Invalid EJS tag opening (missing space or modifier)' },
|
|
77
|
+
{ pattern: /<%=\s*%>/, message: 'Empty EJS output tag' },
|
|
78
|
+
];
|
|
79
|
+
for (const { pattern, message } of invalidPatterns) {
|
|
80
|
+
if (pattern.test(content)) {
|
|
81
|
+
issues.push({ severity: 'warning', message, file: fileRef });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return issues;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Check that all referenced template files exist.
|
|
88
|
+
*
|
|
89
|
+
* @param filesDir - Path to the files/ directory
|
|
90
|
+
* @param manifest - Scaffold manifest
|
|
91
|
+
* @returns Array of validation issues for missing files
|
|
92
|
+
*/
|
|
93
|
+
export async function checkTemplateFiles(filesDir, manifest) {
|
|
94
|
+
const issues = [];
|
|
95
|
+
const filesToCheck = [];
|
|
96
|
+
// Collect files from file mappings
|
|
97
|
+
if (manifest.files && Array.isArray(manifest.files)) {
|
|
98
|
+
for (const mapping of manifest.files) {
|
|
99
|
+
filesToCheck.push({ path: path.join(filesDir, mapping.template), template: mapping.template });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Collect files from modifications
|
|
103
|
+
if (manifest.modifications) {
|
|
104
|
+
for (const mod of manifest.modifications) {
|
|
105
|
+
if (mod.contentTemplate) {
|
|
106
|
+
filesToCheck.push({ path: path.join(filesDir, mod.contentTemplate), template: mod.contentTemplate });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Check all files in parallel
|
|
111
|
+
const results = await Promise.all(filesToCheck.map(async ({ path: filePath, template }) => {
|
|
112
|
+
const exists = await fileExists(filePath);
|
|
113
|
+
return { template, exists };
|
|
114
|
+
}));
|
|
115
|
+
for (const { template, exists } of results) {
|
|
116
|
+
if (!exists) {
|
|
117
|
+
issues.push({
|
|
118
|
+
severity: 'error',
|
|
119
|
+
message: `Template file not found: ${template}`,
|
|
120
|
+
file: `files/${template}`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return issues;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check for orphaned template files not referenced in manifest.
|
|
128
|
+
*
|
|
129
|
+
* @param allTemplates - All template file paths in files/ directory
|
|
130
|
+
* @param manifest - Scaffold manifest
|
|
131
|
+
* @returns Array of validation issues for orphaned files
|
|
132
|
+
*/
|
|
133
|
+
export function checkOrphanedFiles(allTemplates, manifest) {
|
|
134
|
+
const issues = [];
|
|
135
|
+
const referencedTemplates = new Set();
|
|
136
|
+
if (manifest.files) {
|
|
137
|
+
for (const f of manifest.files) {
|
|
138
|
+
referencedTemplates.add(f.template);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (manifest.modifications) {
|
|
142
|
+
for (const mod of manifest.modifications) {
|
|
143
|
+
if (mod.contentTemplate) {
|
|
144
|
+
referencedTemplates.add(mod.contentTemplate);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
for (const template of allTemplates) {
|
|
149
|
+
if (!referencedTemplates.has(template)) {
|
|
150
|
+
issues.push({
|
|
151
|
+
severity: 'warning',
|
|
152
|
+
message: `Template file not referenced in manifest: ${template}`,
|
|
153
|
+
file: `files/${template}`,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return issues;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Validate manifest structure and return issues.
|
|
161
|
+
*/
|
|
162
|
+
function validateManifestStructure(manifest) {
|
|
163
|
+
const issues = [];
|
|
164
|
+
const manifestErrors = validateScaffoldManifest(manifest);
|
|
165
|
+
for (const error of manifestErrors) {
|
|
166
|
+
issues.push({ severity: 'error', message: error, file: 'scaffold.json' });
|
|
167
|
+
}
|
|
168
|
+
if (!manifest.postInstructions) {
|
|
169
|
+
issues.push({
|
|
170
|
+
severity: 'warning',
|
|
171
|
+
message: 'Consider adding postInstructions to guide users after generation',
|
|
172
|
+
file: 'scaffold.json',
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return issues;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Validate EJS syntax in all template files.
|
|
179
|
+
*/
|
|
180
|
+
async function validateAllEjsTemplates(filesDir, allTemplates) {
|
|
181
|
+
const ejsTemplates = allTemplates.filter((t) => t.endsWith('.ejs'));
|
|
182
|
+
const results = await Promise.all(ejsTemplates.map(async (template) => {
|
|
183
|
+
try {
|
|
184
|
+
const content = await fs.readFile(path.join(filesDir, template), 'utf8');
|
|
185
|
+
return validateEjsSyntax(content, template);
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
}));
|
|
191
|
+
return results.flat();
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Validate a complete scaffold directory.
|
|
195
|
+
*
|
|
196
|
+
* Performs comprehensive validation including:
|
|
197
|
+
* - Checking scaffold.json exists and is valid JSON
|
|
198
|
+
* - Validating manifest structure against schema
|
|
199
|
+
* - Verifying files/ directory exists
|
|
200
|
+
* - Checking all referenced template files exist
|
|
201
|
+
* - Finding orphaned template files
|
|
202
|
+
* - Validating EJS syntax in templates
|
|
203
|
+
*
|
|
204
|
+
* @param scaffoldPath - Path to the scaffold directory
|
|
205
|
+
* @param options - Validation options
|
|
206
|
+
* @returns Validation result with issues found
|
|
207
|
+
*/
|
|
208
|
+
export async function validateScaffoldDirectory(scaffoldPath, options = {}) {
|
|
209
|
+
const issues = [];
|
|
210
|
+
// Check if path exists and is a directory
|
|
211
|
+
if (!(await isDirectory(scaffoldPath))) {
|
|
212
|
+
issues.push({
|
|
213
|
+
severity: 'error',
|
|
214
|
+
message: `Path does not exist or is not a directory: ${scaffoldPath}`,
|
|
215
|
+
});
|
|
216
|
+
return buildResult(issues, options.strict);
|
|
217
|
+
}
|
|
218
|
+
// Load and validate manifest
|
|
219
|
+
const manifestPath = path.join(scaffoldPath, 'scaffold.json');
|
|
220
|
+
const { manifest, error: manifestError } = await loadManifest(manifestPath);
|
|
221
|
+
if (manifestError) {
|
|
222
|
+
issues.push({ severity: 'error', message: manifestError, file: 'scaffold.json' });
|
|
223
|
+
}
|
|
224
|
+
if (manifest) {
|
|
225
|
+
issues.push(...validateManifestStructure(manifest));
|
|
226
|
+
}
|
|
227
|
+
// Check files directory
|
|
228
|
+
const filesDir = path.join(scaffoldPath, 'files');
|
|
229
|
+
const filesExist = await isDirectory(filesDir);
|
|
230
|
+
if (!filesExist) {
|
|
231
|
+
issues.push({ severity: 'error', message: 'files/ directory not found' });
|
|
232
|
+
}
|
|
233
|
+
if (filesExist && manifest) {
|
|
234
|
+
// Get all template files
|
|
235
|
+
const allTemplates = await glob('**/*', { cwd: filesDir, nodir: true, dot: true });
|
|
236
|
+
// Check template files exist, orphans, and EJS syntax
|
|
237
|
+
issues.push(...(await checkTemplateFiles(filesDir, manifest)), ...checkOrphanedFiles(allTemplates, manifest), ...(await validateAllEjsTemplates(filesDir, allTemplates)));
|
|
238
|
+
}
|
|
239
|
+
return buildResult(issues, options.strict);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Build a ValidationResult from issues.
|
|
243
|
+
*/
|
|
244
|
+
function buildResult(issues, strict) {
|
|
245
|
+
const errors = issues.filter((i) => i.severity === 'error').length;
|
|
246
|
+
const warnings = issues.filter((i) => i.severity === 'warning').length;
|
|
247
|
+
const valid = strict ? errors === 0 && warnings === 0 : errors === 0;
|
|
248
|
+
return { valid, errors, warnings, issues };
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/scaffold/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ScaffoldManifest, ParameterValidationResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validate a scaffold manifest
|
|
4
|
+
* @param manifest - The manifest to validate
|
|
5
|
+
* @returns Array of validation error messages (empty if valid)
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateScaffoldManifest(manifest: unknown): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Check if a condition expression is satisfied
|
|
10
|
+
* @param condition - The condition expression (e.g., "paramName=value" or "paramName")
|
|
11
|
+
* @param variables - The current variable values
|
|
12
|
+
* @returns Whether the condition is satisfied
|
|
13
|
+
*/
|
|
14
|
+
export declare function evaluateCondition(condition: string | undefined, variables: Record<string, string | boolean | string[]>): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Validate parameter values against a manifest
|
|
17
|
+
* @param manifest - The scaffold manifest
|
|
18
|
+
* @param values - The parameter values to validate
|
|
19
|
+
* @returns Validation result
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateParameters(manifest: ScaffoldManifest, values: Record<string, string | boolean | string[] | undefined>): ParameterValidationResult;
|
|
22
|
+
/**
|
|
23
|
+
* Validate that a string is a valid scaffold name (kebab-case)
|
|
24
|
+
* @param name - The name to validate
|
|
25
|
+
* @returns Whether the name is valid
|
|
26
|
+
*/
|
|
27
|
+
export declare function isValidScaffoldName(name: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Validate that a string is a valid parameter name (camelCase)
|
|
30
|
+
* @param name - The name to validate
|
|
31
|
+
* @returns Whether the name is valid
|
|
32
|
+
*/
|
|
33
|
+
export declare function isValidParameterName(name: string): boolean;
|