diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f39ea572..c751b43b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,16 +68,16 @@ importers: version: link:.. '@chakra-ui/react': specifier: ^3.2.3 - version: 3.2.3(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.2.3(@emotion/react@11.14.0(@types/react@18.3.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@emotion/react': specifier: ^11.14.0 - version: 11.14.0(@types/react@18.3.8)(react@18.3.1) + version: 11.14.0(@types/react@18.3.8)(react@19.0.0) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 '@testing-library/react': specifier: ^16.1.0 - version: 16.1.0(@testing-library/dom@10.4.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.1.0(@testing-library/dom@10.4.0)(@types/react@18.3.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) @@ -85,26 +85,26 @@ importers: specifier: ^6.2.0 version: 6.2.0 react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-icons: specifier: ^5.4.0 - version: 5.4.0(react@18.3.1) + version: 5.4.0(react@19.0.0) react-markdown: specifier: ^9.0.1 - version: 9.0.1(@types/react@18.3.8)(react@18.3.1) + version: 9.0.1(@types/react@18.3.8)(react@19.0.0) react-router-dom: - specifier: ^6.28.1 - version: 6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.1.1 + version: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-scripts: specifier: 5.0.1 - version: 5.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.25.2))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@18.3.1)(type-fest@0.21.3)(typescript@5.6.2) + version: 5.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.25.2))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@19.0.0)(type-fest@0.21.3)(typescript@5.6.2) react-syntax-highlighter: specifier: ^15.6.1 - version: 15.6.1(react@18.3.1) + version: 15.6.1(react@19.0.0) web-vitals: specifier: ^4.2.4 version: 4.2.4 @@ -1498,10 +1498,6 @@ packages: webpack-plugin-serve: optional: true - '@remix-run/router@1.21.0': - resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} - engines: {node: '>=14.0.0'} - '@rollup/plugin-babel@5.3.1': resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -1680,6 +1676,9 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2815,6 +2814,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} @@ -5756,10 +5759,10 @@ packages: typescript: optional: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: - react: ^18.3.1 + react: ^19.0.0 react-error-overlay@6.0.11: resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} @@ -5788,18 +5791,22 @@ packages: resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} engines: {node: '>=0.10.0'} - react-router-dom@6.28.1: - resolution: {integrity: sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==} - engines: {node: '>=14.0.0'} + react-router-dom@7.1.1: + resolution: {integrity: sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react: '>=18' + react-dom: '>=18' - react-router@6.28.1: - resolution: {integrity: sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==} - engines: {node: '>=14.0.0'} + react-router@7.1.1: + resolution: {integrity: sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true react-scripts@5.0.1: resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} @@ -5818,8 +5825,8 @@ packages: peerDependencies: react: '>= 0.14.0' - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -6028,8 +6035,8 @@ packages: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} schema-utils@2.7.0: resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} @@ -6084,6 +6091,9 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -6521,6 +6531,9 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + turbo-stream@2.4.0: + resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} @@ -7102,7 +7115,7 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - '@ark-ui/react@4.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@ark-ui/react@4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@internationalized/date': 3.5.6 '@zag-js/accordion': 0.77.1 @@ -7138,7 +7151,7 @@ snapshots: '@zag-js/qr-code': 0.77.1 '@zag-js/radio-group': 0.77.1 '@zag-js/rating-group': 0.77.1 - '@zag-js/react': 0.77.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@zag-js/react': 0.77.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@zag-js/select': 0.77.1 '@zag-js/signature-pad': 0.77.1 '@zag-js/slider': 0.77.1 @@ -7154,8 +7167,8 @@ snapshots: '@zag-js/tooltip': 0.77.1 '@zag-js/tree-view': 0.77.1 '@zag-js/types': 0.77.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@babel/code-frame@7.25.9': dependencies: @@ -8257,18 +8270,18 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@chakra-ui/react@3.2.3(@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@chakra-ui/react@3.2.3(@emotion/react@11.14.0(@types/react@18.3.8)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@ark-ui/react': 4.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ark-ui/react': 4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@emotion/is-prop-valid': 1.3.1 - '@emotion/react': 11.14.0(@types/react@18.3.8)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@18.3.8)(react@19.0.0) '@emotion/serialize': 1.3.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@19.0.0) '@emotion/utils': 1.4.1 '@pandacss/is-valid-prop': 0.41.0 csstype: 3.1.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@changesets/apply-release-plan@7.0.7': dependencies: @@ -8547,17 +8560,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@18.3.8)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@18.3.8)(react@19.0.0)': dependencies: '@babel/runtime': 7.25.6 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 + react: 19.0.0 optionalDependencies: '@types/react': 18.3.8 transitivePeerDependencies: @@ -8583,13 +8596,13 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@19.0.0)': dependencies: - react: 18.3.1 + react: 19.0.0 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': dependencies: - react: 18.3.1 + react: 19.0.0 '@emotion/utils@1.4.1': {} @@ -9253,8 +9266,6 @@ snapshots: type-fest: 0.21.3 webpack-dev-server: 4.15.2(webpack@5.94.0) - '@remix-run/router@1.21.0': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.26.0)(@types/babel__core@7.20.5)(rollup@2.79.1)': dependencies: '@babel/core': 7.26.0 @@ -9415,12 +9426,12 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react@18.3.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.25.6 '@testing-library/dom': 10.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 18.3.8 @@ -9473,6 +9484,8 @@ snapshots: dependencies: '@types/node': 22.7.5 + '@types/cookie@0.6.0': {} + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -10198,14 +10211,14 @@ snapshots: '@zag-js/types': 0.77.1 '@zag-js/utils': 0.77.1 - '@zag-js/react@0.77.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@zag-js/react@0.77.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@zag-js/core': 0.77.1 '@zag-js/store': 0.77.1 '@zag-js/types': 0.77.1 proxy-compare: 3.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@zag-js/rect-utils@0.77.1': {} @@ -11081,6 +11094,8 @@ snapshots: cookie@0.6.0: {} + cookie@1.0.2: {} + core-js-compat@3.38.1: dependencies: browserslist: 4.24.0 @@ -14656,17 +14671,16 @@ snapshots: - supports-color - vue-template-compiler - react-dom@18.3.1(react@18.3.1): + react-dom@19.0.0(react@19.0.0): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.0.0 + scheduler: 0.25.0 react-error-overlay@6.0.11: {} - react-icons@5.4.0(react@18.3.1): + react-icons@5.4.0(react@19.0.0): dependencies: - react: 18.3.1 + react: 19.0.0 react-is@16.13.1: {} @@ -14674,7 +14688,7 @@ snapshots: react-is@18.3.1: {} - react-markdown@9.0.1(@types/react@18.3.8)(react@18.3.1): + react-markdown@9.0.1(@types/react@18.3.8)(react@19.0.0): dependencies: '@types/hast': 3.0.4 '@types/react': 18.3.8 @@ -14682,7 +14696,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 mdast-util-to-hast: 13.2.0 - react: 18.3.1 + react: 19.0.0 remark-parse: 11.0.0 remark-rehype: 11.1.1 unified: 11.0.5 @@ -14693,19 +14707,23 @@ snapshots: react-refresh@0.11.0: {} - react-router-dom@6.28.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@remix-run/router': 1.21.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.28.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-router@6.28.1(react@18.3.1): + react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@remix-run/router': 1.21.0 - react: 18.3.1 + '@types/cookie': 0.6.0 + cookie: 1.0.2 + react: 19.0.0 + set-cookie-parser: 2.7.1 + turbo-stream: 2.4.0 + optionalDependencies: + react-dom: 19.0.0(react@19.0.0) - react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.25.2))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@18.3.1)(type-fest@0.21.3)(typescript@5.6.2): + react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2))(@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.25.2))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@19.0.0)(type-fest@0.21.3)(typescript@5.6.2): dependencies: '@babel/core': 7.25.2 '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.2(webpack@5.94.0))(webpack@5.94.0) @@ -14739,7 +14757,7 @@ snapshots: postcss-normalize: 10.0.1(browserslist@4.23.3)(postcss@8.4.47) postcss-preset-env: 7.8.3(postcss@8.4.47) prompts: 2.4.2 - react: 18.3.1 + react: 19.0.0 react-app-polyfill: 3.0.0 react-dev-utils: 12.0.1(eslint@8.57.1)(typescript@5.6.2)(webpack@5.94.0) react-refresh: 0.11.0 @@ -14792,19 +14810,17 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - react-syntax-highlighter@15.6.1(react@18.3.1): + react-syntax-highlighter@15.6.1(react@19.0.0): dependencies: '@babel/runtime': 7.25.6 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.29.0 - react: 18.3.1 + react: 19.0.0 refractor: 3.6.0 - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.0.0: {} read-cache@1.0.0: dependencies: @@ -15025,9 +15041,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.25.0: {} schema-utils@2.7.0: dependencies: @@ -15114,6 +15128,8 @@ snapshots: transitivePeerDependencies: - supports-color + set-cookie-parser@2.7.1: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -15599,6 +15615,8 @@ snapshots: tslib: 1.14.1 typescript: 5.6.2 + turbo-stream@2.4.0: {} + type-check@0.3.2: dependencies: prelude-ls: 1.1.2 diff --git a/viewer/package.json b/viewer/package.json index 355457e9..0abd4ba8 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -12,10 +12,10 @@ "@testing-library/user-event": "^14.5.2", "@api3/logos": "workspace:*", "gh-pages": "^6.2.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-markdown": "^9.0.1", - "react-router-dom": "^6.28.1", + "react-router-dom": "^7.1.1", "react-scripts": "5.0.1", "react-syntax-highlighter": "^15.6.1", "web-vitals": "^4.2.4",