From b5c38f806c54b0fcb0cc81c5a31d931604eb200b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 10:57:18 +0000 Subject: [PATCH 01/43] (chore): Bump @typescript-eslint/eslint-plugin from 5.59.5 to 5.59.6 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.59.5 to 5.59.6. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.6/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 459 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 425 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1200a278..ae6081bab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^5.59.6", "@typescript-eslint/parser": "^5.59.5", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -3608,15 +3608,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz", - "integrity": "sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", + "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/type-utils": "5.59.5", - "@typescript-eslint/utils": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/type-utils": "5.59.6", + "@typescript-eslint/utils": "5.59.6", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3641,6 +3641,65 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3719,13 +3778,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz", - "integrity": "sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", + "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.5", - "@typescript-eslint/utils": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/utils": "5.59.6", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3745,6 +3804,108 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/types": { "version": "5.59.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", @@ -3819,17 +3980,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.5.tgz", - "integrity": "sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", + "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -3844,6 +4005,92 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22171,15 +22418,15 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz", - "integrity": "sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", + "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/type-utils": "5.59.5", - "@typescript-eslint/utils": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/type-utils": "5.59.6", + "@typescript-eslint/utils": "5.59.6", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -22188,6 +22435,38 @@ "tsutils": "^3.21.0" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" + } + }, + "@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22237,15 +22516,78 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz", - "integrity": "sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", + "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.5", - "@typescript-eslint/utils": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/utils": "5.59.6", "debug": "^4.3.4", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/types": { @@ -22296,21 +22638,68 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.5.tgz", - "integrity": "sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", + "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" + } + }, + "@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", diff --git a/package.json b/package.json index 9c0685822..8bd1a847b 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^5.59.6", "@typescript-eslint/parser": "^5.59.5", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From 0b40c03bced3655b14de8527786b8df57dea80e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 10:58:58 +0000 Subject: [PATCH 02/43] (chore): Bump qs from 6.11.1 to 6.11.2 Bumps [qs](https://github.com/ljharb/qs) from 6.11.1 to 6.11.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.11.1...v6.11.2) --- updated-dependencies: - dependency-name: qs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1200a278..e4bdb90f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "date-fns": "^2.30.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", - "qs": "^6.11.1", + "qs": "^6.11.2", "react": "^17.0.2", "react-bootstrap": "^2.7.4", "react-dom": "^17.0.2", @@ -15384,9 +15384,9 @@ ] }, "node_modules/qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -30917,9 +30917,9 @@ "dev": true }, "qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "requires": { "side-channel": "^1.0.4" } diff --git a/package.json b/package.json index 9c0685822..fa86b55fb 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "date-fns": "^2.30.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", - "qs": "^6.11.1", + "qs": "^6.11.2", "react": "^17.0.2", "react-bootstrap": "^2.7.4", "react-dom": "^17.0.2", From 63f78fe06893fa926d684c7f1422af669f57f812 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 11:01:13 +0000 Subject: [PATCH 03/43] (chore): Bump eslint-plugin-jsdoc from 44.2.3 to 44.2.4 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 44.2.3 to 44.2.4. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v44.2.3...v44.2.4) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 46 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1200a278..a77c78464 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.39.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.3", + "eslint-plugin-jsdoc": "^44.2.4", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -720,9 +720,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.39.2", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.2.tgz", - "integrity": "sha512-L3Ztkhfy1Y+X+eNFMo1DC9wFCb0qRczNIzP+PnmohZ1jv4A5CkWy192h72B9d9dgzngvipB8eOU6YU7GJTtEUg==", + "version": "0.39.4", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", + "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", "dev": true, "dependencies": { "comment-parser": "1.3.1", @@ -7904,18 +7904,18 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "44.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.3.tgz", - "integrity": "sha512-Ut9jL/170sMKRRFX7P7Ecmdc9XkPcANZs00QWG+VeMN/mcs0kzE6mXCmbhB4EUsLtRASLRAasOwVq0GN5r0oKw==", + "version": "44.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.4.tgz", + "integrity": "sha512-/EMMxCyRh1SywhCb66gAqoGX4Yv6Xzc4bsSkF1AiY2o2+bQmGMQ05QZ5+JjHbdFTPDZY9pfn+DsSNP0a5yQpIg==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.1", + "@es-joy/jsdoccomment": "~0.39.3", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.0", + "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, "engines": { @@ -7950,9 +7950,9 @@ } }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -19828,9 +19828,9 @@ "dev": true }, "@es-joy/jsdoccomment": { - "version": "0.39.2", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.2.tgz", - "integrity": "sha512-L3Ztkhfy1Y+X+eNFMo1DC9wFCb0qRczNIzP+PnmohZ1jv4A5CkWy192h72B9d9dgzngvipB8eOU6YU7GJTtEUg==", + "version": "0.39.4", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", + "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", "dev": true, "requires": { "comment-parser": "1.3.1", @@ -25472,18 +25472,18 @@ } }, "eslint-plugin-jsdoc": { - "version": "44.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.3.tgz", - "integrity": "sha512-Ut9jL/170sMKRRFX7P7Ecmdc9XkPcANZs00QWG+VeMN/mcs0kzE6mXCmbhB4EUsLtRASLRAasOwVq0GN5r0oKw==", + "version": "44.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.4.tgz", + "integrity": "sha512-/EMMxCyRh1SywhCb66gAqoGX4Yv6Xzc4bsSkF1AiY2o2+bQmGMQ05QZ5+JjHbdFTPDZY9pfn+DsSNP0a5yQpIg==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.39.1", + "@es-joy/jsdoccomment": "~0.39.3", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.0", + "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, "dependencies": { @@ -25503,9 +25503,9 @@ } }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "requires": { "lru-cache": "^6.0.0" diff --git a/package.json b/package.json index 9c0685822..9ec981c60 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.39.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.3", + "eslint-plugin-jsdoc": "^44.2.4", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From 6729b09c8c2b6a2f4a447d39fcd620ff64d842a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 14:15:01 +0000 Subject: [PATCH 04/43] (chore): Bump @typescript-eslint/parser from 5.59.5 to 5.59.6 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.59.5 to 5.59.6. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.6/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 481 +++++----------------------------------------- package.json | 2 +- 2 files changed, 47 insertions(+), 436 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e1d7a0fb..24b4bb10c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.6", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/parser": "^5.59.6", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -3641,65 +3641,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3734,14 +3675,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.5.tgz", - "integrity": "sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", + "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", "debug": "^4.3.4" }, "engines": { @@ -3761,13 +3702,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz", - "integrity": "sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/visitor-keys": "5.59.5" + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3804,7 +3745,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "5.59.6", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", @@ -3817,7 +3758,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "5.59.6", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", @@ -3844,36 +3785,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", @@ -3885,7 +3797,7 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", @@ -3900,79 +3812,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", - "integrity": "sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz", - "integrity": "sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/visitor-keys": "5.59.5", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -4005,92 +3844,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -4125,12 +3878,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz", - "integrity": "sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/types": "5.59.6", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -22435,38 +22188,6 @@ "tsutils": "^3.21.0" }, "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22494,25 +22215,25 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.5.tgz", - "integrity": "sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", + "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.5", - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz", - "integrity": "sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/visitor-keys": "5.59.5" + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" } }, "@typescript-eslint/type-utils": { @@ -22525,85 +22246,22 @@ "@typescript-eslint/utils": "5.59.6", "debug": "^4.3.4", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/types": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", - "integrity": "sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz", - "integrity": "sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.5", - "@typescript-eslint/visitor-keys": "5.59.5", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -22621,9 +22279,9 @@ } }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -22653,53 +22311,6 @@ "semver": "^7.3.7" }, "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22727,12 +22338,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz", - "integrity": "sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==", + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/types": "5.59.6", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { diff --git a/package.json b/package.json index 7a58bd8cb..535b40231 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.6", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/parser": "^5.59.6", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", From d3011997a2a26921cf8ed3adad88ef33850f4ef6 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 17 May 2023 14:24:34 -0400 Subject: [PATCH 05/43] Update packages --- package-lock.json | 148 +++++++++++++++++++++++----------------------- package.json | 6 +- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24b4bb10c..e4cb3d26a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "react-dom": "^17.0.2", "react-intl": "^6.4.2", "react-redux": "^8.0.5", - "react-router-dom": "^6.11.0", + "react-router-dom": "^6.11.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", @@ -58,7 +58,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.39.0", + "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsdoc": "^44.2.4", @@ -767,14 +767,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -817,9 +817,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2543,9 +2543,9 @@ "integrity": "sha512-3V9mmarS3jD5fBksMwh+XCEAMUIzqSOxDkH6OcIVu6w/gaBBOWHh34Jwn4CxKlu+WStxVV/rxm3oFGpsWqljvg==" }, "node_modules/@remix-run/router": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.0.tgz", - "integrity": "sha512-N13NRw3T2+6Xi9J//3CGLsK2OqC8NMme3d/YX+nh05K9YHWGcv8DycHJrqGScSP4T75o8IN6nqIMhVFU8ohg8w==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.2.tgz", + "integrity": "sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==", "engines": { "node": ">=14" } @@ -7425,15 +7425,15 @@ } }, "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -7444,8 +7444,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -8435,9 +8435,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8495,14 +8495,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8512,9 +8512,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -15642,11 +15642,11 @@ } }, "node_modules/react-router": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.0.tgz", - "integrity": "sha512-hTm6KKNpj9SDG4syIWRjCU219O0RZY8RUPobCFt9p+PlF7nnkRgMoh2DieTKvw3F3Mw6zg565HGnSv8BuoY5oQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.2.tgz", + "integrity": "sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==", "dependencies": { - "@remix-run/router": "1.6.0" + "@remix-run/router": "1.6.2" }, "engines": { "node": ">=14" @@ -15656,12 +15656,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.0.tgz", - "integrity": "sha512-Q3mK1c/CYoF++J6ZINz7EZzwlgSOZK/kc7lxIA7PhtWhKju4KfF1WHqlx0kVCIFJAWztuYVpXZeljEbds8z4Og==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.2.tgz", + "integrity": "sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==", "dependencies": { - "@remix-run/router": "1.6.0", - "react-router": "6.11.0" + "@remix-run/router": "1.6.2", + "react-router": "6.11.2" }, "engines": { "node": ">=14" @@ -19862,14 +19862,14 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -19896,9 +19896,9 @@ } }, "@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true }, "@formatjs/cli": { @@ -21197,9 +21197,9 @@ "integrity": "sha512-3V9mmarS3jD5fBksMwh+XCEAMUIzqSOxDkH6OcIVu6w/gaBBOWHh34Jwn4CxKlu+WStxVV/rxm3oFGpsWqljvg==" }, "@remix-run/router": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.0.tgz", - "integrity": "sha512-N13NRw3T2+6Xi9J//3CGLsK2OqC8NMme3d/YX+nh05K9YHWGcv8DycHJrqGScSP4T75o8IN6nqIMhVFU8ohg8w==" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.2.tgz", + "integrity": "sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==" }, "@restart/hooks": { "version": "0.4.9", @@ -25034,15 +25034,15 @@ } }, "eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -25053,8 +25053,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -25132,9 +25132,9 @@ } }, "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "globals": { @@ -25807,20 +25807,20 @@ "dev": true }, "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true } } @@ -31083,20 +31083,20 @@ "dev": true }, "react-router": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.0.tgz", - "integrity": "sha512-hTm6KKNpj9SDG4syIWRjCU219O0RZY8RUPobCFt9p+PlF7nnkRgMoh2DieTKvw3F3Mw6zg565HGnSv8BuoY5oQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.2.tgz", + "integrity": "sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==", "requires": { - "@remix-run/router": "1.6.0" + "@remix-run/router": "1.6.2" } }, "react-router-dom": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.0.tgz", - "integrity": "sha512-Q3mK1c/CYoF++J6ZINz7EZzwlgSOZK/kc7lxIA7PhtWhKju4KfF1WHqlx0kVCIFJAWztuYVpXZeljEbds8z4Og==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.2.tgz", + "integrity": "sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==", "requires": { - "@remix-run/router": "1.6.0", - "react-router": "6.11.0" + "@remix-run/router": "1.6.2", + "react-router": "6.11.2" } }, "react-transition-group": { diff --git a/package.json b/package.json index 535b40231..459088435 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "react-dom": "^17.0.2", "react-intl": "^6.4.2", "react-redux": "^8.0.5", - "react-router-dom": "^6.11.0", + "react-router-dom": "^6.11.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", @@ -93,7 +93,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.39.0", + "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsdoc": "^44.2.4", @@ -116,7 +116,7 @@ "webpack-bundle-analyzer": "^4.8.0" }, "overrides": { - "eslint": "^8.39.0", + "eslint": "^8.40.0", "react-intl": "^6.4.2" }, "insights": { From 961659944b590019d57fd50bf4ef963e2ea081fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 May 2023 10:58:42 +0000 Subject: [PATCH 06/43] (chore): Bump rimraf from 5.0.0 to 5.0.1 Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.0 to 5.0.1. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.0...v5.0.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 509 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 465 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index e4cb3d26a..347230761 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,7 +76,7 @@ "jws": "^4.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", - "rimraf": "^5.0.0", + "rimraf": "^5.0.1", "typescript": "^5.0.4", "webpack-bundle-analyzer": "^4.8.0" }, @@ -1063,6 +1063,102 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2093,6 +2189,16 @@ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-4.94.6.tgz", "integrity": "sha512-tm7C6nat+uKMr1hrapis7hS3rN9cr41tpcCKhx6cod6FLU8KwF2Yt5KUxakhIOCEcE/M/EhXhAw/qejp8w0r7Q==" }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", @@ -7034,6 +7140,12 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -9095,6 +9207,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -11059,6 +11199,24 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", @@ -13981,12 +14139,12 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp": { @@ -14837,13 +14995,13 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dev": true, "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -14853,12 +15011,12 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", - "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "dev": true, "engines": { - "node": ">=16.14" + "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { @@ -15963,12 +16121,12 @@ "peer": true }, "node_modules/rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, "dependencies": { - "glob": "^10.0.0" + "glob": "^10.2.5" }, "bin": { "rimraf": "dist/cjs/src/bin.js" @@ -15990,15 +16148,19 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", + "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -16876,6 +17038,27 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -16973,6 +17156,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -19163,6 +19359,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -20081,6 +20328,71 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -20882,6 +21194,13 @@ "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-4.94.6.tgz", "integrity": "sha512-tm7C6nat+uKMr1hrapis7hS3rN9cr41tpcCKhx6cod6FLU8KwF2Yt5KUxakhIOCEcE/M/EhXhAw/qejp8w0r7Q==" }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", @@ -24723,6 +25042,12 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -26275,6 +26600,24 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + } + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -27685,6 +28028,16 @@ "istanbul-lib-report": "^3.0.0" } }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", @@ -29875,9 +30228,9 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "dev": true }, "mkdirp": { @@ -30521,19 +30874,19 @@ "dev": true }, "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dev": true, "requires": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "dependencies": { "lru-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", - "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "dev": true } } @@ -31323,12 +31676,12 @@ "peer": true }, "rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, "requires": { - "glob": "^10.0.0" + "glob": "^10.2.5" }, "dependencies": { "brace-expansion": { @@ -31341,15 +31694,16 @@ } }, "glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", + "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" } }, "minimatch": { @@ -32033,6 +32387,25 @@ } } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, "string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -32101,6 +32474,15 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -33809,6 +34191,43 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 459088435..a98de4a4a 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "jws": "^4.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", - "rimraf": "^5.0.0", + "rimraf": "^5.0.1", "typescript": "^5.0.4", "webpack-bundle-analyzer": "^4.8.0" }, From 7ed4ff57159f71645dbd0c36038b775a9cd0223e Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Fri, 19 May 2023 13:19:58 -0400 Subject: [PATCH 07/43] Omit unsupported query params https://issues.redhat.com/browse/COST-3834 --- src/routes/details/components/tag/tagLink.tsx | 8 +++++++- src/routes/details/components/tag/tagModal.tsx | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/routes/details/components/tag/tagLink.tsx b/src/routes/details/components/tag/tagLink.tsx index 943c46813..b9fb1dc65 100644 --- a/src/routes/details/components/tag/tagLink.tsx +++ b/src/routes/details/components/tag/tagLink.tsx @@ -119,7 +119,13 @@ const mapStateToProps = createMapStateToProps Date: Mon, 22 May 2023 19:34:06 -0400 Subject: [PATCH 08/43] "Cost by default projects" card should reflect "Overhead cost" selection https://issues.redhat.com/browse/COST-3838 --- .../reports/reportSummary/reportSummaryItems.tsx | 3 ++- src/routes/details/components/summary/summaryCard.tsx | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/routes/components/reports/reportSummary/reportSummaryItems.tsx b/src/routes/components/reports/reportSummary/reportSummaryItems.tsx index fea7567d9..fd00aa7e4 100644 --- a/src/routes/components/reports/reportSummary/reportSummaryItems.tsx +++ b/src/routes/components/reports/reportSummary/reportSummaryItems.tsx @@ -15,6 +15,7 @@ interface ReportSummaryItemsRenderProps { } interface ReportSummaryItemsOwnProps extends ComputedReportItemsParams { + costDistribution?: string; children?(props: ReportSummaryItemsRenderProps): React.ReactNode; status?: number; } @@ -23,7 +24,7 @@ export type ReportSummaryItemsProps = ReportSummaryItemsOwnProps & WrappedCompon class ReportSummaryItemsBase extends React.Component { public shouldComponentUpdate(nextProps: ReportSummaryItemsProps) { - return nextProps.report !== this.props.report; + return nextProps.report !== this.props.report || nextProps.costDistribution !== this.props.costDistribution; } private getItems() { diff --git a/src/routes/details/components/summary/summaryCard.tsx b/src/routes/details/components/summary/summaryCard.tsx index a17f18e04..a3375f441 100644 --- a/src/routes/details/components/summary/summaryCard.tsx +++ b/src/routes/details/components/summary/summaryCard.tsx @@ -100,7 +100,12 @@ class SummaryBase extends React.Component { const reportItemValue = costDistribution ? costDistribution : ComputedReportItemValueType.total; return ( - + {({ items }) => items.map(reportItem => ( Date: Mon, 22 May 2023 23:46:09 +0000 Subject: [PATCH 09/43] (chore): Bump @typescript-eslint/parser from 5.59.6 to 5.59.7 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.59.6 to 5.59.7. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.7/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 218 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 206 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 347230761..1d10c5d78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.6", - "@typescript-eslint/parser": "^5.59.6", + "@typescript-eslint/parser": "^5.59.7", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -3781,14 +3781,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", - "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", + "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", "debug": "^4.3.4" }, "engines": { @@ -3807,6 +3807,125 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", + "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.7", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.6", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", @@ -22534,15 +22653,88 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", - "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", + "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", "debug": "^4.3.4" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", + "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7" + } + }, + "@typescript-eslint/types": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.7", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index a98de4a4a..a4b30d155 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.6", - "@typescript-eslint/parser": "^5.59.6", + "@typescript-eslint/parser": "^5.59.7", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", From 6f1b1877bd73e68abc1765de6f1e9ef3d5aece36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 01:27:37 +0000 Subject: [PATCH 10/43] (chore): Bump @typescript-eslint/eslint-plugin from 5.59.6 to 5.59.7 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.59.6 to 5.59.7. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.7/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 322 ++++++++++------------------------------------ package.json | 2 +- 2 files changed, 66 insertions(+), 258 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d10c5d78..651e0a714 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.6", + "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -3714,15 +3714,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", - "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", + "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/type-utils": "5.59.7", + "@typescript-eslint/utils": "5.59.7", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3807,7 +3807,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.7", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", @@ -3824,133 +3824,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.7", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", - "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", + "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/utils": "5.59.7", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3971,9 +3852,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3984,13 +3865,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4044,17 +3925,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", - "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", + "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -4103,12 +3984,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/types": "5.59.7", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -22609,15 +22490,15 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", - "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", + "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/type-utils": "5.59.7", + "@typescript-eslint/utils": "5.59.7", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -22662,117 +22543,44 @@ "@typescript-eslint/types": "5.59.7", "@typescript-eslint/typescript-estree": "5.59.7", "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", - "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7" - } - }, - "@typescript-eslint/types": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", - "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", + "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7" } }, "@typescript-eslint/type-utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", - "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", + "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/utils": "5.59.7", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", - "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", + "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", - "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", + "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/visitor-keys": "5.59.7", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -22807,17 +22615,17 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", - "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", + "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.7", + "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.7", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -22849,12 +22657,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", - "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "version": "5.59.7", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", + "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/types": "5.59.7", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { diff --git a/package.json b/package.json index a4b30d155..ee0063789 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.6", + "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From 3a203f1182c74bddd0e92def96ca1f298145c706 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 May 2023 10:57:34 +0000 Subject: [PATCH 11/43] (chore): Bump eslint-plugin-jsdoc from 44.2.4 to 44.2.5 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 44.2.4 to 44.2.5. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v44.2.4...v44.2.5) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 651e0a714..6d3b7f70c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.4", + "eslint-plugin-jsdoc": "^44.2.5", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -8016,12 +8016,12 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "44.2.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.4.tgz", - "integrity": "sha512-/EMMxCyRh1SywhCb66gAqoGX4Yv6Xzc4bsSkF1AiY2o2+bQmGMQ05QZ5+JjHbdFTPDZY9pfn+DsSNP0a5yQpIg==", + "version": "44.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.5.tgz", + "integrity": "sha512-KtuhaYy2GmdY2IQE5t+1lup8O4P05c+V4gKcj45PCxFM0OxmRq2uQlfOS1AgYVgPYIBKGE86DxrbKP24HKpORA==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.3", + "@es-joy/jsdoccomment": "~0.39.4", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", @@ -25797,12 +25797,12 @@ } }, "eslint-plugin-jsdoc": { - "version": "44.2.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.4.tgz", - "integrity": "sha512-/EMMxCyRh1SywhCb66gAqoGX4Yv6Xzc4bsSkF1AiY2o2+bQmGMQ05QZ5+JjHbdFTPDZY9pfn+DsSNP0a5yQpIg==", + "version": "44.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.5.tgz", + "integrity": "sha512-KtuhaYy2GmdY2IQE5t+1lup8O4P05c+V4gKcj45PCxFM0OxmRq2uQlfOS1AgYVgPYIBKGE86DxrbKP24HKpORA==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.39.3", + "@es-joy/jsdoccomment": "~0.39.4", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", diff --git a/package.json b/package.json index ee0063789..a91f5874c 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.4", + "eslint-plugin-jsdoc": "^44.2.5", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From c59997fd836730fd0f1e9e527136e910b5c89f70 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 24 May 2023 09:58:50 -0400 Subject: [PATCH 12/43] Refactor dataTable to reuse existing functionality in selectableTable https://issues.redhat.com/browse/COST-3846 --- locales/data.json | 18 ++ locales/translations.json | 3 + src/locales/messages.ts | 15 ++ src/routes/components/dataTable/dataTable.tsx | 34 +--- src/routes/components/dataTable/index.ts | 1 + .../components/dataTable/selectableTable.tsx | 179 ++++++++++++++++++ .../optimizations/optimizationsTable.tsx | 6 +- 7 files changed, 224 insertions(+), 32 deletions(-) create mode 100644 src/routes/components/dataTable/selectableTable.tsx diff --git a/locales/data.json b/locales/data.json index 6ae830b29..f288865dd 100644 --- a/locales/data.json +++ b/locales/data.json @@ -11326,6 +11326,24 @@ "value": "Select tags to enable or disable" } ], + "selectableTableAriaLabel": [ + { + "type": 0, + "value": "Selectable table" + } + ], + "selectableTableHeaderAriaLabel": [ + { + "type": 0, + "value": "Select to open the optimizations drawer" + } + ], + "selectableTableRowAriaLabel": [ + { + "type": 0, + "value": "Selectable table row" + } + ], "selected": [ { "type": 1, diff --git a/locales/translations.json b/locales/translations.json index a42446321..3fd193093 100644 --- a/locales/translations.json +++ b/locales/translations.json @@ -500,6 +500,9 @@ "selectCategories": "Select categories to enable or disable", "selectRow": "Select row {value}", "selectTags": "Select tags to enable or disable", + "selectableTableAriaLabel": "Selectable table", + "selectableTableHeaderAriaLabel": "Select to open the optimizations drawer", + "selectableTableRowAriaLabel": "Selectable table row", "selected": "{value} selected", "settingsErrorDesc": "Failed to update settings", "settingsErrorTitle": "Unable to save application settings", diff --git a/src/locales/messages.ts b/src/locales/messages.ts index 6780ef9b0..49d176a29 100644 --- a/src/locales/messages.ts +++ b/src/locales/messages.ts @@ -3092,6 +3092,21 @@ export default defineMessages({ description: 'Select tags to enable or disable', id: 'selectTags', }, + selectableTableAriaLabel: { + defaultMessage: 'Selectable table', + description: 'Selectable table', + id: 'selectableTableAriaLabel', + }, + selectableTableHeaderAriaLabel: { + defaultMessage: 'Select to open the optimizations drawer', + description: 'Select to open the optimizations drawer', + id: 'selectableTableHeaderAriaLabel', + }, + selectableTableRowAriaLabel: { + defaultMessage: 'Selectable table row', + description: 'Selectable table row', + id: 'selectableTableRowAriaLabel', + }, selected: { defaultMessage: '{value} selected', description: '{value} selected', diff --git a/src/routes/components/dataTable/dataTable.tsx b/src/routes/components/dataTable/dataTable.tsx index 4a54124d4..5e67b4a4d 100644 --- a/src/routes/components/dataTable/dataTable.tsx +++ b/src/routes/components/dataTable/dataTable.tsx @@ -8,7 +8,6 @@ import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; -import { NoOptimizationsState } from 'routes/components/page/noOptimizations/noOptimizationsState'; import { EmptyFilterState } from 'routes/components/state/emptyFilterState'; import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; import type { RouterComponentProps } from 'utils/router'; @@ -21,10 +20,8 @@ interface DataTableOwnProps { filterBy: any; isActionsCell?: boolean; isLoading?: boolean; - isOptimizations?: boolean; onSelected(items: ComputedReportItem[], isSelected: boolean); onSort(value: string, isSortAscending: boolean); - onRowClick(event: React.KeyboardEvent | React.MouseEvent, rowIndex: number); orderBy: any; rows?: any[]; selectedItems?: ComputedReportItem[]; @@ -40,7 +37,7 @@ class DataTable extends React.Component { } private getEmptyState = () => { - const { filterBy, intl, isOptimizations } = this.props; + const { filterBy, intl } = this.props; if (filterBy) { for (const val of Object.values(filterBy)) { @@ -49,9 +46,6 @@ class DataTable extends React.Component { } } } - if (isOptimizations) { - return ; - } return ( @@ -113,21 +107,8 @@ class DataTable extends React.Component { } }; - private handleOnRowClick = (event, rowIndex) => { - const { onRowClick, rows } = this.props; - - rows.map(row => (row.selected = false)); - rows[rowIndex].selected = true; - - this.setState({ rows }, () => { - if (onRowClick) { - onRowClick(event, rowIndex); - } - }); - }; - public render() { - const { columns, intl, isActionsCell = false, isLoading, isOptimizations, rows } = this.props; + const { columns, intl, isActionsCell = false, isLoading, rows } = this.props; return ( <> @@ -135,7 +116,6 @@ class DataTable extends React.Component { aria-label={intl.formatMessage(messages.dataTableAriaLabel)} className="tableOverride" gridBreakPoint="grid-2xl" - hasSelectableRowCaption={isOptimizations} variant={TableVariant.compact} > @@ -165,15 +145,9 @@ class DataTable extends React.Component { ) : ( rows.map((row, rowIndex) => ( - this.handleOnRowClick(_event, rowIndex) : undefined} - key={`row-${rowIndex}`} - > + {row.cells.map((item, cellIndex) => - cellIndex === 0 && !isOptimizations ? ( + cellIndex === 0 ? ( { + constructor(props: SelectableTableProps) { + super(props); + this.handleOnSort = this.handleOnSort.bind(this); + } + + private getEmptyState = () => { + const { emptyState, filterBy, intl } = this.props; + + if (filterBy) { + for (const val of Object.values(filterBy)) { + if (val !== '*') { + return ; + } + } + } + // Return custom empty state + if (emptyState) { + return emptyState; + } + return ( + + + {intl.formatMessage(messages.detailsEmptyState)} + + ); + }; + + private getSortBy = index => { + const { columns, orderBy } = this.props; + + const direction = orderBy && orderBy[columns[index].orderBy]; + + return direction + ? { + index, + direction, + } + : {}; + }; + + private getSortParams = (index: number): ThProps['sort'] => { + return { + sortBy: this.getSortBy(index), + onSort: this.handleOnSort, + columnIndex: index, + }; + }; + + private handleOnSort = (event, index, direction) => { + const { columns, onSort } = this.props; + + if (onSort) { + const orderBy = columns[index].orderBy; + const isSortAscending = direction === SortByDirection.asc; + onSort(orderBy, isSortAscending); + } + }; + + private handleOnRowClick = (event, rowIndex) => { + const { onRowClick, rows } = this.props; + + rows.map(row => (row.selected = false)); + rows[rowIndex].selected = true; + + this.setState({ rows }, () => { + if (onRowClick) { + onRowClick(event, rowIndex); + } + }); + }; + + public render() { + const { columns, intl, isLoading, rows } = this.props; + + return ( + <> + + + + {columns.map((col, index) => ( + + {col.name} + + ))} + + + + {isLoading ? ( + + + +
+ +
+
+ + + ) : ( + rows.map((row, rowIndex) => ( + this.handleOnRowClick(_event, rowIndex)} + key={`row-${rowIndex}`} + > + {row.cells.map((item, cellIndex) => + cellIndex === 0 ? ( + + {item.value} + + ) : ( + + {item.value} + + ) + )} + + )) + )} + +
+ {rows.length === 0 &&
{this.getEmptyState()}
} + + ); + } +} + +export default injectIntl(withRouter(SelectableTable)); diff --git a/src/routes/components/optimizations/optimizationsTable.tsx b/src/routes/components/optimizations/optimizationsTable.tsx index 6d50e7ed9..77bee5669 100644 --- a/src/routes/components/optimizations/optimizationsTable.tsx +++ b/src/routes/components/optimizations/optimizationsTable.tsx @@ -8,8 +8,9 @@ import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import { DataTable } from 'routes/components/dataTable'; +import { SelectableTable } from 'routes/components/dataTable'; import { styles } from 'routes/components/dataTable/dataTable.styles'; +import { NoOptimizationsState } from 'routes/components/page/noOptimizations/noOptimizationsState'; import { getGroupById } from 'routes/utils/groupBy'; import { createMapStateToProps } from 'store/common'; import { uiActions, uiSelectors } from 'store/ui'; @@ -177,8 +178,9 @@ class OptimizationsTableBase extends React.Component} filterBy={filterBy} isLoading={isLoading} isOptimizations From 7b3f86ab25ff375fe0bd6e99dc9bec05c6f9008b Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 24 May 2023 09:59:31 -0400 Subject: [PATCH 13/43] Refactor dataToolbar to reuse existing functionality in basicToolbar https://issues.redhat.com/browse/COST-3846 --- .../components/dataToolbar/basicToolbar.tsx | 339 ++++ .../components/dataToolbar/dataToolbar.tsx | 1404 +++++------------ src/routes/components/dataToolbar/index.ts | 1 + .../components/dataToolbar/utils/actions.tsx | 112 ++ .../dataToolbar/utils/bulkSelect.tsx | 86 + .../components/dataToolbar/utils/category.tsx | 281 ++++ .../components/dataToolbar/utils/common.ts | 163 ++ .../dataToolbar/utils/costCategory.tsx | 249 +++ .../components/dataToolbar/utils/exclude.tsx | 74 + .../dataToolbar/utils/orgUntits.tsx | 165 ++ .../components/dataToolbar/utils/tags.tsx | 236 +++ .../optimizations/optimizationsToolbar.tsx | 4 +- src/routes/explorer/explorerFilter.scss | 7 + src/routes/explorer/explorerFilter.styles.ts | 2 - src/routes/explorer/explorerFilter.tsx | 4 + .../costCategory/costCategoryToolbar.tsx | 4 +- src/routes/settings/tagDetails/tagToolbar.tsx | 4 +- 17 files changed, 2093 insertions(+), 1042 deletions(-) create mode 100644 src/routes/components/dataToolbar/basicToolbar.tsx create mode 100644 src/routes/components/dataToolbar/utils/actions.tsx create mode 100644 src/routes/components/dataToolbar/utils/bulkSelect.tsx create mode 100644 src/routes/components/dataToolbar/utils/category.tsx create mode 100644 src/routes/components/dataToolbar/utils/common.ts create mode 100644 src/routes/components/dataToolbar/utils/costCategory.tsx create mode 100644 src/routes/components/dataToolbar/utils/exclude.tsx create mode 100644 src/routes/components/dataToolbar/utils/orgUntits.tsx create mode 100644 src/routes/components/dataToolbar/utils/tags.tsx create mode 100644 src/routes/explorer/explorerFilter.scss diff --git a/src/routes/components/dataToolbar/basicToolbar.tsx b/src/routes/components/dataToolbar/basicToolbar.tsx new file mode 100644 index 000000000..e3e1521a6 --- /dev/null +++ b/src/routes/components/dataToolbar/basicToolbar.tsx @@ -0,0 +1,339 @@ +import './dataToolbar.scss'; + +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import { Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem, ToolbarToggleGroup } from '@patternfly/react-core'; +import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon'; +import type { Query } from 'api/queries/query'; +import type { Resource, ResourcePathsType } from 'api/resources/resource'; +import { cloneDeep } from 'lodash'; +import React from 'react'; +import type { WrappedComponentProps } from 'react-intl'; +import { injectIntl } from 'react-intl'; +import { connect } from 'react-redux'; +import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; +import { isEqual } from 'routes/utils/equal'; +import type { Filter } from 'routes/utils/filter'; +import { createMapStateToProps } from 'store/common'; + +import { styles } from './dataToolbar.styles'; +import { getBulkSelect } from './utils/bulkSelect'; +import type { CategoryOption } from './utils/category'; +import { + getCategoryInput, + getCategorySelect, + getDefaultCategoryOptions, + onCategoryInput, + onCategoryInputSelect, + onWorkloadTypeSelect, +} from './utils/category'; +import type { Filters } from './utils/common'; +import { cleanInput, defaultFilters, getActiveFilters, getDefaultCategory, onDelete } from './utils/common'; + +interface BasicToolbarOwnProps { + actions?: React.ReactNode; + categoryOptions?: ToolbarChipGroup[]; // Options for category menu + groupBy?: string; // Sync category selection with groupBy value + isAllSelected?: boolean; + isBulkSelectDisabled?: boolean; + isDisabled?: boolean; + itemsPerPage?: number; + itemsTotal?: number; + onBulkSelected?: (action: string) => void; + onFilterAdded?: (filter: Filter) => void; + onFilterRemoved?: (filterType: Filter) => void; + pagination?: React.ReactNode; // Optional pagination controls to display in toolbar + query?: Query; // Query containing filter_by params used to restore state upon page refresh + resourcePathsType?: ResourcePathsType; + resourceReport?: Resource; + selectedItems?: ComputedReportItem[]; + showBulkSelect?: boolean; // Show bulk select + showFilter?: boolean; // Show export icon + style?: React.CSSProperties; +} + +interface BasicToolbarState { + categoryInput?: string; + currentCategory?: string; + filters?: Filters; + isBulkSelectOpen?: boolean; + isCategorySelectOpen?: boolean; +} + +interface BasicToolbarStateProps { + // TBD... +} + +type BasicToolbarProps = BasicToolbarOwnProps & BasicToolbarStateProps & WrappedComponentProps; + +export class BasicToolbarBase extends React.Component { + protected defaultState: BasicToolbarState = { + categoryInput: '', + filters: cloneDeep(defaultFilters), + isBulkSelectOpen: false, + isCategorySelectOpen: false, + }; + public state: BasicToolbarState = { ...this.defaultState }; + + public componentDidMount() { + const { categoryOptions, groupBy, query } = this.props; + + this.setState({ + currentCategory: getDefaultCategory(categoryOptions, groupBy, query), + }); + } + + public componentDidUpdate(prevProps: BasicToolbarProps) { + const { categoryOptions, groupBy, query, resourceReport } = this.props; + + if ( + groupBy !== prevProps.groupBy || + (categoryOptions && !isEqual(categoryOptions, prevProps.categoryOptions)) || + (query && !isEqual(query, prevProps.query)) || + (resourceReport && !isEqual(resourceReport, prevProps.resourceReport)) + ) { + this.setState(() => { + const filters = getActiveFilters(query); + return categoryOptions !== prevProps.categoryOptions || prevProps.groupBy !== groupBy + ? { + categoryInput: '', + currentCategory: getDefaultCategory(categoryOptions, groupBy, query), + filters, + } + : { + filters, + }; + }); + } + } + + // Common + + private handleOnDelete = (type: any, chip: any) => { + const { onFilterRemoved } = this.props; + const { filters: currentFilters } = this.state; + + const { filter, filters } = onDelete(type, chip, currentFilters); + + this.setState({ filters }, () => { + if (onFilterRemoved) { + onFilterRemoved(filter); + } + }); + }; + + // Bulk select + + public getBulkSelectComponent = () => { + const { isAllSelected, isBulkSelectDisabled, isDisabled, itemsPerPage, itemsTotal, selectedItems } = this.props; + const { isBulkSelectOpen } = this.state; + + return getBulkSelect({ + handleOnBulkSelect: this.handleOnBulkSelect, + handleOnBulkSelectClicked: this.handleOnBulkSelectClicked, + handleOnBulkSelectToggle: this.handleOnBulkSelectToggle, + isAllSelected, + isBulkSelectDisabled, + isBulkSelectOpen, + isDisabled, + itemsPerPage, + itemsTotal, + selectedItems, + }); + }; + + private handleOnBulkSelectClicked = (action: string) => { + const { onBulkSelected } = this.props; + + if (onBulkSelected) { + onBulkSelected(action); + } + }; + + private handleOnBulkSelect = () => { + this.setState({ + isBulkSelectOpen: !this.state.isBulkSelectOpen, + }); + }; + + private handleOnBulkSelectToggle = isOpen => { + this.setState({ + isBulkSelectOpen: isOpen, + }); + }; + + // Category select + + public getCategorySelectComponent() { + const { categoryOptions, isDisabled } = this.props; + const { currentCategory, filters, isCategorySelectOpen } = this.state; + + return getCategorySelect({ + categoryOptions, + currentCategory, + isDisabled, + filters, + handleOnCategorySelect: this.handleOnCategorySelect, + handleOnCategoryToggle: this.handleOnCategoryToggle, + isCategorySelectOpen, + }); + } + + private handleOnCategorySelect = (event, selection: CategoryOption) => { + this.setState({ + categoryInput: '', + currentCategory: selection.value, + isCategorySelectOpen: !this.state.isCategorySelectOpen, + }); + }; + + private handleOnCategoryToggle = isOpen => { + this.setState({ + isCategorySelectOpen: isOpen, + }); + }; + + // Category input + + public getCategoryInputComponent = (categoryOption: ToolbarChipGroup) => { + const { isDisabled, resourcePathsType } = this.props; + const { categoryInput, currentCategory, filters } = this.state; + + return getCategoryInput({ + categoryInput, + categoryOption, + currentCategory, + filters, + handleOnCategoryInput: this.handleOnCategoryInput, + handleOnCategoryInputChange: this.handleOnCategoryInputChange, + handleOnCategoryInputSelect: this.handleOnCategoryInputSelect, + handleOnDelete: this.handleOnDelete, + handleOnWorkloadTypeSelect: this.handleOnWorkloadTypeSelect, + isDisabled, + resourcePathsType, + }); + }; + + private handleOnCategoryInputChange = (value: string) => { + const val = cleanInput(value); + this.setState({ categoryInput: val }); + }; + + private handleOnCategoryInput = (event, key) => { + const { onFilterAdded } = this.props; + const { categoryInput, currentCategory, filters: currentFilters } = this.state; + + const { filter, filters } = onCategoryInput({ + categoryInput, + currentCategory, + currentFilters, + event, + key, + }); + + this.setState( + { + filters, + categoryInput: '', + }, + () => { + if (onFilterAdded) { + onFilterAdded(filter); + } + } + ); + }; + + private handleOnCategoryInputSelect = (value, key) => { + const { onFilterAdded } = this.props; + const { currentCategory, filters: currentFilters } = this.state; + + const { filter, filters } = onCategoryInputSelect({ + currentCategory, + currentFilters, + key, + value, + }); + + this.setState( + { + filters, + }, + () => { + if (onFilterAdded) { + onFilterAdded(filter); + } + } + ); + }; + + private handleOnWorkloadTypeSelect = (event, selection) => { + const { onFilterAdded, onFilterRemoved } = this.props; + const { currentCategory, filters: currentFilters } = this.state; + + const { filter, filters } = onWorkloadTypeSelect({ + currentCategory, + currentFilters, + event, + selection, + }); + + this.setState( + { + filters, + }, + () => { + if (event.target.checked) { + if (onFilterAdded) { + onFilterAdded(filter); + } + } else { + if (onFilterRemoved) { + onFilterRemoved(filter); + } + } + } + ); + }; + + public render() { + const { actions, categoryOptions, pagination, showBulkSelect, showFilter, style } = this.props; + const options = categoryOptions ? categoryOptions : getDefaultCategoryOptions(); + + // Todo: clearAllFilters workaround https://github.com/patternfly/patternfly-react/issues/4222 + return ( +
+ + + {showBulkSelect && {this.getBulkSelectComponent()}} + {showFilter && ( + }> + + {this.getCategorySelectComponent()} + {options && options.map(option => this.getCategoryInputComponent(option))} + + + )} + {actions && {actions}} + + {pagination} + + + +
+ ); + } +} + +const mapStateToProps = createMapStateToProps(() => { + return { + // TBD... + }; +}); + +const BasicToolbar = injectIntl(connect(mapStateToProps, {})(BasicToolbarBase)); + +export default BasicToolbar; diff --git a/src/routes/components/dataToolbar/dataToolbar.tsx b/src/routes/components/dataToolbar/dataToolbar.tsx index 48731d505..3554a0be5 100644 --- a/src/routes/components/dataToolbar/dataToolbar.tsx +++ b/src/routes/components/dataToolbar/dataToolbar.tsx @@ -1,71 +1,53 @@ import './dataToolbar.scss'; -import type { SelectOptionObject, ToolbarChipGroup } from '@patternfly/react-core'; -import { - Button, - ButtonVariant, - Dropdown, - DropdownItem, - DropdownPosition, - DropdownToggle, - DropdownToggleCheckbox, - InputGroup, - Select, - SelectOption, - SelectVariant, - Switch, - TextInput, - Toolbar, - ToolbarContent, - ToolbarFilter, - ToolbarGroup, - ToolbarItem, - ToolbarToggleGroup, -} from '@patternfly/react-core'; -import { ExportIcon } from '@patternfly/react-icons/dist/esm/icons/export-icon'; +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import { Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem, ToolbarToggleGroup } from '@patternfly/react-core'; import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon'; -import { SearchIcon } from '@patternfly/react-icons/dist/esm/icons/search-icon'; import type { Org } from 'api/orgs/org'; import type { Query } from 'api/queries/query'; -import type { Resource, ResourcePathsType, ResourceType } from 'api/resources/resource'; -import { isResourceTypeValid } from 'api/resources/resourceUtils'; +import type { Resource, ResourcePathsType } from 'api/resources/resource'; import type { Tag } from 'api/tags/tag'; import type { TagPathsType } from 'api/tags/tag'; -import messages from 'locales/messages'; import { cloneDeep } from 'lodash'; -import { uniq, uniqBy } from 'lodash'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import { ResourceTypeahead } from 'routes/components/resourceTypeahead'; import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; import { isEqual } from 'routes/utils/equal'; import type { Filter } from 'routes/utils/filter'; import { createMapStateToProps } from 'store/common'; -import { - awsCategoryKey, - awsCategoryPrefix, - orgUnitIdKey, - orgUnitNameKey, - platformCategoryKey, - tagKey, - tagPrefix, -} from 'utils/props'; - -import { CostCategoryValue } from './costCategoryValue'; -import { DataKebab } from './dataKebab'; -import { styles } from './dataToolbar.styles'; -import { TagValue } from './tagValue'; -import { WorkloadType } from './workloadType'; +import { awsCategoryKey, orgUnitIdKey, platformCategoryKey, tagKey } from 'utils/props'; -interface Filters { - [key: string]: Filter[] | { [key: string]: Filter[] }; -} +import { styles } from './dataToolbar.styles'; +import { getColumnManagement, getExportButton, getKebab, getPlatformCosts } from './utils/actions'; +import { getBulkSelect } from './utils/bulkSelect'; +import type { CategoryOption } from './utils/category'; +import { + getCategoryInput, + getCategorySelect, + getDefaultCategoryOptions, + onCategoryInput, + onCategoryInputSelect, + onWorkloadTypeSelect, +} from './utils/category'; +import type { Filters } from './utils/common'; +import { cleanInput, defaultFilters, getActiveFilters, getDefaultCategory, onDelete } from './utils/common'; +import { + getCostCategoryKeyOptions, + getCostCategoryKeySelect, + getCostCategoryValueSelect, + onCostCategoryValueInput, + onCostCategoryValueSelect, +} from './utils/costCategory'; +import type { ExcludeOption } from './utils/exclude'; +import { ExcludeType, getExcludeSelect } from './utils/exclude'; +import { getOrgUnitSelect, onOrgUnitSelect } from './utils/orgUntits'; +import { getTagKeyOptions, getTagKeySelect, getTagValueSelect, onTagValueInput, onTagValueSelect } from './utils/tags'; interface DataToolbarOwnProps { - actions?: React.ReactNode; categoryOptions?: ToolbarChipGroup[]; // Options for category menu + className?: string; dateRange?: React.ReactNode; // Optional date range controls to display in toolbar datePicker?: React.ReactNode; // Optional date picker controls to display in toolbar groupBy?: string; // Sync category selection with groupBy value @@ -104,9 +86,7 @@ interface DataToolbarState { currentCategory?: string; currentExclude?: string; currentCostCategoryKey?: string; - currentOrgUnit?: string; currentTagKey?: string; - currentWorkloadType?: string; filters?: Filters; isBulkSelectOpen?: boolean; isCategorySelectOpen?: boolean; @@ -124,34 +104,8 @@ interface DataToolbarStateProps { // TBD... } -interface GroupByOrgOption extends SelectOptionObject { - toString(): string; // label - id?: string; -} - -interface CategoryOption extends SelectOptionObject { - toString(): string; // label - value?: string; -} - -interface ExcludeOption extends SelectOptionObject { - toString(): string; // label - value?: string; -} - type DataToolbarProps = DataToolbarOwnProps & DataToolbarStateProps & WrappedComponentProps; -const defaultFilters = { - [awsCategoryKey]: {}, - tag: {}, -}; - -// eslint-disable-next-line no-shadow -const enum ExcludeType { - exclude = 'exclude', - include = 'include', -} - export class DataToolbarBase extends React.Component { protected defaultState: DataToolbarState = { categoryInput: '', @@ -170,8 +124,10 @@ export class DataToolbarBase extends React.Component { - const filters = this.getActiveFilters(query); + const filters = getActiveFilters(query); return categoryOptions !== prevProps.categoryOptions || prevProps.groupBy !== groupBy ? { categoryInput: '', costCategoryKeyValueInput: '', - currentCategory: this.getDefaultCategory(), + currentCategory: getDefaultCategory(categoryOptions, groupBy, query), currentCostCategoryKey: '', - currentOrgUnit: '', currentTagKey: '', - currentWorkloadType: '', filters, tagKeyValueInput: '', ...(prevProps.groupBy !== groupBy && { isPlatformCostsChecked: false }), @@ -209,227 +163,39 @@ export class DataToolbarBase extends React.Component { - const { categoryOptions, groupBy, query } = this.props; - - if (!categoryOptions) { - return 'name'; - } - if (query && query.group_by && query.group_by[orgUnitIdKey]) { - return orgUnitIdKey; - } - for (const option of categoryOptions) { - if (groupBy === option.key || (groupBy && groupBy.indexOf(tagPrefix) !== -1 && option.key === tagKey)) { - return option.key; - } - } - return categoryOptions[0].key; - }; - - private getFilter = (filterType: string, filterValue: string, isExcludes = false): Filter => { - return { type: filterType, value: filterValue, isExcludes }; - }; + private handleOnDelete = (type: any, chip: any) => { + const { onFilterRemoved } = this.props; + const { filters: currentFilters } = this.state; - private getFilters = (filterType: string, filterValues: string[], isExcludes = false): Filter[] => { - return filterValues.map(value => this.getFilter(filterType, value, isExcludes)); - }; - - private getActiveFilters = query => { - const filters = cloneDeep(defaultFilters); + const { filter, filters } = onDelete(type, chip, currentFilters); - const parseFilters = (key, values, isExcludes = false) => { - if (key.indexOf(tagPrefix) !== -1) { - if (filters.tag[key.substring(tagPrefix.length)]) { - filters.tag[key.substring(tagPrefix.length)] = [ - ...filters.tag[key.substring(tagPrefix.length)], - ...this.getFilters(key, values, isExcludes), - ]; - } else { - filters.tag[key.substring(tagPrefix.length)] = this.getFilters(key, values, isExcludes); - } - } else if (key.indexOf(awsCategoryPrefix) !== -1) { - if (filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)]) { - filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)] = [ - ...filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)], - ...this.getFilters(key, values, isExcludes), - ]; - } else { - filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)] = this.getFilters(key, values, isExcludes); - } - } else if (filters[key]) { - filters[key] = [...filters[key], ...this.getFilters(key, values, isExcludes)]; - } else { - filters[key] = this.getFilters(key, values, isExcludes); + this.setState({ filters }, () => { + if (onFilterRemoved) { + onFilterRemoved(filter); } - }; - - if (query && query.filter_by) { - Object.keys(query.filter_by).forEach(key => { - const values = Array.isArray(query.filter_by[key]) ? [...query.filter_by[key]] : [query.filter_by[key]]; - parseFilters(key, values); - }); - } - if (query && query.exclude) { - Object.keys(query.exclude).forEach(key => { - const values = Array.isArray(query.exclude[key]) ? [...query.exclude[key]] : [query.exclude[key]]; - parseFilters(key, values, true); - }); - } - return filters; - }; - - private getChips = (filters: Filter[]): string[] => { - const { intl } = this.props; - - const chips = []; - if (filters) { - filters.forEach(item => { - chips.push({ - key: item.value, - node: item.isExcludes ? intl.formatMessage(messages.excludeLabel, { value: item.value }) : item.value, - }); - }); - } - return chips; - }; - - private onDelete = (type: any, chip: any) => { - const { intl } = this.props; - const { filters } = this.state; - - // Todo: workaround for https://github.com/patternfly/patternfly-react/issues/3552 - // This prevents us from using a localized string, if necessary - let _type = type && type.key ? type.key : type; - if (_type && _type.indexOf(tagPrefix) !== -1) { - _type = _type.slice(tagPrefix.length); - } - - if (_type) { - const excludePrefix = intl.formatMessage(messages.excludeLabel, { value: '' }); - let id = chip && chip.key ? chip.key : chip; - if (id && id.indexOf(excludePrefix) !== -1) { - const isExcludes = id ? id.indexOf(excludePrefix) !== -1 : false; - id = isExcludes ? id.slice(excludePrefix.length) : id; - } - - let filter; - if (filters.tag[_type]) { - filter = filters.tag[_type].find(item => item.value === id); - } else if (filters[awsCategoryKey][_type]) { - filter = filters[awsCategoryKey][_type].find(item => item.value === id); - } else if (filters[_type]) { - filter = (filters[_type] as Filter[]).find(item => item.value === id); - } - - this.setState( - (prevState: any) => { - if (prevState.filters.tag[_type]) { - // Todo: use ID - prevState.filters.tag[_type] = prevState.filters.tag[_type].filter(item => item.value !== id); - } else if (prevState.filters[awsCategoryKey][_type]) { - prevState.filters[awsCategoryKey][_type] = prevState.filters[awsCategoryKey][_type].filter( - item => item.value !== id - ); - } else if (prevState.filters[_type]) { - prevState.filters[_type] = prevState.filters[_type].filter(item => item.value !== id); - } - return { - filters: prevState.filters, - }; - }, - () => { - this.props.onFilterRemoved(filter); - } - ); - } else { - this.setState( - { - filters: cloneDeep(defaultFilters), - }, - () => { - this.props.onFilterRemoved(null); // Clear all - } - ); - } - }; - - private hasFilters = () => { - const { filters } = this.state; - - if (filters) { - for (const filterKey of Object.keys(filters)) { - if (filterKey === awsCategoryKey || filterKey === tagKey) { - for (const key of Object.keys(filters[filterKey])) { - if (filters[filterKey][key]) { - return true; - } - } - } else { - return true; - } - } - } - return false; + }); }; // Bulk select - public getBulkSelect = () => { - const { intl, isAllSelected, isBulkSelectDisabled, isDisabled, itemsPerPage, itemsTotal, selectedItems } = - this.props; + public getBulkSelectComponent = () => { + const { isAllSelected, isBulkSelectDisabled, isDisabled, itemsPerPage, itemsTotal, selectedItems } = this.props; const { isBulkSelectOpen } = this.state; - const numSelected = isAllSelected ? itemsTotal : selectedItems ? selectedItems.length : 0; - const allSelected = (isAllSelected || numSelected === itemsTotal) && itemsTotal > 0; - const anySelected = numSelected > 0; - const someChecked = anySelected ? null : false; - const isChecked = allSelected ? true : someChecked; - - const dropdownItems = [ - this.handleOnBulkSelectClicked('none')}> - {intl.formatMessage(messages.toolBarBulkSelectNone)} - , - this.handleOnBulkSelectClicked('page')}> - {intl.formatMessage(messages.toolBarBulkSelectPage, { value: itemsPerPage })} - , - this.handleOnBulkSelectClicked('all')}> - {intl.formatMessage(messages.toolBarBulkSelectAll, { value: itemsTotal })} - , - ]; - - return ( - { - anySelected ? this.handleOnBulkSelectClicked('none') : this.handleOnBulkSelectClicked('all'); - }} - />, - ]} - onToggle={this.handleOnBulkSelectToggle} - > - {numSelected !== 0 && ( - {intl.formatMessage(messages.selected, { value: numSelected })} - )} - - } - isOpen={isBulkSelectOpen} - dropdownItems={dropdownItems} - /> - ); + return getBulkSelect({ + handleOnBulkSelect: this.handleOnBulkSelect, + handleOnBulkSelectClicked: this.handleOnBulkSelectClicked, + handleOnBulkSelectToggle: this.handleOnBulkSelectToggle, + isAllSelected, + isBulkSelectDisabled, + isBulkSelectOpen, + isDisabled, + itemsPerPage, + itemsTotal, + selectedItems, + }); }; private handleOnBulkSelectClicked = (action: string) => { @@ -454,50 +220,20 @@ export class DataToolbarBase extends React.Component option.value === currentCategory); - - return ( - - - - ); - } + const { currentCategory, filters, isCategorySelectOpen } = this.state; - private getCategorySelectOptions = (): CategoryOption[] => { - const { categoryOptions } = this.props; - - const options: CategoryOption[] = []; - - categoryOptions.map(option => { - options.push({ - toString: () => option.name, - value: option.key, - }); + return getCategorySelect({ + categoryOptions, + currentCategory, + isDisabled, + filters, + handleOnCategorySelect: this.handleOnCategorySelect, + handleOnCategoryToggle: this.handleOnCategoryToggle, + isCategorySelectOpen, }); - return options; - }; + } private handleOnCategorySelect = (event, selection: CategoryOption) => { this.setState({ @@ -505,7 +241,6 @@ export class DataToolbarBase extends React.Component { - const { intl, isDisabled, resourcePathsType } = this.props; - const { categoryInput, currentCategory, filters } = this.state; - - return ( - - - {categoryOption.key === 'workload_type' ? ( - filter.value) : [] - } - /> - ) : isResourceTypeValid(resourcePathsType, categoryOption.key as ResourceType) ? ( - this.onCategoryInputSelect(value, categoryOption.key)} - placeholder={intl.formatMessage(messages.filterByPlaceholder, { value: categoryOption.key })} - resourcePathsType={resourcePathsType} - resourceType={categoryOption.key as ResourceType} - /> - ) : ( - <> - this.onCategoryInput(evt, categoryOption.key)} - size={intl.formatMessage(messages.filterByPlaceholder, { value: categoryOption.key }).length} - /> - - - )} - - - ); - }; - - private getDefaultCategoryOptions = (): ToolbarChipGroup[] => { - const { intl } = this.props; - return [{ name: intl.formatMessage(messages.names, { count: 1 }), key: 'name' }]; - }; + public getCategoryInputComponent = (categoryOption: ToolbarChipGroup) => { + const { isDisabled, resourcePathsType } = this.props; + const { categoryInput, currentCategory, filters } = this.state; - // Remove trailing commas -- see https://issues.redhat.com/browse/COST-3641 - private cleanInput = (value: string) => { - const val = value.replace(/,*$/g, '').replace(/&*$/g, ''); - return val; + return getCategoryInput({ + categoryInput, + categoryOption, + currentCategory, + filters, + handleOnCategoryInput: this.handleOnCategoryInput, + handleOnCategoryInputChange: this.handleOnCategoryInputChange, + handleOnCategoryInputSelect: this.handleOnCategoryInputSelect, + handleOnDelete: this.handleOnDelete, + handleOnWorkloadTypeSelect: this.handleOnWorkloadTypeSelect, + isDisabled, + resourcePathsType, + }); }; private handleOnCategoryInputChange = (value: string) => { - const val = this.cleanInput(value); + const val = cleanInput(value); this.setState({ categoryInput: val }); }; - private onCategoryInput = (event, key) => { - const { categoryInput, currentCategory, currentExclude } = this.state; - - if (event && event.key && event.key !== 'Enter') { - return; - } + private handleOnCategoryInput = (event, key) => { + const { onFilterAdded } = this.props; + const { categoryInput, currentCategory, currentExclude, filters: currentFilters } = this.state; - const val = this.cleanInput(categoryInput); - if (val.trim() === '') { - return; - } + const { filter, filters } = onCategoryInput({ + categoryInput, + currentCategory, + currentExclude, + currentFilters, + event, + key, + }); - const isExcludes = currentExclude === ExcludeType.exclude; - const filter = this.getFilter(currentCategory, val, isExcludes); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[key] ? prevState.filters[key] : []; - return { - filters: { - ...prevState.filters, - [currentCategory]: - prevItems && prevItems.find(item => item.value === val) - ? prevItems - : prevItems - ? [...prevItems, filter] - : [filter], - }, - categoryInput: '', - }; + { + filters, + categoryInput: '', }, () => { - this.props.onFilterAdded(filter); + if (onFilterAdded) { + onFilterAdded(filter); + } } ); }; - private onCategoryInputSelect = (value, key) => { - const { currentCategory, currentExclude } = this.state; + private handleOnCategoryInputSelect = (value, key) => { + const { onFilterAdded } = this.props; + const { currentCategory, currentExclude, filters: currentFilters } = this.state; - const val = this.cleanInput(value); - if (val.trim() === '') { - return; - } + const { filter, filters } = onCategoryInputSelect({ + currentCategory, + currentExclude, + currentFilters, + key, + value, + }); - const isExcludes = currentExclude === ExcludeType.exclude; - const filter = this.getFilter(currentCategory, val, isExcludes); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[key] ? prevState.filters[key] : []; - return { - filters: { - ...prevState.filters, - [currentCategory]: - prevItems && prevItems.find(item => item.value === val) - ? prevItems - : prevItems - ? [...prevItems, filter] - : [filter], - }, - }; + { + filters, }, () => { - this.props.onFilterAdded(filter); + if (onFilterAdded) { + onFilterAdded(filter); + } } ); }; private handleOnWorkloadTypeSelect = (event, selection) => { - const { currentCategory } = this.state; + const { onFilterAdded, onFilterRemoved } = this.props; + const { currentCategory, filters: currentFilters } = this.state; + + const { filter, filters } = onWorkloadTypeSelect({ + currentCategory, + currentFilters, + event, + selection, + }); - const checked = event.target.checked; - const filter = this.getFilter(currentCategory, selection); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[currentCategory] ? prevState.filters[currentCategory] : []; - const filters = { - ...prevState.filters, - [currentCategory]: checked ? [...prevItems, filter] : prevItems.filter(item => item.value !== filter.value), - }; - return { - filters, - }; + { + filters, }, () => { - if (checked) { - this.props.onFilterAdded(filter); + if (event.target.checked) { + if (onFilterAdded) { + onFilterAdded(filter); + } } else { - this.props.onFilterRemoved(filter); + if (onFilterRemoved) { + onFilterRemoved(filter); + } } } ); @@ -688,79 +358,23 @@ export class DataToolbarBase extends React.Component { - const { intl, isDisabled } = this.props; - const { currentCategory, currentCostCategoryKey, isCostCategoryKeySelectExpanded } = this.state; - - if (currentCategory !== awsCategoryKey) { - return null; - } - - const selectOptions = this.getCostCategoryKeyOptions().map(selectOption => { - return ; + public getCostCategoryKeySelectComponent = () => { + const { isDisabled, resourceReport } = this.props; + const { currentCategory, currentCostCategoryKey, filters, isCostCategoryKeySelectExpanded } = this.state; + + return getCostCategoryKeySelect({ + currentCategory, + currentCostCategoryKey, + filters, + handleOnCostCategoryKeyClear: this.handleOnCostCategoryKeyClear, + handleOnCostCategoryKeySelect: this.handleOnCostCategoryKeySelect, + handleOnCostCategoryKeyToggle: this.handleOnCostCategoryKeyToggle, + isCostCategoryKeySelectExpanded, + isDisabled, + resourceReport, }); - - return ( - - - - ); }; - private getCostCategoryKeyOptions(): ToolbarChipGroup[] { - const { resourceReport } = this.props; - - let data = []; - let options = []; - - if (!(resourceReport && resourceReport.data)) { - return options; - } - - // If the key_only param is used, we have an array of strings - let hasKeys = false; - for (const item of resourceReport.data) { - if (item.hasOwnProperty('key')) { - hasKeys = true; - break; - } - } - - // Workaround for https://github.com/project-koku/koku/issues/1797 - if (hasKeys) { - const keepData = resourceReport.data.map( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - ({ type, ...keepProps }: any) => keepProps - ); - data = uniqBy(keepData, 'key'); - } else { - data = uniq(resourceReport.data); - } - - if (data.length > 0) { - options = data.map(item => { - const key = hasKeys ? item.key : item; - return { - key, - name: key, // keys not localized - }; - }); - } - return options; - } - private handleOnCostCategoryKeyClear = () => { this.setState({ currentCostCategoryKey: undefined, @@ -783,124 +397,79 @@ export class DataToolbarBase extends React.Component { + public getCostCategoryValueSelectComponent = (costCategoryKeyOption: ToolbarChipGroup) => { const { isDisabled, resourcePathsType } = this.props; const { currentCategory, currentCostCategoryKey, filters, costCategoryKeyValueInput } = this.state; - // Todo: categoryName workaround for https://issues.redhat.com/browse/COST-2094 - const categoryName = { - name: costCategoryKeyOption.name, - key: `${awsCategoryPrefix}${costCategoryKeyOption.key}`, - }; - - return ( - - filter.value) - : [] - } - /> - - ); + return getCostCategoryValueSelect({ + currentCategory, + currentCostCategoryKey, + costCategoryKeyOption, + costCategoryKeyValueInput, + filters, + handleOnDelete: this.handleOnDelete, + handleOnCostCategoryValueSelect: this.handleOnCostCategoryValueSelect, + handleOnCostCategoryValueInput: this.handleOnCostCategoryValueInput, + handleOnCostCategoryValueInputChange: this.handleOnCostCategoryValueInputChange, + isDisabled, + resourcePathsType, + }); }; - private onCostCategoryValueInputChange = value => { + private handleOnCostCategoryValueInputChange = value => { this.setState({ costCategoryKeyValueInput: value }); }; - private onCostCategoryValueInput = event => { - const { currentExclude, currentCostCategoryKey, costCategoryKeyValueInput } = this.state; + private handleOnCostCategoryValueInput = event => { + const { onFilterAdded } = this.props; + const { currentExclude, currentCostCategoryKey, costCategoryKeyValueInput, filters: currentFilters } = this.state; - if ((event.key && event.key !== 'Enter') || costCategoryKeyValueInput.trim() === '') { - return; - } - - const isExcludes = currentExclude === ExcludeType.exclude; - const filter = this.getFilter( - `${awsCategoryPrefix}${currentCostCategoryKey}`, + const { filter, filters } = onCostCategoryValueInput({ costCategoryKeyValueInput, - isExcludes - ); + currentCostCategoryKey, + currentFilters, + currentExclude, + event, + }); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[awsCategoryKey][currentCostCategoryKey] - ? prevState.filters[awsCategoryKey][currentCostCategoryKey] - : []; - for (const item of prevItems) { - if (item.value === costCategoryKeyValueInput) { - return { - ...prevState.filters, - costCategoryKeyValueInput: '', - }; - } - } - return { - filters: { - ...prevState.filters, - [awsCategoryKey]: { - ...prevState.filters[awsCategoryKey], - [currentCostCategoryKey]: [...prevItems, filter], - }, - }, - costCategoryKeyValueInput: '', - }; + { + filters, + costCategoryKeyValueInput: '', }, () => { - this.props.onFilterAdded(filter); + if (onFilterAdded) { + this.props.onFilterAdded(filter); + } } ); }; - private onCostCategoryValueSelect = (event, selection) => { - const { currentExclude, currentCostCategoryKey, filters } = this.state; + private handleOnCostCategoryValueSelect = (event, selection) => { + const { onFilterAdded, onFilterRemoved } = this.props; + const { currentExclude, currentCostCategoryKey, filters: currentFilters } = this.state; - const checked = event.target.checked; - let filter; - if (checked) { - const isExcludes = currentExclude === ExcludeType.exclude; - filter = this.getFilter(`${awsCategoryPrefix}${currentCostCategoryKey}`, selection, isExcludes); - } else if (filters[awsCategoryKey][currentCostCategoryKey]) { - filter = filters[awsCategoryKey][currentCostCategoryKey].find(item => item.value === selection); - } + const { filter, filters } = onCostCategoryValueSelect({ + currentCostCategoryKey, + currentFilters, + currentExclude, + event, + selection, + }); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[awsCategoryKey][currentCostCategoryKey] - ? prevState.filters[awsCategoryKey][currentCostCategoryKey] - : []; - return { - filters: { - ...prevState.filters, - [awsCategoryKey]: { - ...prevState.filters[awsCategoryKey], - [currentCostCategoryKey]: checked - ? [...prevItems, filter] - : prevItems.filter(item => item.value !== filter.value), - }, - }, - }; + { + filters, }, () => { - if (checked) { - this.props.onFilterAdded(filter); + if (event.target.checked) { + if (onFilterAdded) { + onFilterAdded(filter); + } } else { - this.props.onFilterRemoved(filter); + if (onFilterRemoved) { + onFilterRemoved(filter); + } } } ); @@ -908,49 +477,19 @@ export class DataToolbarBase extends React.Component option.value === currentExclude); - - return ( - - - - ); - } - - private getExcludeSelectOptions = (): ExcludeOption[] => { - const { intl } = this.props; - - const excludeOptions = [ - { name: intl.formatMessage(messages.excludeValues, { value: 'excludes' }), key: ExcludeType.exclude }, - { name: intl.formatMessage(messages.excludeValues, { value: 'includes' }), key: ExcludeType.include }, - ]; - - const options: ExcludeOption[] = []; - excludeOptions.map(option => { - options.push({ - toString: () => option.name, - value: option.key, - }); + const { currentExclude, filters, isExcludeSelectOpen } = this.state; + + return getExcludeSelect({ + currentExclude, + filters, + handleOnExcludeSelect: this.handleOnExcludeSelect, + handleOnExcludeToggle: this.handleOnExcludeToggle, + isDisabled, + isExcludeSelectOpen, }); - return options; - }; + } private handleOnExcludeSelect = (event, selection: ExcludeOption) => { this.setState({ @@ -966,135 +505,46 @@ export class DataToolbarBase extends React.Component { - const { intl, isDisabled } = this.props; + public getOrgUnitSelectComponent = () => { + const { isDisabled, orgReport } = this.props; const { currentCategory, filters, isOrgUnitSelectExpanded } = this.state; - const options: GroupByOrgOption[] = this.getOrgUnitOptions().map(option => ({ - id: option.key, - toString: () => option.name, - compareTo: value => - filters[orgUnitIdKey] ? (filters[orgUnitIdKey] as any).find(filter => filter.value === value.id) : false, - })); - - const chips = []; // Get selected items as PatternFly's ToolbarChip type - const selections = []; // Select options and selections must be same type - if (filters[orgUnitIdKey] && Array.isArray(filters[orgUnitIdKey])) { - (filters[orgUnitIdKey] as any).map(filter => { - const option = options.find(item => item.id === filter.value); - if (option) { - selections.push(option); - chips.push({ - key: option.id, - node: filter.isExcludes - ? intl.formatMessage(messages.excludeLabel, { value: option.toString() }) - : option.toString(), - }); - } - }); - } - - // Todo: selectOverride is a workaround for https://github.com/patternfly/patternfly-react/issues/4477 - // and https://github.com/patternfly/patternfly-react/issues/6371 - return ( - - - - ); - }; - - private getOrgUnitOptions(): ToolbarChipGroup[] { - const { orgReport } = this.props; - - let options = []; - if (!(orgReport && orgReport.data)) { - return options; - } - - // Sort all names first - const sortedData = orgReport.data.sort((a, b) => { - if (a[orgUnitNameKey] < b[orgUnitNameKey]) { - return -1; - } - if (a[orgUnitNameKey] > b[orgUnitNameKey]) { - return 1; - } - return 0; - }); - - // Move roots first - const roots = sortedData.filter(org => org.level === 0); - - const filteredOrgs = sortedData.filter(org => org.level !== 0); - roots.map(root => { - const item = sortedData.find(org => org[orgUnitIdKey] === root[orgUnitIdKey]); - filteredOrgs.unshift(item); + return getOrgUnitSelect({ + currentCategory, + filters, + handleOnDelete: this.handleOnDelete, + handleOnOrgUnitSelect: this.handleOnOrgUnitSelect, + handleOnOrgUnitToggle: this.handleOnOrgUnitToggle, + isDisabled, + isOrgUnitSelectExpanded, + orgReport, }); - - if (filteredOrgs.length > 0) { - options = filteredOrgs.map(org => { - return { - key: org[orgUnitIdKey], - name: org[orgUnitNameKey], - }; - }); - } - return options; - } + }; private handleOnOrgUnitSelect = (event, selection) => { - const { currentExclude, filters } = this.state; - - const checked = event.target.checked; - let filter; - if (checked) { - const isExcludes = currentExclude === ExcludeType.exclude; - filter = this.getFilter(orgUnitIdKey, selection.id, isExcludes); - } else if (filters[orgUnitIdKey]) { - filter = (filters[orgUnitIdKey] as Filter[]).find(item => item.value === selection.id); - } + const { onFilterAdded, onFilterRemoved } = this.props; + const { currentExclude, filters: currentFilters } = this.state; + + const { filter, filters } = onOrgUnitSelect({ + currentExclude, + currentFilters, + event, + selection, + }); this.setState( - (prevState: any) => { - const prevItems = prevState.filters[orgUnitIdKey] ? prevState.filters[orgUnitIdKey] : []; - return { - filters: { - ...prevState.filters, - // tag: { - // ...prevState.filters.tag, - // }, - [orgUnitIdKey]: checked ? [...prevItems, filter] : prevItems.filter(item => item.value !== filter.value), - }, - }; + { + filters, }, () => { - if (checked) { - this.props.onFilterAdded(filter); + if (event.target.checked) { + if (onFilterAdded) { + onFilterAdded(filter); + } } else { - this.props.onFilterRemoved(filter); + if (onFilterRemoved) { + onFilterRemoved(filter); + } } } ); @@ -1108,79 +558,23 @@ export class DataToolbarBase extends React.Component { - const { intl, isDisabled } = this.props; - const { currentCategory, currentTagKey, isTagKeySelectExpanded } = this.state; - - if (currentCategory !== tagKey) { - return null; - } - - const selectOptions = this.getTagKeyOptions().map(selectOption => { - return ; + public getTagKeySelectComponent = () => { + const { isDisabled, tagReport } = this.props; + const { currentCategory, currentTagKey, filters, isTagKeySelectExpanded } = this.state; + + return getTagKeySelect({ + currentCategory, + currentTagKey, + filters, + handleOnTagKeyClear: this.handleOnTagKeyClear, + handleOnTagKeySelect: this.handleOnTagKeySelect, + handleOnTagKeyToggle: this.handleOnTagKeyToggle, + isDisabled, + isTagKeySelectExpanded, + tagReport, }); - - return ( - - - - ); }; - private getTagKeyOptions(): ToolbarChipGroup[] { - const { tagReport } = this.props; - - let data = []; - let options = []; - - if (!(tagReport && tagReport.data)) { - return options; - } - - // If the key_only param is used, we have an array of strings - let hasTagKeys = false; - for (const item of tagReport.data) { - if (item.hasOwnProperty('key')) { - hasTagKeys = true; - break; - } - } - - // Workaround for https://github.com/project-koku/koku/issues/1797 - if (hasTagKeys) { - const keepData = tagReport.data.map( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - ({ type, ...keepProps }: any) => keepProps - ); - data = uniqBy(keepData, 'key'); - } else { - data = uniq(tagReport.data); - } - - if (data.length > 0) { - options = data.map(item => { - const key = hasTagKeys ? item.key : item; - return { - key, - name: key, // tag keys not localized - }; - }); - } - return options; - } - private handleOnTagKeyClear = () => { this.setState({ currentTagKey: undefined, @@ -1203,110 +597,79 @@ export class DataToolbarBase extends React.Component { + public getTagValueSelect = (tagKeyOption: ToolbarChipGroup) => { const { isDisabled, tagPathsType } = this.props; const { currentCategory, currentTagKey, filters, tagKeyValueInput } = this.state; - // Todo: categoryName workaround for https://issues.redhat.com/browse/COST-2094 - const categoryName = { - name: tagKeyOption.name, - key: `${tagPrefix}${tagKeyOption.key}`, - }; - - return ( - - filter.value) : []} - tagKey={currentTagKey} - tagKeyValue={tagKeyValueInput} - tagPathsType={tagPathsType} - /> - - ); + return getTagValueSelect({ + currentCategory, + currentTagKey, + filters, + handleOnDelete: this.handleOnDelete, + handleOnTagValueSelect: this.handleOnTagValueSelect, + handleOnTagValueInput: this.handleOnTagValueInput, + handleOnTagValueInputChange: this.handleOnTagValueInputChange, + isDisabled, + tagKeyOption, + tagPathsType, + tagKeyValueInput, + }); }; - private onTagValueInputChange = value => { + private handleOnTagValueInputChange = value => { this.setState({ tagKeyValueInput: value }); }; - private onTagValueInput = event => { - const { currentExclude, currentTagKey, tagKeyValueInput } = this.state; - - if ((event.key && event.key !== 'Enter') || tagKeyValueInput.trim() === '') { - return; - } + private handleOnTagValueInput = event => { + const { onFilterAdded } = this.props; + const { currentExclude, currentTagKey, filters: currentFilters, tagKeyValueInput } = this.state; - const isExcludes = currentExclude === ExcludeType.exclude; - const filter = this.getFilter(`${tagPrefix}${currentTagKey}`, tagKeyValueInput, isExcludes); + const { filter, filters } = onTagValueInput({ + currentExclude, + currentFilters, + currentTagKey, + event, + tagKeyValueInput, + }); this.setState( - (prevState: any) => { - const prevItems = prevState.filters.tag[currentTagKey] ? prevState.filters.tag[currentTagKey] : []; - for (const item of prevItems) { - if (item.value === tagKeyValueInput) { - return { - ...prevState.filters, - tagKeyValueInput: '', - }; - } - } - return { - filters: { - ...prevState.filters, - tag: { - ...prevState.filters.tag, - [currentTagKey]: [...prevItems, filter], - }, - }, - tagKeyValueInput: '', - }; + { + filters, + tagKeyValueInput: '', }, () => { - this.props.onFilterAdded(filter); + if (onFilterAdded) { + onFilterAdded(filter); + } } ); }; - private onTagValueSelect = (event, selection) => { - const { currentExclude, currentTagKey, filters } = this.state; + private handleOnTagValueSelect = (event, selection) => { + const { onFilterAdded, onFilterRemoved } = this.props; + const { currentExclude, currentTagKey, filters: currentFilters } = this.state; - const checked = event.target.checked; - let filter; - if (checked) { - const isExcludes = currentExclude === ExcludeType.exclude; - filter = this.getFilter(`${tagPrefix}${currentTagKey}`, selection, isExcludes); - } else if (filters.tag[currentTagKey]) { - filter = filters.tag[currentTagKey].find(item => item.value === selection); - } + const { filter, filters } = onTagValueSelect({ + currentExclude, + currentFilters, + currentTagKey, + event, + selection, + }); this.setState( - (prevState: any) => { - const prevItems = prevState.filters.tag[currentTagKey] ? prevState.filters.tag[currentTagKey] : []; - return { - filters: { - ...prevState.filters, - tag: { - ...prevState.filters.tag, - [currentTagKey]: checked ? [...prevItems, filter] : prevItems.filter(item => item.value !== filter.value), - }, - }, - }; + { + filters, }, () => { - if (checked) { - this.props.onFilterAdded(filter); + if (event.target.checked) { + if (onFilterAdded) { + onFilterAdded(filter); + } } else { - this.props.onFilterRemoved(filter); + if (onFilterRemoved) { + onFilterRemoved(filter); + } } } ); @@ -1314,82 +677,13 @@ export class DataToolbarBase extends React.Component { - const { intl, isDisabled } = this.props; - return ( - - - - ); - }; - - // Export button - - public getExportButton = () => { - const { isDisabled, isExportDisabled } = this.props; - - return ( - - - - ); - }; - - // Platform costs - - public getPlatformCosts = () => { - const { intl, isDisabled } = this.props; - const { isPlatformCostsChecked } = this.state; - return ( - - - - ); - }; - - // Kebab - - public getKebab = () => { - const { showColumnManagement, showPlatformCosts } = this.props; - const { isPlatformCostsChecked } = this.state; + public getColumnManagementComponent = () => { + const { isDisabled } = this.props; - const options = []; - if (showColumnManagement) { - options.push({ - label: messages.detailsColumnManagementTitle, - onClick: this.handleColumnManagementClicked, - }); - } - if (showPlatformCosts) { - options.push({ - label: messages.sumPlatformCosts, - onClick: () => this.handlePlatformCostsChanged(!isPlatformCostsChecked), - }); - } - return ( - - - - ); + return getColumnManagement({ + handleColumnManagementClicked: this.handleColumnManagementClicked, + isDisabled, + }); }; private handleColumnManagementClicked = () => { @@ -1399,6 +693,18 @@ export class DataToolbarBase extends React.Component { + const { isDisabled, isExportDisabled } = this.props; + + return getExportButton({ + handleExportClicked: this.handleExportClicked, + isDisabled, + isExportDisabled, + }); + }; + private handleExportClicked = () => { const { onExportClicked } = this.props; if (onExportClicked) { @@ -1406,6 +712,19 @@ export class DataToolbarBase extends React.Component { + const { isDisabled } = this.props; + const { isPlatformCostsChecked } = this.state; + + return getPlatformCosts({ + handlePlatformCostsChanged: this.handlePlatformCostsChanged, + isDisabled, + isPlatformCostsChecked, + }); + }; + private handlePlatformCostsChanged = (checked: boolean) => { const { onPlatformCostsChanged } = this.props; const { isPlatformCostsChecked } = this.state; @@ -1416,13 +735,29 @@ export class DataToolbarBase extends React.Component { + const { showColumnManagement, showPlatformCosts } = this.props; + const { isPlatformCostsChecked } = this.state; + + return getKebab({ + handleColumnManagementClicked: this.handleColumnManagementClicked, + handlePlatformCostsChanged: this.handlePlatformCostsChanged, + isPlatformCostsChecked, + showColumnManagement, + showPlatformCosts, + }); + }; + public render() { const { - actions, categoryOptions, + className, dateRange, datePicker, pagination, + resourceReport, showBulkSelect, showColumnManagement, showExcludes, @@ -1430,44 +765,46 @@ export class DataToolbarBase extends React.Component +
- {showBulkSelect && {this.getBulkSelect()}} + {showBulkSelect && {this.getBulkSelectComponent()}} {showFilter && ( }> - {this.getCategorySelect(hasFilters)} - {showExcludes && this.getExcludeSelect(hasFilters)} - {this.getCostCategoryKeySelect(hasFilters)} - {this.getCostCategoryKeyOptions().map(option => this.getCostCategoryValueSelect(option, hasFilters))} - {this.getTagKeySelect(hasFilters)} - {this.getTagKeyOptions().map(option => this.getTagValueSelect(option, hasFilters))} - {this.getOrgUnitSelect(hasFilters)} + {this.getCategorySelectComponent()} + {showExcludes && this.getExcludeSelectComponent()} + {this.getCostCategoryKeySelectComponent()} + {getCostCategoryKeyOptions(resourceReport).map(option => + this.getCostCategoryValueSelectComponent(option) + )} + {this.getTagKeySelectComponent()} + {getTagKeyOptions(tagReport).map(option => this.getTagValueSelect(option))} + {this.getOrgUnitSelectComponent()} {options && options .filter( option => option.key !== awsCategoryKey && option.key !== tagKey && option.key !== orgUnitIdKey ) - .map(option => this.getCategoryInput(option, hasFilters))} + .map(option => this.getCategoryInputComponent(option))} )} {(showExport || showColumnManagement) && ( - {showColumnManagement && this.getColumnManagement()} - {showPlatformCosts && this.getPlatformCosts()} - {showExport && this.getExportButton()} + {showColumnManagement && this.getColumnManagementComponent()} + {showPlatformCosts && this.getPlatformCostsComponent()} + {showExport && this.getExportButtonComponent()} {(showColumnManagement || showPlatformCosts) && this.getKebab()} )} @@ -1477,7 +814,6 @@ export class DataToolbarBase extends React.Component )} - {actions && {actions}} {pagination} diff --git a/src/routes/components/dataToolbar/index.ts b/src/routes/components/dataToolbar/index.ts index 95a6c4769..0e3d9d128 100644 --- a/src/routes/components/dataToolbar/index.ts +++ b/src/routes/components/dataToolbar/index.ts @@ -1 +1,2 @@ export { default as DataToolbar } from './dataToolbar'; +export { default as BasicToolbar } from './basicToolbar'; diff --git a/src/routes/components/dataToolbar/utils/actions.tsx b/src/routes/components/dataToolbar/utils/actions.tsx new file mode 100644 index 000000000..992f57e4e --- /dev/null +++ b/src/routes/components/dataToolbar/utils/actions.tsx @@ -0,0 +1,112 @@ +import { Button, ButtonVariant, Switch, ToolbarItem } from '@patternfly/react-core'; +import { ExportIcon } from '@patternfly/react-icons/dist/esm/icons/export-icon'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import React from 'react'; +import { DataKebab } from 'routes/components/dataToolbar/dataKebab'; + +// Column management + +export const getColumnManagement = ({ + handleColumnManagementClicked, + isDisabled, +}: { + handleColumnManagementClicked?: () => void; + isDisabled?: boolean; +}) => { + return ( + + + + ); +}; + +// Export button + +export const getExportButton = ({ + handleExportClicked, + isDisabled, + isExportDisabled, +}: { + handleExportClicked?: () => void; + isDisabled?: boolean; + isExportDisabled?: boolean; +}) => { + return ( + + + + ); +}; + +// Platform costs + +export const getPlatformCosts = ({ + handlePlatformCostsChanged, + isDisabled, + isPlatformCostsChecked, +}: { + handlePlatformCostsChanged?: (checked: boolean) => void; + isDisabled?: boolean; + isPlatformCostsChecked?: boolean; +}) => { + return ( + + + + ); +}; + +// Kebab + +export const getKebab = ({ + handleColumnManagementClicked, + handlePlatformCostsChanged, + isPlatformCostsChecked, + showColumnManagement, + showPlatformCosts, +}: { + handleColumnManagementClicked?: () => void; + handlePlatformCostsChanged?: (checked: boolean) => void; + isPlatformCostsChecked?: boolean; + showColumnManagement?: boolean; + showPlatformCosts?: boolean; +}) => { + const options = []; + if (showColumnManagement) { + options.push({ + label: messages.detailsColumnManagementTitle, + onClick: handleColumnManagementClicked, + }); + } + if (showPlatformCosts) { + options.push({ + label: messages.sumPlatformCosts, + onClick: () => handlePlatformCostsChanged(!isPlatformCostsChecked), + }); + } + return ( + + + + ); +}; diff --git a/src/routes/components/dataToolbar/utils/bulkSelect.tsx b/src/routes/components/dataToolbar/utils/bulkSelect.tsx new file mode 100644 index 000000000..0e2e3e89a --- /dev/null +++ b/src/routes/components/dataToolbar/utils/bulkSelect.tsx @@ -0,0 +1,86 @@ +import { + Dropdown, + DropdownItem, + DropdownPosition, + DropdownToggle, + DropdownToggleCheckbox, +} from '@patternfly/react-core'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import React from 'react'; +import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; + +// Bulk select +export const getBulkSelect = ({ + handleOnBulkSelect, + handleOnBulkSelectClicked, + handleOnBulkSelectToggle, + isAllSelected, + isBulkSelectDisabled, + isBulkSelectOpen, + isDisabled, + itemsPerPage, + itemsTotal, + selectedItems, +}: { + handleOnBulkSelect?: () => void; + handleOnBulkSelectClicked?: (action: string) => void; + handleOnBulkSelectToggle?: (isOpen: boolean) => void; + isAllSelected?: boolean; + isBulkSelectDisabled?: boolean; + isBulkSelectOpen?: boolean; + isDisabled?: boolean; + itemsPerPage?: number; + itemsTotal?: number; + selectedItems?: ComputedReportItem[]; +}) => { + const numSelected = isAllSelected ? itemsTotal : selectedItems ? selectedItems.length : 0; + const allSelected = (isAllSelected || numSelected === itemsTotal) && itemsTotal > 0; + const anySelected = numSelected > 0; + const someChecked = anySelected ? null : false; + const isChecked = allSelected ? true : someChecked; + + const dropdownItems = [ + handleOnBulkSelectClicked('none')}> + {intl.formatMessage(messages.toolBarBulkSelectNone)} + , + handleOnBulkSelectClicked('page')}> + {intl.formatMessage(messages.toolBarBulkSelectPage, { value: itemsPerPage })} + , + handleOnBulkSelectClicked('all')}> + {intl.formatMessage(messages.toolBarBulkSelectAll, { value: itemsTotal })} + , + ]; + + return ( + { + anySelected ? handleOnBulkSelectClicked('none') : handleOnBulkSelectClicked('all'); + }} + />, + ]} + onToggle={handleOnBulkSelectToggle} + > + {numSelected !== 0 && ( + {intl.formatMessage(messages.selected, { value: numSelected })} + )} + + } + isOpen={isBulkSelectOpen} + dropdownItems={dropdownItems} + /> + ); +}; diff --git a/src/routes/components/dataToolbar/utils/category.tsx b/src/routes/components/dataToolbar/utils/category.tsx new file mode 100644 index 000000000..79781f02a --- /dev/null +++ b/src/routes/components/dataToolbar/utils/category.tsx @@ -0,0 +1,281 @@ +import type { SelectOptionObject, ToolbarChipGroup } from '@patternfly/react-core'; +import { + Button, + ButtonVariant, + InputGroup, + Select, + SelectOption, + SelectVariant, + TextInput, + ToolbarFilter, + ToolbarItem, +} from '@patternfly/react-core'; +import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon'; +import { SearchIcon } from '@patternfly/react-icons/dist/esm/icons/search-icon'; +import type { ResourceType } from 'api/resources/resource'; +import type { ResourcePathsType } from 'api/resources/resource'; +import { isResourceTypeValid } from 'api/resources/resourceUtils'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import { cloneDeep } from 'lodash'; +import React from 'react'; +import { WorkloadType } from 'routes/components/dataToolbar/workloadType'; +import { ResourceTypeahead } from 'routes/components/resourceTypeahead'; +import type { Filter } from 'routes/utils/filter'; + +import type { Filters } from './common'; +import { cleanInput, getChips, getFilter, hasFilters } from './common'; +import { ExcludeType } from './exclude'; + +export interface CategoryOption extends SelectOptionObject { + toString(): string; // label + value?: string; +} + +// Category input + +export const getCategoryInput = ({ + categoryInput, + categoryOption, + currentCategory, + filters, + handleOnCategoryInput, + handleOnCategoryInputChange, + handleOnCategoryInputSelect, + handleOnDelete, + handleOnWorkloadTypeSelect, + isDisabled, + resourcePathsType, +}: { + categoryInput?: string; + categoryOption?: ToolbarChipGroup; + currentCategory?: string; + filters?: Filters; + handleOnCategoryInput?: (event, key: string) => void; + handleOnCategoryInputChange?: (value: string) => void; + handleOnCategoryInputSelect?: (value: string, key: string) => void; + handleOnDelete?: (type: any, chip: any) => void; + handleOnWorkloadTypeSelect?: (event, selection: string) => void; + isDisabled?: boolean; + resourcePathsType?: ResourcePathsType; +}) => { + const _hasFilters = hasFilters(filters); + + return ( + + + {categoryOption.key === 'workload_type' ? ( + filter.value) : [] + } + /> + ) : isResourceTypeValid(resourcePathsType, categoryOption.key as ResourceType) ? ( + handleOnCategoryInputSelect(value, categoryOption.key)} + placeholder={intl.formatMessage(messages.filterByPlaceholder, { value: categoryOption.key })} + resourcePathsType={resourcePathsType} + resourceType={categoryOption.key as ResourceType} + /> + ) : ( + <> + handleOnCategoryInput(evt, categoryOption.key)} + size={intl.formatMessage(messages.filterByPlaceholder, { value: categoryOption.key }).length} + /> + + + )} + + + ); +}; + +export const getDefaultCategoryOptions = (): ToolbarChipGroup[] => { + return [{ name: intl.formatMessage(messages.names, { count: 1 }), key: 'name' }]; +}; + +export const onCategoryInput = ({ + categoryInput, + currentCategory, + currentExclude, + currentFilters, + event, + key, +}: { + categoryInput?: string; + currentCategory?: string; + currentExclude?: string; + currentFilters?: Filters; + event: any; + key?: string; +}) => { + if (event && event.key && event.key !== 'Enter') { + return; + } + + const val = cleanInput(categoryInput); + if (val.trim() === '') { + return; + } + + const isExcludes = currentExclude === ExcludeType.exclude; + const filter = getFilter(currentCategory, val, isExcludes); + const newFilters: any = cloneDeep(currentFilters[key] ? currentFilters[key] : []); + + return { + filter, + filters: { + ...currentFilters, + [currentCategory]: + newFilters && newFilters.find(item => item.value === val) + ? newFilters + : newFilters + ? [...newFilters, filter] + : [filter], + }, + }; +}; + +export const onCategoryInputSelect = ({ + currentCategory, + currentExclude, + currentFilters, + key, + value, +}: { + currentCategory?: string; + currentExclude?: string; + currentFilters?: Filters; + key?: string; + value: string; +}) => { + const val = cleanInput(value); + if (val.trim() === '') { + return; + } + + const isExcludes = currentExclude === ExcludeType.exclude; + const filter = getFilter(currentCategory, val, isExcludes); + const newFilters: any = cloneDeep(currentFilters[key] ? currentFilters[key] : []); + + return { + filter, + filters: { + ...currentFilters, + [currentCategory]: + newFilters && newFilters.find(item => item.value === val) + ? newFilters + : newFilters + ? [...newFilters, filter] + : [filter], + }, + }; +}; + +export const onWorkloadTypeSelect = ({ + currentCategory, + currentFilters, + event, + selection, +}: { + currentCategory?: string; + currentFilters?: Filters; + event: any; + selection?: string; +}) => { + const checked = event.target.checked; + const filter = getFilter(currentCategory, selection); + const newFilters: any = cloneDeep(currentFilters[currentCategory] ? currentFilters[currentCategory] : []); + + return { + filter, + filters: { + ...currentFilters, + [currentCategory]: checked ? [...newFilters, filter] : newFilters.filter(item => item.value !== filter.value), + }, + }; +}; + +// Category select + +export const getCategorySelect = ({ + categoryOptions, + currentCategory, + handleOnCategorySelect, + handleOnCategoryToggle, + isDisabled, + filters, + isCategorySelectOpen, +}: { + categoryOptions?: ToolbarChipGroup[]; // Options for category menu + currentCategory?: string; + isDisabled?: boolean; + filters?: Filters; + handleOnCategorySelect?: (event, selection: CategoryOption) => void; + handleOnCategoryToggle?: (isOpen: boolean) => void; + isCategorySelectOpen?: boolean; +}) => { + if (!categoryOptions) { + return null; + } + + const selectOptions = getCategorySelectOptions(categoryOptions); + const selection = selectOptions.find((option: CategoryOption) => option.value === currentCategory); + + return ( + + + + ); +}; + +export const getCategorySelectOptions = (categoryOptions: ToolbarChipGroup[]): CategoryOption[] => { + const options: CategoryOption[] = []; + + categoryOptions.map(option => { + options.push({ + toString: () => option.name, + value: option.key, + }); + }); + return options; +}; diff --git a/src/routes/components/dataToolbar/utils/common.ts b/src/routes/components/dataToolbar/utils/common.ts new file mode 100644 index 000000000..848447e3c --- /dev/null +++ b/src/routes/components/dataToolbar/utils/common.ts @@ -0,0 +1,163 @@ +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { Query } from 'api/queries/query'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import { cloneDeep } from 'lodash'; +import type { Filter } from 'routes/utils/filter'; +import { awsCategoryKey, awsCategoryPrefix, orgUnitIdKey, tagKey, tagPrefix } from 'utils/props'; + +export interface Filters { + [key: string]: Filter[] | { [key: string]: Filter[] }; +} + +export const defaultFilters = { + [awsCategoryKey]: {}, + tag: {}, +}; + +// Remove trailing commas -- see https://issues.redhat.com/browse/COST-3641 +export const cleanInput = (value: string) => { + return value.replace(/,*$/g, '').replace(/&*$/g, ''); +}; + +export const getActiveFilters = query => { + const filters = cloneDeep(defaultFilters); + + const parseFilters = (key, values, isExcludes = false) => { + if (key.indexOf(tagPrefix) !== -1) { + if (filters.tag[key.substring(tagPrefix.length)]) { + filters.tag[key.substring(tagPrefix.length)] = [ + ...filters.tag[key.substring(tagPrefix.length)], + ...getFilters(key, values, isExcludes), + ]; + } else { + filters.tag[key.substring(tagPrefix.length)] = getFilters(key, values, isExcludes); + } + } else if (key.indexOf(awsCategoryPrefix) !== -1) { + if (filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)]) { + filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)] = [ + ...filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)], + ...getFilters(key, values, isExcludes), + ]; + } else { + filters[awsCategoryKey][key.substring(awsCategoryPrefix.length)] = getFilters(key, values, isExcludes); + } + } else if (filters[key]) { + filters[key] = [...filters[key], ...getFilters(key, values, isExcludes)]; + } else { + filters[key] = getFilters(key, values, isExcludes); + } + }; + + if (query && query.filter_by) { + Object.keys(query.filter_by).forEach(key => { + const values = Array.isArray(query.filter_by[key]) ? [...query.filter_by[key]] : [query.filter_by[key]]; + parseFilters(key, values); + }); + } + if (query && query.exclude) { + Object.keys(query.exclude).forEach(key => { + const values = Array.isArray(query.exclude[key]) ? [...query.exclude[key]] : [query.exclude[key]]; + parseFilters(key, values, true); + }); + } + return filters; +}; + +export const getChips = (filters: Filter[]): string[] => { + const chips = []; + if (filters) { + filters.forEach(item => { + chips.push({ + key: item.value, + node: item.isExcludes ? intl.formatMessage(messages.excludeLabel, { value: item.value }) : item.value, + }); + }); + } + return chips; +}; + +export const getDefaultCategory = (categoryOptions: ToolbarChipGroup[], groupBy: string, query: Query) => { + if (!categoryOptions) { + return 'name'; + } + if (query && query.group_by && query.group_by[orgUnitIdKey]) { + return orgUnitIdKey; + } + for (const option of categoryOptions) { + if (groupBy === option.key || (groupBy && groupBy.indexOf(tagPrefix) !== -1 && option.key === tagKey)) { + return option.key; + } + } + return categoryOptions[0].key; +}; + +export const getFilter = (filterType: string, filterValue: string, isExcludes = false): Filter => { + return { type: filterType, value: filterValue, isExcludes }; +}; + +export const getFilters = (filterType: string, filterValues: string[], isExcludes = false): Filter[] => { + return filterValues.map(value => getFilter(filterType, value, isExcludes)); +}; + +export const hasFilters = (filters: Filters) => { + if (filters) { + for (const filterKey of Object.keys(filters)) { + if (filterKey === awsCategoryKey || filterKey === tagKey) { + for (const key of Object.keys(filters[filterKey])) { + if (filters[filterKey][key]) { + return true; + } + } + } else { + return true; + } + } + } + return false; +}; + +export const onDelete = (type: any, chip: any, currentFilters) => { + let filter = null; // Clear all + let filters = cloneDeep(defaultFilters); + + // Todo: workaround for https://github.com/patternfly/patternfly-react/issues/3552 + // This prevents us from using a localized string, if necessary + let _type = type && type.key ? type.key : type; + if (_type && _type.indexOf(tagPrefix) !== -1) { + _type = _type.slice(tagPrefix.length); + } else if (_type && _type.indexOf(awsCategoryPrefix) !== -1) { + _type = _type.slice(awsCategoryPrefix.length); + } + + if (_type) { + const excludePrefix = intl.formatMessage(messages.excludeLabel, { value: '' }); + let id = chip && chip.key ? chip.key : chip; + if (id && id.indexOf(excludePrefix) !== -1) { + const isExcludes = id ? id.indexOf(excludePrefix) !== -1 : false; + id = isExcludes ? id.slice(excludePrefix.length) : id; + } + if (currentFilters.tag[_type]) { + filter = currentFilters.tag[_type].find(item => item.value === id); + } else if (currentFilters[awsCategoryKey][_type]) { + filter = currentFilters[awsCategoryKey][_type].find(item => item.value === id); + } else if (currentFilters[_type]) { + filter = (currentFilters[_type] as Filter[]).find(item => item.value === id); + } + + const newFilters: any = cloneDeep(currentFilters); + if (newFilters.tag[_type]) { + // Todo: use ID + newFilters.tag[_type] = newFilters.tag[_type].filter(item => item.value !== id); + } else if (newFilters[awsCategoryKey][_type]) { + newFilters[awsCategoryKey][_type] = newFilters[awsCategoryKey][_type].filter(item => item.value !== id); + } else if (newFilters[_type]) { + newFilters[_type] = newFilters[_type].filter(item => item.value !== id); + } + filters = newFilters; + } + return { + filter, + filters, + }; +}; diff --git a/src/routes/components/dataToolbar/utils/costCategory.tsx b/src/routes/components/dataToolbar/utils/costCategory.tsx new file mode 100644 index 000000000..ba172175c --- /dev/null +++ b/src/routes/components/dataToolbar/utils/costCategory.tsx @@ -0,0 +1,249 @@ +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import { Select, SelectOption, SelectVariant, ToolbarFilter, ToolbarItem } from '@patternfly/react-core'; +import type { Resource } from 'api/resources/resource'; +import type { ResourcePathsType } from 'api/resources/resource'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import { cloneDeep, uniq, uniqBy } from 'lodash'; +import React from 'react'; +import { awsCategoryKey, awsCategoryPrefix } from 'utils/props'; + +import { CostCategoryValue } from '../costCategoryValue'; +import type { Filters } from './common'; +import { getChips, getFilter, hasFilters } from './common'; +import { ExcludeType } from './exclude'; + +// Cost category key select + +export const getCostCategoryKeySelect = ({ + currentCategory, + currentCostCategoryKey, + filters, + handleOnCostCategoryKeyClear, + handleOnCostCategoryKeySelect, + handleOnCostCategoryKeyToggle, + isCostCategoryKeySelectExpanded, + isDisabled, + resourceReport, +}: { + currentCategory?: string; + currentCostCategoryKey?: string; + filters?: Filters; + handleOnCostCategoryKeyClear?: () => void; + handleOnCostCategoryKeySelect?: (event, selection) => void; + handleOnCostCategoryKeyToggle?: (isOpen: boolean) => void; + isCostCategoryKeySelectExpanded?: boolean; + isDisabled?: boolean; + resourceReport?: Resource; +}) => { + if (currentCategory !== awsCategoryKey) { + return null; + } + + const selectOptions = getCostCategoryKeyOptions(resourceReport).map(selectOption => { + return ; + }); + + return ( + + + + ); +}; + +export const getCostCategoryKeyOptions = (resourceReport: Resource): ToolbarChipGroup[] => { + let data = []; + let options = []; + + if (!(resourceReport && resourceReport.data)) { + return options; + } + + // If the key_only param is used, we have an array of strings + let hasKeys = false; + for (const item of resourceReport.data) { + if (item.hasOwnProperty('key')) { + hasKeys = true; + break; + } + } + + // Workaround for https://github.com/project-koku/koku/issues/1797 + if (hasKeys) { + const keepData = resourceReport.data.map( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + ({ type, ...keepProps }: any) => keepProps + ); + data = uniqBy(keepData, 'key'); + } else { + data = uniq(resourceReport.data); + } + + if (data.length > 0) { + options = data.map(item => { + const key = hasKeys ? item.key : item; + return { + key, + name: key, // keys not localized + }; + }); + } + return options; +}; + +// Cost category value select + +export const getCostCategoryValueSelect = ({ + currentCategory, + currentCostCategoryKey, + costCategoryKeyOption, + costCategoryKeyValueInput, + filters, + handleOnDelete, + handleOnCostCategoryValueSelect, + handleOnCostCategoryValueInput, + handleOnCostCategoryValueInputChange, + isDisabled, + resourcePathsType, +}: { + currentCategory?: string; + currentCostCategoryKey?: string; + costCategoryKeyOption: ToolbarChipGroup; + costCategoryKeyValueInput?: string; + filters?: Filters; + handleOnDelete?: (type: any, chip: any) => void; + handleOnCostCategoryValueSelect?: (event, selection: string) => void; + handleOnCostCategoryValueInput?: (event) => void; + handleOnCostCategoryValueInputChange?: (value: string) => void; + isDisabled?: boolean; + resourcePathsType?: ResourcePathsType; +}) => { + // Todo: categoryName workaround for https://issues.redhat.com/browse/COST-2094 + const categoryName = { + name: costCategoryKeyOption.name, + key: `${awsCategoryPrefix}${costCategoryKeyOption.key}`, + }; + + return ( + + filter.value) + : [] + } + /> + + ); +}; + +export const onCostCategoryValueInput = ({ + costCategoryKeyValueInput, + currentCostCategoryKey, + currentFilters, + currentExclude, + event, +}: { + costCategoryKeyValueInput?: string; + currentCostCategoryKey?: string; + currentFilters?: Filters; + currentExclude?: string; + event?: any; +}) => { + if ((event.key && event.key !== 'Enter') || costCategoryKeyValueInput.trim() === '') { + return; + } + + const isExcludes = currentExclude === ExcludeType.exclude; + const filter = getFilter(`${awsCategoryPrefix}${currentCostCategoryKey}`, costCategoryKeyValueInput, isExcludes); + const newFilters: any = cloneDeep( + currentFilters[awsCategoryKey][currentCostCategoryKey] ? currentFilters[awsCategoryKey][currentCostCategoryKey] : [] + ); + + for (const item of newFilters) { + if (item.value === costCategoryKeyValueInput) { + return { + filter, + filters: { + ...currentFilters, + }, + }; + } + } + return { + filter, + filters: { + ...currentFilters, + [awsCategoryKey]: { + ...currentFilters[awsCategoryKey], + [currentCostCategoryKey]: [...newFilters, filter], + }, + }, + }; +}; + +export const onCostCategoryValueSelect = ({ + currentCostCategoryKey, + currentFilters, + currentExclude, + event, + selection, +}: { + costCategoryKeyValueInput?: string; + currentCostCategoryKey?: string; + currentFilters?: Filters; + currentExclude?: string; + event?: any; + selection?: string; +}) => { + const checked = event.target.checked; + let filter; + if (checked) { + const isExcludes = currentExclude === ExcludeType.exclude; + filter = getFilter(`${awsCategoryPrefix}${currentCostCategoryKey}`, selection, isExcludes); + } else if (currentFilters[awsCategoryKey][currentCostCategoryKey]) { + filter = currentFilters[awsCategoryKey][currentCostCategoryKey].find(item => item.value === selection); + } + + const newFilters: any = cloneDeep( + currentFilters[awsCategoryKey][currentCostCategoryKey] ? currentFilters[awsCategoryKey][currentCostCategoryKey] : [] + ); + + return { + filter, + filters: { + ...currentFilters, + [awsCategoryKey]: { + ...currentFilters[awsCategoryKey], + [currentCostCategoryKey]: checked + ? [...newFilters, filter] + : newFilters.filter(item => item.value !== filter.value), + }, + }, + }; +}; diff --git a/src/routes/components/dataToolbar/utils/exclude.tsx b/src/routes/components/dataToolbar/utils/exclude.tsx new file mode 100644 index 000000000..eb08cf161 --- /dev/null +++ b/src/routes/components/dataToolbar/utils/exclude.tsx @@ -0,0 +1,74 @@ +import type { SelectOptionObject } from '@patternfly/react-core'; +import { Select, SelectOption, SelectVariant, ToolbarItem } from '@patternfly/react-core'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import React from 'react'; + +import type { Filters } from './common'; +import { hasFilters } from './common'; + +export interface ExcludeOption extends SelectOptionObject { + toString(): string; // label + value?: string; +} + +// eslint-disable-next-line no-shadow +export const enum ExcludeType { + exclude = 'exclude', + include = 'include', +} + +// Exclude select + +export const getExcludeSelect = ({ + currentExclude, + filters, + handleOnExcludeSelect, + handleOnExcludeToggle, + isDisabled, + isExcludeSelectOpen, +}: { + currentExclude?: string; + filters?: Filters; + handleOnExcludeSelect: (event: any, selection: ExcludeOption) => void; + handleOnExcludeToggle: (isOpen: boolean) => void; + isDisabled?: boolean; + isExcludeSelectOpen?: boolean; +}) => { + const selectOptions = getExcludeSelectOptions(); + const selection = selectOptions.find((option: ExcludeOption) => option.value === currentExclude); + + return ( + + + + ); +}; + +export const getExcludeSelectOptions = (): ExcludeOption[] => { + const excludeOptions = [ + { name: intl.formatMessage(messages.excludeValues, { value: 'excludes' }), key: ExcludeType.exclude }, + { name: intl.formatMessage(messages.excludeValues, { value: 'includes' }), key: ExcludeType.include }, + ]; + + const options: ExcludeOption[] = []; + excludeOptions.map(option => { + options.push({ + toString: () => option.name, + value: option.key, + }); + }); + return options; +}; diff --git a/src/routes/components/dataToolbar/utils/orgUntits.tsx b/src/routes/components/dataToolbar/utils/orgUntits.tsx new file mode 100644 index 000000000..f4d3e739c --- /dev/null +++ b/src/routes/components/dataToolbar/utils/orgUntits.tsx @@ -0,0 +1,165 @@ +import type { SelectOptionObject, ToolbarChipGroup } from '@patternfly/react-core'; +import { Select, SelectOption, SelectVariant, ToolbarFilter } from '@patternfly/react-core'; +import type { Org } from 'api/orgs/org'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import { cloneDeep } from 'lodash'; +import React from 'react'; +import type { Filter } from 'routes/utils/filter'; +import { orgUnitIdKey, orgUnitNameKey } from 'utils/props'; + +import type { Filters } from './common'; +import { getFilter, hasFilters } from './common'; +import { ExcludeType } from './exclude'; + +interface GroupByOrgOption extends SelectOptionObject { + toString(): string; // label + id?: string; +} + +export const getOrgUnitSelect = ({ + currentCategory, + filters, + handleOnDelete, + handleOnOrgUnitSelect, + handleOnOrgUnitToggle, + isDisabled, + isOrgUnitSelectExpanded, + orgReport, +}: { + currentCategory?: string; + filters?: Filters; + handleOnDelete?: (type: any, chip: any) => void; + handleOnOrgUnitSelect?: (event, selection: string) => void; + handleOnOrgUnitToggle?: (isOpen: boolean) => void; + isDisabled?: boolean; + isOrgUnitSelectExpanded?: boolean; + orgReport: Org; +}) => { + const options: GroupByOrgOption[] = getOrgUnitOptions(orgReport).map(option => ({ + id: option.key, + toString: () => option.name, + compareTo: value => + filters[orgUnitIdKey] ? (filters[orgUnitIdKey] as any).find(filter => filter.value === value.id) : false, + })); + + const chips = []; // Get selected items as PatternFly's ToolbarChip type + const selections = []; // Select options and selections must be same type + if (filters[orgUnitIdKey] && Array.isArray(filters[orgUnitIdKey])) { + (filters[orgUnitIdKey] as any).map(filter => { + const option = options.find(item => item.id === filter.value); + if (option) { + selections.push(option); + chips.push({ + key: option.id, + node: filter.isExcludes + ? intl.formatMessage(messages.excludeLabel, { value: option.toString() }) + : option.toString(), + }); + } + }); + } + + // Todo: selectOverride is a workaround for https://github.com/patternfly/patternfly-react/issues/4477 + // and https://github.com/patternfly/patternfly-react/issues/6371 + return ( + + + + ); +}; + +export const getOrgUnitOptions = (orgReport: Org): ToolbarChipGroup[] => { + let options = []; + if (!(orgReport && orgReport.data)) { + return options; + } + + // Sort all names first + const sortedData = orgReport.data.sort((a, b) => { + if (a[orgUnitNameKey] < b[orgUnitNameKey]) { + return -1; + } + if (a[orgUnitNameKey] > b[orgUnitNameKey]) { + return 1; + } + return 0; + }); + + // Move roots first + const roots = sortedData.filter(org => org.level === 0); + + const filteredOrgs = sortedData.filter(org => org.level !== 0); + roots.map(root => { + const item = sortedData.find(org => org[orgUnitIdKey] === root[orgUnitIdKey]); + filteredOrgs.unshift(item); + }); + + if (filteredOrgs.length > 0) { + options = filteredOrgs.map(org => { + return { + key: org[orgUnitIdKey], + name: org[orgUnitNameKey], + }; + }); + } + return options; +}; + +export const onOrgUnitSelect = ({ + currentExclude, + currentFilters, + event, + selection, +}: { + currentExclude?: string; + currentFilters?: Filters; + event?: any; + selection?: GroupByOrgOption; +}) => { + const checked = event.target.checked; + let filter; + + if (checked) { + const isExcludes = currentExclude === ExcludeType.exclude; + filter = getFilter(orgUnitIdKey, selection.id, isExcludes); + } else if (currentFilters[orgUnitIdKey]) { + filter = (currentFilters[orgUnitIdKey] as Filter[]).find(item => item.value === selection.id); + } + + const newFilters: any = cloneDeep(currentFilters[orgUnitIdKey] ? currentFilters[orgUnitIdKey] : []); + + return { + filter, + filters: { + ...currentFilters, + // tag: { + // ...currentFilters.tag, + // }, + [orgUnitIdKey]: checked ? [...newFilters, filter] : newFilters.filter(item => item.value !== filter.value), + }, + }; +}; diff --git a/src/routes/components/dataToolbar/utils/tags.tsx b/src/routes/components/dataToolbar/utils/tags.tsx new file mode 100644 index 000000000..40eb3ece4 --- /dev/null +++ b/src/routes/components/dataToolbar/utils/tags.tsx @@ -0,0 +1,236 @@ +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import { Select, SelectOption, SelectVariant, ToolbarFilter, ToolbarItem } from '@patternfly/react-core'; +import type { Tag } from 'api/tags/tag'; +import type { TagPathsType } from 'api/tags/tag'; +import { intl } from 'components/i18n'; +import messages from 'locales/messages'; +import { cloneDeep, uniq, uniqBy } from 'lodash'; +import React from 'react'; +import { TagValue } from 'routes/components/dataToolbar/tagValue'; +import { orgUnitIdKey, tagKey, tagPrefix } from 'utils/props'; + +import type { Filters } from './common'; +import { getChips, getFilter, hasFilters } from './common'; +import { ExcludeType } from './exclude'; + +export const getTagKeySelect = ({ + currentCategory, + currentTagKey, + filters, + handleOnTagKeyClear, + handleOnTagKeySelect, + handleOnTagKeyToggle, + isDisabled, + isTagKeySelectExpanded, + tagReport, +}: { + currentCategory?: string; + currentTagKey?: string; + filters?: Filters; + handleOnTagKeyClear?: () => void; + handleOnTagKeySelect?: (event, selection) => void; + handleOnTagKeyToggle?: (isOpen: boolean) => void; + isDisabled?: boolean; + isTagKeySelectExpanded?: boolean; + tagReport?: Tag; +}) => { + if (currentCategory !== tagKey) { + return null; + } + + const selectOptions = getTagKeyOptions(tagReport).map(selectOption => { + return ; + }); + + return ( + + + + ); +}; + +export const getTagKeyOptions = (tagReport: Tag): ToolbarChipGroup[] => { + let data = []; + let options = []; + + if (!(tagReport && tagReport.data)) { + return options; + } + + // If the key_only param is used, we have an array of strings + let hasTagKeys = false; + for (const item of tagReport.data) { + if (item.hasOwnProperty('key')) { + hasTagKeys = true; + break; + } + } + + // Workaround for https://github.com/project-koku/koku/issues/1797 + if (hasTagKeys) { + const keepData = tagReport.data.map( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + ({ type, ...keepProps }: any) => keepProps + ); + data = uniqBy(keepData, 'key'); + } else { + data = uniq(tagReport.data); + } + + if (data.length > 0) { + options = data.map(item => { + const key = hasTagKeys ? item.key : item; + return { + key, + name: key, // tag keys not localized + }; + }); + } + return options; +}; + +// Tag value select + +export const getTagValueSelect = ({ + currentCategory, + currentTagKey, + filters, + handleOnDelete, + handleOnTagValueSelect, + handleOnTagValueInput, + handleOnTagValueInputChange, + isDisabled, + tagKeyOption, + tagPathsType, + tagKeyValueInput, +}: { + currentCategory?: string; + currentTagKey?: string; + filters?: Filters; + handleOnDelete?: (type: any, chip: any) => void; + handleOnTagValueSelect?: (event: any, selection) => void; + handleOnTagValueInput?: (event: any) => void; + handleOnTagValueInputChange?: (value: string) => void; + isDisabled?: boolean; + tagKeyOption?: ToolbarChipGroup; + tagPathsType?: TagPathsType; + tagKeyValueInput?: string; +}) => { + // Todo: categoryName workaround for https://issues.redhat.com/browse/COST-2094 + const categoryName = { + name: tagKeyOption.name, + key: `${tagPrefix}${tagKeyOption.key}`, + }; + + return ( + + filter.value) : []} + tagKey={currentTagKey} + tagKeyValue={tagKeyValueInput} + tagPathsType={tagPathsType} + /> + + ); +}; + +export const onTagValueInput = ({ + currentExclude, + currentFilters, + currentTagKey, + event, + tagKeyValueInput, +}: { + currentExclude?: string; + currentFilters?: Filters; + currentTagKey?: string; + event?: any; + tagKeyValueInput?: string; +}) => { + if ((event.key && event.key !== 'Enter') || tagKeyValueInput.trim() === '') { + return; + } + + const isExcludes = currentExclude === ExcludeType.exclude; + const filter = getFilter(`${tagPrefix}${currentTagKey}`, tagKeyValueInput, isExcludes); + const newFilters: any = cloneDeep(currentFilters[orgUnitIdKey] ? currentFilters[orgUnitIdKey] : []); + + for (const item of newFilters) { + if (item.value === tagKeyValueInput) { + return { + filter, + filters: { + ...currentFilters, + }, + }; + } + } + return { + filter, + filters: { + ...currentFilters, + tag: { + ...currentFilters.tag, + [currentTagKey]: [...newFilters, filter], + }, + }, + }; +}; + +export const onTagValueSelect = ({ + currentExclude, + currentFilters, + currentTagKey, + event, + selection, +}: { + currentExclude?: string; + currentFilters?: Filters; + currentTagKey?: string; + event?: any; + selection: string; +}) => { + const checked = event.target.checked; + let filter; + if (checked) { + const isExcludes = currentExclude === ExcludeType.exclude; + filter = getFilter(`${tagPrefix}${currentTagKey}`, selection, isExcludes); + } else if (currentFilters.tag[currentTagKey]) { + filter = currentFilters.tag[currentTagKey].find(item => item.value === selection); + } + + const newFilters: any = cloneDeep(currentFilters.tag[currentTagKey] ? currentFilters.tag[currentTagKey] : []); + + return { + filter, + filters: { + ...currentFilters, + tag: { + ...currentFilters.tag, + [currentTagKey]: checked ? [...newFilters, filter] : newFilters.filter(item => item.value !== filter.value), + }, + }, + }; +}; diff --git a/src/routes/components/optimizations/optimizationsToolbar.tsx b/src/routes/components/optimizations/optimizationsToolbar.tsx index a50ce1f75..a1d20190c 100644 --- a/src/routes/components/optimizations/optimizationsToolbar.tsx +++ b/src/routes/components/optimizations/optimizationsToolbar.tsx @@ -5,7 +5,7 @@ import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import { DataToolbar } from 'routes/components/dataToolbar'; +import { BasicToolbar } from 'routes/components/dataToolbar'; import type { Filter } from 'routes/utils/filter'; import { createMapStateToProps } from 'store/common'; @@ -65,7 +65,7 @@ export class OptimizationsToolbarBase extends React.Component Date: Thu, 25 May 2023 13:15:05 -0400 Subject: [PATCH 14/43] Container namespace test From 896e64474396180f791b5343ecc7ecabb1542962 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Thu, 25 May 2023 21:42:07 -0400 Subject: [PATCH 15/43] Update release script to not use fast forward merge --- scripts/release-branch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release-branch.sh b/scripts/release-branch.sh index ba38dae04..8f43cab87 100755 --- a/scripts/release-branch.sh +++ b/scripts/release-branch.sh @@ -57,7 +57,7 @@ merge() git checkout $BRANCH git fetch origin $REMOTE_BRANCH - git merge origin/$REMOTE_BRANCH --commit --no-edit + git merge origin/$REMOTE_BRANCH --commit --no-edit --no-ff } push() From d15fd7b5efb6a05bcf83fa66aab3a90a866e8bea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 May 2023 10:56:51 +0000 Subject: [PATCH 16/43] (chore): Bump @typescript-eslint/parser from 5.59.7 to 5.59.8 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.59.7 to 5.59.8. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.8/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 218 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 206 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d3b7f70c..4f1d84be0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7", + "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -3781,14 +3781,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", - "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", + "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "debug": "^4.3.4" }, "engines": { @@ -3807,6 +3807,125 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", + "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.8", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.7", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", @@ -22534,15 +22653,88 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.7.tgz", - "integrity": "sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", + "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "debug": "^4.3.4" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", + "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8" + } + }, + "@typescript-eslint/types": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.8", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/scope-manager": { diff --git a/package.json b/package.json index a91f5874c..6ba2b0a39 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7", + "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", From dfdaadce89a02bdebc71cf1260bae2bab9a1919f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 10:57:01 +0000 Subject: [PATCH 17/43] (chore): Bump eslint-plugin-jsdoc from 44.2.5 to 46.0.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 44.2.5 to 46.0.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v44.2.5...v46.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d3b7f70c..90f00cc9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.5", + "eslint-plugin-jsdoc": "^46.0.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -8016,9 +8016,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "44.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.5.tgz", - "integrity": "sha512-KtuhaYy2GmdY2IQE5t+1lup8O4P05c+V4gKcj45PCxFM0OxmRq2uQlfOS1AgYVgPYIBKGE86DxrbKP24HKpORA==", + "version": "46.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.0.0.tgz", + "integrity": "sha512-xmB5WleBcPCFYlrFfdjrcfSKOJBLwyGmKa+i+fVqlIHp8g5aAoeQpBGugUzToFtQgd4hNZYlfIcP7QSxC9NYWQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", @@ -25797,9 +25797,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "44.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.5.tgz", - "integrity": "sha512-KtuhaYy2GmdY2IQE5t+1lup8O4P05c+V4gKcj45PCxFM0OxmRq2uQlfOS1AgYVgPYIBKGE86DxrbKP24HKpORA==", + "version": "46.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.0.0.tgz", + "integrity": "sha512-xmB5WleBcPCFYlrFfdjrcfSKOJBLwyGmKa+i+fVqlIHp8g5aAoeQpBGugUzToFtQgd4hNZYlfIcP7QSxC9NYWQ==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.39.4", diff --git a/package.json b/package.json index a91f5874c..c11760242 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.40.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^44.2.5", + "eslint-plugin-jsdoc": "^46.0.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From c777ca203ebff04772e5b1c6aa7c002b4cf1796d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 10:59:00 +0000 Subject: [PATCH 18/43] (chore): Bump @redhat-cloud-services/frontend-components-config Bumps [@redhat-cloud-services/frontend-components-config](https://github.com/RedHatInsights/frontend-components) from 4.7.3 to 5.0.1. - [Commits](https://github.com/RedHatInsights/frontend-components/commits) --- updated-dependencies: - dependency-name: "@redhat-cloud-services/frontend-components-config" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 229 ++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 150 insertions(+), 81 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d3b7f70c..e5222ee25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "devDependencies": { "@formatjs/cli": "^6.1.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^1.3.0", - "@redhat-cloud-services/frontend-components-config": "^4.7.3", + "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", "@testing-library/user-event": "^14.4.3", "@types/jest": "^29.5.1", @@ -2068,6 +2068,22 @@ "react": "^17 || ^18" } }, + "node_modules/@openshift/dynamic-plugin-sdk-webpack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-3.0.1.tgz", + "integrity": "sha512-W7tDWLwZ17ebbawrIsI1MEM+8ldmpqPTKcONVmKcY/k+VgqVrGHlISHQE/Ykpd2Zu4J7FMx/CLIb86Ad1wwPxg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "yup": "^0.32.11" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "webpack": "^5.75.0" + } + }, "node_modules/@openshift/dynamic-plugin-sdk/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2340,13 +2356,13 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-4.7.3.tgz", - "integrity": "sha512-i0ieDCSR7eOM1Nmnm7vFAwk2TMJDSqGq8/E+XxWCZ3lFA2z5sbkrkIPWfPH4CyDU+SmlJxyeTNoHFlF+1g8z4Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-5.0.1.tgz", + "integrity": "sha512-PTP8P1yTqB490jFwkBXcUAlTvaJOAacX3flf1CX6TPuQbtErETRrSn6i9RNQkDkDNN4cu/ZRzEjdwOGH7LaOPg==", "dev": true, "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8", - "@redhat-cloud-services/frontend-components-config-utilities": "^1.5.31", + "@redhat-cloud-services/frontend-components-config-utilities": "^2.0.1", "assert": "^2.0.0", "axios": "^0.27.2", "babel-loader": "^8.2.5", @@ -2368,7 +2384,7 @@ "js-yaml": "^4.1.0", "jws": "^4.0.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^1.6.2", + "mini-css-extract-plugin": "^2.7.3", "path-browserify": "^1.0.1", "process": "^0.11.10", "react-refresh": "^0.14.0", @@ -2389,11 +2405,12 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config-utilities": { - "version": "1.5.31", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-1.5.31.tgz", - "integrity": "sha512-9e3TqpP09orvomftIfVhPzE8PNSw+rf27+AN6LgmES4gbCRk88pgakipxgFRShVv4JrnuUhff9LsfitC6qFN2Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-2.0.1.tgz", + "integrity": "sha512-GEtdZ5jnPNnZ+M99Tt+bh3qKo4IXnwQFcwHgm/w0cSGFUKw9UZ2f8VXFAJnkW5ZwAggeE9Sm36+Bp22bOaDGXw==", "dev": true, "dependencies": { + "@openshift/dynamic-plugin-sdk-webpack": "^3.0.0", "chalk": "^4.1.2", "node-fetch": "2.6.7" }, @@ -14093,24 +14110,75 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", - "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/minimalistic-assert": { @@ -16765,12 +16833,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -19147,25 +19209,6 @@ "node": ">=10.0.0" } }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/@types/estree": { "version": "0.0.51", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", @@ -21118,6 +21161,16 @@ } } }, + "@openshift/dynamic-plugin-sdk-webpack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@openshift/dynamic-plugin-sdk-webpack/-/dynamic-plugin-sdk-webpack-3.0.1.tgz", + "integrity": "sha512-W7tDWLwZ17ebbawrIsI1MEM+8ldmpqPTKcONVmKcY/k+VgqVrGHlISHQE/Ykpd2Zu4J7FMx/CLIb86Ad1wwPxg==", + "dev": true, + "requires": { + "lodash": "^4.17.21", + "yup": "^0.32.11" + } + }, "@patternfly/patternfly": { "version": "4.224.2", "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-4.224.2.tgz", @@ -21275,13 +21328,13 @@ } }, "@redhat-cloud-services/frontend-components-config": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-4.7.3.tgz", - "integrity": "sha512-i0ieDCSR7eOM1Nmnm7vFAwk2TMJDSqGq8/E+XxWCZ3lFA2z5sbkrkIPWfPH4CyDU+SmlJxyeTNoHFlF+1g8z4Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-5.0.1.tgz", + "integrity": "sha512-PTP8P1yTqB490jFwkBXcUAlTvaJOAacX3flf1CX6TPuQbtErETRrSn6i9RNQkDkDNN4cu/ZRzEjdwOGH7LaOPg==", "dev": true, "requires": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8", - "@redhat-cloud-services/frontend-components-config-utilities": "^1.5.31", + "@redhat-cloud-services/frontend-components-config-utilities": "^2.0.1", "assert": "^2.0.0", "axios": "^0.27.2", "babel-loader": "^8.2.5", @@ -21303,7 +21356,7 @@ "js-yaml": "^4.1.0", "jws": "^4.0.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^1.6.2", + "mini-css-extract-plugin": "^2.7.3", "path-browserify": "^1.0.1", "process": "^0.11.10", "react-refresh": "^0.14.0", @@ -21388,11 +21441,12 @@ } }, "@redhat-cloud-services/frontend-components-config-utilities": { - "version": "1.5.31", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-1.5.31.tgz", - "integrity": "sha512-9e3TqpP09orvomftIfVhPzE8PNSw+rf27+AN6LgmES4gbCRk88pgakipxgFRShVv4JrnuUhff9LsfitC6qFN2Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config-utilities/-/frontend-components-config-utilities-2.0.1.tgz", + "integrity": "sha512-GEtdZ5jnPNnZ+M99Tt+bh3qKo4IXnwQFcwHgm/w0cSGFUKw9UZ2f8VXFAJnkW5ZwAggeE9Sm36+Bp22bOaDGXw==", "dev": true, "requires": { + "@openshift/dynamic-plugin-sdk-webpack": "^3.0.0", "chalk": "^4.1.2", "node-fetch": "2.6.7" }, @@ -30198,14 +30252,53 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mini-css-extract-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", - "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } } }, "minimalistic-assert": { @@ -32152,12 +32245,6 @@ "websocket-driver": "^0.7.4" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -34028,24 +34115,6 @@ "wildcard": "^2.0.0" } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", diff --git a/package.json b/package.json index a91f5874c..cdd5861ad 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "devDependencies": { "@formatjs/cli": "^6.1.1", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^1.3.0", - "@redhat-cloud-services/frontend-components-config": "^4.7.3", + "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", "@testing-library/user-event": "^14.4.3", "@types/jest": "^29.5.1", From c674dba555c27f59356718a843065b5b8ccf80d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 13:46:16 +0000 Subject: [PATCH 19/43] (chore): Bump @typescript-eslint/eslint-plugin from 5.59.7 to 5.59.8 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.59.7 to 5.59.8. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.8/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 322 ++++++++++------------------------------------ package.json | 2 +- 2 files changed, 66 insertions(+), 258 deletions(-) diff --git a/package-lock.json b/package-lock.json index 969580097..3fa1f5368 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/eslint-plugin": "^5.59.8", "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -3731,15 +3731,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", - "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", + "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/type-utils": "5.59.7", - "@typescript-eslint/utils": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/type-utils": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3824,7 +3824,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", @@ -3841,133 +3841,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.8", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", - "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", - "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", + "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.7", - "@typescript-eslint/utils": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3988,9 +3869,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4001,13 +3882,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4061,17 +3942,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", - "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", + "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -4120,12 +4001,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -22663,15 +22544,15 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.7.tgz", - "integrity": "sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", + "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/type-utils": "5.59.7", - "@typescript-eslint/utils": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/type-utils": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -22716,117 +22597,44 @@ "@typescript-eslint/types": "5.59.8", "@typescript-eslint/typescript-estree": "5.59.8", "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", - "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8" - } - }, - "@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.8", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/scope-manager": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.7.tgz", - "integrity": "sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", + "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7" + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8" } }, "@typescript-eslint/type-utils": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.7.tgz", - "integrity": "sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", + "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.7", - "@typescript-eslint/utils": "5.59.7", + "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/utils": "5.59.8", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.7.tgz", - "integrity": "sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.7.tgz", - "integrity": "sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/visitor-keys": "5.59.7", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -22861,17 +22669,17 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.7.tgz", - "integrity": "sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", + "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.7", - "@typescript-eslint/types": "5.59.7", - "@typescript-eslint/typescript-estree": "5.59.7", + "@typescript-eslint/scope-manager": "5.59.8", + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.8", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -22903,12 +22711,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.7", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.7.tgz", - "integrity": "sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==", + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.7", + "@typescript-eslint/types": "5.59.8", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { diff --git a/package.json b/package.json index 39a11d7f1..5787d1097 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.7", + "@typescript-eslint/eslint-plugin": "^5.59.8", "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From aa8715d2b318e10c1ba72005a4c822856d3ac368 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 31 May 2023 10:57:47 -0400 Subject: [PATCH 20/43] Package dependency updates --- package-lock.json | 84 +++++++++++++++++++++++------------------------ package.json | 6 ++-- 2 files changed, 44 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3fa1f5368..69bdf660e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "react-bootstrap": "^2.7.4", "react-dom": "^17.0.2", "react-intl": "^6.4.2", - "react-redux": "^8.0.5", + "react-redux": "^8.0.7", "react-router-dom": "^6.11.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", @@ -58,7 +58,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.40.0", + "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsdoc": "^46.0.0", @@ -817,9 +817,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7554,15 +7554,15 @@ } }, "node_modules/eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", + "@eslint/js": "8.41.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -7582,13 +7582,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -9744,6 +9743,12 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -13189,16 +13194,6 @@ "resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz", "integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==" }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -15816,9 +15811,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.7.tgz", + "integrity": "sha512-1vRQuCQI5Y2uNmrMXg81RXKiBHY3jBzvCvNmZF437O/Z9/pZ+ba2uYHbemYXb3g8rjsacBGo+/wmfrQKzMhJsg==", "dependencies": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", @@ -15828,14 +15823,18 @@ "use-sync-external-store": "^1.0.0" }, "peerDependencies": { + "@reduxjs/toolkit": "^1 || ^2.0.0-beta.0", "@types/react": "^16.8 || ^17.0 || ^18.0", "@types/react-dom": "^16.8 || ^17.0 || ^18.0", "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0", "react-native": ">=0.59", - "redux": "^4" + "redux": "^4 || ^5.0.0-beta.0" }, "peerDependenciesMeta": { + "@reduxjs/toolkit": { + "optional": true + }, "@types/react": { "optional": true }, @@ -20186,9 +20185,9 @@ } }, "@eslint/js": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", - "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", + "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true }, "@formatjs/cli": { @@ -25413,15 +25412,15 @@ } }, "eslint": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", - "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "version": "8.41.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", + "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", + "@eslint/js": "8.41.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -25441,13 +25440,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -27023,6 +27021,12 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -29551,12 +29555,6 @@ "resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz", "integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==" }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -31503,9 +31501,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.7.tgz", + "integrity": "sha512-1vRQuCQI5Y2uNmrMXg81RXKiBHY3jBzvCvNmZF437O/Z9/pZ+ba2uYHbemYXb3g8rjsacBGo+/wmfrQKzMhJsg==", "requires": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", diff --git a/package.json b/package.json index 5787d1097..14510d977 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "react-bootstrap": "^2.7.4", "react-dom": "^17.0.2", "react-intl": "^6.4.2", - "react-redux": "^8.0.5", + "react-redux": "^8.0.7", "react-router-dom": "^6.11.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2", @@ -93,7 +93,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.40.0", + "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", "eslint-plugin-jsdoc": "^46.0.0", @@ -116,7 +116,7 @@ "webpack-bundle-analyzer": "^4.8.0" }, "overrides": { - "eslint": "^8.40.0", + "eslint": "^8.41.0", "react-intl": "^6.4.2" }, "insights": { From c1d8e05ea9f679a355368955c77c1f5e18e19bd8 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 31 May 2023 11:51:07 -0400 Subject: [PATCH 21/43] Optimizations loading state https://issues.redhat.com/browse/COST-3877 --- locales/data.json | 12 ++++++++++++ locales/translations.json | 2 ++ src/locales/messages.ts | 10 ++++++++++ src/routes/components/page/loading/loading.tsx | 6 ++++-- .../components/state/loadingState/loadingState.tsx | 14 +++++++++----- .../ocpBreakdown/optimizationsBreakdown.tsx | 5 ++++- src/routes/optimizations/optimizations.tsx | 5 ++++- 7 files changed, 45 insertions(+), 9 deletions(-) diff --git a/locales/data.json b/locales/data.json index f288865dd..155371924 100644 --- a/locales/data.json +++ b/locales/data.json @@ -10539,6 +10539,18 @@ "value": "A dialog with a description of optimizations" } ], + "optimizationsLoadingStateDesc": [ + { + "type": 0, + "value": "Searching for your optimizations. Do not refresh the browser" + } + ], + "optimizationsLoadingStateTitle": [ + { + "type": 0, + "value": "Looking for optimizations..." + } + ], "optimizationsLongTerm": [ { "type": 0, diff --git a/locales/translations.json b/locales/translations.json index 3fd193093..49e42cc3d 100644 --- a/locales/translations.json +++ b/locales/translations.json @@ -427,6 +427,8 @@ "optimizationsInfo": "Assess and monitor your usage so you can optimize your OpenShift resources.", "optimizationsInfoArialLabel": "A description of optimizations", "optimizationsInfoButtonArialLabel": "A dialog with a description of optimizations", + "optimizationsLoadingStateDesc": "Searching for your optimizations. Do not refresh the browser", + "optimizationsLoadingStateTitle": "Looking for optimizations...", "optimizationsLongTerm": "Last 15 days", "optimizationsMediumTerm": "Last 7 days", "optimizationsNames": "{value, select, cluster {Cluster names} container {Container names} last_reported {Last reported} project {Project names} workload {Workload names} workload_type {Workload types} other {}}", diff --git a/src/locales/messages.ts b/src/locales/messages.ts index 49d176a29..fd754ccdc 100644 --- a/src/locales/messages.ts +++ b/src/locales/messages.ts @@ -2689,6 +2689,16 @@ export default defineMessages({ description: 'A dialog with a description of optimizations', id: 'optimizationsInfoButtonArialLabel', }, + optimizationsLoadingStateDesc: { + defaultMessage: 'Searching for your optimizations. Do not refresh the browser', + description: 'Searching for your optimizations. Do not refresh the browser', + id: 'optimizationsLoadingStateDesc', + }, + optimizationsLoadingStateTitle: { + defaultMessage: 'Looking for optimizations...', + description: 'Looking for optimizations', + id: 'optimizationsLoadingStateTitle', + }, optimizationsLongTerm: { defaultMessage: 'Last 15 days', description: 'Last 15 days', diff --git a/src/routes/components/page/loading/loading.tsx b/src/routes/components/page/loading/loading.tsx index 20027edd2..99af6462d 100644 --- a/src/routes/components/page/loading/loading.tsx +++ b/src/routes/components/page/loading/loading.tsx @@ -4,12 +4,14 @@ import React from 'react'; import { LoadingState } from 'routes/components/state/loadingState'; interface LoadingOwnProps { + body?: string; + heading?: string; title?: string; } type LoadingProps = LoadingOwnProps; -const Loading = ({ title }: LoadingProps) => { +const Loading = ({ body, heading, title }: LoadingProps) => { return ( <> {title && ( @@ -18,7 +20,7 @@ const Loading = ({ title }: LoadingProps) => { )} - + ); diff --git a/src/routes/components/state/loadingState/loadingState.tsx b/src/routes/components/state/loadingState/loadingState.tsx index 58005400d..6e2eb0ca3 100644 --- a/src/routes/components/state/loadingState/loadingState.tsx +++ b/src/routes/components/state/loadingState/loadingState.tsx @@ -6,21 +6,25 @@ import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; interface LoadingStateProps extends WrappedComponentProps { + body?: string; + heading?: string; icon?: string; } // defaultIntl required for testing -const LoadingStateBase: React.FC = ({ intl = defaultIntl }) => { - const title = intl.formatMessage(messages.loadingStateTitle); - const subTitle = intl.formatMessage(messages.loadingStateDesc); +const LoadingStateBase: React.FC = ({ + intl = defaultIntl, + body = intl.formatMessage(messages.loadingStateDesc), + heading = intl.formatMessage(messages.loadingStateTitle), +}) => { return ( - {title} + {heading} - {subTitle} + {body} ); }; diff --git a/src/routes/details/ocpBreakdown/optimizationsBreakdown.tsx b/src/routes/details/ocpBreakdown/optimizationsBreakdown.tsx index 191c06018..ec8be48b5 100644 --- a/src/routes/details/ocpBreakdown/optimizationsBreakdown.tsx +++ b/src/routes/details/ocpBreakdown/optimizationsBreakdown.tsx @@ -165,7 +165,10 @@ const OptimizationsBreakdown: React.FC = () => { <> {getToolbar()} {reportFetchStatus === FetchStatus.inProgress ? ( - + ) : ( <> {getTable()} diff --git a/src/routes/optimizations/optimizations.tsx b/src/routes/optimizations/optimizations.tsx index 08c04dc20..bd2c6ae68 100644 --- a/src/routes/optimizations/optimizations.tsx +++ b/src/routes/optimizations/optimizations.tsx @@ -171,7 +171,10 @@ const Optimizations: React.FC = () => { {getToolbar()} {reportFetchStatus === FetchStatus.inProgress ? ( - + ) : ( <> {getTable()} From 49e2708fc84ddc2c4e6ecc056cb8230ec10c988d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 15:53:10 +0000 Subject: [PATCH 22/43] (chore): Bump @types/jest from 29.5.1 to 29.5.2 Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 29.5.1 to 29.5.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest) --- updated-dependencies: - dependency-name: "@types/jest" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 69bdf660e..85903edea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.5.1", + "@types/jest": "^29.5.2", "@types/qs": "^6.9.7", "@types/react": "^17.0.35", "@types/react-dom": "^17.0.9", @@ -3350,9 +3350,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -22171,9 +22171,9 @@ } }, "@types/jest": { - "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", "dev": true, "requires": { "expect": "^29.0.0", diff --git a/package.json b/package.json index 14510d977..a0f89547a 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.5.1", + "@types/jest": "^29.5.2", "@types/qs": "^6.9.7", "@types/react": "^17.0.35", "@types/react-dom": "^17.0.9", From ed612c35c9a8691e6c464a33f5dc80b886268925 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 31 May 2023 15:59:02 -0400 Subject: [PATCH 23/43] Show distributed costs for "top 3 projects" and "cost by projects" card https://issues.redhat.com/browse/COST-3681 --- .../components/costOverview/costOverviewBase.tsx | 3 ++- .../details/components/summary/summaryCard.tsx | 7 ++++++- .../components/summary/summaryModalContent.tsx | 7 ++++++- .../overview/components/dashboardWidgetBase.tsx | 6 +++++- src/store/dashboard/common/dashboardCommon.ts | 1 + .../__snapshots__/ocpDashboard.test.ts.snap | 2 +- .../dashboard/ocpDashboard/ocpDashboardSelectors.ts | 13 ++++++++++++- .../dashboard/ocpDashboard/ocpDashboardWidgets.ts | 1 + 8 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/routes/details/components/costOverview/costOverviewBase.tsx b/src/routes/details/components/costOverview/costOverviewBase.tsx index a96d8e1e9..ca368b677 100644 --- a/src/routes/details/components/costOverview/costOverviewBase.tsx +++ b/src/routes/details/components/costOverview/costOverviewBase.tsx @@ -17,6 +17,7 @@ import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; +import { ComputedReportItemValueType } from 'routes/components/charts/common'; import { Cluster } from 'routes/details/components/cluster'; import { CostChart } from 'routes/details/components/costChart'; import { OverheadCostChart } from 'routes/details/components/overheadCostChart'; @@ -230,7 +231,7 @@ class CostOverviewsBase extends React.Component { if (showWidget) { return ( { } const mapStateToProps = createMapStateToProps( - (state, { costType, currency, reportGroupBy, reportPathsType, reportType, router }) => { + (state, { costDistribution, costType, currency, reportGroupBy, reportPathsType, reportType, router }) => { const queryFromRoute = parseQuery(router.location.search); const queryState = parseQueryState(queryFromRoute); @@ -263,6 +263,11 @@ const mapStateToProps = createMapStateToProps( - (state, { costType, currency, reportGroupBy, reportPathsType, router }) => { + (state, { costDistribution, costType, currency, reportGroupBy, reportPathsType, router }) => { const queryFromRoute = parseQuery(router.location.search); const queryState = parseQueryState(queryFromRoute); @@ -146,6 +146,11 @@ const mapStateToProps = createMapStateToProps { const props = { currency: getCurrency(), }; + const tabsProps = { + ...props, + ...(widget.trend && + widget.trend.costDistribution && + widget.currentTab === OcpDashboardTab.projects && { + order_by: { + distributed_cost: 'desc', + }, + }), + }; return { previous: getQueryForWidget( @@ -49,7 +60,7 @@ export const selectWidgetQueries = (state: RootState, id: number) => { ...(tabsFilter as any), resolution: 'monthly', }, - props + tabsProps ), }; }; diff --git a/src/store/dashboard/ocpDashboard/ocpDashboardWidgets.ts b/src/store/dashboard/ocpDashboard/ocpDashboardWidgets.ts index 0cfb42945..b2da0a5eb 100644 --- a/src/store/dashboard/ocpDashboard/ocpDashboardWidgets.ts +++ b/src/store/dashboard/ocpDashboard/ocpDashboardWidgets.ts @@ -43,6 +43,7 @@ export const costSummaryWidget: OcpDashboardWidget = { computedForecastInfrastructureItem: ComputedForecastItemType.infrastructure, computedReportItem: ComputedReportItemType.cost, computedReportItemValue: ComputedReportItemValueType.total, + costDistribution: ComputedReportItemValueType.distributed, dailyTitleKey: messages.ocpDashboardDailyCostTitle, datumType: DatumType.cumulative, titleKey: messages.ocpDashboardCostTrendTitle, From 0bffa103f2a9515a0179e67d0c22fb09ce9645fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 10:59:54 +0000 Subject: [PATCH 24/43] (chore): Bump webpack-bundle-analyzer from 4.8.0 to 4.9.0 Bumps [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) from 4.8.0 to 4.9.0. - [Release notes](https://github.com/webpack-contrib/webpack-bundle-analyzer/releases) - [Changelog](https://github.com/webpack-contrib/webpack-bundle-analyzer/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/webpack-bundle-analyzer/compare/v4.8.0...v4.9.0) --- updated-dependencies: - dependency-name: webpack-bundle-analyzer dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85903edea..98b3f478a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78,7 +78,7 @@ "prettier": "^2.8.8", "rimraf": "^5.0.1", "typescript": "^5.0.4", - "webpack-bundle-analyzer": "^4.8.0" + "webpack-bundle-analyzer": "^4.9.0" }, "engines": { "node": ">=18.15.0", @@ -18808,9 +18808,9 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", - "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz", + "integrity": "sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "0.5.7", @@ -33847,9 +33847,9 @@ } }, "webpack-bundle-analyzer": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", - "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz", + "integrity": "sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==", "dev": true, "requires": { "@discoveryjs/json-ext": "0.5.7", diff --git a/package.json b/package.json index a0f89547a..89aea565e 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "prettier": "^2.8.8", "rimraf": "^5.0.1", "typescript": "^5.0.4", - "webpack-bundle-analyzer": "^4.8.0" + "webpack-bundle-analyzer": "^4.9.0" }, "overrides": { "eslint": "^8.41.0", From dd7a4e436da5164c2dab9656301f6ed10ac27f7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 11:00:56 +0000 Subject: [PATCH 25/43] (chore): Bump eslint-plugin-jsdoc from 46.0.0 to 46.1.0 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.0.0 to 46.1.0. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.0.0...v46.1.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85903edea..e4241ed03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^46.0.0", + "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -8032,9 +8032,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.0.0.tgz", - "integrity": "sha512-xmB5WleBcPCFYlrFfdjrcfSKOJBLwyGmKa+i+fVqlIHp8g5aAoeQpBGugUzToFtQgd4hNZYlfIcP7QSxC9NYWQ==", + "version": "46.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz", + "integrity": "sha512-NpjpSuWR+Wwxzmssji7AVty1Vu0JvI7v+cTj+Rw1nKVjGv2eMvLGM/SI4VpgTXp82JbLtFOsA2QYLHT3YSmASA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", @@ -25849,9 +25849,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "46.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.0.0.tgz", - "integrity": "sha512-xmB5WleBcPCFYlrFfdjrcfSKOJBLwyGmKa+i+fVqlIHp8g5aAoeQpBGugUzToFtQgd4hNZYlfIcP7QSxC9NYWQ==", + "version": "46.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz", + "integrity": "sha512-NpjpSuWR+Wwxzmssji7AVty1Vu0JvI7v+cTj+Rw1nKVjGv2eMvLGM/SI4VpgTXp82JbLtFOsA2QYLHT3YSmASA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.39.4", diff --git a/package.json b/package.json index a0f89547a..c83f6693c 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^4.0.3", - "eslint-plugin-jsdoc": "^46.0.0", + "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From 938939e9faf88ba1b6edcae7e83ffcdb6d0e7826 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Thu, 1 Jun 2023 15:12:26 -0400 Subject: [PATCH 26/43] Move "Others" to be the last legend label https://issues.redhat.com/browse/COST-3681 --- src/routes/explorer/explorerChart.tsx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/routes/explorer/explorerChart.tsx b/src/routes/explorer/explorerChart.tsx index 279ca1996..de134d305 100644 --- a/src/routes/explorer/explorerChart.tsx +++ b/src/routes/explorer/explorerChart.tsx @@ -152,11 +152,27 @@ class ExplorerChartBase extends React.Component { const { report } = this.props; - return getUnsortedComputedReportItems({ + const computedReportItems = getUnsortedComputedReportItems({ report, idKey: this.getGroupBy(), isDateMap: true, }); + + // Move "Others" to be the last legend label + for (let i = 0; i < computedReportItems.length; i++) { + let found = false; + for (const item of computedReportItems[i]) { + if (item[item.length - 1].id === 'Others') { + computedReportItems.push(computedReportItems.splice(i, 1)[0]); + found = true; + break; + } + } + if (found) { + break; + } + } + return computedReportItems; }; private getGroupBy = () => { @@ -285,7 +301,7 @@ const mapStateToProps = createMapStateToProps Date: Fri, 2 Jun 2023 10:57:15 +0000 Subject: [PATCH 27/43] (chore): Bump @redhat-cloud-services/frontend-components Bumps [@redhat-cloud-services/frontend-components](https://github.com/RedHatInsights/frontend-components) from 3.9.35 to 3.9.36. - [Commits](https://github.com/RedHatInsights/frontend-components/commits) --- updated-dependencies: - dependency-name: "@redhat-cloud-services/frontend-components" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f4a131ee..d04e6773d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@patternfly/react-styles": "4.92.6", "@patternfly/react-table": "4.113.0", "@patternfly/react-tokens": "4.94.6", - "@redhat-cloud-services/frontend-components": "^3.9.35", + "@redhat-cloud-services/frontend-components": "^3.9.36", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", @@ -2331,9 +2331,9 @@ } }, "node_modules/@redhat-cloud-services/frontend-components": { - "version": "3.9.35", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.35.tgz", - "integrity": "sha512-SMdeq/y+pTnnstlDPilc58ItIK/fL5Pqaodp/ucBqOraKYpcs9MDczQpolCry84Iv9FgN9bwALl2HGJZvkrdAQ==", + "version": "3.9.36", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.36.tgz", + "integrity": "sha512-GbvxGHDwdPPcubCz6h9SSJxI+fceyBoIOAikaIq2OSXQxQ0QPnkDXQD1tyVJz0Af+TQ6jHDQ+wPQf7MT90S/QQ==", "dependencies": { "@redhat-cloud-services/frontend-components-utilities": "^3.2.25", "@redhat-cloud-services/types": "^0.0.17", @@ -21315,9 +21315,9 @@ } }, "@redhat-cloud-services/frontend-components": { - "version": "3.9.35", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.35.tgz", - "integrity": "sha512-SMdeq/y+pTnnstlDPilc58ItIK/fL5Pqaodp/ucBqOraKYpcs9MDczQpolCry84Iv9FgN9bwALl2HGJZvkrdAQ==", + "version": "3.9.36", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.36.tgz", + "integrity": "sha512-GbvxGHDwdPPcubCz6h9SSJxI+fceyBoIOAikaIq2OSXQxQ0QPnkDXQD1tyVJz0Af+TQ6jHDQ+wPQf7MT90S/QQ==", "requires": { "@redhat-cloud-services/frontend-components-utilities": "^3.2.25", "@redhat-cloud-services/types": "^0.0.17", diff --git a/package.json b/package.json index 3bae84969..ab6826583 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@patternfly/react-styles": "4.92.6", "@patternfly/react-table": "4.113.0", "@patternfly/react-tokens": "4.94.6", - "@redhat-cloud-services/frontend-components": "^3.9.35", + "@redhat-cloud-services/frontend-components": "^3.9.36", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", From bfe1ec711b8d233506291cc3f76f796b315be085 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 10:57:53 +0000 Subject: [PATCH 28/43] (chore): Bump typescript from 5.0.4 to 5.1.3 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.0.4 to 5.1.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.0.4...v5.1.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f4a131ee..d50e4bd02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -77,7 +77,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "rimraf": "^5.0.1", - "typescript": "^5.0.4", + "typescript": "^5.1.3", "webpack-bundle-analyzer": "^4.9.0" }, "engines": { @@ -17847,16 +17847,16 @@ } }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { @@ -33025,9 +33025,9 @@ "integrity": "sha512-bna6Yi1pRznoo6Bz1cE6btB/Yy8Xywytyfrzu/wc+NFW3ZF0I+2iCGImhBsoYYCOWuICtRO4yHcnDlzgo1AdNg==" }, "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "devOptional": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 3bae84969..1bcfdf88d 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "rimraf": "^5.0.1", - "typescript": "^5.0.4", + "typescript": "^5.1.3", "webpack-bundle-analyzer": "^4.9.0" }, "overrides": { From 0ca838ba1a28b27064b500aae81fa6346db9b18c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 10:58:52 +0000 Subject: [PATCH 29/43] (chore): Bump eslint-plugin-jest-dom from 4.0.3 to 5.0.1 Bumps [eslint-plugin-jest-dom](https://github.com/testing-library/eslint-plugin-jest-dom) from 4.0.3 to 5.0.1. - [Release notes](https://github.com/testing-library/eslint-plugin-jest-dom/releases) - [Commits](https://github.com/testing-library/eslint-plugin-jest-dom/compare/v4.0.3...v5.0.1) --- updated-dependencies: - dependency-name: eslint-plugin-jest-dom dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 173 +++------------------------------------------- package.json | 2 +- 2 files changed, 9 insertions(+), 166 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c0539c63..191756020 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "copy-webpack-plugin": "^11.0.0", "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", - "eslint-plugin-jest-dom": "^4.0.3", + "eslint-plugin-jest-dom": "^5.0.1", "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", @@ -7924,13 +7924,12 @@ } }, "node_modules/eslint-plugin-jest-dom": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-4.0.3.tgz", - "integrity": "sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-5.0.1.tgz", + "integrity": "sha512-zD/BjNk12R5R9cxIu8oa2HfNeDSknI3ewtN8nygIUMQuieWDnTY9Np//6a1Z3G7Y3dx3l45hCUR4EphsgRmUtA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.3", - "@testing-library/dom": "^8.11.1", "requireindex": "^1.2.0" }, "engines": { @@ -7939,98 +7938,10 @@ "yarn": ">=1" }, "peerDependencies": { + "@testing-library/dom": "^8.0.0 || ^9.0.0", "eslint": "^6.8.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-jest-dom/node_modules/@testing-library/dom": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz", - "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/eslint-plugin-jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint-plugin-jest-dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint-plugin-jest-dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-jest-dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint-plugin-jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint-plugin-jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint-plugin-jsdoc": { "version": "46.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz", @@ -25771,81 +25682,13 @@ "requires": {} }, "eslint-plugin-jest-dom": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-4.0.3.tgz", - "integrity": "sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-5.0.1.tgz", + "integrity": "sha512-zD/BjNk12R5R9cxIu8oa2HfNeDSknI3ewtN8nygIUMQuieWDnTY9Np//6a1Z3G7Y3dx3l45hCUR4EphsgRmUtA==", "dev": true, "requires": { "@babel/runtime": "^7.16.3", - "@testing-library/dom": "^8.11.1", "requireindex": "^1.2.0" - }, - "dependencies": { - "@testing-library/dom": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz", - "integrity": "sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "eslint-plugin-jsdoc": { diff --git a/package.json b/package.json index 498ad0841..9114ac1ae 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "copy-webpack-plugin": "^11.0.0", "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", - "eslint-plugin-jest-dom": "^4.0.3", + "eslint-plugin-jest-dom": "^5.0.1", "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", From cdf811dd85c3db6d6105ebb7d99b031d4fb6de51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:36:28 +0000 Subject: [PATCH 30/43] (chore): Bump eslint-plugin-jsdoc from 46.1.0 to 46.2.4 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.1.0 to 46.2.4. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.1.0...v46.2.4) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 191756020..7e77f23be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.1.0", + "eslint-plugin-jsdoc": "^46.2.4", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -7943,9 +7943,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz", - "integrity": "sha512-NpjpSuWR+Wwxzmssji7AVty1Vu0JvI7v+cTj+Rw1nKVjGv2eMvLGM/SI4VpgTXp82JbLtFOsA2QYLHT3YSmASA==", + "version": "46.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.4.tgz", + "integrity": "sha512-QVURyOFEqkUswFOou0w1rfHshRfah7EeTd9laVllO6tb/+ymjPY1IkP16e24yX0BB7jRy8krJi99jHG2UWAPog==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", @@ -25692,9 +25692,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "46.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.1.0.tgz", - "integrity": "sha512-NpjpSuWR+Wwxzmssji7AVty1Vu0JvI7v+cTj+Rw1nKVjGv2eMvLGM/SI4VpgTXp82JbLtFOsA2QYLHT3YSmASA==", + "version": "46.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.4.tgz", + "integrity": "sha512-QVURyOFEqkUswFOou0w1rfHshRfah7EeTd9laVllO6tb/+ymjPY1IkP16e24yX0BB7jRy8krJi99jHG2UWAPog==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.39.4", diff --git a/package.json b/package.json index 9114ac1ae..1d1464bbf 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.1", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.1.0", + "eslint-plugin-jsdoc": "^46.2.4", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From fe75d0f883026555d664382f79a6017b55df31e0 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 5 Jun 2023 13:31:19 -0400 Subject: [PATCH 31/43] Add Unleash flag for "platform projects" tab in settings page https://issues.redhat.com/browse/COST-3818 --- src/components/featureFlags/featureFlags.tsx | 2 ++ src/store/featureFlags/featureFlagsActions.ts | 1 + src/store/featureFlags/featureFlagsReducer.ts | 3 +++ src/store/featureFlags/featureFlagsSelectors.ts | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/components/featureFlags/featureFlags.tsx b/src/components/featureFlags/featureFlags.tsx index 4fe0d2a2a..40abc0cd6 100644 --- a/src/components/featureFlags/featureFlags.tsx +++ b/src/components/featureFlags/featureFlags.tsx @@ -13,6 +13,7 @@ export const enum FeatureToggle { ros = 'cost-management.ui.ros', // ROS support https://issues.redhat.com/browse/COST-3477 rosBeta = 'cost-management.ui.ros-beta', // ROS support https://issues.redhat.com/browse/COST-3477 settings = 'cost-management.ui.settings', // Settings page https://issues.redhat.com/browse/COST-3307 + settingsPlatform = 'cost-management.ui.settings.platform', // Platform projects https://issues.redhat.com/browse/COST-3818 } // The FeatureFlags component saves feature flags in store for places where Unleash hooks not available @@ -64,6 +65,7 @@ const useFeatureFlags = () => { client.isEnabled(FeatureToggle.ros) || (client.isEnabled(FeatureToggle.rosBeta) && insights && insights.chrome && insights.chrome.isBeta()), isSettingsFeatureEnabled: client.isEnabled(FeatureToggle.settings), + isSettingsPlatformFeatureEnabled: client.isEnabled(FeatureToggle.settingsPlatform), }) ); }); diff --git a/src/store/featureFlags/featureFlagsActions.ts b/src/store/featureFlags/featureFlagsActions.ts index 106c2f2f0..61444d347 100644 --- a/src/store/featureFlags/featureFlagsActions.ts +++ b/src/store/featureFlags/featureFlagsActions.ts @@ -8,6 +8,7 @@ export interface FeatureFlagsActionMeta { isIbmFeatureEnabled?: boolean; isRosFeatureEnabled?: boolean; isSettingsFeatureEnabled?: boolean; + isSettingsPlatformFeatureEnabled?: boolean; } export const setFeatureFlags = createAction('feature/init_feature_flags')(); diff --git a/src/store/featureFlags/featureFlagsReducer.ts b/src/store/featureFlags/featureFlagsReducer.ts index a55919305..29d3517fe 100644 --- a/src/store/featureFlags/featureFlagsReducer.ts +++ b/src/store/featureFlags/featureFlagsReducer.ts @@ -15,6 +15,7 @@ export type FeatureFlagsState = Readonly<{ isIbmFeatureEnabled: boolean; isRosFeatureEnabled: boolean; isSettingsFeatureEnabled: boolean; + isSettingsPlatformFeatureEnabled: boolean; }>; export const defaultState: FeatureFlagsState = { @@ -26,6 +27,7 @@ export const defaultState: FeatureFlagsState = { isIbmFeatureEnabled: false, isRosFeatureEnabled: false, isSettingsFeatureEnabled: false, + isSettingsPlatformFeatureEnabled: false, }; export const stateKey = 'featureFlags'; @@ -43,6 +45,7 @@ export function featureFlagsReducer(state = defaultState, action: FeatureFlagsAc isIbmFeatureEnabled: action.payload.isIbmFeatureEnabled, isRosFeatureEnabled: action.payload.isRosFeatureEnabled, isSettingsFeatureEnabled: action.payload.isSettingsFeatureEnabled, + isSettingsPlatformFeatureEnabled: action.payload.isSettingsPlatformFeatureEnabled, }; default: diff --git a/src/store/featureFlags/featureFlagsSelectors.ts b/src/store/featureFlags/featureFlagsSelectors.ts index 7b851940f..04c5b58d0 100644 --- a/src/store/featureFlags/featureFlagsSelectors.ts +++ b/src/store/featureFlags/featureFlagsSelectors.ts @@ -18,3 +18,5 @@ export const selectIsIbmFeatureEnabled = (state: RootState) => selectFeatureFlag export const selectIsRosFeatureEnabled = (state: RootState) => selectFeatureFlagsState(state).isRosFeatureEnabled; export const selectIsSettingsFeatureEnabled = (state: RootState) => selectFeatureFlagsState(state).isSettingsFeatureEnabled; +export const selectIsSettingsPlatformFeatureEnabled = (state: RootState) => + selectFeatureFlagsState(state).isSettingsPlatformFeatureEnabled; From 22210a8575c1e431c01d07a6a62741c1e4cfc8db Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 5 Jun 2023 17:13:20 -0400 Subject: [PATCH 32/43] Create page platform projects tab for settings page https://issues.redhat.com/browse/COST-3818 --- locales/data.json | 66 ++++- locales/translations.json | 14 +- src/locales/messages.ts | 41 ++- src/routes/settings/platformProjects/index.ts | 1 + .../platformProjects.styles.ts | 20 ++ .../platformProjects/platformProjects.tsx | 265 ++++++++++++++++++ .../platformProjects/platformTable.tsx | 151 ++++++++++ .../platformProjects/platformToolbar.tsx | 149 ++++++++++ src/routes/settings/settings.tsx | 35 ++- src/routes/settings/tagDetails/tagDetails.tsx | 8 +- 10 files changed, 729 insertions(+), 21 deletions(-) create mode 100644 src/routes/settings/platformProjects/index.ts create mode 100644 src/routes/settings/platformProjects/platformProjects.styles.ts create mode 100644 src/routes/settings/platformProjects/platformProjects.tsx create mode 100644 src/routes/settings/platformProjects/platformTable.tsx create mode 100644 src/routes/settings/platformProjects/platformToolbar.tsx diff --git a/locales/data.json b/locales/data.json index 155371924..95ddb2291 100644 --- a/locales/data.json +++ b/locales/data.json @@ -1,5 +1,11 @@ { "en": { + "addProjects": [ + { + "type": 0, + "value": "Add projects" + } + ], "allOtherProjectCosts": [ { "type": 0, @@ -2746,6 +2752,14 @@ } ] }, + "group": { + "value": [ + { + "type": 0, + "value": "Group" + } + ] + }, "name": { "value": [ { @@ -3453,7 +3467,7 @@ "docsConfigCostCategory": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/2023" } ], "docsConfigCostModels": [ @@ -3462,6 +3476,12 @@ "value": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html-single/using_cost_models/index#assembly-setting-up-cost-models" } ], + "docsConfigPlatformProjects": [ + { + "type": 0, + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/2023" + } + ], "docsConfigTags": [ { "type": 0, @@ -7091,6 +7111,14 @@ } ] }, + "group": { + "value": [ + { + "type": 0, + "value": "Filter by group" + } + ] + }, "name": { "value": [ { @@ -7294,6 +7322,14 @@ } ] }, + "group": { + "value": [ + { + "type": 0, + "value": "Group" + } + ] + }, "name": { "value": [ { @@ -11022,6 +11058,16 @@ "value": "value" } ], + "platfomProjectaDesc": [ + { + "type": 0, + "value": "Associate additional projects with OpenShift Platform project costs to charge for utilization of resources. Changes will be reflected in this month's cost calculations within 24 hrs. " + }, + { + "type": 1, + "value": "learnMore" + } + ], "platform": [ { "type": 0, @@ -11040,6 +11086,12 @@ "value": "Platform distributed" } ], + "platformProjectsTitle": [ + { + "type": 0, + "value": "Platform projects" + } + ], "priceList": [ { "type": 0, @@ -11196,6 +11248,12 @@ "value": "Remove" } ], + "removeProjects": [ + { + "type": 0, + "value": "Remove projects" + } + ], "requests": [ { "type": 0, @@ -11322,6 +11380,12 @@ "value": "Select categories to enable or disable" } ], + "selectProjects": [ + { + "type": 0, + "value": "Select projects to add or remove" + } + ], "selectRow": [ { "type": 0, diff --git a/locales/translations.json b/locales/translations.json index 49e42cc3d..252a7e590 100644 --- a/locales/translations.json +++ b/locales/translations.json @@ -1,4 +1,5 @@ { + "addProjects": "Add projects", "allOtherProjectCosts": "Project (All other costs)", "aws": "Amazon Web Services", "awsComputeTitle": "Compute (EC2) instances usage", @@ -210,7 +211,7 @@ "detailsCostValue": "Cost: {value}", "detailsEmptyState": "Processing data to generate a list of all services that sums to a total cost...", "detailsMoreClusters": ", {value} more...", - "detailsResourceNames": "{value, select, account {Account names} aws_category {Cost category names} cluster {Cluster names} gcp_project {GCP project names} name {Name} node {Node names} org_unit_id {Organizational unit names} payer_tenant_id {Account names} product_service {Service names} project {Project names} region {Region names} resource_location {Region names} service {Service names} service_name {Service names} status {Status} subscription_guid {Account names} source_type {Source type} tag {Tag names} other {}}", + "detailsResourceNames": "{value, select, account {Account names} aws_category {Cost category names} cluster {Cluster names} gcp_project {GCP project names} group {Group} name {Name} node {Node names} org_unit_id {Organizational unit names} payer_tenant_id {Account names} product_service {Service names} project {Project names} region {Region names} resource_location {Region names} service {Service names} service_name {Service names} status {Status} subscription_guid {Account names} source_type {Source type} tag {Tag names} other {}}", "detailsSummaryModalTitle": "{groupBy, select, account {{name} accounts} aws_category {{name} cost categories} cluster {{name} clusters} gcp_project {{name} GCP projects} node {{name} nodes} org_unit_id {{name} organizational units} payer_tenant_id {{name} accounts} product_service {{name} services} project {{name} projects} region {{name} regions} resource_location {{name} regions} service {{name} services} service_name {{name} services} subscription_guid {{name} accounts} tag {{name} tags} other {}}", "detailsUnusedRequestsLabel": "Unrequested capacity", "detailsUnusedUnits": "{units} ({percentage}% of capacity)", @@ -230,8 +231,9 @@ "distributionTypeDesc": "{type, select, cpu {Distribute costs based on CPU usage}memory {Distribute costs based on memory usage}other {}}", "doNotDistribute": "Do not distribute", "docsAddOcpSources": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html-single/adding_an_openshift_container_platform_source_to_cost_management", - "docsConfigCostCategory": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management", + "docsConfigCostCategory": "https://access.redhat.com/documentation/en-us/cost_management_service/2023", "docsConfigCostModels": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html-single/using_cost_models/index#assembly-setting-up-cost-models", + "docsConfigPlatformProjects": "https://access.redhat.com/documentation/en-us/cost_management_service/2023", "docsConfigTags": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management", "docsCostModelTerminology": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html-single/using_cost_models/index#cost-model-terminology", "docsCostModelsDistribution": "https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models", @@ -296,12 +298,12 @@ "filterByInputAriaLabel": "{value, select, account {Input for account name} aws_category {Input for cost category name} cluster {Input for cluster name} gcp_project {Input for GCP project name} name {Input for name name} node {Input for node name} org_unit_id {Input for organizational unit name} payer_tenant_id {Input for account name} product_service {Input for service_name name} project {Input for project name} region {Input for region name} resource_location {Input for region name} service {Input for service name} service_name {Input for service_name name} subscription_guid {Input for account name} tag {Input for tag name} other {}}", "filterByOrgUnitAriaLabel": "Organizational units", "filterByOrgUnitPlaceholder": "Choose unit", - "filterByPlaceholder": "{value, select, account {Filter by account} aws_category {Filter by cost category} cluster {Filter by cluster} container {Filter by container} description {Filter by description} gcp_project {Filter by GCP project} name {Filter by name} node {Filter by node} org_unit_id {Filter by organizational unit} payer_tenant_id {Filter by account} product_service {Filter by service} project {Filter by project} region {Filter by region} resource_location {Filter by region} service {Filter by service} service_name {Filter by service} source_type {Filter by source type} status {Filter by status} subscription_guid {Filter by account} workload {Filter by workload name} workload_type {Filter by workload type} tag {Filter by tag} other {}}", + "filterByPlaceholder": "{value, select, account {Filter by account} aws_category {Filter by cost category} cluster {Filter by cluster} container {Filter by container} description {Filter by description} gcp_project {Filter by GCP project} group {Filter by group} name {Filter by name} node {Filter by node} org_unit_id {Filter by organizational unit} payer_tenant_id {Filter by account} product_service {Filter by service} project {Filter by project} region {Filter by region} resource_location {Filter by region} service {Filter by service} service_name {Filter by service} source_type {Filter by source type} status {Filter by status} subscription_guid {Filter by account} workload {Filter by workload name} workload_type {Filter by workload type} tag {Filter by tag} other {}}", "filterByTagKeyAriaLabel": "Tag keys", "filterByTagValueAriaLabel": "Tag values", "filterByTagValueButtonAriaLabel": "Filter button for tag value", "filterByValuePlaceholder": "Filter by value", - "filterByValues": "{value, select, account {Account} aws_category {Cost category} cluster {Cluster} container {Container} gcp_project {GCP project} name {Name} node {Node} org_unit_id {Organizational unit} payer_tenant_id {Account} product_service {Service} project {Project} region {Region} resource_location {Region} service {Service} service_name {Service} status {Status} source_type {Source type} subscription_guid {Account} tag {Tag} workload {Workload name} workload_type {Workload type} other {}}", + "filterByValues": "{value, select, account {Account} aws_category {Cost category} cluster {Cluster} container {Container} gcp_project {GCP project} group {Group} name {Name} node {Node} org_unit_id {Organizational unit} payer_tenant_id {Account} product_service {Service} project {Project} region {Region} resource_location {Region} service {Service} service_name {Service} status {Status} source_type {Source type} subscription_guid {Account} tag {Tag} workload {Workload name} workload_type {Workload type} other {}}", "filterByWorkloadTypeAriaLabel": "Workload types", "forDate": "{value} for {dateRange}", "gcp": "Google Cloud Platform", @@ -462,9 +464,11 @@ "percentTotalCost": "{value} {units} ({percent} %)", "perspective": "Perspective", "perspectiveValues": "{value, select, aws {Amazon Web Services} aws_ocp {Amazon Web Services filtered by OpenShift} azure {Microsoft Azure} oci {Oracle Cloud Infrastructure} azure_ocp {Microsoft Azure filtered by OpenShift} gcp {Google Cloud Platform} gcp_ocp {Google Cloud Platform filtered by OpenShift} ibm {IBM Cloud} ibm_ocp {IBM filtered by OpenShift} ocp {All OpenShift} ocp_cloud {All cloud filtered by OpenShift} rhel {All RHEL} other {}}", + "platfomProjectaDesc": "Associate additional projects with OpenShift Platform project costs to charge for utilization of resources. Changes will be reflected in this month's cost calculations within 24 hrs. {learnMore}", "platform": "Platform", "platformDesc": "Distribute the cost of running the OpenShift services to projects", "platformDistributed": "Platform distributed", + "platformProjectsTitle": "Platform projects", "priceList": "Price list", "priceListAddRate": "Add rate", "priceListDeleteRate": "Delete rate", @@ -483,6 +487,7 @@ "recommended": "Recommended", "redHatStatusUrl": "https://status.redhat.com", "remove": "Remove", + "removeProjects": "Remove projects", "requests": "Requests", "rhel": "RHEL", "rhelCpuUsageAndRequests": "CPU usage and requests", @@ -500,6 +505,7 @@ "select": "Select...", "selectAll": "Select all", "selectCategories": "Select categories to enable or disable", + "selectProjects": "Select projects to add or remove", "selectRow": "Select row {value}", "selectTags": "Select tags to enable or disable", "selectableTableAriaLabel": "Selectable table", diff --git a/src/locales/messages.ts b/src/locales/messages.ts index fd754ccdc..030c115a1 100644 --- a/src/locales/messages.ts +++ b/src/locales/messages.ts @@ -2,6 +2,11 @@ import { defineMessages } from 'react-intl'; export default defineMessages({ + addProjects: { + defaultMessage: 'Add projects', + description: 'Add projects', + id: 'addProjects', + }, allOtherProjectCosts: { defaultMessage: 'Project (All other costs)', description: 'Project (All other costs)', @@ -1209,6 +1214,7 @@ export default defineMessages({ 'aws_category {Cost category names} ' + 'cluster {Cluster names} ' + 'gcp_project {GCP project names} ' + + 'group {Group} ' + 'name {Name} ' + 'node {Node names} ' + 'org_unit_id {Organizational unit names} ' + @@ -1369,10 +1375,8 @@ export default defineMessages({ id: 'docsAddOcpSources', }, docsConfigCostCategory: { - defaultMessage: - 'https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management', - description: - 'https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management', + defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/2023', + description: 'https://access.redhat.com/documentation/en-us/cost_management_service/2023', id: 'docsConfigCostCategory', }, docsConfigCostModels: { @@ -1382,6 +1386,11 @@ export default defineMessages({ 'https://access.redhat.com/documentation/en-us/cost_management_service/2023/html-single/using_cost_models/index#assembly-setting-up-cost-models', id: 'docsConfigCostModels', }, + docsConfigPlatformProjects: { + defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/2023', + description: 'https://access.redhat.com/documentation/en-us/cost_management_service/2023', + id: 'docsConfigPlatformProjects', + }, docsConfigTags: { defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/2023/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management', @@ -1850,6 +1859,7 @@ export default defineMessages({ 'container {Filter by container} ' + 'description {Filter by description} ' + 'gcp_project {Filter by GCP project} ' + + 'group {Filter by group} ' + 'name {Filter by name} ' + 'node {Filter by node} ' + 'org_unit_id {Filter by organizational unit} ' + @@ -1898,6 +1908,7 @@ export default defineMessages({ 'cluster {Cluster} ' + 'container {Container} ' + 'gcp_project {GCP project} ' + + 'group {Group} ' + 'name {Name} ' + 'node {Node} ' + 'org_unit_id {Organizational unit} ' + @@ -2898,6 +2909,13 @@ export default defineMessages({ description: 'Perspective values', id: 'perspectiveValues', }, + platfomProjectaDesc: { + defaultMessage: + "Associate additional projects with OpenShift Platform project costs to charge for utilization of resources. Changes will be reflected in this month's cost calculations within 24 hrs. {learnMore}", + description: + "Associate additional projects with OpenShift Platform project costs to charge for utilization of resources. Changes will be reflected in this month's cost calculations within 24 hrs. {learnMore}", + id: 'platfomProjectaDesc', + }, platform: { defaultMessage: 'Platform', description: 'Platform', @@ -2913,6 +2931,11 @@ export default defineMessages({ description: 'Platform distributed', id: 'platformDistributed', }, + platformProjectsTitle: { + defaultMessage: 'Platform projects', + description: 'Platform projects', + id: 'platformProjectsTitle', + }, priceList: { defaultMessage: 'Price list', description: 'Price list', @@ -3005,6 +3028,11 @@ export default defineMessages({ description: 'Remove', id: 'remove', }, + removeProjects: { + defaultMessage: 'Remove projects', + description: 'Remove projects', + id: 'removeProjects', + }, requests: { defaultMessage: 'Requests', description: 'Requests', @@ -3092,6 +3120,11 @@ export default defineMessages({ description: 'Select categories to enable or disable', id: 'selectCategories', }, + selectProjects: { + defaultMessage: 'Select projects to add or remove', + description: 'Select projects to add or remove', + id: 'selectProjects', + }, selectRow: { defaultMessage: 'Select row {value}', description: 'Select row {value}', diff --git a/src/routes/settings/platformProjects/index.ts b/src/routes/settings/platformProjects/index.ts new file mode 100644 index 000000000..10fd79e85 --- /dev/null +++ b/src/routes/settings/platformProjects/index.ts @@ -0,0 +1 @@ +export { default as PlatformProjects } from './platformProjects'; diff --git a/src/routes/settings/platformProjects/platformProjects.styles.ts b/src/routes/settings/platformProjects/platformProjects.styles.ts new file mode 100644 index 000000000..19d3215ba --- /dev/null +++ b/src/routes/settings/platformProjects/platformProjects.styles.ts @@ -0,0 +1,20 @@ +import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; +import global_spacer_md from '@patternfly/react-tokens/dist/js/global_spacer_md'; +import type React from 'react'; + +export const styles = { + action: { + marginLeft: global_spacer_md.var, + }, + descContainer: { + backgroundColor: global_BackgroundColor_light_100.value, + paddingLeft: global_spacer_md.value, + paddingRight: global_spacer_md.value, + paddingTop: global_spacer_md.value, + }, + pagination: { + backgroundColor: global_BackgroundColor_light_100.value, + paddingBottom: global_spacer_md.value, + paddingTop: global_spacer_md.value, + }, +} as { [className: string]: React.CSSProperties }; diff --git a/src/routes/settings/platformProjects/platformProjects.tsx b/src/routes/settings/platformProjects/platformProjects.tsx new file mode 100644 index 000000000..e2b0d21b8 --- /dev/null +++ b/src/routes/settings/platformProjects/platformProjects.tsx @@ -0,0 +1,265 @@ +import { PageSection, Pagination, PaginationVariant } from '@patternfly/react-core'; +import type { Query } from 'api/queries/query'; +import { getQuery } from 'api/queries/query'; +import type { Report } from 'api/reports/report'; +import { ReportPathsType, ReportType } from 'api/reports/report'; +import type { AxiosError } from 'axios'; +import messages from 'locales/messages'; +import React, { useEffect, useState } from 'react'; +import { useIntl } from 'react-intl'; +import { useDispatch, useSelector } from 'react-redux'; +import type { AnyAction } from 'redux'; +import type { ThunkDispatch } from 'redux-thunk'; +import { Loading } from 'routes/components/page/loading'; +import { NotAvailable } from 'routes/components/page/notAvailable'; +import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; +import { getUnsortedComputedReportItems } from 'routes/utils/computedReport/getComputedReportItems'; +import * as queryUtils from 'routes/utils/query'; +import type { RootState } from 'store'; +import { FetchStatus } from 'store/common'; +import { reportActions, reportSelectors } from 'store/reports'; + +import { styles } from './platformProjects.styles'; +import { PlatformTable } from './platformTable'; +import { PlatformToolbar } from './platformToolbar'; + +interface PlatformProjectsOwnProps { + // TBD... +} + +export interface PlatformProjectsMapProps { + query?: Query; +} + +export interface PlatformProjectsStateProps { + report?: Report; + reportError?: AxiosError; + reportFetchStatus?: FetchStatus; + reportQueryString?: string; +} + +type PlatformProjectsProps = PlatformProjectsOwnProps; + +const baseQuery: Query = { + filter: { + resolution: 'monthly', + time_scope_units: 'month', + time_scope_value: -1, + limit: 10, + offset: 0, + }, + filter_by: {}, + group_by: { + project: '*', + }, + order_by: { + cost: 'desc', + }, +}; + +const PlatformProjects: React.FC = () => { + const [isAllSelected, setIsAllSelected] = useState(false); + const [query, setQuery] = useState({ ...baseQuery }); + const [selectedItems, setSelectedItems] = useState([]); + const intl = useIntl(); + + const { report, reportError, reportFetchStatus, reportQueryString } = useMapToProps({ query }); + + const getComputedItems = () => { + return getUnsortedComputedReportItems({ + report, + idKey: 'project' as any, + }); + }; + + const getPagination = (isDisabled = false, isBottom = false) => { + const count = report && report.meta ? report.meta.count : 0; + const limit = + report && report.meta && report.meta.filter && report.meta.filter.limit + ? report.meta.filter.limit + : baseQuery.filter.limit; + const offset = + report && report.meta && report.meta.filter && report.meta.filter.offset + ? report.meta.filter.offset + : baseQuery.filter.offset; + const page = Math.trunc(offset / limit + 1); + + return ( + handleOnPerPageSelect(perPage)} + onSetPage={(event, pageNumber) => handleOnSetPage(pageNumber)} + page={page} + perPage={limit} + titles={{ + paginationTitle: intl.formatMessage(messages.paginationTitle, { + title: intl.formatMessage(messages.openShift), + placement: isBottom ? 'bottom' : 'top', + }), + }} + variant={isBottom ? PaginationVariant.bottom : PaginationVariant.top} + widgetId={`exports-pagination${isBottom ? '-bottom' : ''}`} + /> + ); + }; + + const getTable = () => { + return ( + handleOnSort(sortType, isSortAscending)} + report={report} + reportQueryString={reportQueryString} + selectedItems={selectedItems} + /> + ); + }; + + const getToolbar = (computedItems: ComputedReportItem[]) => { + const isDisabled = computedItems.length === 0; + const itemsTotal = report && report.meta ? report.meta.count : 0; + + return ( + handleOnFilterAdded(filter)} + onFilterRemoved={filter => handleOnFilterRemoved(filter)} + onRemoveProjects={handleOnRemoveProjects} + pagination={getPagination(isDisabled)} + query={query} + selectedItems={selectedItems} + /> + ); + }; + + const handleOnBulkSelected = (action: string) => { + if (action === 'none') { + setIsAllSelected(false); + setSelectedItems([]); + } else if (action === 'page') { + setIsAllSelected(false); + setSelectedItems(getComputedItems()); + } else if (action === 'all') { + setIsAllSelected(!isAllSelected); + setSelectedItems([]); + } + }; + + const handleOnAddProjects = () => {}; + + const handleOnRemoveProjects = () => {}; + + const handleOnFilterAdded = filter => { + const newQuery = queryUtils.handleOnFilterAdded(query, filter); + setQuery(newQuery); + }; + + const handleOnFilterRemoved = filter => { + const newQuery = queryUtils.handleOnFilterRemoved(query, filter); + setQuery(newQuery); + }; + + const handleOnPerPageSelect = perPage => { + const newQuery = queryUtils.handleOnPerPageSelect(query, perPage); + setQuery(newQuery); + }; + + const handleOnSetPage = pageNumber => { + const newQuery = queryUtils.handleOnSetPage(query, report, pageNumber); + setQuery(newQuery); + }; + + const handleOnSelected = (items: ComputedReportItem[], isSelected: boolean = false) => { + let newItems = [...(isAllSelected ? getComputedItems() : selectedItems)]; + if (items && items.length > 0) { + if (isSelected) { + items.map(item => newItems.push(item)); + } else { + items.map(item => { + newItems = newItems.filter(val => val.id !== item.id); + }); + } + } + setIsAllSelected(false); + setSelectedItems(newItems); + }; + + const handleOnSort = (sortType, isSortAscending) => { + const newQuery = queryUtils.handleOnSort(query, sortType, isSortAscending); + setQuery(newQuery); + }; + + const computedItems = getComputedItems(); + const isDisabled = computedItems.length === 0; + + // Note: Providers are fetched via the AccountSettings component used by all routes + if (reportError) { + return ; + } + return ( + +
+ {intl.formatMessage(messages.platfomProjectaDesc, { + learnMore: ( + + {intl.formatMessage(messages.learnMore)} + + ), + })} +
+ {getToolbar(computedItems)} + {reportFetchStatus === FetchStatus.inProgress ? ( + + ) : ( + <> + {getTable()} +
{getPagination(isDisabled, true)}
+ + )} +
+ ); +}; + +// eslint-disable-next-line no-empty-pattern +const useMapToProps = ({ query }: PlatformProjectsMapProps): PlatformProjectsStateProps => { + const reportType = ReportType.cost; + const reportPathsType = ReportPathsType.ocp; + const dispatch: ThunkDispatch = useDispatch(); + + const reportQueryString = getQuery(query); + const report = useSelector((state: RootState) => + reportSelectors.selectReport(state, reportPathsType, reportType, reportQueryString) + ); + const reportFetchStatus = useSelector((state: RootState) => + reportSelectors.selectReportFetchStatus(state, reportPathsType, reportType, reportQueryString) + ); + const reportError = useSelector((state: RootState) => + reportSelectors.selectReportError(state, reportPathsType, reportType, reportQueryString) + ); + + useEffect(() => { + if (!reportError && reportFetchStatus !== FetchStatus.inProgress) { + dispatch(reportActions.fetchReport(reportPathsType, reportType, reportQueryString)); + } + }, [query]); + + return { + report, + reportError, + reportFetchStatus, + reportQueryString, + }; +}; + +export default PlatformProjects; diff --git a/src/routes/settings/platformProjects/platformTable.tsx b/src/routes/settings/platformProjects/platformTable.tsx new file mode 100644 index 000000000..bfb29624c --- /dev/null +++ b/src/routes/settings/platformProjects/platformTable.tsx @@ -0,0 +1,151 @@ +import 'routes/components/dataTable/dataTable.scss'; + +import { Label } from '@patternfly/react-core'; +import type { Report, ReportItem } from 'api/reports/report'; +import messages from 'locales/messages'; +import React from 'react'; +import type { WrappedComponentProps } from 'react-intl'; +import { injectIntl } from 'react-intl'; +import { DataTable } from 'routes/components/dataTable'; +import { styles } from 'routes/components/dataTable/dataTable.styles'; +import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; +import { getUnsortedComputedReportItems } from 'routes/utils/computedReport/getComputedReportItems'; +import type { RouterComponentProps } from 'utils/router'; +import { withRouter } from 'utils/router'; + +interface PlatformTableOwnProps extends RouterComponentProps, WrappedComponentProps { + filterBy?: any; + isAllSelected?: boolean; + isLoading?: boolean; + onSelected(items: ComputedReportItem[], isSelected: boolean); + onSort(value: string, isSortAscending: boolean); + orderBy?: any; + report: Report; + reportQueryString: string; + selectedItems?: ComputedReportItem[]; +} + +interface PlatformTableState { + columns?: any[]; + rows?: any[]; +} + +type PlatformTableProps = PlatformTableOwnProps; + +export const PlatformTableColumnIds = { + infrastructure: 'infrastructure', + monthOverMonth: 'monthOverMonth', + supplementary: 'supplementary', +}; + +class PlatformTableBase extends React.Component { + public state: PlatformTableState = { + columns: [], + rows: [], + }; + + public componentDidMount() { + this.initDatum(); + } + + public componentDidUpdate(prevProps: PlatformTableProps) { + const { report, selectedItems } = this.props; + const currentReport = report && report.data ? JSON.stringify(report.data) : ''; + const previousReport = prevProps.report && prevProps.report.data ? JSON.stringify(prevProps.report.data) : ''; + + if (previousReport !== currentReport || prevProps.selectedItems !== selectedItems) { + this.initDatum(); + } + } + + private initDatum = () => { + const { intl, isAllSelected, report, selectedItems } = this.props; + if (!report) { + return; + } + + const rows = []; + const computedItems = getUnsortedComputedReportItems({ + report, + idKey: 'project' as any, + }); + + const columns = [ + { + name: '', // Selection column + }, + { + orderBy: 'project', // Todo: update filter name + name: intl.formatMessage(messages.detailsResourceNames, { value: 'name' }), + ...(computedItems.length && { isSortable: true }), + }, + { + orderBy: 'group', + name: intl.formatMessage(messages.detailsResourceNames, { value: 'group' }), + ...(computedItems.length && { isSortable: true }), + }, + { + orderBy: 'cluster', + name: intl.formatMessage(messages.clusters), + ...(computedItems.length && { isSortable: true }), + style: styles.lastItemColumn, + }, + ]; + + computedItems.map(item => { + const label = item && item.label !== null ? item.label : ''; + + rows.push({ + cells: [ + {}, // Empty cell for row selection + { + value: label, + }, + { + value: ( + + ), + }, + { value: 'cluster', style: styles.lastItem }, + ], + item, + selected: isAllSelected || (selectedItems && selectedItems.find(val => val.id === item.id) !== undefined), + }); + }); + + const filteredColumns = (columns as any[]).filter(column => !column.hidden); + const filteredRows = rows.map(({ ...row }) => { + row.cells = row.cells.filter(cell => !cell.hidden); + return row; + }); + + this.setState({ + columns: filteredColumns, + rows: filteredRows, + }); + }; + + public render() { + const { filterBy, isLoading, onSelected, onSort, orderBy, selectedItems } = this.props; + const { columns, rows } = this.state; + + return ( + + ); + } +} + +const PlatformTable = injectIntl(withRouter(PlatformTableBase)); + +export { PlatformTable }; diff --git a/src/routes/settings/platformProjects/platformToolbar.tsx b/src/routes/settings/platformProjects/platformToolbar.tsx new file mode 100644 index 000000000..4b299588c --- /dev/null +++ b/src/routes/settings/platformProjects/platformToolbar.tsx @@ -0,0 +1,149 @@ +import type { ToolbarChipGroup } from '@patternfly/react-core'; +import { Button, ButtonVariant, Tooltip } from '@patternfly/react-core'; +import type { OcpQuery } from 'api/queries/ocpQuery'; +import { ResourcePathsType } from 'api/resources/resource'; +import messages from 'locales/messages'; +import React from 'react'; +import type { WrappedComponentProps } from 'react-intl'; +import { injectIntl } from 'react-intl'; +import { connect } from 'react-redux'; +import { BasicToolbar } from 'routes/components/dataToolbar'; +import type { ComputedReportItem } from 'routes/utils/computedReport/getComputedReportItems'; +import type { Filter } from 'routes/utils/filter'; +import { createMapStateToProps } from 'store/common'; + +import { styles } from './platformProjects.styles'; + +interface PlatformToolbarOwnProps { + isAllSelected?: boolean; + isDisabled?: boolean; + itemsPerPage?: number; + itemsTotal?: number; + onAddProjects(); + onBulkSelected(action: string); + onFilterAdded(filter: Filter); + onFilterRemoved(filter: Filter); + onRemoveProjects(); + pagination?: React.ReactNode; + query?: OcpQuery; + selectedItems?: ComputedReportItem[]; +} + +interface PlatformToolbarStateProps { + // TBD... +} + +interface PlatformToolbarDispatchProps { + // TBD... +} + +interface PlatformToolbarState { + categoryOptions?: ToolbarChipGroup[]; +} + +type PlatformToolbarProps = PlatformToolbarOwnProps & + PlatformToolbarStateProps & + PlatformToolbarDispatchProps & + WrappedComponentProps; + +export class PlatformToolbarBase extends React.Component { + protected defaultState: PlatformToolbarState = {}; + public state: PlatformToolbarState = { ...this.defaultState }; + + public componentDidMount() { + this.setState({ + categoryOptions: this.getCategoryOptions(), + }); + } + + private getActions = () => { + const { intl, onAddProjects, onRemoveProjects, selectedItems } = this.props; + + const isDisabled = selectedItems.length === 0; + + return ( + <> + + + + + + + + ); + }; + + private getCategoryOptions = (): ToolbarChipGroup[] => { + const { intl } = this.props; + + const options = [ + { name: intl.formatMessage(messages.filterByValues, { value: 'name' }), key: 'project' }, // Todo: update filter name + { name: intl.formatMessage(messages.filterByValues, { value: 'group' }), key: 'group' }, + { name: intl.formatMessage(messages.filterByValues, { value: 'cluster' }), key: 'cluster' }, + ]; + return options; + }; + + public render() { + const { + isAllSelected, + isDisabled, + itemsPerPage, + itemsTotal, + onBulkSelected, + onFilterAdded, + onFilterRemoved, + pagination, + query, + selectedItems, + } = this.props; + const { categoryOptions } = this.state; + + return ( + + ); + } +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const mapStateToProps = createMapStateToProps((state, props) => { + return { + // TBD... + }; +}); + +const mapDispatchToProps: PlatformToolbarDispatchProps = { + // TBD... +}; + +const PlatformToolbarConnect = connect(mapStateToProps, mapDispatchToProps)(PlatformToolbarBase); +const PlatformToolbar = injectIntl(PlatformToolbarConnect); + +export { PlatformToolbar }; +export type { PlatformToolbarProps }; diff --git a/src/routes/settings/settings.tsx b/src/routes/settings/settings.tsx index 801466921..4d0ae0c52 100644 --- a/src/routes/settings/settings.tsx +++ b/src/routes/settings/settings.tsx @@ -14,9 +14,11 @@ import { Loading } from 'routes/components/page/loading'; import { NotAuthorized } from 'routes/components/page/notAuthorized'; import { Calculations } from 'routes/settings/calculations'; import { CostModelsDetails } from 'routes/settings/costModels'; +import { PlatformProjects } from 'routes/settings/platformProjects'; import { TagDetails } from 'routes/settings/tagDetails'; import type { RootState } from 'store'; import { FetchStatus } from 'store/common'; +import { featureFlagsSelectors } from 'store/featureFlags'; import { userAccessQuery, userAccessSelectors } from 'store/userAccess'; import type { ChromeComponentProps } from 'utils/chrome'; import { withChrome } from 'utils/chrome'; @@ -31,6 +33,7 @@ const enum SettingsTab { costModels = 'cost_models', calculations = 'calculations', costCategory = 'cost_category', + platformProjects = 'platform_projects', tags = 'tags', } @@ -42,6 +45,8 @@ export const getIdKeyForTab = (tab: SettingsTab) => { return 'calculations'; case SettingsTab.costCategory: return 'cost_category'; + case SettingsTab.platformProjects: + return 'platform_projects'; case SettingsTab.tags: return 'tags'; } @@ -61,6 +66,7 @@ export interface SettingsMapProps { } export interface SettingsStateProps { + isSettingsPlatformEnabled?: boolean; userAccess: UserAccess; userAccessError: AxiosError; userAccessFetchStatus: FetchStatus; @@ -71,7 +77,7 @@ type SettingsProps = SettingsOwnProps; const Settings: React.FC = ({ chrome }) => { const [activeTabKey, setActiveTabKey] = useState(0); - const { userAccess, userAccessFetchStatus } = useMapToProps(); + const { isSettingsPlatformEnabled, userAccess, userAccessFetchStatus } = useMapToProps(); const intl = useIntl(); const getAvailableTabs = () => { @@ -93,6 +99,12 @@ const Settings: React.FC = ({ chrome }) => { tab: SettingsTab.costCategory, }, ]; + if (isSettingsPlatformEnabled) { + availableTabs.push({ + contentRef: React.createRef(), + tab: SettingsTab.platformProjects, + }); + } return availableTabs; }; @@ -140,10 +152,12 @@ const Settings: React.FC = ({ chrome }) => { ); } else if (currentTab === SettingsTab.calculations) { return chrome.isOrgAdmin ? : notAuthorized; - } else if (currentTab === SettingsTab.tags) { - return chrome.isOrgAdmin ? : notAuthorized; } else if (currentTab === SettingsTab.costCategory) { return chrome.isOrgAdmin ? : notAuthorized; + } else if (currentTab === SettingsTab.platformProjects) { + return chrome.isOrgAdmin ? : notAuthorized; + } else if (currentTab === SettingsTab.tags) { + return chrome.isOrgAdmin ? : notAuthorized; } else { return emptyTab; } @@ -158,14 +172,16 @@ const Settings: React.FC = ({ chrome }) => { }; const getTabTitle = (tab: SettingsTab) => { - if (tab === SettingsTab.costModels) { - return intl.formatMessage(messages.costModels); - } else if (tab === SettingsTab.calculations) { + if (tab === SettingsTab.calculations) { return intl.formatMessage(messages.currencyCalcuationsTitle); - } else if (tab === SettingsTab.tags) { - return intl.formatMessage(messages.tagLabelsTitle); } else if (tab === SettingsTab.costCategory) { return intl.formatMessage(messages.costCategoryTitle); + } else if (tab === SettingsTab.costModels) { + return intl.formatMessage(messages.costModels); + } else if (tab === SettingsTab.platformProjects) { + return intl.formatMessage(messages.platformProjectsTitle); + } else if (tab === SettingsTab.tags) { + return intl.formatMessage(messages.tagLabelsTitle); } }; @@ -210,6 +226,9 @@ const useMapToProps = (): SettingsStateProps => { ); return { + isSettingsPlatformEnabled: useSelector((state: RootState) => + featureFlagsSelectors.selectIsSettingsPlatformFeatureEnabled(state) + ), userAccess, userAccessError, userAccessFetchStatus, diff --git a/src/routes/settings/tagDetails/tagDetails.tsx b/src/routes/settings/tagDetails/tagDetails.tsx index 3827158a5..540619180 100644 --- a/src/routes/settings/tagDetails/tagDetails.tsx +++ b/src/routes/settings/tagDetails/tagDetails.tsx @@ -132,8 +132,8 @@ const TagDetails: React.FC = () => { itemsPerPage={computedItems.length} itemsTotal={itemsTotal} onBulkSelected={handleOnBulkSelected} - onDisableTags={handleOnDisableCategories} - onEnableTags={handleOnEnableCategories} + onDisableTags={handleOnDisableTags} + onEnableTags={handleOnEnableTags} onFilterAdded={filter => handleOnFilterAdded(filter)} onFilterRemoved={filter => handleOnFilterRemoved(filter)} pagination={getPagination(isDisabled)} @@ -156,9 +156,9 @@ const TagDetails: React.FC = () => { } }; - const handleOnDisableCategories = () => {}; + const handleOnDisableTags = () => {}; - const handleOnEnableCategories = () => {}; + const handleOnEnableTags = () => {}; const handleOnFilterAdded = filter => { const newQuery = queryUtils.handleOnFilterAdded(query, filter); From 45a9814a35dfaca8b4acf04e107a9bbc44bed74a Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 5 Jun 2023 17:48:14 -0400 Subject: [PATCH 33/43] Updated snapshots --- src/store/featureFlags/__snapshots__/featureFlags.test.ts.snap | 1 + 1 file changed, 1 insertion(+) diff --git a/src/store/featureFlags/__snapshots__/featureFlags.test.ts.snap b/src/store/featureFlags/__snapshots__/featureFlags.test.ts.snap index d6c4ca3c7..41bf19be3 100644 --- a/src/store/featureFlags/__snapshots__/featureFlags.test.ts.snap +++ b/src/store/featureFlags/__snapshots__/featureFlags.test.ts.snap @@ -10,5 +10,6 @@ exports[`default state 1`] = ` "isIbmFeatureEnabled": false, "isRosFeatureEnabled": false, "isSettingsFeatureEnabled": false, + "isSettingsPlatformFeatureEnabled": false, } `; From ff74558e99e9b26d12c512b8486f698805af8e9e Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 5 Jun 2023 21:10:21 -0400 Subject: [PATCH 34/43] Update isSettingsFeatureEnabled property name --- src/components/permissions/permissions.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/permissions/permissions.tsx b/src/components/permissions/permissions.tsx index 30401a1ea..1573cc6f5 100644 --- a/src/components/permissions/permissions.tsx +++ b/src/components/permissions/permissions.tsx @@ -34,7 +34,7 @@ interface PermissionsStateProps { isFinsightsFeatureEnabled?: boolean; isIbmFeatureEnabled?: boolean; isRosFeatureEnabled?: boolean; - isSettingsEnabled?: boolean; + isSettingsFeatureEnabled?: boolean; userAccess: UserAccess; userAccessError: AxiosError; userAccessFetchStatus: FetchStatus; @@ -49,7 +49,7 @@ const PermissionsBase: React.FC = ({ isFinsightsFeatureEnabled, isIbmFeatureEnabled, isRosFeatureEnabled, - isSettingsEnabled, + isSettingsFeatureEnabled, userAccess, userAccessError, userAccessFetchStatus, @@ -68,7 +68,7 @@ const PermissionsBase: React.FC = ({ const ocp = hasOcpAccess(userAccess); const rhel = isFinsightsFeatureEnabled && hasRhelAccess(userAccess); const ros = isRosFeatureEnabled && hasRosAccess(userAccess); - const settings = isSettingsEnabled && (chrome.isOrgAdmin || costModel); + const settings = isSettingsFeatureEnabled && (chrome.isOrgAdmin || costModel); switch (pathname) { case formatPath(routes.explorer.path): @@ -136,7 +136,7 @@ const mapStateToProps = createMapStateToProps Date: Tue, 6 Jun 2023 10:57:51 +0000 Subject: [PATCH 35/43] (chore): Bump @typescript-eslint/eslint-plugin from 5.59.8 to 5.59.9 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.59.8 to 5.59.9. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.9/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 459 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 425 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e77f23be..170542a6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.8", + "@typescript-eslint/eslint-plugin": "^5.59.9", "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -3731,15 +3731,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", - "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz", + "integrity": "sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/type-utils": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/type-utils": "5.59.9", + "@typescript-eslint/utils": "5.59.9", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3764,6 +3764,65 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3842,13 +3901,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", - "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz", + "integrity": "sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.9", + "@typescript-eslint/utils": "5.59.9", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3868,6 +3927,108 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", + "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/types": { "version": "5.59.8", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", @@ -3942,17 +4103,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", - "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.9.tgz", + "integrity": "sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/typescript-estree": "5.59.9", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -3967,6 +4128,92 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", + "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22454,15 +22701,15 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz", - "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz", + "integrity": "sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/type-utils": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/type-utils": "5.59.9", + "@typescript-eslint/utils": "5.59.9", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -22471,6 +22718,38 @@ "tsutils": "^3.21.0" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" + } + }, + "@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22520,15 +22799,78 @@ } }, "@typescript-eslint/type-utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz", - "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz", + "integrity": "sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.8", - "@typescript-eslint/utils": "5.59.8", + "@typescript-eslint/typescript-estree": "5.59.9", + "@typescript-eslint/utils": "5.59.9", "debug": "^4.3.4", "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", + "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/types": { @@ -22579,21 +22921,68 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz", - "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.9.tgz", + "integrity": "sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/typescript-estree": "5.59.9", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" + } + }, + "@typescript-eslint/types": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", + "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.9", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", diff --git a/package.json b/package.json index 1d1464bbf..89e975cd3 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@types/react-dom": "^17.0.9", "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^5.59.8", + "@typescript-eslint/eslint-plugin": "^5.59.9", "@typescript-eslint/parser": "^5.59.8", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From b2704811417a1ccefef5e0af3ba58590df8d7603 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:00:19 +0000 Subject: [PATCH 36/43] (chore): Bump eslint-plugin-formatjs from 4.10.1 to 4.10.2 Bumps [eslint-plugin-formatjs](https://github.com/formatjs/formatjs) from 4.10.1 to 4.10.2. - [Release notes](https://github.com/formatjs/formatjs/releases) - [Commits](https://github.com/formatjs/formatjs/compare/eslint-plugin-formatjs@4.10.1...eslint-plugin-formatjs@4.10.2) --- updated-dependencies: - dependency-name: eslint-plugin-formatjs dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 198 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 180 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e77f23be..d8c03cb20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", "eslint": "^8.41.0", - "eslint-plugin-formatjs": "^4.10.1", + "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", "eslint-plugin-jsdoc": "^46.2.4", "eslint-plugin-markdown": "^3.0.0", @@ -932,12 +932,12 @@ } }, "node_modules/@formatjs/ts-transformer": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.1.tgz", - "integrity": "sha512-U5BuLqFx5wre5Q0NrZhBh7itMJZISYuZGoj8HdN/UO1EKaTL2HQjE1G040GjTpY0k+AAyaHK3b8WPqgHLvIaIQ==", + "version": "3.13.2", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.2.tgz", + "integrity": "sha512-d1Q+ZgIPQfXxAVZrZ+bmdGGibzz8T83mrPMftWwAMc2bcFjdKpA79b9/pZNhaEW5ZCtXkLhuadgDEoa4ZNxNEA==", "dev": true, "dependencies": { - "@formatjs/icu-messageformat-parser": "2.4.0", + "@formatjs/icu-messageformat-parser": "2.5.0", "@types/json-stable-stringify": "^1.0.32", "@types/node": "14 || 16 || 17", "chalk": "^4.0.0", @@ -954,6 +954,46 @@ } } }, + "node_modules/@formatjs/ts-transformer/node_modules/@formatjs/ecma402-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", + "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", + "dev": true, + "dependencies": { + "@formatjs/intl-localematcher": "0.3.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.5.0.tgz", + "integrity": "sha512-8AwKRkVIZzVlvZwio1TcLVvUbJw0up1joa8//JIxKVeflqKiZwfzCGAelZt/4hHCEQf9NECose//nODnmBEkNQ==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.16.0", + "@formatjs/icu-skeleton-parser": "1.5.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.5.0.tgz", + "integrity": "sha512-R/wOg/hxh3JWNB4LHYfNtIe8PC39mkzplh6gtrqCY33EqYeUFEGOYTWJrkXNcoRXlZWQtfrH6REch5r57tAyMQ==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.16.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/ts-transformer/node_modules/@formatjs/intl-localematcher": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", + "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@formatjs/ts-transformer/node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", @@ -7738,13 +7778,13 @@ } }, "node_modules/eslint-plugin-formatjs": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.10.1.tgz", - "integrity": "sha512-sD3GGdfDQqiaW8TgbUD4lrUR+raIgusPzW+0v+iN36QzkHvpg5L0UZGFQE9GWtgnWfXAndb57UpgB0i/CF2G7w==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.10.2.tgz", + "integrity": "sha512-wUwFdZKI1m9d+QGaYKLw7OYM+/Bh0y7TVZfI0XuTikPTYUSrHW+VV8hK2e6UJIjkjGfozZYikBPESKgAtOOlfA==", "dev": true, "dependencies": { - "@formatjs/icu-messageformat-parser": "2.4.0", - "@formatjs/ts-transformer": "3.13.1", + "@formatjs/icu-messageformat-parser": "2.5.0", + "@formatjs/ts-transformer": "3.13.2", "@types/eslint": "7 || 8", "@types/picomatch": "^2.3.0", "@typescript-eslint/typescript-estree": "5.59.0", @@ -7759,6 +7799,46 @@ "eslint": "7 || 8" } }, + "node_modules/eslint-plugin-formatjs/node_modules/@formatjs/ecma402-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", + "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", + "dev": true, + "dependencies": { + "@formatjs/intl-localematcher": "0.3.0", + "tslib": "^2.4.0" + } + }, + "node_modules/eslint-plugin-formatjs/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.5.0.tgz", + "integrity": "sha512-8AwKRkVIZzVlvZwio1TcLVvUbJw0up1joa8//JIxKVeflqKiZwfzCGAelZt/4hHCEQf9NECose//nODnmBEkNQ==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.16.0", + "@formatjs/icu-skeleton-parser": "1.5.0", + "tslib": "^2.4.0" + } + }, + "node_modules/eslint-plugin-formatjs/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.5.0.tgz", + "integrity": "sha512-R/wOg/hxh3JWNB4LHYfNtIe8PC39mkzplh6gtrqCY33EqYeUFEGOYTWJrkXNcoRXlZWQtfrH6REch5r57tAyMQ==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "1.16.0", + "tslib": "^2.4.0" + } + }, + "node_modules/eslint-plugin-formatjs/node_modules/@formatjs/intl-localematcher": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", + "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/types": { "version": "5.59.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", @@ -20187,12 +20267,12 @@ } }, "@formatjs/ts-transformer": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.1.tgz", - "integrity": "sha512-U5BuLqFx5wre5Q0NrZhBh7itMJZISYuZGoj8HdN/UO1EKaTL2HQjE1G040GjTpY0k+AAyaHK3b8WPqgHLvIaIQ==", + "version": "3.13.2", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.13.2.tgz", + "integrity": "sha512-d1Q+ZgIPQfXxAVZrZ+bmdGGibzz8T83mrPMftWwAMc2bcFjdKpA79b9/pZNhaEW5ZCtXkLhuadgDEoa4ZNxNEA==", "dev": true, "requires": { - "@formatjs/icu-messageformat-parser": "2.4.0", + "@formatjs/icu-messageformat-parser": "2.5.0", "@types/json-stable-stringify": "^1.0.32", "@types/node": "14 || 16 || 17", "chalk": "^4.0.0", @@ -20201,6 +20281,46 @@ "typescript": "^4.7 || 5" }, "dependencies": { + "@formatjs/ecma402-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", + "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", + "dev": true, + "requires": { + "@formatjs/intl-localematcher": "0.3.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.5.0.tgz", + "integrity": "sha512-8AwKRkVIZzVlvZwio1TcLVvUbJw0up1joa8//JIxKVeflqKiZwfzCGAelZt/4hHCEQf9NECose//nODnmBEkNQ==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.16.0", + "@formatjs/icu-skeleton-parser": "1.5.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.5.0.tgz", + "integrity": "sha512-R/wOg/hxh3JWNB4LHYfNtIe8PC39mkzplh6gtrqCY33EqYeUFEGOYTWJrkXNcoRXlZWQtfrH6REch5r57tAyMQ==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.16.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", + "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", @@ -25550,13 +25670,13 @@ } }, "eslint-plugin-formatjs": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.10.1.tgz", - "integrity": "sha512-sD3GGdfDQqiaW8TgbUD4lrUR+raIgusPzW+0v+iN36QzkHvpg5L0UZGFQE9GWtgnWfXAndb57UpgB0i/CF2G7w==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.10.2.tgz", + "integrity": "sha512-wUwFdZKI1m9d+QGaYKLw7OYM+/Bh0y7TVZfI0XuTikPTYUSrHW+VV8hK2e6UJIjkjGfozZYikBPESKgAtOOlfA==", "dev": true, "requires": { - "@formatjs/icu-messageformat-parser": "2.4.0", - "@formatjs/ts-transformer": "3.13.1", + "@formatjs/icu-messageformat-parser": "2.5.0", + "@formatjs/ts-transformer": "3.13.2", "@types/eslint": "7 || 8", "@types/picomatch": "^2.3.0", "@typescript-eslint/typescript-estree": "5.59.0", @@ -25568,6 +25688,46 @@ "unicode-emoji-utils": "^1.1.1" }, "dependencies": { + "@formatjs/ecma402-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", + "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", + "dev": true, + "requires": { + "@formatjs/intl-localematcher": "0.3.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.5.0.tgz", + "integrity": "sha512-8AwKRkVIZzVlvZwio1TcLVvUbJw0up1joa8//JIxKVeflqKiZwfzCGAelZt/4hHCEQf9NECose//nODnmBEkNQ==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.16.0", + "@formatjs/icu-skeleton-parser": "1.5.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.5.0.tgz", + "integrity": "sha512-R/wOg/hxh3JWNB4LHYfNtIe8PC39mkzplh6gtrqCY33EqYeUFEGOYTWJrkXNcoRXlZWQtfrH6REch5r57tAyMQ==", + "dev": true, + "requires": { + "@formatjs/ecma402-abstract": "1.16.0", + "tslib": "^2.4.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", + "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", + "dev": true, + "requires": { + "tslib": "^2.4.0" + } + }, "@typescript-eslint/types": { "version": "5.59.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", diff --git a/package.json b/package.json index 1d1464bbf..c774f723c 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", "eslint": "^8.41.0", - "eslint-plugin-formatjs": "^4.10.1", + "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", "eslint-plugin-jsdoc": "^46.2.4", "eslint-plugin-markdown": "^3.0.0", From f7c3de3e860681756df9f3bc04e2dc96ef42f164 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:03:37 +0000 Subject: [PATCH 37/43] (chore): Bump @formatjs/cli from 6.1.1 to 6.1.2 Bumps [@formatjs/cli](https://github.com/formatjs/formatjs) from 6.1.1 to 6.1.2. - [Release notes](https://github.com/formatjs/formatjs/releases) - [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/cli@6.1.1...@formatjs/cli@6.1.2) --- updated-dependencies: - dependency-name: "@formatjs/cli" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e77f23be..7944c0aac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "xstate": "^4.37.2" }, "devDependencies": { - "@formatjs/cli": "^6.1.1", + "@formatjs/cli": "^6.1.2", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^1.3.0", "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", @@ -826,9 +826,9 @@ } }, "node_modules/@formatjs/cli": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.1.1.tgz", - "integrity": "sha512-prUblUQRJwFQqfmBtRWXZFKX+QmhXQkBKRl54hWTCwenskorK6+LTlm9TFbUDhfib2Xt3iDsjk7o9LpeU/AQCw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.1.2.tgz", + "integrity": "sha512-npYK86T/6KAGloIRsX9jKjTkm9PIchGv5cPK9sE4+/kPfml0vFmLoVFxYkHu25FV5CMf0jnvodnLOIkhH46kvQ==", "dev": true, "bin": { "formatjs": "bin/formatjs" @@ -20102,9 +20102,9 @@ "dev": true }, "@formatjs/cli": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.1.1.tgz", - "integrity": "sha512-prUblUQRJwFQqfmBtRWXZFKX+QmhXQkBKRl54hWTCwenskorK6+LTlm9TFbUDhfib2Xt3iDsjk7o9LpeU/AQCw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.1.2.tgz", + "integrity": "sha512-npYK86T/6KAGloIRsX9jKjTkm9PIchGv5cPK9sE4+/kPfml0vFmLoVFxYkHu25FV5CMf0jnvodnLOIkhH46kvQ==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 1d1464bbf..33f54f8b6 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "xstate": "^4.37.2" }, "devDependencies": { - "@formatjs/cli": "^6.1.1", + "@formatjs/cli": "^6.1.2", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^1.3.0", "@redhat-cloud-services/frontend-components-config": "^5.0.1", "@testing-library/react": "^12.1.5", From 1185ca800a81cdfc7d360360fdd9c69fead36c7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 14:27:45 +0000 Subject: [PATCH 38/43] (chore): Bump @typescript-eslint/parser from 5.59.8 to 5.59.9 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.59.8 to 5.59.9. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.59.9/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 471 ++++------------------------------------------ package.json | 2 +- 2 files changed, 42 insertions(+), 431 deletions(-) diff --git a/package-lock.json b/package-lock.json index d78db1c7a..126b45fda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.8", + "@typescript-eslint/parser": "^5.59.9", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -3804,65 +3804,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", - "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", - "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3897,14 +3838,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", - "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.9.tgz", + "integrity": "sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/typescript-estree": "5.59.9", "debug": "^4.3.4" }, "engines": { @@ -3924,13 +3865,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", - "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8" + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3967,7 +3908,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "5.59.9", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", @@ -3980,7 +3921,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "5.59.9", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", @@ -4007,108 +3948,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -4168,92 +4007,6 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", - "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", - "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", - "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -4288,12 +4041,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/types": "5.59.9", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -22838,38 +22591,6 @@ "tsutils": "^3.21.0" }, "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", - "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9" - } - }, - "@typescript-eslint/types": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", - "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", - "dev": true - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22897,25 +22618,25 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz", - "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.9.tgz", + "integrity": "sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.8", - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/typescript-estree": "5.59.8", + "@typescript-eslint/scope-manager": "5.59.9", + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/typescript-estree": "5.59.9", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz", - "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", + "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8" + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9" } }, "@typescript-eslint/type-utils": { @@ -22928,85 +22649,22 @@ "@typescript-eslint/utils": "5.59.9", "debug": "^4.3.4", "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/types": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", - "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", - "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } } }, "@typescript-eslint/types": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", - "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", + "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", - "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", + "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", - "@typescript-eslint/visitor-keys": "5.59.8", + "@typescript-eslint/types": "5.59.9", + "@typescript-eslint/visitor-keys": "5.59.9", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -23056,53 +22714,6 @@ "semver": "^7.3.7" }, "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz", - "integrity": "sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9" - } - }, - "@typescript-eslint/types": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.9.tgz", - "integrity": "sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz", - "integrity": "sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "@typescript-eslint/visitor-keys": "5.59.9", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.9", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", - "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.9", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -23130,12 +22741,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.8", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", - "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "version": "5.59.9", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz", + "integrity": "sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/types": "5.59.9", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { diff --git a/package.json b/package.json index 03030207b..b4741966b 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@types/react-redux": "^7.1.25", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "^5.59.8", + "@typescript-eslint/parser": "^5.59.9", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", From 141675049f6c69d713c8244654d926c4d96cc8a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 14:28:21 +0000 Subject: [PATCH 39/43] (chore): Bump eslint-plugin-jsdoc from 46.2.4 to 46.2.5 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.2.4 to 46.2.5. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.2.4...v46.2.5) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 58 +++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b157e6b5b..82c4bd5ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.2.4", + "eslint-plugin-jsdoc": "^46.2.5", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -5599,6 +5599,18 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -8270,9 +8282,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.2.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.4.tgz", - "integrity": "sha512-QVURyOFEqkUswFOou0w1rfHshRfah7EeTd9laVllO6tb/+ymjPY1IkP16e24yX0BB7jRy8krJi99jHG2UWAPog==", + "version": "46.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.5.tgz", + "integrity": "sha512-Rmd0pb6S5fv9/lGbJMiVUZn56XvjKTGQoq9H5yfNjj6jcJHkTaq+Pqj2KHK/8EO01f8auFFy2kNL64cFisMEDw==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", @@ -8281,6 +8293,7 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, @@ -10885,6 +10898,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -24139,6 +24167,12 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -26241,9 +26275,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "46.2.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.4.tgz", - "integrity": "sha512-QVURyOFEqkUswFOou0w1rfHshRfah7EeTd9laVllO6tb/+ymjPY1IkP16e24yX0BB7jRy8krJi99jHG2UWAPog==", + "version": "46.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.5.tgz", + "integrity": "sha512-Rmd0pb6S5fv9/lGbJMiVUZn56XvjKTGQoq9H5yfNjj6jcJHkTaq+Pqj2KHK/8EO01f8auFFy2kNL64cFisMEDw==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.39.4", @@ -26252,6 +26286,7 @@ "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", "semver": "^7.5.1", "spdx-expression-parse": "^3.0.1" }, @@ -28086,6 +28121,15 @@ "has-tostringtag": "^1.0.0" } }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", diff --git a/package.json b/package.json index 53f9c17a7..70919f6b0 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.2.4", + "eslint-plugin-jsdoc": "^46.2.5", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From 9c68aa69a0e8a902dd465c0ebe2949db4d2b8705 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 16:23:30 +0000 Subject: [PATCH 40/43] (chore): Bump @redhat-cloud-services/frontend-components Bumps [@redhat-cloud-services/frontend-components](https://github.com/RedHatInsights/frontend-components) from 3.9.36 to 3.9.37. - [Commits](https://github.com/RedHatInsights/frontend-components/commits) --- updated-dependencies: - dependency-name: "@redhat-cloud-services/frontend-components" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 30 +++++++++++++++++++++--------- package.json | 2 +- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b8c1e64c..a072ce056 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@patternfly/react-styles": "4.92.6", "@patternfly/react-table": "4.113.0", "@patternfly/react-tokens": "4.94.6", - "@redhat-cloud-services/frontend-components": "^3.9.36", + "@redhat-cloud-services/frontend-components": "^3.9.37", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", @@ -2371,12 +2371,12 @@ } }, "node_modules/@redhat-cloud-services/frontend-components": { - "version": "3.9.36", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.36.tgz", - "integrity": "sha512-GbvxGHDwdPPcubCz6h9SSJxI+fceyBoIOAikaIq2OSXQxQ0QPnkDXQD1tyVJz0Af+TQ6jHDQ+wPQf7MT90S/QQ==", + "version": "3.9.37", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.37.tgz", + "integrity": "sha512-5r/upwYAeK6SgB0Yx4sYaA1WKW6/obp+trLQJW54xedVeklEzap7u0pymPnJfshMPFQPnQVWgzNYkEaDTtAuTA==", "dependencies": { "@redhat-cloud-services/frontend-components-utilities": "^3.2.25", - "@redhat-cloud-services/types": "^0.0.17", + "@redhat-cloud-services/types": "^0.0.24", "@scalprum/core": "^0.5.1", "@scalprum/react-core": "^0.5.1", "sanitize-html": "^2.7.2" @@ -2683,6 +2683,11 @@ "form-data": "^4.0.0" } }, + "node_modules/@redhat-cloud-services/frontend-components/node_modules/@redhat-cloud-services/types": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" + }, "node_modules/@redhat-cloud-services/rbac-client": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.2.3.tgz", @@ -21374,15 +21379,22 @@ } }, "@redhat-cloud-services/frontend-components": { - "version": "3.9.36", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.36.tgz", - "integrity": "sha512-GbvxGHDwdPPcubCz6h9SSJxI+fceyBoIOAikaIq2OSXQxQ0QPnkDXQD1tyVJz0Af+TQ6jHDQ+wPQf7MT90S/QQ==", + "version": "3.9.37", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-3.9.37.tgz", + "integrity": "sha512-5r/upwYAeK6SgB0Yx4sYaA1WKW6/obp+trLQJW54xedVeklEzap7u0pymPnJfshMPFQPnQVWgzNYkEaDTtAuTA==", "requires": { "@redhat-cloud-services/frontend-components-utilities": "^3.2.25", - "@redhat-cloud-services/types": "^0.0.17", + "@redhat-cloud-services/types": "^0.0.24", "@scalprum/core": "^0.5.1", "@scalprum/react-core": "^0.5.1", "sanitize-html": "^2.7.2" + }, + "dependencies": { + "@redhat-cloud-services/types": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" + } } }, "@redhat-cloud-services/frontend-components-config": { diff --git a/package.json b/package.json index aa6bb16e6..abef14b4b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@patternfly/react-styles": "4.92.6", "@patternfly/react-table": "4.113.0", "@patternfly/react-tokens": "4.94.6", - "@redhat-cloud-services/frontend-components": "^3.9.36", + "@redhat-cloud-services/frontend-components": "^3.9.37", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", From 0da0aefad2078b63c320554d7852091c2587ac26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 16:59:00 +0000 Subject: [PATCH 41/43] (chore): Bump @redhat-cloud-services/frontend-components-utilities Bumps [@redhat-cloud-services/frontend-components-utilities](https://github.com/RedHatInsights/frontend-components) from 3.5.0 to 3.5.1. - [Commits](https://github.com/RedHatInsights/frontend-components/commits) --- updated-dependencies: - dependency-name: "@redhat-cloud-services/frontend-components-utilities" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 42 +++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index a072ce056..70187fa33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@redhat-cloud-services/frontend-components": "^3.9.37", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", - "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", + "@redhat-cloud-services/frontend-components-utilities": "^3.5.1", "@redhat-cloud-services/rbac-client": "^1.2.3", "@unleash/proxy-client-react": "^3.6.0", "axios": "^1.4.0", @@ -2651,11 +2651,11 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-utilities": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-3.5.0.tgz", - "integrity": "sha512-+psPuT+5hpOP0vF6wjmJNUfLSgObtTBKSCtT7Ju9XfmWnmiKLc6Er1iias2Othy4WP+5EaLlH22Rd1wk8ut8HA==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-3.5.1.tgz", + "integrity": "sha512-6Y4rTaEGLlDOPXH6Hmu0mGFCNLQXosHzpaaIHqYfs+tBJdwikjtnuMoJ8u0Wfz2UEpyTc9oeXxKanq1zGifuUQ==", "dependencies": { - "@redhat-cloud-services/types": "^0.0.17", + "@redhat-cloud-services/types": "^0.0.24", "@sentry/browser": "^5.30.0", "awesome-debounce-promise": "^2.1.0", "axios": "^0.27.2", @@ -2683,11 +2683,6 @@ "form-data": "^4.0.0" } }, - "node_modules/@redhat-cloud-services/frontend-components/node_modules/@redhat-cloud-services/types": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", - "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" - }, "node_modules/@redhat-cloud-services/rbac-client": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.2.3.tgz", @@ -2706,9 +2701,9 @@ } }, "node_modules/@redhat-cloud-services/types": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.17.tgz", - "integrity": "sha512-3V9mmarS3jD5fBksMwh+XCEAMUIzqSOxDkH6OcIVu6w/gaBBOWHh34Jwn4CxKlu+WStxVV/rxm3oFGpsWqljvg==" + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" }, "node_modules/@remix-run/router": { "version": "1.6.2", @@ -21388,13 +21383,6 @@ "@scalprum/core": "^0.5.1", "@scalprum/react-core": "^0.5.1", "sanitize-html": "^2.7.2" - }, - "dependencies": { - "@redhat-cloud-services/types": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", - "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" - } } }, "@redhat-cloud-services/frontend-components-config": { @@ -21591,11 +21579,11 @@ } }, "@redhat-cloud-services/frontend-components-utilities": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-3.5.0.tgz", - "integrity": "sha512-+psPuT+5hpOP0vF6wjmJNUfLSgObtTBKSCtT7Ju9XfmWnmiKLc6Er1iias2Othy4WP+5EaLlH22Rd1wk8ut8HA==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-utilities/-/frontend-components-utilities-3.5.1.tgz", + "integrity": "sha512-6Y4rTaEGLlDOPXH6Hmu0mGFCNLQXosHzpaaIHqYfs+tBJdwikjtnuMoJ8u0Wfz2UEpyTc9oeXxKanq1zGifuUQ==", "requires": { - "@redhat-cloud-services/types": "^0.0.17", + "@redhat-cloud-services/types": "^0.0.24", "@sentry/browser": "^5.30.0", "awesome-debounce-promise": "^2.1.0", "axios": "^0.27.2", @@ -21635,9 +21623,9 @@ } }, "@redhat-cloud-services/types": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.17.tgz", - "integrity": "sha512-3V9mmarS3jD5fBksMwh+XCEAMUIzqSOxDkH6OcIVu6w/gaBBOWHh34Jwn4CxKlu+WStxVV/rxm3oFGpsWqljvg==" + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" }, "@remix-run/router": { "version": "1.6.2", diff --git a/package.json b/package.json index abef14b4b..6e57ff47f 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@redhat-cloud-services/frontend-components": "^3.9.37", "@redhat-cloud-services/frontend-components-notifications": "^3.2.14", "@redhat-cloud-services/frontend-components-translations": "^3.2.6", - "@redhat-cloud-services/frontend-components-utilities": "^3.5.0", + "@redhat-cloud-services/frontend-components-utilities": "^3.5.1", "@redhat-cloud-services/rbac-client": "^1.2.3", "@unleash/proxy-client-react": "^3.6.0", "axios": "^1.4.0", From ce64082c6f8a2ced3b378ab0fc8f018d1c07fb65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 10:59:44 +0000 Subject: [PATCH 42/43] (chore): Bump eslint-plugin-jsdoc from 46.2.5 to 46.2.6 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.2.5 to 46.2.6. - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v46.2.5...v46.2.6) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 70187fa33..101212e5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.2.5", + "eslint-plugin-jsdoc": "^46.2.6", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", @@ -8035,9 +8035,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.5.tgz", - "integrity": "sha512-Rmd0pb6S5fv9/lGbJMiVUZn56XvjKTGQoq9H5yfNjj6jcJHkTaq+Pqj2KHK/8EO01f8auFFy2kNL64cFisMEDw==", + "version": "46.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.6.tgz", + "integrity": "sha512-zIaK3zbSrKuH12bP+SPybPgcHSM6MFzh3HFeaODzmsF1N8C1l8dzJ22cW1aq4g0+nayU1VMjmNf7hg0dpShLrA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", @@ -25886,9 +25886,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "46.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.5.tgz", - "integrity": "sha512-Rmd0pb6S5fv9/lGbJMiVUZn56XvjKTGQoq9H5yfNjj6jcJHkTaq+Pqj2KHK/8EO01f8auFFy2kNL64cFisMEDw==", + "version": "46.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.6.tgz", + "integrity": "sha512-zIaK3zbSrKuH12bP+SPybPgcHSM6MFzh3HFeaODzmsF1N8C1l8dzJ22cW1aq4g0+nayU1VMjmNf7hg0dpShLrA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.39.4", diff --git a/package.json b/package.json index 6e57ff47f..5a5557ab4 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint": "^8.41.0", "eslint-plugin-formatjs": "^4.10.2", "eslint-plugin-jest-dom": "^5.0.1", - "eslint-plugin-jsdoc": "^46.2.5", + "eslint-plugin-jsdoc": "^46.2.6", "eslint-plugin-markdown": "^3.0.0", "eslint-plugin-patternfly-react": "^4.80.4", "eslint-plugin-prettier": "^4.2.1", From d0afcac44b02fa399073d998dd73eae0cf1fec35 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 7 Jun 2023 11:40:04 -0400 Subject: [PATCH 43/43] Omit unsupported query params from tag API requests https://issues.redhat.com/browse/COST-3834 --- src/routes/details/components/tag/tagLink.tsx | 1 + src/routes/details/components/tag/tagModal.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/src/routes/details/components/tag/tagLink.tsx b/src/routes/details/components/tag/tagLink.tsx index b9fb1dc65..bad1ee966 100644 --- a/src/routes/details/components/tag/tagLink.tsx +++ b/src/routes/details/components/tag/tagLink.tsx @@ -123,6 +123,7 @@ const mapStateToProps = createMapStateToProps