diff --git a/package-lock.json b/package-lock.json index cf8ff44246..37c7d281f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7206,7 +7206,6 @@ "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -26300,25 +26299,26 @@ }, "packages/contentstack": { "name": "@contentstack/cli", - "version": "1.26.0", - "license": "MIT", - "dependencies": { - "@contentstack/cli-audit": "~1.7.1", - "@contentstack/cli-auth": "~1.3.21", - "@contentstack/cli-cm-bootstrap": "~1.12.0", - "@contentstack/cli-cm-branches": "~1.1.3", - "@contentstack/cli-cm-bulk-publish": "~1.4.8", - "@contentstack/cli-cm-clone": "~1.12.0", - "@contentstack/cli-cm-export": "~1.13.0", - "@contentstack/cli-cm-export-to-csv": "~1.7.2", - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-cm-migrate-rte": "~1.4.19", - "@contentstack/cli-cm-seed": "~1.9.0", - "@contentstack/cli-command": "~1.3.1", - "@contentstack/cli-config": "~1.7.1", - "@contentstack/cli-launch": "~1.2.2", - "@contentstack/cli-migration": "~1.6.1", - "@contentstack/cli-utilities": "~1.7.3", + "version": "1.27.0", + "license": "MIT", + "dependencies": { + "@contentstack/cli-audit": "~1.7.2", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-cm-bootstrap": "~1.13.0", + "@contentstack/cli-cm-branches": "~1.1.4", + "@contentstack/cli-cm-bulk-publish": "~1.4.9", + "@contentstack/cli-cm-clone": "~1.13.0", + "@contentstack/cli-cm-export": "~1.14.0", + "@contentstack/cli-cm-export-to-csv": "~1.7.3", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-cm-migrate-rte": "~1.4.20", + "@contentstack/cli-cm-seed": "~1.10.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-launch": "~1.2.3", + "@contentstack/cli-migration": "~1.6.2", + "@contentstack/cli-utilities": "~1.8.0", + "@contentstack/cli-variants": "~1.1.0", "@contentstack/management": "~1.17.0", "@oclif/core": "^3.26.5", "@oclif/plugin-help": "^5", @@ -26368,11 +26368,11 @@ }, "packages/contentstack-audit": { "name": "@contentstack/cli-audit", - "version": "1.7.1", + "version": "1.7.2", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/plugin-help": "^5", "@oclif/plugin-plugins": "^5.0.0", "chalk": "^4.1.2", @@ -26629,11 +26629,11 @@ }, "packages/contentstack-auth": { "name": "@contentstack/cli-auth", - "version": "1.3.21", + "version": "1.3.22", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.0.0", "debug": "^4.1.1", "inquirer": "8.2.4", @@ -26670,12 +26670,12 @@ }, "packages/contentstack-bootstrap": { "name": "@contentstack/cli-cm-bootstrap", - "version": "1.12.0", + "version": "1.13.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-seed": "~1.9.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-seed": "~1.10.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "inquirer": "8.2.4", "mkdirp": "^1.0.4", "tar": "^6.2.1 " @@ -26752,11 +26752,11 @@ }, "packages/contentstack-branches": { "name": "@contentstack/cli-cm-branches", - "version": "1.1.3", + "version": "1.1.4", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/core": "^3.26.5", "async": "^3.2.4", "big-json": "^3.2.0", @@ -26775,8 +26775,8 @@ "winston": "^3.7.2" }, "devDependencies": { - "@contentstack/cli-auth": "~1.3.19", - "@contentstack/cli-config": "~1.7.0", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-config": "~1.7.3", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", @@ -26801,11 +26801,11 @@ }, "packages/contentstack-bulk-publish": { "name": "@contentstack/cli-cm-bulk-publish", - "version": "1.4.8", + "version": "1.4.9", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "bluebird": "^3.7.2", "chalk": "^4.1.2", "dotenv": "^16.1.4", @@ -26839,14 +26839,14 @@ }, "packages/contentstack-clone": { "name": "@contentstack/cli-cm-clone", - "version": "1.12.0", + "version": "1.13.0", "license": "MIT", "dependencies": { "@colors/colors": "^1.5.0", - "@contentstack/cli-cm-export": "~1.13.0", - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-export": "~1.14.0", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "async": "^3.2.4", "chalk": "^4.1.0", "child_process": "^1.0.2", @@ -26875,6 +26875,74 @@ "node": ">=14.0.0" } }, + "packages/contentstack-clone/node_modules/@contentstack/cli-cm-export/node_modules/@contentstack/cli-utilities": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-utilities/-/cli-utilities-1.7.3.tgz", + "integrity": "sha512-xA4POMB98amZpwLUzEl/7L+LUpjau6GL7Dlvq/51RtT7HkmutBv0aQs03FK1Ls0ZdeOsGmlAzZQHXcr8orfaIg==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/management": "~1.17.0", + "@contentstack/marketplace-sdk": "^1.2.1", + "@oclif/core": "^3.26.5", + "axios": "^1.7.4", + "chalk": "^4.0.0", + "cli-cursor": "^3.1.0", + "cli-table": "^0.3.11", + "conf": "^10.2.0", + "debug": "^4.1.1", + "figures": "^3.2.0", + "inquirer": "8.2.4", + "inquirer-search-checkbox": "^1.0.0", + "inquirer-search-list": "^1.2.6", + "klona": "^2.0.6", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "open": "^8.4.2", + "ora": "^5.4.0", + "recheck": "^4.4.5", + "rxjs": "^6.6.7", + "traverse": "^0.6.7", + "unique-string": "^2.0.0", + "uuid": "^9.0.1", + "winston": "^3.7.2", + "xdg-basedir": "^4.0.0" + } + }, + "packages/contentstack-clone/node_modules/@contentstack/cli-cm-import/node_modules/@contentstack/cli-utilities": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-utilities/-/cli-utilities-1.7.3.tgz", + "integrity": "sha512-xA4POMB98amZpwLUzEl/7L+LUpjau6GL7Dlvq/51RtT7HkmutBv0aQs03FK1Ls0ZdeOsGmlAzZQHXcr8orfaIg==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/management": "~1.17.0", + "@contentstack/marketplace-sdk": "^1.2.1", + "@oclif/core": "^3.26.5", + "axios": "^1.7.4", + "chalk": "^4.0.0", + "cli-cursor": "^3.1.0", + "cli-table": "^0.3.11", + "conf": "^10.2.0", + "debug": "^4.1.1", + "figures": "^3.2.0", + "inquirer": "8.2.4", + "inquirer-search-checkbox": "^1.0.0", + "inquirer-search-list": "^1.2.6", + "klona": "^2.0.6", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "open": "^8.4.2", + "ora": "^5.4.0", + "recheck": "^4.4.5", + "rxjs": "^6.6.7", + "traverse": "^0.6.7", + "unique-string": "^2.0.0", + "uuid": "^9.0.1", + "winston": "^3.7.2", + "xdg-basedir": "^4.0.0" + } + }, "packages/contentstack-clone/node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -26949,10 +27017,10 @@ }, "packages/contentstack-command": { "name": "@contentstack/cli-command", - "version": "1.3.1", + "version": "1.3.2", "license": "MIT", "dependencies": { - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-utilities": "~1.8.0", "contentstack": "^3.10.1" }, "devDependencies": { @@ -27026,11 +27094,11 @@ }, "packages/contentstack-config": { "name": "@contentstack/cli-config", - "version": "1.7.2", + "version": "1.7.3", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.0.0", "debug": "^4.1.1", "inquirer": "8.2.4", @@ -27432,12 +27500,12 @@ }, "packages/contentstack-export": { "name": "@contentstack/cli-cm-export", - "version": "1.13.0", + "version": "1.14.0", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", - "@contentstack/cli-variants": "~1.0.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", + "@contentstack/cli-variants": "~1.1.0", "@oclif/core": "^3.26.5", "async": "^3.2.4", "big-json": "^3.2.0", @@ -27455,8 +27523,8 @@ "winston": "^3.7.2" }, "devDependencies": { - "@contentstack/cli-auth": "~1.3.19", - "@contentstack/cli-config": "~1.7.0", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-config": "~1.7.3", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", @@ -27483,11 +27551,11 @@ }, "packages/contentstack-export-to-csv": { "name": "@contentstack/cli-cm-export-to-csv", - "version": "1.7.2", + "version": "1.7.3", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.1.0", "fast-csv": "^4.3.6", "inquirer": "8.2.4", @@ -28012,13 +28080,13 @@ }, "packages/contentstack-import": { "name": "@contentstack/cli-cm-import", - "version": "1.18.0", + "version": "1.19.0", "license": "MIT", "dependencies": { - "@contentstack/cli-audit": "~1.7.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", - "@contentstack/cli-variants": "~1.0.0", + "@contentstack/cli-audit": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", + "@contentstack/cli-variants": "~1.1.0", "@contentstack/management": "~1.17.0", "@oclif/core": "^3.26.5", "big-json": "^3.2.0", @@ -28067,12 +28135,12 @@ }, "packages/contentstack-launch": { "name": "@contentstack/cli-launch", - "version": "1.2.2", + "version": "1.2.3", "license": "MIT", "dependencies": { "@apollo/client": "^3.7.9", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/core": "^3.26.5", "@oclif/plugin-help": "^5", "@oclif/plugin-plugins": "^5.0.0", @@ -28383,11 +28451,11 @@ }, "packages/contentstack-migrate-rte": { "name": "@contentstack/cli-cm-migrate-rte", - "version": "1.4.19", + "version": "1.4.20", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@contentstack/json-rte-serializer": "~2.0.4", "chalk": "^4.1.2", "collapse-whitespace": "^1.1.7", @@ -28423,11 +28491,11 @@ }, "packages/contentstack-migration": { "name": "@contentstack/cli-migration", - "version": "1.6.1", + "version": "1.6.2", "license": "MIT", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "async": "^3.2.4", "callsites": "^3.1.0", "cardinal": "^2.1.1", @@ -28456,12 +28524,12 @@ }, "packages/contentstack-seed": { "name": "@contentstack/cli-cm-seed", - "version": "1.9.0", + "version": "1.10.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "inquirer": "8.2.4", "mkdirp": "^1.0.4", "tar": "^6.1.13", @@ -28540,7 +28608,7 @@ }, "packages/contentstack-utilities": { "name": "@contentstack/cli-utilities", - "version": "1.7.3", + "version": "1.8.0", "license": "MIT", "dependencies": { "@contentstack/management": "~1.17.0", @@ -28552,6 +28620,7 @@ "cli-table": "^0.3.11", "conf": "^10.2.0", "debug": "^4.1.1", + "dotenv": "^16.4.5", "figures": "^3.2.0", "inquirer": "8.2.4", "inquirer-search-checkbox": "^1.0.0", @@ -28626,10 +28695,10 @@ }, "packages/contentstack-variants": { "name": "@contentstack/cli-variants", - "version": "1.0.0", + "version": "1.1.0", "license": "MIT", "dependencies": { - "@contentstack/cli-utilities": "^1.5.12", + "@contentstack/cli-utilities": "^1.8.0", "lodash": "^4.17.21", "mkdirp": "^1.0.4", "winston": "^3.7.2" @@ -28919,6 +28988,182 @@ "engines": { "node": ">=10" } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-clone/node_modules/@contentstack/cli-cm-export": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-export/-/cli-cm-export-1.13.0.tgz", + "integrity": "sha512-zIx1ud4eLH2SgGHwagxyzZlQKkbiF4ObkOoU8c6sLnN6edKFldMxR5lTti4yp3T4oN0sm6IfJ3z+wKle3dBO3w==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/cli-command": "~1.3.0", + "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-variants": "~1.0.0", + "@oclif/core": "^3.26.5", + "async": "^3.2.4", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.20", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "path": "^0.12.7", + "progress-stream": "^2.0.0", + "promise-limit": "^2.7.0", + "proxyquire": "^2.1.3", + "tslib": "^2.4.1", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-clone/node_modules/@contentstack/cli-cm-import": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.18.0.tgz", + "integrity": "sha512-d03LA/YHKuZSoFTKRaDmUa+fD66J8SnJVRm2553H9GGia+d85g2qDHToMdQEgtK/O4pUiEffsCUvnuulM34isA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/cli-audit": "~1.7.0", + "@contentstack/cli-command": "~1.3.0", + "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-variants": "~1.0.0", + "@contentstack/management": "~1.17.0", + "@oclif/core": "^3.26.5", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "debug": "^4.1.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.20", + "marked": "^4.0.17", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "promise-limit": "^2.7.0", + "tslib": "^2.4.1", + "uuid": "^9.0.1", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-clone/node_modules/@contentstack/cli-utilities": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-utilities/-/cli-utilities-1.7.3.tgz", + "integrity": "sha512-xA4POMB98amZpwLUzEl/7L+LUpjau6GL7Dlvq/51RtT7HkmutBv0aQs03FK1Ls0ZdeOsGmlAzZQHXcr8orfaIg==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/management": "~1.17.0", + "@contentstack/marketplace-sdk": "^1.2.1", + "@oclif/core": "^3.26.5", + "axios": "^1.7.4", + "chalk": "^4.0.0", + "cli-cursor": "^3.1.0", + "cli-table": "^0.3.11", + "conf": "^10.2.0", + "debug": "^4.1.1", + "figures": "^3.2.0", + "inquirer": "8.2.4", + "inquirer-search-checkbox": "^1.0.0", + "inquirer-search-list": "^1.2.6", + "klona": "^2.0.6", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "open": "^8.4.2", + "ora": "^5.4.0", + "recheck": "^4.4.5", + "rxjs": "^6.6.7", + "traverse": "^0.6.7", + "unique-string": "^2.0.0", + "uuid": "^9.0.1", + "winston": "^3.7.2", + "xdg-basedir": "^4.0.0" + } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-clone/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-seed/node_modules/@contentstack/cli-cm-import": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.18.0.tgz", + "integrity": "sha512-d03LA/YHKuZSoFTKRaDmUa+fD66J8SnJVRm2553H9GGia+d85g2qDHToMdQEgtK/O4pUiEffsCUvnuulM34isA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/cli-audit": "~1.7.0", + "@contentstack/cli-command": "~1.3.0", + "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-variants": "~1.0.0", + "@contentstack/management": "~1.17.0", + "@oclif/core": "^3.26.5", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "debug": "^4.1.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.20", + "marked": "^4.0.17", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "promise-limit": "^2.7.0", + "tslib": "^2.4.1", + "uuid": "^9.0.1", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "packages/contentstack/node_modules/@contentstack/cli-cm-seed/node_modules/@contentstack/cli-utilities": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-utilities/-/cli-utilities-1.7.3.tgz", + "integrity": "sha512-xA4POMB98amZpwLUzEl/7L+LUpjau6GL7Dlvq/51RtT7HkmutBv0aQs03FK1Ls0ZdeOsGmlAzZQHXcr8orfaIg==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@contentstack/management": "~1.17.0", + "@contentstack/marketplace-sdk": "^1.2.1", + "@oclif/core": "^3.26.5", + "axios": "^1.7.4", + "chalk": "^4.0.0", + "cli-cursor": "^3.1.0", + "cli-table": "^0.3.11", + "conf": "^10.2.0", + "debug": "^4.1.1", + "figures": "^3.2.0", + "inquirer": "8.2.4", + "inquirer-search-checkbox": "^1.0.0", + "inquirer-search-list": "^1.2.6", + "klona": "^2.0.6", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "open": "^8.4.2", + "ora": "^5.4.0", + "recheck": "^4.4.5", + "rxjs": "^6.6.7", + "traverse": "^0.6.7", + "unique-string": "^2.0.0", + "uuid": "^9.0.1", + "winston": "^3.7.2", + "xdg-basedir": "^4.0.0" + } } } } diff --git a/packages/contentstack-audit/README.md b/packages/contentstack-audit/README.md index e08014afd3..8cd4f52d3d 100644 --- a/packages/contentstack-audit/README.md +++ b/packages/contentstack-audit/README.md @@ -19,7 +19,7 @@ $ npm install -g @contentstack/cli-audit $ csdx COMMAND running command... $ csdx (--version|-v) -@contentstack/cli-audit/1.7.1 darwin-arm64 node-v22.2.0 +@contentstack/cli-audit/1.7.2 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-audit/package.json b/packages/contentstack-audit/package.json index 7acc64c735..17fc1edbd4 100644 --- a/packages/contentstack-audit/package.json +++ b/packages/contentstack-audit/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-audit", - "version": "1.7.1", + "version": "1.7.2", "description": "Contentstack audit plugin", "author": "Contentstack CLI", "homepage": "https://github.com/contentstack/cli", @@ -18,8 +18,8 @@ "/oclif.manifest.json" ], "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/plugin-help": "^5", "@oclif/plugin-plugins": "^5.0.0", "chalk": "^4.1.2", diff --git a/packages/contentstack-auth/README.md b/packages/contentstack-auth/README.md index f4f077e0e9..97600ae039 100644 --- a/packages/contentstack-auth/README.md +++ b/packages/contentstack-auth/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-auth $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-auth/1.3.21 darwin-arm64 node-v22.2.0 +@contentstack/cli-auth/1.3.22 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-auth/package.json b/packages/contentstack-auth/package.json index 26a7500c79..6f890fc6ab 100644 --- a/packages/contentstack-auth/package.json +++ b/packages/contentstack-auth/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-auth", "description": "Contentstack CLI plugin for authentication activities", - "version": "1.3.21", + "version": "1.3.22", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "scripts": { @@ -22,8 +22,8 @@ "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"" }, "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.0.0", "debug": "^4.1.1", "inquirer": "8.2.4", diff --git a/packages/contentstack-bootstrap/README.md b/packages/contentstack-bootstrap/README.md index 1b75d997d7..b7cbd34f9f 100644 --- a/packages/contentstack-bootstrap/README.md +++ b/packages/contentstack-bootstrap/README.md @@ -15,7 +15,7 @@ $ npm install -g @contentstack/cli-cm-bootstrap $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-bootstrap/1.12.0 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-bootstrap/1.13.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-bootstrap/package.json b/packages/contentstack-bootstrap/package.json index 5afeb6b48a..5e816bb137 100644 --- a/packages/contentstack-bootstrap/package.json +++ b/packages/contentstack-bootstrap/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-bootstrap", "description": "Bootstrap contentstack apps", - "version": "1.12.0", + "version": "1.13.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "scripts": { @@ -17,9 +17,9 @@ "test:report": "nyc --reporter=lcov mocha \"test/**/*.test.js\"" }, "dependencies": { - "@contentstack/cli-cm-seed": "~1.9.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-seed": "~1.10.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "inquirer": "8.2.4", "mkdirp": "^1.0.4", "tar": "^6.2.1 " diff --git a/packages/contentstack-branches/README.md b/packages/contentstack-branches/README.md index 112e2319a9..74f0e2f782 100755 --- a/packages/contentstack-branches/README.md +++ b/packages/contentstack-branches/README.md @@ -37,7 +37,7 @@ $ npm install -g @contentstack/cli-cm-branches $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-branches/1.1.3 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-branches/1.1.4 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-branches/package.json b/packages/contentstack-branches/package.json index ece3af8b45..533a3736ac 100644 --- a/packages/contentstack-branches/package.json +++ b/packages/contentstack-branches/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-branches", "description": "Contentstack CLI plugin to do branches operations", - "version": "1.1.3", + "version": "1.1.4", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/core": "^3.26.5", "async": "^3.2.4", "big-json": "^3.2.0", @@ -25,8 +25,8 @@ "winston": "^3.7.2" }, "devDependencies": { - "@contentstack/cli-auth": "~1.3.19", - "@contentstack/cli-config": "~1.7.0", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-config": "~1.7.3", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", diff --git a/packages/contentstack-bulk-publish/README.md b/packages/contentstack-bulk-publish/README.md index 7780bea08b..fb227ea3e5 100644 --- a/packages/contentstack-bulk-publish/README.md +++ b/packages/contentstack-bulk-publish/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-bulk-publish/1.4.8 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-bulk-publish/1.4.9 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-bulk-publish/package.json b/packages/contentstack-bulk-publish/package.json index b227eb1048..36bf40595a 100644 --- a/packages/contentstack-bulk-publish/package.json +++ b/packages/contentstack-bulk-publish/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-bulk-publish", "description": "Contentstack CLI plugin for bulk publish actions", - "version": "1.4.8", + "version": "1.4.9", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "bluebird": "^3.7.2", "chalk": "^4.1.2", "dotenv": "^16.1.4", diff --git a/packages/contentstack-clone/README.md b/packages/contentstack-clone/README.md index 63e5b864cc..dd1a9bd9d9 100644 --- a/packages/contentstack-clone/README.md +++ b/packages/contentstack-clone/README.md @@ -16,7 +16,7 @@ $ npm install -g @contentstack/cli-cm-clone $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-clone/1.12.0 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-clone/1.13.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index d8d5e7823e..b0e6a3f5b4 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -1,15 +1,15 @@ { "name": "@contentstack/cli-cm-clone", "description": "Contentstack stack clone plugin", - "version": "1.12.0", + "version": "1.13.0", "author": "Contentstack", "bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues", "dependencies": { "@colors/colors": "^1.5.0", - "@contentstack/cli-cm-export": "~1.13.0", - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-export": "~1.14.0", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "async": "^3.2.4", "chalk": "^4.1.0", "child_process": "^1.0.2", diff --git a/packages/contentstack-command/package.json b/packages/contentstack-command/package.json index cd005b2244..34e0695bd6 100644 --- a/packages/contentstack-command/package.json +++ b/packages/contentstack-command/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-command", "description": "Contentstack CLI plugin for configuration", - "version": "1.3.1", + "version": "1.3.2", "author": "Contentstack", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -17,7 +17,7 @@ "format": "eslint src/**/*.ts --fix" }, "dependencies": { - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-utilities": "~1.8.0", "contentstack": "^3.10.1" }, "devDependencies": { diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index 901a8d8256..6029836d4d 100644 --- a/packages/contentstack-config/README.md +++ b/packages/contentstack-config/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-config $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-config/1.7.2 darwin-arm64 node-v22.2.0 +@contentstack/cli-config/1.7.3 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index 8ad3734c78..c8ef75a741 100644 --- a/packages/contentstack-config/package.json +++ b/packages/contentstack-config/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-config", "description": "Contentstack CLI plugin for configuration", - "version": "1.7.2", + "version": "1.7.3", "author": "Contentstack", "scripts": { "build": "npm run clean && npm run compile", @@ -21,8 +21,8 @@ "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"" }, "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.0.0", "debug": "^4.1.1", "inquirer": "8.2.4", diff --git a/packages/contentstack-export-to-csv/package.json b/packages/contentstack-export-to-csv/package.json index 75a3fe0a9c..c4d8e435d1 100644 --- a/packages/contentstack-export-to-csv/package.json +++ b/packages/contentstack-export-to-csv/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-export-to-csv", "description": "Export entities to csv", - "version": "1.7.2", + "version": "1.7.3", "author": "Abhinav Gupta @abhinav-from-contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "chalk": "^4.1.0", "fast-csv": "^4.3.6", "inquirer": "8.2.4", diff --git a/packages/contentstack-export/README.md b/packages/contentstack-export/README.md index 977f6c8cce..71fe5f1f73 100755 --- a/packages/contentstack-export/README.md +++ b/packages/contentstack-export/README.md @@ -48,7 +48,7 @@ $ npm install -g @contentstack/cli-cm-export $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-export/1.13.0 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-export/1.14.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 1e76451286..f2807ddbf4 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -1,13 +1,13 @@ { "name": "@contentstack/cli-cm-export", "description": "Contentstack CLI plugin to export content from stack", - "version": "1.13.0", + "version": "1.14.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-variants": "~1.0.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-variants": "~1.1.0", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/core": "^3.26.5", "async": "^3.2.4", "big-json": "^3.2.0", @@ -25,8 +25,8 @@ "winston": "^3.7.2" }, "devDependencies": { - "@contentstack/cli-auth": "~1.3.19", - "@contentstack/cli-config": "~1.7.0", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-config": "~1.7.3", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", diff --git a/packages/contentstack-export/src/export/modules/marketplace-apps.ts b/packages/contentstack-export/src/export/modules/marketplace-apps.ts index cc2a5b4e9c..ff34d2400f 100644 --- a/packages/contentstack-export/src/export/modules/marketplace-apps.ts +++ b/packages/contentstack-export/src/export/modules/marketplace-apps.ts @@ -138,7 +138,9 @@ export default class ExportMarketplaceApps { */ async getAppConfigurations(index: number, appInstallation: any) { const appName = appInstallation?.manifest?.name; - log(this.exportConfig, `Exporting ${appName} app and it's config.`, 'info'); + const appUid = appInstallation?.manifest?.uid; + const app = appName || appUid; + log(this.exportConfig, `Exporting ${app} app and it's config.`, 'info'); await this.appSdk .marketplace(this.exportConfig.org_uid) @@ -158,17 +160,17 @@ export default class ExportMarketplaceApps { if (!isEmpty(data?.server_configuration)) { this.installedApps[index]['server_configuration'] = this.nodeCrypto.encrypt(data.server_configuration); - log(this.exportConfig, `Exported ${appName} app and it's config.`, 'success'); + log(this.exportConfig, `Exported ${app} app and it's config.`, 'success'); } else { - log(this.exportConfig, `Exported ${appName} app`, 'success'); + log(this.exportConfig, `Exported ${app} app`, 'success'); } } else if (error) { - log(this.exportConfig, `Error on exporting ${appName} app and it's config.`, 'error'); + log(this.exportConfig, `Error on exporting ${app} app and it's config.`, 'error'); log(this.exportConfig, error, 'error'); } }) .catch((error: any) => { - log(this.exportConfig, `Failed to export ${appName} app config ${formatError(error)}`, 'error'); + log(this.exportConfig, `Failed to export ${app} app config ${formatError(error)}`, 'error'); log(this.exportConfig, error, 'error'); }); } diff --git a/packages/contentstack-export/src/export/modules/personalize.ts b/packages/contentstack-export/src/export/modules/personalize.ts index 45cff20807..6fa5f89b33 100644 --- a/packages/contentstack-export/src/export/modules/personalize.ts +++ b/packages/contentstack-export/src/export/modules/personalize.ts @@ -7,7 +7,7 @@ import { AnyProperty, } from '@contentstack/cli-variants'; -import { log, formatError } from '../../utils'; +import { log } from '../../utils'; import { ModuleClassParams, ExportConfig } from '../../types'; export default class ExportPersonalize { diff --git a/packages/contentstack-import/README.md b/packages/contentstack-import/README.md index 7f298bfa34..7a8b367abf 100644 --- a/packages/contentstack-import/README.md +++ b/packages/contentstack-import/README.md @@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-import/1.18.0 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-import/1.19.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index f1ec8916f9..9024cd8a4f 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -1,15 +1,15 @@ { "name": "@contentstack/cli-cm-import", "description": "Contentstack CLI plugin to import content into stack", - "version": "1.18.0", + "version": "1.19.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-audit": "~1.7.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-audit": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@contentstack/management": "~1.17.0", - "@contentstack/cli-variants": "~1.0.0", + "@contentstack/cli-variants": "~1.1.0", "@oclif/core": "^3.26.5", "big-json": "^3.2.0", "bluebird": "^3.7.2", diff --git a/packages/contentstack-import/src/import/modules/marketplace-apps.ts b/packages/contentstack-import/src/import/modules/marketplace-apps.ts index 91a0d16341..f334807e92 100644 --- a/packages/contentstack-import/src/import/modules/marketplace-apps.ts +++ b/packages/contentstack-import/src/import/modules/marketplace-apps.ts @@ -438,7 +438,7 @@ export default class ImportMarketplaceApps { ); if (installation.installation_uid) { - const appName = this.appNameMapping[app.manifest.name] ?? app.manifest.name; + const appName = this.appNameMapping[app.manifest.name] || app.manifest.name || app.manifest.uid; log(this.importConfig, `${appName} app installed successfully.!`, 'success'); await makeRedirectUrlCall(installation, appName, this.importConfig); this.installationUidMapping[app.uid] = installation.installation_uid; @@ -448,7 +448,8 @@ export default class ImportMarketplaceApps { await confirmToCloseProcess(installation, this.importConfig); } } else if (!isEmpty(configuration) || !isEmpty(server_configuration)) { - log(this.importConfig, `${app.manifest.name} is already installed`, 'success'); + const appName = app.manifest.name || app.manifest.uid; + log(this.importConfig, `${appName} is already installed`, 'success'); updateParam = await ifAppAlreadyExist(app, currentStackApp, this.importConfig); } @@ -481,7 +482,8 @@ export default class ImportMarketplaceApps { trace(data, 'error', true); log(this.importConfig, formatError(data.message), 'success'); } else { - log(this.importConfig, `${app.manifest.name} app config updated successfully.!`, 'success'); + const appName = app.manifest.name || app.manifest.uid; + log(this.importConfig, `${appName} app config updated successfully.!`, 'success'); } }) .catch((error: any) => { diff --git a/packages/contentstack-import/src/utils/entries-helper.ts b/packages/contentstack-import/src/utils/entries-helper.ts index ac070662aa..503a540556 100644 --- a/packages/contentstack-import/src/utils/entries-helper.ts +++ b/packages/contentstack-import/src/utils/entries-helper.ts @@ -548,11 +548,17 @@ export const restoreJsonRteEntryRefs = ( }); } else { entry[element.uid] = restoreReferenceInJsonRTE(sourceStackEntry[element.uid], uidMapper); - entry[element.uid].children = entry[element.uid].children.map((child: any) => { - child = setDirtyTrue(child); - child = resolveAssetRefsInEntryRefsForJsonRte(child, mappedAssetUids, mappedAssetUrls); - return child; - }); + if (entry[element.uid].children && entry[element.uid].children.length > 0) { + entry[element.uid].children = entry[element.uid].children.map((child: any) => { + child = setDirtyTrue(child); + child = resolveAssetRefsInEntryRefsForJsonRte(child, mappedAssetUids, mappedAssetUrls); + return child; + }); + } else { + entry[element.uid].children = [ + { type: 'p', attrs: { style: {}, 'redactor-attributes': {}, dir: 'ltr' } }, + ]; + } } } break; diff --git a/packages/contentstack-launch/README.md b/packages/contentstack-launch/README.md index 8e5aa51675..deb2e66ae1 100755 --- a/packages/contentstack-launch/README.md +++ b/packages/contentstack-launch/README.md @@ -19,7 +19,7 @@ $ npm install -g @contentstack/cli-launch $ csdx COMMAND running command... $ csdx (--version|-v) -@contentstack/cli-launch/1.2.2 darwin-arm64 node-v22.2.0 +@contentstack/cli-launch/1.2.3 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-launch/package.json b/packages/contentstack-launch/package.json index 4400648155..61c7df8c53 100755 --- a/packages/contentstack-launch/package.json +++ b/packages/contentstack-launch/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-launch", - "version": "1.2.2", + "version": "1.2.3", "description": "Launch related operations", "author": "Contentstack CLI", "bin": { @@ -18,8 +18,8 @@ ], "dependencies": { "@apollo/client": "^3.7.9", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@oclif/core": "^3.26.5", "@oclif/plugin-help": "^5", "@oclif/plugin-plugins": "^5.0.0", diff --git a/packages/contentstack-migrate-rte/README.md b/packages/contentstack-migrate-rte/README.md index ddf82d92df..36d4f7dec6 100644 --- a/packages/contentstack-migrate-rte/README.md +++ b/packages/contentstack-migrate-rte/README.md @@ -16,7 +16,7 @@ $ npm install -g @contentstack/cli-cm-migrate-rte $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-migrate-rte/1.4.19 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-migrate-rte/1.4.20 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-migrate-rte/package.json b/packages/contentstack-migrate-rte/package.json index 91cd0c6e20..067eb713d4 100644 --- a/packages/contentstack-migrate-rte/package.json +++ b/packages/contentstack-migrate-rte/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-migrate-rte", "description": "Contentstack CLI plugin to migrate HTML RTE to JSON RTE", - "version": "1.4.19", + "version": "1.4.20", "author": "contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "@contentstack/json-rte-serializer": "~2.0.4", "collapse-whitespace": "^1.1.7", "chalk": "^4.1.2", diff --git a/packages/contentstack-migration/README.md b/packages/contentstack-migration/README.md index a5148be25b..f5ca8616ec 100644 --- a/packages/contentstack-migration/README.md +++ b/packages/contentstack-migration/README.md @@ -21,7 +21,7 @@ $ npm install -g @contentstack/cli-migration $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-migration/1.6.1 darwin-arm64 node-v22.2.0 +@contentstack/cli-migration/1.6.2 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-migration/package.json b/packages/contentstack-migration/package.json index 501d829633..bdc1158ee2 100644 --- a/packages/contentstack-migration/package.json +++ b/packages/contentstack-migration/package.json @@ -1,11 +1,11 @@ { "name": "@contentstack/cli-migration", - "version": "1.6.1", + "version": "1.6.2", "author": "@contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "async": "^3.2.4", "callsites": "^3.1.0", "cardinal": "^2.1.1", diff --git a/packages/contentstack-seed/package.json b/packages/contentstack-seed/package.json index e15ecdf73a..6209e20c41 100644 --- a/packages/contentstack-seed/package.json +++ b/packages/contentstack-seed/package.json @@ -1,13 +1,13 @@ { "name": "@contentstack/cli-cm-seed", "description": "create a Stack from existing content types, entries, assets, etc.", - "version": "1.9.0", + "version": "1.10.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-command": "~1.3.0", - "@contentstack/cli-utilities": "~1.7.2", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-utilities": "~1.8.0", "inquirer": "8.2.4", "mkdirp": "^1.0.4", "tar": "^6.1.13", diff --git a/packages/contentstack-utilities/package.json b/packages/contentstack-utilities/package.json index 7014da1864..888fa7c95e 100644 --- a/packages/contentstack-utilities/package.json +++ b/packages/contentstack-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-utilities", - "version": "1.7.3", + "version": "1.8.0", "description": "Utilities for contentstack projects", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -41,6 +41,7 @@ "cli-table": "^0.3.11", "conf": "^10.2.0", "debug": "^4.1.1", + "dotenv": "^16.4.5", "figures": "^3.2.0", "inquirer": "8.2.4", "inquirer-search-checkbox": "^1.0.0", diff --git a/packages/contentstack-utilities/src/auth-handler.ts b/packages/contentstack-utilities/src/auth-handler.ts index 98dbda88f5..8ca247621a 100644 --- a/packages/contentstack-utilities/src/auth-handler.ts +++ b/packages/contentstack-utilities/src/auth-handler.ts @@ -1,6 +1,7 @@ import cliux from './cli-ux'; import HttpClient from './http-client'; import configHandler from './config-handler'; +import dotenv from 'dotenv'; import * as ContentstackManagementSDK from '@contentstack/management'; import messageHandler from './message-handler'; const http = require('http'); @@ -8,6 +9,7 @@ const url = require('url'); import open from 'open'; import {LoggerService} from './logger'; const crypto = require('crypto'); +dotenv.config(); /** * @class diff --git a/packages/contentstack-utilities/src/authentication-handler.ts b/packages/contentstack-utilities/src/authentication-handler.ts new file mode 100644 index 0000000000..a0ca6ee1a6 --- /dev/null +++ b/packages/contentstack-utilities/src/authentication-handler.ts @@ -0,0 +1,126 @@ +import { cliux as ux, authHandler, configHandler } from './index'; + +class AuthenticationHandler { + private authType: string; + private isOAuth: boolean; + private token: string | null = null; + + constructor() { + this.authType = configHandler.get('authorisationType'); + this.isOAuth = this.authType === 'OAUTH'; + } + + async getAuthDetails(): Promise { + try { + switch (this.authType) { + case 'BASIC': + this.token = configHandler.get('authtoken'); + break; + case 'OAUTH': + await authHandler.compareOAuthExpiry(); + this.token = `Bearer ${configHandler.get('oauthAccessToken')}`; + break; + default: + const authToken = configHandler.get('authtoken'); + if (authToken) { + this.token = authToken; + } else { + ux.print('Session timed out, please login to proceed', { + color: 'yellow', + }); + process.exit(1); + } + break; + } + } catch (error) { + ux.print(`Error occurred while fetching auth details: ${error.message}`, { + color: 'red', + }); + process.exit(1); + } + } + + get isOauthEnabled(): boolean { + return this.isOAuth; + } + + get accessToken(): string { + if (!this.token) { + throw new Error('Token is not available. Please authenticate first.'); + } + return this.token; + } + + async refreshAccessToken(error: any, maxRetryCount = 1): Promise { + if (error.response && error.response.status) { + if (maxRetryCount >= 3) { + ux.print('Max retry count reached, please login to proceed', { + color: 'yellow', + }); + process.exit(1); + } + + maxRetryCount++; // Increment for the next retry attempt + + switch (error.response.status) { + case 401: + // NOTE: Refresh the token if the type is OAuth. + const region: { cma: string; name: string; cda: string } = configHandler.get('region') || {}; + if (region?.cma) { + let hostName: string = ''; + if (region.cma.startsWith('http')) { + const u = new URL(region.cma); + if (u.host) hostName = u.host; + } + hostName = hostName || region.cma; + await this.refreshToken(hostName); + return this.refreshAccessToken(error, maxRetryCount); // Retry after refreshing the token + } + + case 429: + case 408: + // These cases require a wait, adding a delay before retrying + await new Promise((resolve) => setTimeout(resolve, 1000)); // wait for 1 second + return this.refreshAccessToken(error, maxRetryCount); // Retry + + default: + return; // Handle other cases if necessary + } + } + } + + refreshToken(hostName: string): Promise { + return new Promise((resolve) => { + if (this.authType === 'BASIC') { + // NOTE Handle basic auth 401 here + resolve(false); + ux.print('Session timed out, please login to proceed', { + color: 'yellow', + }); + process.exit(); + } else if (this.authType === 'OAUTH') { + authHandler.host = hostName; + // NOTE Handle OAuth refresh token + authHandler + .compareOAuthExpiry(true) + .then(() => { + this.token = `Bearer ${configHandler.get('oauthAccessToken')}`; + resolve(true); + }) + .catch((error: any) => { + console.log(error); + resolve(false); + }); + } else { + resolve(false); + ux.print('You do not have the permissions to perform this action, please login to proceed', { + color: 'yellow', + }); + process.exit(); + } + }); + } +} + +const authenticationHandler = new AuthenticationHandler(); +export default authenticationHandler; diff --git a/packages/contentstack-utilities/src/helpers.ts b/packages/contentstack-utilities/src/helpers.ts index ec981bc80a..aaaf6851d1 100644 --- a/packages/contentstack-utilities/src/helpers.ts +++ b/packages/contentstack-utilities/src/helpers.ts @@ -80,6 +80,21 @@ export const formatError = function (error: any) { parsedError = error; } + // Check if parsedError is an empty object + if (parsedError && typeof parsedError === 'object' && Object.keys(parsedError).length === 0) { + return `An unknown error occurred. ${error}`; + } + + // Check for specific SSL error + if (parsedError?.code === 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY') { + return 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY occurred during SSL certificate verification! Please check your certificate configuration.'; + } + + // Handle self signed certificate error + if (parsedError?.code === 'SELF_SIGNED_CERT_IN_CHAIN') { + return 'Self-signed certificate in the certificate chain! Please ensure your certificate configuration is correct and the necessary CA certificates are trusted.'; + } + // Determine the error message let message = parsedError.errorMessage || parsedError.error_message || parsedError.message || parsedError; if (typeof message === 'object') { diff --git a/packages/contentstack-utilities/src/index.ts b/packages/contentstack-utilities/src/index.ts index dba474ca5c..a7e48362c7 100644 --- a/packages/contentstack-utilities/src/index.ts +++ b/packages/contentstack-utilities/src/index.ts @@ -77,3 +77,4 @@ export { FlagInput, ArgInput, FlagDefinition } from '@oclif/core/lib/interfaces/ export { default as TablePrompt } from './inquirer-table-prompt'; export { Logger }; +export { default as authenticationHandler } from './authentication-handler'; diff --git a/packages/contentstack-variants/package.json b/packages/contentstack-variants/package.json index 5a723f8085..f76506fa06 100644 --- a/packages/contentstack-variants/package.json +++ b/packages/contentstack-variants/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-variants", - "version": "1.0.0", + "version": "1.1.0", "description": "Variants plugin", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -30,7 +30,7 @@ "typescript": "^5.4.2" }, "dependencies": { - "@contentstack/cli-utilities": "^1.5.12", + "@contentstack/cli-utilities": "^1.8.0", "lodash": "^4.17.21", "mkdirp": "^1.0.4", "winston": "^3.7.2" diff --git a/packages/contentstack-variants/src/export/attributes.ts b/packages/contentstack-variants/src/export/attributes.ts index 9fa7643a74..033ee3260b 100644 --- a/packages/contentstack-variants/src/export/attributes.ts +++ b/packages/contentstack-variants/src/export/attributes.ts @@ -14,7 +14,7 @@ export default class ExportAttributes extends PersonalizationAdapter { super({ config: exportConfig, baseURL: exportConfig.modules.personalize.baseURL[exportConfig.region.name], - headers: { authtoken: exportConfig.auth_token, 'X-Project-Uid': exportConfig.project_id }, + headers: { 'X-Project-Uid': exportConfig.project_id }, }); this.personalizeConfig = exportConfig.modules.personalize; this.eventsConfig = exportConfig.modules.events; @@ -30,6 +30,7 @@ export default class ExportEvents extends PersonalizationAdapter { async start() { try { log(this.exportConfig, 'Starting events export', 'info'); + await this.init(); await fsUtil.makeDirectory(this.eventsFolderPath); this.events = (await this.getEvents()) as EventStruct[]; diff --git a/packages/contentstack-variants/src/export/experiences.ts b/packages/contentstack-variants/src/export/experiences.ts index 25d9a8420c..fbb8a7eb41 100644 --- a/packages/contentstack-variants/src/export/experiences.ts +++ b/packages/contentstack-variants/src/export/experiences.ts @@ -11,10 +11,10 @@ export default class ExportExperiences extends PersonalizationAdapter = (await this.getExperiences()) || []; diff --git a/packages/contentstack-variants/src/export/projects.ts b/packages/contentstack-variants/src/export/projects.ts index 4404c51738..c66f23494e 100644 --- a/packages/contentstack-variants/src/export/projects.ts +++ b/packages/contentstack-variants/src/export/projects.ts @@ -11,7 +11,7 @@ export default class ExportProjects extends PersonalizationAdapter super({ config: exportConfig, baseURL: exportConfig.modules.personalize.baseURL[exportConfig.region.name], - headers: { authtoken: exportConfig.auth_token, organization_uid: exportConfig.org_uid }, + headers: { organization_uid: exportConfig.org_uid }, }); this.exportConfig = exportConfig; this.personalizeConfig = exportConfig.modules.personalize; @@ -26,6 +26,7 @@ export default class ExportProjects extends PersonalizationAdapter async start() { try { log(this.exportConfig, 'Starting projects export', 'info'); + await this.init(); await fsUtil.makeDirectory(this.projectFolderPath); const project = await this.projects({ connectedStackApiKey: this.exportConfig.apiKey }); if (!project || project?.length < 1) { diff --git a/packages/contentstack-variants/src/export/variant-entries.ts b/packages/contentstack-variants/src/export/variant-entries.ts index a872544e44..fd1c11a606 100644 --- a/packages/contentstack-variants/src/export/variant-entries.ts +++ b/packages/contentstack-variants/src/export/variant-entries.ts @@ -19,7 +19,6 @@ export default class VariantEntries extends VariantAdapter[] }) { const variantEntry = this.config.modules.variantEntry; const { entries, locale, contentTypeUid: content_type_uid } = options; - + await this.variantInstance.init(); for (let index = 0; index < entries.length; index++) { const entry = entries[index]; const variantEntryBasePath = join(sanitizePath(this.entriesDirPath), sanitizePath(content_type_uid), sanitizePath(locale), sanitizePath(variantEntry.dirName), sanitizePath(entry.uid)); diff --git a/packages/contentstack-variants/src/import/attribute.ts b/packages/contentstack-variants/src/import/attribute.ts index fd21548232..666cab8e08 100644 --- a/packages/contentstack-variants/src/import/attribute.ts +++ b/packages/contentstack-variants/src/import/attribute.ts @@ -16,7 +16,7 @@ export default class Attribute extends PersonalizationAdapter { const conf: APIConfig = { config, baseURL: config.modules.personalize.baseURL[config.region.name], - headers: { 'X-Project-Uid': config.modules.personalize.project_id, authtoken: config.auth_token }, + headers: { 'X-Project-Uid': config.modules.personalize.project_id }, }; super(Object.assign(config, conf)); this.personalizeConfig = this.config.modules.personalize; @@ -36,7 +36,7 @@ export default class Attribute extends PersonalizationAdapter { */ async import() { this.log(this.config, this.$t(this.messages.IMPORT_MSG, { module: 'Attributes' }), 'info'); - + await this.init(); await fsUtil.makeDirectory(this.attrMapperDirPath); const { dirName, fileName } = this.attributeConfig; const attributesPath = resolve( diff --git a/packages/contentstack-variants/src/import/audiences.ts b/packages/contentstack-variants/src/import/audiences.ts index be414a8c25..e3bb2a0a98 100644 --- a/packages/contentstack-variants/src/import/audiences.ts +++ b/packages/contentstack-variants/src/import/audiences.ts @@ -18,7 +18,7 @@ export default class Audiences extends PersonalizationAdapter { const conf: APIConfig = { config, baseURL: config.modules.personalize.baseURL[config.region.name], - headers: { 'X-Project-Uid': config.modules.personalize.project_id, authtoken: config.auth_token }, + headers: { 'X-Project-Uid': config.modules.personalize.project_id }, }; super(Object.assign(config, conf)); this.personalizeConfig = this.config.modules.personalize; @@ -44,7 +44,7 @@ export default class Audiences extends PersonalizationAdapter { */ async import() { this.log(this.config, this.$t(this.messages.IMPORT_MSG, { module: 'Audiences' }), 'info'); - + await this.init(); await fsUtil.makeDirectory(this.audienceMapperDirPath); const { dirName, fileName } = this.audienceConfig; const audiencesPath = resolve( diff --git a/packages/contentstack-variants/src/import/events.ts b/packages/contentstack-variants/src/import/events.ts index 25d7de178f..e3ecefbcc8 100644 --- a/packages/contentstack-variants/src/import/events.ts +++ b/packages/contentstack-variants/src/import/events.ts @@ -16,7 +16,7 @@ export default class Events extends PersonalizationAdapter { const conf: APIConfig = { config, baseURL: config.modules.personalize.baseURL[config.region.name], - headers: { 'X-Project-Uid': config.modules.personalize.project_id, authtoken: config.auth_token }, + headers: { 'X-Project-Uid': config.modules.personalize.project_id }, }; super(Object.assign(config, conf)); this.personalizeConfig = this.config.modules.personalize; @@ -36,7 +36,7 @@ export default class Events extends PersonalizationAdapter { */ async import() { this.log(this.config, this.$t(this.messages.IMPORT_MSG, { module: 'Events' }), 'info'); - + await this.init(); await fsUtil.makeDirectory(this.eventMapperDirPath); const { dirName, fileName } = this.eventsConfig; const eventsPath = resolve( diff --git a/packages/contentstack-variants/src/import/experiences.ts b/packages/contentstack-variants/src/import/experiences.ts index 763c0f929d..184f3dbe1f 100644 --- a/packages/contentstack-variants/src/import/experiences.ts +++ b/packages/contentstack-variants/src/import/experiences.ts @@ -45,10 +45,10 @@ export default class Experiences extends PersonalizationAdapter { const conf: APIConfig = { config, baseURL: config.modules.personalize.baseURL[config.region.name], - headers: { 'X-Project-Uid': config.modules.personalize.project_id, authtoken: config.auth_token }, + headers: { 'X-Project-Uid': config.modules.personalize.project_id}, cmaConfig: { baseURL: config.region.cma + `/v3`, - headers: { authtoken: config.auth_token, api_key: config.apiKey }, + headers: { api_key: config.apiKey }, }, }; super(Object.assign(config, conf)); @@ -107,7 +107,7 @@ export default class Experiences extends PersonalizationAdapter { */ async import() { this.log(this.config, this.$t(this.messages.IMPORT_MSG, { module: 'Experiences' }), 'info'); - + await this.init(); await fsUtil.makeDirectory(this.expMapperDirPath); if (existsSync(this.experiencesPath)) { diff --git a/packages/contentstack-variants/src/import/project.ts b/packages/contentstack-variants/src/import/project.ts index 0741785e49..c052492ad9 100644 --- a/packages/contentstack-variants/src/import/project.ts +++ b/packages/contentstack-variants/src/import/project.ts @@ -10,7 +10,7 @@ export default class Project extends PersonalizationAdapter { const conf: APIConfig = { config, baseURL: config.modules.personalize.baseURL[config.region.name], - headers: { organization_uid: config.org_uid, authtoken: config.auth_token }, + headers: { organization_uid: config.org_uid }, }; super(Object.assign(config, conf)); this.projectMapperFolderPath = pResolve( @@ -29,7 +29,7 @@ export default class Project extends PersonalizationAdapter { const personalize = this.config.modules.personalize; const { dirName, fileName } = personalize.projects; const projectPath = join(sanitizePath(this.config.data), sanitizePath(personalize.dirName), sanitizePath(dirName), sanitizePath(fileName)); - + if (existsSync(projectPath)) { const projects = JSON.parse(readFileSync(projectPath, 'utf8')) as CreateProjectInput[]; @@ -38,7 +38,7 @@ export default class Project extends PersonalizationAdapter { this.log(this.config, 'No project found!', 'info'); return; } - + await this.init(); for (const project of projects) { const createProject = async (newName: void | string): Promise => { return await this.createProject({ @@ -46,7 +46,7 @@ export default class Project extends PersonalizationAdapter { description: project.description, connectedStackApiKey: this.config.apiKey, }).catch(async (error) => { - if (error === 'personalization.PROJECTS.DUPLICATE_NAME' || error === 'personalize.PROJECTS.DUPLICATE_NAME') { + if (error.includes('personalization.PROJECTS.DUPLICATE_NAME') || error.includes('personalize.PROJECTS.DUPLICATE_NAME')) { const projectName = await askProjectName('Copy Of ' + (newName || project.name)); return await createProject(projectName); } diff --git a/packages/contentstack-variants/src/import/variant-entries.ts b/packages/contentstack-variants/src/import/variant-entries.ts index c4f4c75176..7f78f572a4 100644 --- a/packages/contentstack-variants/src/import/variant-entries.ts +++ b/packages/contentstack-variants/src/import/variant-entries.ts @@ -49,7 +49,6 @@ export default class VariantEntries extends VariantAdapter; this.assetUrlMapper = (fsUtil.readFile(assetUrlMapperPath, true) || {}) as Record; this.environments = (fsUtil.readFile(envPath, true) || {}) as Record; - + // set the token + await this.variantInstance.init(); for (const entriesForVariant of entriesForVariants) { await this.importVariantEntries(entriesForVariant); } @@ -368,7 +368,7 @@ export default class VariantEntries extends VariantAdapter) => { + const setValue = (currentObj: VariantEntryStruct, keys: string[]) => { if (!currentObj || keys.length === 0) return; const [firstKey, ...restKeys] = keys; @@ -380,7 +380,14 @@ export default class VariantEntries extends VariantAdapter ref._content_type_uid === 'sys_assets') - .map((ref: any) => ref.path); + const pathsToUpdate = + variantEntry?._metadata?.references + ?.filter((ref: any) => ref._content_type_uid === 'sys_assets') + .map((ref: any) => ref.path) || []; - if (pathsToUpdate) { - pathsToUpdate.forEach((path: string) => setValue(variantEntry, path.split('.'))); - } + pathsToUpdate.forEach((path: string) => setValue(variantEntry, path.split('.'))); } /** @@ -406,6 +412,11 @@ export default class VariantEntries extends VariantAdapter extends AdapterHelperInterface; - handleVariantAPIRes(res: any): VariantAPIRes; + handleVariantAPIRes(res: any): Promise; } diff --git a/packages/contentstack-variants/src/types/variant-api-adapter.ts b/packages/contentstack-variants/src/types/variant-api-adapter.ts index bb1ea3ba28..0df86a17d5 100644 --- a/packages/contentstack-variants/src/types/variant-api-adapter.ts +++ b/packages/contentstack-variants/src/types/variant-api-adapter.ts @@ -42,6 +42,8 @@ export type VariantOptions = VariantsOption & { }; export interface VariantInterface extends AdapterHelperInterface { + init(): Promise; + variantEntry(options: VariantOptions): Promise<{ entry: Record }>; variantEntries(options: VariantsOption): Promise<{ entries?: Record[] | unknown[] } | void>; @@ -52,5 +54,5 @@ export interface VariantInterface extends AdapterHelperInterface, ): Promise; - handleVariantAPIRes(res: APIResponse): VariantEntryStruct | { entries: VariantEntryStruct[]; count: number } | string; + handleVariantAPIRes(res: APIResponse): Promise; } diff --git a/packages/contentstack-variants/src/types/variant-entry.ts b/packages/contentstack-variants/src/types/variant-entry.ts index 5608cb21e2..a231026971 100644 --- a/packages/contentstack-variants/src/types/variant-entry.ts +++ b/packages/contentstack-variants/src/types/variant-entry.ts @@ -50,7 +50,6 @@ export type PublishVariantEntryDto = { entry: { environments: string[]; locales: string[]; - publish_with_base_entry: boolean; variants: { uid: string; version?: number; diff --git a/packages/contentstack-variants/src/utils/attributes-helper.ts b/packages/contentstack-variants/src/utils/attributes-helper.ts index 93f607b682..aad04bad59 100644 --- a/packages/contentstack-variants/src/utils/attributes-helper.ts +++ b/packages/contentstack-variants/src/utils/attributes-helper.ts @@ -12,8 +12,8 @@ export const lookUpAttributes = (attributeRules: Record[], attribut // Check if attribute reference exists in attributesUid const attributeRef = rule.attribute?.ref; const attributeType = rule.attribute['__type']; - // check if type is UserAttributeReference - if (attributeType === 'UserAttributeReference') { + // check if type is CustomAttributeReference + if (attributeType === 'CustomAttributeReference') { if (attributeRef && attributesUid.hasOwnProperty(attributeRef) && attributesUid[attributeRef]) { rule.attribute.ref = attributesUid[attributeRef]; } else { diff --git a/packages/contentstack-variants/src/utils/error-helper.ts b/packages/contentstack-variants/src/utils/error-helper.ts index 58c087fbbc..7f01a7c2f7 100644 --- a/packages/contentstack-variants/src/utils/error-helper.ts +++ b/packages/contentstack-variants/src/utils/error-helper.ts @@ -9,18 +9,18 @@ export function formatErrors(errors: any): string { for (const errorKey in errors) { const errorValue = errors[errorKey]; if (Array.isArray(errorValue)) { - errorMessages.push(...errorValue.map((error: any) => formatError(error))); + errorMessages.push(...errorValue.map((error: any) => formatError(errorKey, error))); } else { - errorMessages.push(formatError(errorValue)); + errorMessages.push(formatError(errorKey, errorValue)); } } return errorMessages.join(' '); } -function formatError(error: any): string { - if (typeof error === 'object') { - return Object.values(error).join(' '); +function formatError(errorKey: string, error: any): string { + if (typeof error === 'object' && error !== null) { + return `${errorKey}: ${Object.values(error).join(' ')}`; } - return error; + return `${errorKey}: ${error}`; } diff --git a/packages/contentstack-variants/src/utils/logger.ts b/packages/contentstack-variants/src/utils/logger.ts index c1a2801cb3..ed71d80961 100644 --- a/packages/contentstack-variants/src/utils/logger.ts +++ b/packages/contentstack-variants/src/utils/logger.ts @@ -51,9 +51,9 @@ let errorLogger: winston.Logger; let successTransport; let errorTransport; -function init(_logPath: string) { +function init(_logPath: string, module: string) { if (!logger || !errorLogger) { - const logsDir = path.resolve(sanitizePath(_logPath), 'logs', 'export'); + const logsDir = path.resolve(sanitizePath(_logPath), 'logs', sanitizePath(module)); // Create dir if doesn't already exist mkdirp.sync(logsDir); @@ -131,11 +131,12 @@ function init(_logPath: string) { export const log = (config: ExportConfig | ImportConfig, message: any, type: 'info' | 'error' | 'success') => { const logsPath = config.data; // ignoring the type argument, as we are not using it to create a logfile anymore + const module = (config as ImportConfig)['backupDir'] ? 'import' : 'export'; if (type !== 'error') { // removed type argument from init method - init(logsPath).log(message); + init(logsPath, module).log(message); } else { - init(logsPath).error(message); + init(logsPath, module).error(message); } }; diff --git a/packages/contentstack-variants/src/utils/personalization-api-adapter.ts b/packages/contentstack-variants/src/utils/personalization-api-adapter.ts index 81548955e1..799034ead9 100644 --- a/packages/contentstack-variants/src/utils/personalization-api-adapter.ts +++ b/packages/contentstack-variants/src/utils/personalization-api-adapter.ts @@ -1,5 +1,5 @@ import { AdapterHelper } from './adapter-helper'; -import { HttpClient } from '@contentstack/cli-utilities'; +import { HttpClient, authenticationHandler } from '@contentstack/cli-utilities'; import { ProjectStruct, @@ -31,10 +31,27 @@ export class PersonalizationAdapter extends AdapterHelper impl super(options); } + async init(): Promise { + await authenticationHandler.getAuthDetails(); + const token = authenticationHandler.accessToken; + if (authenticationHandler.isOauthEnabled) { + this.apiClient.headers({ authorization: token }); + if(this.adapterConfig.cmaConfig) { + this.cmaAPIClient?.headers({ authorization: token }); + } + } else { + this.apiClient.headers({ authtoken: token }); + if(this.adapterConfig.cmaConfig) { + this.cmaAPIClient?.headers({ authtoken: token }); + } + } + } + async projects(options: GetProjectsParams): Promise { + await this.init(); const getProjectEndPoint = `/projects?connectedStackApiKey=${options.connectedStackApiKey}`; const data = await this.apiClient.get(getProjectEndPoint); - return this.handleVariantAPIRes(data) as ProjectStruct[]; + return (await this.handleVariantAPIRes(data)) as ProjectStruct[]; } /** @@ -49,7 +66,7 @@ export class PersonalizationAdapter extends AdapterHelper impl */ async createProject(project: CreateProjectInput): Promise { const data = await this.apiClient.post('/projects', project); - return this.handleVariantAPIRes(data) as ProjectStruct; + return (await this.handleVariantAPIRes(data)) as ProjectStruct; } /** @@ -63,25 +80,25 @@ export class PersonalizationAdapter extends AdapterHelper impl */ async createAttribute(attribute: CreateAttributeInput): Promise { const data = await this.apiClient.post('/attributes', attribute); - return this.handleVariantAPIRes(data) as AttributeStruct; + return (await this.handleVariantAPIRes(data)) as AttributeStruct; } async getExperiences(): Promise { const getExperiencesEndPoint = `/experiences`; const data = await this.apiClient.get(getExperiencesEndPoint); - return this.handleVariantAPIRes(data) as ExperienceStruct[]; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct[]; } async getExperience(experienceUid: string): Promise { const getExperiencesEndPoint = `/experiences/${experienceUid}`; const data = await this.apiClient.get(getExperiencesEndPoint); - return this.handleVariantAPIRes(data) as ExperienceStruct; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct; } async getExperienceVersions(experienceUid: string): Promise { const getExperiencesVersionsEndPoint = `/experiences/${experienceUid}/versions`; const data = await this.apiClient.get(getExperiencesVersionsEndPoint); - return this.handleVariantAPIRes(data) as ExperienceStruct; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct; } async createExperienceVersion( @@ -90,7 +107,7 @@ export class PersonalizationAdapter extends AdapterHelper impl ): Promise { const createExperiencesVersionsEndPoint = `/experiences/${experienceUid}/versions`; const data = await this.apiClient.post(createExperiencesVersionsEndPoint, input); - return this.handleVariantAPIRes(data) as ExperienceStruct; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct; } async updateExperienceVersion( @@ -104,7 +121,7 @@ export class PersonalizationAdapter extends AdapterHelper impl } const updateExperiencesVersionsEndPoint = `/experiences/${experienceUid}/versions/${versionId}`; const data = await this.apiClient.put(updateExperiencesVersionsEndPoint, input); - return this.handleVariantAPIRes(data) as ExperienceStruct; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct; } async getVariantGroup(input: GetVariantGroupInput): Promise { @@ -113,7 +130,7 @@ export class PersonalizationAdapter extends AdapterHelper impl const data = await this.cmaAPIClient .queryParams({ experience_uid: input.experienceUid }) .get(getVariantGroupEndPoint); - return this.handleVariantAPIRes(data) as VariantGroupStruct; + return (await this.handleVariantAPIRes(data)) as VariantGroupStruct; } } @@ -121,28 +138,28 @@ export class PersonalizationAdapter extends AdapterHelper impl if (this.cmaAPIClient) { const updateVariantGroupEndPoint = `/variant_groups/${input.uid}`; const data = await this.cmaAPIClient.put(updateVariantGroupEndPoint, input); - return this.handleVariantAPIRes(data) as VariantGroup; + return (await this.handleVariantAPIRes(data)) as VariantGroup; } } async getEvents(): Promise { const data = await this.apiClient.get('/events'); - return this.handleVariantAPIRes(data) as EventStruct[]; + return (await this.handleVariantAPIRes(data)) as EventStruct[]; } async createEvents(event: CreateEventInput): Promise { const data = await this.apiClient.post('/events', event); - return this.handleVariantAPIRes(data) as EventStruct; + return (await this.handleVariantAPIRes(data)) as EventStruct; } async getAudiences(): Promise { const data = await this.apiClient.get('/audiences'); - return this.handleVariantAPIRes(data) as AudienceStruct[]; + return (await this.handleVariantAPIRes(data)) as AudienceStruct[]; } async getAttributes(): Promise { const data = await this.apiClient.get('/attributes'); - return this.handleVariantAPIRes(data) as AttributeStruct[]; + return (await this.handleVariantAPIRes(data)) as AttributeStruct[]; } /** @@ -155,7 +172,7 @@ export class PersonalizationAdapter extends AdapterHelper impl */ async createAudience(audience: CreateAudienceInput): Promise { const data = await this.apiClient.post('/audiences', audience); - return this.handleVariantAPIRes(data) as AudienceStruct; + return (await this.handleVariantAPIRes(data)) as AudienceStruct; } /** @@ -168,7 +185,7 @@ export class PersonalizationAdapter extends AdapterHelper impl */ async createExperience(experience: CreateExperienceInput): Promise { const data = await this.apiClient.post('/experiences', experience); - return this.handleVariantAPIRes(data) as ExperienceStruct; + return (await this.handleVariantAPIRes(data)) as ExperienceStruct; } /** @@ -182,7 +199,7 @@ export class PersonalizationAdapter extends AdapterHelper impl ): Promise { const updateCTInExpEndPoint = `/experiences/${experienceUid}/cms-integration/variant-group`; const data = await this.apiClient.post(updateCTInExpEndPoint, experience); - return this.handleVariantAPIRes(data) as CMSExperienceStruct; + return (await this.handleVariantAPIRes(data)) as CMSExperienceStruct; } /** @@ -193,7 +210,7 @@ export class PersonalizationAdapter extends AdapterHelper impl async getCTsFromExperience(experienceUid: string): Promise { const getCTFromExpEndPoint = `/experiences/${experienceUid}/cms-integration/variant-group`; const data = await this.apiClient.get(getCTFromExpEndPoint); - return this.handleVariantAPIRes(data) as CMSExperienceStruct; + return (await this.handleVariantAPIRes(data)) as CMSExperienceStruct; } /** @@ -202,16 +219,22 @@ export class PersonalizationAdapter extends AdapterHelper impl * @returns The variant API response data. * @throws If the API response status is not within the success range, an error message is thrown. */ - handleVariantAPIRes(res: APIResponse): VariantAPIRes { + async handleVariantAPIRes(res: APIResponse): Promise { const { status, data } = res; if (status >= 200 && status < 300) { return data; } - + + // Refresh the access token if it has expired + await authenticationHandler.refreshAccessToken(res); + const errorMsg = data?.errors ? formatErrors(data.errors) - : data?.error || data?.error_message || data?.message || 'Something went wrong while processing variant entries request!'; + : data?.error || + data?.error_message || + data?.message || + 'Something went wrong while processing variant entries request!'; throw errorMsg; } diff --git a/packages/contentstack-variants/src/utils/variant-api-adapter.ts b/packages/contentstack-variants/src/utils/variant-api-adapter.ts index 9e25299576..b9e95c0e6f 100644 --- a/packages/contentstack-variants/src/utils/variant-api-adapter.ts +++ b/packages/contentstack-variants/src/utils/variant-api-adapter.ts @@ -7,6 +7,7 @@ import { ContentstackClient, ContentstackConfig, managementSDKClient, + authenticationHandler, } from '@contentstack/cli-utilities'; import { @@ -37,6 +38,16 @@ export class VariantHttpClient extends AdapterHelper implement this.apiClient.baseUrl(this.baseURL); } + async init(): Promise { + await authenticationHandler.getAuthDetails(); + const token = authenticationHandler.accessToken; + if (authenticationHandler.isOauthEnabled) { + this.apiClient.headers({ authorization: token }); + } else { + this.apiClient.headers({ authtoken: token }); + } + } + async variantEntry(options: VariantOptions) { // TODO single entry variant return { entry: {} }; @@ -124,7 +135,7 @@ export class VariantHttpClient extends AdapterHelper implement } const data = await this.apiClient.get(endpoint); - const response = this.handleVariantAPIRes(data) as { entries: VariantEntryStruct[]; count: number }; + const response = (await this.handleVariantAPIRes(data)) as { entries: VariantEntryStruct[]; count: number }; if (callback) { callback(response.entries); @@ -244,15 +255,18 @@ export class VariantHttpClient extends AdapterHelper implement * @returns The variant API response data. * @throws If the API response status is not within the success range, an error message is thrown. */ - handleVariantAPIRes( + async handleVariantAPIRes( res: APIResponse, - ): VariantEntryStruct | { entries: VariantEntryStruct[]; count: number } | string | any { + ): Promise { const { status, data } = res; if (status >= 200 && status < 300) { return data; } + // Refresh the access token if the response status is 401 + await authenticationHandler.refreshAccessToken(res); + const errorMsg = data?.errors ? formatErrors(data.errors) : data?.error_message || data?.message || 'Something went wrong while processing entry variant request!'; @@ -290,9 +304,9 @@ export class VariantManagementSDK return Promise.resolve({} as VariantEntryStruct); } - handleVariantAPIRes( + async handleVariantAPIRes( res: APIResponse, - ): VariantEntryStruct | { entries: VariantEntryStruct[]; count: number } | string { + ): Promise { return res.data; } diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 1fcebd327f..1fd63b76c6 100644 --- a/packages/contentstack/README.md +++ b/packages/contentstack/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli $ csdx COMMAND running command... $ csdx (--version|-v) -@contentstack/cli/1.26.0 darwin-arm64 node-v22.2.0 +@contentstack/cli/1.27.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 07583ae265..d66bac56d7 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli", "description": "Command-line tool (CLI) to interact with Contentstack", - "version": "1.26.0", + "version": "1.27.0", "author": "Contentstack", "bin": { "csdx": "./bin/run.js" @@ -22,23 +22,24 @@ "prepack": "pnpm compile && oclif manifest && oclif readme" }, "dependencies": { - "@contentstack/cli-audit": "~1.7.1", - "@contentstack/cli-auth": "~1.3.21", - "@contentstack/cli-cm-bootstrap": "~1.12.0", - "@contentstack/cli-cm-branches": "~1.1.3", - "@contentstack/cli-cm-bulk-publish": "~1.4.8", - "@contentstack/cli-cm-export": "~1.13.0", - "@contentstack/cli-cm-clone": "~1.12.0", - "@contentstack/cli-cm-export-to-csv": "~1.7.2", - "@contentstack/cli-cm-import": "~1.18.0", - "@contentstack/cli-cm-migrate-rte": "~1.4.19", - "@contentstack/cli-cm-seed": "~1.9.0", - "@contentstack/cli-command": "~1.3.1", - "@contentstack/cli-config": "~1.7.1", - "@contentstack/cli-launch": "~1.2.2", - "@contentstack/cli-migration": "~1.6.1", - "@contentstack/cli-utilities": "~1.7.3", + "@contentstack/cli-audit": "~1.7.2", + "@contentstack/cli-auth": "~1.3.22", + "@contentstack/cli-cm-bootstrap": "~1.13.0", + "@contentstack/cli-cm-branches": "~1.1.4", + "@contentstack/cli-cm-bulk-publish": "~1.4.9", + "@contentstack/cli-cm-export": "~1.14.0", + "@contentstack/cli-cm-clone": "~1.13.0", + "@contentstack/cli-cm-export-to-csv": "~1.7.3", + "@contentstack/cli-cm-import": "~1.19.0", + "@contentstack/cli-cm-migrate-rte": "~1.4.20", + "@contentstack/cli-cm-seed": "~1.10.0", + "@contentstack/cli-command": "~1.3.2", + "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-launch": "~1.2.3", + "@contentstack/cli-migration": "~1.6.2", + "@contentstack/cli-utilities": "~1.8.0", "@contentstack/management": "~1.17.0", + "@contentstack/cli-variants": "~1.1.0", "@oclif/core": "^3.26.5", "@oclif/plugin-help": "^5", "@oclif/plugin-not-found": "^2.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 798c165aae..01c789f258 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,22 +10,23 @@ importers: packages/contentstack: specifiers: - '@contentstack/cli-audit': ~1.7.1 - '@contentstack/cli-auth': ~1.3.21 - '@contentstack/cli-cm-bootstrap': ~1.12.0 - '@contentstack/cli-cm-branches': ~1.1.3 - '@contentstack/cli-cm-bulk-publish': ~1.4.8 - '@contentstack/cli-cm-clone': ~1.12.0 - '@contentstack/cli-cm-export': ~1.13.0 - '@contentstack/cli-cm-export-to-csv': ~1.7.2 - '@contentstack/cli-cm-import': ~1.18.0 - '@contentstack/cli-cm-migrate-rte': ~1.4.19 - '@contentstack/cli-cm-seed': ~1.9.0 - '@contentstack/cli-command': ~1.3.1 - '@contentstack/cli-config': ~1.7.1 - '@contentstack/cli-launch': ~1.2.2 - '@contentstack/cli-migration': ~1.6.1 - '@contentstack/cli-utilities': ~1.7.3 + '@contentstack/cli-audit': ~1.7.2 + '@contentstack/cli-auth': ~1.3.22 + '@contentstack/cli-cm-bootstrap': ~1.13.0 + '@contentstack/cli-cm-branches': ~1.1.4 + '@contentstack/cli-cm-bulk-publish': ~1.4.9 + '@contentstack/cli-cm-clone': ~1.13.0 + '@contentstack/cli-cm-export': ~1.14.0 + '@contentstack/cli-cm-export-to-csv': ~1.7.3 + '@contentstack/cli-cm-import': ~1.19.0 + '@contentstack/cli-cm-migrate-rte': ~1.4.20 + '@contentstack/cli-cm-seed': ~1.10.0 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-config': ~1.7.3 + '@contentstack/cli-launch': ~1.2.3 + '@contentstack/cli-migration': ~1.6.2 + '@contentstack/cli-utilities': ~1.8.0 + '@contentstack/cli-variants': ~1.1.0 '@contentstack/management': ~1.17.0 '@oclif/core': ^3.26.5 '@oclif/plugin-help': ^5 @@ -80,6 +81,7 @@ importers: '@contentstack/cli-launch': link:../contentstack-launch '@contentstack/cli-migration': link:../contentstack-migration '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-variants': link:../contentstack-variants '@contentstack/management': 1.17.2_debug@4.3.7 '@oclif/core': 3.27.0 '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y @@ -121,9 +123,9 @@ importers: packages/contentstack-audit: specifiers: - '@contentstack/cli-command': ~1.3.0 + '@contentstack/cli-command': ~1.3.2 '@contentstack/cli-dev-dependencies': ^1.2.4 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/plugin-help': ^5 '@oclif/plugin-plugins': ^5.0.0 '@oclif/test': ^2.5.6 @@ -186,8 +188,8 @@ importers: packages/contentstack-auth: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@fancy-test/nock': ^0.1.1 '@oclif/plugin-help': ^5.1.19 '@oclif/test': ^2.5.6 @@ -249,9 +251,9 @@ importers: packages/contentstack-bootstrap: specifiers: - '@contentstack/cli-cm-seed': ~1.9.0 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-cm-seed': ~1.10.0 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 '@types/inquirer': ^9.0.3 '@types/mkdirp': ^1.0.1 @@ -300,11 +302,11 @@ importers: packages/contentstack-branches: specifiers: - '@contentstack/cli-auth': ~1.3.19 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-config': ~1.7.0 + '@contentstack/cli-auth': ~1.3.22 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-config': ~1.7.3 '@contentstack/cli-dev-dependencies': ~1.2.4 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/core': ^3.26.5 '@oclif/plugin-help': ^5.1.19 '@oclif/test': ^2.5.6 @@ -379,8 +381,8 @@ importers: packages/contentstack-bulk-publish: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 bluebird: ^3.7.2 chai: ^4.2.0 @@ -423,10 +425,10 @@ importers: packages/contentstack-clone: specifiers: '@colors/colors': ^1.5.0 - '@contentstack/cli-cm-export': ~1.13.0 - '@contentstack/cli-cm-import': ~1.18.0 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-cm-export': ~1.14.0 + '@contentstack/cli-cm-import': ~1.19.0 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 async: ^3.2.4 chai: ^4.2.0 @@ -479,7 +481,7 @@ importers: packages/contentstack-command: specifiers: - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 '@types/chai': ^4.2.18 '@types/mkdirp': ^1.0.1 @@ -520,8 +522,8 @@ importers: packages/contentstack-config: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 '@types/chai': ^4.2.18 '@types/inquirer': ^9.0.3 @@ -606,12 +608,12 @@ importers: packages/contentstack-export: specifiers: - '@contentstack/cli-auth': ~1.3.19 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-config': ~1.7.0 + '@contentstack/cli-auth': ~1.3.22 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-config': ~1.7.3 '@contentstack/cli-dev-dependencies': ~1.2.4 - '@contentstack/cli-utilities': ~1.7.2 - '@contentstack/cli-variants': ~1.0.0 + '@contentstack/cli-utilities': ~1.8.0 + '@contentstack/cli-variants': ~1.1.0 '@oclif/core': ^3.26.5 '@oclif/plugin-help': ^5.1.19 '@oclif/test': ^2.5.6 @@ -689,8 +691,8 @@ importers: packages/contentstack-export-to-csv: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 '@types/chai': ^4.3.6 '@types/mocha': ^10.0.1 @@ -732,10 +734,10 @@ importers: packages/contentstack-import: specifiers: - '@contentstack/cli-audit': ~1.7.0 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 - '@contentstack/cli-variants': ~1.0.0 + '@contentstack/cli-audit': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 + '@contentstack/cli-variants': ~1.1.0 '@contentstack/management': ~1.17.0 '@oclif/core': ^3.26.5 '@oclif/test': ^2.5.6 @@ -824,8 +826,8 @@ importers: packages/contentstack-launch: specifiers: '@apollo/client': ^3.7.9 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/core': ^3.26.5 '@oclif/plugin-help': ^5 '@oclif/plugin-plugins': ^5.0.0 @@ -900,8 +902,8 @@ importers: packages/contentstack-migrate-rte: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@contentstack/json-rte-serializer': ~2.0.4 '@oclif/test': ^2.5.6 chai: ^4.3.4 @@ -947,8 +949,8 @@ importers: packages/contentstack-migration: specifiers: - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/test': ^2.5.6 async: ^3.2.4 callsites: ^3.1.0 @@ -994,9 +996,9 @@ importers: packages/contentstack-seed: specifiers: - '@contentstack/cli-cm-import': ~1.18.0 - '@contentstack/cli-command': ~1.3.0 - '@contentstack/cli-utilities': ~1.7.2 + '@contentstack/cli-cm-import': ~1.19.0 + '@contentstack/cli-command': ~1.3.2 + '@contentstack/cli-utilities': ~1.8.0 '@oclif/plugin-help': ^5.1.19 '@types/inquirer': ^9.0.3 '@types/jest': ^26.0.15 @@ -1068,6 +1070,7 @@ importers: cli-table: ^0.3.11 conf: ^10.2.0 debug: ^4.1.1 + dotenv: ^16.4.5 eslint: ^8.18.0 eslint-config-oclif: ^4.0.0 eslint-config-oclif-typescript: ^3.0.8 @@ -1108,6 +1111,7 @@ importers: cli-table: 0.3.11 conf: 10.2.0 debug: 4.3.7 + dotenv: 16.4.5 figures: 3.2.0 inquirer: 8.2.4 inquirer-search-checkbox: 1.0.0 @@ -1153,7 +1157,7 @@ importers: packages/contentstack-variants: specifiers: '@contentstack/cli-dev-dependencies': ^1.2.4 - '@contentstack/cli-utilities': ^1.5.12 + '@contentstack/cli-utilities': ^1.8.0 '@oclif/test': ^2.5.6 '@types/chai': ^4.3.14 '@types/node': ^20.12.7