Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dynamic-demo-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@
"css-loader": "^5.2.7",
"file-loader": "6.2.0",
"http-server": "^14.1.1",
"i18next": "^23.16.8",
"i18next": "^25.8.18",
"i18next-parser": "^3.3.0",
"js-yaml": "^4.1.1",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-i18next": "~15.1.4",
"react-i18next": "~16.5.8",
"react-router": "~7.13.1",
"style-loader": "^4.0.0",
"ts-loader": "^9.5.4",
Expand Down
131 changes: 99 additions & 32 deletions dynamic-demo-plugin/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ __metadata:
languageName: node
linkType: hard

"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.25.0":
"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.28.4, @babel/runtime@npm:^7.28.6":
version: 7.28.6
resolution: "@babel/runtime@npm:7.28.6"
checksum: 10c0/358cf2429992ac1c466df1a21c1601d595c46930a13c1d4662fde908d44ee78ec3c183aaff513ecb01ef8c55c3624afe0309eeeb34715672dbfadb7feedb2c0d
Expand All @@ -45,12 +45,12 @@ __metadata:
css-loader: "npm:^5.2.7"
file-loader: "npm:6.2.0"
http-server: "npm:^14.1.1"
i18next: "npm:^23.16.8"
i18next: "npm:^25.8.18"
i18next-parser: "npm:^3.3.0"
js-yaml: "npm:^4.1.1"
react: "npm:18.3.1"
react-dom: "npm:18.3.1"
react-i18next: "npm:~15.1.4"
react-i18next: "npm:~16.5.8"
react-router: "npm:~7.13.1"
style-loader: "npm:^4.0.0"
ts-loader: "npm:^9.5.4"
Expand Down Expand Up @@ -177,7 +177,7 @@ __metadata:
peerDependencies:
"@patternfly/react-topology": ~6.4.0
react: ^18.3.1
react-i18next: ~15.1.4
react-i18next: ~16.5.8
react-redux: 8.1.3
react-router: ~7.13.1
redux: ^4.0.4
Expand Down Expand Up @@ -762,6 +762,20 @@ __metadata:
languageName: node
linkType: hard

"async-function@npm:^1.0.0":
version: 1.0.0
resolution: "async-function@npm:1.0.0"
checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73
languageName: node
linkType: hard

"async-generator-function@npm:^1.0.0":
version: 1.0.0
resolution: "async-generator-function@npm:1.0.0"
checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186
languageName: node
linkType: hard

"async@npm:^3.2.6":
version: 3.2.6
resolution: "async@npm:3.2.6"
Expand Down Expand Up @@ -994,21 +1008,21 @@ __metadata:
linkType: hard

"cheerio@npm:^1.0.0-rc.2":
version: 1.1.2
resolution: "cheerio@npm:1.1.2"
version: 1.2.0
resolution: "cheerio@npm:1.2.0"
dependencies:
cheerio-select: "npm:^2.1.0"
dom-serializer: "npm:^2.0.0"
domhandler: "npm:^5.0.3"
domutils: "npm:^3.2.2"
encoding-sniffer: "npm:^0.2.1"
htmlparser2: "npm:^10.0.0"
htmlparser2: "npm:^10.1.0"
parse5: "npm:^7.3.0"
parse5-htmlparser2-tree-adapter: "npm:^7.1.0"
parse5-parser-stream: "npm:^7.1.2"
undici: "npm:^7.12.0"
undici: "npm:^7.19.0"
whatwg-mimetype: "npm:^4.0.0"
checksum: 10c0/2c6d2274666fe122f54fdca457ee76453e1a993b19563acaa23eb565bf7776f0f01e4c3800092f00e84aa13c83a161f0cf000ac0a8332d1d7f2b2387d6ecc5fc
checksum: 10c0/91a566aabfa9962f28056045bb7d92d79c0f8f3abb1fb86a852a9d1760556adddeb01a36b6f08fa7c133282375d387ae450a181a659e76c6a64016c30cc3f611
languageName: node
linkType: hard

Expand Down Expand Up @@ -1360,7 +1374,7 @@ __metadata:
languageName: node
linkType: hard

"domutils@npm:^3.0.1, domutils@npm:^3.2.1, domutils@npm:^3.2.2":
"domutils@npm:^3.0.1, domutils@npm:^3.2.2":
version: 3.2.2
resolution: "domutils@npm:3.2.2"
dependencies:
Expand Down Expand Up @@ -1479,6 +1493,13 @@ __metadata:
languageName: node
linkType: hard

"entities@npm:^7.0.1":
version: 7.0.1
resolution: "entities@npm:7.0.1"
checksum: 10c0/b4fb9937bb47ecb00aaaceb9db9cdd1cc0b0fb649c0e843d05cf5dbbd2e9d2df8f98721d8b1b286445689c72af7b54a7242fc2d63ef7c9739037a8c73363e7ca
languageName: node
linkType: hard

"envinfo@npm:^7.14.0":
version: 7.21.0
resolution: "envinfo@npm:7.21.0"
Expand Down Expand Up @@ -1813,7 +1834,35 @@ __metadata:
languageName: node
linkType: hard

"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0":
"generator-function@npm:^2.0.0":
version: 2.0.1
resolution: "generator-function@npm:2.0.1"
checksum: 10c0/8a9f59df0f01cfefafdb3b451b80555e5cf6d76487095db91ac461a0e682e4ff7a9dbce15f4ecec191e53586d59eece01949e05a4b4492879600bbbe8e28d6b8
languageName: node
linkType: hard

"get-intrinsic@npm:^1.2.4":
version: 1.3.1
resolution: "get-intrinsic@npm:1.3.1"
dependencies:
async-function: "npm:^1.0.0"
async-generator-function: "npm:^1.0.0"
call-bind-apply-helpers: "npm:^1.0.2"
es-define-property: "npm:^1.0.1"
es-errors: "npm:^1.3.0"
es-object-atoms: "npm:^1.1.1"
function-bind: "npm:^1.1.2"
generator-function: "npm:^2.0.0"
get-proto: "npm:^1.0.1"
gopd: "npm:^1.2.0"
has-symbols: "npm:^1.1.0"
hasown: "npm:^2.0.2"
math-intrinsics: "npm:^1.1.0"
checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d
languageName: node
linkType: hard

"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0":
version: 1.3.0
resolution: "get-intrinsic@npm:1.3.0"
dependencies:
Expand Down Expand Up @@ -2030,15 +2079,15 @@ __metadata:
languageName: node
linkType: hard

"htmlparser2@npm:^10.0.0":
version: 10.0.0
resolution: "htmlparser2@npm:10.0.0"
"htmlparser2@npm:^10.1.0":
version: 10.1.0
resolution: "htmlparser2@npm:10.1.0"
dependencies:
domelementtype: "npm:^2.3.0"
domhandler: "npm:^5.0.3"
domutils: "npm:^3.2.1"
entities: "npm:^6.0.0"
checksum: 10c0/47cfa37e529c86a7ba9a1e0e6f951ad26ef8ca5af898ab6e8916fa02c0264c1453b4a65f28b7b8a7f9d0d29b5a70abead8203bf8b3f07bc69407e85e7d9a68e4
domutils: "npm:^3.2.2"
entities: "npm:^7.0.1"
checksum: 10c0/36394e29b80cfcc5e78e0fa4d3aa21fdaac3e6778d23e5c933e625c290987cd9a724a2eb0753ab60ed0c69dfaba0ab115f0ee50fb112fd8f0c4d522e7e0089a2
languageName: node
linkType: hard

Expand Down Expand Up @@ -2111,12 +2160,17 @@ __metadata:
languageName: node
linkType: hard

"i18next@npm:^23.16.8":
version: 23.16.8
resolution: "i18next@npm:23.16.8"
"i18next@npm:^25.8.18":
version: 25.8.18
resolution: "i18next@npm:25.8.18"
dependencies:
"@babel/runtime": "npm:^7.23.2"
checksum: 10c0/57d249191e8a39bbbbe190cfa2e2bb651d0198e14444fe80453d3df8d02927de3c147c77724e9ae6c72fa241898cd761e3fdcd55d053db373471f1ac084bf345
"@babel/runtime": "npm:^7.28.6"
peerDependencies:
typescript: ^5
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/a5b68b12a8de7db59c6253f6c714616e0a687f1543300cbcfdc847bf6199aef2e3d3645756e3c36a261fdbdde127ad42f4bd1d25571cfe0519849fcbe7665724
languageName: node
linkType: hard

Expand Down Expand Up @@ -3128,21 +3182,25 @@ __metadata:
languageName: node
linkType: hard

"react-i18next@npm:~15.1.4":
version: 15.1.4
resolution: "react-i18next@npm:15.1.4"
"react-i18next@npm:~16.5.8":
version: 16.5.8
resolution: "react-i18next@npm:16.5.8"
dependencies:
"@babel/runtime": "npm:^7.25.0"
"@babel/runtime": "npm:^7.28.4"
html-parse-stringify: "npm:^3.0.1"
use-sync-external-store: "npm:^1.6.0"
peerDependencies:
i18next: ">= 23.2.3"
i18next: ">= 25.6.2"
react: ">= 16.8.0"
typescript: ^5
peerDependenciesMeta:
react-dom:
optional: true
react-native:
optional: true
checksum: 10c0/6c1b053fc530c3a750c8cb0a090a54cd3580cbe2103bea26579a2855a6c0a8be7e1cbffda732d4ec9c9aa8724569783dc340564855e1fe76f48c24683fe0b3d4
typescript:
optional: true
checksum: 10c0/a234ed701e53c47ce4c67f2bc74b5718a4fea2865d6eaae06f850cca35a1ead038e6fd25b2a4b629c96947f3e6bb997f6d81d07cc4584997a0373c62c6aba3eb
languageName: node
linkType: hard

Expand Down Expand Up @@ -4043,10 +4101,10 @@ __metadata:
languageName: node
linkType: hard

"undici@npm:^7.12.0":
version: 7.16.0
resolution: "undici@npm:7.16.0"
checksum: 10c0/efd867792e9f233facf9efa0a087e2d9c3e4415c0b234061b9b40307ca4fa01d945fee4d43c7b564e1b80e0d519bcc682f9f6e0de13c717146c00a80e2f1fb0f
"undici@npm:^7.19.0":
version: 7.24.1
resolution: "undici@npm:7.24.1"
checksum: 10c0/9b52d906527622278da0e9d7c6541f53cb2ccc90954c3a78dae32a762727ba5a281d2ff3dd52f19d7805b290f2696df61c3e1da4f65c0ce602bbb7c4c217a09b
languageName: node
linkType: hard

Expand Down Expand Up @@ -4113,6 +4171,15 @@ __metadata:
languageName: node
linkType: hard

"use-sync-external-store@npm:^1.6.0":
version: 1.6.0
resolution: "use-sync-external-store@npm:1.6.0"
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
checksum: 10c0/35e1179f872a53227bdf8a827f7911da4c37c0f4091c29b76b1e32473d1670ebe7bcd880b808b7549ba9a5605c233350f800ffab963ee4a4ee346ee983b6019b
languageName: node
linkType: hard

"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1":
version: 1.0.2
resolution: "util-deprecate@npm:1.0.2"
Expand Down
8 changes: 8 additions & 0 deletions frontend/i18next-parser.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
const { CustomJSONLexer } = require('./i18n-scripts/lexers');

/* eslint-disable */
// Global suppression for all i18next instances
// See https://www.locize.com/docs/general-questions/why-am-i-seeing-a-support-notice-for-i18next/
if (typeof globalThis !== 'undefined') {
globalThis.__i18next_supportNoticeShown = true;
}
/* eslint-enable */

/*eslint no-undef: "error"*/
/*eslint-env node*/

Expand Down
22 changes: 10 additions & 12 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -178,19 +178,18 @@
"apollo-link-http": "^1.0.20",
"apollo-link-ws": "^1.0.20",
"chardet": "^2.1.0",
"d3": "^5.16.0",
"dagre": "^0.8.5",
"file-saver": "1.3.x",
"formik": "^2.1.5",
"fuzzysearch": "1.0.x",
"gherkin-lint": "^4.1.3",
"git-url-parse": "^11.4.0",
"graphql": "^14.0.0",
"i18next": "^23.16.8",
"i18next-browser-languagedetector": "^6.0.1",
"i18next-conv": "12.1.1",
"i18next": "^25.8.18",
"i18next-browser-languagedetector": "^8.2.1",
"i18next-conv": "16.0.0",
"i18next-http-backend": "^1.0.21",
"i18next-v4-format-converter": "^1.0.3",
"i18next-v4-format-converter": "^1.1.1",
"immutable": "3.x",
"istextorbinary": "^9.5.0",
"js-base64": "^3.7.7",
Expand All @@ -201,7 +200,6 @@
"marked": "^15.0.6",
"monaco-yaml": "^5.3.1",
"murmurhash-js": "1.0.x",
"node-polyfill-webpack-plugin": "~4.0.0",
"pluralize": "^8.0.0",
"point-in-svg-path": "1.0.1",
"popper.js": "^1.16.1",
Expand All @@ -211,7 +209,7 @@
"react-dnd-html5-backend": "^11.1.3",
"react-dom": "^18.3.1",
"react-helmet-async": "^2.0.5",
"react-i18next": "~15.1.4",
"react-i18next": "~16.5.8",
"react-linkify": "^0.2.2",
"react-modal": "^3.16.3",
"react-redux": "8.1.3",
Expand All @@ -238,7 +236,7 @@
"@graphql-codegen/typescript-graphql-files-modules": "^1.15.1",
"@graphql-codegen/typescript-operations": "^1.15.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
"@swc/core": "^1.15.5",
"@swc/core": "^1.15.18",
"@swc/jest": "^0.2.39",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
Expand Down Expand Up @@ -280,7 +278,7 @@
"html-webpack-plugin": "5.6.5",
"html-webpack-skip-assets-plugin": "^1.0.4",
"husky": "^8.0.3",
"i18next-parser": "^9.3.0",
"i18next-parser": "^9.4.0",
"i18next-pseudo": "^2.2.1",
"jest": "^30.2.0",
"jest-cli": "^30.2.0",
Expand All @@ -298,6 +296,7 @@
"monaco-editor": "^0.51.0",
"monaco-editor-webpack-plugin": "^7.1.1",
"node-fetch": "^2.3.0",
"node-polyfill-webpack-plugin": "~4.0.0",
"prettier": "2.0.5",
"puppeteer-core": "^23.9.0",
"react-refresh": "^0.10.0",
Expand All @@ -321,12 +320,11 @@
},
"resolutions": {
"@types/lodash": "4.14.106",
"esbuild": "^0.27.2",
"esbuild": "^0.27.3",
"glob-parent": "^5.1.2",
"hosted-git-info": "^3.0.8",
"lodash-es": "^4.17.23",
"postcss": "^8.2.13",
"async": "^3.2.5"
"postcss": "^8.2.13"
},
"lint-staged": {
"*.{js,jsx,ts,tsx,json,gql,graphql}": "eslint --color --fix"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Additional updates to these shared modules might occur before the 4.22 release i

- Upgraded from `react` v17 to v18. Plugins must use `react` 18 to remain compatible with Console.
- Upgraded from `react-redux` v7 to v8. Plugins must use `react-redux` v8 to remain compatible with Console.
- Upgraded from `react-i18next` v11 to v15. Plugins must use `react-i18next` v15 to remain compatible with Console.
- Upgraded from `react-i18next` v11 to v16. Plugins must use `react-i18next` v16 to remain compatible with Console.
- Upgraded from `react-router` v5 to v7. Plugins must use `react-router` v7 to remain compatible with Console.
- The `react-router-dom-v5-compat` and `react-router-dom` shared modules are deprecated. Plugins should replace these
imports with `react-router`.
Expand Down Expand Up @@ -80,6 +80,18 @@ If your plugin uses the `useDeleteModal` hook and passes a `redirectTo` paramete
The `To` type is compatible with the previous `LocationDescriptor` type (accepts strings and location
objects), so most plugins should only need to update their imports.

## react-i18next upgrade

Console 4.22 upgrades from `react-i18next` v11 to v16. For more information about breaking changes and migration
guidance, see the [react-i18next changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md).

In this release, Console removes the following custom formatters from the `react-i18next` initialization:
- `number`: now a [built-in formatter](https://www.i18next.com/translation-function/formatting#number)
- `fromNow`
- `dateTime`

Plugins that use these formatters must implement their own formatting to replace this functionality.

## React 18 upgrade tips

Console now uses React 18. The following guidance highlights common update considerations
Expand Down
Loading