diff --git a/.changeset/khaki-penguins-whisper.md b/.changeset/khaki-penguins-whisper.md new file mode 100644 index 0000000000..f3412a5f79 --- /dev/null +++ b/.changeset/khaki-penguins-whisper.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-user-settings': patch +--- + +Added ESLint rule `no-top-level-material-ui-4-imports` in the `user-settings` plugin to migrate the Material UI imports. diff --git a/.changeset/plenty-singers-call.md b/.changeset/plenty-singers-call.md new file mode 100644 index 0000000000..cd51c18aa1 --- /dev/null +++ b/.changeset/plenty-singers-call.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stackstorm': patch +--- + +Added ESLint rule `no-top-level-material-ui-4-imports` in the `stackstorm` plugin to migrate the Material UI imports. diff --git a/.changeset/popular-guests-tickle.md b/.changeset/popular-guests-tickle.md new file mode 100644 index 0000000000..e442dae2d5 --- /dev/null +++ b/.changeset/popular-guests-tickle.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend-module-jsonfc': patch +--- + +Fixes an invalid line in the schema that was causing AJV to complain. diff --git a/.changeset/renovate-45377c1.md b/.changeset/renovate-45377c1.md new file mode 100644 index 0000000000..5b0c6e1fc8 --- /dev/null +++ b/.changeset/renovate-45377c1.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Updated dependency `react-idle-timer` to `5.7.2`. diff --git a/.changeset/seven-monkeys-happen.md b/.changeset/seven-monkeys-happen.md new file mode 100644 index 0000000000..e81d20aece --- /dev/null +++ b/.changeset/seven-monkeys-happen.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-vault': patch +--- + +Added ESLint rule `no-top-level-material-ui-4-imports` in the `vault` plugin to migrate the Material UI imports. diff --git a/.changeset/spotty-ducks-deny.md b/.changeset/spotty-ducks-deny.md new file mode 100644 index 0000000000..964ec9428c --- /dev/null +++ b/.changeset/spotty-ducks-deny.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights': patch +--- + +Added ESLint rule `no-top-level-material-ui-4-imports` in the `tech-insights` plugin to migrate the Material UI imports. diff --git a/.changeset/sweet-jokes-exercise.md b/.changeset/sweet-jokes-exercise.md new file mode 100644 index 0000000000..72a4f13889 --- /dev/null +++ b/.changeset/sweet-jokes-exercise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-stack-overflow': patch +--- + +Added ESLint rule `no-top-level-material-ui-4-imports` in the `stack-overflow` plugin to migrate the Material UI imports. diff --git a/docs/plugins/analytics.md b/docs/plugins/analytics.md index 0673566217..a4dfafbf87 100644 --- a/docs/plugins/analytics.md +++ b/docs/plugins/analytics.md @@ -40,6 +40,7 @@ choice below. | [Google Analytics 4][ga4] | Yes ✅ | | [New Relic Browser][newrelic-browser] | Community ✅ | | [Matomo][matomo] | Community ✅ | +| [Quantum Metric][qm] | Community ✅ | To suggest an integration, please [open an issue][add-tool] for the analytics tool your organization uses. Or jump to [Writing Integrations][int-howto] to @@ -48,6 +49,7 @@ learn how to contribute the integration yourself! [ga]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md [ga4]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga4/README.md [newrelic-browser]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-newrelic-browser/README.md +[qm]: https://github.com/quantummetric/analytics-module-qm/blob/main/README.md [matomo]: https://github.com/janus-idp/backstage-plugins/blob/main/plugins/analytics-module-matomo/README.md [add-tool]: https://github.com/backstage/backstage/issues/new?assignees=&labels=plugin&template=plugin_template.md&title=%5BAnalytics+Module%5D+THE+ANALYTICS+TOOL+TO+INTEGRATE [int-howto]: #writing-integrations diff --git a/microsite/data/plugins/analytics-module-qm.yaml b/microsite/data/plugins/analytics-module-qm.yaml new file mode 100644 index 0000000000..df2ae3e935 --- /dev/null +++ b/microsite/data/plugins/analytics-module-qm.yaml @@ -0,0 +1,10 @@ +--- +title: 'Analytics Module: Quantum Metric' +author: Quantum Metric +authorUrl: https://github.com/quantummetric +category: Monitoring +description: Track usage of your Backstage instance using Quantum Metric. +documentation: https://github.com/quantummetric/analytics-module-qm/blob/main/README.md +iconUrl: /img/qm-icon.png +npmPackageName: '@quantum-metric/plugin-analytics-module-qm' +addedDate: '2024-03-15' diff --git a/microsite/static/img/partner-logo-solo.png b/microsite/static/img/partner-logo-solo.png index 7d26b976f4..f4d36ec61a 100644 Binary files a/microsite/static/img/partner-logo-solo.png and b/microsite/static/img/partner-logo-solo.png differ diff --git a/microsite/static/img/qm-icon.png b/microsite/static/img/qm-icon.png new file mode 100644 index 0000000000..021d24388b Binary files /dev/null and b/microsite/static/img/qm-icon.png differ diff --git a/packages/cli/package.json b/packages/cli/package.json index f1214e3320..4eb45011dc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -168,9 +168,13 @@ "@types/tar": "^6.1.1", "@types/terser-webpack-plugin": "^5.0.4", "@types/yarnpkg__lockfile": "^1.1.4", + "@vitejs/plugin-react": "^4.0.4", "del": "^7.0.0", "msw": "^1.0.0", - "nodemon": "^3.0.1" + "nodemon": "^3.0.1", + "vite": "^4.4.9", + "vite-plugin-html": "^3.2.0", + "vite-plugin-node-polyfills": "^0.21.0" }, "peerDependencies": { "@vitejs/plugin-react": "^4.0.4", diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 04de809938..525b41dba7 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -78,7 +78,7 @@ "rc-progress": "3.5.1", "react-helmet": "6.1.0", "react-hook-form": "^7.12.2", - "react-idle-timer": "5.6.2", + "react-idle-timer": "5.7.2", "react-markdown": "^8.0.0", "react-sparklines": "^1.7.0", "react-syntax-highlighter": "^15.4.5", diff --git a/plugins/notifications-backend/package.json b/plugins/notifications-backend/package.json index 68c7b9b22b..1e86c6bcda 100644 --- a/plugins/notifications-backend/package.json +++ b/plugins/notifications-backend/package.json @@ -18,7 +18,8 @@ "main": "src/index.ts", "types": "src/index.ts", "files": [ - "dist" + "dist", + "migrations/**/*.{js,d.ts}" ], "scripts": { "build": "backstage-cli package build", diff --git a/plugins/stack-overflow/.eslintrc.js b/plugins/stack-overflow/.eslintrc.js index e2a53a6ad2..a2d8179106 100644 --- a/plugins/stack-overflow/.eslintrc.js +++ b/plugins/stack-overflow/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx index 8d8aeccb3b..d74f296614 100644 --- a/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/Content.tsx @@ -16,14 +16,12 @@ import { useApi } from '@backstage/core-plugin-api'; import { Link } from '@backstage/core-components'; -import { - IconButton, - List, - ListItem, - ListItemText, - ListItemSecondaryAction, - ListItemIcon, -} from '@material-ui/core'; +import IconButton from '@material-ui/core/IconButton'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; import Typography from '@material-ui/core/Typography'; import OpenInNewIcon from '@material-ui/icons/OpenInNew'; import useAsync from 'react-use/lib/useAsync'; diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx index 9f0fd75341..b9ac36f588 100644 --- a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx +++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx @@ -18,7 +18,7 @@ import { HomePageStackOverflowQuestions } from '../../plugin'; import { wrapInTestApp, TestApiProvider } from '@backstage/test-utils'; import { configApiRef } from '@backstage/core-plugin-api'; import { ConfigReader } from '@backstage/config'; -import { Grid } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid'; import React, { ComponentType, PropsWithChildren } from 'react'; import { StackOverflowIcon } from '../../icons'; import { stackOverflowApiRef } from '../../api'; diff --git a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx index 70e182b86d..90c129b901 100644 --- a/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx +++ b/plugins/stack-overflow/src/search/StackOverflowSearchResultListItem/StackOverflowSearchResultListItem.tsx @@ -16,14 +16,12 @@ import React from 'react'; import { Link } from '@backstage/core-components'; -import { - Divider, - ListItem, - ListItemText, - ListItemIcon, - Box, - Chip, -} from '@material-ui/core'; +import Divider from '@material-ui/core/Divider'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import Box from '@material-ui/core/Box'; +import Chip from '@material-ui/core/Chip'; import { useAnalytics } from '@backstage/core-plugin-api'; import type { ResultHighlight } from '@backstage/plugin-search-common'; import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; diff --git a/plugins/stackstorm/.eslintrc.js b/plugins/stackstorm/.eslintrc.js index e2a53a6ad2..a2d8179106 100644 --- a/plugins/stackstorm/.eslintrc.js +++ b/plugins/stackstorm/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/plugins/stackstorm/src/components/ActionsList/ActionsList.tsx b/plugins/stackstorm/src/components/ActionsList/ActionsList.tsx index 1080f67373..bd5fc56c2f 100644 --- a/plugins/stackstorm/src/components/ActionsList/ActionsList.tsx +++ b/plugins/stackstorm/src/components/ActionsList/ActionsList.tsx @@ -17,14 +17,12 @@ import React, { useState } from 'react'; import useAsync from 'react-use/lib/useAsync'; import { Link, Progress, ResponseErrorPanel } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; -import { - List, - ListItemText, - Collapse, - ListItem, - ListItemSecondaryAction, - ListItemIcon, -} from '@material-ui/core'; +import List from '@material-ui/core/List'; +import ListItemText from '@material-ui/core/ListItemText'; +import Collapse from '@material-ui/core/Collapse'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; import { makeStyles } from '@material-ui/core/styles'; import ExpandMore from '@material-ui/icons/ExpandMore'; import ExpandLess from '@material-ui/icons/ExpandLess'; diff --git a/plugins/stackstorm/src/components/ExecutionsTable/ExecutionPanel.tsx b/plugins/stackstorm/src/components/ExecutionsTable/ExecutionPanel.tsx index 8a55c31246..cd22120898 100644 --- a/plugins/stackstorm/src/components/ExecutionsTable/ExecutionPanel.tsx +++ b/plugins/stackstorm/src/components/ExecutionsTable/ExecutionPanel.tsx @@ -22,19 +22,16 @@ import { import { useApi } from '@backstage/core-plugin-api'; import { Execution, stackstormApiRef } from '../../api'; import useAsync from 'react-use/lib/useAsync'; -import { - Button, - Card, - CardActions, - CardContent, - makeStyles, - Table, - TableBody, - TableCell, - TableRow, - Typography, - withStyles, -} from '@material-ui/core'; +import Button from '@material-ui/core/Button'; +import Card from '@material-ui/core/Card'; +import CardActions from '@material-ui/core/CardActions'; +import CardContent from '@material-ui/core/CardContent'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableRow from '@material-ui/core/TableRow'; +import Typography from '@material-ui/core/Typography'; +import { makeStyles, withStyles } from '@material-ui/core/styles'; import { Status } from './Status'; const useStyles = makeStyles(theme => ({ diff --git a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx index 1bb9031815..13b1e181b5 100644 --- a/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx +++ b/plugins/stackstorm/src/components/StackstormHome/StackstormHome.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ import React, { Fragment } from 'react'; -import { IconButton } from '@material-ui/core'; +import IconButton from '@material-ui/core/IconButton'; import { Header, Page, diff --git a/plugins/tech-insights-backend-module-jsonfc/config.json b/plugins/tech-insights-backend-module-jsonfc/config.json index b95b5e52bb..347d4aa54f 100644 --- a/plugins/tech-insights-backend-module-jsonfc/config.json +++ b/plugins/tech-insights-backend-module-jsonfc/config.json @@ -109,7 +109,7 @@ ] }, "rule": { - "type": "string", + "type": "object", "required": ["conditions"], "properties": { "conditions": { diff --git a/plugins/tech-insights/.eslintrc.js b/plugins/tech-insights/.eslintrc.js index e2a53a6ad2..a2d8179106 100644 --- a/plugins/tech-insights/.eslintrc.js +++ b/plugins/tech-insights/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx b/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx index f8871b87c1..c144833ea7 100644 --- a/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx +++ b/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx @@ -21,7 +21,7 @@ import { useApi } from '@backstage/core-plugin-api'; import { ScorecardInfo } from '../ScorecardsInfo'; import Alert from '@material-ui/lab/Alert'; import { techInsightsApiRef } from '../../api/TechInsightsApi'; -import { makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; import { useEntity } from '@backstage/plugin-catalog-react'; import { getCompoundEntityRef } from '@backstage/catalog-model'; diff --git a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx index cfff074368..2a2ca982d1 100644 --- a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx +++ b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx @@ -15,10 +15,12 @@ */ import React from 'react'; -import { makeStyles, Grid, Typography } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid'; +import Typography from '@material-ui/core/Typography'; +import { makeStyles } from '@material-ui/core/styles'; import { InfoCard } from '@backstage/core-components'; import { CheckResult } from '@backstage/plugin-tech-insights-common'; -import { Alert } from '@material-ui/lab'; +import Alert from '@material-ui/lab/Alert'; import { ScorecardsList } from '../ScorecardsList'; const useStyles = makeStyles(theme => ({ diff --git a/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx b/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx index 1a9d04a9de..dcd94eb0d7 100644 --- a/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx +++ b/plugins/tech-insights/src/components/ScorecardsList/ScorecardsList.tsx @@ -16,10 +16,13 @@ import React from 'react'; import { useApi } from '@backstage/core-plugin-api'; -import { makeStyles, List, ListItem, ListItemText } from '@material-ui/core'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import { makeStyles } from '@material-ui/core/styles'; import { techInsightsApiRef } from '../../api'; import { CheckResult } from '@backstage/plugin-tech-insights-common'; -import { Alert } from '@material-ui/lab'; +import Alert from '@material-ui/lab/Alert'; import { MarkdownContent } from '@backstage/core-components'; const useStyles = makeStyles(theme => ({ diff --git a/plugins/user-settings/.eslintrc.js b/plugins/user-settings/.eslintrc.js index e2a53a6ad2..a2d8179106 100644 --- a/plugins/user-settings/.eslintrc.js +++ b/plugins/user-settings/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/plugins/user-settings/api-report.md b/plugins/user-settings/api-report.md index b92677f8ce..d485320fe8 100644 --- a/plugins/user-settings/api-report.md +++ b/plugins/user-settings/api-report.md @@ -24,7 +24,7 @@ import { RouteRef } from '@backstage/core-plugin-api'; import { SessionApi } from '@backstage/core-plugin-api'; import { StorageApi } from '@backstage/core-plugin-api'; import { StorageValueSnapshot } from '@backstage/core-plugin-api'; -import { TabProps } from '@material-ui/core'; +import { TabProps } from '@material-ui/core/Tab'; // @public (undocumented) export const DefaultProviderSettings: (props: { diff --git a/plugins/user-settings/src/components/AuthProviders/EmptyProviders.tsx b/plugins/user-settings/src/components/AuthProviders/EmptyProviders.tsx index 082cb5e8ac..952ba3af30 100644 --- a/plugins/user-settings/src/components/AuthProviders/EmptyProviders.tsx +++ b/plugins/user-settings/src/components/AuthProviders/EmptyProviders.tsx @@ -15,7 +15,8 @@ */ import React from 'react'; -import { Button, Typography } from '@material-ui/core'; +import Button from '@material-ui/core/Button'; +import Typography from '@material-ui/core/Typography'; import { CodeSnippet, EmptyState } from '@backstage/core-components'; const EXAMPLE = `auth: diff --git a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx index 07e9b4aa55..c09dac5985 100644 --- a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx +++ b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsAvatar.tsx @@ -15,7 +15,8 @@ */ import React from 'react'; -import { makeStyles, Avatar, Theme } from '@material-ui/core'; +import Avatar from '@material-ui/core/Avatar'; +import { makeStyles, Theme } from '@material-ui/core/styles'; import { sidebarConfig } from '@backstage/core-components'; const useStyles = makeStyles(theme => ({ diff --git a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx index e9a710036f..07afd8083e 100644 --- a/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx +++ b/plugins/user-settings/src/components/AuthProviders/ProviderSettingsItem.tsx @@ -15,16 +15,14 @@ */ import React, { useEffect, useState } from 'react'; -import { - Button, - Grid, - ListItem, - ListItemIcon, - ListItemSecondaryAction, - ListItemText, - Tooltip, - Typography, -} from '@material-ui/core'; +import Button from '@material-ui/core/Button'; +import Grid from '@material-ui/core/Grid'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import ListItemText from '@material-ui/core/ListItemText'; +import Tooltip from '@material-ui/core/Tooltip'; +import Typography from '@material-ui/core/Typography'; import { ApiRef, SessionApi, diff --git a/plugins/user-settings/src/components/AuthProviders/UserSettingsAuthProviders.tsx b/plugins/user-settings/src/components/AuthProviders/UserSettingsAuthProviders.tsx index d23716c2bf..e83440e0c5 100644 --- a/plugins/user-settings/src/components/AuthProviders/UserSettingsAuthProviders.tsx +++ b/plugins/user-settings/src/components/AuthProviders/UserSettingsAuthProviders.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { List } from '@material-ui/core'; +import List from '@material-ui/core/List'; import { EmptyProviders } from './EmptyProviders'; import { DefaultProviderSettings } from './DefaultProviderSettings'; import { configApiRef, useApi } from '@backstage/core-plugin-api'; diff --git a/plugins/user-settings/src/components/FeatureFlags/EmptyFlags.tsx b/plugins/user-settings/src/components/FeatureFlags/EmptyFlags.tsx index 0e2b911978..55c70ba7a2 100644 --- a/plugins/user-settings/src/components/FeatureFlags/EmptyFlags.tsx +++ b/plugins/user-settings/src/components/FeatureFlags/EmptyFlags.tsx @@ -15,7 +15,8 @@ */ import React from 'react'; -import { Button, Typography } from '@material-ui/core'; +import Button from '@material-ui/core/Button'; +import Typography from '@material-ui/core/Typography'; import { CodeSnippet, EmptyState } from '@backstage/core-components'; const EXAMPLE = `import { createPlugin } from '@backstage/core-plugin-api'; diff --git a/plugins/user-settings/src/components/FeatureFlags/FeatureFlagsItem.tsx b/plugins/user-settings/src/components/FeatureFlags/FeatureFlagsItem.tsx index a5f0d480cb..96f8166c4a 100644 --- a/plugins/user-settings/src/components/FeatureFlags/FeatureFlagsItem.tsx +++ b/plugins/user-settings/src/components/FeatureFlags/FeatureFlagsItem.tsx @@ -15,13 +15,11 @@ */ import React from 'react'; -import { - ListItem, - ListItemText, - ListItemIcon, - Switch, - Tooltip, -} from '@material-ui/core'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import Switch from '@material-ui/core/Switch'; +import Tooltip from '@material-ui/core/Tooltip'; import { FeatureFlag } from '@backstage/core-plugin-api'; type Props = { diff --git a/plugins/user-settings/src/components/FeatureFlags/UserSettingsFeatureFlags.tsx b/plugins/user-settings/src/components/FeatureFlags/UserSettingsFeatureFlags.tsx index 60b951ab60..1522001ac5 100644 --- a/plugins/user-settings/src/components/FeatureFlags/UserSettingsFeatureFlags.tsx +++ b/plugins/user-settings/src/components/FeatureFlags/UserSettingsFeatureFlags.tsx @@ -15,13 +15,11 @@ */ import React, { useCallback, useState } from 'react'; -import { - List, - TextField, - IconButton, - Grid, - Typography, -} from '@material-ui/core'; +import List from '@material-ui/core/List'; +import TextField from '@material-ui/core/TextField'; +import IconButton from '@material-ui/core/IconButton'; +import Grid from '@material-ui/core/Grid'; +import Typography from '@material-ui/core/Typography'; import { EmptyFlags } from './EmptyFlags'; import { FlagItem } from './FeatureFlagsItem'; import { diff --git a/plugins/user-settings/src/components/General/UserSettingsAppearanceCard.tsx b/plugins/user-settings/src/components/General/UserSettingsAppearanceCard.tsx index 8a32c0bd9b..b8e3c44672 100644 --- a/plugins/user-settings/src/components/General/UserSettingsAppearanceCard.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsAppearanceCard.tsx @@ -15,7 +15,7 @@ */ import { InfoCard, useSidebarPinState } from '@backstage/core-components'; -import { List } from '@material-ui/core'; +import List from '@material-ui/core/List'; import React from 'react'; import { UserSettingsPinToggle } from './UserSettingsPinToggle'; import { UserSettingsThemeToggle } from './UserSettingsThemeToggle'; diff --git a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx index 8dde87ba5c..6c663ed1bc 100644 --- a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Grid } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid'; import React from 'react'; import { UserSettingsProfileCard } from './UserSettingsProfileCard'; import { UserSettingsAppearanceCard } from './UserSettingsAppearanceCard'; diff --git a/plugins/user-settings/src/components/General/UserSettingsLanguageToggle.tsx b/plugins/user-settings/src/components/General/UserSettingsLanguageToggle.tsx index 15c6e9ea9c..337960932e 100644 --- a/plugins/user-settings/src/components/General/UserSettingsLanguageToggle.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsLanguageToggle.tsx @@ -19,12 +19,10 @@ import { useTranslationRef, appLanguageApiRef, } from '@backstage/core-plugin-api/alpha'; -import { - ListItem, - ListItemText, - ListItemSecondaryAction, - makeStyles, -} from '@material-ui/core'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import { makeStyles } from '@material-ui/core/styles'; import { userSettingsTranslationRef } from '../../translation'; import { useApi } from '@backstage/core-plugin-api'; import useObservable from 'react-use/lib/useObservable'; diff --git a/plugins/user-settings/src/components/General/UserSettingsMenu.tsx b/plugins/user-settings/src/components/General/UserSettingsMenu.tsx index c83bdd5b74..8ef2f380f3 100644 --- a/plugins/user-settings/src/components/General/UserSettingsMenu.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsMenu.tsx @@ -15,7 +15,10 @@ */ import React from 'react'; -import { IconButton, ListItemIcon, Menu, MenuItem } from '@material-ui/core'; +import IconButton from '@material-ui/core/IconButton'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import Menu from '@material-ui/core/Menu'; +import MenuItem from '@material-ui/core/MenuItem'; import SignOutIcon from '@material-ui/icons/MeetingRoom'; import MoreVertIcon from '@material-ui/icons/MoreVert'; import { diff --git a/plugins/user-settings/src/components/General/UserSettingsPinToggle.tsx b/plugins/user-settings/src/components/General/UserSettingsPinToggle.tsx index a06b079e8e..95317147cf 100644 --- a/plugins/user-settings/src/components/General/UserSettingsPinToggle.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsPinToggle.tsx @@ -15,13 +15,11 @@ */ import React from 'react'; -import { - ListItem, - ListItemSecondaryAction, - ListItemText, - Switch, - Tooltip, -} from '@material-ui/core'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import ListItemText from '@material-ui/core/ListItemText'; +import Switch from '@material-ui/core/Switch'; +import Tooltip from '@material-ui/core/Tooltip'; import { useSidebarPinState } from '@backstage/core-components'; /** @public */ diff --git a/plugins/user-settings/src/components/General/UserSettingsProfileCard.tsx b/plugins/user-settings/src/components/General/UserSettingsProfileCard.tsx index c96d2bb21e..c04710650c 100644 --- a/plugins/user-settings/src/components/General/UserSettingsProfileCard.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsProfileCard.tsx @@ -14,7 +14,8 @@ * limitations under the License. */ -import { Grid, Typography } from '@material-ui/core'; +import Grid from '@material-ui/core/Grid'; +import Typography from '@material-ui/core/Typography'; import React from 'react'; import { UserSettingsSignInAvatar } from './UserSettingsSignInAvatar'; import { UserSettingsMenu } from './UserSettingsMenu'; diff --git a/plugins/user-settings/src/components/General/UserSettingsSignInAvatar.tsx b/plugins/user-settings/src/components/General/UserSettingsSignInAvatar.tsx index 85c616ec72..80621d1a53 100644 --- a/plugins/user-settings/src/components/General/UserSettingsSignInAvatar.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsSignInAvatar.tsx @@ -15,7 +15,8 @@ */ import React from 'react'; -import { makeStyles, Avatar, Theme } from '@material-ui/core'; +import Avatar from '@material-ui/core/Avatar'; +import { makeStyles, Theme } from '@material-ui/core/styles'; import { useUserProfile } from '../useUserProfileInfo'; import { sidebarConfig } from '@backstage/core-components'; diff --git a/plugins/user-settings/src/components/General/UserSettingsThemeToggle.tsx b/plugins/user-settings/src/components/General/UserSettingsThemeToggle.tsx index 37d91ecae0..3c19b0ab88 100644 --- a/plugins/user-settings/src/components/General/UserSettingsThemeToggle.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsThemeToggle.tsx @@ -19,13 +19,11 @@ import useObservable from 'react-use/lib/useObservable'; import AutoIcon from '@material-ui/icons/BrightnessAuto'; import ToggleButton from '@material-ui/lab/ToggleButton'; import ToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup'; -import { - ListItem, - ListItemText, - ListItemSecondaryAction, - Tooltip, - makeStyles, -} from '@material-ui/core'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'; +import Tooltip from '@material-ui/core/Tooltip'; +import { makeStyles } from '@material-ui/core/styles'; import { appThemeApiRef, useApi } from '@backstage/core-plugin-api'; import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; import { userSettingsTranslationRef } from '../../translation'; diff --git a/plugins/user-settings/src/components/SettingsLayout/SettingsLayout.tsx b/plugins/user-settings/src/components/SettingsLayout/SettingsLayout.tsx index 9855fdd048..c17333571d 100644 --- a/plugins/user-settings/src/components/SettingsLayout/SettingsLayout.tsx +++ b/plugins/user-settings/src/components/SettingsLayout/SettingsLayout.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { TabProps } from '@material-ui/core'; +import { TabProps } from '@material-ui/core/Tab'; import { Header, Page, diff --git a/plugins/vault/.eslintrc.js b/plugins/vault/.eslintrc.js index e2a53a6ad2..a2d8179106 100644 --- a/plugins/vault/.eslintrc.js +++ b/plugins/vault/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/plugins/vault/dev/index.tsx b/plugins/vault/dev/index.tsx index 8d902e14c5..97dde1f3bf 100644 --- a/plugins/vault/dev/index.tsx +++ b/plugins/vault/dev/index.tsx @@ -19,7 +19,8 @@ import { Content, Header, HeaderLabel, Page } from '@backstage/core-components'; import { createDevApp } from '@backstage/dev-utils'; import { EntityProvider } from '@backstage/plugin-catalog-react'; import { TestApiProvider } from '@backstage/test-utils'; -import { Box, Typography } from '@material-ui/core'; +import Box from '@material-ui/core/Box'; +import Typography from '@material-ui/core/Typography'; import SomeIcon from '@material-ui/icons/Storage'; import React from 'react'; import { VaultApi, vaultApiRef } from '../src/api'; diff --git a/plugins/vault/src/components/EntityVaultTable/EntityVaultTable.tsx b/plugins/vault/src/components/EntityVaultTable/EntityVaultTable.tsx index 4d169611ca..412a3404d1 100644 --- a/plugins/vault/src/components/EntityVaultTable/EntityVaultTable.tsx +++ b/plugins/vault/src/components/EntityVaultTable/EntityVaultTable.tsx @@ -17,7 +17,8 @@ import React from 'react'; import { Entity } from '@backstage/catalog-model'; import { Link, Table, TableColumn } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; -import { Box, Typography } from '@material-ui/core'; +import Box from '@material-ui/core/Box'; +import Typography from '@material-ui/core/Typography'; import Edit from '@material-ui/icons/Edit'; import Visibility from '@material-ui/icons/Visibility'; import Alert from '@material-ui/lab/Alert'; diff --git a/yarn.lock b/yarn.lock index 2dda73ed3a..69bf765b58 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3641,6 +3641,7 @@ __metadata: "@types/yarnpkg__lockfile": ^1.1.4 "@typescript-eslint/eslint-plugin": ^6.12.0 "@typescript-eslint/parser": ^6.7.2 + "@vitejs/plugin-react": ^4.0.4 "@yarnpkg/lockfile": ^1.1.0 "@yarnpkg/parsers": ^3.0.0-rc.4 bfj: ^8.0.0 @@ -3711,6 +3712,9 @@ __metadata: tar: ^6.1.12 terser-webpack-plugin: ^5.1.3 util: ^0.12.3 + vite: ^4.4.9 + vite-plugin-html: ^3.2.0 + vite-plugin-node-polyfills: ^0.21.0 webpack: ^5.70.0 webpack-dev-server: ^4.7.3 webpack-node-externals: ^3.0.0 @@ -4022,7 +4026,7 @@ __metadata: rc-progress: 3.5.1 react-helmet: 6.1.0 react-hook-form: ^7.12.2 - react-idle-timer: 5.6.2 + react-idle-timer: 5.7.2 react-markdown: ^8.0.0 react-sparklines: ^1.7.0 react-syntax-highlighter: ^15.4.5 @@ -12237,15 +12241,6 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/expect-utils@npm:28.1.3" - dependencies: - jest-get-type: ^28.0.2 - checksum: 808ea3a68292a7e0b95490fdd55605c430b4cf209ea76b5b61bfb2a1badcb41bc046810fe4e364bd5fe04663978aa2bd73d8f8465a761dd7c655aeb44cf22987 - languageName: node - linkType: hard - "@jest/expect-utils@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect-utils@npm:29.7.0" @@ -12328,15 +12323,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/schemas@npm:28.1.3" - dependencies: - "@sinclair/typebox": ^0.24.1 - checksum: 3cf1d4b66c9c4ffda58b246de1ddcba8e6ad085af63dccdf07922511f13b68c0cc480a7bc620cb4f3099a6f134801c747e1df7bfc7a4ef4dceefbdea3e31e1de - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -12404,20 +12390,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/types@npm:28.1.3" - dependencies: - "@jest/schemas": ^28.1.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 1e258d9c063fcf59ebc91e46d5ea5984674ac7ae6cae3e50aa780d22b4405bf2c925f40350bf30013839eb5d4b5e521d956ddf8f3b7c78debef0e75a07f57350 - languageName: node - linkType: hard - "@jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" @@ -16014,13 +15986,6 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.24.1": - version: 0.24.42 - resolution: "@sinclair/typebox@npm:0.24.42" - checksum: 83a3083b71063ad270669308634f7c5b473272da71cbc405343b2ff774d641ec2be0993e0a61386f8ef3f8b786c173dc01921a5bc6627d95657eb98f19f1a4c4 - languageName: node - linkType: hard - "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -18875,16 +18840,6 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^28.1.3": - version: 28.1.8 - resolution: "@types/jest@npm:28.1.8" - dependencies: - expect: ^28.0.0 - pretty-format: ^28.0.0 - checksum: d4cd36158a3ae1d4b42cc48a77c95de74bc56b84cf81e09af3ee0399c34f4a7da8ab9e787570f10004bd642f9e781b0033c37327fbbf4a8e4b6e37e8ee3693a7 - languageName: node - linkType: hard - "@types/jquery@npm:^3.3.34": version: 3.5.29 resolution: "@types/jquery@npm:3.5.29" @@ -21691,25 +21646,25 @@ __metadata: linkType: hard "aws-sdk-client-mock-jest@npm:^3.0.0": - version: 3.0.1 - resolution: "aws-sdk-client-mock-jest@npm:3.0.1" + version: 3.1.0 + resolution: "aws-sdk-client-mock-jest@npm:3.1.0" dependencies: - "@types/jest": ^28.1.3 + expect: ">28.1.3" tslib: ^2.1.0 peerDependencies: - aws-sdk-client-mock: 3.0.1 - checksum: c5c72ae63c9d3862636b833c66ebc708a1c170ba1159508f9a1e56c8e71ba82f7f85a00e68148b72cc699ab3e7ce6945d29bfd23151ae62c3f78133d56585ddd + aws-sdk-client-mock: 3.1.0 + checksum: d619e3dbc58009ffa9db766a7781ec1159809825a8e8246f41adeeffa81aa4ec0319cf0ba5a113e4937101b56401396eb117cab4da3fac4974b094ac8fdbeaa3 languageName: node linkType: hard "aws-sdk-client-mock@npm:^3.0.0": - version: 3.0.1 - resolution: "aws-sdk-client-mock@npm:3.0.1" + version: 3.1.0 + resolution: "aws-sdk-client-mock@npm:3.1.0" dependencies: "@types/sinon": ^10.0.10 sinon: ^16.1.3 tslib: ^2.1.0 - checksum: e875af24a765d7883059c101a629a58bbb2ec3a055443562f9410ebd96823691dfae25d69b962dc3c22ad5867971c37b378d05f3c8344bbb992b1a624a0fb836 + checksum: fbb11b5783fe6ba9b5c10a4395193d5b4b1583040cce61bcd341dce25327ee86e3b00166c2fb3d47aedaa890c129e1c3fabe944086419d50ba12a417ebe2ede9 languageName: node linkType: hard @@ -25131,9 +25086,9 @@ __metadata: linkType: hard "date-fns@npm:^3.0.0": - version: 3.5.0 - resolution: "date-fns@npm:3.5.0" - checksum: 0f326b72aff0a10b5a7a253d7790462263ee3c79b4283fdbb423c3159017f7ddb7cfd8e509ce94c652825232e9aa84278143f333ddb357bc6b03bd39eebd6f5d + version: 3.6.0 + resolution: "date-fns@npm:3.6.0" + checksum: 0daa1e9a436cf99f9f2ae9232b55e11f3dd46132bee10987164f3eebd29f245b2e066d7d7db40782627411ecf18551d8f4c9fcdf2226e48bb66545407d448ab7 languageName: node linkType: hard @@ -25606,13 +25561,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^28.1.1": - version: 28.1.1 - resolution: "diff-sequences@npm:28.1.1" - checksum: e2529036505567c7ca5a2dea86b6bcd1ca0e3ae63bf8ebf529b8a99cfa915bbf194b7021dc1c57361a4017a6d95578d4ceb29fabc3232a4f4cb866a2726c7690 - languageName: node - linkType: hard - "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -27754,20 +27702,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^28.0.0": - version: 28.1.3 - resolution: "expect@npm:28.1.3" - dependencies: - "@jest/expect-utils": ^28.1.3 - jest-get-type: ^28.0.2 - jest-matcher-utils: ^28.1.3 - jest-message-util: ^28.1.3 - jest-util: ^28.1.3 - checksum: 101e0090de300bcafedb7dbfd19223368a2251ce5fe0105bbb6de5720100b89fb6b64290ebfb42febc048324c76d6a4979cdc4b61eb77747857daf7a5de9b03d - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.7.0": +"expect@npm:>28.1.3, expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -31813,18 +31748,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-diff@npm:28.1.3" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^28.1.1 - jest-get-type: ^28.0.2 - pretty-format: ^28.1.3 - checksum: fa8583e0ccbe775714ce850b009be1b0f6b17a4b6759f33ff47adef27942ebc610dbbcc8a5f7cfb7f12b3b3b05afc9fb41d5f766674616025032ff1e4f9866e0 - languageName: node - linkType: hard - "jest-diff@npm:^29.2.0, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" @@ -31894,13 +31817,6 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^28.0.2": - version: 28.0.2 - resolution: "jest-get-type@npm:28.0.2" - checksum: 5281d7c89bc8156605f6d15784f45074f4548501195c26e9b188742768f72d40948252d13230ea905b5349038865a1a8eeff0e614cc530ff289dfc41fe843abd - languageName: node - linkType: hard - "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -31964,18 +31880,6 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-matcher-utils@npm:28.1.3" - dependencies: - chalk: ^4.0.0 - jest-diff: ^28.1.3 - jest-get-type: ^28.0.2 - pretty-format: ^28.1.3 - checksum: 6b34f0cf66f6781e92e3bec97bf27796bd2ba31121e5c5997218d9adba6deea38a30df5203937d6785b68023ed95cbad73663cc9aad6fb0cb59aeb5813a58daf - languageName: node - linkType: hard - "jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" @@ -31988,23 +31892,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-message-util@npm:28.1.3" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^28.1.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^28.1.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 1f266854166dcc6900d75a88b54a25225a2f3710d463063ff1c99021569045c35c7d58557b25447a17eb3a65ce763b2f9b25550248b468a9d4657db365f39e96 - languageName: node - linkType: hard - "jest-message-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-message-util@npm:29.7.0" @@ -32166,20 +32053,6 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-util@npm:28.1.3" - dependencies: - "@jest/types": ^28.1.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: fd6459742c941f070223f25e38a2ac0719aad92561591e9fb2a50d602a5d19d754750b79b4074327a42b00055662b95da3b006542ceb8b54309da44d4a62e721 - languageName: node - linkType: hard - "jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" @@ -33223,8 +33096,8 @@ __metadata: linkType: hard "knip@npm:^5.0.0": - version: 5.1.1 - resolution: "knip@npm:5.1.1" + version: 5.1.2 + resolution: "knip@npm:5.1.2" dependencies: "@ericcornelissen/bash-parser": 0.5.2 "@nodelib/fs.walk": 2.0.0 @@ -33253,7 +33126,7 @@ __metadata: typescript: ">=5.0.4" bin: knip: bin/knip.js - checksum: 33fd81860f9dc5b3ad58ca13c4874443c68d4dc4f07061bfd3d0fb2336b68271362d92e4a739a8d422d7de78fdd0beed470e4fa94c2a2e84c54ab1deac4f5f8f + checksum: ff27c3ffa20b188ac2bc7a84b6aff49016236fa41c57b4c6650e5dae0d292747159e08045aabf858d24195214a3421bef73651235530828c1d238a598f68b95f languageName: node linkType: hard @@ -35639,8 +35512,8 @@ __metadata: linkType: hard "msw@npm:^2.0.0, msw@npm:^2.0.8": - version: 2.2.4 - resolution: "msw@npm:2.2.4" + version: 2.2.7 + resolution: "msw@npm:2.2.7" dependencies: "@bundled-es-modules/cookie": ^2.0.0 "@bundled-es-modules/statuses": ^1.0.1 @@ -35666,7 +35539,7 @@ __metadata: optional: true bin: msw: cli/index.js - checksum: ce446caec9a95feb08a8ff6082e344c993a22aabdf378a91c5ba3b3a7848aa0bb67a9a65ffd2b3fe2cccd4217ce10690866ae6cf37222e4a8566f6f89b8b143d + checksum: 9a9c12a59fabe56634558a9831bae46a83c306cd828a903f0df4f6ca38724466e1f5b3b217737a787c20a30c713b83676a14bef69e22820da5805ab7381a5163 languageName: node linkType: hard @@ -38545,13 +38418,13 @@ __metadata: linkType: hard "postcss@npm:^8.1.0, postcss@npm:^8.4.27, postcss@npm:^8.4.33": - version: 8.4.35 - resolution: "postcss@npm:8.4.35" + version: 8.4.36 + resolution: "postcss@npm:8.4.36" dependencies: nanoid: ^3.3.7 picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da + source-map-js: ^1.1.0 + checksum: 1bb0f2bdfccd5a3ea0ed39700c09098f15501d38110208bfba2df5e3925e4ff7e9a4eaf8abb87bc692ae4d122d9aa0ec13bf4f4d8fd1ad8d8ceaa1f345e50ed1 languageName: node linkType: hard @@ -38749,18 +38622,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^28.0.0, pretty-format@npm:^28.1.3": - version: 28.1.3 - resolution: "pretty-format@npm:28.1.3" - dependencies: - "@jest/schemas": ^28.1.3 - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: e69f857358a3e03d271252d7524bec758c35e44680287f36c1cb905187fbc82da9981a6eb07edfd8a03bc3cbeebfa6f5234c13a3d5b59f2bbdf9b4c4053e0a7f - languageName: node - linkType: hard - "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -39597,6 +39458,16 @@ __metadata: languageName: node linkType: hard +"react-idle-timer@npm:5.7.2": + version: 5.7.2 + resolution: "react-idle-timer@npm:5.7.2" + peerDependencies: + react: ">=16" + react-dom: ">=16" + checksum: 6faf3cfa87c9d65ae7a87078a2d82db5b821936a45565a98d69e7341e4b4acd5610b1f26cf1a6809b5551e4c30357f2ab5ce729c4c33751f66cb9ce6072dfb02 + languageName: node + linkType: hard + "react-immutable-proptypes@npm:2.2.0": version: 2.2.0 resolution: "react-immutable-proptypes@npm:2.2.0" @@ -42118,10 +41989,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c +"source-map-js@npm:^1.1.0": + version: 1.1.0 + resolution: "source-map-js@npm:1.1.0" + checksum: 6ef39381cdf5451c3db406e4b0fa95657be3c35db76fe6df3be430174b2e6af3c0b57d9728328dc62a211ae6209a0295d6a26442a55d5fccbf7cf1211fffa80e languageName: node linkType: hard