From 3891a7e86dee17de48920d4f9befd9549633c3c7 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 6 Aug 2024 08:25:51 -0400 Subject: [PATCH 01/28] Enable ts declaration maps to fix "Go to Definition" Signed-off-by: Timothy Johnson --- __tests__/__packages__/cli-test-utils/tsconfig.json | 1 + tsconfig.json | 1 + 2 files changed, 2 insertions(+) diff --git a/__tests__/__packages__/cli-test-utils/tsconfig.json b/__tests__/__packages__/cli-test-utils/tsconfig.json index 6e76d7b0f5..f6fda3ea7a 100644 --- a/__tests__/__packages__/cli-test-utils/tsconfig.json +++ b/__tests__/__packages__/cli-test-utils/tsconfig.json @@ -4,6 +4,7 @@ "target": "es5", "module": "commonjs", "declaration": true, + "declarationMap": true, "outDir": "./lib", "rootDir": "./src", "strict": true, diff --git a/tsconfig.json b/tsconfig.json index 6ed3820b91..705ab22347 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "target": "es2015", "module": "commonjs", "declaration": true, + "declarationMap": true, "moduleResolution": "node", "noImplicitAny": true, "preserveConstEnums": true, From 30c779109e540eaf9382d9d2519184f5dbac4ce5 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 6 Aug 2024 08:27:53 -0400 Subject: [PATCH 02/28] Update web help dependencies Signed-off-by: Timothy Johnson --- npm-shrinkwrap.json | 1226 +++-------------- .../imperative/web-help/dist/css/main.css | 4 + packages/imperative/web-help/package.json | 24 +- 3 files changed, 225 insertions(+), 1029 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index bbdac367c1..2be737477f 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1981,6 +1981,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true + }, "node_modules/@lerna-lite/changed": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@lerna-lite/changed/-/changed-3.3.1.tgz", @@ -5223,6 +5229,17 @@ "node": ">=14" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@sigstore/bundle": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", @@ -5753,9 +5770,9 @@ "dev": true }, "node_modules/@types/jquery": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.19.tgz", - "integrity": "sha512-KFbmk+dXfphHGuVCmlopgcNRCegN/21mkeoD4BzuJhVH0SJW3Uo2mLuAwb6oqTNV79EsRp6J7yC1BbKymjpx/g==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz", + "integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==", "dev": true, "dependencies": { "@types/sizzle": "*" @@ -5783,9 +5800,9 @@ } }, "node_modules/@types/jstree": { - "version": "3.3.44", - "resolved": "https://registry.npmjs.org/@types/jstree/-/jstree-3.3.44.tgz", - "integrity": "sha512-f59Tq1wNspOVP8+tiXzs9HNsYypDE0eost3bKEbPxgEZnZzFuhSyUxTKctSptAA+a5rMP4pyZNrX1cCco8K5Yg==", + "version": "3.3.46", + "resolved": "https://registry.npmjs.org/@types/jstree/-/jstree-3.3.46.tgz", + "integrity": "sha512-Xj+lbRetEsI1TkP2cmQuCDSCT7qD3OUUCtok/8q2f2hx4PCXkBdjRO7AnS8CNj/tKsqjjZ0Pq6cNfyRcqDumsw==", "dev": true, "dependencies": { "@types/jquery": "*" @@ -7566,17 +7583,22 @@ "dev": true }, "node_modules/bootstrap": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz", - "integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" + "@popperjs/core": "^2.11.8" } }, "node_modules/boxen": { @@ -8136,10 +8158,16 @@ "dev": true }, "node_modules/chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==", - "dev": true + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dev": true, + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } }, "node_modules/chokidar": { "version": "3.5.3", @@ -8773,15 +8801,6 @@ "node": ">= 0.6" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, "node_modules/convert-to-spaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", @@ -9740,10 +9759,9 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "engines": { "node": ">=0.3.1" } @@ -9757,19 +9775,19 @@ } }, "node_modules/diff2html": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.17.tgz", - "integrity": "sha512-B/H+iLRHTsRl2Ffs/7tYJ0Rg4uisXe83inIdNE8trXY83Wn7OCTslJNP7fyaUpSsLbRIzPSNgT7LqFNiIQlDyg==", + "version": "3.4.48", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.48.tgz", + "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", "dev": true, "dependencies": { - "diff": "5.0.0", + "diff": "5.1.0", "hogan.js": "3.0.2" }, "engines": { "node": ">=12" }, "optionalDependencies": { - "highlight.js": "11.5.1" + "highlight.js": "11.9.0" } }, "node_modules/dir-glob": { @@ -10948,10 +10966,13 @@ } }, "node_modules/github-markdown-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.2.0.tgz", - "integrity": "sha512-hq5RaCInSUZ48bImOZpkppW2/MT44StRgsbsZ8YA4vJFwLKB/Vo3k7R2t+pUGqO+ThG0QDMi96TewV/B3vyItg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.6.1.tgz", + "integrity": "sha512-DItLFgHd+s7HQmk63YN4/TdvLeRqk1QP7pPKTTPrDTYoI5x7f/luJWSOZxesmuxBI2srHp8RDyoZd+9WF+WK8Q==", "dev": true, + "engines": { + "node": ">=10" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -11096,14 +11117,6 @@ "node": ">=0.6.8" } }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -11207,9 +11220,9 @@ } }, "node_modules/highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", "dev": true, "optional": true, "engines": { @@ -11219,7 +11232,7 @@ "node_modules/hogan.js": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", "dev": true, "dependencies": { "mkdirp": "0.3.0", @@ -11232,7 +11245,7 @@ "node_modules/hogan.js/node_modules/mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "engines": { @@ -13659,20 +13672,20 @@ } }, "node_modules/jest-stare": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.3.0.tgz", - "integrity": "sha512-Rxk6okN+aH3jrmpFct0SjrpBR3vhUNSEnK6ROP/B9iIoaX4FRF38qMfBKGKw6m9sPE5ms07CCW1jIOlcQafgJQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.2.tgz", + "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", "dev": true, "dependencies": { - "@jest/reporters": "^27.0.0", - "@jest/test-result": "^27.0.0", - "@jest/types": "^27.0.0", - "@types/jest": "^27.0.0", + "@jest/reporters": "^29.0.0", + "@jest/test-result": "^29.0.0", + "@jest/types": "^29.0.0", + "@types/jest": "^29.0.0", "ansi-parser": "^3.2.10", - "bootstrap": "^4.5.2", + "bootstrap": "^5.0.0", "chalk": "^4.1.0", - "chart.js": "^3.0.0", - "diff2html": "^3.1.18", + "chart.js": "^4.1.2", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -13688,176 +13701,6 @@ "node": ">=6.0.0" } }, - "node_modules/jest-stare/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-stare/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dev": true, - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/jest-stare/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-stare/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-stare/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-stare/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/jest-stare/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -13881,167 +13724,6 @@ "node": ">=6" } }, - "node_modules/jest-stare/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-stare/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-stare/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jest-stare/node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -14055,22 +13737,6 @@ "node": ">=6" } }, - "node_modules/jest-stare/node_modules/node-notifier": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.0.tgz", - "integrity": "sha512-ZTqP90y1eyb2xAZTa7j4AlAayTwh6cL8mn0nlJhLDq8itXGnJUmQGYOnpaMUvqZVfGo0vhU7KZ3HtDW6CT2SiQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, "node_modules/jest-stare/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -14119,38 +13785,6 @@ "node": ">=8" } }, - "node_modules/jest-stare/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-stare/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/jest-stare/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -14224,9 +13858,9 @@ } }, "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "dev": true }, "node_modules/js-sdsl": { @@ -15332,7 +14966,7 @@ "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "dependencies": { "abbrev": "1" @@ -17291,9 +16925,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -17526,9 +17160,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -17546,8 +17180,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -18166,9 +17800,9 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true, "bin": { "r_js": "bin/r.js", @@ -18238,15 +17872,6 @@ "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -18363,6 +17988,15 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.29", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", + "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "dev": true, + "dependencies": { + "compute-scroll-into-view": "^1.0.17" + } + }, "node_modules/select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -18608,14 +18242,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/shiki": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", @@ -18750,9 +18376,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -19193,19 +18819,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -19289,22 +18902,6 @@ "node >=0.4.0" ] }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -20017,29 +19614,6 @@ "optional": true, "peer": true }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -20659,14 +20233,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "packages/imperative/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, "packages/imperative/node_modules/diff2html": { "version": "3.4.20-usewontache.1.60e7a2e", "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", @@ -20820,15 +20386,6 @@ "node": ">=8" } }, - "packages/imperative/node_modules/scroll-into-view-if-needed": { - "version": "2.2.22", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.22.tgz", - "integrity": "sha512-nR635gi6wJxB3UGknj5aWpVyp86oZwzxCEEqD+ljRes/3ix7qYA8nIzNwsUhKwW6CXkuSVuW6/m8/HLDI9JyaA==", - "dev": true, - "dependencies": { - "compute-scroll-into-view": "^1.0.12" - } - }, "packages/imperative/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -20892,20 +20449,20 @@ "dev": true, "license": "ISC", "dependencies": { - "balloon-css": "^1.0.4", - "bootstrap": "^4.4.1", - "clipboard": "^2.0.4", - "github-markdown-css": "^5.1.0", - "jquery": "^3.4.1", - "jstree": "^3.3.8", - "scroll-into-view-if-needed": "2.2.22", - "split.js": "^1.5.11", - "url-search-params-polyfill": "^8.0.0" + "balloon-css": "^1.2.0", + "bootstrap": "^5.3.3", + "clipboard": "^2.0.11", + "github-markdown-css": "^5.6.1", + "jquery": "^3.7.1", + "jstree": "^3.3.16", + "scroll-into-view-if-needed": "2.2.29", + "split.js": "^1.6.5", + "url-search-params-polyfill": "^8.2.5" }, "devDependencies": { - "@types/jquery": "^3.3.31", - "@types/jstree": "^3.3.39", - "postcss": "^8.3.6", + "@types/jquery": "^3.5.30", + "@types/jstree": "^3.3.46", + "postcss": "^8.4.41", "postcss-url": "^10.1.3" } }, @@ -22538,6 +22095,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true + }, "@lerna-lite/changed": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@lerna-lite/changed/-/changed-3.3.1.tgz", @@ -24833,6 +24396,13 @@ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "optional": true }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "peer": true + }, "@sigstore/bundle": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", @@ -25271,9 +24841,9 @@ } }, "@types/jquery": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.19.tgz", - "integrity": "sha512-KFbmk+dXfphHGuVCmlopgcNRCegN/21mkeoD4BzuJhVH0SJW3Uo2mLuAwb6oqTNV79EsRp6J7yC1BbKymjpx/g==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz", + "integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==", "dev": true, "requires": { "@types/sizzle": "*" @@ -25301,9 +24871,9 @@ } }, "@types/jstree": { - "version": "3.3.44", - "resolved": "https://registry.npmjs.org/@types/jstree/-/jstree-3.3.44.tgz", - "integrity": "sha512-f59Tq1wNspOVP8+tiXzs9HNsYypDE0eost3bKEbPxgEZnZzFuhSyUxTKctSptAA+a5rMP4pyZNrX1cCco8K5Yg==", + "version": "3.3.46", + "resolved": "https://registry.npmjs.org/@types/jstree/-/jstree-3.3.46.tgz", + "integrity": "sha512-Xj+lbRetEsI1TkP2cmQuCDSCT7qD3OUUCtok/8q2f2hx4PCXkBdjRO7AnS8CNj/tKsqjjZ0Pq6cNfyRcqDumsw==", "dev": true, "requires": { "@types/jquery": "*" @@ -25958,11 +25528,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" - }, "diff2html": { "version": "3.4.20-usewontache.1.60e7a2e", "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", @@ -26069,15 +25634,6 @@ "p-limit": "^2.2.0" } }, - "scroll-into-view-if-needed": { - "version": "2.2.22", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.22.tgz", - "integrity": "sha512-nR635gi6wJxB3UGknj5aWpVyp86oZwzxCEEqD+ljRes/3ix7qYA8nIzNwsUhKwW6CXkuSVuW6/m8/HLDI9JyaA==", - "dev": true, - "requires": { - "compute-scroll-into-view": "^1.0.12" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -27009,9 +26565,9 @@ "dev": true }, "bootstrap": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.1.tgz", - "integrity": "sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "dev": true, "requires": {} }, @@ -27392,10 +26948,13 @@ "dev": true }, "chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==", - "dev": true + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dev": true, + "requires": { + "@kurkle/color": "^0.3.0" + } }, "chokidar": { "version": "3.5.3", @@ -27885,15 +27444,6 @@ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", "dev": true }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, "convert-to-spaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", @@ -28597,10 +28147,9 @@ } }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" }, "diff-sequences": { "version": "27.4.0", @@ -28608,13 +28157,13 @@ "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" }, "diff2html": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.17.tgz", - "integrity": "sha512-B/H+iLRHTsRl2Ffs/7tYJ0Rg4uisXe83inIdNE8trXY83Wn7OCTslJNP7fyaUpSsLbRIzPSNgT7LqFNiIQlDyg==", + "version": "3.4.48", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.48.tgz", + "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", "dev": true, "requires": { - "diff": "5.0.0", - "highlight.js": "11.5.1", + "diff": "5.1.0", + "highlight.js": "11.9.0", "hogan.js": "3.0.2" } }, @@ -29494,9 +29043,9 @@ } }, "github-markdown-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.2.0.tgz", - "integrity": "sha512-hq5RaCInSUZ48bImOZpkppW2/MT44StRgsbsZ8YA4vJFwLKB/Vo3k7R2t+pUGqO+ThG0QDMi96TewV/B3vyItg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-5.6.1.tgz", + "integrity": "sha512-DItLFgHd+s7HQmk63YN4/TdvLeRqk1QP7pPKTTPrDTYoI5x7f/luJWSOZxesmuxBI2srHp8RDyoZd+9WF+WK8Q==", "dev": true }, "glob": { @@ -29605,14 +29154,6 @@ "temp": "~0.4.0" } }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true, - "peer": true - }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -29681,16 +29222,16 @@ } }, "highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", "dev": true, "optional": true }, "hogan.js": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", "dev": true, "requires": { "mkdirp": "0.3.0", @@ -29700,7 +29241,7 @@ "mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", "dev": true } } @@ -31549,20 +31090,20 @@ } }, "jest-stare": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.3.0.tgz", - "integrity": "sha512-Rxk6okN+aH3jrmpFct0SjrpBR3vhUNSEnK6ROP/B9iIoaX4FRF38qMfBKGKw6m9sPE5ms07CCW1jIOlcQafgJQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.2.tgz", + "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", "dev": true, "requires": { - "@jest/reporters": "^27.0.0", - "@jest/test-result": "^27.0.0", - "@jest/types": "^27.0.0", - "@types/jest": "^27.0.0", + "@jest/reporters": "^29.0.0", + "@jest/test-result": "^29.0.0", + "@jest/types": "^29.0.0", + "@types/jest": "^29.0.0", "ansi-parser": "^3.2.10", - "bootstrap": "^4.5.2", + "bootstrap": "^5.0.0", "chalk": "^4.1.0", - "chart.js": "^3.0.0", - "diff2html": "^3.1.18", + "chart.js": "^4.1.2", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -31572,138 +31113,6 @@ "yargs": "^17.0.0" }, "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dev": true, - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -31724,134 +31133,6 @@ "locate-path": "^3.0.0" } }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true - }, - "jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -31862,22 +31143,6 @@ "path-exists": "^3.0.0" } }, - "node-notifier": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.0.tgz", - "integrity": "sha512-ZTqP90y1eyb2xAZTa7j4AlAayTwh6cL8mn0nlJhLDq8itXGnJUmQGYOnpaMUvqZVfGo0vhU7KZ3HtDW6CT2SiQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -31911,35 +31176,6 @@ "find-up": "^3.0.0" } }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -32002,9 +31238,9 @@ } }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "dev": true }, "js-sdsl": { @@ -32836,7 +32072,7 @@ "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "requires": { "abbrev": "1" @@ -34322,9 +33558,9 @@ } }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "picomatch": { @@ -34475,14 +33711,14 @@ "dev": true }, "postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" } }, "postcss-url": { @@ -34936,9 +34172,9 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true }, "requirejs-config-file": { @@ -34983,12 +34219,6 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -35076,6 +34306,15 @@ } } }, + "scroll-into-view-if-needed": { + "version": "2.2.29", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", + "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "dev": true, + "requires": { + "compute-scroll-into-view": "^1.0.17" + } + }, "select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -35269,14 +34508,6 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true, - "peer": true - }, "shiki": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", @@ -35375,9 +34606,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true }, "source-map-support": { @@ -35721,16 +34952,6 @@ "has-flag": "^4.0.0" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -35789,16 +35010,6 @@ "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -36312,25 +35523,6 @@ "optional": true, "peer": true }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -36391,19 +35583,19 @@ "web-help": { "version": "file:packages/imperative/web-help", "requires": { - "@types/jquery": "^3.3.31", - "@types/jstree": "^3.3.39", - "balloon-css": "^1.0.4", - "bootstrap": "^4.4.1", - "clipboard": "^2.0.4", - "github-markdown-css": "^5.1.0", - "jquery": "^3.4.1", - "jstree": "^3.3.8", - "postcss": "^8.3.6", + "@types/jquery": "^3.5.30", + "@types/jstree": "^3.3.46", + "balloon-css": "^1.2.0", + "bootstrap": "^5.3.3", + "clipboard": "^2.0.11", + "github-markdown-css": "^5.6.1", + "jquery": "^3.7.1", + "jstree": "^3.3.16", + "postcss": "^8.4.41", "postcss-url": "^10.1.3", - "scroll-into-view-if-needed": "2.2.22", - "split.js": "^1.5.11", - "url-search-params-polyfill": "^8.0.0" + "scroll-into-view-if-needed": "2.2.29", + "split.js": "^1.6.5", + "url-search-params-polyfill": "^8.2.5" } }, "web-streams-polyfill": { diff --git a/packages/imperative/web-help/dist/css/main.css b/packages/imperative/web-help/dist/css/main.css index b16ff87db1..a22d2a91e6 100644 --- a/packages/imperative/web-help/dist/css/main.css +++ b/packages/imperative/web-help/dist/css/main.css @@ -85,6 +85,10 @@ body { width: calc(100% - 10px); } +#tree-search::placeholder { + color: var(--bs-secondary); +} + #tree-tabs { margin: 0 5px 5px 5px; width: calc(100% - 10px); diff --git a/packages/imperative/web-help/package.json b/packages/imperative/web-help/package.json index cd2b54bad1..f0584da5b4 100644 --- a/packages/imperative/web-help/package.json +++ b/packages/imperative/web-help/package.json @@ -11,20 +11,20 @@ "author": "", "license": "ISC", "dependencies": { - "balloon-css": "^1.0.4", - "bootstrap": "^4.4.1", - "clipboard": "^2.0.4", - "github-markdown-css": "^5.1.0", - "jquery": "^3.4.1", - "jstree": "^3.3.8", - "scroll-into-view-if-needed": "2.2.22", - "split.js": "^1.5.11", - "url-search-params-polyfill": "^8.0.0" + "balloon-css": "^1.2.0", + "bootstrap": "^5.3.3", + "clipboard": "^2.0.11", + "github-markdown-css": "^5.6.1", + "jquery": "^3.7.1", + "jstree": "^3.3.16", + "scroll-into-view-if-needed": "2.2.29", + "split.js": "^1.6.5", + "url-search-params-polyfill": "^8.2.5" }, "devDependencies": { - "@types/jquery": "^3.3.31", - "@types/jstree": "^3.3.39", - "postcss": "^8.3.6", + "@types/jquery": "^3.5.30", + "@types/jstree": "^3.3.46", + "postcss": "^8.4.41", "postcss-url": "^10.1.3" } } From 5f2e8984afde02f1aac708700dc853a1b31a7aed Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 6 Aug 2024 08:28:20 -0400 Subject: [PATCH 03/28] Fix same-origin issue with local web help Signed-off-by: Timothy Johnson --- packages/imperative/web-help/docs.ts | 10 +++++++--- packages/imperative/web-help/tree.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/imperative/web-help/docs.ts b/packages/imperative/web-help/docs.ts index aaf262aec7..1b02ea8b91 100644 --- a/packages/imperative/web-help/docs.ts +++ b/packages/imperative/web-help/docs.ts @@ -25,6 +25,7 @@ function arrayFrom(items: any): any[] { const isInIframe: boolean = window.location !== window.parent.location; const links: any = arrayFrom(document.getElementsByTagName("a")); +const sameOrigin: string = window.location.protocol !== "file:" ? window.location.origin : "*"; // Process all tags on page links.forEach((link: any) => { @@ -36,7 +37,10 @@ links.forEach((link: any) => { link.setAttribute("target", "_blank"); } else if (isInIframe) { // If link is relative and page is inside an iframe, then send signal to command tree when link is clicked to make it update selected node - link.setAttribute("onclick", "window.parent.postMessage(this.href, '*'); return true;"); + link.onclick = (e: any) => { + window.parent.postMessage(e.target.href, sameOrigin); + return true; + }; } }); @@ -89,9 +93,9 @@ function findCurrentCmdAnchor() { if (isInIframe && window.location.href.indexOf("/all.html") !== -1) { let currentCmdName: string; window.onscroll = (_: any) => { - const cmdName = findCurrentCmdAnchor().getAttribute("name"); + const cmdName = findCurrentCmdAnchor()?.getAttribute("name"); if (cmdName != null && cmdName !== currentCmdName) { - window.parent.postMessage(cmdName + ".html", window.location.origin); + window.parent.postMessage(cmdName + ".html", sameOrigin); currentCmdName = cmdName; } }; diff --git a/packages/imperative/web-help/tree.ts b/packages/imperative/web-help/tree.ts index d30cdd6230..81f1d1f094 100644 --- a/packages/imperative/web-help/tree.ts +++ b/packages/imperative/web-help/tree.ts @@ -259,7 +259,7 @@ function onSearchTextChanged(noDelay: boolean = false) { * @param e - Event object sent by postMessage */ function onDocsPageChanged(e: any) { - if (e.origin !== window.location.origin || typeof e.data !== "string") return; + if ((e.origin !== window.location.origin && e.origin !== "null") || typeof e.data !== "string") return; const tempNodeId = e.data.slice(e.data.lastIndexOf("/") + 1); updateCurrentNode(tempNodeId, false, false); } From d3ab2537ae5756cf0f05c0e44bc83bb330e721b5 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 6 Aug 2024 16:16:27 -0400 Subject: [PATCH 04/28] Update changelog and fix audit check Signed-off-by: Timothy Johnson --- .github/workflows/audit.yml | 6 ++++-- packages/imperative/CHANGELOG.md | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index f20812b55e..6e5ae56eb7 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -26,7 +26,9 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Check Node Vulnerabilities - run: npm audit --production --audit-level=moderate + run: | + npm install --package-lock-only --ignore-scripts --no-audit --save-prod --workspace=packages/imperative ./packages/imperative/web-help + npm audit --production --audit-level=moderate # TODO Consider using actions-rs/audit-check after https://github.com/actions-rs/audit-check/issues/116 is fixed - name: Check Daemon Vulnerabilities @@ -35,4 +37,4 @@ jobs: - name: Check Secrets SDK Vulnerabilities working-directory: packages/secrets/src/keyring - run: cargo audit --deny warnings \ No newline at end of file + run: cargo audit --deny warnings diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 72e995d43c..ea15fb2e45 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -2,9 +2,14 @@ All notable changes to the Imperative package will be documented in this file. +## Recent Changes + +- BugFix: Fixed issue in local web help with highlighted sidebar item getting out of sync. [#2215](https://github.com/zowe/zowe-cli/pull/2215) +- BugFix: Updated web help dependencies for technical currency. [#2215](https://github.com/zowe/zowe-cli/pull/2215) + ## `5.26.1` -- Bugfix: Export new Proxy class from Zowe imperative package. [#2205](https://github.com/zowe/zowe-cli/pull/2205) +- BugFix: Export new Proxy class from Zowe imperative package. [#2205](https://github.com/zowe/zowe-cli/pull/2205) ## `5.26.0` From 75ead0294b992ec92cd5d16daa339fa2786a7b19 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Fri, 9 Aug 2024 07:27:10 -0400 Subject: [PATCH 05/28] Revert incorrect bump of Secrets SDK dev dep Signed-off-by: Timothy Johnson --- npm-shrinkwrap.json | 1036 ++++-------------------------- packages/imperative/package.json | 2 +- 2 files changed, 124 insertions(+), 914 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 355fcdb3ac..bcc3a4f5af 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2009,6 +2009,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true + }, "node_modules/@lerna-lite/changed": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@lerna-lite/changed/-/changed-3.3.1.tgz", @@ -5251,6 +5257,17 @@ "node": ">=14" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@sigstore/bundle": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", @@ -8164,10 +8181,16 @@ "dev": true }, "node_modules/chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==", - "dev": true + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dev": true, + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } }, "node_modules/chokidar": { "version": "3.5.3", @@ -8801,15 +8824,6 @@ "node": ">= 0.6" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, "node_modules/convert-to-spaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", @@ -9768,10 +9782,9 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "engines": { "node": ">=0.3.1" } @@ -9785,19 +9798,19 @@ } }, "node_modules/diff2html": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.17.tgz", - "integrity": "sha512-B/H+iLRHTsRl2Ffs/7tYJ0Rg4uisXe83inIdNE8trXY83Wn7OCTslJNP7fyaUpSsLbRIzPSNgT7LqFNiIQlDyg==", + "version": "3.4.48", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.48.tgz", + "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", "dev": true, "dependencies": { - "diff": "5.0.0", + "diff": "5.1.0", "hogan.js": "3.0.2" }, "engines": { "node": ">=12" }, "optionalDependencies": { - "highlight.js": "11.5.1" + "highlight.js": "11.9.0" } }, "node_modules/dir-glob": { @@ -11281,14 +11294,6 @@ "node": ">=0.6.8" } }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -11392,9 +11397,9 @@ } }, "node_modules/highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", "dev": true, "optional": true, "engines": { @@ -11404,7 +11409,7 @@ "node_modules/hogan.js": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", "dev": true, "dependencies": { "mkdirp": "0.3.0", @@ -11417,7 +11422,7 @@ "node_modules/hogan.js/node_modules/mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "engines": { @@ -13844,20 +13849,20 @@ } }, "node_modules/jest-stare": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.3.0.tgz", - "integrity": "sha512-Rxk6okN+aH3jrmpFct0SjrpBR3vhUNSEnK6ROP/B9iIoaX4FRF38qMfBKGKw6m9sPE5ms07CCW1jIOlcQafgJQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.2.tgz", + "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", "dev": true, "dependencies": { - "@jest/reporters": "^27.0.0", - "@jest/test-result": "^27.0.0", - "@jest/types": "^27.0.0", - "@types/jest": "^27.0.0", + "@jest/reporters": "^29.0.0", + "@jest/test-result": "^29.0.0", + "@jest/types": "^29.0.0", + "@types/jest": "^29.0.0", "ansi-parser": "^3.2.10", - "bootstrap": "^4.5.2", + "bootstrap": "^5.0.0", "chalk": "^4.1.0", - "chart.js": "^3.0.0", - "diff2html": "^3.1.18", + "chart.js": "^4.1.2", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -13873,174 +13878,23 @@ "node": ">=6.0.0" } }, - "node_modules/jest-stare/node_modules/@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", + "node_modules/jest-stare/node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" } - } - }, - "node_modules/jest-stare/node_modules/@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dev": true, - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/jest-stare/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-stare/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-stare/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-stare/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" } }, "node_modules/jest-stare/node_modules/cliui": { @@ -14066,167 +13920,6 @@ "node": ">=6" } }, - "node_modules/jest-stare/node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-stare/node_modules/jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-stare/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jest-stare/node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -14240,22 +13933,6 @@ "node": ">=6" } }, - "node_modules/jest-stare/node_modules/node-notifier": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.0.tgz", - "integrity": "sha512-ZTqP90y1eyb2xAZTa7j4AlAayTwh6cL8mn0nlJhLDq8itXGnJUmQGYOnpaMUvqZVfGo0vhU7KZ3HtDW6CT2SiQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, "node_modules/jest-stare/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -14304,38 +13981,6 @@ "node": ">=8" } }, - "node_modules/jest-stare/node_modules/pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-stare/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-stare/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/jest-stare/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -15517,7 +15162,7 @@ "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "dependencies": { "abbrev": "1" @@ -18351,9 +17996,9 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true, "bin": { "r_js": "bin/r.js", @@ -18423,15 +18068,6 @@ "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -18793,14 +18429,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/shiki": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", @@ -19378,19 +19006,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -19474,22 +19089,6 @@ "node >=0.4.0" ] }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -20214,29 +19813,6 @@ "optional": true, "peer": true }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -20795,7 +20371,7 @@ "@types/readline-sync": "^1.4.3", "@types/rimraf": "^3.0.2", "@types/stack-trace": "^0.0.29", - "@zowe/secrets-for-zowe-sdk": "^7.28.3", + "@zowe/secrets-for-zowe-sdk": "^7.18.0", "concurrently": "^7.5.0", "cowsay": "^1.2.1", "deep-diff": "^0.3.8", @@ -20867,14 +20443,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "packages/imperative/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, "packages/imperative/node_modules/diff2html": { "version": "3.4.20-usewontache.1.60e7a2e", "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", @@ -22763,6 +22331,12 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "dev": true + }, "@lerna-lite/changed": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@lerna-lite/changed/-/changed-3.3.1.tgz", @@ -25058,6 +24632,13 @@ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "optional": true }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "peer": true + }, "@sigstore/bundle": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", @@ -26092,7 +25673,7 @@ "@types/rimraf": "^3.0.2", "@types/stack-trace": "^0.0.29", "@types/yargs": "13.0.4", - "@zowe/secrets-for-zowe-sdk": "^7.28.3", + "@zowe/secrets-for-zowe-sdk": "^7.18.0", "chalk": "2.4.2", "cli-table3": "0.6.2", "comment-json": "4.1.1", @@ -26189,11 +25770,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" - }, "diff2html": { "version": "3.4.20-usewontache.1.60e7a2e", "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", @@ -27623,10 +27199,13 @@ "dev": true }, "chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==", - "dev": true + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dev": true, + "requires": { + "@kurkle/color": "^0.3.0" + } }, "chokidar": { "version": "3.5.3", @@ -28116,15 +27695,6 @@ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", "dev": true }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, "convert-to-spaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", @@ -28828,10 +28398,9 @@ } }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" }, "diff-sequences": { "version": "27.4.0", @@ -28839,13 +28408,13 @@ "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" }, "diff2html": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.17.tgz", - "integrity": "sha512-B/H+iLRHTsRl2Ffs/7tYJ0Rg4uisXe83inIdNE8trXY83Wn7OCTslJNP7fyaUpSsLbRIzPSNgT7LqFNiIQlDyg==", + "version": "3.4.48", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.48.tgz", + "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", "dev": true, "requires": { - "diff": "5.0.0", - "highlight.js": "11.5.1", + "diff": "5.1.0", + "highlight.js": "11.9.0", "hogan.js": "3.0.2" } }, @@ -29936,14 +29505,6 @@ "temp": "~0.4.0" } }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true, - "peer": true - }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -30012,16 +29573,16 @@ } }, "highlight.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", - "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", "dev": true, "optional": true }, "hogan.js": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", "dev": true, "requires": { "mkdirp": "0.3.0", @@ -30031,7 +29592,7 @@ "mkdirp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", "dev": true } } @@ -31880,20 +31441,20 @@ } }, "jest-stare": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.3.0.tgz", - "integrity": "sha512-Rxk6okN+aH3jrmpFct0SjrpBR3vhUNSEnK6ROP/B9iIoaX4FRF38qMfBKGKw6m9sPE5ms07CCW1jIOlcQafgJQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.5.2.tgz", + "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", "dev": true, "requires": { - "@jest/reporters": "^27.0.0", - "@jest/test-result": "^27.0.0", - "@jest/types": "^27.0.0", - "@types/jest": "^27.0.0", + "@jest/reporters": "^29.0.0", + "@jest/test-result": "^29.0.0", + "@jest/types": "^29.0.0", + "@types/jest": "^29.0.0", "ansi-parser": "^3.2.10", - "bootstrap": "^4.5.2", + "bootstrap": "^5.0.0", "chalk": "^4.1.0", - "chart.js": "^3.0.0", - "diff2html": "^3.1.18", + "chart.js": "^4.1.2", + "diff2html": "^3.4.40", "holderjs": "^2.9.7", "jquery": "^3.5.1", "moment": "^2.27.0", @@ -31903,137 +31464,12 @@ "yargs": "^17.0.0" }, "dependencies": { - "@jest/console": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz", - "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.6", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/reporters": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz", - "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.6", - "@jest/test-result": "^27.4.6", - "@jest/transform": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.4.6", - "jest-resolve": "^27.4.6", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/test-result": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz", - "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.6", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/transform": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz", - "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "dev": true, - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "requires": {} }, "cliui": { "version": "7.0.4", @@ -32055,134 +31491,6 @@ "locate-path": "^3.0.0" } }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz", - "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.6", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-message-util": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz", - "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.6", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true - }, - "jest-resolve": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz", - "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.6", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.6", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz", - "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.6" - } - }, - "jest-worker": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", - "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -32193,22 +31501,6 @@ "path-exists": "^3.0.0" } }, - "node-notifier": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.0.tgz", - "integrity": "sha512-ZTqP90y1eyb2xAZTa7j4AlAayTwh6cL8mn0nlJhLDq8itXGnJUmQGYOnpaMUvqZVfGo0vhU7KZ3HtDW6CT2SiQ==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.5", - "shellwords": "^0.1.1", - "uuid": "^8.3.2", - "which": "^2.0.2" - } - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -32242,35 +31534,6 @@ "find-up": "^3.0.0" } }, - "pretty-format": { - "version": "27.4.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", - "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -33167,7 +32430,7 @@ "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "requires": { "abbrev": "1" @@ -35267,9 +34530,9 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true }, "requirejs-config-file": { @@ -35314,12 +34577,6 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -35600,14 +34857,6 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true, - "peer": true - }, "shiki": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", @@ -36052,16 +35301,6 @@ "has-flag": "^4.0.0" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -36120,16 +35359,6 @@ "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -36650,25 +35879,6 @@ "optional": true, "peer": true }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/packages/imperative/package.json b/packages/imperative/package.json index df7441b17e..d8916572d5 100644 --- a/packages/imperative/package.json +++ b/packages/imperative/package.json @@ -98,7 +98,7 @@ "@types/readline-sync": "^1.4.3", "@types/rimraf": "^3.0.2", "@types/stack-trace": "^0.0.29", - "@zowe/secrets-for-zowe-sdk": "^7.28.3", + "@zowe/secrets-for-zowe-sdk": "^7.18.0", "concurrently": "^7.5.0", "cowsay": "^1.2.1", "deep-diff": "^0.3.8", From d2c88877cb84410915701eb4f5c79435d9921565 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Fri, 9 Aug 2024 09:17:29 -0400 Subject: [PATCH 06/28] allow showMsgWhenDeprecated to accept an empty string as a parameter to show an alternative error message Signed-off-by: jace-roell --- .../src/utilities/__tests__/CliUtils.unit.test.ts | 7 +++++++ packages/imperative/src/utilities/src/CliUtils.ts | 12 +++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts b/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts index f31a6dc883..e6d554f28b 100644 --- a/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts +++ b/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts @@ -320,6 +320,13 @@ describe("CliUtils", () => { CliUtils.showMsgWhenDeprecated(handlerParms); expect(responseErrText).toEqual(notSetYet); }); + + it("should produce alternative text when deprecatedReplacement is an empty string", () => { + responseErrText = notSetYet; + handlerParms.definition.deprecatedReplacement = ""; + CliUtils.showMsgWhenDeprecated(handlerParms); + expect(responseErrText).toContain("Obsolete component. No replacement exists"); + }); }); describe("buildBaseArgs", () => { diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index a6cf89c362..3cc83a8b69 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -378,20 +378,26 @@ export class CliUtils { * @memberof CliUtils */ public static showMsgWhenDeprecated(handlerParms: IHandlerParameters) { - if (handlerParms.definition.deprecatedReplacement) { + let oldCmd: string | number; + if (handlerParms.definition.deprecatedReplacement || handlerParms.definition.deprecatedReplacement === "") { // form the command that is deprecated - let oldCmd: string; + if(handlerParms.definition.deprecatedReplacement === "") + { + handlerParms.response.console.error("\nObsolete component. No replacement exists"); + } + else + { if (handlerParms.positionals.length >= 1) { oldCmd = handlerParms.positionals[0]; } if (handlerParms.positionals.length >= 2) { oldCmd = oldCmd + " " + handlerParms.positionals[1]; } - // display the message handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); handlerParms.response.console.error("Recommended replacement: " + handlerParms.definition.deprecatedReplacement); + } } } From e1e671ed7eb9f0526e95ffea3923a51a4d5fd71f Mon Sep 17 00:00:00 2001 From: jace-roell Date: Fri, 9 Aug 2024 09:25:16 -0400 Subject: [PATCH 07/28] changelog Signed-off-by: jace-roell --- packages/imperative/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 33ae7bfd6f..d34e520bda 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to the Imperative package will be documented in this file. +## Recent Changes + +- BugFix: Modified showMsgWhenDeprecated() to allow an empty string as a paramter when no replacement is availible for deprecated command to print an alternative message. [#2041](https://github.com/zowe/zowe-cli/issues/2041) + ## `5.26.2` - BugFix: Refactored code to reduce the use of deprecated functions to prepare for upcoming Node.js 22 support. [#2191](https://github.com/zowe/zowe-cli/issues/2191) From 8b9a08e13b7e591645cf53e7184d0d763deecf87 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Fri, 9 Aug 2024 10:28:25 -0400 Subject: [PATCH 08/28] Create lockfile for web help subpackage Signed-off-by: Timothy Johnson --- packages/imperative/package.json | 1 + packages/imperative/web-help/package.json | 3 ++- scripts/rewriteShrinkwrap.js | 10 +++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/imperative/package.json b/packages/imperative/package.json index 20feed5dad..7985fc2d55 100644 --- a/packages/imperative/package.json +++ b/packages/imperative/package.json @@ -20,6 +20,7 @@ "files": [ "lib", "web-help/dist", + "web-help/package*.json", "web-diff" ], "publishConfig": { diff --git a/packages/imperative/web-help/package.json b/packages/imperative/web-help/package.json index f0584da5b4..78893760ea 100644 --- a/packages/imperative/web-help/package.json +++ b/packages/imperative/web-help/package.json @@ -5,7 +5,8 @@ "main": "index.js", "scripts": { "build": "tsc --build ./tsconfig.json", - "watch": "tsc --build ./tsconfig.json -w" + "watch": "tsc --build ./tsconfig.json -w", + "prepare": "node ../../../scripts/rewriteShrinkwrap.js package-lock.json" }, "keywords": [], "author": "", diff --git a/scripts/rewriteShrinkwrap.js b/scripts/rewriteShrinkwrap.js index 79e45b4416..c477193a4e 100644 --- a/scripts/rewriteShrinkwrap.js +++ b/scripts/rewriteShrinkwrap.js @@ -14,7 +14,7 @@ const chalk = require("chalk"); const getLockfile = require("npm-lockfile/getLockfile"); const rootShrinkwrapFile = __dirname + "/../npm-shrinkwrap.json"; -const cliShrinkwrapFile = __dirname + "/../packages/cli/npm-shrinkwrap.json"; +const newShrinkwrapFile = process.cwd() + "/" + (process.argv[2] ?? "npm-shrinkwrap.json"); // Remove "file:" links from shrinkwrap const shrinkwrap = JSON.parse(fs.readFileSync(rootShrinkwrapFile, "utf-8")); @@ -23,11 +23,11 @@ for (const [k, v] of Object.entries(shrinkwrap.packages)) { delete shrinkwrap.packages[k]; } } -fs.writeFileSync(cliShrinkwrapFile, JSON.stringify(shrinkwrap, null, 2)); +fs.writeFileSync(newShrinkwrapFile, JSON.stringify(shrinkwrap, null, 2)); -// Build deduped shrinkwrap for @zowe/cli +// Build deduped shrinkwrap for subpackage (@zowe/cli or web-help) const zoweRegistry = require("../lerna.json").command.publish.registry; -getLockfile(cliShrinkwrapFile, undefined, { "@zowe:registry": zoweRegistry }) - .then((lockfile) => fs.writeFileSync(cliShrinkwrapFile, lockfile)) +getLockfile(newShrinkwrapFile, undefined, { "@zowe:registry": zoweRegistry }) + .then((lockfile) => fs.writeFileSync(newShrinkwrapFile, lockfile)) .then(() => console.log(chalk.green("Lockfile contents written!"))) .catch((err) => { console.error(err); process.exit(1); }); From f72e87e40c5a7425b2d3d87406c13daa33b5f2cc Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Fri, 9 Aug 2024 20:26:31 +0000 Subject: [PATCH 09/28] Bump version to 7.28.4 [ci skip] Signed-off-by: zowe-robot --- .../__packages__/cli-test-utils/package.json | 4 +- lerna.json | 2 +- npm-shrinkwrap.json | 206 +++++++++--------- packages/cli/package.json | 26 +-- packages/core/package.json | 6 +- packages/imperative/CHANGELOG.md | 2 +- packages/imperative/package.json | 2 +- packages/provisioning/package.json | 8 +- packages/workflows/package.json | 10 +- packages/zosconsole/package.json | 8 +- packages/zosfiles/package.json | 10 +- packages/zosjobs/package.json | 10 +- packages/zoslogs/package.json | 8 +- packages/zosmf/package.json | 8 +- packages/zostso/package.json | 10 +- packages/zosuss/package.json | 6 +- 16 files changed, 163 insertions(+), 163 deletions(-) diff --git a/__tests__/__packages__/cli-test-utils/package.json b/__tests__/__packages__/cli-test-utils/package.json index 5676a4e4e3..00ec80d1af 100644 --- a/__tests__/__packages__/cli-test-utils/package.json +++ b/__tests__/__packages__/cli-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/cli-test-utils", - "version": "7.28.3", + "version": "7.28.4", "description": "Test utilities package for Zowe CLI plug-ins", "author": "Zowe", "license": "EPL-2.0", @@ -43,7 +43,7 @@ "devDependencies": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.2" + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" diff --git a/lerna.json b/lerna.json index 168b9a1770..96786440d5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "7.28.3", + "version": "7.28.4", "command": { "publish": { "ignoreChanges": [ diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 1f19007c9c..ea69deb594 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -54,7 +54,7 @@ }, "__tests__/__packages__/cli-test-utils": { "name": "@zowe/cli-test-utils", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { "find-up": "^5.0.0", @@ -65,7 +65,7 @@ "devDependencies": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.2" + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" @@ -20222,21 +20222,21 @@ }, "packages/cli": { "name": "@zowe/cli", - "version": "7.28.3", + "version": "7.28.4", "hasInstallScript": true, "license": "EPL-2.0", "dependencies": { - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/provisioning-for-zowe-sdk": "7.28.3", - "@zowe/zos-console-for-zowe-sdk": "7.28.3", - "@zowe/zos-files-for-zowe-sdk": "7.28.3", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.3", - "@zowe/zos-logs-for-zowe-sdk": "7.28.3", - "@zowe/zos-tso-for-zowe-sdk": "7.28.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.3", - "@zowe/zosmf-for-zowe-sdk": "7.28.3", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/provisioning-for-zowe-sdk": "7.28.4", + "@zowe/zos-console-for-zowe-sdk": "7.28.4", + "@zowe/zos-files-for-zowe-sdk": "7.28.4", + "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", + "@zowe/zos-logs-for-zowe-sdk": "7.28.4", + "@zowe/zos-tso-for-zowe-sdk": "7.28.4", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4", + "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", + "@zowe/zosmf-for-zowe-sdk": "7.28.4", "find-process": "1.4.7", "get-stream": "6.0.1", "lodash": "4.17.21", @@ -20251,7 +20251,7 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.3", + "@zowe/cli-test-utils": "7.28.4", "comment-json": "^4.1.1", "strip-ansi": "^6.0.1", "which": "^2.0.2" @@ -20295,15 +20295,15 @@ }, "packages/core": { "name": "@zowe/core-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { "comment-json": "4.1.1", "string-width": "4.2.3" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" @@ -20311,7 +20311,7 @@ }, "packages/imperative": { "name": "@zowe/imperative", - "version": "5.26.2", + "version": "5.26.3", "license": "EPL-2.0", "dependencies": { "@types/yargs": "13.0.4", @@ -20676,16 +20676,16 @@ }, "packages/provisioning": { "name": "@zowe/provisioning-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { "js-yaml": "4.1.0" }, "devDependencies": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20707,15 +20707,15 @@ }, "packages/workflows": { "name": "@zowe/zos-workflows-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/zos-files-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20724,12 +20724,12 @@ }, "packages/zosconsole": { "name": "@zowe/zos-console-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20738,16 +20738,16 @@ }, "packages/zosfiles": { "name": "@zowe/zos-files-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { "minimatch": "5.0.1" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20775,15 +20775,15 @@ }, "packages/zosjobs": { "name": "@zowe/zos-jobs-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/zos-files-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20792,12 +20792,12 @@ }, "packages/zoslogs": { "name": "@zowe/zos-logs-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20806,12 +20806,12 @@ }, "packages/zosmf": { "name": "@zowe/zosmf-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20820,15 +20820,15 @@ }, "packages/zostso": { "name": "@zowe/zos-tso-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { - "@zowe/zosmf-for-zowe-sdk": "7.28.3" + "@zowe/zosmf-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20837,15 +20837,15 @@ }, "packages/zosuss": { "name": "@zowe/zos-uss-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "license": "EPL-2.0", "dependencies": { "ssh2": "1.15.0" }, "devDependencies": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.2.0" @@ -25565,19 +25565,19 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/provisioning-for-zowe-sdk": "7.28.3", + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/provisioning-for-zowe-sdk": "7.28.4", "@zowe/secrets-for-zowe-sdk": "7.18.6", - "@zowe/zos-console-for-zowe-sdk": "7.28.3", - "@zowe/zos-files-for-zowe-sdk": "7.28.3", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.3", - "@zowe/zos-logs-for-zowe-sdk": "7.28.3", - "@zowe/zos-tso-for-zowe-sdk": "7.28.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.3", - "@zowe/zosmf-for-zowe-sdk": "7.28.3", + "@zowe/zos-console-for-zowe-sdk": "7.28.4", + "@zowe/zos-files-for-zowe-sdk": "7.28.4", + "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", + "@zowe/zos-logs-for-zowe-sdk": "7.28.4", + "@zowe/zos-tso-for-zowe-sdk": "7.28.4", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4", + "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", + "@zowe/zosmf-for-zowe-sdk": "7.28.4", "comment-json": "^4.1.1", "find-process": "1.4.7", "get-stream": "6.0.1", @@ -25617,7 +25617,7 @@ "requires": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.2", + "@zowe/imperative": "5.26.3", "find-up": "^5.0.0", "js-yaml": "^4.0.0", "rimraf": "^3.0.2", @@ -25637,8 +25637,8 @@ "@zowe/core-for-zowe-sdk": { "version": "file:packages/core", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2", + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3", "comment-json": "4.1.1", "string-width": "4.2.3" } @@ -25911,9 +25911,9 @@ "version": "file:packages/provisioning", "requires": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", "js-yaml": "4.1.0" } }, @@ -25927,18 +25927,18 @@ "@zowe/zos-console-for-zowe-sdk": { "version": "file:packages/zosconsole", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" } }, "@zowe/zos-files-for-zowe-sdk": { "version": "file:packages/zosfiles", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3", + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4", "minimatch": "5.0.1" }, "dependencies": { @@ -25963,53 +25963,53 @@ "@zowe/zos-jobs-for-zowe-sdk": { "version": "file:packages/zosjobs", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zos-files-for-zowe-sdk": "7.28.4" } }, "@zowe/zos-logs-for-zowe-sdk": { "version": "file:packages/zoslogs", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" } }, "@zowe/zos-tso-for-zowe-sdk": { "version": "file:packages/zostso", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zosmf-for-zowe-sdk": "7.28.3" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zosmf-for-zowe-sdk": "7.28.4" } }, "@zowe/zos-uss-for-zowe-sdk": { "version": "file:packages/zosuss", "requires": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2", + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3", "ssh2": "1.15.0" } }, "@zowe/zos-workflows-for-zowe-sdk": { "version": "file:packages/workflows", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zos-files-for-zowe-sdk": "7.28.4" } }, "@zowe/zosmf-for-zowe-sdk": { "version": "file:packages/zosmf", "requires": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" } }, "abbrev": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 79f315dab9..780c615580 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/cli", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe CLI is a command line interface (CLI) that provides a simple and streamlined way to interact with IBM z/OS.", "author": "Zowe", "license": "EPL-2.0", @@ -58,17 +58,17 @@ "preshrinkwrap": "node ../../scripts/rewriteShrinkwrap.js" }, "dependencies": { - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/provisioning-for-zowe-sdk": "7.28.3", - "@zowe/zos-console-for-zowe-sdk": "7.28.3", - "@zowe/zos-files-for-zowe-sdk": "7.28.3", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.3", - "@zowe/zos-logs-for-zowe-sdk": "7.28.3", - "@zowe/zos-tso-for-zowe-sdk": "7.28.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.3", - "@zowe/zosmf-for-zowe-sdk": "7.28.3", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/provisioning-for-zowe-sdk": "7.28.4", + "@zowe/zos-console-for-zowe-sdk": "7.28.4", + "@zowe/zos-files-for-zowe-sdk": "7.28.4", + "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", + "@zowe/zos-logs-for-zowe-sdk": "7.28.4", + "@zowe/zos-tso-for-zowe-sdk": "7.28.4", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4", + "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", + "@zowe/zosmf-for-zowe-sdk": "7.28.4", "find-process": "1.4.7", "get-stream": "6.0.1", "lodash": "4.17.21", @@ -79,7 +79,7 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.3", + "@zowe/cli-test-utils": "7.28.4", "comment-json": "^4.1.1", "strip-ansi": "^6.0.1", "which": "^2.0.2" diff --git a/packages/core/package.json b/packages/core/package.json index 7357687166..f11d75c5e7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/core-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Core libraries shared by Zowe SDK packages", "author": "Zowe", "license": "EPL-2.0", @@ -49,8 +49,8 @@ "string-width": "4.2.3" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 28ed82cf34..cf776b3df4 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the Imperative package will be documented in this file. -## Recent Changes +## `5.26.3` - BugFix: Fixed issue in local web help with highlighted sidebar item getting out of sync. [#2215](https://github.com/zowe/zowe-cli/pull/2215) - BugFix: Updated web help dependencies for technical currency. [#2215](https://github.com/zowe/zowe-cli/pull/2215) diff --git a/packages/imperative/package.json b/packages/imperative/package.json index 5064e99b96..b6df1a7d81 100644 --- a/packages/imperative/package.json +++ b/packages/imperative/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/imperative", - "version": "5.26.2", + "version": "5.26.3", "description": "framework for building configurable CLIs", "author": "Zowe", "license": "EPL-2.0", diff --git a/packages/provisioning/package.json b/packages/provisioning/package.json index b9e6a7ff85..1faeb224cf 100644 --- a/packages/provisioning/package.json +++ b/packages/provisioning/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/provisioning-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with the z/OS provisioning APIs", "author": "Zowe", "license": "EPL-2.0", @@ -49,9 +49,9 @@ }, "devDependencies": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/workflows/package.json b/packages/workflows/package.json index 25f2f61495..a368ab80e0 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-workflows-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with the z/OS workflows APIs", "author": "Zowe", "license": "EPL-2.0", @@ -45,12 +45,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/zos-files-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosconsole/package.json b/packages/zosconsole/package.json index 2e79a9d287..0bf3b6b2c2 100644 --- a/packages/zosconsole/package.json +++ b/packages/zosconsole/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-console-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with the z/OS console", "author": "Zowe", "license": "EPL-2.0", @@ -45,9 +45,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosfiles/package.json b/packages/zosfiles/package.json index 0c413b82a5..674841f1e9 100644 --- a/packages/zosfiles/package.json +++ b/packages/zosfiles/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-files-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with files and data sets on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -49,10 +49,10 @@ "minimatch": "5.0.1" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2", - "@zowe/zos-uss-for-zowe-sdk": "7.28.3" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3", + "@zowe/zos-uss-for-zowe-sdk": "7.28.4" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosjobs/package.json b/packages/zosjobs/package.json index fe50c2eba6..55992cf746 100644 --- a/packages/zosjobs/package.json +++ b/packages/zosjobs/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-jobs-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with jobs on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -46,12 +46,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.3" + "@zowe/zos-files-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zoslogs/package.json b/packages/zoslogs/package.json index 0b5197caca..980a2d7705 100644 --- a/packages/zoslogs/package.json +++ b/packages/zoslogs/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-logs-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with the z/OS logs", "author": "Zowe", "license": "EPL-2.0", @@ -45,9 +45,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosmf/package.json b/packages/zosmf/package.json index a6953dc90b..d3226b4129 100644 --- a/packages/zosmf/package.json +++ b/packages/zosmf/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zosmf-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with the z/OS Management Facility", "author": "Zowe", "license": "EPL-2.0", @@ -44,9 +44,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zostso/package.json b/packages/zostso/package.json index 491d846e55..a5a216fede 100644 --- a/packages/zostso/package.json +++ b/packages/zostso/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-tso-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with TSO on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -45,12 +45,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zosmf-for-zowe-sdk": "7.28.3" + "@zowe/zosmf-for-zowe-sdk": "7.28.4" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.3", - "@zowe/core-for-zowe-sdk": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosuss/package.json b/packages/zosuss/package.json index 685f05bdc1..b0c2de081c 100644 --- a/packages/zosuss/package.json +++ b/packages/zosuss/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-uss-for-zowe-sdk", - "version": "7.28.3", + "version": "7.28.4", "description": "Zowe SDK to interact with USS on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -49,8 +49,8 @@ }, "devDependencies": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.3", - "@zowe/imperative": "5.26.2" + "@zowe/cli-test-utils": "7.28.4", + "@zowe/imperative": "5.26.3" }, "peerDependencies": { "@zowe/imperative": "^5.2.0" From c7a5bf3dc8c26e2803d038eaa4cc40cb7e55e8ea Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Mon, 12 Aug 2024 08:14:22 -0400 Subject: [PATCH 10/28] Create web help lockfile only when publishing package Signed-off-by: Timothy Johnson --- packages/imperative/package.json | 3 ++- packages/imperative/web-help/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/imperative/package.json b/packages/imperative/package.json index b6df1a7d81..9ea19b8a58 100644 --- a/packages/imperative/package.json +++ b/packages/imperative/package.json @@ -41,7 +41,8 @@ "typedoc": "typedoc --options ./typedoc.json ./src/", "typedocSpecifySrc": "typedoc --options ./typedoc.json", "prepack": "node ../../scripts/prepareLicenses.js", - "clean": "rimraf lib tsconfig.tsbuildinfo" + "clean": "rimraf lib tsconfig.tsbuildinfo", + "prepublishOnly": "cd web-help && npm run deps:lockfile" }, "dependencies": { "@types/yargs": "13.0.4", diff --git a/packages/imperative/web-help/package.json b/packages/imperative/web-help/package.json index 78893760ea..090dac3592 100644 --- a/packages/imperative/web-help/package.json +++ b/packages/imperative/web-help/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "tsc --build ./tsconfig.json", "watch": "tsc --build ./tsconfig.json -w", - "prepare": "node ../../../scripts/rewriteShrinkwrap.js package-lock.json" + "deps:lockfile": "node ../../../scripts/rewriteShrinkwrap.js package-lock.json" }, "keywords": [], "author": "", From 07d71a4eb4381ff085ce58cf23932df630db3614 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 13:25:34 -0400 Subject: [PATCH 11/28] ssh keypassphrase port from v3 Signed-off-by: jace-roell --- .../issue/ssh/Ssh.handler.unit.test.ts | 130 +++++++++- .../Ssh.handler.unit.test.ts.snap | 10 + packages/imperative/CHANGELOG.md | 4 + .../ConnectionPropsForSessCfg.unit.test.ts | 105 +++++++- .../src/session/ConnectionPropsForSessCfg.ts | 42 +++- .../session/doc/IOptionsForAddConnProps.ts | 15 +- .../session/doc/IOverridePromptConnProps.ts | 10 +- .../rest/src/session/doc/IPropsToPromptFor.ts | 19 ++ packages/zosuss/CHANGELOG.md | 5 + .../__unit__/SshBaseHandler.unit.test.ts | 231 ++++++++++++++++++ .../SshBaseHandler.unit.test.ts.snap | 17 ++ packages/zosuss/src/SshBaseHandler.ts | 129 ++++++++-- 12 files changed, 659 insertions(+), 58 deletions(-) create mode 100644 packages/imperative/src/rest/src/session/doc/IPropsToPromptFor.ts create mode 100644 packages/zosuss/__tests__/__unit__/SshBaseHandler.unit.test.ts create mode 100644 packages/zosuss/__tests__/__unit__/__snapshots__/SshBaseHandler.unit.test.ts.snap diff --git a/packages/cli/__tests__/zosuss/__unit__/issue/ssh/Ssh.handler.unit.test.ts b/packages/cli/__tests__/zosuss/__unit__/issue/ssh/Ssh.handler.unit.test.ts index 6fe5fc3b96..58c1fedba0 100644 --- a/packages/cli/__tests__/zosuss/__unit__/issue/ssh/Ssh.handler.unit.test.ts +++ b/packages/cli/__tests__/zosuss/__unit__/issue/ssh/Ssh.handler.unit.test.ts @@ -11,8 +11,8 @@ jest.mock("../../../../../../zosuss/lib/Shell"); -import { IHandlerParameters, IProfile, CommandProfiles } from "@zowe/imperative"; -import * as SshHandler from "../../../../../src/zosuss/issue/ssh/Ssh.handler"; +import { IHandlerParameters, IProfile, CommandProfiles, ConnectionPropsForSessCfg } from "@zowe/imperative"; +import SshHandler from "../../../../../src/zosuss/issue/ssh/Ssh.handler"; import * as SshDefinition from "../../../../../src/zosuss/issue/ssh/Ssh.definition"; import { Shell } from "@zowe/zos-uss-for-zowe-sdk"; import { mockHandlerParameters } from "@zowe/cli-test-utils"; @@ -33,6 +33,20 @@ const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY = { user: "someone", privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")) }; +const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE = { + host: "somewhere.com", + port: "22", + user: "someone", + privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")), + keyPassPhrase: "dummyPassPhrase123" +}; +const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = { + host: "somewhere.com", + port: "22", + privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")), + keyPassPhrase: "dummyPassPhrase123" +}; + // A mocked profile map with ssh profile const UNIT_TEST_PROFILE_MAP = new Map(); @@ -53,7 +67,26 @@ UNIT_TEST_PROFILE_MAP_PRIVATE_KEY.set( ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY }] ); +const UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE = new Map(); +UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE + }] +); +const UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = new Map(); +UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER + }] +); + const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY); +const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE); +const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER); // Mocked parameters for the unit tests const DEFAULT_PARAMETERS: IHandlerParameters = mockHandlerParameters({ @@ -70,6 +103,19 @@ const DEFAULT_PARAMETERS_PRIVATE_KEY: IHandlerParameters = mockHandlerParameters profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY }); +const DEFAULT_PARAMETERS_KEY_PASSPHRASE: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE, + positionals: ["zos-uss", "issue", "ssh"], + definition: SshDefinition.SshDefinition, + profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE, +}); +const DEFAULT_PARAMETERS_KEY_PASSPHRASE_NO_USER: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER, + positionals: ["zos-uss", "issue", "ssh"], + definition: SshDefinition.SshDefinition, + profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER, +}); + const testOutput = "TEST OUTPUT"; describe("issue ssh handler tests", () => { @@ -82,7 +128,7 @@ describe("issue ssh handler tests", () => { Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { stdoutHandler(testOutput); }); - const handler = new SshHandler.default(); + const handler = new SshHandler(); const params = Object.assign({}, ...[DEFAULT_PARAMETERS]); params.arguments.command = "pwd"; await handler.process(params); @@ -90,23 +136,94 @@ describe("issue ssh handler tests", () => { expect(testOutput).toMatchSnapshot(); }); + it("should be able to get stdout with private key and key passphrase", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new SshHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should prompt user for keyPassphrase if none is stored and privateKey requires one", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new SshHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + jest.spyOn(handler,"processCmd").mockImplementationOnce(() => {throw new Error("but no passphrase given");}); + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should reprompt user for keyPassphrase up to 3 times if stored passphrase failed", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new SshHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + jest.spyOn(handler,"processCmd").mockImplementationOnce(() => {throw new Error("bad passphrase?");}); + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should fail if user fails to enter incorrect key passphrase in 3 attempts", async () => { + const testOutput = "Maximum retry attempts reached. Authentication failed."; + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new SshHandler(); + const params = { ...DEFAULT_PARAMETERS_KEY_PASSPHRASE }; + params.arguments.command = "echo test"; + jest.spyOn(handler, "processCmd").mockImplementation(() => { + throw new Error("bad passphrase?"); + }); + await expect(handler.process(params)).rejects.toThrow("Maximum retry attempts reached. Authentication failed."); + expect(handler.processCmd).toHaveBeenCalledTimes(4); + expect(testOutput).toMatchSnapshot(); + }); + it("should prompt for user and keyPassphrase if neither is stored", async () => { + const testOutput = "test"; + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new SshHandler(); + const params = { ...DEFAULT_PARAMETERS_KEY_PASSPHRASE_NO_USER }; + params.arguments.command = "echo test"; + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + user: "someone", + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); it("should be able to get stdout with privateKey", async () => { Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { stdoutHandler(testOutput); }); - const handler = new SshHandler.default(); + const handler = new SshHandler(); const params = Object.assign({}, ...[DEFAULT_PARAMETERS_PRIVATE_KEY]); params.arguments.command = "pwd"; await handler.process(params); expect(Shell.executeSsh).toHaveBeenCalledTimes(1); expect(testOutput).toMatchSnapshot(); }); - it("should be able to get stdout with cwd option", async () => { Shell.executeSshCwd = jest.fn(async (session, command, cwd, stdoutHandler) => { stdoutHandler(testOutput); }); - const handler = new SshHandler.default(); + const handler = new SshHandler(); const params = Object.assign({}, ...[DEFAULT_PARAMETERS]); params.arguments.command = "pwd"; params.arguments.cwd = "/user/home"; @@ -114,5 +231,4 @@ describe("issue ssh handler tests", () => { expect(Shell.executeSshCwd).toHaveBeenCalledTimes(1); expect(testOutput).toMatchSnapshot(); }); - }); diff --git a/packages/cli/__tests__/zosuss/__unit__/issue/ssh/__snapshots__/Ssh.handler.unit.test.ts.snap b/packages/cli/__tests__/zosuss/__unit__/issue/ssh/__snapshots__/Ssh.handler.unit.test.ts.snap index 802e164178..e9f13da78c 100644 --- a/packages/cli/__tests__/zosuss/__unit__/issue/ssh/__snapshots__/Ssh.handler.unit.test.ts.snap +++ b/packages/cli/__tests__/zosuss/__unit__/issue/ssh/__snapshots__/Ssh.handler.unit.test.ts.snap @@ -6,4 +6,14 @@ exports[`issue ssh handler tests should be able to get stdout 2`] = `"TEST OUTPU exports[`issue ssh handler tests should be able to get stdout with cwd option 1`] = `"TEST OUTPUT"`; +exports[`issue ssh handler tests should be able to get stdout with private key and key passphrase 1`] = `"TEST OUTPUT"`; + exports[`issue ssh handler tests should be able to get stdout with privateKey 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should fail if user fails to enter incorrect key passphrase in 3 attempts 1`] = `"Maximum retry attempts reached. Authentication failed."`; + +exports[`issue ssh handler tests should prompt for user and keyPassphrase if neither is stored 1`] = `"test"`; + +exports[`issue ssh handler tests should prompt user for keyPassphrase if none is stored and privateKey requires one 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should reprompt user for keyPassphrase up to 3 times if stored passphrase failed 1`] = `"TEST OUTPUT"`; diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index cf776b3df4..71ea5de7f6 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to the Imperative package will be documented in this file. +## Recent Changes + +- BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) + ## `5.26.3` - BugFix: Fixed issue in local web help with highlighted sidebar item getting out of sync. [#2215](https://github.com/zowe/zowe-cli/pull/2215) diff --git a/packages/imperative/src/rest/__tests__/session/ConnectionPropsForSessCfg.unit.test.ts b/packages/imperative/src/rest/__tests__/session/ConnectionPropsForSessCfg.unit.test.ts index 36ac3258b4..d84e3f495d 100644 --- a/packages/imperative/src/rest/__tests__/session/ConnectionPropsForSessCfg.unit.test.ts +++ b/packages/imperative/src/rest/__tests__/session/ConnectionPropsForSessCfg.unit.test.ts @@ -20,14 +20,41 @@ import { join } from "path"; import { ConfigAutoStore } from "../../../config/src/ConfigAutoStore"; import { setupConfigToLoad } from "../../../../__tests__/src/TestUtil"; import { IOverridePromptConnProps } from "../../src/session/doc/IOverridePromptConnProps"; - -const certFilePath = join(__dirname, "..", "..", "..", "..", "__tests__", "__integration__", "cmd", - "__tests__", "integration", "cli", "auth", "__resources__", "fakeCert.cert"); -const certKeyFilePath = join(__dirname, "..", "..", "..", "..", "__tests__", "__integration__", "cmd", - "__tests__", "integration", "cli", "auth", "__resources__", "fakeKey.key"); - +import { ISshSession } from "../../../../../zosuss/lib/doc/ISshSession"; +const certFilePath = join( + __dirname, + "..", + "..", + "..", + "..", + "__tests__", + "__integration__", + "cmd", + "__tests__", + "integration", + "cli", + "auth", + "__resources__", + "fakeCert.cert" +); +const certKeyFilePath = join( + __dirname, + "..", + "..", + "..", + "..", + "__tests__", + "__integration__", + "cmd", + "__tests__", + "integration", + "cli", + "auth", + "__resources__", + "fakeKey.key" +); interface extendedSession extends ISession { - someKey?: string + someKey?: string; } describe("ConnectionPropsForSessCfg tests", () => { @@ -1373,4 +1400,68 @@ describe("ConnectionPropsForSessCfg tests", () => { expect(sessCfgWithConnProps.cert).toBeUndefined(); expect(sessCfgWithConnProps.certKey).toBeUndefined(); }); + it("should set default values for elements of propsToPromptFor()", async () => { + jest.spyOn(ConfigAutoStore, "findActiveProfile").mockReturnValueOnce([ + "fruit", + "mango", + ]); + await setupConfigToLoad({ + profiles: { + mango: { + type: "fruit", + properties: {}, + secure: ["host"], + }, + }, + defaults: { fruit: "mango" }, + }); + const overrides: IOverridePromptConnProps[] = [ + { + propertyName: "someKey", + argumentName: "someKeyOther", + propertiesOverridden: [ + "password", + "tokenType", + "tokenValue", + "cert", + "certKey", + ], + }, + ]; + const passFromPrompt = "somePass"; + const initialSessCfg: extendedSession = { + hostname: "SomeHost", + port: 20, + user: "FakeUser", + rejectUnauthorized: true, + }; + const args = { + $0: "zowe", + _: [""], + someKey: "somekeyvalue", + }; + + const commandHandlerPrompt = jest.fn(() => { + return Promise.resolve(passFromPrompt); + }); + const parms = { + response: { + console: { + prompt: commandHandlerPrompt, + }, + }, + }; + const sessCfgWithConnProps: ISshSession = + await ConnectionPropsForSessCfg.addPropsOrPrompt( + initialSessCfg, + args, + { + doPrompting: true, + propertyOverrides: overrides, + propsToPromptFor: [{name: "keyPassphrase",isGivenValueValid: string => true}], + parms: parms as any, + } + ); + expect((ConnectionPropsForSessCfg as any).secureSessCfgProps).toContain("keyPassphrase"); + }); }); diff --git a/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts b/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts index 73491702a7..492a7c8686 100644 --- a/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts +++ b/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts @@ -97,7 +97,7 @@ export class ConnectionPropsForSessCfg { public static async addPropsOrPrompt( initialSessCfg: SessCfgType, cmdArgs: ICommandArguments, - connOpts: IOptionsForAddConnProps = {} + connOpts: IOptionsForAddConnProps = {} ): Promise { const impLogger = Logger.getImperativeLogger(); @@ -113,8 +113,8 @@ export class ConnectionPropsForSessCfg { ); // This function will provide all the needed properties in one array - const promptForValues: (keyof ISession)[] = []; - const doNotPromptForValues: (keyof ISession)[] = []; + let promptForValues: (keyof SessCfgType & string)[] = []; + const doNotPromptForValues: (keyof SessCfgType & string)[] = []; /* Add the override properties to the session object. */ @@ -134,6 +134,16 @@ export class ConnectionPropsForSessCfg { } } + // Set default values on propsToPromptFor + if(connOpts.propsToPromptFor?.length > 0) + { + connOpts.propsToPromptFor.forEach(obj => { + if(obj.secure == null) obj.secure = true; + if(obj.secure) this.secureSessCfgProps.add(obj.name.toString()); + promptForValues.push(obj.name as keyof ISession); + this.promptTextForValues[obj.name.toString()] = obj.description; + }); + } // check what properties are needed to be prompted if (ConnectionPropsForSessCfg.propHasValue(sessCfgToUse.hostname) === false && !doNotPromptForValues.includes("hostname")) { promptForValues.push("hostname"); @@ -166,6 +176,15 @@ export class ConnectionPropsForSessCfg { // put all the needed properties in an array and call the external function const answers = await connOptsToUse.getValuesBack(promptForValues); + if(connOpts.propsToPromptFor?.length > 0) + { + connOpts.propsToPromptFor.forEach(obj => { + if(obj.isGivenValueValid != null) + { + if(!obj.isGivenValueValid(answers[obj.name])) promptForValues = promptForValues.filter(item => obj.name !== item); + } + }); + } // validate what values are given back and move it to sessCfgToUse for (const value of promptForValues) { if (ConnectionPropsForSessCfg.propHasValue(answers[value])) { @@ -214,7 +233,7 @@ export class ConnectionPropsForSessCfg { public static resolveSessCfgProps( sessCfg: SessCfgType, cmdArgs: ICommandArguments = { $0: "", _: [] }, - connOpts: IOptionsForAddConnProps = {} + connOpts: IOptionsForAddConnProps = {} ) { const impLogger = Logger.getImperativeLogger(); @@ -305,7 +324,7 @@ export class ConnectionPropsForSessCfg { impLogger.debug("Using basic authentication"); sessCfg.type = SessConstants.AUTH_TYPE_BASIC; } - ConnectionPropsForSessCfg.setTypeForTokenRequest(sessCfg, connOpts, cmdArgs.tokenType); + ConnectionPropsForSessCfg.setTypeForTokenRequest(sessCfg, connOpts, cmdArgs.tokenType); ConnectionPropsForSessCfg.logSessCfg(sessCfg); } @@ -356,7 +375,8 @@ export class ConnectionPropsForSessCfg { * @param connOpts Options for adding connection properties * @returns Name-value pairs of connection properties */ - private static getValuesBack(connOpts: IOptionsForAddConnProps): (properties: string[]) => Promise<{ [key: string]: any }> { + private static getValuesBack(connOpts: IOptionsForAddConnProps): + (properties: string[]) => Promise<{ [key: string]: any }> { return async (promptForValues: string[]) => { const answers: { [key: string]: any } = {}; const profileSchema = this.loadSchemaForSessCfgProps(connOpts.parms, promptForValues); @@ -366,7 +386,7 @@ export class ConnectionPropsForSessCfg { let answer; while (answer === undefined) { const hideText = profileSchema[value]?.secure || this.secureSessCfgProps.has(value); - let promptText = `${this.promptTextForValues[value]} ${serviceDescription}`; + let promptText = `${this.promptTextForValues[value] ?? `Enter your ${value} for`} ${serviceDescription}`; if (hideText) { promptText += " (will be hidden)"; } @@ -420,11 +440,11 @@ export class ConnectionPropsForSessCfg { * @param tokenType * The type of token that we expect to receive. */ - private static setTypeForTokenRequest( - sessCfg: any, - options: IOptionsForAddConnProps, + private static setTypeForTokenRequest( + sessCfg: SessCfgType, + options: IOptionsForAddConnProps, tokenType: SessConstants.TOKEN_TYPE_CHOICES - ) { + ) { const impLogger = Logger.getImperativeLogger(); if (options.requestToken) { impLogger.debug("Requesting a token"); diff --git a/packages/imperative/src/rest/src/session/doc/IOptionsForAddConnProps.ts b/packages/imperative/src/rest/src/session/doc/IOptionsForAddConnProps.ts index 706e40a11a..5cece9c5d3 100644 --- a/packages/imperative/src/rest/src/session/doc/IOptionsForAddConnProps.ts +++ b/packages/imperative/src/rest/src/session/doc/IOptionsForAddConnProps.ts @@ -9,18 +9,17 @@ * */ -import { SessConstants } from "../../.."; +import { ISession, SessConstants } from "../../.."; import { IHandlerParameters } from "../../../../cmd"; import { AUTH_TYPE_CHOICES } from "../SessConstants"; import { IOverridePromptConnProps } from "./IOverridePromptConnProps"; - +import { IPropsToPromptFor } from "../doc/IPropsToPromptFor"; /** * Interface for options supplied to ConnectionPropsForSessCfg.addPropsOrPrompt() * @export * @interface ISession */ -export interface IOptionsForAddConnProps { - +export interface IOptionsForAddConnProps { /** * Indicates that we want to generate a token. * When true, we use the user and password for the operation @@ -51,7 +50,13 @@ export interface IOptionsForAddConnProps { * Specifies a list of authentication properties, and what they should override. * If one of these properties is available on the session, do not prompt for the other property. */ - propertyOverrides?: IOverridePromptConnProps[]; + propertyOverrides?: IOverridePromptConnProps[]; + + /** + * Allows passing additional properties for which to prompt. + * Used in cases of an incorrect or missing key passphrase. + */ + propsToPromptFor?: IPropsToPromptFor[]; /** * Specifies the functionality that external applications will use for prompting. diff --git a/packages/imperative/src/rest/src/session/doc/IOverridePromptConnProps.ts b/packages/imperative/src/rest/src/session/doc/IOverridePromptConnProps.ts index db0a928409..868ba5e32b 100644 --- a/packages/imperative/src/rest/src/session/doc/IOverridePromptConnProps.ts +++ b/packages/imperative/src/rest/src/session/doc/IOverridePromptConnProps.ts @@ -16,7 +16,7 @@ import { ISession } from "./ISession"; * @export * @interface IOverridePromptConnProps */ -export interface IOverridePromptConnProps { +export interface IOverridePromptConnProps { /** * Indicates the session property that should be considered in the prompting logic. */ @@ -34,5 +34,11 @@ export interface IOverridePromptConnProps { * Prompting logic is only in place for host, port, user, and password, but cert, certKey, tokenType, and tokenValue may also need * to be overridden. */ - propertiesOverridden: (keyof ISession)[]; + propertiesOverridden: (keyof SessCfgType & string)[]; + + /** + * Allows passing additional properties for which to prompt. + * Used in cases of an incorrect or missing key passphrase. + */ + propsToPromptFor?: (keyof SessCfgType & string)[]; } \ No newline at end of file diff --git a/packages/imperative/src/rest/src/session/doc/IPropsToPromptFor.ts b/packages/imperative/src/rest/src/session/doc/IPropsToPromptFor.ts new file mode 100644 index 0000000000..5cc72b86b3 --- /dev/null +++ b/packages/imperative/src/rest/src/session/doc/IPropsToPromptFor.ts @@ -0,0 +1,19 @@ +/* +* This program and the accompanying materials are made available under the terms of the +* Eclipse Public License v2.0 which accompanies this distribution, and is available at +* https://www.eclipse.org/legal/epl-v20.html +* +* SPDX-License-Identifier: EPL-2.0 +* +* Copyright Contributors to the Zowe Project. +* +*/ + +import { ISession } from './ISession'; + +export interface IPropsToPromptFor { + name: keyof SessCfgType & string, + secure?: boolean, + description?: string, + isGivenValueValid?: (givenValue: string) => boolean +} \ No newline at end of file diff --git a/packages/zosuss/CHANGELOG.md b/packages/zosuss/CHANGELOG.md index f302fecf37..7088ff50e5 100644 --- a/packages/zosuss/CHANGELOG.md +++ b/packages/zosuss/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to the Zowe z/OS USS SDK package will be documented in this file. +## Recent Changes + +- BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) +- Enhancement: `SshBaseHandler` command processor will now prompt user up to 3 times to enter the correct keyPassphrase in the case that the stored value is incorrect or no value is stored. [#1770](https://github.com/zowe/zowe-cli/issues/1770) + ## `7.28.3` - BugFix: Refactored code to reduce the use of deprecated functions to prepare for upcoming Node.js 22 support. [#2191](https://github.com/zowe/zowe-cli/issues/2191) diff --git a/packages/zosuss/__tests__/__unit__/SshBaseHandler.unit.test.ts b/packages/zosuss/__tests__/__unit__/SshBaseHandler.unit.test.ts new file mode 100644 index 0000000000..5e9365250a --- /dev/null +++ b/packages/zosuss/__tests__/__unit__/SshBaseHandler.unit.test.ts @@ -0,0 +1,231 @@ +/* +* This program and the accompanying materials are made available under the terms of the +* Eclipse Public License v2.0 which accompanies this distribution, and is available at +* https://www.eclipse.org/legal/epl-v20.html +* +* SPDX-License-Identifier: EPL-2.0 +* +* Copyright Contributors to the Zowe Project. +* +*/ + +import { IHandlerParameters, IProfile, CommandProfiles, ConnectionPropsForSessCfg } from "@zowe/imperative"; +import { mockHandlerParameters } from "@zowe/cli-test-utils"; +import { join, normalize } from "path"; +import { Shell } from "../../src/Shell"; +import { SshBaseHandler } from "../../src/SshBaseHandler"; +import * as fs from "fs"; + +process.env.FORCE_COLOR = "0"; + +const UNIT_TEST_SSH_PROF_OPTS = { + host: "somewhere.com", + port: "22", + user: "someone", + password: "somesecret" +}; + +const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY = { + host: "somewhere.com", + port: "22", + user: "someone", + privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")) +}; +const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE = { + host: "somewhere.com", + port: "22", + user: "someone", + privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")), + keyPassPhrase: "dummyPassPhrase123" +}; +const UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = { + host: "somewhere.com", + port: "22", + privateKey: normalize(join(__dirname, "..", "..", "..", "..", "..", "..", "zosuss", "__tests__", "__unit__", "__resources__", "fake_id_rsa")), + keyPassPhrase: "dummyPassPhrase123" +}; + + +// A mocked profile map with ssh profile +const UNIT_TEST_PROFILE_MAP = new Map(); +UNIT_TEST_PROFILE_MAP.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS + }] +); +const UNIT_TEST_PROFILES_SSH = new CommandProfiles(UNIT_TEST_PROFILE_MAP); + +const UNIT_TEST_PROFILE_MAP_PRIVATE_KEY = new Map(); +UNIT_TEST_PROFILE_MAP_PRIVATE_KEY.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY + }] +); +const UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE = new Map(); +UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE + }] +); +const UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = new Map(); +UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE.set( + "ssh", [{ + name: "ssh", + type: "ssh", + ...UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER + }] +); + +const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY); +const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE); +const UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER = new CommandProfiles(UNIT_TEST_PROFILE_MAP_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER); + +// Mocked parameters for the unit tests +const DEFAULT_PARAMETERS: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS, + positionals: ["zos-uss", "issue", "ssh"], + definition: {} as any, + profiles: UNIT_TEST_PROFILES_SSH +}); + +const DEFAULT_PARAMETERS_PRIVATE_KEY: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY, + positionals: ["zos-uss", "issue", "ssh"], + definition: {} as any, + profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY +}); + +const DEFAULT_PARAMETERS_KEY_PASSPHRASE: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE, + positionals: ["zos-uss", "issue", "ssh"], + definition: {} as any, + profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE, +}); +const DEFAULT_PARAMETERS_KEY_PASSPHRASE_NO_USER: IHandlerParameters = mockHandlerParameters({ + arguments: UNIT_TEST_SSH_PROF_OPTS_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER, + positionals: ["zos-uss", "issue", "ssh"], + definition: {} as any, + profiles: UNIT_TEST_PROFILES_SSH_PRIVATE_KEY_WITH_PASSPHRASE_NO_USER, +}); + +class myHandler extends SshBaseHandler { + public async processCmd(commandParameters: IHandlerParameters): Promise { + return await Shell.executeSsh( + this.mSession, + commandParameters.arguments.command, + (data: any) => commandParameters.response.console.log(Buffer.from(data)) + ); + } +} +const testOutput = "TEST OUTPUT"; + +describe("issue ssh handler tests", () => { + + afterEach(() => { + jest.resetAllMocks(); + }); + + it("should be able to get stdout", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new myHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS]); + params.arguments.command = "pwd"; + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + + it("should be able to get stdout with private key and key passphrase", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new myHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should prompt user for keyPassphrase if none is stored and privateKey requires one", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + jest.spyOn(fs,"readFileSync").mockReturnValue("dummyPrivateKey"); + const handler = new myHandler(); + jest.spyOn(handler,"processCmd").mockImplementationOnce(() => {throw new Error("but no passphrase given");}); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should reprompt user for keyPassphrase up to 3 times if stored passphrase failed", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + jest.spyOn(fs,"readFileSync").mockReturnValue("dummyPrivateKey"); + const handler = new myHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_KEY_PASSPHRASE]); + params.arguments.command = "echo test"; + jest.spyOn(handler,"processCmd").mockImplementationOnce(() => {throw new Error("bad passphrase?");}); + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should fail if user fails to enter incorrect key passphrase in 3 attempts", async () => { + const testOutput = "Maximum retry attempts reached. Authentication failed."; + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new myHandler(); + const params = { ...DEFAULT_PARAMETERS_KEY_PASSPHRASE }; + params.arguments.command = "echo test"; + jest.spyOn(handler, "processCmd").mockImplementation(() => { + throw new Error("bad passphrase?"); + }); + await expect(handler.process(params)).rejects.toThrow("Maximum retry attempts reached. Authentication failed."); + expect(handler.processCmd).toHaveBeenCalledTimes(4); + expect(testOutput).toMatchSnapshot(); + }); + it("should prompt for user and keyPassphrase if neither is stored", async () => { + const testOutput = "test"; + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new myHandler(); + const params = { ...DEFAULT_PARAMETERS_KEY_PASSPHRASE_NO_USER }; + params.arguments.command = "echo test"; + jest.spyOn(ConnectionPropsForSessCfg as any,"getValuesBack").mockReturnValue(() => ({ + user: "someone", + keyPassphrase: "validPassword" + })); + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); + it("should be able to get stdout with privateKey", async () => { + Shell.executeSsh = jest.fn(async (session, command, stdoutHandler) => { + stdoutHandler(testOutput); + }); + const handler = new myHandler(); + const params = Object.assign({}, ...[DEFAULT_PARAMETERS_PRIVATE_KEY]); + params.arguments.command = "pwd"; + await handler.process(params); + expect(Shell.executeSsh).toHaveBeenCalledTimes(1); + expect(testOutput).toMatchSnapshot(); + }); +}); diff --git a/packages/zosuss/__tests__/__unit__/__snapshots__/SshBaseHandler.unit.test.ts.snap b/packages/zosuss/__tests__/__unit__/__snapshots__/SshBaseHandler.unit.test.ts.snap new file mode 100644 index 0000000000..45544acebb --- /dev/null +++ b/packages/zosuss/__tests__/__unit__/__snapshots__/SshBaseHandler.unit.test.ts.snap @@ -0,0 +1,17 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`issue ssh handler tests should be able to get stdout 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should be able to get stdout 2`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should be able to get stdout with private key and key passphrase 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should be able to get stdout with privateKey 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should fail if user fails to enter incorrect key passphrase in 3 attempts 1`] = `"Maximum retry attempts reached. Authentication failed."`; + +exports[`issue ssh handler tests should prompt for user and keyPassphrase if neither is stored 1`] = `"test"`; + +exports[`issue ssh handler tests should prompt user for keyPassphrase if none is stored and privateKey requires one 1`] = `"TEST OUTPUT"`; + +exports[`issue ssh handler tests should reprompt user for keyPassphrase up to 3 times if stored passphrase failed 1`] = `"TEST OUTPUT"`; diff --git a/packages/zosuss/src/SshBaseHandler.ts b/packages/zosuss/src/SshBaseHandler.ts index b824d2a13f..d3927573e4 100644 --- a/packages/zosuss/src/SshBaseHandler.ts +++ b/packages/zosuss/src/SshBaseHandler.ts @@ -15,7 +15,6 @@ import { ICommandHandler, IOverridePromptConnProps, IHandlerParameters, - IProfile, IHandlerResponseConsoleApi, IHandlerFormatOutputApi, IHandlerResponseDataApi, @@ -23,28 +22,22 @@ import { IImperativeError, ImperativeError, ConnectionPropsForSessCfg, - SessConstants + SessConstants, } from "@zowe/imperative"; import { SshSession } from "./SshSession"; import { ISshSession } from "./doc/ISshSession"; - +import { utils } from "ssh2"; +import * as fs from "fs"; /** * This class is used by the various handlers in the project as the base class for their implementation. */ export abstract class SshBaseHandler implements ICommandHandler { - /** * The session creating from the command line arguments / profile */ protected mSession: SshSession; - /** - * Loaded z/OS SSH profile if needed - * @deprecated - */ - protected mSshProfile: IProfile; - /** * Command line arguments passed */ @@ -65,26 +58,108 @@ export abstract class SshBaseHandler implements ICommandHandler { */ public async process(commandParameters: IHandlerParameters) { this.mHandlerParams = commandParameters; - // Why is this here? NOTHING uses it, but I suppose an extender MIGHT be... -awharn - // eslint-disable-next-line deprecation/deprecation - this.mSshProfile = commandParameters.profiles.get("ssh", false); - const sshSessCfgOverride: IOverridePromptConnProps[] = [{ - propertyName: "privateKey", - propertiesOverridden: ["password", "tokenType", "tokenValue", "cert", "certKey", "passphrase"] - }]; - const sshSessCfg: ISshSession = SshSession.createSshSessCfgFromArgs(commandParameters.arguments); - const sshSessCfgWithCreds = await ConnectionPropsForSessCfg.addPropsOrPrompt( - sshSessCfg, commandParameters.arguments, { - parms: commandParameters, - propertyOverrides: sshSessCfgOverride, - supportedAuthTypes: [SessConstants.AUTH_TYPE_BASIC] - } + const sshSessCfgOverride: IOverridePromptConnProps[] = [ + { + propertyName: "privateKey", + propertiesOverridden: [ + "password", + "tokenType", + "tokenValue", + "cert", + "certKey", + ], + }, + ]; + const sshSessCfg: ISshSession = SshSession.createSshSessCfgFromArgs( + commandParameters.arguments ); + let sshSessCfgWithCreds = + await ConnectionPropsForSessCfg.addPropsOrPrompt( + sshSessCfg, + commandParameters.arguments, + { + parms: commandParameters, + propertyOverrides: sshSessCfgOverride, + supportedAuthTypes: [SessConstants.AUTH_TYPE_BASIC], + } + ); this.mSession = new SshSession(sshSessCfgWithCreds); this.mArguments = commandParameters.arguments; - await this.processCmd(commandParameters); + + try { + await this.processCmd(commandParameters); + } catch (e) { + if ( + e.message.includes("but no passphrase given") || + e.message.includes("bad passphrase?") + ) { + this.console.log("Initial key passphrase authentication failed!" + "\n"); + const maxAttempts = 3; + let attempt = 0; + let success = false; + while (attempt < maxAttempts && !success) { + try { + sshSessCfgWithCreds = + await ConnectionPropsForSessCfg.addPropsOrPrompt( + sshSessCfgWithCreds, + commandParameters.arguments, + { + parms: commandParameters, + propertyOverrides: sshSessCfgOverride, + supportedAuthTypes: [ + SessConstants.AUTH_TYPE_BASIC, + ], + propsToPromptFor: [ + { + name: "keyPassphrase", + isGivenValueValid: (givenValue: string) => { + let saveKP: boolean = true; + const result = utils.parseKey( + fs.readFileSync( + sshSessCfgWithCreds.privateKey + ), + givenValue + ); + if (result instanceof Error) + saveKP = + !result.message.includes( + "no passphrase given" + ) && + !result.message.includes( + "bad passphrase" + ); + return saveKP; + }, + }, + ], + } + ); + this.mSession = new SshSession(sshSessCfgWithCreds); + await this.processCmd(commandParameters); + success = true; + } catch (retryError) { + this.console.log( + "\n" + + `Key passphrase authentication failed! (${ + ++attempt + }/${maxAttempts})` + + "\n" + ); + if (attempt >= maxAttempts) { + throw new Error( + "Maximum retry attempts reached. Authentication failed." + ); + } + } + } + } + else + { + throw e; + } + } } /** @@ -133,5 +208,7 @@ export abstract class SshBaseHandler implements ICommandHandler { * @param {IHandlerParameters} commandParameters Command parameters sent to the handler. * */ - public abstract processCmd(commandParameters: IHandlerParameters): Promise; + public abstract processCmd( + commandParameters: IHandlerParameters + ): Promise; } From 013605ce043c70cad396224d96db9ceaa55a667a Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 14:08:45 -0400 Subject: [PATCH 12/28] added test for cases to not contain alternative text from showMsgWhenDeprecated() Signed-off-by: jace-roell --- .../imperative/src/utilities/__tests__/CliUtils.unit.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts b/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts index e6d554f28b..3dcc16840d 100644 --- a/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts +++ b/packages/imperative/src/utilities/__tests__/CliUtils.unit.test.ts @@ -312,6 +312,7 @@ describe("CliUtils", () => { CliUtils.showMsgWhenDeprecated(handlerParms); expect(responseErrText).toEqual("Recommended replacement: " + handlerParms.definition.deprecatedReplacement); + expect(responseErrText).not.toContain("Obsolete component. No replacement exists"); }); it("should not produce a deprecated message when not deprecated", () => { @@ -319,6 +320,7 @@ describe("CliUtils", () => { delete handlerParms.definition.deprecatedReplacement; CliUtils.showMsgWhenDeprecated(handlerParms); expect(responseErrText).toEqual(notSetYet); + expect(responseErrText).not.toContain("Obsolete component. No replacement exists"); }); it("should produce alternative text when deprecatedReplacement is an empty string", () => { From 6d006c5a1e2cfbaa2324cfdbd1d91ead4a4ab70d Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 14:50:42 -0400 Subject: [PATCH 13/28] indentation Signed-off-by: jace-roell --- .../imperative/src/utilities/src/CliUtils.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index 3cc83a8b69..16e4874060 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -387,15 +387,15 @@ export class CliUtils { } else { - if (handlerParms.positionals.length >= 1) { - oldCmd = handlerParms.positionals[0]; - } - if (handlerParms.positionals.length >= 2) { - oldCmd = oldCmd + " " + handlerParms.positionals[1]; - } - // display the message - handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); - handlerParms.response.console.error("Recommended replacement: " + + if (handlerParms.positionals.length >= 1) { + oldCmd = handlerParms.positionals[0]; + } + if (handlerParms.positionals.length >= 2) { + oldCmd = oldCmd + " " + handlerParms.positionals[1]; + } + // display the message + handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); + handlerParms.response.console.error("Recommended replacement: " + handlerParms.definition.deprecatedReplacement); } } From c493f2750b993b183b58d8c8b7e89b70772e0a8e Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 15:18:08 -0400 Subject: [PATCH 14/28] readded deprecated method to avoid a breaking change Signed-off-by: jace-roell --- packages/zosuss/src/SshBaseHandler.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/zosuss/src/SshBaseHandler.ts b/packages/zosuss/src/SshBaseHandler.ts index d3927573e4..f596c8d8d5 100644 --- a/packages/zosuss/src/SshBaseHandler.ts +++ b/packages/zosuss/src/SshBaseHandler.ts @@ -15,6 +15,7 @@ import { ICommandHandler, IOverridePromptConnProps, IHandlerParameters, + IProfile, IHandlerResponseConsoleApi, IHandlerFormatOutputApi, IHandlerResponseDataApi, @@ -22,12 +23,10 @@ import { IImperativeError, ImperativeError, ConnectionPropsForSessCfg, - SessConstants, + SessConstants } from "@zowe/imperative"; import { SshSession } from "./SshSession"; import { ISshSession } from "./doc/ISshSession"; -import { utils } from "ssh2"; -import * as fs from "fs"; /** * This class is used by the various handlers in the project as the base class for their implementation. @@ -38,6 +37,12 @@ export abstract class SshBaseHandler implements ICommandHandler { */ protected mSession: SshSession; + /** + * Loaded z/OS SSH profile if needed + * @deprecated + */ + protected mSshProfile: IProfile; + /** * Command line arguments passed */ @@ -58,6 +63,9 @@ export abstract class SshBaseHandler implements ICommandHandler { */ public async process(commandParameters: IHandlerParameters) { this.mHandlerParams = commandParameters; + // Why is this here? NOTHING uses it, but I suppose an extender MIGHT be... -awharn + // eslint-disable-next-line deprecation/deprecation + this.mSshProfile = commandParameters.profiles.get("ssh", false); const sshSessCfgOverride: IOverridePromptConnProps[] = [ { From 0ef43dc9fe52aa0df0b8b2545776ee2bc174cda6 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 15:27:00 -0400 Subject: [PATCH 15/28] dependency Signed-off-by: jace-roell --- packages/zosuss/src/SshBaseHandler.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/zosuss/src/SshBaseHandler.ts b/packages/zosuss/src/SshBaseHandler.ts index f596c8d8d5..81e4f388f1 100644 --- a/packages/zosuss/src/SshBaseHandler.ts +++ b/packages/zosuss/src/SshBaseHandler.ts @@ -15,7 +15,6 @@ import { ICommandHandler, IOverridePromptConnProps, IHandlerParameters, - IProfile, IHandlerResponseConsoleApi, IHandlerFormatOutputApi, IHandlerResponseDataApi, @@ -23,10 +22,13 @@ import { IImperativeError, ImperativeError, ConnectionPropsForSessCfg, - SessConstants + SessConstants, + IProfile } from "@zowe/imperative"; import { SshSession } from "./SshSession"; import { ISshSession } from "./doc/ISshSession"; +import { utils } from "ssh2"; +import * as fs from "fs"; /** * This class is used by the various handlers in the project as the base class for their implementation. From 2c5dc158361689ea8a2bb83925ac95d81738499f Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 15:42:30 -0400 Subject: [PATCH 16/28] changelog Signed-off-by: jace-roell --- packages/imperative/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 38195d1c5b..8cc88bacda 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to the Imperative package will be documented in this file. ## Recent Changes -- BugFix: Modified showMsgWhenDeprecated() to allow an empty string as a paramter when no replacement is availible for deprecated command to print an alternative message. [#2041](https://github.com/zowe/zowe-cli/issues/2041) +- BugFix: Modified showMsgWhenDeprecated() function to allow an empty string as a parameter when no replacement is availible for the deprecated command. When no replacement is availible an alternative message will be printed. [#2041](https://github.com/zowe/zowe-cli/issues/2041) ## `5.26.3` From 6533e99be57a11d53fc02a2502e41c212a1a298f Mon Sep 17 00:00:00 2001 From: jace-roell Date: Mon, 12 Aug 2024 16:17:24 -0400 Subject: [PATCH 17/28] fixed nested literals warning from sonarcloud Signed-off-by: jace-roell --- .../src/rest/src/session/ConnectionPropsForSessCfg.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts b/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts index 492a7c8686..2396bc8230 100644 --- a/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts +++ b/packages/imperative/src/rest/src/session/ConnectionPropsForSessCfg.ts @@ -386,7 +386,8 @@ export class ConnectionPropsForSessCfg { let answer; while (answer === undefined) { const hideText = profileSchema[value]?.secure || this.secureSessCfgProps.has(value); - let promptText = `${this.promptTextForValues[value] ?? `Enter your ${value} for`} ${serviceDescription}`; + const valuePrompt = this.promptTextForValues[value] ?? `Enter your ${value} for`; + let promptText = `${valuePrompt} ${serviceDescription}`; if (hideText) { promptText += " (will be hidden)"; } From 99baf5f10815d07909a671fad68105246cd2d74f Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Tue, 13 Aug 2024 08:32:25 -0400 Subject: [PATCH 18/28] Add missing question mark Signed-off-by: Andrew W. Harn --- packages/imperative/src/cmd/src/utils/CommandUtils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/imperative/src/cmd/src/utils/CommandUtils.ts b/packages/imperative/src/cmd/src/utils/CommandUtils.ts index d36cac17de..36a06442ac 100644 --- a/packages/imperative/src/cmd/src/utils/CommandUtils.ts +++ b/packages/imperative/src/cmd/src/utils/CommandUtils.ts @@ -66,8 +66,7 @@ export class CommandUtils { if (CommandUtils.optionWasSpecified(option, commandDefinition, commandArguments)) { // don't print "true" for boolean options command += " " + CliUtils.getDashFormOfOption(option) + " "; - command += CommandUtils.getOptionDefinitionFromName(option, commandDefinition).type - === "boolean" ? "" : commandArguments[option]; + command += CommandUtils.getOptionDefinitionFromName(option, commandDefinition)?.type === "boolean" ? "" : commandArguments[option]; } } return command.trim(); From a4365ce3fda353d950daed5e6ef532d858ce96f9 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 09:59:26 -0400 Subject: [PATCH 19/28] spelling, formatting and text color format for dep functions Signed-off-by: jace-roell --- packages/imperative/CHANGELOG.md | 2 +- packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts | 2 +- packages/imperative/src/utilities/src/CliUtils.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 8cc88bacda..bdb59097fb 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to the Imperative package will be documented in this file. ## Recent Changes -- BugFix: Modified showMsgWhenDeprecated() function to allow an empty string as a parameter when no replacement is availible for the deprecated command. When no replacement is availible an alternative message will be printed. [#2041](https://github.com/zowe/zowe-cli/issues/2041) +- BugFix: Modified `showMsgWhenDeprecated` function to allow an empty string as a parameter when no replacement is available for the deprecated command. When no replacement is available an alternative message will be printed. [#2041](https://github.com/zowe/zowe-cli/issues/2041) ## `5.26.3` diff --git a/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts b/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts index c772d077c2..e5cb1ed234 100644 --- a/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts +++ b/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts @@ -222,7 +222,7 @@ export class DefaultHelpGenerator extends AbstractHelpGenerator { let summaryText: string = ""; summaryText += command.summary || command.description; - if (command.deprecatedReplacement) { + if (command.deprecatedReplacement != null) { // Mark with the deprecated tag summaryText += this.grey(" (deprecated)"); } else if (command.experimental) { diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index 16e4874060..63e06eaf64 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -378,7 +378,7 @@ export class CliUtils { * @memberof CliUtils */ public static showMsgWhenDeprecated(handlerParms: IHandlerParameters) { - let oldCmd: string | number; + let oldCmd: string; if (handlerParms.definition.deprecatedReplacement || handlerParms.definition.deprecatedReplacement === "") { // form the command that is deprecated if(handlerParms.definition.deprecatedReplacement === "") From 04da880c4e6742b5950f1b954c7c6e8862c90ddd Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 10:45:30 -0400 Subject: [PATCH 20/28] obsolete command text UX Signed-off-by: jace-roell --- .../imperative/src/utilities/src/CliUtils.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index 63e06eaf64..2ecc640dbe 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -381,22 +381,22 @@ export class CliUtils { let oldCmd: string; if (handlerParms.definition.deprecatedReplacement || handlerParms.definition.deprecatedReplacement === "") { // form the command that is deprecated + if (handlerParms.positionals.length >= 1) { + oldCmd = handlerParms.positionals[0]; + } + if (handlerParms.positionals.length >= 2) { + oldCmd = oldCmd + " " + handlerParms.positionals[1]; + } + // display the message + handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); if(handlerParms.definition.deprecatedReplacement === "") { - handlerParms.response.console.error("\nObsolete component. No replacement exists"); + handlerParms.response.console.error("Obsolete component. No replacement exists"); } else { - if (handlerParms.positionals.length >= 1) { - oldCmd = handlerParms.positionals[0]; - } - if (handlerParms.positionals.length >= 2) { - oldCmd = oldCmd + " " + handlerParms.positionals[1]; - } - // display the message - handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); handlerParms.response.console.error("Recommended replacement: " + - handlerParms.definition.deprecatedReplacement); + handlerParms.definition.deprecatedReplacement); } } } From 35a3916a5e9803d085bac36f30da7ab10dbe50b4 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 10:48:22 -0400 Subject: [PATCH 21/28] space Signed-off-by: jace-roell --- packages/imperative/CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index af18e1a85f..1f39865ea8 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -8,7 +8,6 @@ All notable changes to the Imperative package will be documented in this file. - BugFix: Modified `showMsgWhenDeprecated` function to allow an empty string as a parameter when no replacement is available for the deprecated command. When no replacement is available an alternative message will be printed. [#2041](https://github.com/zowe/zowe-cli/issues/2041) - BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) - ## `5.26.3` - BugFix: Fixed issue in local web help with highlighted sidebar item getting out of sync. [#2215](https://github.com/zowe/zowe-cli/pull/2215) From 9a103738c61656d3a8497f982726a656aac5722c Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 11:00:38 -0400 Subject: [PATCH 22/28] resolved old joining logic Signed-off-by: jace-roell --- packages/imperative/src/utilities/src/CliUtils.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index 2ecc640dbe..32938380c5 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -381,12 +381,7 @@ export class CliUtils { let oldCmd: string; if (handlerParms.definition.deprecatedReplacement || handlerParms.definition.deprecatedReplacement === "") { // form the command that is deprecated - if (handlerParms.positionals.length >= 1) { - oldCmd = handlerParms.positionals[0]; - } - if (handlerParms.positionals.length >= 2) { - oldCmd = oldCmd + " " + handlerParms.positionals[1]; - } + const oldCmd = handlerParms.positionals.join(" "); // display the message handlerParms.response.console.error("\nWarning: The command '" + oldCmd + "' is deprecated."); if(handlerParms.definition.deprecatedReplacement === "") From bc3600163022d6ea1a30a71224b6fdcd597429f4 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 11:07:17 -0400 Subject: [PATCH 23/28] duplicate variable initilization Signed-off-by: jace-roell --- packages/imperative/src/utilities/src/CliUtils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/imperative/src/utilities/src/CliUtils.ts b/packages/imperative/src/utilities/src/CliUtils.ts index 32938380c5..ca5260925c 100644 --- a/packages/imperative/src/utilities/src/CliUtils.ts +++ b/packages/imperative/src/utilities/src/CliUtils.ts @@ -378,7 +378,6 @@ export class CliUtils { * @memberof CliUtils */ public static showMsgWhenDeprecated(handlerParms: IHandlerParameters) { - let oldCmd: string; if (handlerParms.definition.deprecatedReplacement || handlerParms.definition.deprecatedReplacement === "") { // form the command that is deprecated const oldCmd = handlerParms.positionals.join(" "); From c9b153b1e7086a988de2cf9b87f54516c5108d9a Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Tue, 13 Aug 2024 15:11:59 +0000 Subject: [PATCH 24/28] Bump version to 7.28.4 [ci skip] Signed-off-by: zowe-robot --- packages/zosuss/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/zosuss/CHANGELOG.md b/packages/zosuss/CHANGELOG.md index 7088ff50e5..bac6f8edea 100644 --- a/packages/zosuss/CHANGELOG.md +++ b/packages/zosuss/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the Zowe z/OS USS SDK package will be documented in this file. -## Recent Changes +## `7.28.4` - BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) - Enhancement: `SshBaseHandler` command processor will now prompt user up to 3 times to enter the correct keyPassphrase in the case that the stored value is incorrect or no value is stored. [#1770](https://github.com/zowe/zowe-cli/issues/1770) From 57f6a061b9eb6033ddf078dbc36cff8aa7e731a8 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 11:47:57 -0400 Subject: [PATCH 25/28] changelog header Signed-off-by: jace-roell --- packages/zosuss/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/zosuss/CHANGELOG.md b/packages/zosuss/CHANGELOG.md index bac6f8edea..7088ff50e5 100644 --- a/packages/zosuss/CHANGELOG.md +++ b/packages/zosuss/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the Zowe z/OS USS SDK package will be documented in this file. -## `7.28.4` +## Recent Changes - BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) - Enhancement: `SshBaseHandler` command processor will now prompt user up to 3 times to enter the correct keyPassphrase in the case that the stored value is incorrect or no value is stored. [#1770](https://github.com/zowe/zowe-cli/issues/1770) From 97adf219ac91f9a9f153a1ab26fa3c7f0a02bc9b Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 12:25:03 -0400 Subject: [PATCH 26/28] added deprecated command text Signed-off-by: jace-roell --- .../src/cmd/src/help/DefaultHelpGenerator.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts b/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts index e5cb1ed234..7152110297 100644 --- a/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts +++ b/packages/imperative/src/cmd/src/help/DefaultHelpGenerator.ts @@ -359,10 +359,18 @@ export class DefaultHelpGenerator extends AbstractHelpGenerator { || this.mCommandDefinition.summary; // we place the deprecated message in the DESCRIPTION help section - if (this.mCommandDefinition.deprecatedReplacement) { + if (this.mCommandDefinition.deprecatedReplacement != null) { const noNewlineInText = this.mCommandDefinition.deprecatedReplacement.replace(/\n/g, " "); description += this.grey("\n\nWarning: This " + this.mCommandDefinition.type + - " has been deprecated.\nRecommended replacement: " + noNewlineInText); + " has been deprecated.\n"); + if(this.mCommandDefinition.deprecatedReplacement === "") + { + description += this.grey("Obsolete component. No replacement exists"); + } + else + { + description += this.grey("Recommended replacement: " + noNewlineInText); + } } if (this.mProduceMarkdown) { description = this.escapeMarkdown(description); // escape Markdown special characters From bd8ceec32f2d25dfa931699bc1aa4cea00c477a7 Mon Sep 17 00:00:00 2001 From: jace-roell Date: Tue, 13 Aug 2024 14:43:17 -0400 Subject: [PATCH 27/28] integration tests Signed-off-by: jace-roell --- ...imperative.secure.integration.test.ts.snap | 2 +- ...li.auth.login.fruit.integration.subtest.ts | 32 ++++++++--------- ...i.auth.logout.fruit.integration.subtest.ts | 14 ++++---- ...profile.option.mapping.integration.test.ts | 16 ++++----- ....create.banana-profile.integration.test.ts | 8 ++--- ...ofiles.create.insecure.integration.test.ts | 4 +-- .../Cmd.cli.read.profile.integration.test.ts | 2 +- ...ate.secured-profile.integration.subtest.ts | 4 +-- .../imperative/plugins/suites/UsingPlugins.ts | 6 ++-- ...Manager.credentials.integration.subtest.ts | 36 +++++++++---------- 10 files changed, 62 insertions(+), 62 deletions(-) diff --git a/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap b/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap index cc24441879..e6c77aa3e7 100644 --- a/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap +++ b/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap @@ -28,7 +28,7 @@ To set a new default profile, run \\"zowe profiles set-default username-password exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 1`] = ` " -Warning: The command 'profiles update' is deprecated. +Warning: The command 'profiles update username-password-profile' is deprecated. Recommended replacement: The 'config set' command " `; diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.login.fruit.integration.subtest.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.login.fruit.integration.subtest.ts index 4d6a74f748..34f96c7cd4 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.login.fruit.integration.subtest.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.login.fruit.integration.subtest.ts @@ -36,7 +36,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and store token in it with alias", () => { const response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_li.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -49,7 +49,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and store token in it - basic auth", () => { const response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -62,7 +62,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and store token in it - certificate auth", () => { const response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_cert.sh", TEST_ENVIRONMENT.workingDir, [fakeCertPath, fakeCertKeyPath]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -75,7 +75,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and show token only - basic auth", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_token.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -84,7 +84,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); // the output of the command should not include token value - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("tokenType:"); expect(response.stdout.toString()).not.toContain("tokenValue:"); @@ -93,7 +93,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and show token only - certificate auth", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_token_cert.sh", TEST_ENVIRONMENT.workingDir, [fakeCertPath, fakeCertKeyPath]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -102,7 +102,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); // the output of the command should not include token value - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("tokenType:"); expect(response.stdout.toString()).not.toContain("tokenValue:"); @@ -111,7 +111,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and show token in rfj - basic auth", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_create.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -123,7 +123,7 @@ describe("cmd-cli auth login", () => { // the output of the command should not include token value response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("tokenType:"); expect(response.stdout.toString()).not.toContain("tokenValue:"); @@ -132,7 +132,7 @@ describe("cmd-cli auth login", () => { it("should load values from base profile and show token in rfj - certificate auth", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_create_cert.sh", TEST_ENVIRONMENT.workingDir, [fakeCertPath, fakeCertKeyPath]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -144,7 +144,7 @@ describe("cmd-cli auth login", () => { // the output of the command should not include token value response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("tokenType:"); expect(response.stdout.toString()).not.toContain("tokenValue:"); @@ -160,7 +160,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).toContain("host: fakeHost"); expect(response.stdout.toString()).toContain("port: 3000"); @@ -180,7 +180,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).toContain("host: fakeHost"); expect(response.stdout.toString()).toContain("port: 3000"); @@ -200,7 +200,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).toContain("certFile: " + fakeCertPath); expect(response.stdout.toString()).toContain("certKeyFile: " + fakeCertKeyPath); @@ -222,7 +222,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("user:"); expect(response.stdout.toString()).not.toContain("password:"); @@ -242,7 +242,7 @@ describe("cmd-cli auth login", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login_show_profiles.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain("user:"); expect(response.stdout.toString()).not.toContain("password:"); diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.logout.fruit.integration.subtest.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.logout.fruit.integration.subtest.ts index 6ba8a4648f..e8c09ee7ca 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.logout.fruit.integration.subtest.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/auth/Cmd.cli.auth.logout.fruit.integration.subtest.ts @@ -33,7 +33,7 @@ describe("cmd-cli auth logout", () => { it("should have auth logout command that loads values from base profile and removes the token with alias", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_li.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -42,7 +42,7 @@ describe("cmd-cli auth logout", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_lo.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -53,7 +53,7 @@ describe("cmd-cli auth logout", () => { it("should have auth logout command that loads values from base profile and removes the token", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -62,7 +62,7 @@ describe("cmd-cli auth logout", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_logout.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -73,8 +73,8 @@ describe("cmd-cli auth logout", () => { it("should have auth logout command that invalidates another token", () => { let response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_login.sh", TEST_ENVIRONMENT.workingDir, ["fakeUser", "fakePass"]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create base-profile' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value @@ -83,7 +83,7 @@ describe("cmd-cli auth logout", () => { response = runCliScript(__dirname + "/__scripts__/base_profile_and_auth_logout_specify_token.sh", TEST_ENVIRONMENT.workingDir, ["fakeToken:fakeToken@fakeToken"]); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list base-profiles' is deprecated"); expect(response.status).toBe(0); // the output of the command should include token value diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profile.option.mapping.integration.test.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profile.option.mapping.integration.test.ts index 3d30bbd6db..ef6b906d59 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profile.option.mapping.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profile.option.mapping.integration.test.ts @@ -35,7 +35,7 @@ describe("cmd-cli profile mapping", () => { const moldType = "none"; const response = runCliScript(__dirname + "/__scripts__/profiles/map_banana_to_options.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the profile values @@ -55,7 +55,7 @@ describe("cmd-cli profile mapping", () => { const cliMoldType = "no mold at all"; const response = runCliScript(__dirname + "/__scripts__/profiles/banana_profile_and_specify_cli.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType, cliColor, cliDescription, cliMoldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the CLI arguments @@ -75,7 +75,7 @@ describe("cmd-cli profile mapping", () => { const envMoldType = "no mold at all"; const response = runCliScript(__dirname + "/__scripts__/profiles/banana_profile_and_specify_env.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType, envColor, envDescription, envMoldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the env variable values @@ -102,7 +102,7 @@ describe("cmd-cli profile mapping", () => { const response = runCliScript(__dirname + "/__scripts__/profiles/banana_profile_and_specify_env_and_cli.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType, envColor, envDescription, envMoldType, cliColor, cliDescription, cliMoldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the CLI arguments @@ -140,7 +140,7 @@ describe("cmd-cli profile mapping", () => { const kiwiAmount = 1000; const response = runCliScript(__dirname + "/__scripts__/profiles/base_and_kiwi_profile.sh", TEST_ENVIRONMENT.workingDir, [baseAmount, basePrice, kiwiAmount]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create kiwi-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the base profile values @@ -171,7 +171,7 @@ describe("cmd-cli profile mapping", () => { const moldType = "none"; const response = runCliScript(__dirname + "/__scripts__/profiles/map_banana_to_positionals.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // the output of the command should use the profile values @@ -296,7 +296,7 @@ describe("cmd-cli profile mapping", () => { const moldType = "none"; const response = runCliScript(__dirname + "/__scripts__/profiles/name_type_undefined.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // name and type should be undefined since we did not specify them via command line expect(response.stdout.toString()).toContain("Name: undefined"); @@ -311,7 +311,7 @@ describe("cmd-cli profile mapping", () => { const cliType = "Big"; const response = runCliScript(__dirname + "/__scripts__/profiles/name_type_specify.sh", TEST_ENVIRONMENT.workingDir, [color, description, moldType, cliName, cliType]); - expect(response.stderr.toString()).toContain("The command 'profiles create' is deprecated."); + expect(response.stderr.toString()).toContain("The command 'profiles create banana-profile' is deprecated."); expect(response.status).toBe(0); // name and type should be undefined since we did not specify them via command line expect(response.stdout.toString()).toContain("Name: " + cliName); diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.banana-profile.integration.test.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.banana-profile.integration.test.ts index 2eb8e00b9f..b98b4104f3 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.banana-profile.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.banana-profile.integration.test.ts @@ -28,7 +28,7 @@ describe("cmd-cli profiles create banana", () => { // Create a few profiles of multiple types const response = runCliScript(__dirname + "/__scripts__/profiles/create_some_profiles.sh", TEST_ENVIRONMENT.workingDir); expect(response.status).toBe(0); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create banana-profile' is deprecated"); expect(response.stdout.toString()).toContain("test_banana"); expect(response.stdout.toString()).toContain("test_strawberry"); expect(response.stdout.toString()).toContain("test_kiwi"); @@ -38,7 +38,7 @@ describe("cmd-cli profiles create banana", () => { const listBananaResponse = runCliScript(__dirname + "/__scripts__/profiles/list_profiles_of_type.sh", TEST_ENVIRONMENT.workingDir, ["banana"]); expect(listBananaResponse.status).toBe(0); - expect(listBananaResponse.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(listBananaResponse.stderr.toString()).toContain("command 'profiles list banana-profiles' is deprecated"); expect(listBananaResponse.stdout.toString()).not.toContain("strawberry"); expect(listBananaResponse.stdout.toString()).toMatchSnapshot(); @@ -46,14 +46,14 @@ describe("cmd-cli profiles create banana", () => { const listStrawberryResponse = runCliScript(__dirname + "/__scripts__/profiles/list_profiles_of_type.sh", TEST_ENVIRONMENT.workingDir, ["strawberry"]); expect(listStrawberryResponse.status).toBe(0); - expect(listStrawberryResponse.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(listStrawberryResponse.stderr.toString()).toContain("command 'profiles list strawberry-profiles' is deprecated"); expect(listStrawberryResponse.stdout.toString()).toMatchSnapshot(); expect((listStrawberryResponse.stdout.toString().match(/default/g) || []).length).toBe(1); // List the profiles for kiwi const listKiwiResponse = runCliScript(__dirname + "/__scripts__/profiles/list_profiles_of_type.sh", TEST_ENVIRONMENT.workingDir, ["kiwi"]); expect(listKiwiResponse.status).toBe(0); - expect(listKiwiResponse.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(listKiwiResponse.stderr.toString()).toContain("command 'profiles list kiwi-profiles' is deprecated"); expect(listKiwiResponse.stdout.toString()).not.toContain("kiwiSecret"); expect(listKiwiResponse.stdout.toString()).toMatchSnapshot(); }); diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.insecure.integration.test.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.insecure.integration.test.ts index 31087fd290..841e8d257d 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.insecure.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/profiles/Cmd.cli.profiles.create.insecure.integration.test.ts @@ -25,8 +25,8 @@ describe("cmd-cli profiles create insecure", () => { it("should create a profile with a field marked as secure in plain text if the cli does not mark keytar as a dependency", () => { const response = runCliScript(__dirname + "/__scripts__/profiles/create_insecure_profile.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create insecure' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list insecure' is deprecated"); expect(response.stdout.toString()).toContain("not so secret info"); expect(response.stdout.toString()).not.toContain("managed by"); expect(response.status).toBe(0); diff --git a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/read/Cmd.cli.read.profile.integration.test.ts b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/read/Cmd.cli.read.profile.integration.test.ts index dc885a4358..76eece4fde 100644 --- a/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/read/Cmd.cli.read.profile.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/cmd/__tests__/integration/cli/read/Cmd.cli.read.profile.integration.test.ts @@ -25,7 +25,7 @@ describe("cmd-cli profiles read profiles", () => { it("should create a profile with a field marked as secure in plain text (no keytar) and be able to read the contents", () => { const response = runCliScript(__dirname + "/__scripts__/profile/create_and_read.sh", TEST_ENVIRONMENT.workingDir); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create insecure' is deprecated"); expect(response.stdout.toString()).toContain("not so secret info"); expect(response.stdout.toString()).not.toContain("managed by"); expect(response.status).toBe(0); diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts index 4c186d6dbe..0e008ff364 100644 --- a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts +++ b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts @@ -31,8 +31,8 @@ describe("imperative-test-cli profiles create secured-profile", () => { const profileName: string = "my_secret"; const response = runCliScript(__dirname + "/__scripts__/secured-profile/create_and_list.sh", TEST_ENVIRONMENT.workingDir, [secret, profileName]); - expect(response.stderr.toString()).toContain("command 'profiles create' is deprecated"); - expect(response.stderr.toString()).toContain("command 'profiles list' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles create secured-profile' is deprecated"); + expect(response.stderr.toString()).toContain("command 'profiles list secured-profiles' is deprecated"); expect(response.status).toBe(0); expect(response.stdout.toString()).not.toContain(secret); expect(response.stdout.toString()).toContain(profileName); diff --git a/packages/imperative/__tests__/src/packages/imperative/plugins/suites/UsingPlugins.ts b/packages/imperative/__tests__/src/packages/imperative/plugins/suites/UsingPlugins.ts index a83a30019f..87cc56d325 100644 --- a/packages/imperative/__tests__/src/packages/imperative/plugins/suites/UsingPlugins.ts +++ b/packages/imperative/__tests__/src/packages/imperative/plugins/suites/UsingPlugins.ts @@ -151,14 +151,14 @@ describe("Using a Plugin", () => { cmd = "profiles create foo myFooProfile --duration 5"; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create foo' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); expect(result.stdout.replace(/\s+/g, " ")).toContain("size: small"); expect(result.stdout.replace(/\s+/g, " ")).toContain("duration: 5"); cmd = "profiles validate foo-profile"; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles validate' is deprecated"); + expect(result.stderr).toContain("command 'profiles validate foo-profile' is deprecated"); expect(result.stdout).toContain("Check the size of the Foo"); expect(result.stdout).toContain("Repair in time"); expect(result.stdout).toContain("Of 2 tests, 2 succeeded, 0 failed, and 0 had warnings or undetermined results."); @@ -300,7 +300,7 @@ describe("Using a Plugin", () => { // Create a zosmf profile. That will trigger the CredMgr. cmd = "profiles create secure-pass-profile TestProfileName --password 'AnyPass' --overwrite"; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create secure-pass-profile' is deprecated"); expect(result.stdout).toContain("CredentialManager in sample-plugin is saving these creds:"); expect(result.stdout).toContain(`password: managed by ${knownOverridePluginNm}`); diff --git a/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts b/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts index 3107317863..4bea3829de 100644 --- a/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts +++ b/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts @@ -81,7 +81,7 @@ describe("Cli Profile Manager", () => { `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `display-profile`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); @@ -98,13 +98,13 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured} --ow`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Overwrote existing profile"); expect(result.stdout).toContain("Profile created successfully!"); }); @@ -115,12 +115,12 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `profiles update ${testProfileName}-profile ${profileName} --username ${newName} --password ${newPass}`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles update' is deprecated"); + expect(result.stderr).toContain("command 'profiles update username-password-profile' is deprecated"); expect(result.stdout).toContain("Overwrote existing profile"); expect(result.stdout).toContain("Profile updated successfully!"); @@ -139,12 +139,12 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `profiles delete ${testProfileName}-profile ${profileName}`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles delete' is deprecated"); + expect(result.stderr).toContain("command 'profiles delete username-password-profile' is deprecated"); expect(result.stdout).toContain("successfully deleted"); }); @@ -153,7 +153,7 @@ describe("Cli Profile Manager", () => { `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); // profiles upd username-password username-password --password pass @@ -166,7 +166,7 @@ describe("Cli Profile Manager", () => { cmd = `profiles delete ${testProfileName}-profile ${profileName}`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles delete' is deprecated"); + expect(result.stderr).toContain("command 'profiles delete username-password-profile' is deprecated"); expect(T.stripNewLines(result.stdout)).toContain("successfully deleted"); expect(result.stdout).toMatchSnapshot(); }); @@ -186,7 +186,7 @@ describe("Cli Profile Manager", () => { `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); // Now change the name of the profile so that we can break it @@ -197,7 +197,7 @@ describe("Cli Profile Manager", () => { expect(T.stripNewLines(result.stderr)).toContain(`Profile "${createdName}" of type "${testProfileName}" does not exist.`); expect(result.stderr).toContain("Profile \"profile-name\" of type \"username-password\" does not exist"); - expect(result.stderr).toContain("The command 'profiles delete' is deprecated"); + expect(result.stderr).toContain("The command 'profiles delete username-password-profile' is deprecated"); // Now put it back for cleanup fs.renameSync(changedPath, createdPath); @@ -205,7 +205,7 @@ describe("Cli Profile Manager", () => { cmd = `profiles delete ${testProfileName}-profile ${createdName}`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles delete' is deprecated"); + expect(result.stderr).toContain("command 'profiles delete username-password-profile' is deprecated"); expect(T.stripNewLines(result.stdout)).toContain("successfully deleted"); }); @@ -214,7 +214,7 @@ describe("Cli Profile Manager", () => { `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); // Now change the name of the profile so that we can break it @@ -232,7 +232,7 @@ describe("Cli Profile Manager", () => { cmd = `profiles delete ${testProfileName}-profile ${createdName}`; result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles delete' is deprecated"); + expect(result.stderr).toContain("command 'profiles delete username-password-profile' is deprecated"); expect(T.stripNewLines(result.stdout)).toContain("successfully deleted"); expect(result.stdout).toMatchSnapshot(); }); @@ -271,7 +271,7 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); renameKeyTar(); @@ -286,7 +286,7 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} ` + `--password ${password} --account ${account} --sec1 ${secured} --insec1 ${insecured}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); renameKeyTar(); @@ -325,7 +325,7 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} --password ${password}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `display-profile`; @@ -352,7 +352,7 @@ describe("Cli Profile Manager", () => { let cmd = `profiles create ${testProfileName}-profile ${profileName} --username ${username} --password ${password}`; let result = T.executeTestCLICommand(cliBin, this, cmd.split(" ")); - expect(result.stderr).toContain("command 'profiles create' is deprecated"); + expect(result.stderr).toContain("command 'profiles create username-password-profile' is deprecated"); expect(result.stdout).toContain("Profile created successfully!"); cmd = `display-profile`; From 9e78a2df7a767ba12c706ba62d7cdc23773d99c2 Mon Sep 17 00:00:00 2001 From: zowe-robot Date: Tue, 13 Aug 2024 20:36:16 +0000 Subject: [PATCH 28/28] Bump version to 7.29.0 [ci skip] Signed-off-by: zowe-robot --- .../__packages__/cli-test-utils/package.json | 4 +- lerna.json | 2 +- npm-shrinkwrap.json | 206 +++++++++--------- packages/cli/package.json | 26 +-- packages/core/package.json | 6 +- packages/imperative/CHANGELOG.md | 2 +- packages/imperative/package.json | 2 +- packages/provisioning/package.json | 8 +- packages/workflows/package.json | 10 +- packages/zosconsole/package.json | 8 +- packages/zosfiles/package.json | 10 +- packages/zosjobs/package.json | 10 +- packages/zoslogs/package.json | 8 +- packages/zosmf/package.json | 8 +- packages/zostso/package.json | 10 +- packages/zosuss/CHANGELOG.md | 2 +- packages/zosuss/package.json | 6 +- 17 files changed, 164 insertions(+), 164 deletions(-) diff --git a/__tests__/__packages__/cli-test-utils/package.json b/__tests__/__packages__/cli-test-utils/package.json index 00ec80d1af..a061dd7e44 100644 --- a/__tests__/__packages__/cli-test-utils/package.json +++ b/__tests__/__packages__/cli-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/cli-test-utils", - "version": "7.28.4", + "version": "7.29.0", "description": "Test utilities package for Zowe CLI plug-ins", "author": "Zowe", "license": "EPL-2.0", @@ -43,7 +43,7 @@ "devDependencies": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.3" + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" diff --git a/lerna.json b/lerna.json index 96786440d5..3a899b9d14 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "7.28.4", + "version": "7.29.0", "command": { "publish": { "ignoreChanges": [ diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ea69deb594..19a68f7d3e 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -54,7 +54,7 @@ }, "__tests__/__packages__/cli-test-utils": { "name": "@zowe/cli-test-utils", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { "find-up": "^5.0.0", @@ -65,7 +65,7 @@ "devDependencies": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.3" + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" @@ -20222,21 +20222,21 @@ }, "packages/cli": { "name": "@zowe/cli", - "version": "7.28.4", + "version": "7.29.0", "hasInstallScript": true, "license": "EPL-2.0", "dependencies": { - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/provisioning-for-zowe-sdk": "7.28.4", - "@zowe/zos-console-for-zowe-sdk": "7.28.4", - "@zowe/zos-files-for-zowe-sdk": "7.28.4", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", - "@zowe/zos-logs-for-zowe-sdk": "7.28.4", - "@zowe/zos-tso-for-zowe-sdk": "7.28.4", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", - "@zowe/zosmf-for-zowe-sdk": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/provisioning-for-zowe-sdk": "7.29.0", + "@zowe/zos-console-for-zowe-sdk": "7.29.0", + "@zowe/zos-files-for-zowe-sdk": "7.29.0", + "@zowe/zos-jobs-for-zowe-sdk": "7.29.0", + "@zowe/zos-logs-for-zowe-sdk": "7.29.0", + "@zowe/zos-tso-for-zowe-sdk": "7.29.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0", + "@zowe/zos-workflows-for-zowe-sdk": "7.29.0", + "@zowe/zosmf-for-zowe-sdk": "7.29.0", "find-process": "1.4.7", "get-stream": "6.0.1", "lodash": "4.17.21", @@ -20251,7 +20251,7 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.4", + "@zowe/cli-test-utils": "7.29.0", "comment-json": "^4.1.1", "strip-ansi": "^6.0.1", "which": "^2.0.2" @@ -20295,15 +20295,15 @@ }, "packages/core": { "name": "@zowe/core-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { "comment-json": "4.1.1", "string-width": "4.2.3" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" @@ -20311,7 +20311,7 @@ }, "packages/imperative": { "name": "@zowe/imperative", - "version": "5.26.3", + "version": "5.27.0", "license": "EPL-2.0", "dependencies": { "@types/yargs": "13.0.4", @@ -20676,16 +20676,16 @@ }, "packages/provisioning": { "name": "@zowe/provisioning-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { "js-yaml": "4.1.0" }, "devDependencies": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20707,15 +20707,15 @@ }, "packages/workflows": { "name": "@zowe/zos-workflows-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/zos-files-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20724,12 +20724,12 @@ }, "packages/zosconsole": { "name": "@zowe/zos-console-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20738,16 +20738,16 @@ }, "packages/zosfiles": { "name": "@zowe/zos-files-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { "minimatch": "5.0.1" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20775,15 +20775,15 @@ }, "packages/zosjobs": { "name": "@zowe/zos-jobs-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/zos-files-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20792,12 +20792,12 @@ }, "packages/zoslogs": { "name": "@zowe/zos-logs-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20806,12 +20806,12 @@ }, "packages/zosmf": { "name": "@zowe/zosmf-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20820,15 +20820,15 @@ }, "packages/zostso": { "name": "@zowe/zos-tso-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { - "@zowe/zosmf-for-zowe-sdk": "7.28.4" + "@zowe/zosmf-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", @@ -20837,15 +20837,15 @@ }, "packages/zosuss": { "name": "@zowe/zos-uss-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "license": "EPL-2.0", "dependencies": { "ssh2": "1.15.0" }, "devDependencies": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.2.0" @@ -25565,19 +25565,19 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/provisioning-for-zowe-sdk": "7.28.4", + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/provisioning-for-zowe-sdk": "7.29.0", "@zowe/secrets-for-zowe-sdk": "7.18.6", - "@zowe/zos-console-for-zowe-sdk": "7.28.4", - "@zowe/zos-files-for-zowe-sdk": "7.28.4", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", - "@zowe/zos-logs-for-zowe-sdk": "7.28.4", - "@zowe/zos-tso-for-zowe-sdk": "7.28.4", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", - "@zowe/zosmf-for-zowe-sdk": "7.28.4", + "@zowe/zos-console-for-zowe-sdk": "7.29.0", + "@zowe/zos-files-for-zowe-sdk": "7.29.0", + "@zowe/zos-jobs-for-zowe-sdk": "7.29.0", + "@zowe/zos-logs-for-zowe-sdk": "7.29.0", + "@zowe/zos-tso-for-zowe-sdk": "7.29.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0", + "@zowe/zos-workflows-for-zowe-sdk": "7.29.0", + "@zowe/zosmf-for-zowe-sdk": "7.29.0", "comment-json": "^4.1.1", "find-process": "1.4.7", "get-stream": "6.0.1", @@ -25617,7 +25617,7 @@ "requires": { "@types/js-yaml": "^4.0.0", "@types/uuid": "^8.3.0", - "@zowe/imperative": "5.26.3", + "@zowe/imperative": "5.27.0", "find-up": "^5.0.0", "js-yaml": "^4.0.0", "rimraf": "^3.0.2", @@ -25637,8 +25637,8 @@ "@zowe/core-for-zowe-sdk": { "version": "file:packages/core", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3", + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0", "comment-json": "4.1.1", "string-width": "4.2.3" } @@ -25911,9 +25911,9 @@ "version": "file:packages/provisioning", "requires": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", "js-yaml": "4.1.0" } }, @@ -25927,18 +25927,18 @@ "@zowe/zos-console-for-zowe-sdk": { "version": "file:packages/zosconsole", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" } }, "@zowe/zos-files-for-zowe-sdk": { "version": "file:packages/zosfiles", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4", + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0", "minimatch": "5.0.1" }, "dependencies": { @@ -25963,53 +25963,53 @@ "@zowe/zos-jobs-for-zowe-sdk": { "version": "file:packages/zosjobs", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zos-files-for-zowe-sdk": "7.29.0" } }, "@zowe/zos-logs-for-zowe-sdk": { "version": "file:packages/zoslogs", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" } }, "@zowe/zos-tso-for-zowe-sdk": { "version": "file:packages/zostso", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zosmf-for-zowe-sdk": "7.28.4" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zosmf-for-zowe-sdk": "7.29.0" } }, "@zowe/zos-uss-for-zowe-sdk": { "version": "file:packages/zosuss", "requires": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3", + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0", "ssh2": "1.15.0" } }, "@zowe/zos-workflows-for-zowe-sdk": { "version": "file:packages/workflows", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zos-files-for-zowe-sdk": "7.29.0" } }, "@zowe/zosmf-for-zowe-sdk": { "version": "file:packages/zosmf", "requires": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" } }, "abbrev": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 780c615580..5f305773cc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/cli", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe CLI is a command line interface (CLI) that provides a simple and streamlined way to interact with IBM z/OS.", "author": "Zowe", "license": "EPL-2.0", @@ -58,17 +58,17 @@ "preshrinkwrap": "node ../../scripts/rewriteShrinkwrap.js" }, "dependencies": { - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/provisioning-for-zowe-sdk": "7.28.4", - "@zowe/zos-console-for-zowe-sdk": "7.28.4", - "@zowe/zos-files-for-zowe-sdk": "7.28.4", - "@zowe/zos-jobs-for-zowe-sdk": "7.28.4", - "@zowe/zos-logs-for-zowe-sdk": "7.28.4", - "@zowe/zos-tso-for-zowe-sdk": "7.28.4", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4", - "@zowe/zos-workflows-for-zowe-sdk": "7.28.4", - "@zowe/zosmf-for-zowe-sdk": "7.28.4", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/provisioning-for-zowe-sdk": "7.29.0", + "@zowe/zos-console-for-zowe-sdk": "7.29.0", + "@zowe/zos-files-for-zowe-sdk": "7.29.0", + "@zowe/zos-jobs-for-zowe-sdk": "7.29.0", + "@zowe/zos-logs-for-zowe-sdk": "7.29.0", + "@zowe/zos-tso-for-zowe-sdk": "7.29.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0", + "@zowe/zos-workflows-for-zowe-sdk": "7.29.0", + "@zowe/zosmf-for-zowe-sdk": "7.29.0", "find-process": "1.4.7", "get-stream": "6.0.1", "lodash": "4.17.21", @@ -79,7 +79,7 @@ "@types/diff": "^5.0.2", "@types/lodash": "^4.14.175", "@types/tar": "^6.1.2", - "@zowe/cli-test-utils": "7.28.4", + "@zowe/cli-test-utils": "7.29.0", "comment-json": "^4.1.1", "strip-ansi": "^6.0.1", "which": "^2.0.2" diff --git a/packages/core/package.json b/packages/core/package.json index f11d75c5e7..36b3823afd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/core-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Core libraries shared by Zowe SDK packages", "author": "Zowe", "license": "EPL-2.0", @@ -49,8 +49,8 @@ "string-width": "4.2.3" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.0.0" diff --git a/packages/imperative/CHANGELOG.md b/packages/imperative/CHANGELOG.md index 1f39865ea8..818183c06a 100644 --- a/packages/imperative/CHANGELOG.md +++ b/packages/imperative/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to the Imperative package will be documented in this file. -## Recent Changes +## `5.27.0` - BugFix: Modified `showMsgWhenDeprecated` function to allow an empty string as a parameter when no replacement is available for the deprecated command. When no replacement is available an alternative message will be printed. [#2041](https://github.com/zowe/zowe-cli/issues/2041) - BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) diff --git a/packages/imperative/package.json b/packages/imperative/package.json index 9ea19b8a58..c550d2430a 100644 --- a/packages/imperative/package.json +++ b/packages/imperative/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/imperative", - "version": "5.26.3", + "version": "5.27.0", "description": "framework for building configurable CLIs", "author": "Zowe", "license": "EPL-2.0", diff --git a/packages/provisioning/package.json b/packages/provisioning/package.json index 1faeb224cf..9dc731a127 100644 --- a/packages/provisioning/package.json +++ b/packages/provisioning/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/provisioning-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with the z/OS provisioning APIs", "author": "Zowe", "license": "EPL-2.0", @@ -49,9 +49,9 @@ }, "devDependencies": { "@types/js-yaml": "^4.0.5", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/workflows/package.json b/packages/workflows/package.json index a368ab80e0..67b66a3691 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-workflows-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with the z/OS workflows APIs", "author": "Zowe", "license": "EPL-2.0", @@ -45,12 +45,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/zos-files-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosconsole/package.json b/packages/zosconsole/package.json index 0bf3b6b2c2..e17d27d33b 100644 --- a/packages/zosconsole/package.json +++ b/packages/zosconsole/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-console-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with the z/OS console", "author": "Zowe", "license": "EPL-2.0", @@ -45,9 +45,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosfiles/package.json b/packages/zosfiles/package.json index 674841f1e9..d05767ecb5 100644 --- a/packages/zosfiles/package.json +++ b/packages/zosfiles/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-files-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with files and data sets on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -49,10 +49,10 @@ "minimatch": "5.0.1" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3", - "@zowe/zos-uss-for-zowe-sdk": "7.28.4" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0", + "@zowe/zos-uss-for-zowe-sdk": "7.29.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosjobs/package.json b/packages/zosjobs/package.json index 55992cf746..df0602bbd9 100644 --- a/packages/zosjobs/package.json +++ b/packages/zosjobs/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-jobs-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with jobs on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -46,12 +46,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.28.4" + "@zowe/zos-files-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zoslogs/package.json b/packages/zoslogs/package.json index 980a2d7705..f7f0c2e212 100644 --- a/packages/zoslogs/package.json +++ b/packages/zoslogs/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-logs-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with the z/OS logs", "author": "Zowe", "license": "EPL-2.0", @@ -45,9 +45,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosmf/package.json b/packages/zosmf/package.json index d3226b4129..5d5e72a7f0 100644 --- a/packages/zosmf/package.json +++ b/packages/zosmf/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zosmf-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with the z/OS Management Facility", "author": "Zowe", "license": "EPL-2.0", @@ -44,9 +44,9 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zostso/package.json b/packages/zostso/package.json index a5a216fede..6a87f74043 100644 --- a/packages/zostso/package.json +++ b/packages/zostso/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-tso-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with TSO on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -45,12 +45,12 @@ "prepack": "node ../../scripts/prepareLicenses.js" }, "dependencies": { - "@zowe/zosmf-for-zowe-sdk": "7.28.4" + "@zowe/zosmf-for-zowe-sdk": "7.29.0" }, "devDependencies": { - "@zowe/cli-test-utils": "7.28.4", - "@zowe/core-for-zowe-sdk": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/core-for-zowe-sdk": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/core-for-zowe-sdk": "^7.0.0", diff --git a/packages/zosuss/CHANGELOG.md b/packages/zosuss/CHANGELOG.md index 7088ff50e5..34d5403fb1 100644 --- a/packages/zosuss/CHANGELOG.md +++ b/packages/zosuss/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the Zowe z/OS USS SDK package will be documented in this file. -## Recent Changes +## `7.29.0` - BugFix: Resolved bug that resulted in user not being prompted for a key passphrase if it is located in the secure credential array of the ssh profile. [#1770](https://github.com/zowe/zowe-cli/issues/1770) - Enhancement: `SshBaseHandler` command processor will now prompt user up to 3 times to enter the correct keyPassphrase in the case that the stored value is incorrect or no value is stored. [#1770](https://github.com/zowe/zowe-cli/issues/1770) diff --git a/packages/zosuss/package.json b/packages/zosuss/package.json index b0c2de081c..bdde740cfb 100644 --- a/packages/zosuss/package.json +++ b/packages/zosuss/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/zos-uss-for-zowe-sdk", - "version": "7.28.4", + "version": "7.29.0", "description": "Zowe SDK to interact with USS on z/OS", "author": "Zowe", "license": "EPL-2.0", @@ -49,8 +49,8 @@ }, "devDependencies": { "@types/ssh2": "^1.11.0", - "@zowe/cli-test-utils": "7.28.4", - "@zowe/imperative": "5.26.3" + "@zowe/cli-test-utils": "7.29.0", + "@zowe/imperative": "5.27.0" }, "peerDependencies": { "@zowe/imperative": "^5.2.0"