From 00bd4ae04a6a432ab2ba68a6e1ce2cba170dd58d Mon Sep 17 00:00:00 2001 From: stanislavh Date: Thu, 16 Feb 2023 09:55:38 +0100 Subject: [PATCH] SONAR-17812 Upgrade intl to 6.2.5 --- server/sonar-web/package.json | 2 +- .../ComponentNavBgTaskNotif-test.tsx | 2 +- ...ComponentSourceSnippetGroupViewer-test.tsx | 2 +- .../main/js/components/intl/DateFormatter.tsx | 2 +- .../main/js/components/intl/DateFromNow.tsx | 2 +- .../js/components/intl/DateTimeFormatter.tsx | 7 +- .../main/js/components/intl/TimeFormatter.tsx | 11 +- .../intl/__tests__/DateFormatter-test.tsx | 19 +- .../intl/__tests__/DateFromNow-test.tsx | 51 ++--- .../intl/__tests__/DateTimeFormatter-test.tsx | 17 +- .../intl/__tests__/TimeFormatter-test.tsx | 21 +- .../__snapshots__/DateFormatter-test.tsx.snap | 23 --- .../__snapshots__/DateFromNow-test.tsx.snap | 22 --- .../DateTimeFormatter-test.tsx.snap | 14 -- .../__snapshots__/TimeFormatter-test.tsx.snap | 22 --- .../{__snapshots__ => }/dateUtils-test.ts | 2 +- .../src/main/js/components/intl/dateUtils.ts | 4 +- server/sonar-web/yarn.lock | 181 ++++++++++-------- 18 files changed, 183 insertions(+), 221 deletions(-) delete mode 100644 server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFormatter-test.tsx.snap delete mode 100644 server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFromNow-test.tsx.snap delete mode 100644 server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateTimeFormatter-test.tsx.snap delete mode 100644 server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/TimeFormatter-test.tsx.snap rename server/sonar-web/src/main/js/components/intl/__tests__/{__snapshots__ => }/dateUtils-test.ts (96%) diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json index 62a5f9addda..abcc49ffb97 100644 --- a/server/sonar-web/package.json +++ b/server/sonar-web/package.json @@ -27,7 +27,7 @@ "react-dom": "16.14.0", "react-draggable": "4.4.5", "react-helmet-async": "1.3.0", - "react-intl": "3.12.1", + "react-intl": "6.2.5", "react-modal": "3.16.1", "react-router-dom": "6.7.0", "react-select": "5.7.0", diff --git a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavBgTaskNotif-test.tsx b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavBgTaskNotif-test.tsx index 17e61354623..b9386f3ea1f 100644 --- a/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavBgTaskNotif-test.tsx +++ b/server/sonar-web/src/main/js/app/components/nav/component/__tests__/ComponentNavBgTaskNotif-test.tsx @@ -279,7 +279,7 @@ it.each([ pathname: onBackgroudTaskPage ? '/project/background_tasks' : '/foo/bar', }), }); - const messageProps = wrapper.find(FormattedMessage).props(); + const messageProps = wrapper.find(FormattedMessage).props(); // Translation key. expect(messageProps.defaultMessage).toBe(expectedMessage); diff --git a/server/sonar-web/src/main/js/apps/issues/crossComponentSourceViewer/__tests__/ComponentSourceSnippetGroupViewer-test.tsx b/server/sonar-web/src/main/js/apps/issues/crossComponentSourceViewer/__tests__/ComponentSourceSnippetGroupViewer-test.tsx index 9c97893afd8..a8ad63029d5 100644 --- a/server/sonar-web/src/main/js/apps/issues/crossComponentSourceViewer/__tests__/ComponentSourceSnippetGroupViewer-test.tsx +++ b/server/sonar-web/src/main/js/apps/issues/crossComponentSourceViewer/__tests__/ComponentSourceSnippetGroupViewer-test.tsx @@ -177,7 +177,7 @@ it.each([ await waitAndUpdate(wrapper); - expect(wrapper.find(FormattedMessage).prop('id')).toEqual(expectedLabel); + expect(wrapper.find(FormattedMessage).prop('id')).toEqual(expectedLabel); expect(wrapper.find('ContextConsumer').exists()).toBe(false); } ); diff --git a/server/sonar-web/src/main/js/components/intl/DateFormatter.tsx b/server/sonar-web/src/main/js/components/intl/DateFormatter.tsx index 8f787ae6517..f83b2cebf76 100644 --- a/server/sonar-web/src/main/js/components/intl/DateFormatter.tsx +++ b/server/sonar-web/src/main/js/components/intl/DateFormatter.tsx @@ -43,7 +43,7 @@ export const longFormatterOption: FormatDateOptions = { export default function DateFormatter({ children, date, long }: DateFormatterProps) { return ( - {children} + {children ? (d) => <>{children(d)} : undefined} ); } diff --git a/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx b/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx index 5bafaa4cd8a..ca95cdb6c8a 100644 --- a/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx +++ b/server/sonar-web/src/main/js/components/intl/DateFromNow.tsx @@ -58,7 +58,7 @@ export default function DateFromNow(props: DateFromNowProps) { {(formattedDate) => ( - {children as FormattedRelativeTime['props']['children']} + {(d) => <>{children(d)}} )} diff --git a/server/sonar-web/src/main/js/components/intl/DateTimeFormatter.tsx b/server/sonar-web/src/main/js/components/intl/DateTimeFormatter.tsx index e8faa804a07..6588210f500 100644 --- a/server/sonar-web/src/main/js/components/intl/DateTimeFormatter.tsx +++ b/server/sonar-web/src/main/js/components/intl/DateTimeFormatter.tsx @@ -25,6 +25,7 @@ import { ParsableDate } from '../../types/dates'; interface Props { children?: (formattedDate: string) => React.ReactNode; date: ParsableDate; + timeZone?: string; } export const formatterOption: FormatDateOptions = { @@ -35,10 +36,10 @@ export const formatterOption: FormatDateOptions = { minute: 'numeric', }; -export default function DateTimeFormatter({ children, date }: Props) { +export default function DateTimeFormatter({ children, date, ...rest }: Props) { return ( - - {children} + + {children ? (d) => <>{children(d)} : undefined} ); } diff --git a/server/sonar-web/src/main/js/components/intl/TimeFormatter.tsx b/server/sonar-web/src/main/js/components/intl/TimeFormatter.tsx index 036fdddbab6..2834f11b6bd 100644 --- a/server/sonar-web/src/main/js/components/intl/TimeFormatter.tsx +++ b/server/sonar-web/src/main/js/components/intl/TimeFormatter.tsx @@ -26,6 +26,7 @@ export interface TimeFormatterProps { children?: (formattedDate: string) => React.ReactNode; date: ParsableDate; long?: boolean; + timeZone?: string; } export const formatterOption: FormatDateOptions = { hour: 'numeric', minute: 'numeric' }; @@ -36,10 +37,14 @@ export const longFormatterOption: FormatDateOptions = { second: 'numeric', }; -export default function TimeFormatter({ children, date, long }: TimeFormatterProps) { +export default function TimeFormatter({ children, date, long, ...rest }: TimeFormatterProps) { return ( - - {children} + + {children ? (d) => <>{children(d)} : undefined} ); } diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/DateFormatter-test.tsx b/server/sonar-web/src/main/js/components/intl/__tests__/DateFormatter-test.tsx index 1e0ba86ea3a..bd752e1a9bd 100644 --- a/server/sonar-web/src/main/js/components/intl/__tests__/DateFormatter-test.tsx +++ b/server/sonar-web/src/main/js/components/intl/__tests__/DateFormatter-test.tsx @@ -17,19 +17,26 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { shallow } from 'enzyme'; +import { screen } from '@testing-library/react'; import * as React from 'react'; +import { renderComponent } from '../../../helpers/testReactTestingUtils'; import DateFormatter, { DateFormatterProps } from '../DateFormatter'; it('should render correctly', () => { - expect(shallowRender()).toMatchSnapshot('standard'); - expect(shallowRender({ long: true })).toMatchSnapshot('long'); + renderDateFormatter({}, (formatted: string) => {formatted}); + expect(screen.getByText('Feb 20, 2020')).toBeInTheDocument(); + + renderDateFormatter({ long: true }); + expect(screen.getByText('February 20, 2020')).toBeInTheDocument(); }); -function shallowRender(overrides: Partial = {}) { - return shallow( +function renderDateFormatter( + overrides: Partial = {}, + children?: (d: string) => React.ReactNode +) { + return renderComponent( - {(formatted) => {formatted}} + {children} ); } diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/DateFromNow-test.tsx b/server/sonar-web/src/main/js/components/intl/__tests__/DateFromNow-test.tsx index 8c1c927da45..e0eef0da53a 100644 --- a/server/sonar-web/src/main/js/components/intl/__tests__/DateFromNow-test.tsx +++ b/server/sonar-web/src/main/js/components/intl/__tests__/DateFromNow-test.tsx @@ -17,31 +17,27 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { shallow } from 'enzyme'; +import { screen } from '@testing-library/react'; import * as React from 'react'; -import { FormattedRelativeTime, IntlProvider } from 'react-intl'; +import { renderComponent } from '../../../helpers/testReactTestingUtils'; import DateFromNow, { DateFromNowProps } from '../DateFromNow'; -import DateTimeFormatter from '../DateTimeFormatter'; - -const date = '2020-02-20T20:20:20Z'; jest.mock('../dateUtils', () => ({ getRelativeTimeProps: jest.fn().mockReturnValue({ value: -1, unit: 'year' }), })); +const date = '2020-02-20T20:20:20Z'; + it('should render correctly', () => { - const wrapper = shallowRender(); + renderDateFromNow({ date }); - expect(wrapper).toMatchSnapshot(); - expect(wrapper.find(DateTimeFormatter).props().children!(date)).toMatchSnapshot('children'); + expect(screen.getByText('1 year ago')).toBeInTheDocument(); }); -it('should render correctly when there is no date', () => { - const children = jest.fn(); - - shallowRender({ date: undefined }, children); +it('should render correctly when there is no date or no children', () => { + renderDateFromNow({ date: undefined }); - expect(children).toHaveBeenCalledWith('never'); + expect(screen.getByText('never')).toBeInTheDocument(); }); it('should render correctly when the date is less than one hour in the past', () => { @@ -50,27 +46,20 @@ it('should render correctly when the date is less than one hour in the past', () const mockDateNow = jest .spyOn(Date, 'now') .mockImplementation(() => new Date(date) as unknown as number); - const children = jest.fn(); - shallowRender({ date: veryCloseDate, hourPrecision: true }, children) - .dive() // into DateTimeFormatter - .dive() // into DateFormatter - .dive() // into rendering function - .find(FormattedRelativeTime) - .props().children!(date); + renderDateFromNow({ date: veryCloseDate, hourPrecision: true }); - expect(children).toHaveBeenCalledWith('less_than_1_hour_ago'); + expect(screen.getByText('less_than_1_hour_ago')).toBeInTheDocument(); mockDateNow.mockRestore(); }); -function shallowRender(overrides: Partial = {}, children: jest.Mock = jest.fn()) { - return shallow( - - - {(formattedDate) => children(formattedDate)} - - - ) - .dive() // into the ContextProvider generated by IntlProvider - .dive(); // into the DateFromNow we actually want to render +function renderDateFromNow( + overrides: Partial = {}, + children: jest.Mock = jest.fn((d) => <>{d}) +) { + return renderComponent( + + {children} + + ); } diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/DateTimeFormatter-test.tsx b/server/sonar-web/src/main/js/components/intl/__tests__/DateTimeFormatter-test.tsx index 2f2de9b3460..7caddd1f23e 100644 --- a/server/sonar-web/src/main/js/components/intl/__tests__/DateTimeFormatter-test.tsx +++ b/server/sonar-web/src/main/js/components/intl/__tests__/DateTimeFormatter-test.tsx @@ -17,18 +17,23 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { shallow } from 'enzyme'; +import { screen } from '@testing-library/react'; import * as React from 'react'; +import { renderComponent } from '../../../helpers/testReactTestingUtils'; import DateTimeFormatter from '../DateTimeFormatter'; it('should render correctly', () => { - expect(shallowRender()).toMatchSnapshot('standard'); + renderDateTimeFormatter(); + expect(screen.getByText('February 20, 2020, 8:20 PM')).toBeInTheDocument(); + + renderDateTimeFormatter((formatted: string) => Nice date: {formatted}); + expect(screen.getByText('Nice date: February 20, 2020, 8:20 PM')).toBeInTheDocument(); }); -function shallowRender() { - return shallow( - - {(formatted) => {formatted}} +function renderDateTimeFormatter(children?: (d: string) => React.ReactNode) { + return renderComponent( + + {children} ); } diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/TimeFormatter-test.tsx b/server/sonar-web/src/main/js/components/intl/__tests__/TimeFormatter-test.tsx index 4340f37afde..8557b317c94 100644 --- a/server/sonar-web/src/main/js/components/intl/__tests__/TimeFormatter-test.tsx +++ b/server/sonar-web/src/main/js/components/intl/__tests__/TimeFormatter-test.tsx @@ -17,19 +17,26 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { shallow } from 'enzyme'; +import { screen } from '@testing-library/react'; import * as React from 'react'; +import { renderComponent } from '../../../helpers/testReactTestingUtils'; import TimeFormatter, { TimeFormatterProps } from '../TimeFormatter'; it('should render correctly', () => { - expect(shallowRender()).toMatchSnapshot('standard'); - expect(shallowRender({ long: true })).toMatchSnapshot('long'); + renderTimeFormatter({}, (formatted: string) => {formatted}); + expect(screen.getByText('8:20 PM')).toBeInTheDocument(); + + renderTimeFormatter({ long: true }); + expect(screen.getByText('8:20:20 PM')).toBeInTheDocument(); }); -function shallowRender(overrides: Partial = {}) { - return shallow( - - {(formatted) => {formatted}} +function renderTimeFormatter( + overrides: Partial = {}, + children?: (d: string) => React.ReactNode +) { + return renderComponent( + + {children} ); } diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFormatter-test.tsx.snap b/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFormatter-test.tsx.snap deleted file mode 100644 index 2f603c6c1bd..00000000000 --- a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFormatter-test.tsx.snap +++ /dev/null @@ -1,23 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render correctly: long 1`] = ` - - - -`; - -exports[`should render correctly: standard 1`] = ` - - - -`; diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFromNow-test.tsx.snap b/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFromNow-test.tsx.snap deleted file mode 100644 index f893ec98cf7..00000000000 --- a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateFromNow-test.tsx.snap +++ /dev/null @@ -1,22 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render correctly 1`] = ` - - - -`; - -exports[`should render correctly: children 1`] = ` - - - [Function] - - -`; diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateTimeFormatter-test.tsx.snap b/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateTimeFormatter-test.tsx.snap deleted file mode 100644 index c991112f771..00000000000 --- a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/DateTimeFormatter-test.tsx.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render correctly: standard 1`] = ` - - - -`; diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/TimeFormatter-test.tsx.snap b/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/TimeFormatter-test.tsx.snap deleted file mode 100644 index 7c19be3a479..00000000000 --- a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/TimeFormatter-test.tsx.snap +++ /dev/null @@ -1,22 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render correctly: long 1`] = ` - - - -`; - -exports[`should render correctly: standard 1`] = ` - - - -`; diff --git a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/dateUtils-test.ts b/server/sonar-web/src/main/js/components/intl/__tests__/dateUtils-test.ts similarity index 96% rename from server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/dateUtils-test.ts rename to server/sonar-web/src/main/js/components/intl/__tests__/dateUtils-test.ts index 9661ab376e5..2d651cee59d 100644 --- a/server/sonar-web/src/main/js/components/intl/__tests__/__snapshots__/dateUtils-test.ts +++ b/server/sonar-web/src/main/js/components/intl/__tests__/dateUtils-test.ts @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import { getRelativeTimeProps } from '../../dateUtils'; +import { getRelativeTimeProps } from '../dateUtils'; const mockDateNow = jest.spyOn(Date, 'now'); diff --git a/server/sonar-web/src/main/js/components/intl/dateUtils.ts b/server/sonar-web/src/main/js/components/intl/dateUtils.ts index 110d4b57b27..513a423fb90 100644 --- a/server/sonar-web/src/main/js/components/intl/dateUtils.ts +++ b/server/sonar-web/src/main/js/components/intl/dateUtils.ts @@ -23,7 +23,7 @@ import { differenceInSeconds, differenceInYears, } from 'date-fns'; -import { FormattedRelativeTime } from 'react-intl'; +import { Props as FormattedRelativeTimeProps } from 'react-intl/src/components/relative'; import { parseDate } from '../../helpers/dates'; import { ParsableDate } from '../../types/dates'; @@ -31,7 +31,7 @@ const UPDATE_INTERVAL_IN_SECONDS = 10; export function getRelativeTimeProps( parsableDate: ParsableDate -): Pick { +): Pick { const date = parseDate(parsableDate); const y = differenceInYears(date, Date.now()); diff --git a/server/sonar-web/yarn.lock b/server/sonar-web/yarn.lock index c1d43e4a636..6b354d93316 100644 --- a/server/sonar-web/yarn.lock +++ b/server/sonar-web/yarn.lock @@ -1297,46 +1297,94 @@ __metadata: languageName: node linkType: hard -"@formatjs/intl-displaynames@npm:^1.2.0": - version: 1.2.10 - resolution: "@formatjs/intl-displaynames@npm:1.2.10" +"@formatjs/ecma402-abstract@npm:1.14.3": + version: 1.14.3 + resolution: "@formatjs/ecma402-abstract@npm:1.14.3" dependencies: - "@formatjs/intl-utils": ^2.3.0 - checksum: 25320e00c383260c1c3c44bd8be017b8ebd1b1b7de4188d05934aa40b65adda02b102eba46bf4e01e06f9db79d2d8663a720afe7f2ee69495a3022055bea4810 + "@formatjs/intl-localematcher": 0.2.32 + tslib: ^2.4.0 + checksum: 504ae9775094adec611aa0bbc6dadec2360ba30c13331f376feacd75b23f856ac1e45e3c88a572fb91ff917e726d0cc7e6e1b6c5b73af48f53896592362c91d5 languageName: node linkType: hard -"@formatjs/intl-listformat@npm:^1.4.1": - version: 1.4.8 - resolution: "@formatjs/intl-listformat@npm:1.4.8" +"@formatjs/fast-memoize@npm:1.2.7": + version: 1.2.7 + resolution: "@formatjs/fast-memoize@npm:1.2.7" dependencies: - "@formatjs/intl-utils": ^2.3.0 - checksum: 1e5b2ef45b7e0143fb4c809178aed00ad1d1dfbcba25c339bf54bdd5e35acee6c72a25bd30189812a3211103a58a7e0800e49bc3e973f89bc5e80c41da38f6e1 + tslib: ^2.4.0 + checksum: ba372a3e931bd99729d993f5b95aeb43e7d07b9f71e759722cc20c4e2faa0af11a942f0df9023a029b03230dc4dfad5354755be1e385c465750f63e4b3372b7b languageName: node linkType: hard -"@formatjs/intl-relativetimeformat@npm:^4.5.9": - version: 4.5.16 - resolution: "@formatjs/intl-relativetimeformat@npm:4.5.16" +"@formatjs/icu-messageformat-parser@npm:2.1.14": + version: 2.1.14 + resolution: "@formatjs/icu-messageformat-parser@npm:2.1.14" dependencies: - "@formatjs/intl-utils": ^2.3.0 - checksum: 466268cb4f3c326b222cc0f79b176949d4cc79e29d11fe6e8d003b89b3495018728d55ba25189f3856b88c0f5657a57365f039504c32ea78a8fb555ff80e9580 + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/icu-skeleton-parser": 1.3.18 + tslib: ^2.4.0 + checksum: 4d13230af075a353eef4725bee67d46bfc40f4873e561c141a2e62b91e377ffa7fffe61ee6df6bb187a00e15ab6fe242014958d51e4c6056032801178eb7e1c8 languageName: node linkType: hard -"@formatjs/intl-unified-numberformat@npm:^3.2.0": - version: 3.3.7 - resolution: "@formatjs/intl-unified-numberformat@npm:3.3.7" +"@formatjs/icu-skeleton-parser@npm:1.3.18": + version: 1.3.18 + resolution: "@formatjs/icu-skeleton-parser@npm:1.3.18" dependencies: - "@formatjs/intl-utils": ^2.3.0 - checksum: dae9c855d8b36b833ee9a71e63b13240dabc9b84ed13192411f06ac903a5c2fb002fd4736d7b71df73c4c776792255c7b2deedb94c5cddc12967fcb7c14f6133 + "@formatjs/ecma402-abstract": 1.14.3 + tslib: ^2.4.0 + checksum: 19655c452ed3c45db07b03c90fbfe6172655b0babb9579f2d9397ca2b3c56e5e17a3beed1d13af12104313e6ed1f14976d7c996756f1a59c977d6f3228518fad languageName: node linkType: hard -"@formatjs/intl-utils@npm:^2.2.0, @formatjs/intl-utils@npm:^2.3.0": - version: 2.3.0 - resolution: "@formatjs/intl-utils@npm:2.3.0" - checksum: a7a6339dac796bccd738b3f0425863c79951156c5b61ed804869bd2ba064544badf3ec0bad576eb56fdbaf11585d99b8a089522a9b5829ba0f99a85d33222cfb +"@formatjs/intl-displaynames@npm:6.2.3": + version: 6.2.3 + resolution: "@formatjs/intl-displaynames@npm:6.2.3" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/intl-localematcher": 0.2.32 + tslib: ^2.4.0 + checksum: 2e5fe38231858f66f44eb740a5e0576f98c9039b49ad81a02c4bcb62de6425e3951413c3fa487dd1ad42cd25c0b8d725adac6ceddf841f94b97ca22e753f3d56 + languageName: node + linkType: hard + +"@formatjs/intl-listformat@npm:7.1.7": + version: 7.1.7 + resolution: "@formatjs/intl-listformat@npm:7.1.7" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/intl-localematcher": 0.2.32 + tslib: ^2.4.0 + checksum: 96b45bcf0e556c2829d40bf95a027fc3dca86abc99db2735d6030d744d28318ee21726357853794a31c6b6674e7ce5403d3519d4ea190004178d973b61ca9d06 + languageName: node + linkType: hard + +"@formatjs/intl-localematcher@npm:0.2.32": + version: 0.2.32 + resolution: "@formatjs/intl-localematcher@npm:0.2.32" + dependencies: + tslib: ^2.4.0 + checksum: 477e18aabaf2e6e90fc12952a3cb6c0ebb40ad99414d6b9d2501c6348fbad58cacb433ec6630955cfd1491ea7630f32a9dc280bb27d0fb8a784251404a54140a + languageName: node + linkType: hard + +"@formatjs/intl@npm:2.6.3": + version: 2.6.3 + resolution: "@formatjs/intl@npm:2.6.3" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/fast-memoize": 1.2.7 + "@formatjs/icu-messageformat-parser": 2.1.14 + "@formatjs/intl-displaynames": 6.2.3 + "@formatjs/intl-listformat": 7.1.7 + intl-messageformat: 10.2.5 + tslib: ^2.4.0 + peerDependencies: + typescript: ^4.7 + peerDependenciesMeta: + typescript: + optional: true + checksum: 1922ec1d63aed8f42bb09967fffbaa4f37f59a351dd34ccddf28b268d04b05a80c9a7790f61292cf97fec4d47e15177b52987a28b5fb10df96aed5f5008dfc5f languageName: node linkType: hard @@ -2286,13 +2334,6 @@ __metadata: languageName: node linkType: hard -"@types/invariant@npm:^2.2.31": - version: 2.2.35 - resolution: "@types/invariant@npm:2.2.35" - checksum: af1b624057c89789ed0917838fea3d42bb0c101cc22b829a24d8777c678be3bc79d6ae05992a13bdf607b94731262467a2e62a809602ea1f7eea5e8c2242660d - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.1 resolution: "@types/istanbul-lib-coverage@npm:2.0.1" @@ -2864,7 +2905,7 @@ __metadata: react-dom: 16.14.0 react-draggable: 4.4.5 react-helmet-async: 1.3.0 - react-intl: 3.12.1 + react-intl: 6.2.5 react-modal: 3.16.1 react-router-dom: 6.7.0 react-select: 5.7.0 @@ -6026,29 +6067,15 @@ __metadata: languageName: node linkType: hard -"intl-format-cache@npm:^4.2.21": - version: 4.3.1 - resolution: "intl-format-cache@npm:4.3.1" - checksum: d55581edaba0d083a3ff26a46e2ed953c434420918e61991db78140e3e0a7db14f924f195fcd0c01cf3de65cb18dda0c549d35f683e01dd8f062d27fe0524fae - languageName: node - linkType: hard - -"intl-messageformat-parser@npm:^3.6.4": - version: 3.6.4 - resolution: "intl-messageformat-parser@npm:3.6.4" - dependencies: - "@formatjs/intl-unified-numberformat": ^3.2.0 - checksum: 69e781b6fec47f1fe5b2dc9abba79ac74b8cb4e9b40da4acc3ef2e9c6140d3d90070fd2c055d16e48c3a8bce626bb1f547ad1e29df772aff468a377658e70e6e - languageName: node - linkType: hard - -"intl-messageformat@npm:^7.8.4": - version: 7.8.4 - resolution: "intl-messageformat@npm:7.8.4" +"intl-messageformat@npm:10.2.5": + version: 10.2.5 + resolution: "intl-messageformat@npm:10.2.5" dependencies: - intl-format-cache: ^4.2.21 - intl-messageformat-parser: ^3.6.4 - checksum: a24fd5763c3aae450d97c4a67d95618d791f7a564996cbf6f1c4c5433c3c6fe0c141d967f94775bf9c0e70ce7791c66854987fa03a99a57f10c96186ddd90658 + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/fast-memoize": 1.2.7 + "@formatjs/icu-messageformat-parser": 2.1.14 + tslib: ^2.4.0 + checksum: 048d6e3e746bff5ea6d745c8cbc2d0049aadb42caf2bad0d47e0bcf9bede285ef48a1fbd3a87711b99587d270d2ab8d9488e51577b24a2227856cdf373dd25df languageName: node linkType: hard @@ -8484,25 +8511,27 @@ __metadata: languageName: node linkType: hard -"react-intl@npm:3.12.1": - version: 3.12.1 - resolution: "react-intl@npm:3.12.1" +"react-intl@npm:6.2.5": + version: 6.2.5 + resolution: "react-intl@npm:6.2.5" dependencies: - "@formatjs/intl-displaynames": ^1.2.0 - "@formatjs/intl-listformat": ^1.4.1 - "@formatjs/intl-relativetimeformat": ^4.5.9 - "@formatjs/intl-unified-numberformat": ^3.2.0 - "@formatjs/intl-utils": ^2.2.0 + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/icu-messageformat-parser": 2.1.14 + "@formatjs/intl": 2.6.3 + "@formatjs/intl-displaynames": 6.2.3 + "@formatjs/intl-listformat": 7.1.7 "@types/hoist-non-react-statics": ^3.3.1 - "@types/invariant": ^2.2.31 + "@types/react": 16 || 17 || 18 hoist-non-react-statics: ^3.3.2 - intl-format-cache: ^4.2.21 - intl-messageformat: ^7.8.4 - intl-messageformat-parser: ^3.6.4 - shallow-equal: ^1.2.1 + intl-messageformat: 10.2.5 + tslib: ^2.4.0 peerDependencies: - react: ^16.3.0 - checksum: 4a9e9101d8d5bd60c73713b99bdad2deb2b6b21fd953f16165b5c4be64aafd503418e009736ba986ca75756c08ad41b80991090e222d80b2bebfefb027bf11eb + react: ^16.6.0 || 17 || 18 + typescript: ^4.7 + peerDependenciesMeta: + typescript: + optional: true + checksum: 826b6ed593b367ad0a375de4e84b3ca3c7334c6583dcf307bb90e9c45c79c7f85cf43f6d15d15b9827e1da1d13f807b802c252a6725d0af4bd5a3fd43cbd9879 languageName: node linkType: hard @@ -9059,13 +9088,6 @@ __metadata: languageName: node linkType: hard -"shallow-equal@npm:^1.2.1": - version: 1.2.1 - resolution: "shallow-equal@npm:1.2.1" - checksum: 4f1645cc516e7754c4438db687e1da439a5f29a7dba2ba90c5f88e5708aeb17bc4355ba45cad805b0e95dc898e37d8bf6d77d854919c7512f89939986cff8cd1 - languageName: node - linkType: hard - "shallowequal@npm:^1.1.0": version: 1.1.0 resolution: "shallowequal@npm:1.1.0" @@ -9692,6 +9714,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.4.0": + version: 2.5.0 + resolution: "tslib@npm:2.5.0" + checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 + languageName: node + linkType: hard + "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" -- 2.39.5