Update tech-insights to backstage version 1.39.0 (#4036)

* Update tech-insights to backstage version 1.39.0

Signed-off-by: punkle <brian@roadie.io>

* fix tests and deduplicate deps

Signed-off-by: punkle <brian@roadie.io>

* remove diff to rbac file

Signed-off-by: punkle <brian@roadie.io>

* deduplicate

Signed-off-by: punkle <brian@roadie.io>

* remove differences to file

Signed-off-by: punkle <brian@roadie.io>

* remove changes to policies file

Signed-off-by: punkle <brian@roadie.io>

* add changeset

Signed-off-by: punkle <brian@roadie.io>

---------

Signed-off-by: punkle <brian@roadie.io>
This commit is contained in:
Brian Fletcher 2025-06-04 10:43:25 +01:00 committed by GitHub
parent 2c492c2852
commit a01ae4ebbe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
65 changed files with 1666 additions and 2304 deletions

View File

@ -0,0 +1,12 @@
---
'@backstage-community/plugin-tech-insights-backend-module-jsonfc': minor
'@backstage-community/plugin-tech-insights-maturity-common': minor
'@backstage-community/plugin-tech-insights-maturity': minor
'@backstage-community/plugin-tech-insights-backend': minor
'@backstage-community/plugin-tech-insights-common': minor
'@backstage-community/plugin-tech-insights-react': minor
'@backstage-community/plugin-tech-insights-node': minor
'@backstage-community/plugin-tech-insights': minor
---
Backstage version bump to v1.39.0

View File

@ -17,5 +17,5 @@ To start the Backstage App, run:
```sh
yarn install
yarn dev
yarn start
```

View File

@ -1,3 +1,3 @@
{
"version": "1.35.1"
"version": "1.39.0"
}

View File

@ -7,7 +7,7 @@
},
"scripts": {
"dev": "yarn workspaces foreach -A --include backend --include app --parallel -v -i run start",
"start": "yarn workspace app start",
"start": "backstage-cli repo start",
"start-backend": "yarn workspace backend start",
"build:backend": "yarn workspace backend build",
"tsc": "tsc",
@ -39,9 +39,9 @@
"directory": "workspaces/tech-insights"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/cli": "^0.32.1",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.13.0",
"@backstage/repo-tools": "^0.13.3",
"@changesets/cli": "^2.27.1",
"knip": "^5.27.4",
"node-gyp": "^10.0.0",

View File

@ -20,29 +20,29 @@
},
"dependencies": {
"@backstage-community/plugin-tech-insights": "workspace:^",
"@backstage/app-defaults": "^1.5.16",
"@backstage/catalog-model": "^1.7.3",
"@backstage/cli": "^0.29.6",
"@backstage/core-app-api": "^1.15.4",
"@backstage/core-components": "^0.16.3",
"@backstage/core-plugin-api": "^1.10.3",
"@backstage/integration-react": "^1.2.3",
"@backstage/plugin-api-docs": "^0.12.3",
"@backstage/plugin-catalog": "^1.26.1",
"@backstage/plugin-catalog-common": "^1.1.3",
"@backstage/plugin-catalog-graph": "^0.4.15",
"@backstage/plugin-catalog-import": "^0.12.9",
"@backstage/plugin-catalog-react": "^1.15.1",
"@backstage/plugin-org": "^0.6.35",
"@backstage/plugin-permission-react": "^0.4.30",
"@backstage/plugin-scaffolder": "^1.27.5",
"@backstage/plugin-search": "^1.4.22",
"@backstage/plugin-search-react": "^1.8.5",
"@backstage/plugin-techdocs": "^1.12.2",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.20",
"@backstage/plugin-techdocs-react": "^1.2.13",
"@backstage/plugin-user-settings": "^0.8.18",
"@backstage/theme": "^0.6.3",
"@backstage/app-defaults": "^1.6.2",
"@backstage/catalog-model": "^1.7.4",
"@backstage/cli": "^0.32.1",
"@backstage/core-app-api": "^1.17.0",
"@backstage/core-components": "^0.17.2",
"@backstage/core-plugin-api": "^1.10.7",
"@backstage/integration-react": "^1.2.7",
"@backstage/plugin-api-docs": "^0.12.7",
"@backstage/plugin-catalog": "^1.30.0",
"@backstage/plugin-catalog-common": "^1.1.4",
"@backstage/plugin-catalog-graph": "^0.4.19",
"@backstage/plugin-catalog-import": "^0.13.0",
"@backstage/plugin-catalog-react": "^1.18.0",
"@backstage/plugin-org": "^0.6.39",
"@backstage/plugin-permission-react": "^0.4.34",
"@backstage/plugin-scaffolder": "^1.31.0",
"@backstage/plugin-search": "^1.4.26",
"@backstage/plugin-search-react": "^1.9.0",
"@backstage/plugin-techdocs": "^1.12.6",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.24",
"@backstage/plugin-techdocs-react": "^1.2.17",
"@backstage/plugin-user-settings": "^0.8.22",
"@backstage/theme": "^0.6.6",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"history": "^5.0.0",
@ -53,7 +53,7 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/test-utils": "^1.7.4",
"@backstage/test-utils": "^1.7.8",
"@playwright/test": "^1.32.3",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { render, waitFor } from '@testing-library/react';
import App from './App';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { Navigate, Route } from 'react-router-dom';
import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs';
import {

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { makeStyles } from '@material-ui/core';
const useStyles = makeStyles({

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { makeStyles } from '@material-ui/core';
const useStyles = makeStyles({

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, { PropsWithChildren } from 'react';
import { PropsWithChildren } from 'react';
import { makeStyles } from '@material-ui/core';
import HomeIcon from '@material-ui/icons/Home';
import ExtensionIcon from '@material-ui/icons/Extension';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { Button, Grid } from '@material-ui/core';
import {
EntityApiDefinitionCard,

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { makeStyles, Theme, Grid, Paper } from '@material-ui/core';
import { CatalogSearchResultListItem } from '@backstage/plugin-catalog';

View File

@ -14,7 +14,6 @@
* limitations under the License.
*/
import '@backstage/cli/asset-types';
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';

View File

@ -25,28 +25,28 @@
"@backstage-community/plugin-tech-insights-backend-module-jsonfc": "workspace:^",
"@backstage-community/plugin-tech-insights-node": "workspace:^",
"@backstage/backend-defaults": "^0.10.0",
"@backstage/backend-plugin-api": "^1.1.1",
"@backstage/catalog-client": "^1.9.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/backend-plugin-api": "^1.3.1",
"@backstage/catalog-client": "^1.10.0",
"@backstage/catalog-model": "^1.7.4",
"@backstage/config": "^1.3.2",
"@backstage/plugin-app-backend": "^0.4.4",
"@backstage/plugin-auth-backend": "^0.24.2",
"@backstage/plugin-auth-backend-module-github-provider": "^0.2.4",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.4",
"@backstage/plugin-auth-node": "^0.5.6",
"@backstage/plugin-catalog-backend": "^1.30.0",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.4",
"@backstage/plugin-permission-backend": "^0.5.53",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.4",
"@backstage/plugin-permission-common": "^0.8.4",
"@backstage/plugin-permission-node": "^0.8.7",
"@backstage/plugin-proxy-backend": "^0.5.10",
"@backstage/plugin-scaffolder-backend": "^1.29.0",
"@backstage/plugin-search-backend": "^1.8.1",
"@backstage/plugin-search-backend-module-catalog": "^0.3.0",
"@backstage/plugin-search-backend-module-techdocs": "^0.3.5",
"@backstage/plugin-search-backend-node": "^1.3.7",
"@backstage/plugin-techdocs-backend": "^1.11.5",
"@backstage/plugin-app-backend": "^0.5.2",
"@backstage/plugin-auth-backend": "^0.25.0",
"@backstage/plugin-auth-backend-module-github-provider": "^0.3.3",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.8",
"@backstage/plugin-auth-node": "^0.6.3",
"@backstage/plugin-catalog-backend": "^2.0.0",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.8",
"@backstage/plugin-permission-backend": "^0.7.0",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.8",
"@backstage/plugin-permission-common": "^0.9.0",
"@backstage/plugin-permission-node": "^0.10.0",
"@backstage/plugin-proxy-backend": "^0.6.2",
"@backstage/plugin-scaffolder-backend": "^1.33.0",
"@backstage/plugin-search-backend": "^2.0.2",
"@backstage/plugin-search-backend-module-catalog": "^0.3.4",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.2",
"@backstage/plugin-search-backend-node": "^1.3.11",
"@backstage/plugin-techdocs-backend": "^2.0.2",
"app": "link:../app",
"better-sqlite3": "^9.0.0",
"dockerode": "^3.3.1",
@ -55,7 +55,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/cli": "^0.32.1",
"@types/dockerode": "^3.3.0",
"@types/express": "^4.17.6",
"@types/express-serve-static-core": "^4.17.5",

View File

@ -41,7 +41,7 @@
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage-community/plugin-tech-insights-node": "workspace:^",
"@backstage/backend-plugin-api": "^1.1.1",
"@backstage/backend-plugin-api": "^1.3.1",
"@backstage/config": "^1.3.2",
"@backstage/errors": "^1.2.7",
"@backstage/types": "^1.2.1",
@ -51,8 +51,8 @@
"luxon": "^3.0.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.2.1",
"@backstage/cli": "^0.29.6",
"@backstage/backend-test-utils": "^1.5.0",
"@backstage/cli": "^0.32.1",
"@types/lodash": "^4.14.151"
},
"configSchema": "config.json"

View File

@ -50,14 +50,14 @@
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage-community/plugin-tech-insights-node": "workspace:^",
"@backstage/backend-defaults": "^0.7.0",
"@backstage/backend-plugin-api": "^1.1.1",
"@backstage/backend-test-utils": "^1.3.0",
"@backstage/catalog-client": "^1.9.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/backend-defaults": "^0.10.0",
"@backstage/backend-plugin-api": "^1.3.1",
"@backstage/backend-test-utils": "^1.5.0",
"@backstage/catalog-client": "^1.10.0",
"@backstage/catalog-model": "^1.7.4",
"@backstage/config": "^1.3.2",
"@backstage/errors": "^1.2.7",
"@backstage/plugin-permission-common": "^0.8.4",
"@backstage/plugin-permission-common": "^0.9.0",
"@backstage/types": "^1.2.1",
"@types/express": "^4.17.6",
"@types/luxon": "^3.0.0",
@ -72,7 +72,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/cli": "^0.32.1",
"@types/lodash": "^4.14.151",
"@types/semver": "^7.3.8",
"@types/supertest": "^6.0.0",

View File

@ -46,6 +46,6 @@ describe('techInsightsPlugin', () => {
],
});
expect(httpRouterMock.use).toHaveBeenCalledTimes(2);
expect(httpRouterMock.use).toHaveBeenCalledTimes(4);
});
});

View File

@ -137,8 +137,16 @@ describe('FactRetrieverEngine', () => {
const logger = mockServices.logger.mock();
const urlReader = mockServices.urlReader.mock();
const lifecycle = mockServices.lifecycle.mock();
const rootLifecycle = mockServices.rootLifecycle.mock();
const httpRouter = mockServices.httpRouter.mock();
const database = manager.forPlugin('tech-insights', { logger, lifecycle });
const scheduler = DefaultSchedulerService.create({ database, logger });
const scheduler = DefaultSchedulerService.create({
database,
logger,
rootLifecycle,
httpRouter,
pluginMetadata: { getId: () => 'plugin-id' },
});
return await DefaultFactRetrieverEngine.create({
factRetrieverContext: {
logger,

View File

@ -37,11 +37,19 @@ const setupRouter = async (
});
const logger = mockServices.logger.mock();
const urlReader = mockServices.urlReader.mock();
const rootLifecycle = mockServices.rootLifecycle.mock();
const httpRouter = mockServices.httpRouter.mock();
const techInsightsContext = await buildTechInsightsContext({
database,
logger,
factRetrievers: [],
scheduler: DefaultSchedulerService.create({ database, logger }),
scheduler: DefaultSchedulerService.create({
database,
logger,
rootLifecycle,
httpRouter,
pluginMetadata: { getId: () => 'plugin-id' },
}),
config: ConfigReader.fromConfigs([]),
discovery: {
getBaseUrl: (_: string) => Promise.resolve('http://mock.url'),

View File

@ -47,7 +47,15 @@ describe('buildTechInsightsContext', () => {
getBaseUrl: (_: string) => Promise.resolve('http://mock.url'),
getExternalBaseUrl: (_: string) => Promise.resolve('http://mock.url'),
};
const scheduler = DefaultSchedulerService.create({ database, logger });
const rootLifecycle = mockServices.rootLifecycle.mock();
const httpRouter = mockServices.httpRouter.mock();
const scheduler = DefaultSchedulerService.create({
database,
logger,
rootLifecycle,
httpRouter,
pluginMetadata: { getId: () => 'plugin-id' },
});
beforeEach(() => {
jest.clearAllMocks();

View File

@ -59,9 +59,9 @@
"test": "backstage-cli package test"
},
"dependencies": {
"@backstage/backend-plugin-api": "^1.1.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/core-plugin-api": "^1.10.3",
"@backstage/backend-plugin-api": "^1.3.1",
"@backstage/catalog-model": "^1.7.4",
"@backstage/core-plugin-api": "^1.10.7",
"@backstage/errors": "^1.2.7",
"@backstage/types": "^1.2.1",
"@types/luxon": "^3.0.0",
@ -70,6 +70,6 @@
"qs": "^6.12.3"
},
"devDependencies": {
"@backstage/cli": "^0.29.6"
"@backstage/cli": "^0.32.1"
}
}

View File

@ -53,11 +53,11 @@
},
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage/repo-tools": "^0.13.0",
"@backstage/repo-tools": "^0.13.3",
"msw": "2.7.0"
},
"devDependencies": {
"@backstage/cli": "^0.29.6"
"@backstage/cli": "^0.32.1"
},
"files": [
"dist"

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { createDevApp } from '@backstage/dev-utils';
import { techInsightsMaturityPlugin, MaturityPage } from '../src/plugin';

View File

@ -55,14 +55,14 @@
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage-community/plugin-tech-insights-maturity-common": "workspace:^",
"@backstage-community/plugin-tech-insights-react": "workspace:^",
"@backstage/catalog-client": "^1.9.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/core-components": "^0.16.3",
"@backstage/core-plugin-api": "^1.10.3",
"@backstage/plugin-catalog-react": "^1.15.1",
"@backstage/repo-tools": "^0.13.0",
"@backstage/theme": "^0.6.3",
"@backstage/version-bridge": "^1.0.10",
"@backstage/catalog-client": "^1.10.0",
"@backstage/catalog-model": "^1.7.4",
"@backstage/core-components": "^0.17.2",
"@backstage/core-plugin-api": "^1.10.7",
"@backstage/plugin-catalog-react": "^1.18.0",
"@backstage/repo-tools": "^0.13.3",
"@backstage/theme": "^0.6.6",
"@backstage/version-bridge": "^1.0.11",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
@ -81,10 +81,10 @@
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/core-app-api": "^1.15.4",
"@backstage/dev-utils": "^1.1.6",
"@backstage/test-utils": "^1.7.4",
"@backstage/cli": "^0.32.1",
"@backstage/core-app-api": "^1.17.0",
"@backstage/dev-utils": "^1.1.10",
"@backstage/test-utils": "^1.7.8",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.0.0",

View File

@ -3,8 +3,6 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
/// <reference types="react" />
import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { BulkMaturityCheckResponse } from '@backstage-community/plugin-tech-insights-maturity-common';
@ -13,7 +11,7 @@ import { CatalogApi } from '@backstage/catalog-client';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { IdentityApi } from '@backstage/core-plugin-api';
import { JSX as JSX_2 } from 'react';
import { JSX as JSX_2 } from 'react/jsx-runtime';
import { MaturityRank } from '@backstage-community/plugin-tech-insights-maturity-common';
import { MaturityScore } from '@backstage-community/plugin-tech-insights-maturity-common';
import { MaturitySummary } from '@backstage-community/plugin-tech-insights-maturity-common';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { Route, Routes } from 'react-router-dom';
import { MaturityScorePage } from './components/MaturityScorePage';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { Route, Routes } from 'react-router-dom';
import { MaturitySummaryPage } from './components/MaturitySummaryPage';

View File

@ -22,7 +22,7 @@ import CircularProgress from '@mui/material/CircularProgress';
import { styled } from '@mui/material/styles';
import { useDrawingArea } from '@mui/x-charts/hooks';
import { PieChart } from '@mui/x-charts/PieChart';
import React from 'react';
import type { ReactNode } from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { maturityApiRef } from '../../api';
import { getRankColor } from '../../helpers/utils';
@ -43,7 +43,7 @@ const StyledText = styled('text')(({ theme }) => ({
fontSize: 20,
}));
function PieCenterLabel({ children }: { children: React.ReactNode }) {
function PieCenterLabel({ children }: { children: ReactNode }) {
const { width, height, left, top } = useDrawingArea();
return (
<StyledText x={left + width / 2} y={top + height / 2}>

View File

@ -15,7 +15,6 @@
*/
import { CatalogApi, catalogApiRef } from '@backstage/plugin-catalog-react';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
import React from 'react';
import { MaturityPage } from './MaturityPage';
import { MaturityApi, maturityApiRef } from '../../api';

View File

@ -17,7 +17,6 @@ import { Content, Header, Page } from '@backstage/core-components';
import { useApi } from '@backstage/core-plugin-api';
import { catalogApiRef } from '@backstage/plugin-catalog-react';
import Grid from '@mui/material/Grid';
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { MaturityChartCard } from '../MaturityChartCard';

View File

@ -22,7 +22,7 @@ import Avatar from '@mui/material/Avatar';
import Chip from '@mui/material/Chip';
import Tooltip from '@mui/material/Tooltip';
import { Circle } from 'rc-progress';
import React from 'react';
import type { JSX } from 'react';
import getRankImg from '../../helpers/Rank';
import { getNextRankColor, pluralize } from '../../helpers/utils';
import { MaturityLink } from '../../helpers/MaturityLink';
@ -33,7 +33,7 @@ const ChipWrapper = ({
size,
isMaxRank,
}: {
children: React.JSX.Element;
children: JSX.Element;
rank: Rank;
size: number;
isMaxRank?: boolean;

View File

@ -18,7 +18,6 @@ import {
MaturitySummary,
Rank,
} from '@backstage-community/plugin-tech-insights-maturity-common';
import React from 'react';
import { MaturityRankInfoCard } from './MaturityRankInfoCard';
describe('<MaturityRankInfoCard />', () => {

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { Fragment } from 'react';
import { InfoCard } from '@backstage/core-components';
import {
MaturitySummary,
@ -85,10 +85,10 @@ export const MaturityRankInfoCard = ({ summary }: Props) => {
return (
<InfoCard
title={
<React.Fragment>
<Fragment>
Maturity Rank
<MaturityHelp />
</React.Fragment>
</Fragment>
}
>
<CardContent>

View File

@ -22,7 +22,6 @@ import {
MaturityRank,
Rank,
} from '@backstage-community/plugin-tech-insights-maturity-common';
import React from 'react';
import { MaturityRankWidget } from './MaturityRankWidget';
import { MaturityApi, maturityApiRef } from '../../api';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { Entity } from '@backstage/catalog-model';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { EmptyState, InfoCard, Progress } from '@backstage/core-components';

View File

@ -36,7 +36,8 @@ import Stack from '@mui/material/Stack';
import Tooltip from '@mui/material/Tooltip';
import Typography from '@mui/material/Typography';
import { makeStyles, styled } from '@mui/styles';
import React from 'react';
import type { SyntheticEvent } from 'react';
import { useState } from 'react';
import { MaturityRankAvatar } from '../MaturityRankAvatar';
import { InsightFacts } from '@backstage-community/plugin-tech-insights-common';
@ -92,14 +93,13 @@ const MaturityCheckTableRow = ({
checkResult: MaturityCheckResult;
updated: string;
}) => {
const [expanded, setExpanded] = React.useState<boolean>(
const [expanded, setExpanded] = useState<boolean>(
checkResult.result === false,
);
const handleChange =
() => (_event: React.SyntheticEvent, newExpanded: boolean) => {
setExpanded(newExpanded);
};
const handleChange = () => (_event: SyntheticEvent, newExpanded: boolean) => {
setExpanded(newExpanded);
};
const useStyles = makeStyles({
check: {
@ -207,13 +207,10 @@ export const MaturityCheckTable = ({
facts,
}: Props) => {
// Expand only the next rank Category needed to level up
const [expanded, setExpanded] = React.useState<boolean>(
rank.rank + 1 === category,
);
const handleChange =
() => (_event: React.SyntheticEvent, newExpanded: boolean) => {
setExpanded(newExpanded);
};
const [expanded, setExpanded] = useState<boolean>(rank.rank + 1 === category);
const handleChange = () => (_event: SyntheticEvent, newExpanded: boolean) => {
setExpanded(newExpanded);
};
if (checks.length === 0) return <></>;

View File

@ -18,7 +18,6 @@ import LinearProgress from '@mui/material/LinearProgress';
import Typography from '@mui/material/Typography';
import Stack from '@mui/material/Stack';
import React from 'react';
import { AreaProgress } from '../../helpers/AreaProgress';
type Props = {

View File

@ -22,7 +22,6 @@ import {
MaturitySummary,
Rank,
} from '@backstage-community/plugin-tech-insights-maturity-common';
import React from 'react';
import { MaturitySummaryInfoCard } from './MaturitySummaryInfoCard';
import { MaturityApi, maturityApiRef } from '../../api';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { InfoCard } from '@backstage/core-components';

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { useApi } from '@backstage/core-plugin-api';

View File

@ -32,7 +32,6 @@ import {
Rank,
} from '@backstage-community/plugin-tech-insights-maturity-common';
import React from 'react';
import { MaturitySummaryTable } from './MaturitySummaryTable';
import { MaturityApi, maturityApiRef } from '../../api';

View File

@ -27,7 +27,6 @@ import { useTheme } from '@mui/material/styles';
import Tooltip from '@mui/material/Tooltip';
import Typography from '@mui/material/Typography';
import { Circle, Line } from 'rc-progress';
import React from 'react';
import useAsyncRetry from 'react-use/lib/useAsync';
import { maturityApiRef } from '../../api';

View File

@ -23,7 +23,6 @@ import LinearProgress from '@mui/material/LinearProgress';
import Stack from '@mui/material/Stack';
import Tooltip from '@mui/material/Tooltip';
import { Line } from 'rc-progress';
import React from 'react';
import { getNextRankColor, pluralize } from './utils';
import { MaturityRankAvatar } from '../components/MaturityRankAvatar';

View File

@ -16,7 +16,6 @@
import { Link } from '@backstage/core-components';
import Tooltip from '@mui/material/Tooltip';
import HelpOutline from '@mui/icons-material/HelpOutline';
import React from 'react';
export const MaturityHelp = () => (
<Tooltip title="Click here to learn more about Maturity!">

View File

@ -22,7 +22,7 @@ import { Link } from '@backstage/core-components';
import { createRouteRef, useRouteRef } from '@backstage/core-plugin-api';
import { EntityDisplayName } from '@backstage/plugin-catalog-react';
import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';
import React, { PropsWithChildren } from 'react';
import { PropsWithChildren } from 'react';
const entityRouteRef = getOrCreateGlobalSingleton(
'catalog:entity-route-ref',

View File

@ -46,16 +46,16 @@
},
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage/backend-plugin-api": "^1.1.1",
"@backstage/catalog-model": "^1.7.3",
"@backstage/backend-plugin-api": "^1.3.1",
"@backstage/catalog-model": "^1.7.4",
"@backstage/config": "^1.3.2",
"@backstage/types": "^1.2.1",
"@types/luxon": "^3.0.0",
"luxon": "^3.0.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.2.1",
"@backstage/cli": "^0.29.6",
"@backstage/backend-test-utils": "^1.5.0",
"@backstage/cli": "^0.32.1",
"msw": "^2.0.0"
}
}

View File

@ -40,8 +40,8 @@
},
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage/catalog-model": "^1.7.3",
"@backstage/core-plugin-api": "^1.10.3",
"@backstage/catalog-model": "^1.7.4",
"@backstage/core-plugin-api": "^1.10.7",
"@backstage/types": "^1.2.1",
"@material-ui/core": "^4.9.13",
"@material-ui/icons": "^4.9.1",
@ -51,8 +51,8 @@
"react": "^16.13.1 || ^17.0.0 || ^18.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/test-utils": "^1.7.4",
"@backstage/cli": "^0.32.1",
"@backstage/test-utils": "^1.7.8",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^14.0.0",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0"

View File

@ -15,22 +15,23 @@ import { Entity } from '@backstage/catalog-model';
import { FactSchema } from '@backstage-community/plugin-tech-insights-common';
import { IdentityApi } from '@backstage/core-plugin-api';
import { InsightFacts } from '@backstage-community/plugin-tech-insights-common';
import { JSX as JSX_2 } from 'react/jsx-runtime';
import { MouseEventHandler } from 'react';
import { PropsWithChildren } from 'react';
import { default as React_2 } from 'react';
import type { ReactElement } from 'react';
import { ReactNode } from 'react';
import { TechInsightsClient as TechInsightsClient_2 } from '@backstage-community/plugin-tech-insights-common/client';
// @public
export const BooleanCheck: (props: {
checkResult: CheckResult;
}) => React_2.JSX.Element;
}) => JSX_2.Element;
// @public
export type CheckResultRenderer = {
type: string;
component: (check: CheckResult) => React_2.ReactElement;
description?: (check: CheckResult) => string | React_2.ReactElement;
component: (check: CheckResult) => ReactElement;
description?: (check: CheckResult) => string | ReactElement;
isFailed?: (check: CheckResult) => boolean;
};
@ -43,7 +44,7 @@ export const jsonRulesEngineCheckResultRenderer: CheckResultRenderer;
// @public
export const ResultCheckIcon: <P extends ResultCheckIconBaseComponentProps>(
props: ResultCheckIconProps<P>,
) => React_2.JSX.Element;
) => JSX_2.Element;
// @public (undocumented)
export type ResultCheckIconBaseComponentProps = PropsWithChildren<{
@ -65,12 +66,12 @@ export interface ResultCheckIconProps<
// @public
export const ResultLinksMenu: (
props: React_2.PropsWithChildren<{
props: PropsWithChildren<{
result: CheckResult;
entity?: Entity | undefined;
setMenu(opener: ResultLinksMenuInfo | undefined): void;
}>,
) => React_2.JSX.Element | null;
) => JSX_2.Element | null;
// @public
export type ResultLinksMenuInfo = {

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import CheckCircleOutline from '@material-ui/icons/CheckCircleOutline';
import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';
import { CheckResult } from '@backstage-community/plugin-tech-insights-common';

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
import React from 'react';
import type { ReactElement } from 'react';
import { CheckResult } from '@backstage-community/plugin-tech-insights-common';
import { BooleanCheck, isBooleanCheckFailed } from './BooleanCheck';
@ -25,8 +25,8 @@ import { BooleanCheck, isBooleanCheckFailed } from './BooleanCheck';
*/
export type CheckResultRenderer = {
type: string;
component: (check: CheckResult) => React.ReactElement;
description?: (check: CheckResult) => string | React.ReactElement;
component: (check: CheckResult) => ReactElement;
description?: (check: CheckResult) => string | ReactElement;
isFailed?: (check: CheckResult) => boolean;
};

View File

@ -13,7 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, {
import type { ReactElement } from 'react';
import {
ElementType,
MouseEventHandler,
PropsWithChildren,
@ -118,7 +120,7 @@ export const ResultCheckIcon = <P extends ResultCheckIconBaseComponentProps>(
menu?.open(event.currentTarget);
};
const wrapActions = (inner: React.ReactElement): ReactNode => {
const wrapActions = (inner: ReactElement): ReactNode => {
if (!menu) {
if (component) {
const Component =

View File

@ -14,7 +14,8 @@
* limitations under the License.
*/
import React, {
import {
useState,
PropsWithChildren,
useCallback,
useEffect,
@ -73,9 +74,7 @@ export const ResultLinksMenu = (
entity ? stringifyEntityRef(entity) : 'unknown'
}`;
const [anchorEl, setAnchorEl] = React.useState<Element | undefined>(
undefined,
);
const [anchorEl, setAnchorEl] = useState<Element | undefined>(undefined);
useEffect(() => {
if (links.length === 0) {

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { createDevApp } from '@backstage/dev-utils';
import {
techInsightsPlugin,

View File

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import {
BulkCheckResponse,
CheckResult,

View File

@ -44,11 +44,11 @@
"dependencies": {
"@backstage-community/plugin-tech-insights-common": "workspace:^",
"@backstage-community/plugin-tech-insights-react": "workspace:^",
"@backstage/catalog-model": "^1.7.3",
"@backstage/core-components": "^0.16.3",
"@backstage/core-plugin-api": "^1.10.3",
"@backstage/catalog-model": "^1.7.4",
"@backstage/core-components": "^0.17.2",
"@backstage/core-plugin-api": "^1.10.7",
"@backstage/errors": "^1.2.7",
"@backstage/plugin-catalog-react": "^1.15.1",
"@backstage/plugin-catalog-react": "^1.18.0",
"@backstage/types": "^1.2.1",
"@material-table/exporters": "^1.2.19",
"@material-ui/core": "^4.12.2",
@ -58,8 +58,8 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.29.6",
"@backstage/dev-utils": "^1.1.6",
"@backstage/cli": "^0.32.1",
"@backstage/dev-utils": "^1.1.10",
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^15.0.0",

View File

@ -13,7 +13,7 @@ import { CheckResultRenderer } from '@backstage-community/plugin-tech-insights-r
import { Entity } from '@backstage/catalog-model';
import { InsightFacts } from '@backstage-community/plugin-tech-insights-common';
import { jsonRulesEngineCheckResultRenderer } from '@backstage-community/plugin-tech-insights-react';
import { JSX as JSX_2 } from 'react';
import { JSX as JSX_2 } from 'react/jsx-runtime';
import { PropsWithChildren } from 'react';
import { ReactNode } from 'react';
import { ResultCheckIconBaseComponentProps } from '@backstage-community/plugin-tech-insights-react';

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
import React, { useMemo } from 'react';
import { useMemo } from 'react';
import useAsync from 'react-use/esm/useAsync';
import { ErrorPanel, Progress } from '@backstage/core-components';
import { useApi } from '@backstage/core-plugin-api';

View File

@ -14,7 +14,6 @@
* limitations under the License.
*/
import React from 'react';
import useAsync from 'react-use/esm/useAsync';
import { Content, Page, Progress } from '@backstage/core-components';
import { useApi } from '@backstage/core-plugin-api';

View File

@ -14,7 +14,9 @@
* limitations under the License.
*/
import React, { ReactNode } from 'react';
import { ReactNode } from 'react';
import * as React from 'react';
import Grid from '@material-ui/core/Grid';
import Typography from '@material-ui/core/Typography';
import { makeStyles } from '@material-ui/core/styles';

View File

@ -14,7 +14,6 @@
* limitations under the License.
*/
import React from 'react';
import { useApi } from '@backstage/core-plugin-api';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';

View File

@ -14,7 +14,6 @@
* limitations under the License.
*/
import React from 'react';
import { Check } from '@backstage-community/plugin-tech-insights-common';
import Typography from '@material-ui/core/Typography';
import Autocomplete from '@material-ui/lab/Autocomplete';

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
import React, { useMemo, useState } from 'react';
import { useMemo, useState } from 'react';
import {
Content,
ErrorPanel,

View File

@ -13,6 +13,7 @@
"rootDir": ".",
"lib": ["DOM", "DOM.Iterable", "ScriptHost", "ES2022"],
"target": "ES2022",
"useUnknownInCatchVariables": false
"useUnknownInCatchVariables": false,
"jsx": "react-jsx"
}
}

File diff suppressed because it is too large Load Diff