diff --git a/package.json b/package.json index 256a6cf..88b1404 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "test:all": "backstage-cli repo test --coverage", "test:e2e": "playwright test", "fix": "backstage-cli repo fix", - "lint": "backstage-cli repo lint --since origin/main", + "lint": "backstage-cli repo lint --since main", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", "new": "backstage-cli new --scope internal", diff --git a/packages/app/package.json b/packages/app/package.json index ae0a2be..87db45b 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -42,10 +42,12 @@ "@emotion/styled": "^11.11.5", "@fontsource/inter": "^5.0.18", "@internal/backstage-plugin-plausible": "^0.1.0", + "@material-ui/core": "^4.12.4", "@mui/icons-material": "^5.15.19", "@mui/joy": "^5.0.0-beta.36", "@mui/material": "^5.15.19", "@mui/styles": "^5.18.0", + "@mui/system": "^5.15.19", "@mui/utils": "^5.15.14", "@mui/x-charts": "^8.0.0", "history": "^5.0.0", @@ -65,6 +67,7 @@ "@testing-library/user-event": "^14.0.0", "@types/jest": "^29.5.12", "@types/node": "^20.14.9", + "@types/react": "^18", "@types/react-dom": "*", "@types/webpack-env": "^1.18.5", "cross-env": "^7.0.0" diff --git a/packages/app/src/App.test.tsx b/packages/app/src/App.test.tsx index ec8ba1d..9b0c7bc 100644 --- a/packages/app/src/App.test.tsx +++ b/packages/app/src/App.test.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { render, waitFor } from '@testing-library/react'; import App from './App'; diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index a9f3bac..ebefe6f 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { Route } from 'react-router-dom'; import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; import { diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 42d0b73..88cd49f 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -1,4 +1,4 @@ -import React, { PropsWithChildren } from 'react'; +import { PropsWithChildren } from 'react'; import { styled } from '@mui/material/styles'; import Home from '@mui/icons-material/Home'; import LogoFull from './LogoFull'; diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index 362e319..f803d16 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { EntityApiDefinitionCard, EntityConsumedApisCard, @@ -250,7 +250,7 @@ const apiPage = ( - + diff --git a/packages/app/src/components/home/HomePage.tsx b/packages/app/src/components/home/HomePage.tsx index 201c1a9..df7af17 100644 --- a/packages/app/src/components/home/HomePage.tsx +++ b/packages/app/src/components/home/HomePage.tsx @@ -15,7 +15,8 @@ import Groups3Icon from '@mui/icons-material/Groups3'; import ArrowForwardIcon from '@mui/icons-material/ArrowForward'; import TrendingUpIcon from '@mui/icons-material/TrendingUp'; import TrendingDownIcon from '@mui/icons-material/TrendingDown'; -import React from 'react'; +import { useState } from 'react'; + import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import CardContent from '@mui/material/CardContent'; @@ -73,7 +74,7 @@ const PageHeading: React.FC<{ icon: React.ReactNode; title: string }> = ({ ); export const HomePage = () => { - const [isSquad, setIsSquad] = React.useState(true); + const [isSquad, setIsSquad] = useState(true); const theme = useTheme(); const months = [ diff --git a/packages/app/src/components/icons/Aws.tsx b/packages/app/src/components/icons/Aws.tsx index 61eb63c..589cbdf 100644 --- a/packages/app/src/components/icons/Aws.tsx +++ b/packages/app/src/components/icons/Aws.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Azure.tsx b/packages/app/src/components/icons/Azure.tsx index 6a7e6cf..a2f5206 100644 --- a/packages/app/src/components/icons/Azure.tsx +++ b/packages/app/src/components/icons/Azure.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Bitbucket.tsx b/packages/app/src/components/icons/Bitbucket.tsx index 000f046..4982783 100644 --- a/packages/app/src/components/icons/Bitbucket.tsx +++ b/packages/app/src/components/icons/Bitbucket.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Confluence.tsx b/packages/app/src/components/icons/Confluence.tsx index 98ed215..06ff59c 100644 --- a/packages/app/src/components/icons/Confluence.tsx +++ b/packages/app/src/components/icons/Confluence.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Discord.tsx b/packages/app/src/components/icons/Discord.tsx index 8994884..a001b4b 100644 --- a/packages/app/src/components/icons/Discord.tsx +++ b/packages/app/src/components/icons/Discord.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Grafana.tsx b/packages/app/src/components/icons/Grafana.tsx index 224580f..1f07129 100644 --- a/packages/app/src/components/icons/Grafana.tsx +++ b/packages/app/src/components/icons/Grafana.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Jira.tsx b/packages/app/src/components/icons/Jira.tsx index 66f6455..9b6303f 100644 --- a/packages/app/src/components/icons/Jira.tsx +++ b/packages/app/src/components/icons/Jira.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Prometheus.tsx b/packages/app/src/components/icons/Prometheus.tsx index 224580f..1f07129 100644 --- a/packages/app/src/components/icons/Prometheus.tsx +++ b/packages/app/src/components/icons/Prometheus.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/icons/Slack.tsx b/packages/app/src/components/icons/Slack.tsx index 34d2924..d5cfbb1 100644 --- a/packages/app/src/components/icons/Slack.tsx +++ b/packages/app/src/components/icons/Slack.tsx @@ -1,4 +1,3 @@ -import React from 'react'; interface IconProps { width: number; diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx index e154aa5..3741d3c 100644 --- a/packages/app/src/components/search/SearchPage.tsx +++ b/packages/app/src/components/search/SearchPage.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { styled } from '@mui/material/styles'; import { CatalogSearchResultListItem } from '@backstage/plugin-catalog'; diff --git a/packages/app/src/index.tsx b/packages/app/src/index.tsx index d875c77..865d995 100644 --- a/packages/app/src/index.tsx +++ b/packages/app/src/index.tsx @@ -1,5 +1,5 @@ import '@backstage/cli/asset-types'; -import React from 'react'; + import ReactDOM from 'react-dom/client'; import App from './App'; diff --git a/plugins/plausible/dev/index.tsx b/plugins/plausible/dev/index.tsx index f0c5e37..59dffb9 100644 --- a/plugins/plausible/dev/index.tsx +++ b/plugins/plausible/dev/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { createDevApp } from '@backstage/dev-utils'; import { plausiblePlugin } from '../src/plugin'; diff --git a/plugins/plausible/package.json b/plugins/plausible/package.json index db686e9..8266001 100644 --- a/plugins/plausible/package.json +++ b/plugins/plausible/package.json @@ -41,12 +41,16 @@ "@backstage/core-app-api": "^1.17.0", "@backstage/dev-utils": "^1.1.10", "@backstage/test-utils": "^1.7.8", + "@testing-library/dom": "^9.0.0", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.0.0", + "@types/react": "^18", "@types/react-helmet": "^6", "msw": "^1.0.0", - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^18.0.0", + "react-router-dom": "^6.0.0" }, "files": [ "dist", diff --git a/plugins/plausible/src/components/PlausibleAnalytics.tsx b/plugins/plausible/src/components/PlausibleAnalytics.tsx index e706b1b..c321d9c 100644 --- a/plugins/plausible/src/components/PlausibleAnalytics.tsx +++ b/plugins/plausible/src/components/PlausibleAnalytics.tsx @@ -1,5 +1,5 @@ import { useApi, configApiRef } from '@backstage/core-plugin-api'; -import React from 'react'; + import { Helmet } from 'react-helmet'; export const PlausibleAnalytics = () => { diff --git a/plugins/plausible/src/plugin.test.tsx b/plugins/plausible/src/plugin.test.tsx index 2b3ccea..c560173 100644 --- a/plugins/plausible/src/plugin.test.tsx +++ b/plugins/plausible/src/plugin.test.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { render, waitFor } from '@testing-library/react'; import { ConfigApi, configApiRef } from '@backstage/core-plugin-api'; import { TestApiProvider } from '@backstage/test-utils'; diff --git a/tsconfig.json b/tsconfig.json index d94da18..85e0cf7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,7 @@ "compilerOptions": { "outDir": "dist-types", "rootDir": ".", + "jsx": "react-jsx", "noUnusedLocals": false } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e3d0e38..7bc0bb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5640,6 +5640,19 @@ __metadata: languageName: node linkType: hard +"@emotion/cache@npm:^11.13.5": + version: 11.14.0 + resolution: "@emotion/cache@npm:11.14.0" + dependencies: + "@emotion/memoize": "npm:^0.9.0" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + stylis: "npm:4.2.0" + checksum: 10c0/3fa3e7a431ab6f8a47c67132a00ac8358f428c1b6c8421d4b20de9df7c18e95eec04a5a6ff5a68908f98d3280044f247b4965ac63df8302d2c94dba718769724 + languageName: node + linkType: hard + "@emotion/hash@npm:^0.8.0": version: 0.8.0 resolution: "@emotion/hash@npm:0.8.0" @@ -5720,6 +5733,19 @@ __metadata: languageName: node linkType: hard +"@emotion/serialize@npm:^1.3.3": + version: 1.3.3 + resolution: "@emotion/serialize@npm:1.3.3" + dependencies: + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.10.0" + "@emotion/utils": "npm:^1.4.2" + csstype: "npm:^3.0.2" + checksum: 10c0/b28cb7de59de382021de2b26c0c94ebbfb16967a1b969a56fdb6408465a8993df243bfbd66430badaa6800e1834724e84895f5a6a9d97d0d224de3d77852acb4 + languageName: node + linkType: hard + "@emotion/sheet@npm:^1.4.0": version: 1.4.0 resolution: "@emotion/sheet@npm:1.4.0" @@ -5770,6 +5796,13 @@ __metadata: languageName: node linkType: hard +"@emotion/utils@npm:^1.4.2": + version: 1.4.2 + resolution: "@emotion/utils@npm:1.4.2" + checksum: 10c0/7d0010bf60a2a8c1a033b6431469de4c80e47aeb8fd856a17c1d1f76bbc3a03161a34aeaa78803566e29681ca551e7bf9994b68e9c5f5c796159923e44f78d9a + languageName: node + linkType: hard + "@emotion/weak-memoize@npm:^0.4.0": version: 0.4.0 resolution: "@emotion/weak-memoize@npm:0.4.0" @@ -6874,13 +6907,17 @@ __metadata: "@material-ui/core": "npm:^4.9.13" "@material-ui/icons": "npm:^4.9.1" "@material-ui/lab": "npm:4.0.0-alpha.61" + "@testing-library/dom": "npm:^9.0.0" "@testing-library/jest-dom": "npm:^6.0.0" "@testing-library/react": "npm:^14.0.0" "@testing-library/user-event": "npm:^14.0.0" + "@types/react": "npm:^18" "@types/react-helmet": "npm:^6" msw: "npm:^1.0.0" react: "npm:^16.13.1 || ^17.0.0 || ^18.0.0" + react-dom: "npm:^18.0.0" react-helmet: "npm:^6.1.0" + react-router-dom: "npm:^6.0.0" react-use: "npm:^17.2.4" peerDependencies: react: ^16.13.1 || ^17.0.0 || ^18.0.0 @@ -8281,6 +8318,23 @@ __metadata: languageName: node linkType: hard +"@mui/private-theming@npm:^5.17.1": + version: 5.17.1 + resolution: "@mui/private-theming@npm:5.17.1" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/utils": "npm:^5.17.1" + prop-types: "npm:^15.8.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/53015616e3497d5fe1b068c49a5f3ebc81160fe4a08a05f1cf61acfe64522a2e6bb3d13110797a5619ceb46dce291dc13b5031cd4bcf4dbf42800b73f98640dd + languageName: node + linkType: hard + "@mui/private-theming@npm:^6.1.0": version: 6.1.0 resolution: "@mui/private-theming@npm:6.1.0" @@ -8319,6 +8373,28 @@ __metadata: languageName: node linkType: hard +"@mui/styled-engine@npm:^5.18.0": + version: 5.18.0 + resolution: "@mui/styled-engine@npm:5.18.0" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@emotion/cache": "npm:^11.13.5" + "@emotion/serialize": "npm:^1.3.3" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: 10c0/68dad75142eea160fc51abf14915d07afd0e7e7791823f6ea6845b2037fde9de6c17b84247a1f283a1437d130857cb97c1a8474c25c161a934671bc48f205418 + languageName: node + linkType: hard + "@mui/styled-engine@npm:^6.1.0": version: 6.1.0 resolution: "@mui/styled-engine@npm:6.1.0" @@ -8341,15 +8417,15 @@ __metadata: languageName: node linkType: hard -"@mui/styles@npm:^5.15.19": - version: 5.16.7 - resolution: "@mui/styles@npm:5.16.7" +"@mui/styles@npm:^5.18.0": + version: 5.18.0 + resolution: "@mui/styles@npm:5.18.0" dependencies: "@babel/runtime": "npm:^7.23.9" "@emotion/hash": "npm:^0.9.1" - "@mui/private-theming": "npm:^5.16.6" - "@mui/types": "npm:^7.2.15" - "@mui/utils": "npm:^5.16.6" + "@mui/private-theming": "npm:^5.17.1" + "@mui/types": "npm:~7.2.15" + "@mui/utils": "npm:^5.17.1" clsx: "npm:^2.1.0" csstype: "npm:^3.1.3" hoist-non-react-statics: "npm:^3.3.2" @@ -8363,12 +8439,40 @@ __metadata: jss-plugin-vendor-prefixer: "npm:^10.10.0" prop-types: "npm:^15.8.1" peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/dbf9f95cb1c035b5080448f8b9ab9414a394ddc787d94be69213a926ac3e0d5ad763b6e73ab369e524db7f2c46ef9e88bf31c1a6b3798630ebf5d64cd5576434 + languageName: node + linkType: hard + +"@mui/system@npm:^5.15.19": + version: 5.18.0 + resolution: "@mui/system@npm:5.18.0" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/private-theming": "npm:^5.17.1" + "@mui/styled-engine": "npm:^5.18.0" + "@mui/types": "npm:~7.2.15" + "@mui/utils": "npm:^5.17.1" + clsx: "npm:^2.1.0" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true "@types/react": optional: true - checksum: 10c0/545e96ce5955c1cfee8ba3642e121acd3fcb9af0cd515c2748729d8d36758f26eb44c36d8ab95fe9fb040d29d40fc234c6f402c60f7fbd65d902e85e5154929f + checksum: 10c0/9f5ad15f08c71560e9723b1f136214a0871079a976285f8b813041081850e1f9e2e9fb00766c15814217852694a521a9a91cde3bed95b8062defa8052f69eabf languageName: node linkType: hard @@ -8454,6 +8558,18 @@ __metadata: languageName: node linkType: hard +"@mui/types@npm:~7.2.15": + version: 7.2.24 + resolution: "@mui/types@npm:7.2.24" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7756339cae70e9b684c4311924e4e3882f908552b69c434b4d13faf2f5908ce72fe889a31890257c5ad42a085207be7c1661981dfc683293e90ac6dfac3759d0 + languageName: node + linkType: hard + "@mui/utils@npm:^5.14.15, @mui/utils@npm:^5.15.14, @mui/utils@npm:^5.16.6": version: 5.16.6 resolution: "@mui/utils@npm:5.16.6" @@ -8474,6 +8590,26 @@ __metadata: languageName: node linkType: hard +"@mui/utils@npm:^5.17.1": + version: 5.17.1 + resolution: "@mui/utils@npm:5.17.1" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/types": "npm:~7.2.15" + "@types/prop-types": "npm:^15.7.12" + clsx: "npm:^2.1.1" + prop-types: "npm:^15.8.1" + react-is: "npm:^19.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/0a2b033f85b67ad5cab86c5b9e2341cc1a1fa931eaad5489b21281e0bfe9054061817a8de50bcf3363f17f5a3f0c44400950099f36e5039e735c1b5f3b30cf2b + languageName: node + linkType: hard + "@mui/utils@npm:^6.0.0-alpha.1, @mui/utils@npm:^6.0.0-alpha.3, @mui/utils@npm:^6.1.0": version: 6.1.0 resolution: "@mui/utils@npm:6.1.0" @@ -10281,6 +10417,13 @@ __metadata: languageName: node linkType: hard +"@remix-run/router@npm:1.23.0": + version: 1.23.0 + resolution: "@remix-run/router@npm:1.23.0" + checksum: 10c0/eaef5cb46a1e413f7d1019a75990808307e08e53a39d4cf69c339432ddc03143d725decef3d6b9b5071b898da07f72a4a57c4e73f787005fcf10162973d8d7d7 + languageName: node + linkType: hard + "@repeaterjs/repeater@npm:^3.0.4, @repeaterjs/repeater@npm:^3.0.6": version: 3.0.6 resolution: "@repeaterjs/repeater@npm:3.0.6" @@ -14556,10 +14699,12 @@ __metadata: "@emotion/styled": "npm:^11.11.5" "@fontsource/inter": "npm:^5.0.18" "@internal/backstage-plugin-plausible": "npm:^0.1.0" + "@material-ui/core": "npm:^4.12.4" "@mui/icons-material": "npm:^5.15.19" "@mui/joy": "npm:^5.0.0-beta.36" "@mui/material": "npm:^5.15.19" - "@mui/styles": "npm:^5.15.19" + "@mui/styles": "npm:^5.18.0" + "@mui/system": "npm:^5.15.19" "@mui/utils": "npm:^5.15.14" "@mui/x-charts": "npm:^8.0.0" "@playwright/test": "npm:^1.32.3" @@ -14570,6 +14715,7 @@ __metadata: "@testing-library/user-event": "npm:^14.0.0" "@types/jest": "npm:^29.5.12" "@types/node": "npm:^20.14.9" + "@types/react": "npm:^18" "@types/react-dom": "npm:*" "@types/webpack-env": "npm:^1.18.5" cross-env: "npm:^7.0.0" @@ -30508,7 +30654,7 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^18.0.2": +"react-dom@npm:^18.0.0, react-dom@npm:^18.0.2": version: 18.3.1 resolution: "react-dom@npm:18.3.1" dependencies: @@ -30668,7 +30814,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.1.0": +"react-is@npm:^19.0.0, react-is@npm:^19.1.0": version: 19.1.0 resolution: "react-is@npm:19.1.0" checksum: 10c0/b6c6cadd172d5d39f66d493700d137a5545c294a62ce0f8ec793d59794c97d2bed6bad227626f16bd0e90004ed7fdc8ed662a004e6edcf5d2b7ecb6e3040ea6b @@ -30795,6 +30941,19 @@ __metadata: languageName: node linkType: hard +"react-router-dom@npm:^6.0.0": + version: 6.30.1 + resolution: "react-router-dom@npm:6.30.1" + dependencies: + "@remix-run/router": "npm:1.23.0" + react-router: "npm:6.30.1" + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 10c0/e9e1297236b0faa864424ad7d51c392fc6e118595d4dad4cd542fd217c479a81601a81c6266d5801f04f9e154de02d3b094fc22ccb544e755c2eb448fab4ec6b + languageName: node + linkType: hard + "react-router-dom@npm:^6.3.0": version: 6.26.2 resolution: "react-router-dom@npm:6.26.2" @@ -30819,6 +30978,17 @@ __metadata: languageName: node linkType: hard +"react-router@npm:6.30.1": + version: 6.30.1 + resolution: "react-router@npm:6.30.1" + dependencies: + "@remix-run/router": "npm:1.23.0" + peerDependencies: + react: ">=16.8" + checksum: 10c0/0414326f2d8e0c107fb4603cf4066dacba6a1f6f025c6e273f003e177b2f18888aca3de06d9b5522908f0e41de93be1754c37e82aa97b3a269c4742c08e82539 + languageName: node + linkType: hard + "react-side-effect@npm:^2.1.0": version: 2.1.2 resolution: "react-side-effect@npm:2.1.2"