@salesforce/b2c-tooling-sdk 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/content-schemas/componenttype.json +37 -0
- package/dist/esm/config/dw-json.d.ts +9 -2
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/index.d.ts +2 -2
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/mapping.d.ts +7 -1
- package/dist/esm/config/mapping.js +10 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/sources/package-json-source.js +1 -0
- package/dist/esm/config/sources/package-json-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +23 -2
- package/dist/esm/operations/content/validate.js +46 -4
- package/dist/esm/operations/content/validate.js.map +1 -1
- package/dist/esm/operations/jobs/site-archive.d.ts +12 -0
- package/dist/esm/operations/jobs/site-archive.js +107 -3
- package/dist/esm/operations/jobs/site-archive.js.map +1 -1
- package/package.json +73 -285
- package/dist/cjs/auth/api-key.d.ts +0 -28
- package/dist/cjs/auth/api-key.js +0 -45
- package/dist/cjs/auth/api-key.js.map +0 -1
- package/dist/cjs/auth/basic.d.ts +0 -7
- package/dist/cjs/auth/basic.js +0 -20
- package/dist/cjs/auth/basic.js.map +0 -1
- package/dist/cjs/auth/index.d.ts +0 -74
- package/dist/cjs/auth/index.js +0 -76
- package/dist/cjs/auth/index.js.map +0 -1
- package/dist/cjs/auth/jwt-utils.d.ts +0 -25
- package/dist/cjs/auth/jwt-utils.js +0 -66
- package/dist/cjs/auth/jwt-utils.js.map +0 -1
- package/dist/cjs/auth/middleware.d.ts +0 -196
- package/dist/cjs/auth/middleware.js +0 -190
- package/dist/cjs/auth/middleware.js.map +0 -1
- package/dist/cjs/auth/oauth-implicit.d.ts +0 -89
- package/dist/cjs/auth/oauth-implicit.js +0 -350
- package/dist/cjs/auth/oauth-implicit.js.map +0 -1
- package/dist/cjs/auth/oauth-jwt.d.ts +0 -99
- package/dist/cjs/auth/oauth-jwt.js +0 -343
- package/dist/cjs/auth/oauth-jwt.js.map +0 -1
- package/dist/cjs/auth/oauth.d.ts +0 -88
- package/dist/cjs/auth/oauth.js +0 -252
- package/dist/cjs/auth/oauth.js.map +0 -1
- package/dist/cjs/auth/resolve.d.ts +0 -100
- package/dist/cjs/auth/resolve.js +0 -175
- package/dist/cjs/auth/resolve.js.map +0 -1
- package/dist/cjs/auth/stateful-oauth-strategy.d.ts +0 -39
- package/dist/cjs/auth/stateful-oauth-strategy.js +0 -130
- package/dist/cjs/auth/stateful-oauth-strategy.js.map +0 -1
- package/dist/cjs/auth/stateful-store.d.ts +0 -49
- package/dist/cjs/auth/stateful-store.js +0 -166
- package/dist/cjs/auth/stateful-store.js.map +0 -1
- package/dist/cjs/auth/types.d.ts +0 -124
- package/dist/cjs/auth/types.js +0 -8
- package/dist/cjs/auth/types.js.map +0 -1
- package/dist/cjs/cli/am-command.d.ts +0 -74
- package/dist/cjs/cli/am-command.js +0 -199
- package/dist/cjs/cli/am-command.js.map +0 -1
- package/dist/cjs/cli/base-command.d.ts +0 -232
- package/dist/cjs/cli/base-command.js +0 -695
- package/dist/cjs/cli/base-command.js.map +0 -1
- package/dist/cjs/cli/cartridge-command.d.ts +0 -67
- package/dist/cjs/cli/cartridge-command.js +0 -146
- package/dist/cjs/cli/cartridge-command.js.map +0 -1
- package/dist/cjs/cli/cartridge-providers.d.ts +0 -149
- package/dist/cjs/cli/cartridge-providers.js +0 -103
- package/dist/cjs/cli/cartridge-providers.js.map +0 -1
- package/dist/cjs/cli/columns.d.ts +0 -128
- package/dist/cjs/cli/columns.js +0 -128
- package/dist/cjs/cli/columns.js.map +0 -1
- package/dist/cjs/cli/config.d.ts +0 -159
- package/dist/cjs/cli/config.js +0 -185
- package/dist/cjs/cli/config.js.map +0 -1
- package/dist/cjs/cli/details.d.ts +0 -69
- package/dist/cjs/cli/details.js +0 -72
- package/dist/cjs/cli/details.js.map +0 -1
- package/dist/cjs/cli/hooks.d.ts +0 -324
- package/dist/cjs/cli/hooks.js +0 -3
- package/dist/cjs/cli/hooks.js.map +0 -1
- package/dist/cjs/cli/index.d.ts +0 -108
- package/dist/cjs/cli/index.js +0 -111
- package/dist/cjs/cli/index.js.map +0 -1
- package/dist/cjs/cli/instance-command.d.ts +0 -131
- package/dist/cjs/cli/instance-command.js +0 -214
- package/dist/cjs/cli/instance-command.js.map +0 -1
- package/dist/cjs/cli/job-command.d.ts +0 -32
- package/dist/cjs/cli/job-command.js +0 -60
- package/dist/cjs/cli/job-command.js.map +0 -1
- package/dist/cjs/cli/lifecycle.d.ts +0 -189
- package/dist/cjs/cli/lifecycle.js +0 -130
- package/dist/cjs/cli/lifecycle.js.map +0 -1
- package/dist/cjs/cli/mrt-command.d.ts +0 -57
- package/dist/cjs/cli/mrt-command.js +0 -95
- package/dist/cjs/cli/mrt-command.js.map +0 -1
- package/dist/cjs/cli/oauth-command.d.ts +0 -122
- package/dist/cjs/cli/oauth-command.js +0 -311
- package/dist/cjs/cli/oauth-command.js.map +0 -1
- package/dist/cjs/cli/ods-command.d.ts +0 -97
- package/dist/cjs/cli/ods-command.js +0 -136
- package/dist/cjs/cli/ods-command.js.map +0 -1
- package/dist/cjs/cli/table.d.ts +0 -113
- package/dist/cjs/cli/table.js +0 -175
- package/dist/cjs/cli/table.js.map +0 -1
- package/dist/cjs/cli/webdav-command.d.ts +0 -110
- package/dist/cjs/cli/webdav-command.js +0 -106
- package/dist/cjs/cli/webdav-command.js.map +0 -1
- package/dist/cjs/clients/am-api.d.ts +0 -521
- package/dist/cjs/clients/am-api.js +0 -992
- package/dist/cjs/clients/am-api.js.map +0 -1
- package/dist/cjs/clients/am-apiclients-api.generated.d.ts +0 -803
- package/dist/cjs/clients/am-apiclients-api.generated.js +0 -6
- package/dist/cjs/clients/am-apiclients-api.generated.js.map +0 -1
- package/dist/cjs/clients/am-roles-api.generated.d.ts +0 -298
- package/dist/cjs/clients/am-roles-api.generated.js +0 -6
- package/dist/cjs/clients/am-roles-api.generated.js.map +0 -1
- package/dist/cjs/clients/am-users-api.generated.d.ts +0 -954
- package/dist/cjs/clients/am-users-api.generated.js +0 -6
- package/dist/cjs/clients/am-users-api.generated.js.map +0 -1
- package/dist/cjs/clients/cdn-zones.d.ts +0 -186
- package/dist/cjs/clients/cdn-zones.generated.d.ts +0 -8330
- package/dist/cjs/clients/cdn-zones.generated.js +0 -6
- package/dist/cjs/clients/cdn-zones.generated.js.map +0 -1
- package/dist/cjs/clients/cdn-zones.js +0 -103
- package/dist/cjs/clients/cdn-zones.js.map +0 -1
- package/dist/cjs/clients/cip.d.ts +0 -162
- package/dist/cjs/clients/cip.js +0 -572
- package/dist/cjs/clients/cip.js.map +0 -1
- package/dist/cjs/clients/custom-apis.d.ts +0 -174
- package/dist/cjs/clients/custom-apis.generated.d.ts +0 -202
- package/dist/cjs/clients/custom-apis.generated.js +0 -6
- package/dist/cjs/clients/custom-apis.generated.js.map +0 -1
- package/dist/cjs/clients/custom-apis.js +0 -140
- package/dist/cjs/clients/custom-apis.js.map +0 -1
- package/dist/cjs/clients/error-utils.d.ts +0 -35
- package/dist/cjs/clients/error-utils.js +0 -69
- package/dist/cjs/clients/error-utils.js.map +0 -1
- package/dist/cjs/clients/granular-replications.d.ts +0 -70
- package/dist/cjs/clients/granular-replications.generated.d.ts +0 -416
- package/dist/cjs/clients/granular-replications.generated.js +0 -6
- package/dist/cjs/clients/granular-replications.generated.js.map +0 -1
- package/dist/cjs/clients/granular-replications.js +0 -73
- package/dist/cjs/clients/granular-replications.js.map +0 -1
- package/dist/cjs/clients/index.d.ts +0 -145
- package/dist/cjs/clients/index.js +0 -137
- package/dist/cjs/clients/index.js.map +0 -1
- package/dist/cjs/clients/middleware-registry.d.ts +0 -184
- package/dist/cjs/clients/middleware-registry.js +0 -104
- package/dist/cjs/clients/middleware-registry.js.map +0 -1
- package/dist/cjs/clients/middleware.d.ts +0 -183
- package/dist/cjs/clients/middleware.js +0 -465
- package/dist/cjs/clients/middleware.js.map +0 -1
- package/dist/cjs/clients/mrt-b2c.d.ts +0 -138
- package/dist/cjs/clients/mrt-b2c.generated.d.ts +0 -176
- package/dist/cjs/clients/mrt-b2c.generated.js +0 -6
- package/dist/cjs/clients/mrt-b2c.generated.js.map +0 -1
- package/dist/cjs/clients/mrt-b2c.js +0 -86
- package/dist/cjs/clients/mrt-b2c.js.map +0 -1
- package/dist/cjs/clients/mrt.d.ts +0 -143
- package/dist/cjs/clients/mrt.generated.d.ts +0 -3806
- package/dist/cjs/clients/mrt.generated.js +0 -6
- package/dist/cjs/clients/mrt.generated.js.map +0 -1
- package/dist/cjs/clients/mrt.js +0 -93
- package/dist/cjs/clients/mrt.js.map +0 -1
- package/dist/cjs/clients/ocapi.d.ts +0 -128
- package/dist/cjs/clients/ocapi.generated.d.ts +0 -26052
- package/dist/cjs/clients/ocapi.generated.js +0 -6
- package/dist/cjs/clients/ocapi.generated.js.map +0 -1
- package/dist/cjs/clients/ocapi.js +0 -78
- package/dist/cjs/clients/ocapi.js.map +0 -1
- package/dist/cjs/clients/ods.d.ts +0 -160
- package/dist/cjs/clients/ods.generated.d.ts +0 -2860
- package/dist/cjs/clients/ods.generated.js +0 -6
- package/dist/cjs/clients/ods.generated.js.map +0 -1
- package/dist/cjs/clients/ods.js +0 -103
- package/dist/cjs/clients/ods.js.map +0 -1
- package/dist/cjs/clients/scapi-schemas.d.ts +0 -161
- package/dist/cjs/clients/scapi-schemas.generated.d.ts +0 -328
- package/dist/cjs/clients/scapi-schemas.generated.js +0 -6
- package/dist/cjs/clients/scapi-schemas.generated.js.map +0 -1
- package/dist/cjs/clients/scapi-schemas.js +0 -98
- package/dist/cjs/clients/scapi-schemas.js.map +0 -1
- package/dist/cjs/clients/slas-admin.d.ts +0 -132
- package/dist/cjs/clients/slas-admin.generated.d.ts +0 -1434
- package/dist/cjs/clients/slas-admin.generated.js +0 -6
- package/dist/cjs/clients/slas-admin.generated.js.map +0 -1
- package/dist/cjs/clients/slas-admin.js +0 -79
- package/dist/cjs/clients/slas-admin.js.map +0 -1
- package/dist/cjs/clients/tls-dispatcher.d.ts +0 -42
- package/dist/cjs/clients/tls-dispatcher.js +0 -107
- package/dist/cjs/clients/tls-dispatcher.js.map +0 -1
- package/dist/cjs/clients/user-agent.d.ts +0 -43
- package/dist/cjs/clients/user-agent.js +0 -87
- package/dist/cjs/clients/user-agent.js.map +0 -1
- package/dist/cjs/clients/webdav.d.ts +0 -186
- package/dist/cjs/clients/webdav.js +0 -395
- package/dist/cjs/clients/webdav.js.map +0 -1
- package/dist/cjs/config/config-source-registry.d.ts +0 -115
- package/dist/cjs/config/config-source-registry.js +0 -103
- package/dist/cjs/config/config-source-registry.js.map +0 -1
- package/dist/cjs/config/dw-json.d.ts +0 -267
- package/dist/cjs/config/dw-json.js +0 -333
- package/dist/cjs/config/dw-json.js.map +0 -1
- package/dist/cjs/config/index.d.ts +0 -100
- package/dist/cjs/config/index.js +0 -110
- package/dist/cjs/config/index.js.map +0 -1
- package/dist/cjs/config/instance-manager.d.ts +0 -97
- package/dist/cjs/config/instance-manager.js +0 -166
- package/dist/cjs/config/instance-manager.js.map +0 -1
- package/dist/cjs/config/mapping.d.ts +0 -193
- package/dist/cjs/config/mapping.js +0 -530
- package/dist/cjs/config/mapping.js.map +0 -1
- package/dist/cjs/config/resolved-config.d.ts +0 -29
- package/dist/cjs/config/resolved-config.js +0 -81
- package/dist/cjs/config/resolved-config.js.map +0 -1
- package/dist/cjs/config/resolver.d.ts +0 -191
- package/dist/cjs/config/resolver.js +0 -406
- package/dist/cjs/config/resolver.js.map +0 -1
- package/dist/cjs/config/sources/dw-json-source.d.ts +0 -27
- package/dist/cjs/config/sources/dw-json-source.js +0 -106
- package/dist/cjs/config/sources/dw-json-source.js.map +0 -1
- package/dist/cjs/config/sources/env-source.d.ts +0 -32
- package/dist/cjs/config/sources/env-source.js +0 -116
- package/dist/cjs/config/sources/env-source.js.map +0 -1
- package/dist/cjs/config/sources/index.d.ts +0 -9
- package/dist/cjs/config/sources/index.js +0 -15
- package/dist/cjs/config/sources/index.js.map +0 -1
- package/dist/cjs/config/sources/mobify-source.d.ts +0 -25
- package/dist/cjs/config/sources/mobify-source.js +0 -84
- package/dist/cjs/config/sources/mobify-source.js.map +0 -1
- package/dist/cjs/config/sources/package-json-source.d.ts +0 -14
- package/dist/cjs/config/sources/package-json-source.js +0 -96
- package/dist/cjs/config/sources/package-json-source.js.map +0 -1
- package/dist/cjs/config/types.d.ts +0 -407
- package/dist/cjs/config/types.js +0 -2
- package/dist/cjs/config/types.js.map +0 -1
- package/dist/cjs/defaults.d.ts +0 -36
- package/dist/cjs/defaults.js +0 -54
- package/dist/cjs/defaults.js.map +0 -1
- package/dist/cjs/discovery/detector.d.ts +0 -75
- package/dist/cjs/discovery/detector.js +0 -108
- package/dist/cjs/discovery/detector.js.map +0 -1
- package/dist/cjs/discovery/index.d.ts +0 -63
- package/dist/cjs/discovery/index.js +0 -70
- package/dist/cjs/discovery/index.js.map +0 -1
- package/dist/cjs/discovery/patterns/cartridges.d.ts +0 -16
- package/dist/cjs/discovery/patterns/cartridges.js +0 -16
- package/dist/cjs/discovery/patterns/cartridges.js.map +0 -1
- package/dist/cjs/discovery/patterns/index.d.ts +0 -21
- package/dist/cjs/discovery/patterns/index.js +0 -16
- package/dist/cjs/discovery/patterns/index.js.map +0 -1
- package/dist/cjs/discovery/patterns/pwa-kit.d.ts +0 -15
- package/dist/cjs/discovery/patterns/pwa-kit.js +0 -26
- package/dist/cjs/discovery/patterns/pwa-kit.js.map +0 -1
- package/dist/cjs/discovery/patterns/sfra.d.ts +0 -34
- package/dist/cjs/discovery/patterns/sfra.js +0 -50
- package/dist/cjs/discovery/patterns/sfra.js.map +0 -1
- package/dist/cjs/discovery/patterns/storefront-next.d.ts +0 -10
- package/dist/cjs/discovery/patterns/storefront-next.js +0 -65
- package/dist/cjs/discovery/patterns/storefront-next.js.map +0 -1
- package/dist/cjs/discovery/types.d.ts +0 -47
- package/dist/cjs/discovery/types.js +0 -12
- package/dist/cjs/discovery/types.js.map +0 -1
- package/dist/cjs/discovery/utils.d.ts +0 -44
- package/dist/cjs/discovery/utils.js +0 -82
- package/dist/cjs/discovery/utils.js.map +0 -1
- package/dist/cjs/docs/download.d.ts +0 -45
- package/dist/cjs/docs/download.js +0 -96
- package/dist/cjs/docs/download.js.map +0 -1
- package/dist/cjs/docs/index.d.ts +0 -44
- package/dist/cjs/docs/index.js +0 -12
- package/dist/cjs/docs/index.js.map +0 -1
- package/dist/cjs/docs/schema.d.ts +0 -26
- package/dist/cjs/docs/schema.js +0 -92
- package/dist/cjs/docs/schema.js.map +0 -1
- package/dist/cjs/docs/search.d.ts +0 -67
- package/dist/cjs/docs/search.js +0 -128
- package/dist/cjs/docs/search.js.map +0 -1
- package/dist/cjs/docs/types.d.ts +0 -64
- package/dist/cjs/docs/types.js +0 -15
- package/dist/cjs/docs/types.js.map +0 -1
- package/dist/cjs/errors/http-error.d.ts +0 -34
- package/dist/cjs/errors/http-error.js +0 -45
- package/dist/cjs/errors/http-error.js.map +0 -1
- package/dist/cjs/errors/index.d.ts +0 -12
- package/dist/cjs/errors/index.js +0 -18
- package/dist/cjs/errors/index.js.map +0 -1
- package/dist/cjs/i18n/index.d.ts +0 -144
- package/dist/cjs/i18n/index.js +0 -245
- package/dist/cjs/i18n/index.js.map +0 -1
- package/dist/cjs/i18n/locales/de.d.ts +0 -13
- package/dist/cjs/i18n/locales/de.js +0 -19
- package/dist/cjs/i18n/locales/de.js.map +0 -1
- package/dist/cjs/i18n/locales/index.d.ts +0 -28
- package/dist/cjs/i18n/locales/index.js +0 -25
- package/dist/cjs/i18n/locales/index.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -33
- package/dist/cjs/index.js +0 -41
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/instance/index.d.ts +0 -136
- package/dist/cjs/instance/index.js +0 -131
- package/dist/cjs/instance/index.js.map +0 -1
- package/dist/cjs/logging/index.d.ts +0 -116
- package/dist/cjs/logging/index.js +0 -121
- package/dist/cjs/logging/index.js.map +0 -1
- package/dist/cjs/logging/logger.d.ts +0 -9
- package/dist/cjs/logging/logger.js +0 -138
- package/dist/cjs/logging/logger.js.map +0 -1
- package/dist/cjs/logging/types.d.ts +0 -45
- package/dist/cjs/logging/types.js +0 -10
- package/dist/cjs/logging/types.js.map +0 -1
- package/dist/cjs/operations/bm-roles/index.d.ts +0 -52
- package/dist/cjs/operations/bm-roles/index.js +0 -57
- package/dist/cjs/operations/bm-roles/index.js.map +0 -1
- package/dist/cjs/operations/bm-roles/roles.d.ts +0 -155
- package/dist/cjs/operations/bm-roles/roles.js +0 -194
- package/dist/cjs/operations/bm-roles/roles.js.map +0 -1
- package/dist/cjs/operations/bm-users/index.d.ts +0 -50
- package/dist/cjs/operations/bm-users/index.js +0 -55
- package/dist/cjs/operations/bm-users/index.js.map +0 -1
- package/dist/cjs/operations/bm-users/users.d.ts +0 -189
- package/dist/cjs/operations/bm-users/users.js +0 -229
- package/dist/cjs/operations/bm-users/users.js.map +0 -1
- package/dist/cjs/operations/cap/index.d.ts +0 -56
- package/dist/cjs/operations/cap/index.js +0 -57
- package/dist/cjs/operations/cap/index.js.map +0 -1
- package/dist/cjs/operations/cap/install.d.ts +0 -53
- package/dist/cjs/operations/cap/install.js +0 -181
- package/dist/cjs/operations/cap/install.js.map +0 -1
- package/dist/cjs/operations/cap/list.d.ts +0 -92
- package/dist/cjs/operations/cap/list.js +0 -230
- package/dist/cjs/operations/cap/list.js.map +0 -1
- package/dist/cjs/operations/cap/package.d.ts +0 -39
- package/dist/cjs/operations/cap/package.js +0 -77
- package/dist/cjs/operations/cap/package.js.map +0 -1
- package/dist/cjs/operations/cap/pull.d.ts +0 -21
- package/dist/cjs/operations/cap/pull.js +0 -77
- package/dist/cjs/operations/cap/pull.js.map +0 -1
- package/dist/cjs/operations/cap/uninstall.d.ts +0 -46
- package/dist/cjs/operations/cap/uninstall.js +0 -87
- package/dist/cjs/operations/cap/uninstall.js.map +0 -1
- package/dist/cjs/operations/cap/validate.d.ts +0 -47
- package/dist/cjs/operations/cap/validate.js +0 -235
- package/dist/cjs/operations/cap/validate.js.map +0 -1
- package/dist/cjs/operations/cip/index.d.ts +0 -35
- package/dist/cjs/operations/cip/index.js +0 -128
- package/dist/cjs/operations/cip/index.js.map +0 -1
- package/dist/cjs/operations/cip/reports.d.ts +0 -2
- package/dist/cjs/operations/cip/reports.js +0 -210
- package/dist/cjs/operations/cip/reports.js.map +0 -1
- package/dist/cjs/operations/cip/types.d.ts +0 -97
- package/dist/cjs/operations/cip/types.js +0 -7
- package/dist/cjs/operations/cip/types.js.map +0 -1
- package/dist/cjs/operations/code/cartridges.d.ts +0 -46
- package/dist/cjs/operations/code/cartridges.js +0 -69
- package/dist/cjs/operations/code/cartridges.js.map +0 -1
- package/dist/cjs/operations/code/deploy.d.ts +0 -121
- package/dist/cjs/operations/code/deploy.js +0 -255
- package/dist/cjs/operations/code/deploy.js.map +0 -1
- package/dist/cjs/operations/code/download.d.ts +0 -77
- package/dist/cjs/operations/code/download.js +0 -300
- package/dist/cjs/operations/code/download.js.map +0 -1
- package/dist/cjs/operations/code/index.d.ts +0 -74
- package/dist/cjs/operations/code/index.js +0 -80
- package/dist/cjs/operations/code/index.js.map +0 -1
- package/dist/cjs/operations/code/upload-files.d.ts +0 -47
- package/dist/cjs/operations/code/upload-files.js +0 -116
- package/dist/cjs/operations/code/upload-files.js.map +0 -1
- package/dist/cjs/operations/code/versions.d.ts +0 -99
- package/dist/cjs/operations/code/versions.js +0 -156
- package/dist/cjs/operations/code/versions.js.map +0 -1
- package/dist/cjs/operations/code/watch.d.ts +0 -58
- package/dist/cjs/operations/code/watch.js +0 -175
- package/dist/cjs/operations/code/watch.js.map +0 -1
- package/dist/cjs/operations/content/asset-query.d.ts +0 -22
- package/dist/cjs/operations/content/asset-query.js +0 -77
- package/dist/cjs/operations/content/asset-query.js.map +0 -1
- package/dist/cjs/operations/content/export.d.ts +0 -57
- package/dist/cjs/operations/content/export.js +0 -221
- package/dist/cjs/operations/content/export.js.map +0 -1
- package/dist/cjs/operations/content/index.d.ts +0 -56
- package/dist/cjs/operations/content/index.js +0 -60
- package/dist/cjs/operations/content/index.js.map +0 -1
- package/dist/cjs/operations/content/library.d.ts +0 -137
- package/dist/cjs/operations/content/library.js +0 -396
- package/dist/cjs/operations/content/library.js.map +0 -1
- package/dist/cjs/operations/content/types.d.ts +0 -144
- package/dist/cjs/operations/content/types.js +0 -7
- package/dist/cjs/operations/content/types.js.map +0 -1
- package/dist/cjs/operations/content/validate.d.ts +0 -64
- package/dist/cjs/operations/content/validate.js +0 -170
- package/dist/cjs/operations/content/validate.js.map +0 -1
- package/dist/cjs/operations/debug/dap-adapter.d.ts +0 -72
- package/dist/cjs/operations/debug/dap-adapter.js +0 -505
- package/dist/cjs/operations/debug/dap-adapter.js.map +0 -1
- package/dist/cjs/operations/debug/debug-session.d.ts +0 -51
- package/dist/cjs/operations/debug/debug-session.js +0 -234
- package/dist/cjs/operations/debug/debug-session.js.map +0 -1
- package/dist/cjs/operations/debug/index.d.ts +0 -20
- package/dist/cjs/operations/debug/index.js +0 -21
- package/dist/cjs/operations/debug/index.js.map +0 -1
- package/dist/cjs/operations/debug/projections.d.ts +0 -72
- package/dist/cjs/operations/debug/projections.js +0 -84
- package/dist/cjs/operations/debug/projections.js.map +0 -1
- package/dist/cjs/operations/debug/resolve-path.d.ts +0 -15
- package/dist/cjs/operations/debug/resolve-path.js +0 -52
- package/dist/cjs/operations/debug/resolve-path.js.map +0 -1
- package/dist/cjs/operations/debug/sdapi-client.d.ts +0 -44
- package/dist/cjs/operations/debug/sdapi-client.js +0 -169
- package/dist/cjs/operations/debug/sdapi-client.js.map +0 -1
- package/dist/cjs/operations/debug/source-mapping.d.ts +0 -13
- package/dist/cjs/operations/debug/source-mapping.js +0 -57
- package/dist/cjs/operations/debug/source-mapping.js.map +0 -1
- package/dist/cjs/operations/debug/types.d.ts +0 -95
- package/dist/cjs/operations/debug/types.js +0 -2
- package/dist/cjs/operations/debug/types.js.map +0 -1
- package/dist/cjs/operations/debug/variable-store.d.ts +0 -35
- package/dist/cjs/operations/debug/variable-store.js +0 -52
- package/dist/cjs/operations/debug/variable-store.js.map +0 -1
- package/dist/cjs/operations/jobs/index.d.ts +0 -66
- package/dist/cjs/operations/jobs/index.js +0 -72
- package/dist/cjs/operations/jobs/index.js.map +0 -1
- package/dist/cjs/operations/jobs/run.d.ts +0 -239
- package/dist/cjs/operations/jobs/run.js +0 -324
- package/dist/cjs/operations/jobs/run.js.map +0 -1
- package/dist/cjs/operations/jobs/site-archive.d.ts +0 -267
- package/dist/cjs/operations/jobs/site-archive.js +0 -423
- package/dist/cjs/operations/jobs/site-archive.js.map +0 -1
- package/dist/cjs/operations/logs/index.d.ts +0 -65
- package/dist/cjs/operations/logs/index.js +0 -73
- package/dist/cjs/operations/logs/index.js.map +0 -1
- package/dist/cjs/operations/logs/list.d.ts +0 -35
- package/dist/cjs/operations/logs/list.js +0 -144
- package/dist/cjs/operations/logs/list.js.map +0 -1
- package/dist/cjs/operations/logs/path-normalizer.d.ts +0 -82
- package/dist/cjs/operations/logs/path-normalizer.js +0 -190
- package/dist/cjs/operations/logs/path-normalizer.js.map +0 -1
- package/dist/cjs/operations/logs/tail.d.ts +0 -92
- package/dist/cjs/operations/logs/tail.js +0 -525
- package/dist/cjs/operations/logs/tail.js.map +0 -1
- package/dist/cjs/operations/logs/types.d.ts +0 -132
- package/dist/cjs/operations/logs/types.js +0 -7
- package/dist/cjs/operations/logs/types.js.map +0 -1
- package/dist/cjs/operations/mrt/access-control.d.ts +0 -192
- package/dist/cjs/operations/mrt/access-control.js +0 -152
- package/dist/cjs/operations/mrt/access-control.js.map +0 -1
- package/dist/cjs/operations/mrt/b2c-config.d.ts +0 -201
- package/dist/cjs/operations/mrt/b2c-config.js +0 -210
- package/dist/cjs/operations/mrt/b2c-config.js.map +0 -1
- package/dist/cjs/operations/mrt/bundle.d.ts +0 -114
- package/dist/cjs/operations/mrt/bundle.js +0 -166
- package/dist/cjs/operations/mrt/bundle.js.map +0 -1
- package/dist/cjs/operations/mrt/cache.d.ts +0 -80
- package/dist/cjs/operations/mrt/cache.js +0 -65
- package/dist/cjs/operations/mrt/cache.js.map +0 -1
- package/dist/cjs/operations/mrt/certificate.d.ts +0 -60
- package/dist/cjs/operations/mrt/certificate.js +0 -76
- package/dist/cjs/operations/mrt/certificate.js.map +0 -1
- package/dist/cjs/operations/mrt/deployment.d.ts +0 -157
- package/dist/cjs/operations/mrt/deployment.js +0 -109
- package/dist/cjs/operations/mrt/deployment.js.map +0 -1
- package/dist/cjs/operations/mrt/env-var.d.ts +0 -176
- package/dist/cjs/operations/mrt/env-var.js +0 -231
- package/dist/cjs/operations/mrt/env-var.js.map +0 -1
- package/dist/cjs/operations/mrt/env.d.ts +0 -491
- package/dist/cjs/operations/mrt/env.js +0 -425
- package/dist/cjs/operations/mrt/env.js.map +0 -1
- package/dist/cjs/operations/mrt/index.d.ts +0 -75
- package/dist/cjs/operations/mrt/index.js +0 -81
- package/dist/cjs/operations/mrt/index.js.map +0 -1
- package/dist/cjs/operations/mrt/member.d.ts +0 -281
- package/dist/cjs/operations/mrt/member.js +0 -244
- package/dist/cjs/operations/mrt/member.js.map +0 -1
- package/dist/cjs/operations/mrt/notification.d.ts +0 -252
- package/dist/cjs/operations/mrt/notification.js +0 -206
- package/dist/cjs/operations/mrt/notification.js.map +0 -1
- package/dist/cjs/operations/mrt/organization-member.d.ts +0 -68
- package/dist/cjs/operations/mrt/organization-member.js +0 -88
- package/dist/cjs/operations/mrt/organization-member.js.map +0 -1
- package/dist/cjs/operations/mrt/organization.d.ts +0 -80
- package/dist/cjs/operations/mrt/organization.js +0 -53
- package/dist/cjs/operations/mrt/organization.js.map +0 -1
- package/dist/cjs/operations/mrt/project.d.ts +0 -261
- package/dist/cjs/operations/mrt/project.js +0 -232
- package/dist/cjs/operations/mrt/project.js.map +0 -1
- package/dist/cjs/operations/mrt/push.d.ts +0 -290
- package/dist/cjs/operations/mrt/push.js +0 -288
- package/dist/cjs/operations/mrt/push.js.map +0 -1
- package/dist/cjs/operations/mrt/redirect.d.ts +0 -337
- package/dist/cjs/operations/mrt/redirect.js +0 -256
- package/dist/cjs/operations/mrt/redirect.js.map +0 -1
- package/dist/cjs/operations/mrt/tail-logs.d.ts +0 -130
- package/dist/cjs/operations/mrt/tail-logs.js +0 -224
- package/dist/cjs/operations/mrt/tail-logs.js.map +0 -1
- package/dist/cjs/operations/mrt/user.d.ts +0 -135
- package/dist/cjs/operations/mrt/user.js +0 -153
- package/dist/cjs/operations/mrt/user.js.map +0 -1
- package/dist/cjs/operations/ods/index.d.ts +0 -10
- package/dist/cjs/operations/ods/index.js +0 -14
- package/dist/cjs/operations/ods/index.js.map +0 -1
- package/dist/cjs/operations/ods/sandbox-lookup.d.ts +0 -63
- package/dist/cjs/operations/ods/sandbox-lookup.js +0 -130
- package/dist/cjs/operations/ods/sandbox-lookup.js.map +0 -1
- package/dist/cjs/operations/ods/wait-for-clone.d.ts +0 -46
- package/dist/cjs/operations/ods/wait-for-clone.js +0 -100
- package/dist/cjs/operations/ods/wait-for-clone.js.map +0 -1
- package/dist/cjs/operations/ods/wait-for-sandbox.d.ts +0 -64
- package/dist/cjs/operations/ods/wait-for-sandbox.js +0 -114
- package/dist/cjs/operations/ods/wait-for-sandbox.js.map +0 -1
- package/dist/cjs/operations/orgs/index.d.ts +0 -74
- package/dist/cjs/operations/orgs/index.js +0 -33
- package/dist/cjs/operations/orgs/index.js.map +0 -1
- package/dist/cjs/operations/roles/index.d.ts +0 -43
- package/dist/cjs/operations/roles/index.js +0 -48
- package/dist/cjs/operations/roles/index.js.map +0 -1
- package/dist/cjs/operations/sites/cartridges.d.ts +0 -114
- package/dist/cjs/operations/sites/cartridges.js +0 -378
- package/dist/cjs/operations/sites/cartridges.js.map +0 -1
- package/dist/cjs/operations/sites/index.d.ts +0 -46
- package/dist/cjs/operations/sites/index.js +0 -51
- package/dist/cjs/operations/sites/index.js.map +0 -1
- package/dist/cjs/operations/users/index.d.ts +0 -153
- package/dist/cjs/operations/users/index.js +0 -139
- package/dist/cjs/operations/users/index.js.map +0 -1
- package/dist/cjs/operations/util/zip.d.ts +0 -5
- package/dist/cjs/operations/util/zip.js +0 -25
- package/dist/cjs/operations/util/zip.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/plugins/discovery.d.ts +0 -46
- package/dist/cjs/plugins/discovery.js +0 -122
- package/dist/cjs/plugins/discovery.js.map +0 -1
- package/dist/cjs/plugins/index.d.ts +0 -26
- package/dist/cjs/plugins/index.js +0 -32
- package/dist/cjs/plugins/index.js.map +0 -1
- package/dist/cjs/plugins/loader.d.ts +0 -34
- package/dist/cjs/plugins/loader.js +0 -59
- package/dist/cjs/plugins/loader.js.map +0 -1
- package/dist/cjs/plugins/manager.d.ts +0 -70
- package/dist/cjs/plugins/manager.js +0 -173
- package/dist/cjs/plugins/manager.js.map +0 -1
- package/dist/cjs/safety/index.d.ts +0 -12
- package/dist/cjs/safety/index.js +0 -11
- package/dist/cjs/safety/index.js.map +0 -1
- package/dist/cjs/safety/safety-guard.d.ts +0 -92
- package/dist/cjs/safety/safety-guard.js +0 -270
- package/dist/cjs/safety/safety-guard.js.map +0 -1
- package/dist/cjs/safety/safety-middleware.d.ts +0 -130
- package/dist/cjs/safety/safety-middleware.js +0 -248
- package/dist/cjs/safety/safety-middleware.js.map +0 -1
- package/dist/cjs/safety/types.d.ts +0 -81
- package/dist/cjs/safety/types.js +0 -16
- package/dist/cjs/safety/types.js.map +0 -1
- package/dist/cjs/safety/with-confirmation.d.ts +0 -58
- package/dist/cjs/safety/with-confirmation.js +0 -67
- package/dist/cjs/safety/with-confirmation.js.map +0 -1
- package/dist/cjs/scaffold/engine.d.ts +0 -68
- package/dist/cjs/scaffold/engine.js +0 -149
- package/dist/cjs/scaffold/engine.js.map +0 -1
- package/dist/cjs/scaffold/executor.d.ts +0 -36
- package/dist/cjs/scaffold/executor.js +0 -293
- package/dist/cjs/scaffold/executor.js.map +0 -1
- package/dist/cjs/scaffold/index.d.ts +0 -76
- package/dist/cjs/scaffold/index.js +0 -23
- package/dist/cjs/scaffold/index.js.map +0 -1
- package/dist/cjs/scaffold/merge.d.ts +0 -63
- package/dist/cjs/scaffold/merge.js +0 -192
- package/dist/cjs/scaffold/merge.js.map +0 -1
- package/dist/cjs/scaffold/parameter-resolver.d.ts +0 -86
- package/dist/cjs/scaffold/parameter-resolver.js +0 -191
- package/dist/cjs/scaffold/parameter-resolver.js.map +0 -1
- package/dist/cjs/scaffold/registry.d.ts +0 -60
- package/dist/cjs/scaffold/registry.js +0 -225
- package/dist/cjs/scaffold/registry.js.map +0 -1
- package/dist/cjs/scaffold/sources.d.ts +0 -83
- package/dist/cjs/scaffold/sources.js +0 -236
- package/dist/cjs/scaffold/sources.js.map +0 -1
- package/dist/cjs/scaffold/types.d.ts +0 -282
- package/dist/cjs/scaffold/types.js +0 -14
- package/dist/cjs/scaffold/types.js.map +0 -1
- package/dist/cjs/scaffold/validation.d.ts +0 -81
- package/dist/cjs/scaffold/validation.js +0 -250
- package/dist/cjs/scaffold/validation.js.map +0 -1
- package/dist/cjs/scaffold/validators.d.ts +0 -33
- package/dist/cjs/scaffold/validators.js +0 -340
- package/dist/cjs/scaffold/validators.js.map +0 -1
- package/dist/cjs/schemas/collapse.d.ts +0 -150
- package/dist/cjs/schemas/collapse.js +0 -180
- package/dist/cjs/schemas/collapse.js.map +0 -1
- package/dist/cjs/schemas/index.d.ts +0 -58
- package/dist/cjs/schemas/index.js +0 -65
- package/dist/cjs/schemas/index.js.map +0 -1
- package/dist/cjs/schemas/security-schemes.d.ts +0 -26
- package/dist/cjs/schemas/security-schemes.js +0 -44
- package/dist/cjs/schemas/security-schemes.js.map +0 -1
- package/dist/cjs/skills/agents.d.ts +0 -42
- package/dist/cjs/skills/agents.js +0 -200
- package/dist/cjs/skills/agents.js.map +0 -1
- package/dist/cjs/skills/github.d.ts +0 -31
- package/dist/cjs/skills/github.js +0 -450
- package/dist/cjs/skills/github.js.map +0 -1
- package/dist/cjs/skills/index.d.ts +0 -43
- package/dist/cjs/skills/index.js +0 -16
- package/dist/cjs/skills/index.js.map +0 -1
- package/dist/cjs/skills/installer.d.ts +0 -35
- package/dist/cjs/skills/installer.js +0 -182
- package/dist/cjs/skills/installer.js.map +0 -1
- package/dist/cjs/skills/parser.d.ts +0 -39
- package/dist/cjs/skills/parser.js +0 -126
- package/dist/cjs/skills/parser.js.map +0 -1
- package/dist/cjs/skills/sources.d.ts +0 -4
- package/dist/cjs/skills/sources.js +0 -52
- package/dist/cjs/skills/sources.js.map +0 -1
- package/dist/cjs/skills/types.d.ts +0 -153
- package/dist/cjs/skills/types.js +0 -7
- package/dist/cjs/skills/types.js.map +0 -1
- package/dist/cjs/slas/index.d.ts +0 -12
- package/dist/cjs/slas/index.js +0 -8
- package/dist/cjs/slas/index.js.map +0 -1
- package/dist/cjs/slas/pkce.d.ts +0 -13
- package/dist/cjs/slas/pkce.js +0 -35
- package/dist/cjs/slas/pkce.js.map +0 -1
- package/dist/cjs/slas/token.d.ts +0 -24
- package/dist/cjs/slas/token.js +0 -261
- package/dist/cjs/slas/token.js.map +0 -1
- package/dist/cjs/slas/types.d.ts +0 -43
- package/dist/cjs/slas/types.js +0 -7
- package/dist/cjs/slas/types.js.map +0 -1
- package/dist/cjs/telemetry/index.d.ts +0 -34
- package/dist/cjs/telemetry/index.js +0 -32
- package/dist/cjs/telemetry/index.js.map +0 -1
- package/dist/cjs/telemetry/telemetry.d.ts +0 -88
- package/dist/cjs/telemetry/telemetry.js +0 -298
- package/dist/cjs/telemetry/telemetry.js.map +0 -1
- package/dist/cjs/telemetry/types.d.ts +0 -62
- package/dist/cjs/telemetry/types.js +0 -7
- package/dist/cjs/telemetry/types.js.map +0 -1
- package/dist/cjs/test-utils/config-isolation.d.ts +0 -2
- package/dist/cjs/test-utils/config-isolation.js +0 -48
- package/dist/cjs/test-utils/config-isolation.js.map +0 -1
- package/dist/cjs/test-utils/index.d.ts +0 -1
- package/dist/cjs/test-utils/index.js +0 -7
- package/dist/cjs/test-utils/index.js.map +0 -1
- package/dist/cjs/ux/confirm.d.ts +0 -14
- package/dist/cjs/ux/confirm.js +0 -36
- package/dist/cjs/ux/confirm.js.map +0 -1
- package/dist/cjs/ux/index.d.ts +0 -1
- package/dist/cjs/ux/index.js +0 -7
- package/dist/cjs/ux/index.js.map +0 -1
- package/dist/cjs/version.d.ts +0 -14
- package/dist/cjs/version.js +0 -29
- package/dist/cjs/version.js.map +0 -1
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
-
* SPDX-License-Identifier: Apache-2
|
|
4
|
-
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
-
*/
|
|
6
|
-
import fs from 'node:fs/promises';
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import { glob } from 'glob';
|
|
9
|
-
import { ScaffoldEngine } from './engine.js';
|
|
10
|
-
import { evaluateCondition, validateParameters } from './validators.js';
|
|
11
|
-
import { mergeJson, createPath, insertAfter, insertBefore, appendContent, prependContent } from './merge.js';
|
|
12
|
-
/**
|
|
13
|
-
* Resolve output directory with priority:
|
|
14
|
-
* 1. Explicit outputDir option
|
|
15
|
-
* 2. Scaffold's defaultOutputDir
|
|
16
|
-
* 3. Project root / cwd
|
|
17
|
-
*
|
|
18
|
-
* @param options - Resolution options
|
|
19
|
-
* @returns Resolved absolute output directory path
|
|
20
|
-
*/
|
|
21
|
-
export function resolveOutputDirectory(options) {
|
|
22
|
-
const { outputDir, scaffold, projectRoot = process.cwd() } = options;
|
|
23
|
-
if (outputDir) {
|
|
24
|
-
// Explicit output directory takes priority
|
|
25
|
-
return path.resolve(projectRoot, outputDir);
|
|
26
|
-
}
|
|
27
|
-
if (scaffold?.manifest.defaultOutputDir) {
|
|
28
|
-
// Scaffold's default output directory
|
|
29
|
-
return path.resolve(projectRoot, scaffold.manifest.defaultOutputDir);
|
|
30
|
-
}
|
|
31
|
-
// Fall back to project root
|
|
32
|
-
return projectRoot;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Check if a file exists
|
|
36
|
-
*/
|
|
37
|
-
async function fileExists(filePath) {
|
|
38
|
-
try {
|
|
39
|
-
await fs.access(filePath);
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get default file mappings by scanning the files/ directory
|
|
48
|
-
*/
|
|
49
|
-
async function getDefaultFileMappings(filesPath) {
|
|
50
|
-
const files = await glob('**/*', {
|
|
51
|
-
cwd: filesPath,
|
|
52
|
-
nodir: true,
|
|
53
|
-
dot: true,
|
|
54
|
-
});
|
|
55
|
-
return files.map((file) => ({
|
|
56
|
-
template: file,
|
|
57
|
-
destination: file.replace(/\.ejs$/, ''),
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Generate files from a scaffold
|
|
62
|
-
* @param scaffold - The scaffold to use
|
|
63
|
-
* @param options - Generation options
|
|
64
|
-
* @returns Generation result
|
|
65
|
-
*/
|
|
66
|
-
export async function generateFromScaffold(scaffold, options = {}) {
|
|
67
|
-
const outputDir = options.outputDir || process.cwd();
|
|
68
|
-
const variables = options.variables || {};
|
|
69
|
-
const dryRun = options.dryRun ?? false;
|
|
70
|
-
const force = options.force ?? false;
|
|
71
|
-
// Validate parameters
|
|
72
|
-
const validationResult = validateParameters(scaffold.manifest, variables);
|
|
73
|
-
if (!validationResult.valid) {
|
|
74
|
-
const errorMessages = validationResult.errors.map((e) => `${e.parameter}: ${e.message}`).join(', ');
|
|
75
|
-
throw new Error(`Invalid parameters: ${errorMessages}`);
|
|
76
|
-
}
|
|
77
|
-
// Create template engine with resolved variables
|
|
78
|
-
const engine = new ScaffoldEngine(validationResult.values);
|
|
79
|
-
// Get file mappings
|
|
80
|
-
const fileMappings = scaffold.manifest.files || (await getDefaultFileMappings(scaffold.filesPath));
|
|
81
|
-
const generatedFiles = [];
|
|
82
|
-
const createdDirs = new Set();
|
|
83
|
-
for (const mapping of fileMappings) {
|
|
84
|
-
// Check condition
|
|
85
|
-
if (mapping.condition && !evaluateCondition(mapping.condition, validationResult.values)) {
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
const templatePath = path.join(scaffold.filesPath, mapping.template);
|
|
89
|
-
const destRendered = engine.renderPath(mapping.destination);
|
|
90
|
-
// If destination is absolute path, use it directly; otherwise join with outputDir
|
|
91
|
-
const destAbsolute = path.isAbsolute(destRendered) ? destRendered : path.join(outputDir, destRendered);
|
|
92
|
-
// For display purposes, show path relative to outputDir
|
|
93
|
-
const destRelative = path.relative(outputDir, destAbsolute) || destAbsolute;
|
|
94
|
-
// Check if destination exists
|
|
95
|
-
const exists = await fileExists(destAbsolute);
|
|
96
|
-
const overwrite = mapping.overwrite || 'never';
|
|
97
|
-
if (exists) {
|
|
98
|
-
if (overwrite === 'never' && !force) {
|
|
99
|
-
generatedFiles.push({
|
|
100
|
-
path: destRelative,
|
|
101
|
-
absolutePath: destAbsolute,
|
|
102
|
-
action: 'skipped',
|
|
103
|
-
skipReason: 'File already exists',
|
|
104
|
-
});
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
if (overwrite === 'prompt' && !force) {
|
|
108
|
-
// In non-interactive mode without force, skip
|
|
109
|
-
generatedFiles.push({
|
|
110
|
-
path: destRelative,
|
|
111
|
-
absolutePath: destAbsolute,
|
|
112
|
-
action: 'skipped',
|
|
113
|
-
skipReason: 'File already exists (prompt required)',
|
|
114
|
-
});
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Read and render template
|
|
119
|
-
let content;
|
|
120
|
-
try {
|
|
121
|
-
const templateContent = await fs.readFile(templatePath, 'utf-8');
|
|
122
|
-
// Only render EJS if the file has .ejs extension
|
|
123
|
-
if (mapping.template.endsWith('.ejs')) {
|
|
124
|
-
content = engine.render(templateContent);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
content = templateContent;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
throw new Error(`Failed to read template ${mapping.template}: ${error.message}`);
|
|
132
|
-
}
|
|
133
|
-
if (!dryRun) {
|
|
134
|
-
// Create parent directories
|
|
135
|
-
const destDir = path.dirname(destAbsolute);
|
|
136
|
-
if (!createdDirs.has(destDir)) {
|
|
137
|
-
await fs.mkdir(destDir, { recursive: true });
|
|
138
|
-
createdDirs.add(destDir);
|
|
139
|
-
}
|
|
140
|
-
// Write file
|
|
141
|
-
await fs.writeFile(destAbsolute, content, 'utf-8');
|
|
142
|
-
}
|
|
143
|
-
generatedFiles.push({
|
|
144
|
-
path: destRelative,
|
|
145
|
-
absolutePath: destAbsolute,
|
|
146
|
-
action: exists ? 'overwritten' : 'created',
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
// Process file modifications
|
|
150
|
-
if (scaffold.manifest.modifications) {
|
|
151
|
-
for (const modification of scaffold.manifest.modifications) {
|
|
152
|
-
// Check condition
|
|
153
|
-
if (modification.condition && !evaluateCondition(modification.condition, validationResult.values)) {
|
|
154
|
-
continue;
|
|
155
|
-
}
|
|
156
|
-
const targetRendered = engine.renderPath(modification.target);
|
|
157
|
-
const targetAbsolute = path.isAbsolute(targetRendered) ? targetRendered : path.join(outputDir, targetRendered);
|
|
158
|
-
const targetRelative = path.relative(outputDir, targetAbsolute) || targetAbsolute;
|
|
159
|
-
// Get modification content
|
|
160
|
-
let modContent;
|
|
161
|
-
if (modification.contentTemplate) {
|
|
162
|
-
const templatePath = path.join(scaffold.filesPath, modification.contentTemplate);
|
|
163
|
-
try {
|
|
164
|
-
const templateContent = await fs.readFile(templatePath, 'utf-8');
|
|
165
|
-
modContent = modification.contentTemplate.endsWith('.ejs') ? engine.render(templateContent) : templateContent;
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
throw new Error(`Failed to read modification template ${modification.contentTemplate}: ${error.message}`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
else if (modification.content) {
|
|
172
|
-
modContent = engine.render(modification.content);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
throw new Error(`Modification for ${modification.target} must have content or contentTemplate`);
|
|
176
|
-
}
|
|
177
|
-
// Process the modification
|
|
178
|
-
const result = await processModification(modification, targetAbsolute, targetRelative, modContent, dryRun);
|
|
179
|
-
generatedFiles.push(result);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// Render post-instructions if present
|
|
183
|
-
let postInstructions;
|
|
184
|
-
if (scaffold.manifest.postInstructions) {
|
|
185
|
-
postInstructions = engine.render(scaffold.manifest.postInstructions);
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
scaffold,
|
|
189
|
-
files: generatedFiles,
|
|
190
|
-
postInstructions,
|
|
191
|
-
dryRun,
|
|
192
|
-
outputDir,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Process a single file modification
|
|
197
|
-
*/
|
|
198
|
-
async function processModification(modification, targetAbsolute, targetRelative, content, dryRun) {
|
|
199
|
-
const exists = await fileExists(targetAbsolute);
|
|
200
|
-
// For modifications, the file should exist (except for json-merge which can create)
|
|
201
|
-
if (!exists && modification.type !== 'json-merge') {
|
|
202
|
-
return {
|
|
203
|
-
path: targetRelative,
|
|
204
|
-
absolutePath: targetAbsolute,
|
|
205
|
-
action: 'skipped',
|
|
206
|
-
skipReason: `Target file does not exist for ${modification.type}`,
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
let existingContent = '';
|
|
210
|
-
if (exists) {
|
|
211
|
-
existingContent = await fs.readFile(targetAbsolute, 'utf-8');
|
|
212
|
-
}
|
|
213
|
-
let newContent;
|
|
214
|
-
try {
|
|
215
|
-
switch (modification.type) {
|
|
216
|
-
case 'json-merge': {
|
|
217
|
-
if (!exists) {
|
|
218
|
-
// Create new JSON file, wrapping content in jsonPath structure if specified
|
|
219
|
-
if (modification.jsonPath) {
|
|
220
|
-
const wrapper = {};
|
|
221
|
-
const [parent, key] = createPath(wrapper, modification.jsonPath);
|
|
222
|
-
parent[key] = JSON.parse(content);
|
|
223
|
-
newContent = JSON.stringify(wrapper, null, 2);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
newContent = JSON.stringify(JSON.parse(content), null, 2);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
newContent = mergeJson(existingContent, content, {
|
|
231
|
-
jsonPath: modification.jsonPath,
|
|
232
|
-
createPath: true,
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
case 'insert-after': {
|
|
238
|
-
if (!modification.marker) {
|
|
239
|
-
throw new Error('insert-after requires a marker');
|
|
240
|
-
}
|
|
241
|
-
newContent = insertAfter(existingContent, content, modification.marker);
|
|
242
|
-
break;
|
|
243
|
-
}
|
|
244
|
-
case 'insert-before': {
|
|
245
|
-
if (!modification.marker) {
|
|
246
|
-
throw new Error('insert-before requires a marker');
|
|
247
|
-
}
|
|
248
|
-
newContent = insertBefore(existingContent, content, modification.marker);
|
|
249
|
-
break;
|
|
250
|
-
}
|
|
251
|
-
case 'append': {
|
|
252
|
-
newContent = appendContent(existingContent, content);
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
case 'prepend': {
|
|
256
|
-
newContent = prependContent(existingContent, content);
|
|
257
|
-
break;
|
|
258
|
-
}
|
|
259
|
-
default: {
|
|
260
|
-
throw new Error(`Unknown modification type: ${modification.type}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
catch (error) {
|
|
265
|
-
return {
|
|
266
|
-
path: targetRelative,
|
|
267
|
-
absolutePath: targetAbsolute,
|
|
268
|
-
action: 'skipped',
|
|
269
|
-
skipReason: `Modification failed: ${error.message}`,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
if (!dryRun) {
|
|
273
|
-
// Create parent directories if needed
|
|
274
|
-
const targetDir = path.dirname(targetAbsolute);
|
|
275
|
-
await fs.mkdir(targetDir, { recursive: true });
|
|
276
|
-
await fs.writeFile(targetAbsolute, newContent, 'utf-8');
|
|
277
|
-
}
|
|
278
|
-
return {
|
|
279
|
-
path: targetRelative,
|
|
280
|
-
absolutePath: targetAbsolute,
|
|
281
|
-
action: exists ? 'merged' : 'created',
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Preview scaffold generation without writing files
|
|
286
|
-
* @param scaffold - The scaffold to preview
|
|
287
|
-
* @param options - Generation options
|
|
288
|
-
* @returns Preview result
|
|
289
|
-
*/
|
|
290
|
-
export async function previewScaffold(scaffold, options = {}) {
|
|
291
|
-
return generateFromScaffold(scaffold, { ...options, dryRun: true });
|
|
292
|
-
}
|
|
293
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/scaffold/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scaffold generation for B2C Commerce projects.
|
|
3
|
-
*
|
|
4
|
-
* This module provides functions for discovering, validating, and executing
|
|
5
|
-
* project scaffolds (templates) for cartridges, custom APIs, Page Designer
|
|
6
|
-
* components, jobs, and other B2C artifacts.
|
|
7
|
-
*
|
|
8
|
-
* ## Scaffold Discovery
|
|
9
|
-
*
|
|
10
|
-
* Scaffolds are discovered from multiple sources in priority order:
|
|
11
|
-
*
|
|
12
|
-
* 1. **Project scaffolds** (`.b2c/scaffolds/`) - highest priority
|
|
13
|
-
* 2. **Plugin scaffolds** (via `b2c:scaffold-providers` hook)
|
|
14
|
-
* 3. **User scaffolds** (`~/.b2c/scaffolds/`)
|
|
15
|
-
* 4. **Built-in scaffolds** - lowest priority
|
|
16
|
-
*
|
|
17
|
-
* Later sources override earlier ones by name.
|
|
18
|
-
*
|
|
19
|
-
* - {@link ScaffoldRegistry} - Registry for managing scaffold discovery
|
|
20
|
-
* - {@link createScaffoldRegistry} - Create a new registry instance
|
|
21
|
-
*
|
|
22
|
-
* ## Scaffold Generation
|
|
23
|
-
*
|
|
24
|
-
* - {@link generateFromScaffold} - Generate files from a scaffold
|
|
25
|
-
* - {@link previewScaffold} - Preview generation without writing files
|
|
26
|
-
*
|
|
27
|
-
* ## Template Engine
|
|
28
|
-
*
|
|
29
|
-
* - {@link ScaffoldEngine} - EJS-based template rendering engine
|
|
30
|
-
*
|
|
31
|
-
* ## Validation
|
|
32
|
-
*
|
|
33
|
-
* - {@link validateScaffoldManifest} - Validate a scaffold manifest
|
|
34
|
-
* - {@link validateParameters} - Validate parameter values
|
|
35
|
-
*
|
|
36
|
-
* ## Usage
|
|
37
|
-
*
|
|
38
|
-
* ```typescript
|
|
39
|
-
* import {
|
|
40
|
-
* createScaffoldRegistry,
|
|
41
|
-
* generateFromScaffold,
|
|
42
|
-
* } from '@salesforce/b2c-tooling-sdk/scaffold';
|
|
43
|
-
*
|
|
44
|
-
* // Create registry and find scaffolds
|
|
45
|
-
* const registry = createScaffoldRegistry();
|
|
46
|
-
* const scaffolds = await registry.getScaffolds();
|
|
47
|
-
*
|
|
48
|
-
* // Get a specific scaffold
|
|
49
|
-
* const cartridgeScaffold = await registry.getScaffold('cartridge');
|
|
50
|
-
*
|
|
51
|
-
* // Generate files
|
|
52
|
-
* const result = await generateFromScaffold(cartridgeScaffold, {
|
|
53
|
-
* outputDir: './output',
|
|
54
|
-
* variables: { cartridgeName: 'app_custom' },
|
|
55
|
-
* });
|
|
56
|
-
* ```
|
|
57
|
-
*
|
|
58
|
-
* @module scaffold
|
|
59
|
-
*/
|
|
60
|
-
export type { ScaffoldManifest, ScaffoldParameter, ScaffoldChoice, ScaffoldParameterType, ScaffoldCategory, DynamicParameterSource, FileMapping, FileModification, OverwriteBehavior, Scaffold, ScaffoldSource, ScaffoldDiscoveryOptions, ScaffoldProvider, ScaffoldProviderPriority, ScaffoldTransformer, ScaffoldContext, ScaffoldGenerateOptions, ScaffoldGenerateResult, GeneratedFile, ParameterValidationError, ParameterValidationResult, TemplateHelpers, SourceResult, } from './types.js';
|
|
61
|
-
export { SCAFFOLDS_DATA_DIR } from './types.js';
|
|
62
|
-
export { HOOK_POINTS, resolveLocalSource, resolveRemoteSource, isRemoteSource, validateAgainstSource, cartridgePathForDestination, detectSourceFromPath, } from './sources.js';
|
|
63
|
-
export type { SourceDetectionResult } from './sources.js';
|
|
64
|
-
export { ScaffoldRegistry, createScaffoldRegistry } from './registry.js';
|
|
65
|
-
export type { ScaffoldRegistryOptions } from './registry.js';
|
|
66
|
-
export { ScaffoldEngine, createTemplateContext, createTemplateHelpers, renderTemplate, renderPathTemplate, kebabCase, camelCase, pascalCase, snakeCase, } from './engine.js';
|
|
67
|
-
export type { TemplateContext } from './engine.js';
|
|
68
|
-
export { generateFromScaffold, previewScaffold, resolveOutputDirectory } from './executor.js';
|
|
69
|
-
export type { ResolveOutputDirectoryOptions } from './executor.js';
|
|
70
|
-
export { validateScaffoldManifest, validateParameters, evaluateCondition, isValidScaffoldName, isValidParameterName, } from './validators.js';
|
|
71
|
-
export { mergeJson, insertAfter, insertBefore, appendContent, prependContent } from './merge.js';
|
|
72
|
-
export type { JsonMergeOptions, TextInsertOptions } from './merge.js';
|
|
73
|
-
export { resolveScaffoldParameters, parseParameterOptions, getParameterSchemas } from './parameter-resolver.js';
|
|
74
|
-
export type { ResolveParametersOptions, ParameterResolutionError, ResolvedParameters, ResolvedParameterSchema, } from './parameter-resolver.js';
|
|
75
|
-
export { validateEjsSyntax, checkTemplateFiles, checkOrphanedFiles, validateScaffoldDirectory } from './validation.js';
|
|
76
|
-
export type { ValidationIssueSeverity, ValidationIssue, ValidationResult, ValidateScaffoldOptions, } from './validation.js';
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
-
* SPDX-License-Identifier: Apache-2
|
|
4
|
-
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
-
*/
|
|
6
|
-
export { SCAFFOLDS_DATA_DIR } from './types.js';
|
|
7
|
-
// Source resolution
|
|
8
|
-
export { HOOK_POINTS, resolveLocalSource, resolveRemoteSource, isRemoteSource, validateAgainstSource, cartridgePathForDestination, detectSourceFromPath, } from './sources.js';
|
|
9
|
-
// Registry
|
|
10
|
-
export { ScaffoldRegistry, createScaffoldRegistry } from './registry.js';
|
|
11
|
-
// Engine
|
|
12
|
-
export { ScaffoldEngine, createTemplateContext, createTemplateHelpers, renderTemplate, renderPathTemplate, kebabCase, camelCase, pascalCase, snakeCase, } from './engine.js';
|
|
13
|
-
// Executor
|
|
14
|
-
export { generateFromScaffold, previewScaffold, resolveOutputDirectory } from './executor.js';
|
|
15
|
-
// Validators
|
|
16
|
-
export { validateScaffoldManifest, validateParameters, evaluateCondition, isValidScaffoldName, isValidParameterName, } from './validators.js';
|
|
17
|
-
// Merge utilities
|
|
18
|
-
export { mergeJson, insertAfter, insertBefore, appendContent, prependContent } from './merge.js';
|
|
19
|
-
// Parameter resolution
|
|
20
|
-
export { resolveScaffoldParameters, parseParameterOptions, getParameterSchemas } from './parameter-resolver.js';
|
|
21
|
-
// Validation
|
|
22
|
-
export { validateEjsSyntax, checkTemplateFiles, checkOrphanedFiles, validateScaffoldDirectory } from './validation.js';
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyFH,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAE9C,oBAAoB;AACpB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,WAAW;AACX,OAAO,EAAC,gBAAgB,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAGvE,SAAS;AACT,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,WAAW;AACX,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAG5F,aAAa;AACb,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAG/F,uBAAuB;AACvB,OAAO,EAAC,yBAAyB,EAAE,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAQ9G,aAAa;AACb,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAC,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Options for JSON merge operations
|
|
3
|
-
*/
|
|
4
|
-
export interface JsonMergeOptions {
|
|
5
|
-
/** JSON path to the target location (e.g., "scripts", "hooks.dw.ocapi") */
|
|
6
|
-
jsonPath?: string;
|
|
7
|
-
/** Whether to create the path if it doesn't exist */
|
|
8
|
-
createPath?: boolean;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Create a nested path in an object
|
|
12
|
-
* @param obj - The object to modify
|
|
13
|
-
* @param path - Dot-separated path to create
|
|
14
|
-
* @returns The parent object of the final key
|
|
15
|
-
*/
|
|
16
|
-
export declare function createPath(obj: Record<string, unknown>, path: string): [Record<string, unknown>, string];
|
|
17
|
-
/**
|
|
18
|
-
* Merge JSON content into an existing JSON string
|
|
19
|
-
* @param existingJson - The existing JSON string
|
|
20
|
-
* @param newContent - JSON content to merge (string or object)
|
|
21
|
-
* @param options - Merge options
|
|
22
|
-
* @returns Updated JSON string
|
|
23
|
-
*/
|
|
24
|
-
export declare function mergeJson(existingJson: string, newContent: string | Record<string, unknown>, options?: JsonMergeOptions): string;
|
|
25
|
-
/**
|
|
26
|
-
* Options for text insertion operations
|
|
27
|
-
*/
|
|
28
|
-
export interface TextInsertOptions {
|
|
29
|
-
/** Marker string to find for insert-after/insert-before */
|
|
30
|
-
marker?: string;
|
|
31
|
-
/** Whether to add a newline after the inserted content */
|
|
32
|
-
addNewline?: boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Insert text after a marker in existing content
|
|
36
|
-
* @param existingContent - The existing text content
|
|
37
|
-
* @param newContent - Content to insert
|
|
38
|
-
* @param marker - Marker string to find
|
|
39
|
-
* @returns Updated content
|
|
40
|
-
*/
|
|
41
|
-
export declare function insertAfter(existingContent: string, newContent: string, marker: string): string;
|
|
42
|
-
/**
|
|
43
|
-
* Insert text before a marker in existing content
|
|
44
|
-
* @param existingContent - The existing text content
|
|
45
|
-
* @param newContent - Content to insert
|
|
46
|
-
* @param marker - Marker string to find
|
|
47
|
-
* @returns Updated content
|
|
48
|
-
*/
|
|
49
|
-
export declare function insertBefore(existingContent: string, newContent: string, marker: string): string;
|
|
50
|
-
/**
|
|
51
|
-
* Append content to the end of existing content
|
|
52
|
-
* @param existingContent - The existing text content
|
|
53
|
-
* @param newContent - Content to append
|
|
54
|
-
* @returns Updated content
|
|
55
|
-
*/
|
|
56
|
-
export declare function appendContent(existingContent: string, newContent: string): string;
|
|
57
|
-
/**
|
|
58
|
-
* Prepend content to the beginning of existing content
|
|
59
|
-
* @param existingContent - The existing text content
|
|
60
|
-
* @param newContent - Content to prepend
|
|
61
|
-
* @returns Updated content
|
|
62
|
-
*/
|
|
63
|
-
export declare function prependContent(existingContent: string, newContent: string): string;
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
-
* SPDX-License-Identifier: Apache-2
|
|
4
|
-
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Navigate to a nested JSON path and return parent + key
|
|
8
|
-
* @param obj - The object to navigate
|
|
9
|
-
* @param path - Dot-separated path (e.g., "hooks.dw.ocapi")
|
|
10
|
-
* @returns Tuple of [parent object, final key, success]
|
|
11
|
-
*/
|
|
12
|
-
function navigateToPath(obj, path) {
|
|
13
|
-
if (!path) {
|
|
14
|
-
return [null, '', false];
|
|
15
|
-
}
|
|
16
|
-
const parts = path.split('.');
|
|
17
|
-
const finalKey = parts.pop();
|
|
18
|
-
let current = obj;
|
|
19
|
-
for (const part of parts) {
|
|
20
|
-
if (current === null || typeof current !== 'object') {
|
|
21
|
-
return [null, finalKey, false];
|
|
22
|
-
}
|
|
23
|
-
if (!(part in current)) {
|
|
24
|
-
return [null, finalKey, false];
|
|
25
|
-
}
|
|
26
|
-
current = current[part];
|
|
27
|
-
}
|
|
28
|
-
if (current === null || typeof current !== 'object') {
|
|
29
|
-
return [null, finalKey, false];
|
|
30
|
-
}
|
|
31
|
-
return [current, finalKey, true];
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Create a nested path in an object
|
|
35
|
-
* @param obj - The object to modify
|
|
36
|
-
* @param path - Dot-separated path to create
|
|
37
|
-
* @returns The parent object of the final key
|
|
38
|
-
*/
|
|
39
|
-
export function createPath(obj, path) {
|
|
40
|
-
const parts = path.split('.');
|
|
41
|
-
const finalKey = parts.pop();
|
|
42
|
-
let current = obj;
|
|
43
|
-
for (const part of parts) {
|
|
44
|
-
if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
|
|
45
|
-
current[part] = {};
|
|
46
|
-
}
|
|
47
|
-
current = current[part];
|
|
48
|
-
}
|
|
49
|
-
return [current, finalKey];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Deep merge two objects, with source overriding target for conflicts
|
|
53
|
-
*/
|
|
54
|
-
function deepMerge(target, source) {
|
|
55
|
-
if (Array.isArray(source)) {
|
|
56
|
-
if (Array.isArray(target)) {
|
|
57
|
-
// Merge arrays by appending source items not already in target
|
|
58
|
-
const result = [...target];
|
|
59
|
-
for (const item of source) {
|
|
60
|
-
const itemStr = JSON.stringify(item);
|
|
61
|
-
const exists = result.some((existing) => JSON.stringify(existing) === itemStr);
|
|
62
|
-
if (!exists) {
|
|
63
|
-
result.push(item);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return result;
|
|
67
|
-
}
|
|
68
|
-
return source;
|
|
69
|
-
}
|
|
70
|
-
if (source !== null && typeof source === 'object') {
|
|
71
|
-
if (target !== null && typeof target === 'object' && !Array.isArray(target)) {
|
|
72
|
-
const result = { ...target };
|
|
73
|
-
for (const key of Object.keys(source)) {
|
|
74
|
-
result[key] = deepMerge(result[key], source[key]);
|
|
75
|
-
}
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
return source;
|
|
79
|
-
}
|
|
80
|
-
return source;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Merge JSON content into an existing JSON string
|
|
84
|
-
* @param existingJson - The existing JSON string
|
|
85
|
-
* @param newContent - JSON content to merge (string or object)
|
|
86
|
-
* @param options - Merge options
|
|
87
|
-
* @returns Updated JSON string
|
|
88
|
-
*/
|
|
89
|
-
export function mergeJson(existingJson, newContent, options = {}) {
|
|
90
|
-
let existing = JSON.parse(existingJson);
|
|
91
|
-
const content = typeof newContent === 'string' ? JSON.parse(newContent) : newContent;
|
|
92
|
-
if (options.jsonPath) {
|
|
93
|
-
// If existing content is a bare array but we expected an object with jsonPath,
|
|
94
|
-
// wrap it in the expected structure so the merge works correctly.
|
|
95
|
-
// This handles files that were previously created without the jsonPath wrapper.
|
|
96
|
-
if (Array.isArray(existing)) {
|
|
97
|
-
const wrapper = {};
|
|
98
|
-
const [newParent, newKey] = createPath(wrapper, options.jsonPath);
|
|
99
|
-
newParent[newKey] = existing;
|
|
100
|
-
existing = wrapper;
|
|
101
|
-
}
|
|
102
|
-
const [parent, key, found] = navigateToPath(existing, options.jsonPath);
|
|
103
|
-
if (!found) {
|
|
104
|
-
if (options.createPath !== false) {
|
|
105
|
-
const [newParent, newKey] = createPath(existing, options.jsonPath);
|
|
106
|
-
newParent[newKey] = content;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
throw new Error(`JSON path not found: ${options.jsonPath}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else if (parent) {
|
|
113
|
-
parent[key] = deepMerge(parent[key], content);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
// Merge at root level
|
|
118
|
-
const merged = deepMerge(existing, content);
|
|
119
|
-
return JSON.stringify(merged, null, 2);
|
|
120
|
-
}
|
|
121
|
-
return JSON.stringify(existing, null, 2);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Insert text after a marker in existing content
|
|
125
|
-
* @param existingContent - The existing text content
|
|
126
|
-
* @param newContent - Content to insert
|
|
127
|
-
* @param marker - Marker string to find
|
|
128
|
-
* @returns Updated content
|
|
129
|
-
*/
|
|
130
|
-
export function insertAfter(existingContent, newContent, marker) {
|
|
131
|
-
const index = existingContent.indexOf(marker);
|
|
132
|
-
if (index === -1) {
|
|
133
|
-
throw new Error(`Marker not found: ${marker}`);
|
|
134
|
-
}
|
|
135
|
-
let insertPoint = index + marker.length;
|
|
136
|
-
// If there's a newline right after the marker, insert after it
|
|
137
|
-
if (existingContent[insertPoint] === '\n') {
|
|
138
|
-
insertPoint++;
|
|
139
|
-
}
|
|
140
|
-
// Check if we need to add a newline before the new content
|
|
141
|
-
const needsNewlineBefore = insertPoint > 0 && existingContent[insertPoint - 1] !== '\n' && !newContent.startsWith('\n');
|
|
142
|
-
// Check if we need to add a newline after the new content
|
|
143
|
-
const needsNewlineAfter = !newContent.endsWith('\n') && insertPoint < existingContent.length && existingContent[insertPoint] !== '\n';
|
|
144
|
-
return (existingContent.slice(0, insertPoint) +
|
|
145
|
-
(needsNewlineBefore ? '\n' : '') +
|
|
146
|
-
newContent +
|
|
147
|
-
(needsNewlineAfter ? '\n' : '') +
|
|
148
|
-
existingContent.slice(insertPoint));
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Insert text before a marker in existing content
|
|
152
|
-
* @param existingContent - The existing text content
|
|
153
|
-
* @param newContent - Content to insert
|
|
154
|
-
* @param marker - Marker string to find
|
|
155
|
-
* @returns Updated content
|
|
156
|
-
*/
|
|
157
|
-
export function insertBefore(existingContent, newContent, marker) {
|
|
158
|
-
const index = existingContent.indexOf(marker);
|
|
159
|
-
if (index === -1) {
|
|
160
|
-
throw new Error(`Marker not found: ${marker}`);
|
|
161
|
-
}
|
|
162
|
-
// Check if we need to add a newline before the new content
|
|
163
|
-
const needsNewlineBefore = index > 0 && existingContent[index - 1] !== '\n' && !newContent.startsWith('\n');
|
|
164
|
-
// Check if we need to add a newline after the new content (before marker)
|
|
165
|
-
const needsNewlineAfter = !newContent.endsWith('\n');
|
|
166
|
-
return (existingContent.slice(0, index) +
|
|
167
|
-
(needsNewlineBefore ? '\n' : '') +
|
|
168
|
-
newContent +
|
|
169
|
-
(needsNewlineAfter ? '\n' : '') +
|
|
170
|
-
existingContent.slice(index));
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Append content to the end of existing content
|
|
174
|
-
* @param existingContent - The existing text content
|
|
175
|
-
* @param newContent - Content to append
|
|
176
|
-
* @returns Updated content
|
|
177
|
-
*/
|
|
178
|
-
export function appendContent(existingContent, newContent) {
|
|
179
|
-
const needsNewline = existingContent.length > 0 && !existingContent.endsWith('\n');
|
|
180
|
-
return existingContent + (needsNewline ? '\n' : '') + newContent;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Prepend content to the beginning of existing content
|
|
184
|
-
* @param existingContent - The existing text content
|
|
185
|
-
* @param newContent - Content to prepend
|
|
186
|
-
* @returns Updated content
|
|
187
|
-
*/
|
|
188
|
-
export function prependContent(existingContent, newContent) {
|
|
189
|
-
const needsNewline = !newContent.endsWith('\n') && existingContent.length > 0;
|
|
190
|
-
return newContent + (needsNewline ? '\n' : '') + existingContent;
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=merge.js.map
|