@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,137 @@
|
|
|
1
|
+
import type { LibraryNodeType, LibraryParseOptions, TraverseOptions, TraverseCallback, FilterCallback, TreeStringOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A node in the content library tree.
|
|
4
|
+
*
|
|
5
|
+
* Represents a library, page, content asset, component, or static asset reference.
|
|
6
|
+
*/
|
|
7
|
+
export declare class LibraryNode {
|
|
8
|
+
id: string;
|
|
9
|
+
type: LibraryNodeType;
|
|
10
|
+
typeId: string | null;
|
|
11
|
+
data: Record<string, unknown> | null;
|
|
12
|
+
parent: LibraryNode | null;
|
|
13
|
+
children: LibraryNode[];
|
|
14
|
+
hidden: boolean;
|
|
15
|
+
/** @internal Raw xml2js content object */
|
|
16
|
+
xml: Record<string, unknown> | null;
|
|
17
|
+
constructor(values: {
|
|
18
|
+
id: string;
|
|
19
|
+
type: LibraryNodeType;
|
|
20
|
+
typeId: string | null;
|
|
21
|
+
data: Record<string, unknown> | null;
|
|
22
|
+
parent: LibraryNode | null;
|
|
23
|
+
children: LibraryNode[];
|
|
24
|
+
hidden: boolean;
|
|
25
|
+
xml: Record<string, unknown> | null;
|
|
26
|
+
});
|
|
27
|
+
toJSON(): Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Provides an interface for manipulating B2C Commerce content libraries.
|
|
31
|
+
*
|
|
32
|
+
* Use the static `Library.parse()` factory to create instances from library XML.
|
|
33
|
+
* The library tree supports filtering, traversal, mutation, and serialization
|
|
34
|
+
* back to importable XML.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const library = await Library.parse(xmlString);
|
|
39
|
+
*
|
|
40
|
+
* // Filter to specific pages
|
|
41
|
+
* library.filter(node => node.id === 'homepage');
|
|
42
|
+
*
|
|
43
|
+
* // Traverse visible nodes
|
|
44
|
+
* library.traverse(node => {
|
|
45
|
+
* console.log(node.id, node.type);
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* // Serialize back to XML
|
|
49
|
+
* const xml = await library.toXMLString({ traverseHidden: false });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class Library {
|
|
53
|
+
assetQuery: string[];
|
|
54
|
+
tree: LibraryNode;
|
|
55
|
+
/** @internal Raw xml2js parsed object */
|
|
56
|
+
xml: Record<string, unknown>;
|
|
57
|
+
/** @internal */
|
|
58
|
+
constructor(guard: symbol);
|
|
59
|
+
/**
|
|
60
|
+
* Parse library XML into a Library tree.
|
|
61
|
+
*
|
|
62
|
+
* @param libraryXML - Raw XML string of a content library
|
|
63
|
+
* @param options - Parse options
|
|
64
|
+
* @returns Parsed Library instance
|
|
65
|
+
*/
|
|
66
|
+
static parse(libraryXML: string, { assetQuery, keepOrphans }?: LibraryParseOptions): Promise<Library>;
|
|
67
|
+
/**
|
|
68
|
+
* Depth-first traversal of the library tree.
|
|
69
|
+
*
|
|
70
|
+
* @param callback - Function called for each visited node
|
|
71
|
+
* @param options - Traversal options
|
|
72
|
+
* @returns this (for chaining)
|
|
73
|
+
*/
|
|
74
|
+
traverse(callback: TraverseCallback, { traverseHidden, callbackHidden }?: TraverseOptions): this;
|
|
75
|
+
/**
|
|
76
|
+
* Generator-based depth-first iteration of the library tree.
|
|
77
|
+
*
|
|
78
|
+
* @param options - Traversal options
|
|
79
|
+
* @yields LibraryNode for each visited node
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* for (const node of library.nodes()) {
|
|
84
|
+
* console.log(node.id, node.type);
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
nodes({ traverseHidden, callbackHidden }?: TraverseOptions): Generator<LibraryNode>;
|
|
89
|
+
/**
|
|
90
|
+
* Filter the library tree by setting hidden flags on root children.
|
|
91
|
+
*
|
|
92
|
+
* @param predicate - Return true to keep the node visible
|
|
93
|
+
* @param options - Filter options
|
|
94
|
+
* @returns this (for chaining)
|
|
95
|
+
*/
|
|
96
|
+
filter(predicate: FilterCallback, { recursive }?: {
|
|
97
|
+
recursive?: boolean | undefined;
|
|
98
|
+
}): this;
|
|
99
|
+
/**
|
|
100
|
+
* Move a node from its current parent to the root of the library tree.
|
|
101
|
+
*
|
|
102
|
+
* Useful for exporting individual components that are normally nested under pages.
|
|
103
|
+
* The node is removed from its original parent's children and added as a root child.
|
|
104
|
+
*
|
|
105
|
+
* @param node - The node to promote
|
|
106
|
+
* @returns this (for chaining)
|
|
107
|
+
*/
|
|
108
|
+
promoteToRoot(node: LibraryNode): this;
|
|
109
|
+
/**
|
|
110
|
+
* Reset all hidden flags, making every node visible again.
|
|
111
|
+
*
|
|
112
|
+
* @returns this (for chaining)
|
|
113
|
+
*/
|
|
114
|
+
reset(): this;
|
|
115
|
+
/**
|
|
116
|
+
* Serialize the library back to importable XML.
|
|
117
|
+
*
|
|
118
|
+
* Only includes visible content unless `traverseHidden` is true.
|
|
119
|
+
*
|
|
120
|
+
* @param options - Serialization options
|
|
121
|
+
* @returns XML string
|
|
122
|
+
*/
|
|
123
|
+
toXMLString({ traverseHidden }?: {
|
|
124
|
+
traverseHidden?: boolean;
|
|
125
|
+
}): Promise<string>;
|
|
126
|
+
/**
|
|
127
|
+
* Returns a text tree visualization of the library structure.
|
|
128
|
+
*
|
|
129
|
+
* @param options - Tree string options (traversal and optional colorize function)
|
|
130
|
+
* @returns Multi-line tree string
|
|
131
|
+
*/
|
|
132
|
+
getTreeString({ traverseHidden, colorize }?: TreeStringOptions): string;
|
|
133
|
+
/**
|
|
134
|
+
* Returns a JSON-safe representation of the library tree.
|
|
135
|
+
*/
|
|
136
|
+
toJSON(): Record<string, unknown>;
|
|
137
|
+
}
|
|
@@ -0,0 +1,392 @@
|
|
|
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 * as xml2js from 'xml2js';
|
|
7
|
+
import { getLogger } from '../../logging/logger.js';
|
|
8
|
+
import { extractAssetPaths } from './asset-query.js';
|
|
9
|
+
/**
|
|
10
|
+
* A node in the content library tree.
|
|
11
|
+
*
|
|
12
|
+
* Represents a library, page, content asset, component, or static asset reference.
|
|
13
|
+
*/
|
|
14
|
+
export class LibraryNode {
|
|
15
|
+
id;
|
|
16
|
+
type;
|
|
17
|
+
typeId;
|
|
18
|
+
data;
|
|
19
|
+
parent;
|
|
20
|
+
children;
|
|
21
|
+
hidden;
|
|
22
|
+
/** @internal Raw xml2js content object */
|
|
23
|
+
xml;
|
|
24
|
+
constructor(values) {
|
|
25
|
+
this.id = values.id;
|
|
26
|
+
this.type = values.type;
|
|
27
|
+
this.typeId = values.typeId;
|
|
28
|
+
this.data = values.data;
|
|
29
|
+
this.parent = values.parent;
|
|
30
|
+
this.children = values.children;
|
|
31
|
+
this.hidden = values.hidden;
|
|
32
|
+
this.xml = values.xml;
|
|
33
|
+
}
|
|
34
|
+
toJSON() {
|
|
35
|
+
return {
|
|
36
|
+
id: this.id,
|
|
37
|
+
type: this.type,
|
|
38
|
+
typeId: this.typeId,
|
|
39
|
+
data: this.data,
|
|
40
|
+
children: this.children,
|
|
41
|
+
hidden: this.hidden,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Recursively processes a content XML element into a LibraryNode tree.
|
|
47
|
+
*
|
|
48
|
+
* Extracts child components via content-links and static assets via asset queries.
|
|
49
|
+
*/
|
|
50
|
+
function processContent(content, allContent, assetQuery) {
|
|
51
|
+
const logger = getLogger();
|
|
52
|
+
const attrs = content['$'];
|
|
53
|
+
const contentId = attrs['content-id'];
|
|
54
|
+
const contentType = content['type']?.[0] ?? null;
|
|
55
|
+
const dataElements = content['data'];
|
|
56
|
+
const node = new LibraryNode({
|
|
57
|
+
id: contentId,
|
|
58
|
+
type: contentType ? (contentType.startsWith('page.') ? 'PAGE' : 'COMPONENT') : 'CONTENT',
|
|
59
|
+
typeId: contentType,
|
|
60
|
+
data: null,
|
|
61
|
+
children: [],
|
|
62
|
+
xml: content,
|
|
63
|
+
hidden: false,
|
|
64
|
+
parent: null,
|
|
65
|
+
});
|
|
66
|
+
// Parse JSON data and extract asset paths
|
|
67
|
+
if (dataElements?.[0]?.['_']) {
|
|
68
|
+
try {
|
|
69
|
+
const dataJson = JSON.parse(dataElements[0]['_']);
|
|
70
|
+
node.data = dataJson;
|
|
71
|
+
const assetPaths = extractAssetPaths(dataJson, assetQuery);
|
|
72
|
+
for (const assetPath of assetPaths) {
|
|
73
|
+
node.children.push(new LibraryNode({
|
|
74
|
+
id: assetPath,
|
|
75
|
+
type: 'STATIC',
|
|
76
|
+
typeId: null,
|
|
77
|
+
data: null,
|
|
78
|
+
parent: node,
|
|
79
|
+
children: [],
|
|
80
|
+
hidden: false,
|
|
81
|
+
xml: null,
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
logger.warn({ contentId }, `Could not parse JSON data for content ${contentId}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Recurse into content-links
|
|
90
|
+
const contentLinks = content['content-links'];
|
|
91
|
+
if (contentLinks?.[0]?.['content-link']) {
|
|
92
|
+
const links = contentLinks[0]['content-link'];
|
|
93
|
+
for (const link of links) {
|
|
94
|
+
const linkAttrs = link['$'];
|
|
95
|
+
const linkId = linkAttrs['content-id'];
|
|
96
|
+
if (!allContent[linkId]) {
|
|
97
|
+
logger.warn(`Cannot find component ${linkId} in library; skipping...`);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const componentNode = processContent(allContent[linkId], allContent, assetQuery);
|
|
101
|
+
componentNode.parent = node;
|
|
102
|
+
node.children.push(componentNode);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return node;
|
|
106
|
+
}
|
|
107
|
+
/** Private guard to enforce use of Library.parse() */
|
|
108
|
+
const CONSTRUCTOR_GUARD = Symbol('Library.parse');
|
|
109
|
+
/**
|
|
110
|
+
* Provides an interface for manipulating B2C Commerce content libraries.
|
|
111
|
+
*
|
|
112
|
+
* Use the static `Library.parse()` factory to create instances from library XML.
|
|
113
|
+
* The library tree supports filtering, traversal, mutation, and serialization
|
|
114
|
+
* back to importable XML.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const library = await Library.parse(xmlString);
|
|
119
|
+
*
|
|
120
|
+
* // Filter to specific pages
|
|
121
|
+
* library.filter(node => node.id === 'homepage');
|
|
122
|
+
*
|
|
123
|
+
* // Traverse visible nodes
|
|
124
|
+
* library.traverse(node => {
|
|
125
|
+
* console.log(node.id, node.type);
|
|
126
|
+
* });
|
|
127
|
+
*
|
|
128
|
+
* // Serialize back to XML
|
|
129
|
+
* const xml = await library.toXMLString({ traverseHidden: false });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export class Library {
|
|
133
|
+
assetQuery = [];
|
|
134
|
+
tree;
|
|
135
|
+
/** @internal Raw xml2js parsed object */
|
|
136
|
+
xml;
|
|
137
|
+
/** @internal */
|
|
138
|
+
constructor(guard) {
|
|
139
|
+
if (guard !== CONSTRUCTOR_GUARD) {
|
|
140
|
+
throw new Error('Use Library.parse() to construct a Library instance');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Parse library XML into a Library tree.
|
|
145
|
+
*
|
|
146
|
+
* @param libraryXML - Raw XML string of a content library
|
|
147
|
+
* @param options - Parse options
|
|
148
|
+
* @returns Parsed Library instance
|
|
149
|
+
*/
|
|
150
|
+
static async parse(libraryXML, { assetQuery = ['image.path'], keepOrphans = false } = {}) {
|
|
151
|
+
const xml = (await xml2js.parseStringPromise(libraryXML));
|
|
152
|
+
const libraryElement = xml['library'];
|
|
153
|
+
const attrs = libraryElement['$'];
|
|
154
|
+
const libraryId = attrs['library-id'];
|
|
155
|
+
const contentArray = libraryElement['content'];
|
|
156
|
+
const library = new Library(CONSTRUCTOR_GUARD);
|
|
157
|
+
library.assetQuery = assetQuery;
|
|
158
|
+
const root = new LibraryNode({
|
|
159
|
+
id: libraryId,
|
|
160
|
+
type: 'LIBRARY',
|
|
161
|
+
typeId: null,
|
|
162
|
+
children: [],
|
|
163
|
+
data: null,
|
|
164
|
+
parent: null,
|
|
165
|
+
hidden: false,
|
|
166
|
+
xml: null,
|
|
167
|
+
});
|
|
168
|
+
// Index all content by ID
|
|
169
|
+
const contentById = {};
|
|
170
|
+
for (const c of contentArray) {
|
|
171
|
+
const cAttrs = c['$'];
|
|
172
|
+
contentById[cAttrs['content-id']] = c;
|
|
173
|
+
}
|
|
174
|
+
// Process pages and root-level content (no type = content asset)
|
|
175
|
+
for (const c of contentArray) {
|
|
176
|
+
const cType = c['type']?.[0];
|
|
177
|
+
if ((cType && cType.startsWith('page.')) || !cType) {
|
|
178
|
+
const node = processContent(c, contentById, assetQuery);
|
|
179
|
+
node.parent = root;
|
|
180
|
+
root.children.push(node);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
library.xml = xml;
|
|
184
|
+
library.tree = root;
|
|
185
|
+
// Optionally include orphan components
|
|
186
|
+
if (keepOrphans) {
|
|
187
|
+
const processedIds = new Set();
|
|
188
|
+
library.traverse((node) => {
|
|
189
|
+
processedIds.add(node.id);
|
|
190
|
+
});
|
|
191
|
+
for (const c of contentArray) {
|
|
192
|
+
const cAttrs = c['$'];
|
|
193
|
+
const cId = cAttrs['content-id'];
|
|
194
|
+
if (!processedIds.has(cId)) {
|
|
195
|
+
const node = processContent(c, contentById, assetQuery);
|
|
196
|
+
node.parent = root;
|
|
197
|
+
root.children.push(node);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Remove headers and folders from xml (not needed for filtered export)
|
|
202
|
+
delete libraryElement['header'];
|
|
203
|
+
delete libraryElement['folder'];
|
|
204
|
+
return library;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Depth-first traversal of the library tree.
|
|
208
|
+
*
|
|
209
|
+
* @param callback - Function called for each visited node
|
|
210
|
+
* @param options - Traversal options
|
|
211
|
+
* @returns this (for chaining)
|
|
212
|
+
*/
|
|
213
|
+
traverse(callback, { traverseHidden = true, callbackHidden = false } = {}) {
|
|
214
|
+
function walk(node) {
|
|
215
|
+
if (!node.hidden || traverseHidden) {
|
|
216
|
+
for (const child of node.children) {
|
|
217
|
+
walk(child);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (!node.hidden || callbackHidden) {
|
|
221
|
+
callback(node);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
for (const child of this.tree.children) {
|
|
225
|
+
walk(child);
|
|
226
|
+
}
|
|
227
|
+
return this;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Generator-based depth-first iteration of the library tree.
|
|
231
|
+
*
|
|
232
|
+
* @param options - Traversal options
|
|
233
|
+
* @yields LibraryNode for each visited node
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* for (const node of library.nodes()) {
|
|
238
|
+
* console.log(node.id, node.type);
|
|
239
|
+
* }
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
*nodes({ traverseHidden = true, callbackHidden = false } = {}) {
|
|
243
|
+
function* walk(node) {
|
|
244
|
+
if (!node.hidden || traverseHidden) {
|
|
245
|
+
for (const child of node.children) {
|
|
246
|
+
yield* walk(child);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (!node.hidden || callbackHidden) {
|
|
250
|
+
yield node;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
for (const child of this.tree.children) {
|
|
254
|
+
yield* walk(child);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Filter the library tree by setting hidden flags on root children.
|
|
259
|
+
*
|
|
260
|
+
* @param predicate - Return true to keep the node visible
|
|
261
|
+
* @param options - Filter options
|
|
262
|
+
* @returns this (for chaining)
|
|
263
|
+
*/
|
|
264
|
+
filter(predicate, { recursive = false } = {}) {
|
|
265
|
+
if (!recursive) {
|
|
266
|
+
for (const child of this.tree.children) {
|
|
267
|
+
child.hidden = !predicate(child);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
this.traverse((n) => {
|
|
272
|
+
n.hidden = !predicate(n);
|
|
273
|
+
}, { traverseHidden: true, callbackHidden: true });
|
|
274
|
+
}
|
|
275
|
+
return this;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Move a node from its current parent to the root of the library tree.
|
|
279
|
+
*
|
|
280
|
+
* Useful for exporting individual components that are normally nested under pages.
|
|
281
|
+
* The node is removed from its original parent's children and added as a root child.
|
|
282
|
+
*
|
|
283
|
+
* @param node - The node to promote
|
|
284
|
+
* @returns this (for chaining)
|
|
285
|
+
*/
|
|
286
|
+
promoteToRoot(node) {
|
|
287
|
+
if (node.parent && node.parent !== this.tree) {
|
|
288
|
+
node.parent.children = node.parent.children.filter((c) => c !== node);
|
|
289
|
+
}
|
|
290
|
+
if (!this.tree.children.includes(node)) {
|
|
291
|
+
node.parent = this.tree;
|
|
292
|
+
node.hidden = false;
|
|
293
|
+
this.tree.children.push(node);
|
|
294
|
+
}
|
|
295
|
+
return this;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Reset all hidden flags, making every node visible again.
|
|
299
|
+
*
|
|
300
|
+
* @returns this (for chaining)
|
|
301
|
+
*/
|
|
302
|
+
reset() {
|
|
303
|
+
this.traverse((n) => {
|
|
304
|
+
n.hidden = false;
|
|
305
|
+
}, { traverseHidden: true, callbackHidden: true });
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Serialize the library back to importable XML.
|
|
310
|
+
*
|
|
311
|
+
* Only includes visible content unless `traverseHidden` is true.
|
|
312
|
+
*
|
|
313
|
+
* @param options - Serialization options
|
|
314
|
+
* @returns XML string
|
|
315
|
+
*/
|
|
316
|
+
async toXMLString({ traverseHidden = true } = {}) {
|
|
317
|
+
const libraryElement = this.xml['library'];
|
|
318
|
+
delete libraryElement['content'];
|
|
319
|
+
libraryElement['content'] = [];
|
|
320
|
+
this.traverse((n) => {
|
|
321
|
+
const node = n;
|
|
322
|
+
if (node.data && node.xml) {
|
|
323
|
+
const dataEl = node.xml['data']?.[0];
|
|
324
|
+
if (dataEl) {
|
|
325
|
+
dataEl['_'] = JSON.stringify(node.data, null, 2);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (node.xml) {
|
|
329
|
+
libraryElement['content'].push(node.xml);
|
|
330
|
+
}
|
|
331
|
+
}, { traverseHidden });
|
|
332
|
+
const builder = new xml2js.Builder();
|
|
333
|
+
return builder.buildObject(this.xml);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Returns a text tree visualization of the library structure.
|
|
337
|
+
*
|
|
338
|
+
* @param options - Tree string options (traversal and optional colorize function)
|
|
339
|
+
* @returns Multi-line tree string
|
|
340
|
+
*/
|
|
341
|
+
getTreeString({ traverseHidden = false, colorize } = {}) {
|
|
342
|
+
const lines = [];
|
|
343
|
+
const c = colorize ?? ((_color, text) => text);
|
|
344
|
+
function formatNode(node) {
|
|
345
|
+
switch (node.type) {
|
|
346
|
+
case 'COMPONENT': {
|
|
347
|
+
return node.typeId ? `${c('cyan', node.typeId)} ${c('dim', `(${node.id})`)}` : node.id;
|
|
348
|
+
}
|
|
349
|
+
case 'CONTENT': {
|
|
350
|
+
return `${c('bold', node.id)} ${c('dim', '(CONTENT ASSET)')}`;
|
|
351
|
+
}
|
|
352
|
+
case 'PAGE': {
|
|
353
|
+
const name = c('bold', node.id);
|
|
354
|
+
return node.typeId ? `${name} ${c('dim', `(typeId: ${node.typeId})`)}` : name;
|
|
355
|
+
}
|
|
356
|
+
case 'STATIC': {
|
|
357
|
+
return `${c('green', node.id)} ${c('dim', '(STATIC ASSET)')}`;
|
|
358
|
+
}
|
|
359
|
+
default: {
|
|
360
|
+
return node.id;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
function visibleChildren(node) {
|
|
365
|
+
return traverseHidden ? node.children : node.children.filter((child) => !child.hidden);
|
|
366
|
+
}
|
|
367
|
+
function renderSubtree(children, prefix) {
|
|
368
|
+
for (let i = 0; i < children.length; i++) {
|
|
369
|
+
const node = children[i];
|
|
370
|
+
const isLast = i === children.length - 1;
|
|
371
|
+
const connector = isLast ? '└── ' : '├── ';
|
|
372
|
+
const extension = isLast ? ' ' : '│ ';
|
|
373
|
+
const hiddenTag = node.hidden ? ` ${c('yellow', '[HIDDEN]')}` : '';
|
|
374
|
+
lines.push(`${c('dim', prefix + connector)}${formatNode(node)}${hiddenTag}`);
|
|
375
|
+
renderSubtree(visibleChildren(node), prefix + extension);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
for (const child of visibleChildren(this.tree)) {
|
|
379
|
+
const hiddenTag = child.hidden ? ` ${c('yellow', '[HIDDEN]')}` : '';
|
|
380
|
+
lines.push(`${formatNode(child)}${hiddenTag}`);
|
|
381
|
+
renderSubtree(visibleChildren(child), '');
|
|
382
|
+
}
|
|
383
|
+
return lines.join('\n');
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Returns a JSON-safe representation of the library tree.
|
|
387
|
+
*/
|
|
388
|
+
toJSON() {
|
|
389
|
+
return this.tree.toJSON();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../src/operations/content/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { WaitForJobOptions } from '../jobs/run.js';
|
|
2
|
+
/**
|
|
3
|
+
* Node types in a content library tree.
|
|
4
|
+
*/
|
|
5
|
+
export type LibraryNodeType = 'LIBRARY' | 'PAGE' | 'CONTENT' | 'COMPONENT' | 'STATIC';
|
|
6
|
+
/**
|
|
7
|
+
* Options for parsing a library XML string into a Library tree.
|
|
8
|
+
*/
|
|
9
|
+
export interface LibraryParseOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Dot-notation paths for extracting static asset references from component JSON data.
|
|
12
|
+
* Use `*` as a wildcard to traverse arrays.
|
|
13
|
+
*
|
|
14
|
+
* @default ['image.path']
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Extract image paths from nested JSON
|
|
19
|
+
* { assetQuery: ['image.path', 'banners.*.image.src'] }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
assetQuery?: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Include orphan components (components not linked to any page) as root-level children.
|
|
25
|
+
* Useful for cleaning up unused components.
|
|
26
|
+
*
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
keepOrphans?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Options controlling tree traversal behavior.
|
|
33
|
+
*/
|
|
34
|
+
export interface TraverseOptions {
|
|
35
|
+
/** Traverse into hidden (filtered-out) subtrees. @default true */
|
|
36
|
+
traverseHidden?: boolean;
|
|
37
|
+
/** Execute callback for hidden nodes. @default false */
|
|
38
|
+
callbackHidden?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Callback for tree traversal.
|
|
42
|
+
*/
|
|
43
|
+
export type TraverseCallback = (node: LibraryNodeData) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Callback for tree filtering. Return true to keep the node visible.
|
|
46
|
+
*/
|
|
47
|
+
export type FilterCallback = (node: LibraryNodeData) => boolean;
|
|
48
|
+
/**
|
|
49
|
+
* A function that applies terminal color/style to text.
|
|
50
|
+
* Compatible with oclif's `ux.colorize(color, text)` signature.
|
|
51
|
+
*/
|
|
52
|
+
export type ColorizeFn = (color: string, text: string) => string;
|
|
53
|
+
/**
|
|
54
|
+
* Options for generating a tree string visualization.
|
|
55
|
+
*/
|
|
56
|
+
export interface TreeStringOptions {
|
|
57
|
+
/** Whether to include hidden nodes in the output. @default false */
|
|
58
|
+
traverseHidden?: boolean;
|
|
59
|
+
/** Optional colorize function for terminal styling. When omitted, plain text is returned. */
|
|
60
|
+
colorize?: ColorizeFn;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Minimal interface for LibraryNode data (avoids circular import).
|
|
64
|
+
*/
|
|
65
|
+
export interface LibraryNodeData {
|
|
66
|
+
id: string;
|
|
67
|
+
type: LibraryNodeType;
|
|
68
|
+
typeId: string | null;
|
|
69
|
+
data: Record<string, unknown> | null;
|
|
70
|
+
parent: LibraryNodeData | null;
|
|
71
|
+
children: LibraryNodeData[];
|
|
72
|
+
hidden: boolean;
|
|
73
|
+
/** @internal Raw xml2js content object */
|
|
74
|
+
xml: Record<string, unknown> | null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Options for fetching a content library from an instance or local file.
|
|
78
|
+
*/
|
|
79
|
+
export interface FetchContentLibraryOptions {
|
|
80
|
+
/** Use a local library XML file instead of fetching from the instance. */
|
|
81
|
+
libraryFile?: string;
|
|
82
|
+
/** Library is a site-private library (use site export path). */
|
|
83
|
+
isSiteLibrary?: boolean;
|
|
84
|
+
/** Asset query paths for static asset extraction. @default ['image.path'] */
|
|
85
|
+
assetQuery?: string[];
|
|
86
|
+
/** Include orphan components. @default false */
|
|
87
|
+
keepOrphans?: boolean;
|
|
88
|
+
/** Wait options for the export job. */
|
|
89
|
+
waitOptions?: WaitForJobOptions;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Result of fetching and parsing a content library.
|
|
93
|
+
*/
|
|
94
|
+
export interface FetchContentLibraryResult {
|
|
95
|
+
/** The parsed library tree (filter/traverse/mutate as needed). */
|
|
96
|
+
library: import('./library.js').Library;
|
|
97
|
+
/** The raw archive data buffer (for further processing or re-import). */
|
|
98
|
+
archiveData?: Buffer;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Options for the high-level content export operation.
|
|
102
|
+
*/
|
|
103
|
+
export interface ContentExportOptions {
|
|
104
|
+
/** Library is a site-private library. @default false */
|
|
105
|
+
isSiteLibrary?: boolean;
|
|
106
|
+
/** Asset query paths for static asset extraction. @default ['image.path'] */
|
|
107
|
+
assetQuery?: string[];
|
|
108
|
+
/** Use a local library XML file instead of fetching from instance. */
|
|
109
|
+
libraryFile?: string;
|
|
110
|
+
/** Skip asset downloads. @default false */
|
|
111
|
+
offline?: boolean;
|
|
112
|
+
/** Filter by folder classification IDs. */
|
|
113
|
+
folders?: string[];
|
|
114
|
+
/** Treat page IDs as regular expressions. @default false */
|
|
115
|
+
regex?: boolean;
|
|
116
|
+
/** Include orphan components. @default false */
|
|
117
|
+
keepOrphans?: boolean;
|
|
118
|
+
/** Wait options for the export job. */
|
|
119
|
+
waitOptions?: WaitForJobOptions;
|
|
120
|
+
/** Callback for asset download progress. */
|
|
121
|
+
onAssetProgress?: (asset: string, index: number, total: number, success: boolean) => void;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Result of a content export operation.
|
|
125
|
+
*/
|
|
126
|
+
export interface ContentExportResult {
|
|
127
|
+
/** The parsed and filtered library tree. */
|
|
128
|
+
library: import('./library.js').Library;
|
|
129
|
+
/** Output directory path. */
|
|
130
|
+
outputPath: string;
|
|
131
|
+
/** List of successfully downloaded asset paths. */
|
|
132
|
+
downloadedAssets: string[];
|
|
133
|
+
/** List of assets that failed to download. */
|
|
134
|
+
failedAssets: {
|
|
135
|
+
path: string;
|
|
136
|
+
error: string;
|
|
137
|
+
}[];
|
|
138
|
+
/** Number of pages in the filtered export. */
|
|
139
|
+
pageCount: number;
|
|
140
|
+
/** Number of content assets in the filtered export. */
|
|
141
|
+
contentCount: number;
|
|
142
|
+
/** Number of components in the filtered export. */
|
|
143
|
+
componentCount: number;
|
|
144
|
+
}
|