From a883067232762afbdc3d8819affcc6c76e420dea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 10:51:12 +0000 Subject: [PATCH 01/39] (chore): Bump victory-core from 36.6.12 to 36.7.0 Bumps [victory-core](https://github.com/FormidableLabs/victory) from 36.6.12 to 36.7.0. - [Release notes](https://github.com/FormidableLabs/victory/releases) - [Changelog](https://github.com/FormidableLabs/victory/blob/main/CHANGELOG.md) - [Commits](https://github.com/FormidableLabs/victory/compare/v36.6.12...v36.7.0) --- updated-dependencies: - dependency-name: victory-core dependency-type: direct:production 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 f2910f021..4fad24eb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.2.0", - "victory-core": "^36.6.12", + "victory-core": "^36.7.0", "xstate": "^4.38.3", "yaml": "^2.3.4" }, @@ -19975,14 +19975,14 @@ } }, "node_modules/victory-core": { - "version": "36.6.12", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-36.6.12.tgz", - "integrity": "sha512-9zWemm6JYRkxDcvpQntkOLFZL3T3XbIDeZsqfhv/30+SLak/H59QfYj6nhyJUZuWQVTUtbAHKjAAQh5wfqgVPw==", + "version": "36.7.0", + "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-36.7.0.tgz", + "integrity": "sha512-5dSYy0m4t78qmOX1ouDEmK6KOJ5tsB1ILDAZLqzXxvH0PzLp961UaVacij8Qb6pJja8TtJ6w4J1Em1ethc4aGQ==", "dependencies": { "lodash": "^4.17.21", "prop-types": "^15.8.1", "react-fast-compare": "^3.2.0", - "victory-vendor": "^36.6.12" + "victory-vendor": "^36.7.0" }, "peerDependencies": { "react": ">=16.6.0" @@ -20157,9 +20157,9 @@ } }, "node_modules/victory-vendor": { - "version": "36.6.12", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.6.12.tgz", - "integrity": "sha512-pJrTkNHln+D83vDCCSUf0ZfxBvIaVrFHmrBOsnnLAbdqfudRACAj51He2zU94/IWq9464oTADcPVkmWAfNMwgA==", + "version": "36.7.0", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.7.0.tgz", + "integrity": "sha512-nqYuTkLSdTTeACyXcCLbL7rl0y6jpzLPtTNGOtSnajdR+xxMxBdjMxDjfNJNlhR+ZU8vbXz+QejntcbY7h9/ZA==", "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", diff --git a/package.json b/package.json index bc18f2f44..428de9078 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.2.0", - "victory-core": "^36.6.12", + "victory-core": "^36.7.0", "xstate": "^4.38.3", "yaml": "^2.3.4" }, From fd376fde3c3dce0973f6624aa0e5cbcac2136087 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 10:51:58 +0000 Subject: [PATCH 02/39] (chore): Bump eslint from 8.54.0 to 8.55.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.54.0 to 8.55.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.54.0...v8.55.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2910f021..660d48560 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.54.0", + "eslint": "^8.55.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", @@ -780,9 +780,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -830,9 +830,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8287,15 +8287,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/package.json b/package.json index bc18f2f44..199d27fd7 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.54.0", + "eslint": "^8.55.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", From c09101ba0b30d438e9a778e119176b1068de72c4 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 5 Dec 2023 12:36:04 -0500 Subject: [PATCH 03/39] Override user's currency and cost-type when applying default settings https://issues.redhat.com/browse/COST-4485 --- .../accountSettings/accountSettingsActions.ts | 8 +++- .../accountSettings/accountSettingsReducer.ts | 48 +++++++++---------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/store/accountSettings/accountSettingsActions.ts b/src/store/accountSettings/accountSettingsActions.ts index efc5521e7..374c5e54b 100644 --- a/src/store/accountSettings/accountSettingsActions.ts +++ b/src/store/accountSettings/accountSettingsActions.ts @@ -22,6 +22,8 @@ import { } from './accountSettingsSelectors'; interface AccountSettingsActionMeta { + costType?: string; + currency?: string; fetchId: string; } @@ -38,11 +40,11 @@ export const fetchAccountSettingsFailure = createAction('settings/fetch/failure' export const updateAccountSettingsRequest = createAction( 'settings/awsCategoryKeys/update/request' )(); -export const updateAccountSettingsSuccess = createAction('settings/awsCategoryKeys/update/success')< +export const updateAccountSettingsSuccess = createAction('settings/update/success')< AxiosResponse, AccountSettingsActionMeta >(); -export const updateAccountSettingsFailure = createAction('settings/awsCategoryKeys/update/failure')< +export const updateAccountSettingsFailure = createAction('settings/update/failure')< AxiosError, AccountSettingsActionMeta >(); @@ -82,6 +84,8 @@ export function updateAccountSettings(settingsType: AccountSettingsType, payload } const meta: AccountSettingsActionMeta = { + costType: payload.cost_type, // For settings update + currency: payload.currency, // For settings update fetchId: getFetchId(settingsType), }; diff --git a/src/store/accountSettings/accountSettingsReducer.ts b/src/store/accountSettings/accountSettingsReducer.ts index d64825bdb..ee244e8d4 100644 --- a/src/store/accountSettings/accountSettingsReducer.ts +++ b/src/store/accountSettings/accountSettingsReducer.ts @@ -5,8 +5,6 @@ import { resetState } from 'store/ui/uiActions'; import type { ActionType } from 'typesafe-actions'; import { getType } from 'typesafe-actions'; import { - getAccountCostType, - getAccountCurrency, isCostTypeAvailable, isCurrencyAvailable, setAccountCostType, @@ -64,13 +62,11 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett status: new Map(state.status).set(action.payload.fetchId, FetchStatus.inProgress), }; case getType(fetchAccountSettingsSuccess): - if (action.payload.data) { - if (action.payload.data.cost_type) { - initCostType(action.payload.data.cost_type); - } - if (action.payload.data.currency) { - initCurrency(action.payload.data.currency); - } + if (action?.payload?.data?.cost_type) { + initCostType(action.payload.data.cost_type); + } + if (action?.payload?.data?.currency) { + initCurrency(action.payload.data.currency); } return { ...state, @@ -92,6 +88,12 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett status: new Map(state.status).set(action.payload.fetchId, FetchStatus.inProgress), }; case getType(updateAccountSettingsSuccess): + if (action?.meta?.costType) { + initAccountCostType(action.meta.costType); + } + if (action?.meta?.currency) { + initAccountCurrency(action.meta.currency); + } return { ...state, status: new Map(state.status).set(action.meta.fetchId, FetchStatus.complete), @@ -102,32 +104,28 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett } } +// Initialize account cost type in local storage +function initAccountCostType(value: string) { + setAccountCostType(value); + setCostType(value); // Reset UI's cost type selection to match default cost type +} + +// Initialize account currency in local storage +function initAccountCurrency(value: string) { + setAccountCurrency(value); + setCurrency(value); // Reset UI's currency selection to match default currency +} + // Initialize cost type in local storage function initCostType(value: string) { - // Reset UI's cost type selection if default cost type has changed. - const accountCostType = getAccountCostType(); - if (accountCostType && accountCostType !== value) { - // Todo: remove account cost type after settings page has been moved - // That way, resetting the cost type for the UI should only affect the user who changed the default. - setCostType(accountCostType); - } if (!isCostTypeAvailable()) { setCostType(value); } - setAccountCostType(value); } // Initialize currency in local storage function initCurrency(value: string) { - // Reset UI's currency selection if default currency has changed. - const accountCurrency = getAccountCurrency(); - if (accountCurrency && accountCurrency !== value) { - // Todo: remove account currency after settings page has been moved - // That way, resetting the currency for the UI should only affect the user who changed the default. - setCurrency(accountCurrency); - } if (!isCurrencyAvailable()) { setCurrency(value); } - setAccountCurrency(value); } From 3f86952fc8b2551da329698d9d8c2c1fda17adb7 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 5 Dec 2023 12:48:22 -0500 Subject: [PATCH 04/39] Account settings should be updated only after successful request --- src/routes/settings/calculations/calculations.tsx | 4 +--- src/store/accountSettings/accountSettingsActions.ts | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/routes/settings/calculations/calculations.tsx b/src/routes/settings/calculations/calculations.tsx index 4255e43e8..509a14cf8 100644 --- a/src/routes/settings/calculations/calculations.tsx +++ b/src/routes/settings/calculations/calculations.tsx @@ -10,7 +10,7 @@ import { Currency } from 'routes/components/currency'; import { accountSettingsActions, accountSettingsSelectors } from 'store/accountSettings'; import type { FetchStatus } from 'store/common'; import { createMapStateToProps } from 'store/common'; -import { getAccountCostType, getAccountCurrency, setAccountCostType, setAccountCurrency } from 'utils/localStorage'; +import { getAccountCostType, getAccountCurrency } from 'utils/localStorage'; import type { RouterComponentProps } from 'utils/router'; import { withRouter } from 'utils/router'; @@ -108,7 +108,6 @@ class SettingsBase extends React.Component { const { updateCostType } = this.props; this.setState({ currentCostType: value }, () => { - setAccountCostType(value); updateCostType(AccountSettingsType.costType, { cost_type: value, }); @@ -119,7 +118,6 @@ class SettingsBase extends React.Component { const { updateCurrency } = this.props; this.setState({ currentCurrency: value }, () => { - setAccountCurrency(value); updateCurrency(AccountSettingsType.currency, { currency: value, }); diff --git a/src/store/accountSettings/accountSettingsActions.ts b/src/store/accountSettings/accountSettingsActions.ts index 374c5e54b..f0afacc48 100644 --- a/src/store/accountSettings/accountSettingsActions.ts +++ b/src/store/accountSettings/accountSettingsActions.ts @@ -84,8 +84,8 @@ export function updateAccountSettings(settingsType: AccountSettingsType, payload } const meta: AccountSettingsActionMeta = { - costType: payload.cost_type, // For settings update - currency: payload.currency, // For settings update + costType: payload.cost_type, // For account cost type update + currency: payload.currency, // For account currency update fetchId: getFetchId(settingsType), }; From 4977936eb6e7da142d5c1e1e2276cffea5cd35da Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 5 Dec 2023 14:44:02 -0500 Subject: [PATCH 05/39] Update account currency and cost type upon fetch --- .../accountSettings/accountSettingsReducer.ts | 30 ++++++++----------- src/utils/localStorage.ts | 2 +- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/store/accountSettings/accountSettingsReducer.ts b/src/store/accountSettings/accountSettingsReducer.ts index ee244e8d4..d6e4788d4 100644 --- a/src/store/accountSettings/accountSettingsReducer.ts +++ b/src/store/accountSettings/accountSettingsReducer.ts @@ -63,9 +63,11 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett }; case getType(fetchAccountSettingsSuccess): if (action?.payload?.data?.cost_type) { + setAccountCostType(action.payload.data.cost_type); initCostType(action.payload.data.cost_type); } if (action?.payload?.data?.currency) { + setAccountCurrency(action.payload.data.currency); initCurrency(action.payload.data.currency); } return { @@ -89,10 +91,12 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett }; case getType(updateAccountSettingsSuccess): if (action?.meta?.costType) { - initAccountCostType(action.meta.costType); + setAccountCostType(action.meta.costType); + initCostType(action.meta.costType, true); // Reset UI's cost type selection to match default cost type } if (action?.meta?.currency) { - initAccountCurrency(action.meta.currency); + setAccountCurrency(action.meta.currency); + initCurrency(action.meta.currency, true); // Reset UI's currency selection to match default currency } return { ...state, @@ -104,28 +108,18 @@ export function accountSettingsReducer(state = defaultState, action: AccountSett } } -// Initialize account cost type in local storage -function initAccountCostType(value: string) { - setAccountCostType(value); - setCostType(value); // Reset UI's cost type selection to match default cost type -} - -// Initialize account currency in local storage -function initAccountCurrency(value: string) { - setAccountCurrency(value); - setCurrency(value); // Reset UI's currency selection to match default currency -} - // Initialize cost type in local storage -function initCostType(value: string) { - if (!isCostTypeAvailable()) { +function initCostType(value: string, reset = false) { + // Set if not defined + if (!isCostTypeAvailable() || reset) { setCostType(value); } } // Initialize currency in local storage -function initCurrency(value: string) { - if (!isCurrencyAvailable()) { +function initCurrency(value: string, reset = false) { + // Set if not defined + if (!isCurrencyAvailable() || reset) { setCurrency(value); } } diff --git a/src/utils/localStorage.ts b/src/utils/localStorage.ts index 4e06103e8..2c82f0ffa 100644 --- a/src/utils/localStorage.ts +++ b/src/utils/localStorage.ts @@ -186,7 +186,7 @@ export const deleteCurrency = () => { // Returns account currency export const getAccountCurrency = () => { const units = getItem(accountCurrencyID); - return units ? units : undefined; + return units ? units : 'USD'; }; // Returns currency From 98fb7a59e7438688c241f75cca4c52e4d4c6234e Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 6 Dec 2023 15:22:55 -0500 Subject: [PATCH 06/39] Update README and RELEASE docs --- README.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ RELEASE.md | 42 ++++++++++++++++++++++++++++++------------ fec.config.js | 4 ++-- package.json | 4 ++-- 4 files changed, 79 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 07c885a1b..95a8c56ec 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,51 @@ Follow the prompts that follow. https://stage.foo.redhat.com:1337/beta/openshift/cost-management ``` +### Running Koku UI with a local Cloud Services Backend + +See https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/cloud-services-config.md#serving-files-locally + +1. Serve files locally from Cloud Services Backend repo +``` +make dev-static-node +``` + +2. Start development server in Koku UI repo +``` +npm start:csb +``` + +### Running Koku UI with a local Koku UI microfrontend (MFE) + +1. Start development server in Koku UI microfrontend (MFE) repo +``` +npm start:static +``` + +2. Start development server in Koku UI repo +``` +npm start:mfe +``` + +### Running Koku UI with a local Koku UI microfrontend (MFE) and Cloud Services Backend + +See https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/cloud-services-config.md#serving-files-locally + +1. Serve files locally from Cloud Services Backend repo +``` +make dev-static-node +``` + +2. Start development server in Koku UI microfrontend (MFE) repo +``` +npm start:static +``` + +3. Start development server in Koku UI repo +``` +npm start:csb:mfe +``` + ## Running local instances of Koku UI & Koku API #### Koku UI diff --git a/RELEASE.md b/RELEASE.md index d24856aea..1f07026a0 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,12 +4,14 @@ This doc describes how to release the UI to each staging environment. Note that ## Release script -Using our script ensures that code is always pulled from the correct branches. For example, we always pull from: +The release script creates a PR with a unique SHA, used for a namespace \`ref\` in the app-interface repo. The script also ensures that code is always pulled from the correct branches. For example, we always: 1. Pull from master when pushing to stage-stable 2. Pull from stage-stable when pushing to prod-beta 3. Pull from prod-beta when pushing to prod-stable +Please allow the PR to build successfully and merge before running the script again for the next branch. + ### Release to stage-stable ``` @@ -28,19 +30,35 @@ sh scripts/release-branch.sh -b sh scripts/release-branch.sh -p ``` -## Travis build - -Whenever a branch is merged, our Travis script automatically builds and pushes a bundle to our RedHatInsights build repo. - -To view our Travis build, see https://app.travis-ci.com/github/project-koku/koku-ui/builds +## Deployment -## RedHatInsights build repo +After all PRs have been merged, update the \`hccm-frontend\` resource in https://gitlab.cee.redhat.com/service/app-interface/-/blob/master/data/services/insights/hccm/deploy-clowder.yml -After each successfully Travis build, you should see a new commit here https://github.com/RedHatInsights/cost-management-build. +Use the latest commit of each branch to update namespaces \`ref\` in the app-interface repo. Don't use a merge commit, SHAs must be unique when images are created for each branch. -At this point, the Insights pipeline takes over and the bundle should be available shortly in the expected staging environment. - -Depending on how many builds are queued, this could take a few minutes or hours. Typically, the prod-stable environment is updated within 15-30 min. +``` + # Stage Stable Deployment + - namespace: + $ref: /services/insights/frontend-operator/namespaces/stage-frontends.yml + ref: 4bdd960da2fe34ed8964acfcbc2d3267a752f3e5 // Replace with latest SHA for stage-beta branch + parameters: + ENV_NAME: "frontends" + IMAGE: "quay.io/cloudservices/hccm-frontend" + # Prod Beta Deployment + - namespace: + $ref: /services/insights/frontend-operator/namespaces/prod-beta-frontends.yml + ref: 23909da4ea017963caa78d59168054db842ce014 // Replace with latest SHA for prod-beta branch + parameters: + ENV_NAME: "frontends-beta" + IMAGE: "quay.io/cloudservices/hccm-frontend" + # Prod Stable Deployment + - namespace: + $ref: /services/insights/frontend-operator/namespaces/prod-frontends.yml + ref: c7f6c75fd1e895afbc05a2a6d26835fa16a0edfa // Replace with latest SHA for prod-stable branch + parameters: + ENV_NAME: "frontends" + IMAGE: "quay.io/cloudservices/hccm-frontend" +``` ## Testing @@ -64,6 +82,6 @@ For release examples, please see existing releases here https://github.com/proje ## Troubleshooting -If a staging environment has not updated as expected, it's best to ask questions in the forum-consoledot-ui channel of http://coreos.slack.com. +If a staging environment has not updated as expected, it's best to ask questions in the forum-consoledot-ui or proj-fecontainer-migration channels of http://coreos.slack.com. Alternatively, open a Jira issue under the "ConsoleDot Platform (console.redhat.com) (RHCLOUD)" project category. For an example, see https://issues.redhat.com/browse/RHCLOUD-18259 diff --git a/fec.config.js b/fec.config.js index 0f49fb133..794c26ab3 100644 --- a/fec.config.js +++ b/fec.config.js @@ -90,8 +90,8 @@ module.exports = { /** * Chrome services backend config routes, typically localhost:8000 */ - ...(process.env.CLOUD_SERVICES_CONFIG_PORT && { - '/api/chrome-service/v1/static': { host: `http://localhost:${process.env.CLOUD_SERVICES_CONFIG_PORT}` }, + ...(process.env.CLOUD_SERVICES_BACKEND_PORT && { + '/api/chrome-service/v1/static': { host: `http://localhost:${process.env.CLOUD_SERVICES_BACKEND_PORT}` }, }), /** * Ephemeral routes, typically localhost:8000 diff --git a/package.json b/package.json index 84ebbf63a..24d9bc217 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ "patch:hosts": "fec patch-etc-hosts", "postinstall": "ts-patch install && rm -rf .cache", "start": "fec dev", - "start:csc": "CLOUD_SERVICES_CONFIG_PORT=8000 npm start", - "start:csc:mfe": "FEC_STATIC_PORT=8003 npm run start:csc", + "start:csb": "CLOUD_SERVICES_BACKEND_PORT=8000 npm start", + "start:csb:mfe": "FEC_STATIC_PORT=8003 npm run start:csb", "start:ephemeral": "EPHEMERAL_PORT=8000 npm start", "start:hmr": "HMR=true npm start", "start:local:api": "LOCAL_API_PORT=8000 LOCAL_API_HOST=localhost KEYCLOAK_PORT=4020 npm start", From 165859fd1e6b529fd378e64d93343a81ddcdfe40 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 6 Dec 2023 15:36:16 -0500 Subject: [PATCH 07/39] Update RELEASE doc --- RELEASE.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 1f07026a0..08c4d6dbc 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -37,27 +37,23 @@ After all PRs have been merged, update the \`hccm-frontend\` resource in https:/ Use the latest commit of each branch to update namespaces \`ref\` in the app-interface repo. Don't use a merge commit, SHAs must be unique when images are created for each branch. ``` +- name: hccm-frontend + ... # Stage Stable Deployment - namespace: $ref: /services/insights/frontend-operator/namespaces/stage-frontends.yml ref: 4bdd960da2fe34ed8964acfcbc2d3267a752f3e5 // Replace with latest SHA for stage-beta branch - parameters: - ENV_NAME: "frontends" - IMAGE: "quay.io/cloudservices/hccm-frontend" + ... # Prod Beta Deployment - namespace: $ref: /services/insights/frontend-operator/namespaces/prod-beta-frontends.yml ref: 23909da4ea017963caa78d59168054db842ce014 // Replace with latest SHA for prod-beta branch - parameters: - ENV_NAME: "frontends-beta" - IMAGE: "quay.io/cloudservices/hccm-frontend" + ... # Prod Stable Deployment - namespace: $ref: /services/insights/frontend-operator/namespaces/prod-frontends.yml ref: c7f6c75fd1e895afbc05a2a6d26835fa16a0edfa // Replace with latest SHA for prod-stable branch - parameters: - ENV_NAME: "frontends" - IMAGE: "quay.io/cloudservices/hccm-frontend" + ... ``` ## Testing From 090cacfaf7a7de09771543a42b2e174486f371f2 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 6 Dec 2023 21:29:38 -0500 Subject: [PATCH 08/39] Clean up docs --- README.md | 11 +++++++---- RELEASE.md | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 95a8c56ec..07d4306ac 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,11 @@ make dev-static-node npm start:csb ``` -### Running Koku UI with a local Koku UI microfrontend (MFE) +### Running Koku UI with a local Koku microfrontend (MFE) -1. Start development server in Koku UI microfrontend (MFE) repo +See https://github.com/project-koku/koku-ui-mfe + +1. Start development server in Koku microfrontend (MFE) repo ``` npm start:static ``` @@ -85,16 +87,17 @@ npm start:static npm start:mfe ``` -### Running Koku UI with a local Koku UI microfrontend (MFE) and Cloud Services Backend +### Running Koku UI with a local Koku microfrontend (MFE) and Cloud Services Backend See https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/cloud-services-config.md#serving-files-locally +and https://github.com/project-koku/koku-ui-mfe 1. Serve files locally from Cloud Services Backend repo ``` make dev-static-node ``` -2. Start development server in Koku UI microfrontend (MFE) repo +2. Start development server in Koku microfrontend (MFE) repo ``` npm start:static ``` diff --git a/RELEASE.md b/RELEASE.md index 08c4d6dbc..6c9471ec1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,6 @@ # Releasing Koku UI -This doc describes how to release the UI to each staging environment. Note that this should be done in order for testing purposes; stage-stable, prod-beta, and finally prod-stable +This doc describes how to release the Koku UI to each staging environment. Note that this should be done in order for testing purposes; stage-stable, prod-beta, and finally prod-stable ## Release script From 8cd1582dfb759f01fed54c286fd6cedbd8cc4824 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 6 Dec 2023 21:54:16 -0500 Subject: [PATCH 09/39] More docs clean up --- README.md | 12 ++++++------ RELEASE.md | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 07d4306ac..da04f1340 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Follow the prompts that follow. https://stage.foo.redhat.com:1337/beta/openshift/cost-management ``` -### Running Koku UI with a local Cloud Services Backend +### Running Koku UI with local Cloud Services Backend See https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/cloud-services-config.md#serving-files-locally @@ -73,11 +73,11 @@ make dev-static-node npm start:csb ``` -### Running Koku UI with a local Koku microfrontend (MFE) +### Running Koku UI with local Koku microfrontend (MFE) See https://github.com/project-koku/koku-ui-mfe -1. Start development server in Koku microfrontend (MFE) repo +1. Start development server in Koku MFE repo ``` npm start:static ``` @@ -87,7 +87,7 @@ npm start:static npm start:mfe ``` -### Running Koku UI with a local Koku microfrontend (MFE) and Cloud Services Backend +### Running Koku UI with local Koku microfrontend (MFE) and Cloud Services Backend See https://github.com/RedHatInsights/chrome-service-backend/blob/main/docs/cloud-services-config.md#serving-files-locally and https://github.com/project-koku/koku-ui-mfe @@ -97,7 +97,7 @@ and https://github.com/project-koku/koku-ui-mfe make dev-static-node ``` -2. Start development server in Koku microfrontend (MFE) repo +2. Start development server in Koku MFE repo ``` npm start:static ``` @@ -189,7 +189,7 @@ http://localhost:1337/beta/settings/applications/cost-management ## Releasing Koku UI -This [RELEASE][release-doc] doc describes how to release the UI to each staging environment. +This [RELEASE][release-doc] doc describes how to release Koku UI to each staging environment. ## Useful Links diff --git a/RELEASE.md b/RELEASE.md index 6c9471ec1..738b1c90f 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,6 @@ # Releasing Koku UI -This doc describes how to release the Koku UI to each staging environment. Note that this should be done in order for testing purposes; stage-stable, prod-beta, and finally prod-stable +This doc describes how to release Koku UI to each staging environment. Note that this should be done in order for testing purposes; stage-stable, prod-beta, and finally prod-stable ## Release script From 5a418f8d5fcef2194e74ca2b7349a9587f6193f4 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 6 Dec 2023 22:37:30 -0500 Subject: [PATCH 10/39] Fix lib links --- README.md | 55 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index da04f1340..a28e74122 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ [![AGPLv3][license-badge]][license] [![Build Status][build-badge]][build] +React.js app for Cost Management. + User interface is based on Patternfly [![Patternfly][pf-logo]][patternfly] To submit an issue, please visit https://issues.redhat.com/projects/COST/ @@ -191,59 +193,6 @@ http://localhost:1337/beta/settings/applications/cost-management This [RELEASE][release-doc] doc describes how to release Koku UI to each staging environment. -## Useful Links - -#### Libs - -* [TypeScript](http://www.typescriptlang.org/docs/handbook/react-&-webpack.html) -* [React](https://reactjs.org/docs/react-api.html) -* [Redux](https://redux.js.org/) - State Management - * [Redux-Thunk](https://github.com/reduxjs/redux-thunk#redux-thunk) - Middleware for returning functions from actions (gives access to dispatch and getState to action) - * [typesafe-actions](https://github.com/piotrwitek/typesafe-actions#motivation) - Typesafe Redux - * [Selectors](https://redux.js.org/introduction/learningresources#selectors) -* [Axios](https://github.com/axios/axios#axios-api) - HTTP Client -* [React Router](https://reacttraining.com/react-router/web/guides/philosophy) - * [withRouter](https://reacttraining.com/react-router/web/api/withRouter) - Injects components with route props - * [Link](https://reacttraining.com/react-router/web/api/Link) - * [Route](https://reacttraining.com/react-router/web/api/Route) -* [React I18Next](https://react.i18next.com/) - React Wrapper for i18next -* [PatternFly React 4](https://patternfly-react.netlify.com/) - * [Source](https://github.com/patternfly/patternfly-react/tree/main/packages) - `react-*/**` - * [PRS](https://github.com/patternfly/patternfly-react/pulls?q=is%3Aopen+is%3Apr+label%3APF4) - * [Issues](https://github.com/patternfly/patternfly-react/issues?q=is%3Aopen+is%3Aissue+label%3APF4) - -#### Tools - -* [React Devtools](https://github.com/facebook/react-devtools) - * [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi) - * [Firefox](https://addons.mozilla.org/firefox/addon/react-devtools/) -* [Redux Devtools](https://github.com/zalmoxisus/redux-devtools-extension) - * [Chrome](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd) - * [Firefox](https://addons.mozilla.org/en-US/firefox/addon/remotedev/) -* VSCode - * [TSLint](https://marketplace.visualstudio.com/items?itemName=eg2.tslint) - Linting - * In Settings add - ```json - { - ... - "tslint.autoFixOnSave": true, - ... - } - * [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Autoformat - * In settings add: - ```json - { - ... - "[typescript]": { - "editor.formatOnSave": true - }, - "[typescriptreact]": { - "editor.formatOnSave": true - }, - ... - } - * [Docker](https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker) - Manage Docker images from VSCode - [build]: https://travis-ci.com/project-koku/UI' [build-badge]: https://img.shields.io/travis/project-koku/koku-ui.svg?style=for-the-badge [koku-readme]: https://github.com/project-koku/koku#readme From 80758261b3b0ce2d27b39dd834ef3c7c1dcf0fb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:02:59 +0000 Subject: [PATCH 11/39] (chore): Bump @patternfly/react-icons from 5.1.1 to 5.1.2 Bumps [@patternfly/react-icons](https://github.com/patternfly/patternfly-react) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/patternfly/patternfly-react/releases) - [Commits](https://github.com/patternfly/patternfly-react/compare/@patternfly/react-icons@5.1.1...@patternfly/react-icons@5.1.2) --- updated-dependencies: - dependency-name: "@patternfly/react-icons" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..fcf5b2ed8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@patternfly/patternfly": "^5.1.0", "@patternfly/react-charts": "^7.2.0-prerelease.2", "@patternfly/react-core": "^5.1.1", - "@patternfly/react-icons": "^5.1.1", + "@patternfly/react-icons": "^5.1.2", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", "@redhat-cloud-services/frontend-components": "^4.2.0", @@ -2190,9 +2190,9 @@ } }, "node_modules/@patternfly/react-icons": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.1.1.tgz", - "integrity": "sha512-9gCxkWz2xcdi0rtXu2F0L68w4tLIlsgGTACo1ggr4aVng9jRX++o1PlCOqscOd9o0NiFnFD7BLlZUGvJWaYEZg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.1.2.tgz", + "integrity": "sha512-hgf3OchvNyCcxqDrRJCkxauFdxENtVX2d6uTkMfOQWP3hs8hqYGHR5S0pe2teJ1SwAs2Rgtf7ezzmzKAouAjkw==", "peerDependencies": { "react": "^17 || ^18", "react-dom": "^17 || ^18" diff --git a/package.json b/package.json index 24d9bc217..826afdec1 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@patternfly/patternfly": "^5.1.0", "@patternfly/react-charts": "^7.2.0-prerelease.2", "@patternfly/react-core": "^5.1.1", - "@patternfly/react-icons": "^5.1.1", + "@patternfly/react-icons": "^5.1.2", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", "@redhat-cloud-services/frontend-components": "^4.2.0", From 2516c08947c4d208dc02841fdae2891ef36864f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:03:24 +0000 Subject: [PATCH 12/39] (chore): Bump @redhat-cloud-services/rbac-client from 1.2.12 to 1.2.13 Bumps [@redhat-cloud-services/rbac-client](https://github.com/RedHatInsights/javascript-clients) from 1.2.12 to 1.2.13. - [Release notes](https://github.com/RedHatInsights/javascript-clients/releases) - [Commits](https://github.com/RedHatInsights/javascript-clients/commits) --- updated-dependencies: - dependency-name: "@redhat-cloud-services/rbac-client" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..34fccb953 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", - "@redhat-cloud-services/rbac-client": "^1.2.12", + "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.2", "date-fns": "^2.30.0", @@ -2866,9 +2866,9 @@ } }, "node_modules/@redhat-cloud-services/rbac-client": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.2.12.tgz", - "integrity": "sha512-wYmYGqQr6UNRFZ7eR0ExGE5f6Ig5Cgj/qbSdGlyxiDxP6ZA04fPFFFf8H+Ie91sjJx4LuQd5NpuSTSznKdxb0g==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.2.13.tgz", + "integrity": "sha512-kinsQjNyoJScNlUonnK9zH7gDnFqLQKCn22qOSBJU/LEOY+5wLiVSPfdeHOr2eBZrli2YYxJ90rIyMg4oBSygQ==", "dependencies": { "axios": "^0.27.2" } diff --git a/package.json b/package.json index 24d9bc217..86c7c319b 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", - "@redhat-cloud-services/rbac-client": "^1.2.12", + "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.2", "date-fns": "^2.30.0", From dcb88df184d56538f814d3ae858b4f75ed293bfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:04:30 +0000 Subject: [PATCH 13/39] (chore): Bump eslint-plugin-patternfly-react from 5.1.1 to 5.2.0 Bumps [eslint-plugin-patternfly-react](https://github.com/patternfly/patternfly-react) from 5.1.1 to 5.2.0. - [Release notes](https://github.com/patternfly/patternfly-react/releases) - [Commits](https://github.com/patternfly/patternfly-react/compare/eslint-plugin-patternfly-react@5.1.1...eslint-plugin-patternfly-react@5.2.0) --- updated-dependencies: - dependency-name: eslint-plugin-patternfly-react dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..4ddc0f621 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-patternfly-react": "^5.1.1", + "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", @@ -9027,9 +9027,9 @@ } }, "node_modules/eslint-plugin-patternfly-react": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-patternfly-react/-/eslint-plugin-patternfly-react-5.1.1.tgz", - "integrity": "sha512-VZPUuBDreLRSrJxxZ/uHzlON/LHWUWZ4aTRRo6jS1bFihhh7q/Idg7aUNL9iorzujZ9gT0MF3+b3XVIybd5lJg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-patternfly-react/-/eslint-plugin-patternfly-react-5.2.0.tgz", + "integrity": "sha512-XtIcfi5eTmICwI+hY1hko2tWOfOeom8J/2WQVe1SJR9WTu1VM62yWn0MycROEbE1eFXjwSC64cAccFmWsfMNtw==", "dev": true, "dependencies": { "@babel/eslint-parser": "^7.19.1", diff --git a/package.json b/package.json index 24d9bc217..92d4fd4cf 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-patternfly-react": "^5.1.1", + "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", From ef709cf7808aa3ffab848a58acba5808143f753e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:07:22 +0000 Subject: [PATCH 14/39] (chore): Bump @types/jest from 29.5.10 to 29.5.11 Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 29.5.10 to 29.5.11. - [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 | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..6059d40ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.1", - "@types/jest": "^29.5.10", + "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.39", "@types/react-dom": "^18.2.17", @@ -3615,9 +3615,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.10", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.10.tgz", - "integrity": "sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==", + "version": "29.5.11", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", + "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", "dev": true, "dependencies": { "expect": "^29.0.0", diff --git a/package.json b/package.json index 24d9bc217..7f49f51d0 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.1", - "@types/jest": "^29.5.10", + "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.39", "@types/react-dom": "^18.2.17", From 3781d71e83591b2f0ddda1ae360305669862c556 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:09:16 +0000 Subject: [PATCH 15/39] (chore): Bump @typescript-eslint/eslint-plugin from 6.13.1 to 6.13.2 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.13.1 to 6.13.2. - [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/v6.13.2/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 | 285 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 267 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..6f65d1109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "@types/react-dom": "^18.2.17", "@types/react-redux": "^7.1.31", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/parser": "^6.13.1", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -4001,16 +4001,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz", - "integrity": "sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", + "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.1", - "@typescript-eslint/type-utils": "6.13.1", - "@typescript-eslint/utils": "6.13.1", - "@typescript-eslint/visitor-keys": "6.13.1", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/type-utils": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4035,6 +4035,65 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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", @@ -4114,13 +4173,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz", - "integrity": "sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", + "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.1", - "@typescript-eslint/utils": "6.13.1", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/utils": "6.13.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4140,6 +4199,108 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "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": "6.13.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.1.tgz", @@ -4214,17 +4375,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.1.tgz", - "integrity": "sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.1", - "@typescript-eslint/types": "6.13.1", - "@typescript-eslint/typescript-estree": "6.13.1", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", "semver": "^7.5.4" }, "engines": { @@ -4238,6 +4399,92 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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", diff --git a/package.json b/package.json index 24d9bc217..630afe656 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "@types/react-dom": "^18.2.17", "@types/react-redux": "^7.1.31", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/parser": "^6.13.1", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From 62da85e1e3f2b7fb6c6d67d9136c6879d182bb46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:12:06 +0000 Subject: [PATCH 16/39] (chore): Bump typescript from 5.3.2 to 5.3.3 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.3.2 to 5.3.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.2...v5.3.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6292938ed..e316bdc95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,7 +81,7 @@ "prettier": "^3.1.0", "rimraf": "^5.0.5", "ts-patch": "^3.0.2", - "typescript": "^5.3.2", + "typescript": "^5.3.3", "webpack-bundle-analyzer": "^4.10.1" }, "engines": { @@ -19600,9 +19600,9 @@ } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "devOptional": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index 24d9bc217..d03aec492 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "prettier": "^3.1.0", "rimraf": "^5.0.5", "ts-patch": "^3.0.2", - "typescript": "^5.3.2", + "typescript": "^5.3.3", "webpack-bundle-analyzer": "^4.10.1" }, "overrides": {}, From 7a2333c3ce7e25f761d0fa79dddfa913b73d049b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:14:14 +0000 Subject: [PATCH 17/39] (chore): Bump ts-patch from 3.0.2 to 3.1.1 Bumps [ts-patch](https://github.com/nonara/ts-patch) from 3.0.2 to 3.1.1. - [Release notes](https://github.com/nonara/ts-patch/releases) - [Changelog](https://github.com/nonara/ts-patch/blob/master/CHANGELOG.md) - [Commits](https://github.com/nonara/ts-patch/compare/v3.0.2...v3.1.1) --- updated-dependencies: - dependency-name: ts-patch dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index af3a37fe5..221b65450 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,7 +80,7 @@ "npm-run-all": "^4.1.5", "prettier": "^3.1.0", "rimraf": "^5.0.5", - "ts-patch": "^3.0.2", + "ts-patch": "^3.1.1", "typescript": "^5.3.3", "webpack-bundle-analyzer": "^4.10.1" }, @@ -19531,16 +19531,16 @@ "dev": true }, "node_modules/ts-patch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.0.2.tgz", - "integrity": "sha512-iTg8euqiNsNM1VDfOsVIsP0bM4kAVXU38n7TGQSkky7YQX/syh6sDPIRkvSS0HjT8ZOr0pq1h+5Le6jdB3hiJQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.1.1.tgz", + "integrity": "sha512-ReGYz9jQYC80PFafBx25TC0UI9cSgmUBtpT+WIy8IrhpLVzEHf430k03XQYOMldQMyZDBbzn5fBPELgtIl65cA==", "dev": true, "dependencies": { "chalk": "^4.1.2", "global-prefix": "^3.0.0", "minimist": "^1.2.8", "resolve": "^1.22.2", - "semver": "^7.3.8", + "semver": "^7.5.4", "strip-ansi": "^6.0.1" }, "bin": { diff --git a/package.json b/package.json index 868d30d18..f621b4ba7 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "npm-run-all": "^4.1.5", "prettier": "^3.1.0", "rimraf": "^5.0.5", - "ts-patch": "^3.0.2", + "ts-patch": "^3.1.1", "typescript": "^5.3.3", "webpack-bundle-analyzer": "^4.10.1" }, From 165655893bc19b97680c36ae7ee33f961f4b2f78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:14:49 +0000 Subject: [PATCH 18/39] (chore): Bump @typescript-eslint/parser from 6.13.1 to 6.14.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.13.1 to 6.14.0. - [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/v6.14.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index af3a37fe5..91a80fc5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "@types/react-redux": "^7.1.31", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.1", + "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -4128,15 +4128,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.1.tgz", - "integrity": "sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.13.1", - "@typescript-eslint/types": "6.13.1", - "@typescript-eslint/typescript-estree": "6.13.1", - "@typescript-eslint/visitor-keys": "6.13.1", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4" }, "engines": { @@ -4156,13 +4156,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz", - "integrity": "sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.1", - "@typescript-eslint/visitor-keys": "6.13.1" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4302,9 +4302,9 @@ "dev": true }, "node_modules/@typescript-eslint/types": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.1.tgz", - "integrity": "sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4315,13 +4315,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz", - "integrity": "sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.1", - "@typescript-eslint/visitor-keys": "6.13.1", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4519,12 +4519,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz", - "integrity": "sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.1", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/package.json b/package.json index 868d30d18..0ec8d5882 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "@types/react-redux": "^7.1.31", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.1", + "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", From 11413db537342405e92b6a6dccd9e9e477fd379e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 19:25:07 +0000 Subject: [PATCH 19/39] (chore): Bump prettier from 3.1.0 to 3.1.1 Bumps [prettier](https://github.com/prettier/prettier) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.1.0...3.1.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a763aef2..d65a39227 100644 --- a/package-lock.json +++ b/package-lock.json @@ -78,7 +78,7 @@ "jest-mock-axios": "^4.7.3", "jws": "^4.0.0", "npm-run-all": "^4.1.5", - "prettier": "^3.1.0", + "prettier": "^3.1.1", "rimraf": "^5.0.5", "ts-patch": "^3.1.1", "typescript": "^5.3.3", @@ -16992,9 +16992,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/package.json b/package.json index 9a8908ef9..862a820d9 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "jest-mock-axios": "^4.7.3", "jws": "^4.0.0", "npm-run-all": "^4.1.5", - "prettier": "^3.1.0", + "prettier": "^3.1.1", "rimraf": "^5.0.5", "ts-patch": "^3.1.1", "typescript": "^5.3.3", From be71b2b25f282ef74dc233de269244d19afd8514 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 12 Dec 2023 10:53:27 -0500 Subject: [PATCH 20/39] Remove the xState package https://issues.redhat.com/browse/COST-4510 --- .../components/hoc/withStateMachine.test.tsx | 0 .../components/hoc/withStateMachine.tsx | 0 .../logic/selectStateMachine.test.tsx | 0 .../components/logic/selectStateMachine.ts | 0 package-lock.json | 348 +++--------------- package.json | 12 +- src/app.tsx | 3 +- .../selectStateMachine.test.tsx.snap | 23 -- .../components/toolbar/checkboxSelector.tsx | 50 +-- .../components/toolbar/primarySelector.tsx | 49 +-- 10 files changed, 97 insertions(+), 388 deletions(-) rename {src => .archive}/routes/settings/costModels/components/hoc/withStateMachine.test.tsx (100%) rename {src => .archive}/routes/settings/costModels/components/hoc/withStateMachine.tsx (100%) rename {src => .archive}/routes/settings/costModels/components/logic/selectStateMachine.test.tsx (100%) rename {src => .archive}/routes/settings/costModels/components/logic/selectStateMachine.ts (100%) delete mode 100644 src/routes/settings/costModels/components/logic/__snapshots__/selectStateMachine.test.tsx.snap diff --git a/src/routes/settings/costModels/components/hoc/withStateMachine.test.tsx b/.archive/routes/settings/costModels/components/hoc/withStateMachine.test.tsx similarity index 100% rename from src/routes/settings/costModels/components/hoc/withStateMachine.test.tsx rename to .archive/routes/settings/costModels/components/hoc/withStateMachine.test.tsx diff --git a/src/routes/settings/costModels/components/hoc/withStateMachine.tsx b/.archive/routes/settings/costModels/components/hoc/withStateMachine.tsx similarity index 100% rename from src/routes/settings/costModels/components/hoc/withStateMachine.tsx rename to .archive/routes/settings/costModels/components/hoc/withStateMachine.tsx diff --git a/src/routes/settings/costModels/components/logic/selectStateMachine.test.tsx b/.archive/routes/settings/costModels/components/logic/selectStateMachine.test.tsx similarity index 100% rename from src/routes/settings/costModels/components/logic/selectStateMachine.test.tsx rename to .archive/routes/settings/costModels/components/logic/selectStateMachine.test.tsx diff --git a/src/routes/settings/costModels/components/logic/selectStateMachine.ts b/.archive/routes/settings/costModels/components/logic/selectStateMachine.ts similarity index 100% rename from src/routes/settings/costModels/components/logic/selectStateMachine.ts rename to .archive/routes/settings/costModels/components/logic/selectStateMachine.ts diff --git a/package-lock.json b/package-lock.json index 19c8f24c6..82b764bb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,13 +32,12 @@ "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", - "react-router-dom": "^6.20.0", + "react-router-dom": "^6.20.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.2.0", "victory-core": "^36.7.0", - "xstate": "^4.38.3", "yaml": "^2.3.4" }, "devDependencies": { @@ -52,11 +51,11 @@ "@testing-library/user-event": "^14.5.1", "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", - "@types/react": "^18.2.39", + "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", - "@types/react-redux": "^7.1.31", + "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -2946,9 +2945,9 @@ "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" }, "node_modules/@remix-run/router": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz", - "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.1.tgz", + "integrity": "sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q==", "engines": { "node": ">=14.0.0" } @@ -3747,9 +3746,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.39.tgz", - "integrity": "sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==", + "version": "18.2.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.43.tgz", + "integrity": "sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3766,9 +3765,9 @@ } }, "node_modules/@types/react-redux": { - "version": "7.1.31", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.31.tgz", - "integrity": "sha512-merF9AH72krBUekQY6uObXnMsEo1xTeZy9NONNRnqSwvwVe3HtLeRvNIPaKmPDIOWPsSFE51rc2WGpPMqmuCWg==", + "version": "7.1.32", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.32.tgz", + "integrity": "sha512-YJYV0M27cyHHJIacaRsZRx5OETzK8KWjEGnix7UH3ngItYo4It0MUBzU6WNwqnwhbrPw5wx9KXluuoTZ85Gg7A==", "dev": true, "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", @@ -4001,16 +4000,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", - "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/type-utils": "6.13.2", - "@typescript-eslint/utils": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4035,65 +4034,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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", @@ -4173,13 +4113,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", - "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4199,108 +4139,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "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": "6.14.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", @@ -4375,17 +4213,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -4399,92 +4237,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.13.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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", @@ -4754,15 +4506,6 @@ } } }, - "node_modules/@xstate/graph": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@xstate/graph/-/graph-1.4.2.tgz", - "integrity": "sha512-XIh6opCf9ukXRj4dXe2fv2kwFFUl15B5Ob8ELNOOqDXB2BPyNwp6TaLe5KJn/na3gzC9B7LyOo+2d0dPkC8PWQ==", - "dev": true, - "peerDependencies": { - "xstate": "^4.30.3" - } - }, "node_modules/@xstate/test": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@xstate/test/-/test-0.5.1.tgz", @@ -4776,6 +4519,15 @@ "xstate": "^4.29.0" } }, + "node_modules/@xstate/test/node_modules/@xstate/graph": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@xstate/graph/-/graph-1.4.2.tgz", + "integrity": "sha512-XIh6opCf9ukXRj4dXe2fv2kwFFUl15B5Ob8ELNOOqDXB2BPyNwp6TaLe5KJn/na3gzC9B7LyOo+2d0dPkC8PWQ==", + "dev": true, + "peerDependencies": { + "xstate": "^4.30.3" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -17454,11 +17206,11 @@ } }, "node_modules/react-router": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz", - "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==", + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.1.tgz", + "integrity": "sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA==", "dependencies": { - "@remix-run/router": "1.13.0" + "@remix-run/router": "1.13.1" }, "engines": { "node": ">=14.0.0" @@ -17468,12 +17220,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz", - "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==", + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.1.tgz", + "integrity": "sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw==", "dependencies": { - "@remix-run/router": "1.13.0", - "react-router": "6.20.0" + "@remix-run/router": "1.13.1", + "react-router": "6.20.1" }, "engines": { "node": ">=14.0.0" @@ -21284,6 +21036,8 @@ "version": "4.38.3", "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.38.3.tgz", "integrity": "sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==", + "dev": true, + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/xstate" diff --git a/package.json b/package.json index c3f86aaf0..65027e05d 100644 --- a/package.json +++ b/package.json @@ -72,13 +72,12 @@ "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", - "react-router-dom": "^6.20.0", + "react-router-dom": "^6.20.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.2.0", "victory-core": "^36.7.0", - "xstate": "^4.38.3", "yaml": "^2.3.4" }, "devDependencies": { @@ -92,11 +91,11 @@ "@testing-library/user-event": "^14.5.1", "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", - "@types/react": "^18.2.39", + "@types/react": "^18.2.43", "@types/react-dom": "^18.2.17", - "@types/react-redux": "^7.1.31", + "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -124,7 +123,8 @@ "typescript": "^5.3.3", "webpack-bundle-analyzer": "^4.10.1" }, - "overrides": {}, + "overrides": { + }, "insights": { "appname": "cost-management" } diff --git a/src/app.tsx b/src/app.tsx index 91a73d335..7f15b2540 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -5,7 +5,6 @@ import NotificationsPortal from '@redhat-cloud-services/frontend-components-noti import { notificationsReducer } from '@redhat-cloud-services/frontend-components-notifications/redux'; import { getRegistry } from '@redhat-cloud-services/frontend-components-utilities/Registry'; import React, { useEffect, useLayoutEffect } from 'react'; -import type { Reducer } from 'redux'; import { invalidateSession } from 'utils/localStorage'; import pkg from '../package.json'; @@ -17,7 +16,7 @@ const App = () => { useEffect(() => { const registry = getRegistry(); - registry.register({ notifications: notificationsReducer as Reducer }); + registry.register({ notifications: notificationsReducer as any }); // You can use directly the name of your app updateDocumentTitle(pkg.insights.appname); diff --git a/src/routes/settings/costModels/components/logic/__snapshots__/selectStateMachine.test.tsx.snap b/src/routes/settings/costModels/components/logic/__snapshots__/selectStateMachine.test.tsx.snap deleted file mode 100644 index b869cdd84..000000000 --- a/src/routes/settings/costModels/components/logic/__snapshots__/selectStateMachine.test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` 1`] = ` -[ - { - "selection": [], - }, - [ - "collapsed", - ], -] -`; - -exports[`selectmachine via TOGGLE: reaches state: "#(machine).expanded" ({"selection":[]}) 1`] = ` -[ - { - "selection": [], - }, - [ - "expanded", - ], -] -`; diff --git a/src/routes/settings/costModels/components/toolbar/checkboxSelector.tsx b/src/routes/settings/costModels/components/toolbar/checkboxSelector.tsx index cf2069bf3..266f58e4c 100644 --- a/src/routes/settings/costModels/components/toolbar/checkboxSelector.tsx +++ b/src/routes/settings/costModels/components/toolbar/checkboxSelector.tsx @@ -1,7 +1,6 @@ import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated'; import React from 'react'; -import { WithStateMachine } from 'routes/settings/costModels/components/hoc/withStateMachine'; -import { selectMachineState } from 'routes/settings/costModels/components/logic/selectStateMachine'; +import { useState } from 'react'; import type { Option } from 'routes/settings/costModels/components/logic/types'; interface CheckboxSelectorProps { @@ -19,37 +18,28 @@ export const CheckboxSelector: React.FC = ({ selections, isDisabled, }) => { + const [isOpen, setIsOpen] = useState(false); + return ( - { - setSelections(evt.selection); - }, - }, - })} + send({ type: 'SELECT', selection })} - onToggle={() => send({ type: 'TOGGLE' })} - > - {options.map(opt => { - return ( - - {opt.label} - - ); - })} - + + {opt.label} + ); - }} - + })} + ); }; diff --git a/src/routes/settings/costModels/components/toolbar/primarySelector.tsx b/src/routes/settings/costModels/components/toolbar/primarySelector.tsx index d5645b822..ac40f3c38 100644 --- a/src/routes/settings/costModels/components/toolbar/primarySelector.tsx +++ b/src/routes/settings/costModels/components/toolbar/primarySelector.tsx @@ -1,8 +1,6 @@ import { Select, SelectOption } from '@patternfly/react-core/deprecated'; import { FilterIcon } from '@patternfly/react-icons/dist/esm/icons/filter-icon'; -import React from 'react'; -import { WithStateMachine } from 'routes/settings/costModels/components/hoc/withStateMachine'; -import { selectMachineState } from 'routes/settings/costModels/components/logic/selectStateMachine'; +import React, { useState } from 'react'; import type { Option } from 'routes/settings/costModels/components/logic/types'; export interface PrimarySelectorProps { @@ -13,36 +11,27 @@ export interface PrimarySelectorProps { } export const PrimarySelector: React.FC = ({ setPrimary, primary, options, isDisabled }) => { + const [isOpen, setIsOpen] = useState(false); + return ( - { - setPrimary(evt.selection); - }, - }, - })} + } - isOpen={current.matches('expanded')} - selections={primary} - onSelect={(_evt, selection: string) => send({ type: 'SELECT', selection })} - onToggle={() => send({ type: 'TOGGLE' })} - > - {options.map(opt => { - return ( - - {opt.label} - - ); - })} - + + {opt.label} + ); - }} - + })} + ); }; From cf7235a75624110a1b68babb68547daf44807396 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 10:24:44 +0000 Subject: [PATCH 21/39] (chore): Bump eslint from 8.55.0 to 8.56.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.55.0 to 8.56.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.55.0...v8.56.0) --- updated-dependencies: - dependency-name: eslint 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 82b764bb4..06d5be25f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", @@ -829,9 +829,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8286,15 +8286,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/package.json b/package.json index 65027e05d..7fff07378 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", "eslint-plugin-jsdoc": "^46.9.0", From 55e4d4e432cbf5cf38d58b6ac0a7f74457ea0573 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 10:25:27 +0000 Subject: [PATCH 22/39] (chore): Bump eslint-plugin-jsdoc from 46.9.0 to 46.9.1 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.9.0 to 46.9.1. - [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.9.0...v46.9.1) --- 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 | 20 +++++++++++++++----- package.json | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82b764bb4..14b7c1eba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "eslint": "^8.55.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", - "eslint-plugin-jsdoc": "^46.9.0", + "eslint-plugin-jsdoc": "^46.9.1", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", @@ -8824,9 +8824,9 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", - "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", + "version": "46.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.1.tgz", + "integrity": "sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", @@ -8837,7 +8837,7 @@ "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": ">=16" @@ -8885,6 +8885,16 @@ "node": ">=10" } }, + "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", diff --git a/package.json b/package.json index 65027e05d..fe2722a6c 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "eslint": "^8.55.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", - "eslint-plugin-jsdoc": "^46.9.0", + "eslint-plugin-jsdoc": "^46.9.1", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", From 329ad3349776149236a40f8a39fd9cd8d1f396ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 10:27:21 +0000 Subject: [PATCH 23/39] (chore): Bump @types/react-dom from 18.2.17 to 18.2.18 Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 18.2.17 to 18.2.18. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) --- updated-dependencies: - dependency-name: "@types/react-dom" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82b764bb4..9429b44a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", + "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.14.0", @@ -3756,9 +3756,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", - "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", "devOptional": true, "dependencies": { "@types/react": "*" diff --git a/package.json b/package.json index 65027e05d..61b99af65 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", + "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.14.0", From b8aa996ced332d8c6dad936942492a9adfe2297b Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 19 Dec 2023 12:32:40 -0500 Subject: [PATCH 24/39] Move cluster component to shared area --- .../components/cluster/cluster.styles.ts | 0 .../components/cluster/cluster.tsx | 57 +++++++++++-------- .../{details => }/components/cluster/index.ts | 0 .../cluster/modal/clusterContent.tsx | 0 .../cluster/modal/clusterModal.scss | 0 .../cluster/modal/clusterModal.styles.ts | 0 .../components/cluster/modal/clusterModal.tsx | 0 .../costOverview/costOverviewBase.tsx | 2 +- 8 files changed, 34 insertions(+), 25 deletions(-) rename src/routes/{details => }/components/cluster/cluster.styles.ts (100%) rename src/routes/{details => }/components/cluster/cluster.tsx (74%) rename src/routes/{details => }/components/cluster/index.ts (100%) rename src/routes/{details => }/components/cluster/modal/clusterContent.tsx (100%) rename src/routes/{details => }/components/cluster/modal/clusterModal.scss (100%) rename src/routes/{details => }/components/cluster/modal/clusterModal.styles.ts (100%) rename src/routes/{details => }/components/cluster/modal/clusterModal.tsx (100%) diff --git a/src/routes/details/components/cluster/cluster.styles.ts b/src/routes/components/cluster/cluster.styles.ts similarity index 100% rename from src/routes/details/components/cluster/cluster.styles.ts rename to src/routes/components/cluster/cluster.styles.ts diff --git a/src/routes/details/components/cluster/cluster.tsx b/src/routes/components/cluster/cluster.tsx similarity index 74% rename from src/routes/details/components/cluster/cluster.tsx rename to src/routes/components/cluster/cluster.tsx index a746a5f2d..b73549335 100644 --- a/src/routes/details/components/cluster/cluster.tsx +++ b/src/routes/components/cluster/cluster.tsx @@ -10,8 +10,10 @@ import { styles } from './cluster.styles'; import { ClusterModal } from './modal/clusterModal'; interface ClusterOwnProps { - groupBy: string; - report: Report; + clusters?: string[]; + groupBy?: string; + name?: string; + report?: Report; title?: string; } @@ -46,36 +48,38 @@ class ClusterBase extends React.Component { }; public render() { - const { groupBy, intl, report, title } = this.props; + const { clusters, groupBy, intl, report, title } = this.props; const { isOpen, showAll } = this.state; const maxCharsPerName = 45; // Max (non-whitespace) characters that fit without overlapping card const maxItems = 2; // Max items to show before adding "more" link const someClusters = []; - const allClusters = []; - const computedItems = getComputedReportItems({ - report, - idKey: groupBy as any, - }); + const allClusters = clusters ? [...clusters] : []; + if (report) { + const computedItems = getComputedReportItems({ + report, + idKey: groupBy as any, + }); + + // Get clusters from all projects -- see https://issues.redhat.com/browse/COST-3371 + computedItems.map(item => { + if (item.clusters) { + item.clusters.map(cluster => { + if (!allClusters.includes(cluster)) { + allClusters.push(cluster); + } + }); + } + }); + } - // Get clusters from all projects -- see https://issues.redhat.com/browse/COST-3371 - const clusters = []; - computedItems.map(item => { - if (item.clusters) { - item.clusters.map(cluster => { - if (!clusters.includes(cluster)) { - clusters.push(cluster); - } - }); - } - }); - if (clusters.length === 0) { + if (allClusters.length === 0) { return null; } // Sort clusters from multiple projects - clusters.sort((a, b) => { + allClusters.sort((a, b) => { if (a < b) { return -1; } @@ -85,7 +89,7 @@ class ClusterBase extends React.Component { return 0; }); - for (const cluster of clusters) { + for (const cluster of allClusters) { let clusterString = someClusters.length > 0 ? `, ${cluster}` : cluster; if (showAll) { someClusters.push(clusterString); @@ -101,7 +105,6 @@ class ClusterBase extends React.Component { someClusters.push(clusterString); } } - allClusters.push(cluster); } return ( @@ -112,7 +115,13 @@ class ClusterBase extends React.Component { {intl.formatMessage(messages.detailsMoreClusters, { value: allClusters.length - someClusters.length })} )} - + ); } diff --git a/src/routes/details/components/cluster/index.ts b/src/routes/components/cluster/index.ts similarity index 100% rename from src/routes/details/components/cluster/index.ts rename to src/routes/components/cluster/index.ts diff --git a/src/routes/details/components/cluster/modal/clusterContent.tsx b/src/routes/components/cluster/modal/clusterContent.tsx similarity index 100% rename from src/routes/details/components/cluster/modal/clusterContent.tsx rename to src/routes/components/cluster/modal/clusterContent.tsx diff --git a/src/routes/details/components/cluster/modal/clusterModal.scss b/src/routes/components/cluster/modal/clusterModal.scss similarity index 100% rename from src/routes/details/components/cluster/modal/clusterModal.scss rename to src/routes/components/cluster/modal/clusterModal.scss diff --git a/src/routes/details/components/cluster/modal/clusterModal.styles.ts b/src/routes/components/cluster/modal/clusterModal.styles.ts similarity index 100% rename from src/routes/details/components/cluster/modal/clusterModal.styles.ts rename to src/routes/components/cluster/modal/clusterModal.styles.ts diff --git a/src/routes/details/components/cluster/modal/clusterModal.tsx b/src/routes/components/cluster/modal/clusterModal.tsx similarity index 100% rename from src/routes/details/components/cluster/modal/clusterModal.tsx rename to src/routes/components/cluster/modal/clusterModal.tsx diff --git a/src/routes/details/components/costOverview/costOverviewBase.tsx b/src/routes/details/components/costOverview/costOverviewBase.tsx index f272df653..fbc88cd16 100644 --- a/src/routes/details/components/costOverview/costOverviewBase.tsx +++ b/src/routes/details/components/costOverview/costOverviewBase.tsx @@ -19,7 +19,7 @@ import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; -import { Cluster } from 'routes/details/components/cluster'; +import { Cluster } from 'routes/components/cluster'; import { CostChart } from 'routes/details/components/costChart'; import { OverheadCostChart } from 'routes/details/components/overheadCostChart'; import { PvcChart } from 'routes/details/components/pvcChart'; From eaf76adadbe542a4c658c45cf442a00af706c083 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 19 Dec 2023 12:33:09 -0500 Subject: [PATCH 25/39] Rename tagDetails ad tagLabels --- src/routes/settings/tagDetails/index.ts | 1 - src/routes/settings/tagLabels/index.ts | 1 + .../tagLabels.styles.ts} | 0 .../tagDetails.tsx => tagLabels/tagLabels.tsx} | 18 +++++++++--------- .../{tagDetails => tagLabels}/tagTable.tsx | 0 .../{tagDetails => tagLabels}/tagToolbar.tsx | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 src/routes/settings/tagDetails/index.ts create mode 100644 src/routes/settings/tagLabels/index.ts rename src/routes/settings/{tagDetails/tagDetails.styles.ts => tagLabels/tagLabels.styles.ts} (100%) rename src/routes/settings/{tagDetails/tagDetails.tsx => tagLabels/tagLabels.tsx} (94%) rename src/routes/settings/{tagDetails => tagLabels}/tagTable.tsx (100%) rename src/routes/settings/{tagDetails => tagLabels}/tagToolbar.tsx (99%) diff --git a/src/routes/settings/tagDetails/index.ts b/src/routes/settings/tagDetails/index.ts deleted file mode 100644 index 6c0e51727..000000000 --- a/src/routes/settings/tagDetails/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TagDetails } from './tagDetails'; diff --git a/src/routes/settings/tagLabels/index.ts b/src/routes/settings/tagLabels/index.ts new file mode 100644 index 000000000..8bea72b6b --- /dev/null +++ b/src/routes/settings/tagLabels/index.ts @@ -0,0 +1 @@ +export { default as TagLabels } from './tagLabels'; diff --git a/src/routes/settings/tagDetails/tagDetails.styles.ts b/src/routes/settings/tagLabels/tagLabels.styles.ts similarity index 100% rename from src/routes/settings/tagDetails/tagDetails.styles.ts rename to src/routes/settings/tagLabels/tagLabels.styles.ts diff --git a/src/routes/settings/tagDetails/tagDetails.tsx b/src/routes/settings/tagLabels/tagLabels.tsx similarity index 94% rename from src/routes/settings/tagDetails/tagDetails.tsx rename to src/routes/settings/tagLabels/tagLabels.tsx index 388270333..f63fa8e43 100644 --- a/src/routes/settings/tagDetails/tagDetails.tsx +++ b/src/routes/settings/tagLabels/tagLabels.tsx @@ -18,26 +18,26 @@ import { FetchStatus } from 'store/common'; import { settingsActions, settingsSelectors } from 'store/settings'; import { useStateCallback } from 'utils/hooks'; -import { styles } from './tagDetails.styles'; +import { styles } from './tagLabels.styles'; import { TagTable } from './tagTable'; import { TagToolbar } from './tagToolbar'; -interface TagDetailsOwnProps { +interface TagLabelsOwnProps { canWrite?: boolean; } -export interface TagDetailsMapProps { +export interface TagLabelsMapProps { query?: Query; } -export interface TagDetailsStateProps { +export interface TagLabelsStateProps { settings?: Settings; settingsError?: AxiosError; settingsStatus?: FetchStatus; settingsQueryString?: string; } -type TagDetailsProps = TagDetailsOwnProps; +type TagLabelsProps = TagLabelsOwnProps; const baseQuery: Query = { limit: 10, @@ -48,7 +48,7 @@ const baseQuery: Query = { }, }; -const TagDetails: React.FC = ({ canWrite }) => { +const TagLabels: React.FC = ({ canWrite }) => { const [query, setQuery] = useState({ ...baseQuery }); const [selectedItems, setSelectedItems] = useStateCallback([]); const dispatch: ThunkDispatch = useDispatch(); @@ -226,7 +226,7 @@ const TagDetails: React.FC = ({ canWrite }) => { {intl.formatMessage(messages.tagDesc, { count: enabledTagsLimit, learnMore: ( - + {intl.formatMessage(messages.learnMore)} ), @@ -246,7 +246,7 @@ const TagDetails: React.FC = ({ canWrite }) => { }; // eslint-disable-next-line no-empty-pattern -const useMapToProps = ({ query }: TagDetailsMapProps): TagDetailsStateProps => { +const useMapToProps = ({ query }: TagLabelsMapProps): TagLabelsStateProps => { const dispatch: ThunkDispatch = useDispatch(); const settingsQuery = { @@ -292,4 +292,4 @@ const useMapToProps = ({ query }: TagDetailsMapProps): TagDetailsStateProps => { }; }; -export default TagDetails; +export default TagLabels; diff --git a/src/routes/settings/tagDetails/tagTable.tsx b/src/routes/settings/tagLabels/tagTable.tsx similarity index 100% rename from src/routes/settings/tagDetails/tagTable.tsx rename to src/routes/settings/tagLabels/tagTable.tsx diff --git a/src/routes/settings/tagDetails/tagToolbar.tsx b/src/routes/settings/tagLabels/tagToolbar.tsx similarity index 99% rename from src/routes/settings/tagDetails/tagToolbar.tsx rename to src/routes/settings/tagLabels/tagToolbar.tsx index c99b7d158..1060f56de 100644 --- a/src/routes/settings/tagDetails/tagToolbar.tsx +++ b/src/routes/settings/tagLabels/tagToolbar.tsx @@ -12,7 +12,7 @@ import type { ComputedReportItem } from 'routes/utils/computedReport/getComputed import type { Filter } from 'routes/utils/filter'; import { createMapStateToProps } from 'store/common'; -import { styles } from './tagDetails.styles'; +import { styles } from './tagLabels.styles'; interface TagToolbarOwnProps { canWrite?: boolean; From 17d723ca093bf63c6ebc06d4bd7ff8447de5994c Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 19 Dec 2023 12:34:19 -0500 Subject: [PATCH 26/39] Cleanup doc message names --- .../settings/costCategory/costCategory.tsx | 18 +++++++++--------- .../costModelWizard/generalInformation.tsx | 4 +--- .../costModelsDetails/noCostModels.tsx | 2 +- src/routes/settings/settings.tsx | 4 ++-- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/routes/settings/costCategory/costCategory.tsx b/src/routes/settings/costCategory/costCategory.tsx index 86b373c13..19730e72b 100644 --- a/src/routes/settings/costCategory/costCategory.tsx +++ b/src/routes/settings/costCategory/costCategory.tsx @@ -150,7 +150,7 @@ const CostCategory: React.FC = ({ canWrite }) => { if (selectedItems.length > 0) { setSelectedItems([], () => { dispatch( - settingsActions.updateSettings(SettingsType.awsCategoryKeysDisable, { + settingsActions.updateSettings(SettingsType.costCategoriesDisable, { ids: selectedItems.map(item => item.uuid), }) ); @@ -162,7 +162,7 @@ const CostCategory: React.FC = ({ canWrite }) => { if (selectedItems.length > 0) { setSelectedItems([], () => { dispatch( - settingsActions.updateSettings(SettingsType.awsCategoryKeysEnable, { + settingsActions.updateSettings(SettingsType.costCategoriesEnable, { ids: selectedItems.map(item => item.uuid), }) ); @@ -220,7 +220,7 @@ const CostCategory: React.FC = ({ canWrite }) => {
{intl.formatMessage(messages.costCategoryDesc, { learnMore: ( - + {intl.formatMessage(messages.learnMore)} ), @@ -251,20 +251,20 @@ const useMapToProps = ({ query }: CostCategoryMapProps): CostCategoryStateProps }; const settingsQueryString = getQuery(settingsQuery); const settings = useSelector((state: RootState) => - settingsSelectors.selectSettings(state, SettingsType.awsCategoryKeys, settingsQueryString) + settingsSelectors.selectSettings(state, SettingsType.costCategories, settingsQueryString) ); const settingsStatus = useSelector((state: RootState) => - settingsSelectors.selectSettingsStatus(state, SettingsType.awsCategoryKeys, settingsQueryString) + settingsSelectors.selectSettingsStatus(state, SettingsType.costCategories, settingsQueryString) ); const settingsError = useSelector((state: RootState) => - settingsSelectors.selectSettingsError(state, SettingsType.awsCategoryKeys, settingsQueryString) + settingsSelectors.selectSettingsError(state, SettingsType.costCategories, settingsQueryString) ); const settingsUpdateDisableStatus = useSelector((state: RootState) => - settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.awsCategoryKeysDisable) + settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.costCategoriesDisable) ); const settingsUpdateEnableStatus = useSelector((state: RootState) => - settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.awsCategoryKeysEnable) + settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.costCategoriesEnable) ); useEffect(() => { @@ -274,7 +274,7 @@ const useMapToProps = ({ query }: CostCategoryMapProps): CostCategoryStateProps settingsUpdateDisableStatus !== FetchStatus.inProgress && settingsUpdateEnableStatus !== FetchStatus.inProgress ) { - dispatch(settingsActions.fetchSettings(SettingsType.awsCategoryKeys, settingsQueryString)); + dispatch(settingsActions.fetchSettings(SettingsType.costCategories, settingsQueryString)); } }, [query, settingsUpdateDisableStatus, settingsUpdateEnableStatus]); diff --git a/src/routes/settings/costModels/costModelWizard/generalInformation.tsx b/src/routes/settings/costModels/costModelWizard/generalInformation.tsx index 26a813135..3c1b628de 100644 --- a/src/routes/settings/costModels/costModelWizard/generalInformation.tsx +++ b/src/routes/settings/costModels/costModelWizard/generalInformation.tsx @@ -86,9 +86,7 @@ class GeneralInformation extends React.Component { {intl.formatMessage(messages.costModelsWizardGeneralInfoTitle)} diff --git a/src/routes/settings/costModels/costModelsDetails/noCostModels.tsx b/src/routes/settings/costModels/costModelsDetails/noCostModels.tsx index 1d024c021..49f4b1fda 100644 --- a/src/routes/settings/costModels/costModelsDetails/noCostModels.tsx +++ b/src/routes/settings/costModels/costModelsDetails/noCostModels.tsx @@ -19,7 +19,7 @@ const NoCostModels = ({ intl = defaultIntl }) => {

-
+ {intl.formatMessage(messages.costModelsEmptyStateLearnMore)} diff --git a/src/routes/settings/settings.tsx b/src/routes/settings/settings.tsx index d842bff69..90b02c9ad 100644 --- a/src/routes/settings/settings.tsx +++ b/src/routes/settings/settings.tsx @@ -16,7 +16,7 @@ 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 { TagLabels } from 'routes/settings/tagLabels'; import type { RootState } from 'store'; import { FetchStatus } from 'store/common'; import { featureFlagsSelectors } from 'store/featureFlags'; @@ -167,7 +167,7 @@ const Settings: React.FC = () => { } else if (currentTab === SettingsTab.platformProjects) { return hasSettingsAccess(userAccess) ? : notAuthorized; } else if (currentTab === SettingsTab.tags) { - return hasSettingsAccess(userAccess) ? : notAuthorized; + return hasSettingsAccess(userAccess) ? : notAuthorized; } else { return emptyTab; } From 49112b613290a8d50fd5a5a9f7671ae8b91544f2 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 19 Dec 2023 12:34:49 -0500 Subject: [PATCH 27/39] Platform projects tab for settings page https://issues.redhat.com/browse/COST-3818 --- locales/data.json | 74 ++++--- locales/translations.json | 19 +- src/api/settings.ts | 30 ++- src/locales/messages.ts | 90 ++++---- .../platformProjects.styles.ts | 9 + .../platformProjects/platformProjects.tsx | 201 ++++++++++-------- ...ormTable.tsx => platformProjectsTable.tsx} | 86 ++++---- .../platformProjectsToolbar.tsx | 188 ++++++++++++++++ .../platformProjects/platformToolbar.tsx | 153 ------------- src/store/settings/settingsActions.ts | 16 +- 10 files changed, 493 insertions(+), 373 deletions(-) rename src/routes/settings/platformProjects/{platformTable.tsx => platformProjectsTable.tsx} (51%) create mode 100644 src/routes/settings/platformProjects/platformProjectsToolbar.tsx delete mode 100644 src/routes/settings/platformProjects/platformToolbar.tsx diff --git a/locales/data.json b/locales/data.json index 7c889ebf9..7c7f239f2 100644 --- a/locales/data.json +++ b/locales/data.json @@ -2487,6 +2487,14 @@ } ] }, + "clusters": { + "value": [ + { + "type": 0, + "value": "Clusters" + } + ] + }, "gcp_project": { "value": [ { @@ -3486,52 +3494,52 @@ "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/adding_an_openshift_container_platform_source_to_cost_management" } ], - "docsConfigCostCategory": [ + "docsCostCategory": [ { "type": 0, "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest" } ], - "docsConfigCostModels": [ + "docsCostModelTerminology": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#cost-model-terminology" } ], - "docsConfigCostModelsOcp": [ + "docsCostModels": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models" } ], - "docsConfigPlatformProjects": [ + "docsCostModelsDistribution": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models" } ], - "docsConfigTags": [ + "docsCostModelsMarkup": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/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/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models" } ], - "docsCostModelTerminology": [ + "docsCostModelsOcp": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#cost-model-terminology" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models" } ], - "docsCostModelsDistribution": [ + "docsPlatformProjects": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest" } ], - "docsCostModelsMarkup": [ + "docsTags": [ { "type": 0, - "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models" + "value": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management" } ], "docsUsingCostModels": [ @@ -7366,6 +7374,14 @@ } ] }, + "default": { + "value": [ + { + "type": 0, + "value": "Default" + } + ] + }, "gcp_project": { "value": [ { @@ -11178,16 +11194,6 @@ "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, @@ -11206,6 +11212,16 @@ "value": "Platform distributed" } ], + "platformProjectsDesc": [ + { + "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" + } + ], "platformProjectsTitle": [ { "type": 0, @@ -11548,6 +11564,12 @@ "value": "Select categories to enable or disable" } ], + "selectProjects": [ + { + "type": 0, + "value": "Select projects to add or remove" + } + ], "selectRow": [ { "type": 0, @@ -11610,7 +11632,7 @@ "value": "Changes will be reflected in report summarizations within 24 hours" } ], - "settingsSuccessCostCategoryKeys": [ + "settingsSuccessCostCategories": [ { "options": { "disable": { diff --git a/locales/translations.json b/locales/translations.json index b415d8320..b11084842 100644 --- a/locales/translations.json +++ b/locales/translations.json @@ -207,7 +207,7 @@ "deselectTags": "Your account is limited to {count} active tags at a time. You must disable some tags to enable others", "detailsActionsExport": "Export data", "detailsActionsPriceList": "View all price lists", - "detailsClustersModalTitle": "{groupBy, select, account {account {name} clusters} aws_category {cost category {name} clusters} cluster {cluster {name} clusters} gcp_project {GCP project {name} clusters} node {node {name} clusters} org_unit_id {organizational unit {name} clusters} payer_tenant_id {account {name} clusters} product_service {service {name} clusters} project {project {name} clusters} region {region {name} clusters} resource_location {region {name} clusters} service {service {name} clusters} service_name {service {name} clusters} subscription_guid {account {name} clusters} tag {tags {name} clusters} other {}}", + "detailsClustersModalTitle": "{groupBy, select, account {account {name} clusters} aws_category {cost category {name} clusters} cluster {cluster {name} clusters} clusters {Clusters} gcp_project {GCP project {name} clusters} node {node {name} clusters} org_unit_id {organizational unit {name} clusters} payer_tenant_id {account {name} clusters} product_service {service {name} clusters} project {project {name} clusters} region {region {name} clusters} resource_location {region {name} clusters} service {service {name} clusters} service_name {service {name} clusters} subscription_guid {account {name} clusters} tag {tags {name} clusters} other {}}", "detailsColumnManagementTitle": "Manage columns", "detailsCostValue": "Cost: {value}", "detailsEmptyState": "Processing data to generate a list of all services that sums to a total cost...", @@ -234,14 +234,14 @@ "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/1-latest/html-single/adding_an_openshift_container_platform_source_to_cost_management", - "docsConfigCostCategory": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest", - "docsConfigCostModels": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models", - "docsConfigCostModelsOcp": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models", - "docsConfigPlatformProjects": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest", - "docsConfigTags": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management", + "docsCostCategory": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest", "docsCostModelTerminology": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#cost-model-terminology", + "docsCostModels": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models", "docsCostModelsDistribution": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models", "docsCostModelsMarkup": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models", + "docsCostModelsOcp": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models", + "docsPlatformProjects": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest", + "docsTags": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management", "docsUsingCostModels": "https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index", "download": "Download", "edit": "Edit", @@ -307,7 +307,7 @@ "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} group {Group} name {Name} node {Node} org_unit_id {Organizational unit} payer_tenant_id {Account} persistent_volume_claim {Persistent volume claim} product_service {Service} project {Project} region {Region} resource_location {Region} service {Service} service_name {Service} source_type {Integration} status {Status} storage_class {StorageClass} 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} default {Default} gcp_project {GCP project} group {Group} name {Name} node {Node} org_unit_id {Organizational unit} payer_tenant_id {Account} persistent_volume_claim {Persistent volume claim} product_service {Service} project {Project} region {Region} resource_location {Region} service {Service} service_name {Service} source_type {Integration} status {Status} storage_class {StorageClass} subscription_guid {Account} tag {Tag} workload {Workload name} workload_type {Workload type} other {}}", "filterByValuesAriaLabel": "Values", "forDate": "{value} for {dateRange}", "gcp": "Google Cloud Platform", @@ -472,10 +472,10 @@ "percentTotalCost": "{value} {units} ({percent} %)", "perspective": "Perspective", "perspectiveValues": "{value, select, aws {Amazon Web Services} aws_ocp {Amazon Web Services filtered by OpenShift} azure {Microsoft Azure} 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} oci {Oracle Cloud Infrastructure} 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", + "platformProjectsDesc": "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}", "platformProjectsTitle": "Platform projects", "priceList": "Price list", "priceListAddRate": "Add rate", @@ -519,6 +519,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", @@ -528,7 +529,7 @@ "settingsErrorDesc": "Failed to update settings", "settingsErrorTitle": "Unable to save application settings", "settingsSuccessChanges": "Changes will be reflected in report summarizations within 24 hours", - "settingsSuccessCostCategoryKeys": "{value, select, enable {{count, plural, one {{count} cost category key enabled} other {{count} cost category keys enabled}}} disable {{count, plural, one {{count} cost category key disabled} other {{count} cost category keys disabled}}} other {}}", + "settingsSuccessCostCategories": "{value, select, enable {{count, plural, one {{count} cost category key enabled} other {{count} cost category keys enabled}}} disable {{count, plural, one {{count} cost category key disabled} other {{count} cost category keys disabled}}} other {}}", "settingsSuccessDesc": "Settings for Cost Management were replaced with new values", "settingsSuccessTags": "{value, select, enable {{count, plural, one {{count} tag enabled} other {{count} tags enabled}}} disable {{count, plural, one {{count} tag disabled} other {{count} tags disabled}}} other {}}", "settingsSuccessTitle": "Application settings saved", diff --git a/src/api/settings.ts b/src/api/settings.ts index 23e0cae91..0876bbd89 100644 --- a/src/api/settings.ts +++ b/src/api/settings.ts @@ -3,9 +3,13 @@ import axios from 'axios'; import type { PagedLinks, PagedMetaData } from './api'; export interface SettingsData { - uuid: string; - key: string; - enabled: boolean; + clusters?: string[]; + default?: boolean; + project_name?: string; + group?: string; + uuid?: string; + key?: string; + enabled?: boolean; } export interface PagedMetaDataExt extends PagedMetaData { @@ -22,23 +26,29 @@ export interface Settings { } export interface SettingsPayload { - ids: string[]; + ids?: string[]; } // eslint-disable-next-line no-shadow export const enum SettingsType { - awsCategoryKeys = 'awsCategoryKeys', - awsCategoryKeysEnable = 'awsCategoryKeysEnable', - awsCategoryKeysDisable = 'awsCategoryKeysDisable', + costCategories = 'costCategories', + costCategoriesEnable = 'costCategoriesEnable', + costCategoriesDisable = 'costCategoriesDisable', + platformProjects = 'platformProjects', + platformProjectsAdd = 'platformProjectsAdd', + platformProjectsRemove = 'platformProjectsRemove', tags = 'tags', tagsEnable = 'tagsEnable', tagsDisable = 'tagsDisable', } export const SettingsTypePaths: Partial> = { - [SettingsType.awsCategoryKeys]: 'settings/aws_category_keys/', - [SettingsType.awsCategoryKeysEnable]: 'settings/aws_category_keys/enable/', - [SettingsType.awsCategoryKeysDisable]: 'settings/aws_category_keys/disable/', + [SettingsType.costCategories]: 'settings/aws_category_keys/', + [SettingsType.costCategoriesEnable]: 'settings/aws_category_keys/enable/', + [SettingsType.costCategoriesDisable]: 'settings/aws_category_keys/disable/', + [SettingsType.platformProjects]: 'settings/cost-groups/', + [SettingsType.platformProjectsAdd]: 'settings/cost-groups/add', + [SettingsType.platformProjectsRemove]: 'settings/cost-groups/remove', [SettingsType.tags]: 'settings/tags', [SettingsType.tagsEnable]: 'settings/tags/enable/', [SettingsType.tagsDisable]: 'settings/tags/disable/', diff --git a/src/locales/messages.ts b/src/locales/messages.ts index 355806152..2b62a9418 100644 --- a/src/locales/messages.ts +++ b/src/locales/messages.ts @@ -1174,6 +1174,7 @@ export default defineMessages({ 'account {account {name} clusters} ' + 'aws_category {cost category {name} clusters} ' + 'cluster {cluster {name} clusters} ' + + 'clusters {Clusters} ' + 'gcp_project {GCP project {name} clusters} ' + 'node {node {name} clusters} ' + 'org_unit_id {organizational unit {name} clusters} ' + @@ -1387,36 +1388,10 @@ export default defineMessages({ 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/adding_an_openshift_container_platform_source_to_cost_management', id: 'docsAddOcpSources', }, - docsConfigCostCategory: { + docsCostCategory: { defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', description: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', - id: 'docsConfigCostCategory', - }, - docsConfigCostModels: { - defaultMessage: - 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models', - description: - 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models', - id: 'docsConfigCostModels', - }, - docsConfigCostModelsOcp: { - defaultMessage: - 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models', - description: - 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models', - id: 'docsConfigCostModelsOcp', - }, - docsConfigPlatformProjects: { - defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', - description: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', - id: 'docsConfigPlatformProjects', - }, - docsConfigTags: { - defaultMessage: - 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/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/1-latest/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management', - id: 'docsConfigTags', + id: 'docsCostCategory', }, docsCostModelTerminology: { defaultMessage: @@ -1425,6 +1400,13 @@ export default defineMessages({ 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#cost-model-terminology', id: 'docsCostModelTerminology', }, + docsCostModels: { + defaultMessage: + 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models', + description: + 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index#assembly-setting-up-cost-models', + id: 'docsCostModels', + }, docsCostModelsDistribution: { defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-AWS-Azure-cost-model_setting-up-cost-models', @@ -1437,6 +1419,25 @@ export default defineMessages({ description: 'url for cost models markup', id: 'docsCostModelsMarkup', }, + docsCostModelsOcp: { + defaultMessage: + 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models', + description: + 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html/using_cost_models/assembly-setting-up-cost-models#creating-an-ocp-cost-model_setting-up-cost-models', + id: 'docsCostModelsOcp', + }, + docsPlatformProjects: { + defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', + description: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest', + id: 'docsPlatformProjects', + }, + docsTags: { + defaultMessage: + 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/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/1-latest/html/managing_cost_data_using_tagging/assembly-configuring-tags-and-labels-in-cost-management', + id: 'docsTags', + }, docsUsingCostModels: { defaultMessage: 'https://access.redhat.com/documentation/en-us/cost_management_service/1-latest/html-single/using_cost_models/index', @@ -1930,6 +1931,7 @@ export default defineMessages({ 'aws_category {Cost category} ' + 'cluster {Cluster} ' + 'container {Container} ' + + 'default {Default} ' + 'gcp_project {GCP project} ' + 'group {Group} ' + 'name {Name} ' + @@ -2954,13 +2956,6 @@ 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', @@ -2976,6 +2971,13 @@ export default defineMessages({ description: 'Platform distributed', id: 'platformDistributed', }, + platformProjectsDesc: { + 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: 'platformProjectsDesc', + }, platformProjectsTitle: { defaultMessage: 'Platform projects', description: 'Platform projects', @@ -3196,6 +3198,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}', @@ -3241,20 +3248,29 @@ export default defineMessages({ description: 'Changes will be reflected in report summarizations within 24 hours', id: 'settingsSuccessChanges', }, - settingsSuccessCostCategoryKeys: { + settingsSuccessCostCategories: { defaultMessage: '{value, select, ' + 'enable {{count, plural, one {{count} cost category key enabled} other {{count} cost category keys enabled}}} ' + 'disable {{count, plural, one {{count} cost category key disabled} other {{count} cost category keys disabled}}} ' + 'other {}}', description: 'Cost category keys enabled or disabled', - id: 'settingsSuccessCostCategoryKeys', + id: 'settingsSuccessCostCategories', }, settingsSuccessDesc: { defaultMessage: 'Settings for Cost Management were replaced with new values', description: 'Settings for Cost Management were replaced with new values', id: 'settingsSuccessDesc', }, + settingsSuccessPlatformProjects: { + defaultMessage: + '{value, select, ' + + 'add {{count, plural, one {{count} projects added to Platform projects} other {{count} project added to Platform projects}}} ' + + 'remove {{count, plural, one {{count} projects removed from Platform projects} other {{count} project removed from Platform projects}}} ' + + 'other {}}', + description: 'Platform projects added or removed', + id: 'settingsSuccessPlatformProjects', + }, settingsSuccessTags: { defaultMessage: '{value, select, ' + diff --git a/src/routes/settings/platformProjects/platformProjects.styles.ts b/src/routes/settings/platformProjects/platformProjects.styles.ts index 19d3215ba..87c471d9e 100644 --- a/src/routes/settings/platformProjects/platformProjects.styles.ts +++ b/src/routes/settings/platformProjects/platformProjects.styles.ts @@ -6,12 +6,21 @@ export const styles = { action: { marginLeft: global_spacer_md.var, }, + defaultColumn: { + width: '20%', + }, descContainer: { backgroundColor: global_BackgroundColor_light_100.value, paddingLeft: global_spacer_md.value, paddingRight: global_spacer_md.value, paddingTop: global_spacer_md.value, }, + groupColumn: { + width: '20%', + }, + nameColumn: { + width: '1%', + }, pagination: { backgroundColor: global_BackgroundColor_light_100.value, paddingBottom: global_spacer_md.value, diff --git a/src/routes/settings/platformProjects/platformProjects.tsx b/src/routes/settings/platformProjects/platformProjects.tsx index 812cb7311..91dac4c19 100644 --- a/src/routes/settings/platformProjects/platformProjects.tsx +++ b/src/routes/settings/platformProjects/platformProjects.tsx @@ -1,8 +1,9 @@ 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 { Settings } from 'api/settings'; +import type { SettingsData } from 'api/settings'; +import { SettingsType } from 'api/settings'; import type { AxiosError } from 'axios'; import messages from 'locales/messages'; import React, { useEffect, useState } from 'react'; @@ -12,16 +13,15 @@ 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 { settingsActions, settingsSelectors } from 'store/settings'; +import { useStateCallback } from 'utils/hooks'; import { styles } from './platformProjects.styles'; -import { PlatformTable } from './platformTable'; -import { PlatformToolbar } from './platformToolbar'; +import { PlatformProjectsTable } from './platformProjectsTable'; +import { GroupType, PlatformProjectsToolbar } from './platformProjectsToolbar'; interface PlatformProjectsOwnProps { canWrite?: boolean; @@ -32,51 +32,42 @@ export interface PlatformProjectsMapProps { } export interface PlatformProjectsStateProps { - isReadOnly?: boolean; - report?: Report; - reportError?: AxiosError; - reportFetchStatus?: FetchStatus; - reportQueryString?: string; + settings?: Settings; + settingsError?: AxiosError; + settingsStatus?: FetchStatus; + settingsQueryString?: string; } type PlatformProjectsProps = PlatformProjectsOwnProps; const baseQuery: Query = { - filter: { - resolution: 'monthly', - time_scope_units: 'month', - time_scope_value: -1, - limit: 10, - offset: 0, - }, + limit: 10, + offset: 0, filter_by: {}, - group_by: { - project: '*', - }, order_by: { - cost: 'desc', + group: 'asc', }, }; const PlatformProjects: React.FC = ({ canWrite }) => { - const [isAllSelected, setIsAllSelected] = useState(false); const [query, setQuery] = useState({ ...baseQuery }); - const [selectedItems, setSelectedItems] = useState([]); + const [selectedItems, setSelectedItems] = useStateCallback([]); + const dispatch: ThunkDispatch = useDispatch(); const intl = useIntl(); - const { report, reportError, reportFetchStatus, reportQueryString } = useMapToProps({ query }); + const { settings, settingsError, settingsStatus } = useMapToProps({ query }); - const getComputedItems = () => { - return getUnsortedComputedReportItems({ - report, - idKey: 'project' as any, - }); + const getCategories = () => { + if (settings) { + return settings.data as any; + } + return []; }; const getPagination = (isDisabled = false, isBottom = false) => { - const count = report?.meta ? report.meta.count : 0; - const limit = report?.meta?.filter?.limit ? report.meta.filter.limit : baseQuery.filter.limit; - const offset = report?.meta?.filter?.offset ? report.meta.filter.offset : baseQuery.filter.offset; + const count = settings?.meta ? settings.meta.count : 0; + const limit = settings?.meta ? settings.meta.limit : baseQuery.limit; + const offset = settings?.meta ? settings.meta.offset : baseQuery.offset; const page = Math.trunc(offset / limit + 1); return ( @@ -102,60 +93,70 @@ const PlatformProjects: React.FC = ({ canWrite }) => { const getTable = () => { return ( - handleOnSort(sortType, isSortAscending)} - report={report} - reportQueryString={reportQueryString} + settings={settings} selectedItems={selectedItems} /> ); }; - const getToolbar = (computedItems: ComputedReportItem[]) => { - const isDisabled = computedItems.length === 0; - const itemsTotal = report?.meta ? report.meta.count : 0; + const getToolbar = (categories: SettingsData[]) => { + const hasEnabledItem = selectedItems.find(item => item.enabled); + const hasDisabledItem = selectedItems.find(item => !item.enabled); + const itemsTotal = settings?.meta ? settings.meta.count : 0; return ( - handleOnFilterAdded(filter)} onFilterRemoved={filter => handleOnFilterRemoved(filter)} - onRemoveProjects={handleOnRemoveProjects} + onRemove={handleOnRemove} pagination={getPagination(isDisabled)} query={query} selectedItems={selectedItems} + showBulkSelectAll={false} /> ); }; 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 newSelectedItems = [...selectedItems]; + getCategories().map(val => { + if (!newSelectedItems.find(item => item.project_name === val.project_name)) { + newSelectedItems.push(val); + } + }); + setSelectedItems(newSelectedItems); } }; - const handleOnAddProjects = () => {}; - - const handleOnRemoveProjects = () => {}; + const handleOnAdd = () => { + if (selectedItems.length > 0) { + const payload = selectedItems.map(item => ({ + project_name: item.project_name, + group: GroupType.platform, + })); + setSelectedItems([], () => { + dispatch(settingsActions.updateSettings(SettingsType.platformProjectsAdd, payload as any)); + }); + } + }; const handleOnFilterAdded = filter => { const newQuery = queryUtils.handleOnFilterAdded(query, filter); @@ -168,27 +169,38 @@ const PlatformProjects: React.FC = ({ canWrite }) => { }; const handleOnPerPageSelect = perPage => { - const newQuery = queryUtils.handleOnPerPageSelect(query, perPage); + const newQuery = queryUtils.handleOnPerPageSelect(query, perPage, true); setQuery(newQuery); }; + const handleOnRemove = () => { + if (selectedItems.length > 0) { + const payload = selectedItems.map(item => ({ + project_name: item.project_name, + group: null, + })); + setSelectedItems([], () => { + dispatch(settingsActions.updateSettings(SettingsType.platformProjectsRemove, payload as any)); + }); + } + }; + const handleOnSetPage = pageNumber => { - const newQuery = queryUtils.handleOnSetPage(query, report, pageNumber); + const newQuery = queryUtils.handleOnSetPage(query, settings, pageNumber, true); setQuery(newQuery); }; - const handleOnSelected = (items: ComputedReportItem[], isSelected: boolean = false) => { - let newItems = [...(isAllSelected ? getComputedItems() : selectedItems)]; + const handleOnSelected = (items: SettingsData[], isSelected: boolean = false) => { + let newItems = [...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); + newItems = newItems.filter(val => val.project_name !== item.project_name); }); } } - setIsAllSelected(false); setSelectedItems(newItems); }; @@ -197,26 +209,25 @@ const PlatformProjects: React.FC = ({ canWrite }) => { setQuery(newQuery); }; - const computedItems = getComputedItems(); - const isDisabled = computedItems.length === 0; + const categories = getCategories(); + const isDisabled = categories.length === 0; - // Note: Providers are fetched via the AccountSettings component used by all routes - if (reportError) { + if (settingsError) { return ; } return (
- {intl.formatMessage(messages.platfomProjectaDesc, { + {intl.formatMessage(messages.platformProjectsDesc, { learnMore: ( - + {intl.formatMessage(messages.learnMore)} ), })}
- {getToolbar(computedItems)} - {reportFetchStatus === FetchStatus.inProgress ? ( + {getToolbar(categories)} + {settingsStatus === FetchStatus.inProgress ? ( ) : ( <> @@ -230,32 +241,48 @@ const PlatformProjects: React.FC = ({ canWrite }) => { // 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 settingsQuery = { + filter_by: query.filter_by, + limit: query.limit, + offset: query.offset, + order_by: query.order_by, + }; + const settingsQueryString = getQuery(settingsQuery); + const settings = useSelector((state: RootState) => + settingsSelectors.selectSettings(state, SettingsType.platformProjects, settingsQueryString) + ); + const settingsStatus = useSelector((state: RootState) => + settingsSelectors.selectSettingsStatus(state, SettingsType.platformProjects, settingsQueryString) ); - const reportFetchStatus = useSelector((state: RootState) => - reportSelectors.selectReportFetchStatus(state, reportPathsType, reportType, reportQueryString) + const settingsError = useSelector((state: RootState) => + settingsSelectors.selectSettingsError(state, SettingsType.platformProjects, settingsQueryString) + ); + + const settingsUpdateDisableStatus = useSelector((state: RootState) => + settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.platformProjectsAdd) ); - const reportError = useSelector((state: RootState) => - reportSelectors.selectReportError(state, reportPathsType, reportType, reportQueryString) + const settingsUpdateEnableStatus = useSelector((state: RootState) => + settingsSelectors.selectSettingsUpdateStatus(state, SettingsType.platformProjectsRemove) ); useEffect(() => { - if (!reportError && reportFetchStatus !== FetchStatus.inProgress) { - dispatch(reportActions.fetchReport(reportPathsType, reportType, reportQueryString)); + if ( + !settingsError && + settingsStatus !== FetchStatus.inProgress && + settingsUpdateDisableStatus !== FetchStatus.inProgress && + settingsUpdateEnableStatus !== FetchStatus.inProgress + ) { + dispatch(settingsActions.fetchSettings(SettingsType.platformProjects, settingsQueryString)); } - }, [query]); + }, [query, settingsUpdateDisableStatus, settingsUpdateEnableStatus]); return { - report, - reportError, - reportFetchStatus, - reportQueryString, + settings, + settingsError, + settingsStatus, + settingsQueryString, }; }; diff --git a/src/routes/settings/platformProjects/platformTable.tsx b/src/routes/settings/platformProjects/platformProjectsTable.tsx similarity index 51% rename from src/routes/settings/platformProjects/platformTable.tsx rename to src/routes/settings/platformProjects/platformProjectsTable.tsx index 9412ee3e9..8e3db63de 100644 --- a/src/routes/settings/platformProjects/platformTable.tsx +++ b/src/routes/settings/platformProjects/platformProjectsTable.tsx @@ -1,46 +1,39 @@ import 'routes/components/dataTable/dataTable.scss'; import { Label } from '@patternfly/react-core'; -import type { Report, ReportItem } from 'api/reports/report'; +import type { Settings, SettingsData } from 'api/settings'; import messages from 'locales/messages'; import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; +import { Cluster } from 'routes/components/cluster'; 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 { styles } from 'routes/components/dataTable/dataTable.styles'; import type { RouterComponentProps } from 'utils/router'; import { withRouter } from 'utils/router'; -interface PlatformTableOwnProps extends RouterComponentProps, WrappedComponentProps { +import { styles } from './platformProjects.styles'; + +interface CostCategoryOwnProps extends RouterComponentProps, WrappedComponentProps { + canWrite?: boolean; filterBy?: any; - isAllSelected?: boolean; isLoading?: boolean; - isReadOnly?: boolean; - onSelected(items: ComputedReportItem[], isSelected: boolean); + onSelected(items: SettingsData[], isSelected: boolean); onSort(value: string, isSortAscending: boolean); orderBy?: any; - report: Report; - reportQueryString: string; - selectedItems?: ComputedReportItem[]; + selectedItems?: SettingsData[]; + settings: Settings; } -interface PlatformTableState { +interface CostCategoryState { columns?: any[]; rows?: any[]; } -type PlatformTableProps = PlatformTableOwnProps; - -export const PlatformTableColumnIds = { - infrastructure: 'infrastructure', - monthOverMonth: 'monthOverMonth', - supplementary: 'supplementary', -}; +type CostCategoryProps = CostCategoryOwnProps; -class PlatformTableBase extends React.Component { - public state: PlatformTableState = { +class CostCategoryBase extends React.Component { + public state: CostCategoryState = { columns: [], rows: [], }; @@ -49,10 +42,10 @@ class PlatformTableBase extends React.Component { - const { intl, isAllSelected, isReadOnly, report, selectedItems } = this.props; - if (!report) { + const { canWrite, intl, selectedItems, settings } = this.props; + if (!settings) { return; } const rows = []; - const computedItems = getUnsortedComputedReportItems({ - report, - idKey: 'project' as any, - }); + const computedItems = settings?.data ? (settings.data as any) : []; const columns = [ { name: '', // Selection column }, { - orderBy: 'project', // Todo: update filter name + orderBy: 'project_name', // Todo: update filter name name: intl.formatMessage(messages.detailsResourceNames, { value: 'name' }), ...(computedItems.length && { isSortable: true }), }, + { + name: '', // Default column + }, { orderBy: 'group', name: intl.formatMessage(messages.detailsResourceNames, { value: 'group' }), @@ -88,32 +81,31 @@ class PlatformTableBase extends React.Component { - const label = item && item.label !== null ? item.label : ''; - rows.push({ cells: [ {}, // Empty cell for row selection { - value: label, + value: item.project_name ? item.project_name : '', + style: styles.nameColumn, + }, + { + value: item.default ? : null, }, { - value: ( - - ), + value: + item.group === 'Platform' ? : null, + style: styles.defaultColumn, }, - { value: 'cluster', style: styles.lastItem }, + { value: , style: styles.groupColumn }, ], item, - selected: isAllSelected || (selectedItems && selectedItems.find(val => val.id === item.id) !== undefined), - selectionDisabled: isReadOnly, + selected: selectedItems && selectedItems.find(val => val.project_name === item.project_name) !== undefined, + selectionDisabled: !canWrite || item.default, }); }); @@ -148,6 +140,6 @@ class PlatformTableBase extends React.Component { + protected defaultState: CostCategoryToolbarState = {}; + public state: CostCategoryToolbarState = { ...this.defaultState }; + + public componentDidMount() { + this.setState({ + categoryOptions: this.getCategoryOptions(), + }); + } + + private getActions = () => { + const { canWrite, intl, isPrimaryActionDisabled, isSecondaryActionDisabled, onAdd, onRemove, selectedItems } = + this.props; + + const isDisabled = !canWrite || selectedItems.length === 0; + const tooltip = intl.formatMessage(!canWrite ? messages.readOnlyPermissions : messages.selectProjects); + + return ( + <> + + + + + + + + ); + }; + + private getCategoryOptions = (): ToolbarChipGroupExt[] => { + const { intl } = this.props; + + const options = [ + { + ariaLabelKey: 'name', + placeholderKey: 'name', + key: 'project_name', + name: intl.formatMessage(messages.filterByValues, { value: 'name' }), + }, + { + ariaLabelKey: 'group', + placeholderKey: 'group', + key: 'group', + name: intl.formatMessage(messages.filterByValues, { value: 'group' }), + selectOptions: [ + { + name: intl.formatMessage(messages.platform), + key: GroupType.platform, + }, + ], + }, + { + ariaLabelKey: 'cluster', + placeholderKey: 'cluster', + key: 'cluster', + name: intl.formatMessage(messages.filterByValues, { value: 'cluster' }), + }, + ]; + return options; + }; + + public render() { + const { + canWrite, + isDisabled, + itemsPerPage, + itemsTotal, + onBulkSelected, + onFilterAdded, + onFilterRemoved, + pagination, + query, + selectedItems, + showBulkSelectAll, + } = this.props; + const { categoryOptions } = this.state; + + return ( + + ); + } +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const mapStateToProps = createMapStateToProps(() => { + return { + // TBD... + }; +}); + +const mapDispatchToProps: CostCategoryToolbarDispatchProps = { + // TBD... +}; + +const CostCategoryToolbarConnect = connect(mapStateToProps, mapDispatchToProps)(CostCategoryToolbarBase); +const PlatformProjectsToolbar = injectIntl(CostCategoryToolbarConnect); + +export { PlatformProjectsToolbar }; +export type { CostCategoryToolbarProps }; diff --git a/src/routes/settings/platformProjects/platformToolbar.tsx b/src/routes/settings/platformProjects/platformToolbar.tsx deleted file mode 100644 index c3c59ea44..000000000 --- a/src/routes/settings/platformProjects/platformToolbar.tsx +++ /dev/null @@ -1,153 +0,0 @@ -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 { - canWrite?: boolean; - 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 { canWrite, intl, onAddProjects, onRemoveProjects, selectedItems } = this.props; - - const isDisabled = !canWrite || selectedItems.length === 0; - const tooltip = intl.formatMessage(!canWrite ? messages.readOnlyPermissions : messages.selectCategories); - - 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 { - canWrite, - 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/store/settings/settingsActions.ts b/src/store/settings/settingsActions.ts index 7ec152634..e5cd7da85 100644 --- a/src/store/settings/settingsActions.ts +++ b/src/store/settings/settingsActions.ts @@ -73,14 +73,22 @@ export function updateSettings(settingsType: SettingsType, payload: SettingsPayl let msg; let status; switch (settingsType) { - case SettingsType.awsCategoryKeysDisable: - msg = messages.settingsSuccessCostCategoryKeys; + case SettingsType.costCategoriesDisable: + msg = messages.settingsSuccessCostCategories; status = 'disable'; break; - case SettingsType.awsCategoryKeysEnable: - msg = messages.settingsSuccessCostCategoryKeys; + case SettingsType.costCategoriesEnable: + msg = messages.settingsSuccessCostCategories; status = 'enable'; break; + case SettingsType.platformProjectsAdd: + msg = messages.settingsSuccessPlatformProjects; + status = 'add'; + break; + case SettingsType.platformProjectsRemove: + msg = messages.settingsSuccessPlatformProjects; + status = 'remove'; + break; case SettingsType.tagsDisable: msg = messages.settingsSuccessTags; status = 'disable'; From 3af568098413bf2f1943c6e4c7a3a31ba4135e83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 10:47:36 +0000 Subject: [PATCH 28/39] (chore): Bump @types/qs from 6.9.10 to 6.9.11 Bumps [@types/qs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qs) from 6.9.10 to 6.9.11. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qs) --- updated-dependencies: - dependency-name: "@types/qs" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..ffd5eb9b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.1", "@types/jest": "^29.5.11", - "@types/qs": "^6.9.10", + "@types/qs": "^6.9.11", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", @@ -3734,9 +3734,9 @@ "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "dev": true }, "node_modules/@types/range-parser": { diff --git a/package.json b/package.json index eb042d200..493bb6fe8 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.1", "@types/jest": "^29.5.11", - "@types/qs": "^6.9.10", + "@types/qs": "^6.9.11", "@types/react": "^18.2.43", "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", From d6279da20872865a95eebe5ed6d7755d04efe62f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 10:48:37 +0000 Subject: [PATCH 29/39] (chore): Bump react-bootstrap from 2.9.1 to 2.9.2 Bumps [react-bootstrap](https://github.com/react-bootstrap/react-bootstrap) from 2.9.1 to 2.9.2. - [Release notes](https://github.com/react-bootstrap/react-bootstrap/releases) - [Changelog](https://github.com/react-bootstrap/react-bootstrap/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-bootstrap/react-bootstrap/compare/v2.9.1...v2.9.2) --- updated-dependencies: - dependency-name: react-bootstrap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..982a71be0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "lodash": "^4.17.21", "qs": "^6.11.2", "react": "^18.2.0", - "react-bootstrap": "^2.9.1", + "react-bootstrap": "^2.9.2", "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", @@ -17029,9 +17029,9 @@ } }, "node_modules/react-bootstrap": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.9.1.tgz", - "integrity": "sha512-ezgmh/ARCYp18LbZEqPp0ppvy+ytCmycDORqc8vXSKYV3cer4VH7OReV8uMOoKXmYzivJTxgzGHalGrHamryHA==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.9.2.tgz", + "integrity": "sha512-a36B+EHsAI/aH+ZhXNILBFnqscE3zr10dWmjBmfhIb2QR7KSXJiGzYd6Faf/25G8G7/CP9TCL2B0WhUBOD2UBQ==", "dependencies": { "@babel/runtime": "^7.22.5", "@restart/hooks": "^0.4.9", diff --git a/package.json b/package.json index eb042d200..af0ed2675 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "lodash": "^4.17.21", "qs": "^6.11.2", "react": "^18.2.0", - "react-bootstrap": "^2.9.1", + "react-bootstrap": "^2.9.2", "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", From d0eb0305cfc7db072828fb79a7949c52d226a0f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 10:49:33 +0000 Subject: [PATCH 30/39] (chore): Bump eslint-plugin-prettier from 5.0.1 to 5.1.2 Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.0.1 to 5.1.2. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.0.1...v5.1.2) --- updated-dependencies: - dependency-name: eslint-plugin-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 35 ++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..b70be3577 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "eslint-plugin-jsdoc": "^46.9.1", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", - "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-prettier": "^5.1.2", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2", @@ -5371,9 +5371,9 @@ } }, "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, "engines": { "node": ">=0.6" @@ -7482,9 +7482,9 @@ } }, "node_modules/default-browser/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -9075,23 +9075,24 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", - "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz", + "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" + "synckit": "^0.8.6" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/prettier" + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", + "eslint-config-prettier": "*", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -18814,13 +18815,13 @@ "dev": true }, "node_modules/synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz", + "integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==", "dev": true, "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" + "@pkgr/utils": "^2.4.2", + "tslib": "^2.6.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" diff --git a/package.json b/package.json index eb042d200..59ff12fef 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "eslint-plugin-jsdoc": "^46.9.1", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", - "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-prettier": "^5.1.2", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2", From cf99eb2c98d5022f9dbb0aa7d409b9420b3954df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 10:53:15 +0000 Subject: [PATCH 31/39] (chore): Bump @testing-library/user-event from 14.5.1 to 14.5.2 Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 14.5.1 to 14.5.2. - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v14.5.1...v14.5.2) --- updated-dependencies: - dependency-name: "@testing-library/user-event" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..2a499da48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "@redhat-cloud-services/frontend-components-config": "^6.0.6", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", - "@testing-library/user-event": "^14.5.1", + "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.43", @@ -3319,9 +3319,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.5.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.1.tgz", - "integrity": "sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==", + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, "engines": { "node": ">=12", diff --git a/package.json b/package.json index eb042d200..45899d18d 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "@redhat-cloud-services/frontend-components-config": "^6.0.6", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", - "@testing-library/user-event": "^14.5.1", + "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", "@types/qs": "^6.9.10", "@types/react": "^18.2.43", From b9afe7cd06d9bb610fdeaa099243ccb6bb510573 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:40:34 +0000 Subject: [PATCH 32/39] (chore): Bump eslint-plugin-jsdoc from 46.9.1 to 48.0.2 Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.9.1 to 48.0.2. - [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.9.1...v48.0.2) --- 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 | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..6a983be02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "eslint": "^8.56.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", - "eslint-plugin-jsdoc": "^46.9.1", + "eslint-plugin-jsdoc": "^48.0.2", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", @@ -8824,9 +8824,9 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.1.tgz", - "integrity": "sha512-11Ox5LCl2wY7gGkp9UOyew70o9qvii1daAH+h/MFobRVRNcy7sVlH+jm0HQdgcvcru6285GvpjpUyoa051j03Q==", + "version": "48.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.2.tgz", + "integrity": "sha512-CBFl5Jc7+jlV36RwDm+PQ8Uw5r28pn2/uW/OaB+Gw5bFwn4Py/1eYMZ3hGf9S4meUFZ/sRvS+hVif2mRAp6WqQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", @@ -8840,10 +8840,10 @@ "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { diff --git a/package.json b/package.json index eb042d200..f4095e26b 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "eslint": "^8.56.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-jest-dom": "^5.1.0", - "eslint-plugin-jsdoc": "^46.9.1", + "eslint-plugin-jsdoc": "^48.0.2", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", "eslint-plugin-prettier": "^5.0.1", From 67cda6a35db1aa618142a05b731152eb280488ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:41:26 +0000 Subject: [PATCH 33/39] (chore): Bump @typescript-eslint/eslint-plugin from 6.14.0 to 6.18.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.14.0 to 6.18.0. - [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/v6.18.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 335 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 317 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..884fb4136 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^6.18.0", "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", @@ -4000,16 +4000,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", - "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.0.tgz", + "integrity": "sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/type-utils": "6.14.0", - "@typescript-eslint/utils": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.18.0", + "@typescript-eslint/type-utils": "6.18.0", + "@typescript-eslint/utils": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4034,6 +4034,65 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", + "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", + "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", + "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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", @@ -4113,13 +4172,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", - "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.0.tgz", + "integrity": "sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/typescript-estree": "6.18.0", + "@typescript-eslint/utils": "6.18.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4139,6 +4198,133 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", + "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz", + "integrity": "sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", + "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "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": "6.14.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", @@ -4213,17 +4399,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", - "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.0.tgz", + "integrity": "sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/scope-manager": "6.18.0", + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/typescript-estree": "6.18.0", "semver": "^7.5.4" }, "engines": { @@ -4237,6 +4423,102 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", + "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", + "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz", + "integrity": "sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", + "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.18.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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", @@ -4249,6 +4531,21 @@ "node": ">=10" } }, + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", diff --git a/package.json b/package.json index eb042d200..b703e0b18 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^6.18.0", "@typescript-eslint/parser": "^6.14.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", From 854fedb3393e3c8668684c3d0ebbcafb949e17d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:41:49 +0000 Subject: [PATCH 34/39] (chore): Bump unleash-proxy-client from 3.2.0 to 3.3.0 Bumps [unleash-proxy-client](https://github.com/unleash/unleash-proxy-client-js) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/unleash/unleash-proxy-client-js/releases) - [Commits](https://github.com/unleash/unleash-proxy-client-js/compare/v3.2.0...v3.3.0) --- updated-dependencies: - dependency-name: unleash-proxy-client dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2814e1c8b..838708808 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", - "unleash-proxy-client": "^3.2.0", + "unleash-proxy-client": "^3.3.0", "victory-core": "^36.7.0", "yaml": "^2.3.4" }, @@ -19693,9 +19693,9 @@ } }, "node_modules/unleash-proxy-client": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.2.0.tgz", - "integrity": "sha512-y9iCRCytxQCej6HlXecGu63ul1Wz6xklXOs+vuaPbqtj4NDGT6IThUvP3h7m5pW+IIxR99hnkVS1FICt1FT3yQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/unleash-proxy-client/-/unleash-proxy-client-3.3.0.tgz", + "integrity": "sha512-BT4tm9M8vB0Enet5T9FvE/ifHgBAaZbmA2MT3pvvI78xmdtxviP0Bn3SEKrDKdmc6Q02cFF2NBv23QR4j0CDEQ==", "dependencies": { "tiny-emitter": "^2.1.0", "uuid": "^9.0.1" diff --git a/package.json b/package.json index eb042d200..2fb8b7738 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", - "unleash-proxy-client": "^3.2.0", + "unleash-proxy-client": "^3.3.0", "victory-core": "^36.7.0", "yaml": "^2.3.4" }, From ac13ca993b12d6c9a33c7666341650d933404010 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 10:42:48 +0000 Subject: [PATCH 35/39] (chore): Bump axios from 1.6.2 to 1.6.5 Bumps [axios](https://github.com/axios/axios) from 1.6.2 to 1.6.5. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.6.2...v1.6.5) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production update-type: version-update:semver-patch ... 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 2814e1c8b..243302bb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", - "axios": "^1.6.2", + "axios": "^1.6.5", "date-fns": "^2.30.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", @@ -5127,11 +5127,11 @@ } }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -10188,9 +10188,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", diff --git a/package.json b/package.json index eb042d200..502b9c7b9 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", - "axios": "^1.6.2", + "axios": "^1.6.5", "date-fns": "^2.30.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", From 7df32d2d0d2e88f65c4a6f691ef1f2325ebb739c Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 8 Jan 2024 11:53:43 -0500 Subject: [PATCH 36/39] Update dependencies --- package-lock.json | 425 ++++-------------- package.json | 12 +- .../awsDashboard/awsDashboardWidget.test.tsx | 17 - .../azureDashboardWidget.test.tsx | 17 - .../components/dashboardWidget.test.tsx | 16 - .../gcpDashboard/gcpDashboardWidget.test.tsx | 17 - .../gcpOcpDashboardWidget.test.tsx | 17 - .../ibmDashboard/ibmDashboardWidget.test.tsx | 17 - .../ociDashboard/ociDashboardWidget.test.tsx | 17 - .../ocpCloudDashboardWidget.test.tsx | 17 - .../ocpDashboard/ocpDashboardWidget.test.tsx | 17 - .../rhelDashboardWidget.test.tsx | 17 - 12 files changed, 88 insertions(+), 518 deletions(-) diff --git a/package-lock.json b/package-lock.json index caf19853e..23d936dd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,14 +16,14 @@ "@patternfly/react-icons": "^5.1.2", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", - "@redhat-cloud-services/frontend-components": "^4.2.0", + "@redhat-cloud-services/frontend-components": "^4.2.1", "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.5", - "date-fns": "^2.30.0", + "date-fns": "^3.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.11.2", @@ -32,7 +32,7 @@ "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", - "react-router-dom": "^6.20.1", + "react-router-dom": "^6.21.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", @@ -45,18 +45,18 @@ "@formatjs/ecma402-abstract": "^1.18.0", "@formatjs/icu-messageformat-parser": "^2.7.3", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^6.0.6", + "@redhat-cloud-services/frontend-components-config": "^6.0.7", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", "@types/qs": "^6.9.11", - "@types/react": "^18.2.43", + "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.18.0", - "@typescript-eslint/parser": "^6.14.0", + "@typescript-eslint/parser": "^6.18.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -2388,15 +2388,15 @@ } }, "node_modules/@redhat-cloud-services/frontend-components": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-4.2.0.tgz", - "integrity": "sha512-fXrD30nFSuX7H1IwqGVACkfmHZW+EEaP3VYmpGIHHxAAYZid6Rq0oMeeLmf//HJhH5CO+HBq9ShYcPvpFhvRQA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components/-/frontend-components-4.2.1.tgz", + "integrity": "sha512-XLaCaG+wfu6dSiLMt+tlj6kVn6WVaJgsPV3rXEdg4afFPmjaA55OBm2AxrjpfXNj+YOgRVvXPKI8/FPbPMOOYA==", "dependencies": { "@patternfly/react-component-groups": "^5.0.0-prerelease.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.0", "@redhat-cloud-services/types": "^0.0.24", - "@scalprum/core": "^0.5.4", - "@scalprum/react-core": "^0.5.4", + "@scalprum/core": "^0.6.5", + "@scalprum/react-core": "^0.6.5", "sanitize-html": "^2.7.2" }, "peerDependencies": { @@ -2414,9 +2414,9 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.0.6.tgz", - "integrity": "sha512-T0rZTPVm9Y8YMqQ0KqaiGLh4jOkRmli2ZkibTgZG8S08BXwUSEv7NTPV5XdqHOpJTPdY49P3MD5OTKpltinq6w==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.0.7.tgz", + "integrity": "sha512-H9Yw+JkKwpLgL+JwPv5C6BE8oJbpKRpY+HSThjklFToLf6dx7J4AXu4jTgbU4ZTGk5maQEfeLJHKAHfxQWygFQ==", "dev": true, "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8", @@ -2945,9 +2945,9 @@ "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" }, "node_modules/@remix-run/router": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.1.tgz", - "integrity": "sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz", + "integrity": "sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==", "engines": { "node": ">=14.0.0" } @@ -2992,25 +2992,26 @@ } }, "node_modules/@scalprum/core": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@scalprum/core/-/core-0.5.4.tgz", - "integrity": "sha512-Z6/u1J8aRopYEfg5YzmPx+jFEjoeEQCHJPmEABLn44Dr1CmZJJStS4+jANRJXZCcGQhTH3Wsn/hu02hGxMVuCQ==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@scalprum/core/-/core-0.6.5.tgz", + "integrity": "sha512-Q9xQKmcmqKyzDev4hKyJ7Emu3uqI8rWbwezC47dffcafDLn5F9ZOTS+cNpRJcvt0Yulcb11xYDj4tBDk49B7aA==", "dependencies": { - "@openshift/dynamic-plugin-sdk": "^4.0.0" + "@openshift/dynamic-plugin-sdk": "^4.0.0", + "tslib": "^2.6.2" } }, "node_modules/@scalprum/react-core": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@scalprum/react-core/-/react-core-0.5.4.tgz", - "integrity": "sha512-tBAUstwEDri7ApIyfAzVfRzVj2MmlKVy29eFL4lOEZf7M96uUCdhmYtSdDPka7CegplgHN+9AtuSLiYR97K2gg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@scalprum/react-core/-/react-core-0.6.5.tgz", + "integrity": "sha512-ntBRJHbVFthHIxjlRYDnnqlvXXomf+QInwtCLLv2VQYRC4SOeGW6egr9jsoxImIhEBQ7BF4xnzdkqy1nAlOuvw==", "dependencies": { "@openshift/dynamic-plugin-sdk": "^4.0.0", - "@scalprum/core": "^0.5.4", + "@scalprum/core": "^0.6.5", "lodash": "^4.17.0" }, "peerDependencies": { - "react": ">=16.8.0 || >=17.0.0", - "react-dom": ">=16.8.0 || >=17.0.0" + "react": ">=16.8.0 || >=17.0.0 || ^18.0.0", + "react-dom": ">=16.8.0 || >=17.0.0 || ^18.0.0" } }, "node_modules/@sentry/browser": { @@ -3746,9 +3747,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.43", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.43.tgz", - "integrity": "sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==", + "version": "18.2.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", + "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -4034,65 +4035,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", - "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", - "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", - "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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", @@ -4127,15 +4069,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", - "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.0.tgz", + "integrity": "sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.18.0", + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/typescript-estree": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0", "debug": "^4.3.4" }, "engines": { @@ -4155,13 +4097,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", - "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", + "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" + "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/visitor-keys": "6.18.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4198,7 +4140,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", @@ -4211,7 +4153,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": "6.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz", "integrity": "sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==", @@ -4239,24 +4181,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", - "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", @@ -4265,19 +4190,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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==", @@ -4289,7 +4202,7 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", @@ -4304,79 +4217,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "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": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", - "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", - "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -4423,102 +4263,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", - "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", - "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz", - "integrity": "sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", - "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.18.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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", @@ -4531,21 +4275,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/utils/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -4568,12 +4297,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", - "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", + "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/types": "6.18.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -6691,6 +6420,22 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/concurrently/node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/concurrently/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7566,18 +7311,12 @@ } }, "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.1.0.tgz", + "integrity": "sha512-ZO7yefXV/wCWzd3I9haCHmfzlfA3i1a2HHO7ZXjtJrRjXt8FULKJ2Vl8wji3XYF4dQ0ZJ/tokXDZeYlFvgms9Q==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" } }, "node_modules/dayjs": { @@ -17514,11 +17253,11 @@ } }, "node_modules/react-router": { - "version": "6.20.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.1.tgz", - "integrity": "sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA==", + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.1.tgz", + "integrity": "sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==", "dependencies": { - "@remix-run/router": "1.13.1" + "@remix-run/router": "1.14.1" }, "engines": { "node": ">=14.0.0" @@ -17528,12 +17267,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.20.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.1.tgz", - "integrity": "sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw==", + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.1.tgz", + "integrity": "sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==", "dependencies": { - "@remix-run/router": "1.13.1", - "react-router": "6.20.1" + "@remix-run/router": "1.14.1", + "react-router": "6.21.1" }, "engines": { "node": ">=14.0.0" diff --git a/package.json b/package.json index 455165873..464050493 100644 --- a/package.json +++ b/package.json @@ -56,14 +56,14 @@ "@patternfly/react-icons": "^5.1.2", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", - "@redhat-cloud-services/frontend-components": "^4.2.0", + "@redhat-cloud-services/frontend-components": "^4.2.1", "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.5", - "date-fns": "^2.30.0", + "date-fns": "^3.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.11.2", @@ -72,7 +72,7 @@ "react-dom": "^18.2.0", "react-intl": "^6.5.5", "react-redux": "^8.1.3", - "react-router-dom": "^6.20.1", + "react-router-dom": "^6.21.1", "redux": "^4.2.1", "redux-thunk": "^2.4.2", "typesafe-actions": "^5.1.0", @@ -85,18 +85,18 @@ "@formatjs/ecma402-abstract": "^1.18.0", "@formatjs/icu-messageformat-parser": "^2.7.3", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^6.0.6", + "@redhat-cloud-services/frontend-components-config": "^6.0.7", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", "@types/qs": "^6.9.11", - "@types/react": "^18.2.43", + "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@types/react-redux": "^7.1.32", "@types/react-router-dom": "^5.3.3", "@typescript-eslint/eslint-plugin": "^6.18.0", - "@typescript-eslint/parser": "^6.14.0", + "@typescript-eslint/parser": "^6.18.0", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", diff --git a/src/routes/overview/awsDashboard/awsDashboardWidget.test.tsx b/src/routes/overview/awsDashboard/awsDashboardWidget.test.tsx index 582d65f7f..dd8194c8c 100644 --- a/src/routes/overview/awsDashboard/awsDashboardWidget.test.tsx +++ b/src/routes/overview/awsDashboard/awsDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { AwsDashboardTab } from 'store/dashboard/awsDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './awsDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [AwsDashboardTab.services, AwsDashboardTab.accounts, AwsDashboardTab.regions].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/azureDashboard/azureDashboardWidget.test.tsx b/src/routes/overview/azureDashboard/azureDashboardWidget.test.tsx index a9098bf38..c8200ca9c 100644 --- a/src/routes/overview/azureDashboard/azureDashboardWidget.test.tsx +++ b/src/routes/overview/azureDashboard/azureDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { AzureDashboardTab } from 'store/dashboard/azureDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './azureDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [AzureDashboardTab.service_names, AzureDashboardTab.subscription_guids, AzureDashboardTab.resource_locations].forEach( value => { diff --git a/src/routes/overview/components/dashboardWidget.test.tsx b/src/routes/overview/components/dashboardWidget.test.tsx index 314a71570..1fb9ade1b 100644 --- a/src/routes/overview/components/dashboardWidget.test.tsx +++ b/src/routes/overview/components/dashboardWidget.test.tsx @@ -1,15 +1,12 @@ -jest.mock('date-fns').mock('date-fns/format'); import type { MessageDescriptor } from '@formatjs/intl/src/types'; import { render } from '@testing-library/react'; import { intl } from 'components/i18n'; -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import React from 'react'; import { defineMessages } from 'react-intl'; import { DatumType } from 'routes/components/charts/common/chartDatum'; import { DashboardWidgetBase } from 'routes/overview/components'; import type { DashboardWidgetProps } from 'routes/overview/components/dashboardWidgetBase'; import { FetchStatus } from 'store/common'; -import { mockDate } from 'testUtils'; const tmessages = defineMessages({ testTitle: { @@ -51,19 +48,6 @@ const props: DashboardWidgetProps = { topItems: { formatOptions: {} }, } as any; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formatted date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('reports are fetched on mount', () => { render(); expect(props.fetchReports).toBeCalledWith(props.widgetId); diff --git a/src/routes/overview/gcpDashboard/gcpDashboardWidget.test.tsx b/src/routes/overview/gcpDashboard/gcpDashboardWidget.test.tsx index 08d47f347..c242cc8e9 100644 --- a/src/routes/overview/gcpDashboard/gcpDashboardWidget.test.tsx +++ b/src/routes/overview/gcpDashboard/gcpDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { GcpDashboardTab } from 'store/dashboard/gcpDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './gcpDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [GcpDashboardTab.services, GcpDashboardTab.gcpProjects, GcpDashboardTab.regions].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/gcpOcpDashboard/gcpOcpDashboardWidget.test.tsx b/src/routes/overview/gcpOcpDashboard/gcpOcpDashboardWidget.test.tsx index 42667dd46..6fc21cbaf 100644 --- a/src/routes/overview/gcpOcpDashboard/gcpOcpDashboardWidget.test.tsx +++ b/src/routes/overview/gcpOcpDashboard/gcpOcpDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { GcpOcpDashboardTab } from 'store/dashboard/gcpOcpDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './gcpOcpDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [GcpOcpDashboardTab.services, GcpOcpDashboardTab.gcpProjects, GcpOcpDashboardTab.regions].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/ibmDashboard/ibmDashboardWidget.test.tsx b/src/routes/overview/ibmDashboard/ibmDashboardWidget.test.tsx index a50916a6b..aab5c6afe 100644 --- a/src/routes/overview/ibmDashboard/ibmDashboardWidget.test.tsx +++ b/src/routes/overview/ibmDashboard/ibmDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { IbmDashboardTab } from 'store/dashboard/ibmDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './ibmDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [IbmDashboardTab.services, IbmDashboardTab.projects, IbmDashboardTab.regions].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/ociDashboard/ociDashboardWidget.test.tsx b/src/routes/overview/ociDashboard/ociDashboardWidget.test.tsx index 012bf8a14..4163791d0 100644 --- a/src/routes/overview/ociDashboard/ociDashboardWidget.test.tsx +++ b/src/routes/overview/ociDashboard/ociDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { OciDashboardTab } from 'store/dashboard/ociDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './ociDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [OciDashboardTab.product_services, OciDashboardTab.payer_tenant_ids, OciDashboardTab.regions].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/ocpCloudDashboard/ocpCloudDashboardWidget.test.tsx b/src/routes/overview/ocpCloudDashboard/ocpCloudDashboardWidget.test.tsx index d1e6917c9..e363ec915 100644 --- a/src/routes/overview/ocpCloudDashboard/ocpCloudDashboardWidget.test.tsx +++ b/src/routes/overview/ocpCloudDashboard/ocpCloudDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { OcpCloudDashboardTab } from 'store/dashboard/ocpCloudDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './ocpCloudDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [OcpCloudDashboardTab.accounts, OcpCloudDashboardTab.regions, OcpCloudDashboardTab.services].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/ocpDashboard/ocpDashboardWidget.test.tsx b/src/routes/overview/ocpDashboard/ocpDashboardWidget.test.tsx index 39089c003..88d891a00 100644 --- a/src/routes/overview/ocpDashboard/ocpDashboardWidget.test.tsx +++ b/src/routes/overview/ocpDashboard/ocpDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { OcpDashboardTab } from 'store/dashboard/ocpDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './ocpDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [OcpDashboardTab.clusters, OcpDashboardTab.nodes, OcpDashboardTab.projects].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); diff --git a/src/routes/overview/rhelDashboard/rhelDashboardWidget.test.tsx b/src/routes/overview/rhelDashboard/rhelDashboardWidget.test.tsx index 6f7ebc3a3..0e658a2a2 100644 --- a/src/routes/overview/rhelDashboard/rhelDashboardWidget.test.tsx +++ b/src/routes/overview/rhelDashboard/rhelDashboardWidget.test.tsx @@ -1,24 +1,7 @@ -jest.mock('date-fns'); - -import { format, getDate, getMonth, startOfMonth } from 'date-fns'; import { RhelDashboardTab } from 'store/dashboard/rhelDashboard'; -import { mockDate } from 'testUtils'; import { getIdKeyForTab } from './rhelDashboardWidget'; -const getDateMock = getDate as jest.Mock; -const formatMock = format as jest.Mock; -const startOfMonthMock = startOfMonth as jest.Mock; -const getMonthMock = getMonth as jest.Mock; - -beforeEach(() => { - mockDate(); - getDateMock.mockReturnValue(1); - formatMock.mockReturnValue('formated date'); - startOfMonthMock.mockReturnValue(1); - getMonthMock.mockReturnValue(1); -}); - test('id key for dashboard tab is the tab name in singular form', () => { [RhelDashboardTab.clusters, RhelDashboardTab.nodes, RhelDashboardTab.projects].forEach(value => { expect(getIdKeyForTab(value)).toEqual(value.slice(0, -1)); From d8b1180a7de1201c50946a864f370ad7058758cb Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 8 Jan 2024 13:12:02 -0500 Subject: [PATCH 37/39] Rename project_name as project https://issues.redhat.com/browse/COST-3818 --- src/api/settings.ts | 2 +- src/routes/settings/platformProjects/platformProjects.tsx | 8 ++++---- .../settings/platformProjects/platformProjectsTable.tsx | 6 +++--- .../settings/platformProjects/platformProjectsToolbar.tsx | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/api/settings.ts b/src/api/settings.ts index 0876bbd89..372dfe060 100644 --- a/src/api/settings.ts +++ b/src/api/settings.ts @@ -5,7 +5,7 @@ import type { PagedLinks, PagedMetaData } from './api'; export interface SettingsData { clusters?: string[]; default?: boolean; - project_name?: string; + project?: string; group?: string; uuid?: string; key?: string; diff --git a/src/routes/settings/platformProjects/platformProjects.tsx b/src/routes/settings/platformProjects/platformProjects.tsx index 91dac4c19..2bd16617e 100644 --- a/src/routes/settings/platformProjects/platformProjects.tsx +++ b/src/routes/settings/platformProjects/platformProjects.tsx @@ -138,7 +138,7 @@ const PlatformProjects: React.FC = ({ canWrite }) => { } else if (action === 'page') { const newSelectedItems = [...selectedItems]; getCategories().map(val => { - if (!newSelectedItems.find(item => item.project_name === val.project_name)) { + if (!newSelectedItems.find(item => item.project === val.project)) { newSelectedItems.push(val); } }); @@ -149,7 +149,7 @@ const PlatformProjects: React.FC = ({ canWrite }) => { const handleOnAdd = () => { if (selectedItems.length > 0) { const payload = selectedItems.map(item => ({ - project_name: item.project_name, + project: item.project, group: GroupType.platform, })); setSelectedItems([], () => { @@ -176,7 +176,7 @@ const PlatformProjects: React.FC = ({ canWrite }) => { const handleOnRemove = () => { if (selectedItems.length > 0) { const payload = selectedItems.map(item => ({ - project_name: item.project_name, + project: item.project, group: null, })); setSelectedItems([], () => { @@ -197,7 +197,7 @@ const PlatformProjects: React.FC = ({ canWrite }) => { items.map(item => newItems.push(item)); } else { items.map(item => { - newItems = newItems.filter(val => val.project_name !== item.project_name); + newItems = newItems.filter(val => val.project !== item.project); }); } } diff --git a/src/routes/settings/platformProjects/platformProjectsTable.tsx b/src/routes/settings/platformProjects/platformProjectsTable.tsx index 8e3db63de..e20541b22 100644 --- a/src/routes/settings/platformProjects/platformProjectsTable.tsx +++ b/src/routes/settings/platformProjects/platformProjectsTable.tsx @@ -66,7 +66,7 @@ class CostCategoryBase extends React.Component, style: styles.groupColumn }, ], item, - selected: selectedItems && selectedItems.find(val => val.project_name === item.project_name) !== undefined, + selected: selectedItems && selectedItems.find(val => val.project === item.project) !== undefined, selectionDisabled: !canWrite || item.default, }); }); diff --git a/src/routes/settings/platformProjects/platformProjectsToolbar.tsx b/src/routes/settings/platformProjects/platformProjectsToolbar.tsx index c7951af81..1fa9321d7 100644 --- a/src/routes/settings/platformProjects/platformProjectsToolbar.tsx +++ b/src/routes/settings/platformProjects/platformProjectsToolbar.tsx @@ -106,7 +106,7 @@ export class CostCategoryToolbarBase extends React.Component Date: Tue, 12 Dec 2023 15:24:33 -0500 Subject: [PATCH 38/39] Update Redux to use latest packages https://issues.redhat.com/browse/COST-4511 --- package-lock.json | 216 ++++++++++++++++++++++------------------- package.json | 21 ++-- src/store/mockStore.ts | 15 ++- src/store/store.ts | 35 +++---- 4 files changed, 155 insertions(+), 132 deletions(-) diff --git a/package-lock.json b/package-lock.json index 23d936dd4..3777ca283 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@patternfly/patternfly": "^5.1.0", "@patternfly/react-charts": "^7.2.0-prerelease.2", "@patternfly/react-core": "^5.1.1", - "@patternfly/react-icons": "^5.1.2", + "@patternfly/react-icons": "^5.1.1", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", "@redhat-cloud-services/frontend-components": "^4.2.1", @@ -21,9 +21,10 @@ "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", + "@reduxjs/toolkit": "^2.0.1", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.5", - "date-fns": "^3.1.0", + "date-fns": "^3.2.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.11.2", @@ -31,13 +32,13 @@ "react-bootstrap": "^2.9.2", "react-dom": "^18.2.0", "react-intl": "^6.5.5", - "react-redux": "^8.1.3", + "react-redux": "^9.0.4", "react-router-dom": "^6.21.1", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.3.0", - "victory-core": "^36.7.0", + "victory-core": "^36.8.1", "yaml": "^2.3.4" }, "devDependencies": { @@ -53,10 +54,10 @@ "@types/qs": "^6.9.11", "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", - "@types/react-redux": "^7.1.32", + "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.18.0", - "@typescript-eslint/parser": "^6.18.0", + "@typescript-eslint/eslint-plugin": "^6.18.1", + "@typescript-eslint/parser": "^6.18.1", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -2944,6 +2945,29 @@ "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==" }, + "node_modules/@reduxjs/toolkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.0.1.tgz", + "integrity": "sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.0", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, "node_modules/@remix-run/router": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz", @@ -3760,15 +3784,15 @@ "version": "18.2.18", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", - "devOptional": true, + "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-redux": { - "version": "7.1.32", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.32.tgz", - "integrity": "sha512-YJYV0M27cyHHJIacaRsZRx5OETzK8KWjEGnix7UH3ngItYo4It0MUBzU6WNwqnwhbrPw5wx9KXluuoTZ85Gg7A==", + "version": "7.1.33", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", + "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", "dev": true, "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", @@ -4001,16 +4025,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.0.tgz", - "integrity": "sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz", + "integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.18.0", - "@typescript-eslint/type-utils": "6.18.0", - "@typescript-eslint/utils": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/type-utils": "6.18.1", + "@typescript-eslint/utils": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4069,15 +4093,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.0.tgz", - "integrity": "sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz", + "integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.18.0", - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/typescript-estree": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4" }, "engines": { @@ -4097,13 +4121,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.0.tgz", - "integrity": "sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz", + "integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0" + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4114,13 +4138,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.0.tgz", - "integrity": "sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz", + "integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.18.0", - "@typescript-eslint/utils": "6.18.0", + "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/utils": "6.18.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4141,9 +4165,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.0.tgz", - "integrity": "sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz", + "integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4154,13 +4178,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.0.tgz", - "integrity": "sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz", + "integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/visitor-keys": "6.18.0", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/visitor-keys": "6.18.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4239,17 +4263,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.0.tgz", - "integrity": "sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz", + "integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.18.0", - "@typescript-eslint/types": "6.18.0", - "@typescript-eslint/typescript-estree": "6.18.0", + "@typescript-eslint/scope-manager": "6.18.1", + "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/typescript-estree": "6.18.1", "semver": "^7.5.4" }, "engines": { @@ -4297,12 +4321,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.0.tgz", - "integrity": "sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz", + "integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.0", + "@typescript-eslint/types": "6.18.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -7311,9 +7335,9 @@ } }, "node_modules/date-fns": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.1.0.tgz", - "integrity": "sha512-ZO7yefXV/wCWzd3I9haCHmfzlfA3i1a2HHO7ZXjtJrRjXt8FULKJ2Vl8wji3XYF4dQ0ZJ/tokXDZeYlFvgms9Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.2.0.tgz", + "integrity": "sha512-E4KWKavANzeuusPi0jUjpuI22SURAznGkx7eZV+4i6x2A+IZxAMcajgkvuDAU1bg40+xuhW1zRdVIIM/4khuIg==", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -11367,6 +11391,15 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/immutable": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", @@ -17201,35 +17234,23 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-redux": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", - "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.0.4.tgz", + "integrity": "sha512-9J1xh8sWO0vYq2sCxK2My/QO7MzUMRi3rpiILP/+tDr8krBHixC6JMM17fMK88+Oh3e4Ae6/sHIhNBgkUivwFA==", "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", "use-sync-external-store": "^1.0.0" }, "peerDependencies": { - "@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 || ^5.0.0-beta.0" + "@types/react": "^18.2.25", + "react": "^18.0", + "react-native": ">=0.69", + "redux": "^5.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, "react-native": { "optional": true }, @@ -17238,11 +17259,6 @@ } } }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -17371,12 +17387,9 @@ } }, "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/redux-promise-middleware": { "version": "6.1.3", @@ -17387,11 +17400,11 @@ } }, "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", "peerDependencies": { - "redux": "^4" + "redux": "^5.0.0" } }, "node_modules/reflect.getprototypeof": { @@ -17511,6 +17524,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz", + "integrity": "sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==" + }, "node_modules/resolve": { "version": "1.22.6", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", @@ -20021,14 +20039,14 @@ } }, "node_modules/victory-core": { - "version": "36.7.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-36.7.0.tgz", - "integrity": "sha512-5dSYy0m4t78qmOX1ouDEmK6KOJ5tsB1ILDAZLqzXxvH0PzLp961UaVacij8Qb6pJja8TtJ6w4J1Em1ethc4aGQ==", + "version": "36.8.1", + "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-36.8.1.tgz", + "integrity": "sha512-N60o4+q7AxMhMLY/51IiYcs9E/gu7VouYAy5e+YNvQlH6LPLy9vaUGOm8N7M+CrpQDo4ACrW3B2A5MyYEFihgQ==", "dependencies": { "lodash": "^4.17.21", "prop-types": "^15.8.1", "react-fast-compare": "^3.2.0", - "victory-vendor": "^36.7.0" + "victory-vendor": "^36.8.1" }, "peerDependencies": { "react": ">=16.6.0" @@ -20203,9 +20221,9 @@ } }, "node_modules/victory-vendor": { - "version": "36.7.0", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.7.0.tgz", - "integrity": "sha512-nqYuTkLSdTTeACyXcCLbL7rl0y6jpzLPtTNGOtSnajdR+xxMxBdjMxDjfNJNlhR+ZU8vbXz+QejntcbY7h9/ZA==", + "version": "36.8.1", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.8.1.tgz", + "integrity": "sha512-T8cXN8D6J9wEtDEHLiXcgrOE5gyKR39s9fCFTGmcOfqDrT8m2XQLt+2p/n007uxEMRvCDH7GYYqy4vV7GIcGhw==", "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", diff --git a/package.json b/package.json index 464050493..3080bce1e 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@patternfly/patternfly": "^5.1.0", "@patternfly/react-charts": "^7.2.0-prerelease.2", "@patternfly/react-core": "^5.1.1", - "@patternfly/react-icons": "^5.1.2", + "@patternfly/react-icons": "^5.1.1", "@patternfly/react-table": "^5.1.1", "@patternfly/react-tokens": "^5.1.1", "@redhat-cloud-services/frontend-components": "^4.2.1", @@ -61,9 +61,10 @@ "@redhat-cloud-services/frontend-components-translations": "^3.2.7", "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", "@redhat-cloud-services/rbac-client": "^1.2.13", + "@reduxjs/toolkit": "^2.0.1", "@unleash/proxy-client-react": "^4.1.1", "axios": "^1.6.5", - "date-fns": "^3.1.0", + "date-fns": "^3.2.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.11.2", @@ -71,13 +72,13 @@ "react-bootstrap": "^2.9.2", "react-dom": "^18.2.0", "react-intl": "^6.5.5", - "react-redux": "^8.1.3", + "react-redux": "^9.0.4", "react-router-dom": "^6.21.1", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", "typesafe-actions": "^5.1.0", "unleash-proxy-client": "^3.3.0", - "victory-core": "^36.7.0", + "victory-core": "^36.8.1", "yaml": "^2.3.4" }, "devDependencies": { @@ -93,10 +94,10 @@ "@types/qs": "^6.9.11", "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", - "@types/react-redux": "^7.1.32", + "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^6.18.0", - "@typescript-eslint/parser": "^6.18.0", + "@typescript-eslint/eslint-plugin": "^6.18.1", + "@typescript-eslint/parser": "^6.18.1", "@xstate/test": "^0.5.1", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^11.0.0", @@ -124,6 +125,8 @@ "webpack-bundle-analyzer": "^4.10.1" }, "overrides": { + "react-redux": "^9.0.4", + "redux": "^5.0.1" }, "insights": { "appname": "cost-management" diff --git a/src/store/mockStore.ts b/src/store/mockStore.ts index c9d004c9e..72f750037 100644 --- a/src/store/mockStore.ts +++ b/src/store/mockStore.ts @@ -1,15 +1,20 @@ -import type { DeepPartial, Reducer, ReducersMapObject, Store } from 'redux'; -import { applyMiddleware, combineReducers, createStore } from 'redux'; +import { configureStore as createStore } from '@reduxjs/toolkit'; +import type { Reducer, ReducersMapObject, Store } from 'redux'; +import { combineReducers } from 'redux'; import type { RootState } from './rootReducer'; -import { middlewares } from './store'; +import { middleware } from './store'; type MockReducer = ReducersMapObject | Reducer; export function createMockStoreCreator(reducer: MockReducer) { const rootReducer = typeof reducer === 'object' ? combineReducers(reducer) : reducer; - return (initialState?: DeepPartial): Store => { - return createStore(rootReducer as any, initialState, applyMiddleware(...middlewares)); + return (initialState?: Partial): Store => { + return createStore({ + middleware, + preloadedState: initialState as any, + reducer: rootReducer as any, + }); }; } diff --git a/src/store/store.ts b/src/store/store.ts index f3e55dc7c..e8c76948e 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -1,29 +1,26 @@ import { notificationsMiddleware } from '@redhat-cloud-services/frontend-components-notifications/notificationsMiddleware'; +import { configureStore as createStore } from '@reduxjs/toolkit'; import axios from 'axios'; -import type { DeepPartial } from 'redux'; -import { applyMiddleware, compose, createStore } from 'redux'; -import thunk from 'redux-thunk'; import type { RootState } from './rootReducer'; import { rootReducer } from './rootReducer'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -declare global { - interface Window { - __REDUX_DEVTOOLS_EXTENSION_COMPOSE__(options: any): typeof compose; - } -} - -const composeEnhancers = - typeof window === 'object' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ - ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ serialize: true }) - : compose; +// See https://redux-toolkit.js.org/api/serializabilityMiddleware +// and https://github.com/RedHatInsights/insights-advisor-frontend/blob/master/src/Store/index.js +export const middleware = getDefaultMiddleware => + getDefaultMiddleware({ + serializableCheck: { + ignoreActions: true, + ignoreState: true, + }, + }).concat(notificationsMiddleware()); -export const middlewares = [thunk, notificationsMiddleware()]; - -export function configureStore(initialState: DeepPartial) { - const enhancer = composeEnhancers(applyMiddleware(...middlewares)); - const store = createStore(rootReducer, initialState as any, enhancer); +export function configureStore(initialState: Partial) { + const store = createStore({ + middleware, + preloadedState: initialState as any, + reducer: rootReducer, + }); axios.interceptors.response.use(null, error => { return Promise.reject(error); From b83bea63bdc344da304d545c11dfb78e67d1447c Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 10 Jan 2024 07:56:06 -0500 Subject: [PATCH 39/39] Update dependencies --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3777ca283..571283732 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "@formatjs/ecma402-abstract": "^1.18.0", "@formatjs/icu-messageformat-parser": "^2.7.3", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^6.0.7", + "@redhat-cloud-services/frontend-components-config": "^6.0.8", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", @@ -67,7 +67,7 @@ "eslint-plugin-jsdoc": "^48.0.2", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", - "eslint-plugin-prettier": "^5.1.2", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2", @@ -2415,9 +2415,9 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.0.7.tgz", - "integrity": "sha512-H9Yw+JkKwpLgL+JwPv5C6BE8oJbpKRpY+HSThjklFToLf6dx7J4AXu4jTgbU4ZTGk5maQEfeLJHKAHfxQWygFQ==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.0.8.tgz", + "integrity": "sha512-nZ8ETm50VIOsfPCpm/rraDnvRc4oRUyqR3zF62iRu2gEnq+VUCWEVjEvWOMAs+hkvH4MmMx+pUfcrxuqNn4knQ==", "dev": true, "dependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8", @@ -9135,9 +9135,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.2.tgz", - "integrity": "sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", diff --git a/package.json b/package.json index 3080bce1e..b25438b00 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@formatjs/ecma402-abstract": "^1.18.0", "@formatjs/icu-messageformat-parser": "^2.7.3", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.3", - "@redhat-cloud-services/frontend-components-config": "^6.0.7", + "@redhat-cloud-services/frontend-components-config": "^6.0.8", "@redhat-cloud-services/tsc-transform-imports": "^1.0.4", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", @@ -107,7 +107,7 @@ "eslint-plugin-jsdoc": "^48.0.2", "eslint-plugin-markdown": "^3.0.1", "eslint-plugin-patternfly-react": "^5.2.0", - "eslint-plugin-prettier": "^5.1.2", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react": "^7.33.2", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2",