From e4e92abbda91e10af3a091f844bd847eb2b3c469 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 23 Jun 2022 10:41:16 -0700 Subject: [PATCH 001/239] feat(dynatrace): improved look when problems table is empty Signed-off-by: Isaiah Thiessen --- .../src/components/EmptyState/EmptyState.tsx | 41 +++++++++++++++++++ .../src/components/EmptyState/index.ts | 17 ++++++++ .../Problems/ProblemsList/ProblemsList.tsx | 13 +++++- .../Problems/ProblemsTable/ProblemsTable.tsx | 1 - 4 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 plugins/dynatrace/src/components/EmptyState/EmptyState.tsx create mode 100644 plugins/dynatrace/src/components/EmptyState/index.ts diff --git a/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx b/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx new file mode 100644 index 0000000000..ab6eecdb7e --- /dev/null +++ b/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx @@ -0,0 +1,41 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Grid, Typography } from '@material-ui/core'; +import EmptyStateImage from '../../assets/emptystate.svg'; + +export const EmptyState = ({ message }) => { + return ( + + + {message} + + + EmptyState + + + ); +}; diff --git a/plugins/dynatrace/src/components/EmptyState/index.ts b/plugins/dynatrace/src/components/EmptyState/index.ts new file mode 100644 index 0000000000..0037560be4 --- /dev/null +++ b/plugins/dynatrace/src/components/EmptyState/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { EmptyState } from './EmptyState'; diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index ac69abf93e..9922fb0f67 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -20,6 +20,8 @@ import Alert from '@material-ui/lab/Alert'; import { useApi } from '@backstage/core-plugin-api'; import { ProblemsTable } from '../ProblemsTable'; import { dynatraceApiRef } from '../../../api'; +import { EmptyState } from '../../EmptyState'; +import { InfoCard } from '@backstage/core-components'; type ProblemsListProps = { dynatraceEntityId: string; @@ -38,6 +40,13 @@ export const ProblemsList = (props: ProblemsListProps) => { } else if (error) { return {error.message}; } - if (!problems) return
Nothing to report :)
; - return ; + return ( + + {value?.totalCount ? ( + + ) : ( + + )} + + ); }; diff --git a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx index 8e3d330c37..c04eb62beb 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx @@ -75,7 +75,6 @@ export const ProblemsTable = ({ problems }: ProblemsTableProps) => { return ( { From 3e9b0cbcd95fc1a9c9a38254455ed1e2b43bc9fe Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 23 Jun 2022 12:45:17 -0700 Subject: [PATCH 002/239] feat: pass down dynatraceBaseUrl as prop Signed-off-by: Isaiah Thiessen --- .../Problems/ProblemsList/ProblemsList.tsx | 17 ++++++++++++++--- .../Problems/ProblemsTable/ProblemsTable.tsx | 8 +++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 9922fb0f67..fa49ef91d1 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -25,10 +25,11 @@ import { InfoCard } from '@backstage/core-components'; type ProblemsListProps = { dynatraceEntityId: string; + dynatraceBaseUrl: string; }; export const ProblemsList = (props: ProblemsListProps) => { - const { dynatraceEntityId } = props; + const { dynatraceEntityId, dynatraceBaseUrl } = props; const dynatraceApi = useApi(dynatraceApiRef); const { value, loading, error } = useAsync(async () => { return dynatraceApi.getDynatraceProblems(dynatraceEntityId); @@ -41,9 +42,19 @@ export const ProblemsList = (props: ProblemsListProps) => { return {error.message}; } return ( - + {value?.totalCount ? ( - + ) : ( )} diff --git a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx index c04eb62beb..a9c474d863 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx @@ -17,17 +17,15 @@ import React from 'react'; import { Table, TableColumn } from '@backstage/core-components'; import { DynatraceProblem } from '../../../api/DynatraceApi'; import { ProblemStatus } from '../ProblemStatus'; -import { configApiRef } from '@backstage/core-plugin-api'; -import { useApi } from '@backstage/core-plugin-api'; import { Link } from '@material-ui/core'; type ProblemsTableProps = { problems: DynatraceProblem[]; + dynatraceBaseUrl: string; }; -export const ProblemsTable = ({ problems }: ProblemsTableProps) => { - const configApi = useApi(configApiRef); - const dynatraceBaseUrl = configApi.getString('dynatrace.baseUrl'); +export const ProblemsTable = (props: ProblemsTableProps) => { + const { problems, dynatraceBaseUrl } = props; const columns: TableColumn[] = [ { title: 'Title', From 4e34828773234749fc9fbee91353dee2928e6cf7 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 23 Jun 2022 12:46:27 -0700 Subject: [PATCH 003/239] feat(dynatrace): add view recent synthetic monitor activity Signed-off-by: Isaiah Thiessen --- microsite/data/plugins/dynatrace.yaml | 2 +- plugins/dynatrace/src/api/DynatraceApi.ts | 20 +++++ plugins/dynatrace/src/api/DynatraceClient.ts | 18 +++- plugins/dynatrace/src/assets/emptystate.svg | 1 + .../components/DynatraceTab/DynatraceTab.tsx | 35 ++++++-- .../components/EmptyState/EmptyState.test.tsx | 15 ++++ .../SyntheticsCard/SyntheticsCard.test.tsx | 18 ++++ .../SyntheticsCard/SyntheticsCard.tsx | 85 +++++++++++++++++++ .../Synthetics/SyntheticsCard/index.ts | 16 ++++ plugins/dynatrace/src/constants.ts | 2 + 10 files changed, 200 insertions(+), 12 deletions(-) create mode 100644 plugins/dynatrace/src/assets/emptystate.svg create mode 100644 plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsCard/index.ts diff --git a/microsite/data/plugins/dynatrace.yaml b/microsite/data/plugins/dynatrace.yaml index 3ab85ae1eb..f204c4105c 100644 --- a/microsite/data/plugins/dynatrace.yaml +++ b/microsite/data/plugins/dynatrace.yaml @@ -3,7 +3,7 @@ title: Dynatrace author: TELUS authorUrl: https://github.com/telus category: Monitoring -description: View monitoring info from dynatrace for services in your software catalog. +description: View monitoring info from Dynatrace for services in your software catalog. documentation: https://github.com/backstage/backstage/tree/master/plugins/dynatrace iconUrl: img/dynatrace.svg npmPackageName: '@backstage/plugin-dynatrace' diff --git a/plugins/dynatrace/src/api/DynatraceApi.ts b/plugins/dynatrace/src/api/DynatraceApi.ts index 1865b20363..8993860e61 100644 --- a/plugins/dynatrace/src/api/DynatraceApi.ts +++ b/plugins/dynatrace/src/api/DynatraceApi.ts @@ -35,8 +35,25 @@ export type DynatraceProblem = { affectedEntities: Array; }; +type SyntheticRequestResults = { + startTimestamp: number; +}; + +export type DynatraceSyntheticResults = { + monitorId: string; + locationsExecutionResults: [ + { + locationId: number; + executionId: string; + requestResults: Array; + }, + ]; +}; + export interface DynatraceProblems { problems: Array; + totalCount: number; + pageSize: number; } export const dynatraceApiRef = createApiRef({ @@ -47,4 +64,7 @@ export type DynatraceApi = { getDynatraceProblems( dynatraceEntityId: string, ): Promise; + getDynatraceSyntheticFailures( + syntheticId: string, + ): Promise; }; diff --git a/plugins/dynatrace/src/api/DynatraceClient.ts b/plugins/dynatrace/src/api/DynatraceClient.ts index 27476ddbac..728f94de7b 100644 --- a/plugins/dynatrace/src/api/DynatraceClient.ts +++ b/plugins/dynatrace/src/api/DynatraceClient.ts @@ -13,7 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { DynatraceProblems, DynatraceApi } from './DynatraceApi'; +import { + DynatraceProblems, + DynatraceApi, + DynatraceSyntheticResults, +} from './DynatraceApi'; import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; export class DynatraceClient implements DynatraceApi { @@ -52,11 +56,21 @@ export class DynatraceClient implements DynatraceApi { ); } + async getDynatraceSyntheticFailures( + syntheticId: string, + ): Promise { + if (!syntheticId) { + throw new Error('Dynatrace synthetic Id is required'); + } + + return this.callApi(`synthetic/execution/${syntheticId}/FAILED`, {}); + } + async getDynatraceProblems( dynatraceEntityId: string, ): Promise { if (!dynatraceEntityId) { - throw new Error('Dynatrace entity ID is required'); + throw new Error('Dynatrace entity Id is required'); } return this.callApi('problems', { diff --git a/plugins/dynatrace/src/assets/emptystate.svg b/plugins/dynatrace/src/assets/emptystate.svg new file mode 100644 index 0000000000..8a0490727f --- /dev/null +++ b/plugins/dynatrace/src/assets/emptystate.svg @@ -0,0 +1 @@ + diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index c284eaba0f..071fc5d256 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -18,18 +18,24 @@ import { Grid } from '@material-ui/core'; import { Page, Content, - ContentHeader, - SupportButton, MissingAnnotationEmptyState, } from '@backstage/core-components'; import { useEntity } from '@backstage/plugin-catalog-react'; +import { useApi, configApiRef } from '@backstage/core-plugin-api'; import { ProblemsList } from '../Problems/ProblemsList'; +import { SyntheticsCard } from '../Synthetics/SyntheticsCard'; import { isDynatraceAvailable } from '../../plugin'; -import { DYNATRACE_ID_ANNOTATION } from '../../constants'; +import { + DYNATRACE_ID_ANNOTATION, + DYNATRACE_SYNTHETICS_ANNOTATION, +} from '../../constants'; export const DynatraceTab = () => { const { entity } = useEntity(); + const configApi = useApi(configApiRef); + const dynatraceBaseUrl = configApi.getString('dynatrace.baseUrl'); + if (!isDynatraceAvailable(entity)) { return ; } @@ -37,18 +43,29 @@ export const DynatraceTab = () => { const dynatraceEntityId: string = entity?.metadata.annotations?.[DYNATRACE_ID_ANNOTATION]!; + const syntheticsIds: string = + entity?.metadata.annotations?.[DYNATRACE_SYNTHETICS_ANNOTATION]!; + return ( - - - Plugin to show information from Dynatrace - - - + + {syntheticsIds ? ( + + + + ) : ( + <> + )} diff --git a/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx b/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx new file mode 100644 index 0000000000..b61d59e88d --- /dev/null +++ b/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx @@ -0,0 +1,15 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx new file mode 100644 index 0000000000..89f10c5750 --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx @@ -0,0 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +describe('SyntheticsCard', () => {}); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx new file mode 100644 index 0000000000..491a752b09 --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx @@ -0,0 +1,85 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import useAsync from 'react-use/lib/useAsync'; +import { Progress } from '@backstage/core-components'; +import Alert from '@material-ui/lab/Alert'; +import { InfoCard } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; +import { Typography } from '@material-ui/core'; +import { dynatraceApiRef } from '../../../api'; + +type SyntheticsCardProps = { + syntheticsIds: string; + dynatraceBaseUrl: string; +}; + +const dynatraceMonitorPrefixes = (idPrefix: string): string => { + switch (idPrefix) { + case 'HTTP_CHECK': + return 'ui/http-monitor'; + case 'BROWSER_MONITOR': + return 'ui/browser-monitor'; + case 'SYNTHETIC_TEST': + return 'ui/browser-monitor'; + default: + throw new Error('Invalid synthetic Id'); + } +}; + +export const SyntheticsCard = (props: SyntheticsCardProps) => { + const { syntheticsIds, dynatraceBaseUrl } = props; + const dynatraceApi = useApi(dynatraceApiRef); + const { value, loading, error } = useAsync(async () => { + return dynatraceApi.getDynatraceSyntheticFailures(syntheticsIds); + }, [dynatraceApi, syntheticsIds]); + + if (loading) { + return ; + } else if (error) { + return {error.message}; + } + + const deepLinkPrefix = dynatraceMonitorPrefixes( + `${syntheticsIds.match(/(.+)-/)![1]}`, + ); + const timestamps = value?.locationsExecutionResults.map(l => { + return l.requestResults[0].startTimestamp; + }); + + return ( + + + Locations: {JSON.stringify(value?.locationsExecutionResults.length)} + + + Last Failures:{' '} + {JSON.stringify( + timestamps?.map(t => { + return new Date(t).toString(); + }), + )} + + + ); +}; diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/index.ts b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/index.ts new file mode 100644 index 0000000000..5284e0cfab --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { SyntheticsCard } from './SyntheticsCard'; diff --git a/plugins/dynatrace/src/constants.ts b/plugins/dynatrace/src/constants.ts index 21453e0338..8f504db1f4 100644 --- a/plugins/dynatrace/src/constants.ts +++ b/plugins/dynatrace/src/constants.ts @@ -14,3 +14,5 @@ * limitations under the License. */ export const DYNATRACE_ID_ANNOTATION = 'dynatrace.com/dynatrace-entity-id'; +export const DYNATRACE_SYNTHETICS_ANNOTATION = + 'dynatrace.com/dynatrace-synthetics-ids'; From 10db751ed4356e894436401607723538e8cce51c Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Wed, 29 Jun 2022 14:26:53 -0700 Subject: [PATCH 004/239] fix: use toLocaleString in ProblemsTable Signed-off-by: Isaiah Thiessen --- .../src/components/Problems/ProblemsTable/ProblemsTable.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx index a9c474d863..41470959db 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.tsx @@ -61,13 +61,15 @@ export const ProblemsTable = (props: ProblemsTableProps) => { title: 'Start Time', field: 'startTime', render: (row: Partial) => - new Date(row.startTime || 0).toString(), + new Date(row.startTime || 0).toLocaleString(), }, { title: 'End Time', field: 'endTime', render: (row: Partial) => - row.endTime === -1 ? 'ongoing' : new Date(row.endTime || 0).toString(), + row.endTime === -1 + ? 'ongoing' + : new Date(row.endTime || 0).toLocaleString(), }, ]; From 4224a43e1c0031c11a60000cdc3a60f129e0e4ca Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Wed, 29 Jun 2022 14:27:36 -0700 Subject: [PATCH 005/239] feat: prettier SyntheticsCard Signed-off-by: Isaiah Thiessen --- plugins/dynatrace/src/api/DynatraceApi.ts | 16 +++- plugins/dynatrace/src/api/DynatraceClient.ts | 19 ++++- .../components/DynatraceTab/DynatraceTab.tsx | 2 +- .../SyntheticsCard/SyntheticsCard.tsx | 43 +++++----- .../SyntheticsLocation.test.tsx | 18 ++++ .../SyntheticsLocation/SyntheticsLocation.tsx | 82 +++++++++++++++++++ .../Synthetics/SyntheticsLocation/index.ts | 16 ++++ 7 files changed, 167 insertions(+), 29 deletions(-) create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx create mode 100644 plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/index.ts diff --git a/plugins/dynatrace/src/api/DynatraceApi.ts b/plugins/dynatrace/src/api/DynatraceApi.ts index 8993860e61..4cb5f105bf 100644 --- a/plugins/dynatrace/src/api/DynatraceApi.ts +++ b/plugins/dynatrace/src/api/DynatraceApi.ts @@ -39,7 +39,7 @@ type SyntheticRequestResults = { startTimestamp: number; }; -export type DynatraceSyntheticResults = { +export interface DynatraceSyntheticResults { monitorId: string; locationsExecutionResults: [ { @@ -48,7 +48,14 @@ export type DynatraceSyntheticResults = { requestResults: Array; }, ]; -}; +} + +export interface DynatraceSyntheticLocationInfo { + entityId: string; + name: string; + city: string; + browserType: string; +} export interface DynatraceProblems { problems: Array; @@ -65,6 +72,9 @@ export type DynatraceApi = { dynatraceEntityId: string, ): Promise; getDynatraceSyntheticFailures( - syntheticId: string, + syntheticsId: string, ): Promise; + getDynatraceSyntheticLocationInfo( + syntheticLocationId: string, + ): Promise; }; diff --git a/plugins/dynatrace/src/api/DynatraceClient.ts b/plugins/dynatrace/src/api/DynatraceClient.ts index 728f94de7b..1aabd3fb6d 100644 --- a/plugins/dynatrace/src/api/DynatraceClient.ts +++ b/plugins/dynatrace/src/api/DynatraceClient.ts @@ -17,6 +17,7 @@ import { DynatraceProblems, DynatraceApi, DynatraceSyntheticResults, + DynatraceSyntheticLocationInfo, } from './DynatraceApi'; import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; @@ -57,13 +58,23 @@ export class DynatraceClient implements DynatraceApi { } async getDynatraceSyntheticFailures( - syntheticId: string, + syntheticsId: string, ): Promise { - if (!syntheticId) { - throw new Error('Dynatrace synthetic Id is required'); + if (!syntheticsId) { + throw new Error('Dynatrace syntheticId is required'); } - return this.callApi(`synthetic/execution/${syntheticId}/FAILED`, {}); + return this.callApi(`synthetic/execution/${syntheticsId}/FAILED`, {}); + } + + async getDynatraceSyntheticLocationInfo( + syntheticLocationId: string, + ): Promise { + if (!syntheticLocationId) { + throw new Error('Dynatrace syntheticLocationId is required'); + } + + return this.callApi(`synthetic/locations/${syntheticLocationId}`, {}); } async getDynatraceProblems( diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index 071fc5d256..1be005908f 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -59,7 +59,7 @@ export const DynatraceTab = () => { {syntheticsIds ? ( diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx index 491a752b09..3a77db3d50 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx @@ -19,11 +19,11 @@ import { Progress } from '@backstage/core-components'; import Alert from '@material-ui/lab/Alert'; import { InfoCard } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; -import { Typography } from '@material-ui/core'; import { dynatraceApiRef } from '../../../api'; +import { SyntheticsLocation } from '../SyntheticsLocation'; type SyntheticsCardProps = { - syntheticsIds: string; + syntheticsId: string; dynatraceBaseUrl: string; }; @@ -41,11 +41,11 @@ const dynatraceMonitorPrefixes = (idPrefix: string): string => { }; export const SyntheticsCard = (props: SyntheticsCardProps) => { - const { syntheticsIds, dynatraceBaseUrl } = props; + const { syntheticsId, dynatraceBaseUrl } = props; const dynatraceApi = useApi(dynatraceApiRef); const { value, loading, error } = useAsync(async () => { - return dynatraceApi.getDynatraceSyntheticFailures(syntheticsIds); - }, [dynatraceApi, syntheticsIds]); + return dynatraceApi.getDynatraceSyntheticFailures(syntheticsId); + }, [dynatraceApi, syntheticsId]); if (loading) { return ; @@ -54,32 +54,33 @@ export const SyntheticsCard = (props: SyntheticsCardProps) => { } const deepLinkPrefix = dynatraceMonitorPrefixes( - `${syntheticsIds.match(/(.+)-/)![1]}`, + `${syntheticsId.match(/(.+)-/)![1]}`, ); - const timestamps = value?.locationsExecutionResults.map(l => { - return l.requestResults[0].startTimestamp; + const lastFailed = value?.locationsExecutionResults.map(l => { + return { + timestamp: l.requestResults[0].startTimestamp, + location: Number(l.locationId).toString(16), + }; }); return ( - - Locations: {JSON.stringify(value?.locationsExecutionResults.length)} - - - Last Failures:{' '} - {JSON.stringify( - timestamps?.map(t => { - return new Date(t).toString(); - }), - )} - + {lastFailed?.map(l => { + return ( + + ); + })} ); }; diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx new file mode 100644 index 0000000000..0fa1a148e9 --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx @@ -0,0 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +describe('SyntheticsLocation', () => {}); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx new file mode 100644 index 0000000000..957f1c34f5 --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx @@ -0,0 +1,82 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import useAsync from 'react-use/lib/useAsync'; +import { Progress } from '@backstage/core-components'; +import Alert from '@material-ui/lab/Alert'; +import { useApi } from '@backstage/core-plugin-api'; +import { Chip } from '@material-ui/core'; +import { dynatraceApiRef } from '../../../api'; + +type SyntheticsLocationProps = { + lastFailedTimestamp: Date; + locationId: string; + key: string; +}; + +const failedInLast24Hours = (timestamp: Date): Boolean => { + return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * 24); +}; + +const failedInLast6Hours = (timestamp: Date): Boolean => { + return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * 6); +}; + +const failedinLastHour = (timestamp: Date): Boolean => { + return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60); +}; + +const chipColor = (timestamp: Date): string => { + if (failedinLastHour(timestamp)) { + return 'salmon'; + } + if (failedInLast6Hours(timestamp)) { + return 'sandybrown'; + } + if (failedInLast24Hours(timestamp)) { + return 'palegoldenrod'; + } + return 'lightgreen'; +}; + +export const SyntheticsLocation = (props: SyntheticsLocationProps) => { + const { lastFailedTimestamp, locationId } = props; + const dynatraceApi = useApi(dynatraceApiRef); + const { value, loading, error } = useAsync(async () => { + return dynatraceApi.getDynatraceSyntheticLocationInfo( + `SYNTHETIC_LOCATION-00000000000000${locationId}`, + ); + }); + + if (loading) { + return ; + } else if (error) { + return {error.message}; + } + + return ( + + ); +}; diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/index.ts b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/index.ts new file mode 100644 index 0000000000..1dc8a783fe --- /dev/null +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { SyntheticsLocation } from './SyntheticsLocation'; From 91d816d7ab23fc92d2e75509a781cc0eb98ae956 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Wed, 29 Jun 2022 14:40:00 -0700 Subject: [PATCH 006/239] feat: show dynatrace entity id in card subtitle Signed-off-by: Isaiah Thiessen --- .../src/components/Problems/ProblemsList/ProblemsList.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index fa49ef91d1..6a6ade9520 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -44,7 +44,7 @@ export const ProblemsList = (props: ProblemsListProps) => { return ( Date: Thu, 21 Jul 2022 15:22:15 -0700 Subject: [PATCH 007/239] feat: support multiple synthetic ids Signed-off-by: Isaiah Thiessen --- .../components/DynatraceTab/DynatraceTab.tsx | 23 +++++++++++-------- .../SyntheticsCard/SyntheticsCard.tsx | 3 ++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index 1be005908f..3e137f4109 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -56,16 +56,19 @@ export const DynatraceTab = () => { dynatraceBaseUrl={dynatraceBaseUrl} /> - {syntheticsIds ? ( - - - - ) : ( - <> - )} + {syntheticsIds + .replace(' ', '') + .split(',') + .map(id => { + return ( + + + + ); + })} diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx index 3a77db3d50..1b73e51313 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx @@ -56,6 +56,7 @@ export const SyntheticsCard = (props: SyntheticsCardProps) => { const deepLinkPrefix = dynatraceMonitorPrefixes( `${syntheticsId.match(/(.+)-/)![1]}`, ); + const lastFailed = value?.locationsExecutionResults.map(l => { return { timestamp: l.requestResults[0].startTimestamp, @@ -68,7 +69,7 @@ export const SyntheticsCard = (props: SyntheticsCardProps) => { title="Synthetics" subheader={`Recent Activity for Monitor ${syntheticsId}`} deepLink={{ - title: 'View Synthetics in Dynatrace', + title: 'View this Synthetic in Dynatrace', link: `${dynatraceBaseUrl}/${deepLinkPrefix}/${syntheticsId}`, }} > From 8da380b0aef17b6c1bef8cc8900c640d786f9b02 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Thu, 4 Aug 2022 11:10:00 -0300 Subject: [PATCH 008/239] Update app-cusom-theme.md Added documentation for using custom icons. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 109 +++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index da4f10a64b..25e5ff9237 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -273,6 +273,115 @@ const LogoFull = () => { }; ``` +## Custom Icons + +You can also customize the Project's _default_ icons. + +We can change the following icons: + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Icons
brokenImagechat
dashboarddocs
emailgithub
grouphelp
"kind:api""kind:component"
"kind:domain""kind:group"
"kind:location""kind:system"
"kind:user"scaffolder
searchtechdocs
userwarning
+ + +### Requirements + +- Files in `.svg` format; +- React components created for the icons + +### Create React Component + +In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory. + +In the `icons` directory, upload the files in `.svg` format. + +In the `assets` directory, you can create the `customIcons.tsx` file. + +```tsx +// customIcons.tsx +import React from 'react'; +import ExampleSVG from './icons/example.svg'; + +export const ExampleIcon = () => { + return ; +}; +``` + +### Using the custom icon + +In your front-end application, locate the `src/components` folder. + +You will find the `App.tsx` file. + +The `app` constant, instantiates the `createApp` function, in this constant we will use the "icons" parameter that receives an object. + +```diff + ++ import { ExampleIcon } from './assets/customIcons' + +[...] + +const app = createApp({ + apis, + components: { + [...] + }, + themes: [ + [...] + ], ++ icons: { ++ github: ExampleIcon, ++ }, + bindRoutes({ bind }) { + [...] + } +}) + +[...] +``` + ## Custom Homepage In addition to a custom theme, a custom logo, you can also customize the From e44c0b3811e1df2bdd2c0d0755b713262876c5b9 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 4 Aug 2022 10:28:43 -0700 Subject: [PATCH 009/239] feat: unit tests for Synthetics Card, update ProblemsList tests Signed-off-by: Isaiah Thiessen --- .changeset/fresh-rabbits-juggle.md | 9 ++++ plugins/dynatrace/README.md | 19 +++++++ .../components/EmptyState/EmptyState.test.tsx | 15 ------ .../src/components/EmptyState/EmptyState.tsx | 7 ++- .../ProblemsList/ProblemsList.test.tsx | 14 ++++-- .../Problems/ProblemsList/ProblemsList.tsx | 20 +++++--- .../ProblemsTable/ProblemsTable.test.tsx | 12 +---- .../SyntheticsCard/SyntheticsCard.test.tsx | 40 ++++++++++++++- .../SyntheticsLocation.test.tsx | 49 ++++++++++++++++++- .../SyntheticsLocation/SyntheticsLocation.tsx | 24 ++++----- plugins/dynatrace/src/mocks/problems.json | 2 +- 11 files changed, 155 insertions(+), 56 deletions(-) create mode 100644 .changeset/fresh-rabbits-juggle.md delete mode 100644 plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx diff --git a/.changeset/fresh-rabbits-juggle.md b/.changeset/fresh-rabbits-juggle.md new file mode 100644 index 0000000000..804ae70853 --- /dev/null +++ b/.changeset/fresh-rabbits-juggle.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-dynatrace': minor +--- + +New features: + +- Some visual improvements to the table that displays Problems +- Added support for viewing recent Synthetics results using +- Added some additional linking to the configured Dynatrace instance diff --git a/plugins/dynatrace/README.md b/plugins/dynatrace/README.md index 150c9768af..2f5d30b88a 100644 --- a/plugins/dynatrace/README.md +++ b/plugins/dynatrace/README.md @@ -38,6 +38,8 @@ dynatrace: #### Catalog Configuration +##### View Recent Application Problems + To show information from Dynatrace for a catalog entity, add the following annotation to `catalog-info.yaml`: ```yaml @@ -51,6 +53,23 @@ metadata: The `DYNATRACE_ENTITY_ID` can be found in Dynatrace by browsing to the entity (a service, synthetic, frontend, workload, etc.). It will be located in the browser address bar in the `id` parameter and has the format `ENTITY_TYPE-ENTITY_ID`, where `ENTITY_TYPE` will be one of `SERVICE`, `SYNTHETIC_TEST`, or other, and `ENTITY_ID` will be a string of characters containing uppercase letters and numbers. +##### Viewing Recent Synthetics Results + +To show recent results from a Synthetic Monitor, add the following annotation to `catalog-info.yaml`: + +```yaml +# catalog-info.yaml +# [...] +metadata: + annotations: + dynatrace.com/dynatrace-synthetics-ids: SYNTHETIC_ID, SYNTHETIC_ID_2, ... +# [...] +``` + +The annotation can also contain a comma separated list of Synthetic Ids to surface details for multiple monitors! + +The `SYNTHETIC_ID` can be found in Dynatrace by browsing to the Synthetic monitor. It will be located in the browser address bar in the resource path - `https://example.dynatrace.com/ui/http-monitor/HTTP_CHECK-1234` for an Http check, or `https://example.dynatrace.com/ui/browser-monitor/SYNTHETIC_TEST-1234` for a browser clickpath. + ## Disclaimer This plugin is not officially supported by Dynatrace. diff --git a/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx b/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx deleted file mode 100644 index b61d59e88d..0000000000 --- a/plugins/dynatrace/src/components/EmptyState/EmptyState.test.tsx +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ diff --git a/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx b/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx index ab6eecdb7e..87d0099499 100644 --- a/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx +++ b/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx @@ -17,7 +17,12 @@ import React from 'react'; import { Grid, Typography } from '@material-ui/core'; import EmptyStateImage from '../../assets/emptystate.svg'; -export const EmptyState = ({ message }) => { +type EmptyStateProps = { + message: string; +}; + +export const EmptyState = (props: EmptyStateProps) => { + const { message } = props; return ( { .mockResolvedValue({ problems }); const rendered = await renderInTestApp( - + , ); expect(await rendered.findByText('example-service')).toBeInTheDocument(); }); - it('renders "nothing to report :)" if no problems are found', async () => { + it('returns "No Problems to Report!" if no problems are found', async () => { mockDynatraceApi.getDynatraceProblems = jest.fn().mockResolvedValue({}); const rendered = await renderInTestApp( - + , ); expect( - await rendered.findByText('Nothing to report :)'), + await rendered.findByText('No Problems to Report!'), ).toBeInTheDocument(); }); }); diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 6a6ade9520..17ab1842e9 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -28,6 +28,17 @@ type ProblemsListProps = { dynatraceBaseUrl: string; }; +const cardContents = (problems: Array, dynatraceBaseUrl: string) => { + return problems?.length ? ( + + ) : ( + + ); +}; + export const ProblemsList = (props: ProblemsListProps) => { const { dynatraceEntityId, dynatraceBaseUrl } = props; const dynatraceApi = useApi(dynatraceApiRef); @@ -50,14 +61,7 @@ export const ProblemsList = (props: ProblemsListProps) => { link: `${dynatraceBaseUrl}/#serviceOverview;id=${dynatraceEntityId}`, }} > - {value?.totalCount ? ( - - ) : ( - - )} + {cardContents(problems, dynatraceBaseUrl)} ); }; diff --git a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.test.tsx b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.test.tsx index e4adc43656..aaa3ea0024 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.test.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsTable/ProblemsTable.test.tsx @@ -28,17 +28,9 @@ describe('ProblemsTable', () => { it('renders the table with some problem data', async () => { const rendered = await renderInTestApp( - , + , , ); - expect(await rendered.findByText('example-service')).toBeInTheDocument(); - }); - it('renders an empty table when no data is provided', async () => { - const rendered = await renderInTestApp( - - - , - ); - expect(await rendered.findByText('Problems')).toBeInTheDocument(); + expect(await rendered.findByTitle('Search')).toBeInTheDocument(); }); }); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx index 89f10c5750..8a06a140b4 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx @@ -14,5 +14,43 @@ * limitations under the License. */ import React from 'react'; +import { SyntheticsCard } from './SyntheticsCard'; +import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils'; +import { dynatraceApiRef } from '../../../api'; +import { ApiProvider, ConfigReader } from '@backstage/core-app-api'; +import { configApiRef } from '@backstage/core-plugin-api'; -describe('SyntheticsCard', () => {}); +const mockDynatraceApi = { + getDynatraceSyntheticFailures: jest.fn(), +}; +const apis = TestApiRegistry.from( + [dynatraceApiRef, mockDynatraceApi], + [configApiRef, new ConfigReader({ dynatrace: { baseUrl: '__dynatrace__' } })], +); + +describe('SyntheticsCard', () => { + it('renders the card with Synthetics data', async () => { + mockDynatraceApi.getDynatraceSyntheticFailures = jest + .fn() + .mockResolvedValue({ + locationsExecutionResults: [ + { + locationId: '__location__', + requestResults: [{ startTimestamp: 0 }], + }, + ], + }); + const rendered = await renderInTestApp( + + + , + , + ); + expect( + await rendered.findByText('View this Synthetic in Dynatrace'), + ).toBeInTheDocument(); + }); +}); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx index 0fa1a148e9..de04f73e36 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.test.tsx @@ -14,5 +14,52 @@ * limitations under the License. */ import React from 'react'; +import { SyntheticsLocation } from './SyntheticsLocation'; +import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils'; +import { dynatraceApiRef } from '../../../api'; +import { ApiProvider, ConfigReader } from '@backstage/core-app-api'; +import { configApiRef } from '@backstage/core-plugin-api'; -describe('SyntheticsLocation', () => {}); +const mockDynatraceApi = { + getDynatraceSyntheticLocationInfo: jest.fn(), +}; +const apis = TestApiRegistry.from( + [dynatraceApiRef, mockDynatraceApi], + [configApiRef, new ConfigReader({ dynatrace: { baseUrl: '__dynatrace__' } })], +); + +describe('SyntheticsLocation', () => { + it('renders the SyntheticsLocation chip - recent failure', async () => { + mockDynatraceApi.getDynatraceSyntheticLocationInfo = jest + .fn() + .mockResolvedValue({ name: '__location__' }); + const rendered = await renderInTestApp( + + + , + , + ); + expect(await rendered.findByText(/failed/)).toBeInTheDocument(); + }); + it('renders the SyntheticsLocation chip - no failures', async () => { + mockDynatraceApi.getDynatraceSyntheticLocationInfo = jest + .fn() + .mockResolvedValue({ name: '__location__' }); + const rendered = await renderInTestApp( + + + , + , + ); + expect(await rendered.findByText(/__location__/)).toBeInTheDocument(); + expect(await rendered.queryByText(/failed/)).not.toBeInTheDocument(); + }); +}); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx index 957f1c34f5..e72995158c 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx @@ -28,26 +28,20 @@ type SyntheticsLocationProps = { key: string; }; -const failedInLast24Hours = (timestamp: Date): Boolean => { - return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * 24); -}; - -const failedInLast6Hours = (timestamp: Date): Boolean => { - return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * 6); -}; - -const failedinLastHour = (timestamp: Date): Boolean => { - return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60); +const failedInLastXHours = (timestamp: Date, offset: number): Boolean => { + if (offset < 0 || offset > 24) + throw new Error('offset must be between 0 and 24'); + return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * offset); }; const chipColor = (timestamp: Date): string => { - if (failedinLastHour(timestamp)) { + if (failedInLastXHours(timestamp, 1)) { return 'salmon'; } - if (failedInLast6Hours(timestamp)) { + if (failedInLastXHours(timestamp, 6)) { return 'sandybrown'; } - if (failedInLast24Hours(timestamp)) { + if (failedInLastXHours(timestamp, 24)) { return 'palegoldenrod'; } return 'lightgreen'; @@ -71,8 +65,8 @@ export const SyntheticsLocation = (props: SyntheticsLocationProps) => { return ( Date: Thu, 4 Aug 2022 12:23:57 -0700 Subject: [PATCH 010/239] fix: yarn tsc error Signed-off-by: Isaiah Thiessen --- .../components/Problems/ProblemsList/ProblemsList.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 17ab1842e9..ef6a2ed173 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -19,7 +19,7 @@ import { Progress } from '@backstage/core-components'; import Alert from '@material-ui/lab/Alert'; import { useApi } from '@backstage/core-plugin-api'; import { ProblemsTable } from '../ProblemsTable'; -import { dynatraceApiRef } from '../../../api'; +import { dynatraceApiRef, DynatraceProblem } from '../../../api'; import { EmptyState } from '../../EmptyState'; import { InfoCard } from '@backstage/core-components'; @@ -28,8 +28,11 @@ type ProblemsListProps = { dynatraceBaseUrl: string; }; -const cardContents = (problems: Array, dynatraceBaseUrl: string) => { - return problems?.length ? ( +const cardContents = ( + problems: DynatraceProblem[], + dynatraceBaseUrl: string, +) => { + return problems.length ? ( { link: `${dynatraceBaseUrl}/#serviceOverview;id=${dynatraceEntityId}`, }} > - {cardContents(problems, dynatraceBaseUrl)} + {cardContents(problems || [], dynatraceBaseUrl)} ); }; From cdea98f2a1180d997dad947c5e7c98aab2f5e9b6 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Fri, 5 Aug 2022 08:59:47 -0300 Subject: [PATCH 011/239] Adjustments based on @awanlin suggestion. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 70 ++++++------------------ 1 file changed, 16 insertions(+), 54 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 25e5ff9237..97d57540a9 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -277,54 +277,7 @@ const LogoFull = () => { You can also customize the Project's _default_ icons. -We can change the following icons: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Icons
brokenImagechat
dashboarddocs
emailgithub
grouphelp
"kind:api""kind:component"
"kind:domain""kind:group"
"kind:location""kind:system"
"kind:user"scaffolder
searchtechdocs
userwarning
-
+We can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). ### Requirements @@ -338,15 +291,24 @@ In your front-end application, locate the `src` folder. We suggest creating the In the `icons` directory, upload the files in `.svg` format. In the `assets` directory, you can create the `customIcons.tsx` file. - +> Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes. ```tsx // customIcons.tsx -import React from 'react'; -import ExampleSVG from './icons/example.svg'; +import { SvgIcon, SvgIconProps } from '@material-ui/core'; -export const ExampleIcon = () => { - return ; -}; +import React from 'react'; + +export const HeaderIcon = (props: SvgIconProps) => ( + + + +); ``` ### Using the custom icon From 08562ebe1117c0510b0b6cf35dcacf0c6cbccd67 Mon Sep 17 00:00:00 2001 From: kielosz Date: Mon, 8 Aug 2022 16:05:43 +0200 Subject: [PATCH 012/239] Display minus sign in trends Signed-off-by: kielosz --- .changeset/popular-ears-allow.md | 5 +++++ plugins/cost-insights/api-report.md | 5 ++++- .../components/CostGrowth/CostGrowthIndicator.tsx | 7 +++++-- .../CostOverviewCard/CostOverviewLegend.tsx | 4 ++-- .../ProductInsightsCard/ProductEntityTable.tsx | 10 ++++++++-- plugins/cost-insights/src/utils/formatters.test.ts | 3 +++ plugins/cost-insights/src/utils/formatters.ts | 12 ++++++++++-- 7 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 .changeset/popular-ears-allow.md diff --git a/.changeset/popular-ears-allow.md b/.changeset/popular-ears-allow.md new file mode 100644 index 0000000000..1af2fcbd81 --- /dev/null +++ b/.changeset/popular-ears-allow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Display minus sign in trends in `CostOverviewCard` diff --git a/plugins/cost-insights/api-report.md b/plugins/cost-insights/api-report.md index 94cab949c7..19d94c7058 100644 --- a/plugins/cost-insights/api-report.md +++ b/plugins/cost-insights/api-report.md @@ -320,7 +320,10 @@ export const CostGrowthIndicator: ({ // @public (undocumented) export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; - formatter?: (change: ChangeStatistic) => Maybe; + formatter?: ( + change: ChangeStatistic, + returnAbsoluteValue: boolean, + ) => Maybe; }; // Warning: (ae-missing-release-tag) "CostGrowthProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx index 592f57d389..bb303956a3 100644 --- a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx +++ b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx @@ -25,7 +25,10 @@ import { useCostGrowthStyles as useStyles } from '../../utils/styles'; export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; - formatter?: (change: ChangeStatistic) => Maybe; + formatter?: ( + change: ChangeStatistic, + returnAbsoluteValue: boolean, + ) => Maybe; }; export const CostGrowthIndicator = ({ @@ -44,7 +47,7 @@ export const CostGrowthIndicator = ({ return ( - {formatter ? formatter(change) : change.ratio} + {formatter ? formatter(change, true) : change.ratio} {growth === GrowthType.Excess && } {growth === GrowthType.Savings && } diff --git a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx index 2df80f4780..ddd31201a6 100644 --- a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx +++ b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx @@ -59,7 +59,7 @@ export const CostOverviewLegend = ({ {dailyCostData.change && ( - {formatChange(dailyCostData.change)} + {formatChange(dailyCostData.change, false)} )} @@ -70,7 +70,7 @@ export const CostOverviewLegend = ({ title={`${metric.name} Trend`} markerColor={theme.palette.magenta} > - {formatChange(metricData.change)} + {formatChange(metricData.change, false)} ) { if (b.id === 'total') return 1; if (field === 'label') return a.label.localeCompare(b.label); if (field === 'change') { - if (formatChange(a[field]) === '∞' || formatChange(b[field]) === '-∞') + if ( + formatChange(a[field], false) === '∞' || + formatChange(b[field], false) === '-∞' + ) return 1; - if (formatChange(a[field]) === '-∞' || formatChange(b[field]) === '∞') + if ( + formatChange(a[field], false) === '-∞' || + formatChange(b[field], false) === '∞' + ) return -1; return a[field].ratio! - b[field].ratio!; } diff --git a/plugins/cost-insights/src/utils/formatters.test.ts b/plugins/cost-insights/src/utils/formatters.test.ts index 9fe17f277f..754760e5cb 100644 --- a/plugins/cost-insights/src/utils/formatters.test.ts +++ b/plugins/cost-insights/src/utils/formatters.test.ts @@ -73,6 +73,9 @@ describe.each` ${0.123123} | ${'12%'} ${1.123} | ${'112%'} ${10.123} | ${'>1000%'} + ${-0.123123} | ${'-12%'} + ${-1.123} | ${'-112%'} + ${-10.123} | ${'>1000%'} `('formatPercent', ({ ratio, expected }) => { it(`correctly formats ${ratio} as ${expected}`, () => { expect(formatPercent(ratio)).toBe(expected); diff --git a/plugins/cost-insights/src/utils/formatters.ts b/plugins/cost-insights/src/utils/formatters.ts index 70782123cd..e66b6bc75c 100644 --- a/plugins/cost-insights/src/utils/formatters.ts +++ b/plugins/cost-insights/src/utils/formatters.ts @@ -81,9 +81,17 @@ export function formatCurrency(amount: number, currency?: string): string { return currency ? `${numString} ${pluralize(currency, n)}` : numString; } -export function formatChange(change: ChangeStatistic): string { +export function formatChange( + change: ChangeStatistic, + returnAbsoluteValue: boolean, +): string { if (notEmpty(change.ratio)) { - return formatPercent(Math.abs(change.ratio)); + return formatPercent( + returnAbsoluteValue ? Math.abs(change.ratio) : change.ratio, + ); + } + if (returnAbsoluteValue) { + return '∞'; } return change.amount >= 0 ? '∞' : '-∞'; } From ba68a6581f6805849d0ec7cd5ee67613b2ccba3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 00:01:16 +0000 Subject: [PATCH 013/239] fix(deps): update dependency @microsoft/microsoft-graph-types to v2.23.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..f792a3852c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5010,9 +5010,9 @@ typescript "~4.6.3" "@microsoft/microsoft-graph-types@^2.6.0": - version "2.22.0" - resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.22.0.tgz#7ceb222311770ed5b240d627b657d25b3979964e" - integrity sha512-iKc5L036hc/wu13DX5kGf//3/WqTAErAPTyYKG6zT3vG070xXaaP7PInODznfyZduhiOvavmrRlQb34ajeDTUA== + version "2.23.0" + resolved "https://registry.npmjs.org/@microsoft/microsoft-graph-types/-/microsoft-graph-types-2.23.0.tgz#075cd5bbd523a414bb98ab97fb2207bcccbfa532" + integrity sha512-4TwjVg/A28K5Df1br17gRmv7Z0iWqYArdUo77xPz+bEtMpDD1hwmKUNj7O7a8r3sN7WIC2nKp6Atb6LXTr1LEA== "@microsoft/tsdoc-config@~0.16.1": version "0.16.1" From 4ff622e84f62dd6b4f3b503dffe56b7dd13dfa83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 02:45:12 +0000 Subject: [PATCH 014/239] fix(deps): update typescript-eslint monorepo to v5.33.0 Signed-off-by: Renovate Bot --- yarn.lock | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..19917ba5eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7948,13 +7948,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz#e27e38cffa4a61226327c874a7be965e9a861624" - integrity sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew== + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec" + integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg== dependencies: - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/type-utils" "5.32.0" - "@typescript-eslint/utils" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/type-utils" "5.33.0" + "@typescript-eslint/utils" "5.33.0" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -7975,13 +7975,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.32.0.tgz#1de243443bc6186fb153b9e395b842e46877ca5d" - integrity sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A== + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383" + integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w== dependencies: - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/typescript-estree" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/typescript-estree" "5.33.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.20.0": @@ -7992,13 +7992,13 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/scope-manager@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.32.0.tgz#763386e963a8def470580cc36cf9228864190b95" - integrity sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg== +"@typescript-eslint/scope-manager@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d" + integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw== dependencies: - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/visitor-keys" "5.32.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/visitor-keys" "5.33.0" "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" @@ -8008,12 +8008,12 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.32.0.tgz#45a14506fe3fb908600b4cef2f70778f7b5cdc79" - integrity sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg== +"@typescript-eslint/type-utils@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338" + integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA== dependencies: - "@typescript-eslint/utils" "5.32.0" + "@typescript-eslint/utils" "5.33.0" debug "^4.3.4" tsutils "^3.21.0" @@ -8022,10 +8022,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/types@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.32.0.tgz#484273021eeeae87ddb288f39586ef5efeb6dcd8" - integrity sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ== +"@typescript-eslint/types@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b" + integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw== "@typescript-eslint/types@5.9.0": version "5.9.0" @@ -8045,13 +8045,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.32.0.tgz#282943f34babf07a4afa7b0ff347a8e7b6030d12" - integrity sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg== +"@typescript-eslint/typescript-estree@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf" + integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ== dependencies: - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/visitor-keys" "5.32.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/visitor-keys" "5.33.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -8071,15 +8071,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.32.0.tgz#eccb6b672b94516f1afc6508d05173c45924840c" - integrity sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ== +"@typescript-eslint/utils@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038" + integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.32.0" - "@typescript-eslint/types" "5.32.0" - "@typescript-eslint/typescript-estree" "5.32.0" + "@typescript-eslint/scope-manager" "5.33.0" + "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/typescript-estree" "5.33.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -8103,12 +8103,12 @@ "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.32.0": - version "5.32.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.32.0.tgz#b9715d0b11fdb5dd10fd0c42ff13987470525394" - integrity sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g== +"@typescript-eslint/visitor-keys@5.33.0": + version "5.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484" + integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw== dependencies: - "@typescript-eslint/types" "5.32.0" + "@typescript-eslint/types" "5.33.0" eslint-visitor-keys "^3.3.0" "@typescript-eslint/visitor-keys@5.9.0": From 3ec7128e83b6826d4f9ccc2b68c1e50897409f1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 07:37:35 +0000 Subject: [PATCH 015/239] fix(deps): update dependency eslint-plugin-jest to v26.8.2 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..b1810dff33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12941,9 +12941,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.8.1" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.1.tgz#f870a9912f6fe65e16e181cbb368229cd5889c65" - integrity sha512-0+OSTIPjIIfl9heUxZyuU1gDEMW2sLvoVBGwiCIp+iEqUYt0Yqr5M5BjAyVShJaisICmCALdVv0nd1UDX/QaYw== + version "26.8.2" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.2.tgz#42a1248a5ade2bc589eb0f9c4e0608dd89b18cf3" + integrity sha512-67oh0FKaku9y48OpLzL3uK9ckrgLb83Sp5gxxTbtOGDw9lq6D8jw/Psj/9CipkbK406I2M7mvx1q+pv/MdbvxA== dependencies: "@typescript-eslint/utils" "^5.10.0" From 92e226025a582d79fb9e02416cd4ad2bae7a91c6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:43:32 +0200 Subject: [PATCH 016/239] Revert "chore(deps): update dependency lerna to v5.4.0" Signed-off-by: Patrik Oldsberg --- yarn.lock | 1936 +++++++++++++++++++++++++++-------------------------- 1 file changed, 978 insertions(+), 958 deletions(-) diff --git a/yarn.lock b/yarn.lock index c23b594c54..734206b1a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2680,7 +2680,12 @@ dependencies: yaml-ast-parser "0.0.43" -"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": +"@gar/promisify@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" + integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + +"@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== @@ -4085,630 +4090,629 @@ resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== -"@lerna/add@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/add/-/add-5.4.0.tgz#a6182f5c2a5e8615cf19042099152a8a13eaa3e3" - integrity sha512-o4JiZgEzFL7QXC2hhhraSjfhd9y/YB/07KFjVApEUDpsE2g7hRPtmKMulTjVi8vTkzVuhG87t2ZfJ3HOywqvSQ== +"@lerna/add@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/add/-/add-5.0.0.tgz#0545e2eef157c142d82ba765467c27b36fe53ce8" + integrity sha512-KdIOQL+88iHU9zuAU8Be1AL4cOVmm77nlckylsNaVVTiomNipr/h7lStiBO52BoMkwKzNwOH6He5HGY0Yo7s2w== dependencies: - "@lerna/bootstrap" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/bootstrap" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" - npm-package-arg "8.1.1" + npm-package-arg "^8.1.0" p-map "^4.0.0" - pacote "^13.6.1" + pacote "^13.4.1" semver "^7.3.4" -"@lerna/bootstrap@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.4.0.tgz#612a3f7d5b3a6e68990946912119180f98d5c642" - integrity sha512-XEusPF14qH0QVRkYwti59N8IG1yS0QvkqhSGxftDT+dbvbL8E3E73cwUVyb7/vgUefwEkw/Ya1yMytsJv3Hj+Q== +"@lerna/bootstrap@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.0.0.tgz#624b67a4631c7455b98cfed4dbb2e38b27025a7a" + integrity sha512-2m1BxKbYwDABy+uE/Da3EQM61R58bI3YQ0o1rsFQq1u0ltL9CJxw1o0lMg84hwMsBb4D+kLIXLqetYlLVgbr0Q== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/has-npm-version" "5.4.0" - "@lerna/npm-install" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/rimraf-dir" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/symlink-binary" "5.4.0" - "@lerna/symlink-dependencies" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@npmcli/arborist" "5.3.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/has-npm-version" "5.0.0" + "@lerna/npm-install" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/rimraf-dir" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/symlink-binary" "5.0.0" + "@lerna/symlink-dependencies" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@npmcli/arborist" "5.2.0" dedent "^0.7.0" get-port "^5.1.1" multimatch "^5.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.4.0.tgz#145b27a91b474f6bfd561cc06ab688c1c36fd659" - integrity sha512-ZxII7biEQFdbZG3scjacOP2/qQOuu0ob3OiPW/+Ci24aEG/j1bFGhBJdoNdfdD0sJ92q8TTums2BRXDib9GvzA== +"@lerna/changed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/changed/-/changed-5.0.0.tgz#fb3cdd5f281683a461c3099cbcf0978e23b33140" + integrity sha512-A24MHipPGODmzQBH1uIMPPUUOc1Zm7Qe/eSYzm52bFHtVxWH0nIVXfunadoMX32NhzKQH3Sw8X2rWHPQSRoUvA== dependencies: - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/listable" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/listable" "5.0.0" + "@lerna/output" "5.0.0" -"@lerna/check-working-tree@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.4.0.tgz#9d0c3cfc3d3e1034b488e987dcb47f06715dde18" - integrity sha512-O3bcNnuZfOK8KHRQcwaSjAp/DHT/GD96sge/a7ZfnqKiKhyO94ZztznrOvCrb5Cuz4NShupD05PpyQe+sBuTLA== +"@lerna/check-working-tree@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.0.0.tgz#e7b653b78c3bb96db7a00f6a74018e2bb88ec088" + integrity sha512-PnUMdpT2qS4o+vs+7l5fFIizstGdqSkhLG+Z9ZiY5OMtnGd+pmAFQFlbLSZSmdvQSOSobl9fhB1St8qhPD60xQ== dependencies: - "@lerna/collect-uncommitted" "5.4.0" - "@lerna/describe-ref" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/collect-uncommitted" "5.0.0" + "@lerna/describe-ref" "5.0.0" + "@lerna/validation-error" "5.0.0" -"@lerna/child-process@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.4.0.tgz#25ec73f76f4142845f07bd5fc694b291b94b642a" - integrity sha512-SPjlfuB6LesAG3NCaDalEnpsbrpEDf0RMYGC1Wj6xGmmVEvWai8cenxCNM5xhpixSGjEF6dmLVI1OHFS9JovUQ== +"@lerna/child-process@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.0.0.tgz#1c7663d2910431f6c25543fd53998ae95b2dac19" + integrity sha512-cFVNkedrlU8XTt15EvUtQ84hqtV4oToQW/elKNv//mhCz06HY8Y+Ia6XevK2zrIhZjS6DT576F/7SmTk3vnpmg== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.4.0.tgz#2ebab8b2980652f302ebd948b0d4bccc64bfad0e" - integrity sha512-prhpUQ4kTkB/uti2DSuqfgRjUA3bz6aBrfdA5VS5QW6oTU8+F69uWjitXNt2ph/cVUJ+js8VZdbU0wkUFQasKg== +"@lerna/clean@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/clean/-/clean-5.0.0.tgz#2b5cf202ab3eca18a075b292c55e6641d18b1b8f" + integrity sha512-7B+0Nx6MEPmCfnEa1JFyZwJsC7qlGrikWXyLglLb/wcbapYVsuDauOl9AT1iOFoXKw82P77HWYUKWeD9DQgw/w== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/rimraf-dir" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/rimraf-dir" "5.0.0" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.4.0.tgz#c18a2afcb1f03466a96d8116aa28d54e06ede343" - integrity sha512-usvZ3yAaMBzb249UYZuqMRoT6VboBSzWG7iEvXVxZDoFgShHrZ8NJAOMJaStRyVkizci+PTK74FRgpX+hKOEHg== +"@lerna/cli@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/cli/-/cli-5.0.0.tgz#f440f6664aa6c22bb58e69aacfde655c831de2f9" + integrity sha512-g8Nifko8XNySOl8u2molSHVl+fk/E1e5FSn/W2ekeijmc3ezktp+xbPWofNq71N/d297+KPQpLBfwzXSo9ufIQ== dependencies: - "@lerna/global-options" "5.4.0" + "@lerna/global-options" "5.0.0" dedent "^0.7.0" - npmlog "^6.0.2" + npmlog "^4.1.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.4.0.tgz#783324309560133bd1572ca555aff197921f324e" - integrity sha512-uKnL81tsfasSzYxqTCybn0GqehKUid47QzTJkKV1IXzfHpYLd4LBztvkbZFM2QN9Avl+hWYbTntSF5Iecg2fAg== +"@lerna/collect-uncommitted@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.0.0.tgz#2843f98995c8bcc1d783d1d9739122c79378f3c5" + integrity sha512-mga/2S9rK0TP5UCulWiCTrC/uKaiIlOro1n8R3oCw6eRw9eupCSRx5zGI7pdh8CPD82MDL7w0a6OTep3WBSBVA== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" chalk "^4.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/collect-updates@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.4.0.tgz#03725f55099ad61c598e2e2929684e11a1dc3a7d" - integrity sha512-J1YPygeqCJo9IKLg6G2YY0OJPNDz6/n4VgJTrkMQH3B3WyodXdmdSv4xKY1pG9Cy7mXzCsdNuZzvN6qM1OgErg== +"@lerna/collect-updates@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.0.0.tgz#cce16b9e8136e1e7bc33fe0fb12b283e538fa658" + integrity sha512-X82i8SVgBXLCk8vbKWfQPRLTAXROCANL8Z/bU1l6n7yycsHKdjrrlNi1+KprFdfRsMvSm10R4qPNcl9jgsp/IA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/describe-ref" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/describe-ref" "5.0.0" minimatch "^3.0.4" - npmlog "^6.0.2" + npmlog "^4.1.2" slash "^3.0.0" -"@lerna/command@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/command/-/command-5.4.0.tgz#53ee056304b5678b5a70f3cf4976e73c16425082" - integrity sha512-MR9zRWZJnr6wXcOJnuYjXScxiDuFt4jH+yZuqDf3EBQGIhfhSRoujtjVGmfe0/4P4TM4VdTqqangt63lclsLzw== +"@lerna/command@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/command/-/command-5.0.0.tgz#cdc9f32a6b1c7153fe7150d642d2a420a3d0797d" + integrity sha512-j7/apU5d/nhSc1qIZgcV03KyO5jz3y7cwSum3IuK8/XF6rKwt3FVnbue1V3l9sJ6IRJjsRGKyViB1IdP5nSX4Q== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/project" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@lerna/write-log-file" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/project" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@lerna/write-log-file" "5.0.0" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/conventional-commits@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.4.0.tgz#12e31222b951837c3b8543cbe4c44247ac7b60df" - integrity sha512-rrFFIiKWhkyghDC+aGdfEw1F78MWB+KerpBO1689nRrVpXTTqV9ZKHpn0YeTGhi+T1e/igtdJRlNjRCaXkl79Q== +"@lerna/conventional-commits@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.0.0.tgz#7f9c16fda074c9ed897cb695f5ae23678dd441eb" + integrity sha512-tUCRTAycDCtSlCEI0hublq4uKHeV0UHpwIb3Fdt6iv2AoTSPBSX/Dwu/6VqguysOSEkkR4M2JCOLvJCl4IMxwg== dependencies: - "@lerna/validation-error" "5.4.0" + "@lerna/validation-error" "5.0.0" conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.4" + conventional-changelog-core "^4.2.2" conventional-recommended-bump "^6.1.0" fs-extra "^9.1.0" get-stream "^6.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + lodash.template "^4.5.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.4.0.tgz#8b96d4fdada6cf3726353b9fe380720e6e99889f" - integrity sha512-DQuxmDVYL4S/VAXD8x/8zKapvGm4zN2sYB0D9yc2hTFeM5O4P7AXO0lYBE8XayZN7r2rBNPDYttv8Lv2IvN74A== +"@lerna/create-symlink@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.0.0.tgz#eccef7f89fdc4d7cd904694d9e2eb0b582073b5e" + integrity sha512-nHYNacrh15Y0yEofVlUVu9dhf4JjIn9hY7v7rOUXzUeQ91iXY5Q3PVHkBeRUigyT5CWP5qozZwraCMwp+lDWYg== dependencies: - cmd-shim "^5.0.0" + cmd-shim "^4.1.0" fs-extra "^9.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/create@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/create/-/create-5.4.0.tgz#14dd702727a07ed20d3f7e9b69c8bcdb31da3602" - integrity sha512-yHFP7DQD33xRLojlofqe+qu07BvRpwf+09dTKFHtarXqoPRDRJJ0e2/MRCi3StJmOLJCw7Gut3k0rdnFr3No6g== +"@lerna/create@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/create/-/create-5.0.0.tgz#4aac3d1f2c1f6d7fadde49d3663b318fcdd39b06" + integrity sha512-sdFTVTLOVuhHpzIYhFAwK0Ry3p4d7uMe9ZG/Ii128/pB9kEEfCth+1WBq6mBpYZ5mOLLgxJbWalbiJFl0toQRw== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" fs-extra "^9.1.0" globby "^11.0.2" - init-package-json "^3.0.2" - npm-package-arg "8.1.1" + init-package-json "^2.0.2" + npm-package-arg "^8.1.0" p-reduce "^2.1.0" - pacote "^13.6.1" + pacote "^13.4.1" pify "^5.0.0" semver "^7.3.4" slash "^3.0.0" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" + validate-npm-package-name "^3.0.0" whatwg-url "^8.4.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.4.0.tgz#15bffe6ef0841db82dab795a21a91ba15cb1dc2f" - integrity sha512-OSy3U8bEm8EmPtoeoej4X02cUihqTJlG/JXyiJdEEMdWDwT3DLDLrBxo4/HAfB3hT5bSD96EabGgmM6GrVhiWw== +"@lerna/describe-ref@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.0.0.tgz#f0676843642e8880133783a9f059e6cb4c027fe1" + integrity sha512-iLvMHp3nl4wcMR3/lVkz0ng7pAHfLQ7yvz2HsYBq7wllCcEzpchzPgyVzyvbpJ+Ke/MKjQTsrHE/yOGOH67GVw== dependencies: - "@lerna/child-process" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + npmlog "^4.1.2" -"@lerna/diff@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.4.0.tgz#54747d1c4ae30505500c35bc38124a1150683127" - integrity sha512-IxJltmhpkLy9Te6EV1fHu5Yx83HLMrNT2v2TIu+k/EdM/fW6wt+Pal34bsROjGEj70LPI64LWj/FKvdaKXe36A== +"@lerna/diff@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/diff/-/diff-5.0.0.tgz#844333f5478fc4993c4389fee1e0cd8eff9114fe" + integrity sha512-S4XJ6i9oP77cSmJ3oRUJGMgrI+jOTmkYWur2nqgSdyJBE1J2eClgTJknb3WAHg2cHALT18WzFqNghFOGM+9dRA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/validation-error" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/validation-error" "5.0.0" + npmlog "^4.1.2" -"@lerna/exec@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.4.0.tgz#cee3bb7acaaee5a42aecff0bf6378a60aac09425" - integrity sha512-hgAR5oDMVJUuqN8Fg04ibnzC4cj4YZzIGOfSjYSYjuC/zE53fOSRwEdVDKz3+Yxlnqrz4XyxbOnOlYTFgk6DaA== +"@lerna/exec@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/exec/-/exec-5.0.0.tgz#a59dd094e456ea46cfa8f713da0ea3334a7ec9ac" + integrity sha512-g5i+2RclCGWLsl88m11j99YM2Gqnwa2lxZ5tDeqqWZFno6Dlvop17Yl6/MFH42EgM2DQHUUCammvcLIAJ2XwEA== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/profiler" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/profiler" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/validation-error" "5.0.0" p-map "^4.0.0" -"@lerna/filter-options@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.4.0.tgz#c1f53a705c8256d599b7cf72b75b1e0945673ff6" - integrity sha512-qK8863UrVcgKJYoZ0dKs82uXIeHhntMoCcqWXOUa1zHP4Fwuz0nGhVGWIO2q4GC8A4HoeduN6vjrLr2d6rsEdw== +"@lerna/filter-options@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.0.0.tgz#1d2606e1d2ed106689b43cc5d41a77b239afb837" + integrity sha512-un73aYkXlzKlnDPx2AlqNW+ArCZ20XaX+Y6C0F+av9VZriiBsCgZTnflhih9fiSMnXjN5r9CA8YdWvZqa3oAcQ== dependencies: - "@lerna/collect-updates" "5.4.0" - "@lerna/filter-packages" "5.4.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/filter-packages" "5.0.0" dedent "^0.7.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/filter-packages@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.4.0.tgz#4eff648b6a31f685593577c36c8b00db1a1e9c56" - integrity sha512-KAERXVJM5QCw0wyZnSQnHerY6u4q8h37r5yft0HJOSqxIMmkambrtrXplOQCpAxOB+CASQG6sfVB7F7wvI0nkQ== +"@lerna/filter-packages@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.0.0.tgz#9aae543ab5e45a1b0c3f7ad33e0686ceb8d92c88" + integrity sha512-+EIjVVaMPDZ05F/gZa+kcXjBOLXqEamcEIDr+2ZXRgJmnrLx9BBY1B7sBEFHg7JXbeOKS+fKtMGVveV0SzgH3Q== dependencies: - "@lerna/validation-error" "5.4.0" + "@lerna/validation-error" "5.0.0" multimatch "^5.0.0" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/get-npm-exec-opts@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.4.0.tgz#424946fba5cccf60ca28de4b1991c5405d4029df" - integrity sha512-plBDyetGHaYObxKnL2gsCNRTn7lTXTFsA8/wiJl6VEJNeEwvZ0efFopY1qcwXx+Skfwi4whqmAojWyoLzVoCIA== +"@lerna/get-npm-exec-opts@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.0.0.tgz#25c1cd7d2b6c1fe903cd144d9f6e2d5cae47429b" + integrity sha512-ZOg3kc5FXYA1kVFD2hfJOl64hNASWD6panwD0HlyzXgfKKTDRm/P/qtAqS8WGCzQWgEdx4wvsDe/58Lzzh6QzQ== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/get-packed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.4.0.tgz#8d4eabdc4c92f7bf29724146b3af1ff02146841b" - integrity sha512-bgPZGx2hbbjxaY0sRNcmDjWGR8HEoU/ORXrFiPU/YS7Xp4Yuf8GixT5QrYFT/VdZOqDeaBtFxndVPbmtK6qFRA== +"@lerna/get-packed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.0.0.tgz#4de7f66184232c805dfca07b9a8c577f6ef02351" + integrity sha512-fks7Tg7DvcCZxRWPS3JAWVuLnwjPC/hLlNsdYmK9nN3+RtPhmYQgBjLSONcENw1E46t4Aph72lA9nLcYBLksqw== dependencies: fs-extra "^9.1.0" - ssri "^9.0.1" + ssri "^8.0.1" tar "^6.1.0" -"@lerna/github-client@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.4.0.tgz#4de39f81c287c6138f1a75d55ede88591e0be846" - integrity sha512-zI/rR5+DHljRwvq1l1LWlola2mJrVkv+0/rIg8wVWfcosIbYQMeuWoJ4zKTZmbOuQqwFpM3vipSHNj8oyik/xA== +"@lerna/github-client@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.0.0.tgz#65c984a393b1cbe35c2a707059c645bb9a03395e" + integrity sha512-NoEyRkQ8XgBnrjRfC9ph1npfg1/4OdYG+r8lG/1WkJbdt1Wlym4VNZU2BYPMWwSQYMJuppoEr0LL2uuVcS4ZUw== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^19.0.3" - git-url-parse "^12.0.0" - npmlog "^6.0.2" + "@octokit/rest" "^18.1.0" + git-url-parse "^11.4.4" + npmlog "^4.1.2" -"@lerna/gitlab-client@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.4.0.tgz#7bd9915e06cfe188828f78a75da4168b9c7c8516" - integrity sha512-OHEnRgzzOfzCtpl+leXlh3jIJZ/mho69vNUEDfSviixTmZMbw4626TYU41FFjZZqmijxl2rYEyJCxIaTdIKdvg== +"@lerna/gitlab-client@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.0.0.tgz#c4e3d16566a3b07908ee604ce681a09c418481de" + integrity sha512-WREAT7qzta9hxNxktTX0x1/sEMpBP+4Gc00QSJYXt+ZzxY0t5RUx/ZK5pQl+IDhtkajrvXT6fSfZjMxxyE8hhQ== dependencies: node-fetch "^2.6.1" - npmlog "^6.0.2" + npmlog "^4.1.2" whatwg-url "^8.4.0" -"@lerna/global-options@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.4.0.tgz#fd1acc17258b021c966ec7ce1e06311e2f235f60" - integrity sha512-6YjlNNCyk/xjkdBkDkrrk5zBvT1lfyyXP6lyi2b3zcmtP7zMVkSL6Z+NUh857uFJsFYMMQ2SkGczQBmHfSSg7Q== +"@lerna/global-options@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.0.0.tgz#02505c9e468188e3a254c262d58739092de93d8d" + integrity sha512-PZYy/3mTZwtA9lNmHHRCc/Ty1W20qGJ/BdDIo4bw/Bk0AOcoBCLT9b3Mjijkl4AbC9+eSGk3flUYapCGVuS32Q== -"@lerna/has-npm-version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.4.0.tgz#5e6567386d5c6b6c60e8c4c1f606eaa954604cbb" - integrity sha512-L9TTF82NgOmau8kGBhc0UnMdlyVkbQxlz1IbJEzQzJcc5oYB8ppHe4Wbm25D1p846U7wzZeRMxSC3sWO8ap+FA== +"@lerna/has-npm-version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.0.0.tgz#ed62c6ef857f068209663aae9f156f06a93dc1bd" + integrity sha512-zJPgcml86nhJFJTpT+kjkcafuCFvK7PSq3oDC2KJxwB1bhlYwy+SKtAEypHSsHQ2DwP0YgPITcy1pvtHkie1SA== dependencies: - "@lerna/child-process" "5.4.0" + "@lerna/child-process" "5.0.0" semver "^7.3.4" -"@lerna/import@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/import/-/import-5.4.0.tgz#a99bc13ead71fe4f123ff7b268645732a57236ae" - integrity sha512-UOwfZWvda+lMTDMt/pZmKBtbLKWnBOjrd0C7s7IPDNIdEYohV+LQEaDTuFFpwwFwRhr8RO2fLicWvlt4YJOccQ== +"@lerna/import@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/import/-/import-5.0.0.tgz#11cd83ef0fe854c512146fd4165f33519364b97a" + integrity sha512-cD+Is7eV/I+ZU0Wlg+yAgKaZbOvfzA7kBj2Qu1HtxeLhc7joTR8PFW1gNjEsvrWOTiaHAtObbo1A+MKYQ/T12g== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/validation-error" "5.0.0" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/info/-/info-5.4.0.tgz#0076a05ec8fda31d8dc19b8843b8c2b29d9ce538" - integrity sha512-MoNredUnlDjm12by7h5it3XLeHqqIhSjYnmjfQuIhB9r37L/grxEcZ+YLKVqvz3BGGFX342jEfi8uE3eACQUgg== +"@lerna/info@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/info/-/info-5.0.0.tgz#649566474d0d133c22bb821f88e7d062a2beace5" + integrity sha512-k9TMK81apTjxxpnjfFOABKXndTtHBPgB8UO+I6zKhsfRqVb9FCz2MHOx8cQiSyolvNyGSQdSylSo4p7EBBomQQ== dependencies: - "@lerna/command" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/output" "5.0.0" envinfo "^7.7.4" -"@lerna/init@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/init/-/init-5.4.0.tgz#13af001a5a13a92c6b761c0aebc511307d61b70f" - integrity sha512-lCfokfqFKL6Iqg8KDIlCSoNtcbvheUZ+AKwd9wHRPHn1xvI3BQRukkai83VcCShpsVqAkx1r8KjCO9f3I74K9Q== +"@lerna/init@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/init/-/init-5.0.0.tgz#e35d95a4882aafb4600abf9b32fd1a0056e73ed9" + integrity sha512-2n68x7AIqVa+Vev9xF3NV9ba0C599KYf7JsIrQ5ESv4593ftInJpwgMwjroLT3X/Chi4BK7y2/xGmrfFVwgILg== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/project" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/command" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/link/-/link-5.4.0.tgz#eb92414ac78e3d4571965c1f1be9725eb3886a3b" - integrity sha512-nUdpVIq0WHkQ2bWyjd+Fg/0iAEIZpwqZidpJuvcvS8FhvCVUryF2zRtd4wSSfQpzuoTWxDzGg6Ka2QwKxWOq6w== +"@lerna/link@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/link/-/link-5.0.0.tgz#dbd5aefa0bb22f2fd9d61ee82009fb34eb946298" + integrity sha512-00YxQ06TVhQJthOjcuxCCJRjkAM+qM/8Lv0ckdCzBBCSr4RdAGBp6QcAX/gjLNasgmNpyiza3ADet7mCH7uodw== dependencies: - "@lerna/command" "5.4.0" - "@lerna/package-graph" "5.4.0" - "@lerna/symlink-dependencies" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/package-graph" "5.0.0" + "@lerna/symlink-dependencies" "5.0.0" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/list/-/list-5.4.0.tgz#86c34925d71fcc87df69c3b3394afb8c8fe8f409" - integrity sha512-w+gqkcl9mSIAnImiGVJJUiJ4sJx2Ovko2heLQpcNzUsc39ilcvb5S1YTnfhneJH735EckbF1eXzG1I5V+znaBw== +"@lerna/list@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/list/-/list-5.0.0.tgz#0a979dc9c24ca176c7b4b58de80cab2dac2dcb8a" + integrity sha512-+B0yFil2AFdiYO8hyU1bFbKXGBAUUQQ43/fp2XS2jBFCipLme4eTILL5gMKOhr2Xg9AsfYPXRMRer5VW7qTeeQ== dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/listable" "5.4.0" - "@lerna/output" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/listable" "5.0.0" + "@lerna/output" "5.0.0" -"@lerna/listable@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.4.0.tgz#352cb301e7b7a5e52d32dfa795fab2e2986cacb5" - integrity sha512-ABhInXVY+i9PhCiMxH/4JZnsn5SYriAiCOzyZG+6PX4TSDt7wiE6QWI5tfEyBJmPLEvhxjIeOph0cVvcnxf/gg== +"@lerna/listable@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/listable/-/listable-5.0.0.tgz#c1753d9375932b15c4c84cc767fffb3447b8f213" + integrity sha512-Rd5sE7KTbqA8u048qThH5IyBuJIwMcUnEObjFyJyKpc1SEWSumo4yAYmcEeN/9z62tcdud5wHYPSbVgfXJq37g== dependencies: - "@lerna/query-graph" "5.4.0" + "@lerna/query-graph" "5.0.0" chalk "^4.1.0" - columnify "^1.6.0" + columnify "^1.5.4" -"@lerna/log-packed@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.4.0.tgz#bd3cd24c700590286b7248c218139322e607c3df" - integrity sha512-2l9wrDDdG+vL+k8iIsQ+8EgLn3YnLMfAnK1TyHRaEFJyHWWPK+wCYln793s6RdOG0rJmCOdVwGvGoO3Dpp4jiw== +"@lerna/log-packed@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.0.0.tgz#afa35bb6a5736038d7dde039e09828ac1c4945a2" + integrity sha512-0TxKX+XnlEYj0du9U2kg3HEyIb/0QsM0Slt8utuCxALUnXRHTEKohjqVKsBdvh1QmJpnUbL5I+vfoYqno4Y42w== dependencies: byte-size "^7.0.0" - columnify "^1.6.0" + columnify "^1.5.4" has-unicode "^2.0.1" - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/npm-conf@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.4.0.tgz#d75896d46586ab10094a3760df9dc348a3918367" - integrity sha512-xCzrg8s8X/SGoELdtstjjVV471r3mF6r1gdQzdQ9Y+Gql78pOp2flGtERyhZlN40fDTsfR+MKpk9mI/3/+Wffg== +"@lerna/npm-conf@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.0.0.tgz#1364270d231d0df5ac079a9a9733ba0dd7f8c2f9" + integrity sha512-KSftxtMNVhLol1JNwFFNgh5jiCG010pewM+uKeSrUe0BCB3lnidiEDzu2CCn8JYYfIXqAiou/pScUiOxVLpcAA== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.4.0.tgz#110dee7e06c6d9a1a477fd00b75777f9cc0bde7f" - integrity sha512-0MXkt6WhEI9pJOtFaQmKlkaBm9IZHx9KK6BtKlC1giwE/czur2ke19PUMmH+b078EtyhnwrsEq8VB4pMidmXpw== +"@lerna/npm-dist-tag@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.0.0.tgz#becd7fb0bd963357818c8d4fae955cc9f8885cba" + integrity sha512-ccUFhp9Wu/FHW5/5fL+vLiSTcUZXtKQ7c0RMXtNRzIdTXBxPBkVi1k5QAnBAAffsz6Owc/K++cb+/zQ/asrG3g== dependencies: - "@lerna/otplease" "5.4.0" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" + "@lerna/otplease" "5.0.0" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" + npmlog "^4.1.2" -"@lerna/npm-install@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.4.0.tgz#1bf4b2c5f9eff7389d58fe21844d6c738efe82a8" - integrity sha512-scYWjKyb67Ov6VMyDFUUPzyGJWuD8vBgOAshzJMG1lGzfcUTOyAA4VJohOpJHVgNaRL3YjJa2AekqTzX42zygQ== +"@lerna/npm-install@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.0.0.tgz#0ee1750bb26eae3c2b4d742d5c1f055e46d534df" + integrity sha512-72Jf05JCIdeSBWXAiNjd/y2AQH4Ojgas55ojV2sAcEYz2wgyR7wSpiI6fHBRlRP+3XPjV9MXKxI3ZwOnznQxqQ== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/get-npm-exec-opts" "5.4.0" + "@lerna/child-process" "5.0.0" + "@lerna/get-npm-exec-opts" "5.0.0" fs-extra "^9.1.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.4.0.tgz#ccf81d1fc4007a6766dcde1cfaddb6a0a157c4ac" - integrity sha512-PQ49FWnHOXEWLwREzD3XYZAUUxssGqHLh/lC9etGC7xGjHreAcUM89GuuG8JiSdCEuNNnUXO6oCYjJKWpfWa5A== +"@lerna/npm-publish@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.0.0.tgz#a1a06e47e45e56999c85086a40f9b77f801b5a00" + integrity sha512-jnapZ2jRajSzshSfd1Y3rHH5R7QC+JJlYST04FBebIH3VePwDT7uAglDCI4um2THvxkW4420EzE4BUMUwKlnXA== dependencies: - "@lerna/otplease" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" + "@lerna/otplease" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" fs-extra "^9.1.0" - libnpmpublish "^6.0.4" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + libnpmpublish "^4.0.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" pify "^5.0.0" - read-package-json "^5.0.1" + read-package-json "^3.0.0" -"@lerna/npm-run-script@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.4.0.tgz#efccba87b1abbca0ab831de3deaa604f3a75d48f" - integrity sha512-VkEmTioVTyzGKpKJ9fD5NYww5eoUAqWwvFeI5lCGN0eRd7AyQrdRu8cnHpg+bRW1qzE7GReDWdB6WKQ9gBxc4w== +"@lerna/npm-run-script@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.0.0.tgz#114374b89f228c9719bbfacf9f08d6aac2739fb2" + integrity sha512-qgGf0Wc/E2YxPwIiF8kC/OB9ffPf0/HVtPVkqrblVuNE9XVP80WilOH966PIDiXzwXaCo/cTswFoBeseccYRGw== dependencies: - "@lerna/child-process" "5.4.0" - "@lerna/get-npm-exec-opts" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + "@lerna/get-npm-exec-opts" "5.0.0" + npmlog "^4.1.2" -"@lerna/otplease@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.4.0.tgz#791942b669f2d6b861fa505dc870fa2f5006b574" - integrity sha512-0chUZ+3CLirEzhXogKFFJ8AftZbrAEr2Fm2EErP77T5ml7eCwuvHgXkQvvHxYJnkO6bJ72cNPmsZeOx+2fhbow== +"@lerna/otplease@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.0.0.tgz#5b0419f64908d7ad840c2735e0284d67cd37095b" + integrity sha512-QLLkEy1DPN1XFRAAZDHxAD26MHFQDHfzB6KKSzRYxbHc6lH/YbDaMH1RloSWIm7Hwkxl/3NgpokgN4Lj5XFuzg== dependencies: - "@lerna/prompt" "5.4.0" + "@lerna/prompt" "5.0.0" -"@lerna/output@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/output/-/output-5.4.0.tgz#9aec36e2424d58671c30034b1d932b335f3f8a5e" - integrity sha512-tnVjGDCyugbEvS1XNihwcLdOxGTGbHInnhKg9OtPgDX4dwv40Zliyrk1VyjJGwYiSoblznut9wQb5zXNOOmBQg== +"@lerna/output@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/output/-/output-5.0.0.tgz#f3712f0cad3e9ef73c803fe368f6a9ac20403868" + integrity sha512-/7sUJQWPcvnLudjVIdN7t9MlfBLuP4JCDAWgQMqZe+wpQRuKNyKQ5dLBH5NHU/ElJCjAwMPfWuk3mh3GuvuiGA== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/pack-directory@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.4.0.tgz#6b07f1bc3e6d695870eacd1908cc7d7ab31ef546" - integrity sha512-Yx9RwPYlfjSynhFBdGqI0KV1orlj8h2W2y+uSWUkdKbBFeHDwO/eJ879i3ZWsY/aU+GhWZWiC+f4jG1wAEs+RQ== +"@lerna/pack-directory@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.0.0.tgz#f277418545786ca68ca15647bab52ad29bd57f59" + integrity sha512-E1SNDS7xSWhJrTSmRzJK7DibneljrymviKcsZW3mRl4TmF4CpYJmNXCMlhEtKEy6ghnGQvnl3/4+eslHDJ5J/w== dependencies: - "@lerna/get-packed" "5.4.0" - "@lerna/package" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/temp-write" "5.4.0" - npm-packlist "^5.1.1" - npmlog "^6.0.2" + "@lerna/get-packed" "5.0.0" + "@lerna/package" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/temp-write" "5.0.0" + npm-packlist "^2.1.4" + npmlog "^4.1.2" tar "^6.1.0" -"@lerna/package-graph@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.4.0.tgz#dc0fab8456fd9990d9efa606a7ce510806a4e94c" - integrity sha512-oBmwR5BVfjLpXVFQ7z37DbhQpQPWCm+KlrcRv+R1IQl3kaJEwIOx/ww9FPGOx3r1Uu9cEIrjCcWr6bjGLEcejw== +"@lerna/package-graph@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.0.0.tgz#53e88ef46359ef7a2f6e3b7c5bab82302a10653f" + integrity sha512-Z3QeUQVjux0Blo64rA3/NivoLDlsQBjsZRIgGLbcQh7l7pJrqLK1WyNCBbPJ0KQNljQqUXthCKzdefnEWe37Ew== dependencies: - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/validation-error" "5.4.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/validation-error" "5.0.0" + npm-package-arg "^8.1.0" + npmlog "^4.1.2" semver "^7.3.4" -"@lerna/package@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/package/-/package-5.4.0.tgz#98cc92ba74651045ac6ffa8df671eb266ef3241e" - integrity sha512-lfj4AmN7STzWR+ML5FKhVjnG/tBYBmUWFP2D0WP7jaBCtvA4YfhTRX8bnIPTB6QoYrJl72cPx7eTxGD/VO0ZKA== +"@lerna/package@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/package/-/package-5.0.0.tgz#4beeb3a1e8eed6e7ae9cebca283c7684278cdd28" + integrity sha512-/JiUU88bhbYEUTzPqoGLGwrrdWWTIVMlBb1OPxCGNGDEqYYNySX+OTTSs3zGMcmJnRNI0UyQALiEd0sh3JFN5w== dependencies: load-json-file "^6.2.0" - npm-package-arg "8.1.1" + npm-package-arg "^8.1.0" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.4.0.tgz#0f7b548254c09a1e79716cac13c6b8ad9457240d" - integrity sha512-sbVnPq4dlY2VC3xKer5eBo9kevsQoddqQvLV4x+skeFkk50+faB9SH7J9n0zHm9PbxfrJX1TtL1EuxzHcFMKTg== +"@lerna/prerelease-id-from-version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.0.0.tgz#3edb90ba9ceace97708d03ff9f650d177f973184" + integrity sha512-bUZwyx6evRn2RxogOQXaiYxRK1U/1Mh/KLO4n49wUhqb8S8Vb9aG3+7lLOgg4ZugHpj9KAlD3YGEKvwYQiWzhg== dependencies: semver "^7.3.4" -"@lerna/profiler@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.4.0.tgz#c300661a4692be6f3359530054f8ce32a0a0503c" - integrity sha512-0wo43ejOjQHeJ2cEU2Pp4//2lxjsi4ioQamkelu8YISRCC0ojGFB4ra22osj4/jRfstJ0DiaV8edrOht1TXJIA== +"@lerna/profiler@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.0.0.tgz#e1b74d17dbd6172b5ce9c80426b336bf6ab2e8e9" + integrity sha512-hFX+ZtoH7BdDoGI+bqOYaSptJTFI58wNK9qq/pHwL5ksV7vOhxP2cQAuo1SjgBKHGl0Ex/9ZT080YVV4jP1ehw== dependencies: fs-extra "^9.1.0" - npmlog "^6.0.2" + npmlog "^4.1.2" upath "^2.0.1" -"@lerna/project@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/project/-/project-5.4.0.tgz#bd1bbd5bfce6b05decda1e97e06f27bd098b64f9" - integrity sha512-lr8+EybiRNmS6ecDtFmXzEUNcOepbvku9oxBc47CtvXtCcLdDLG4bI9TXrN4lUO2vJajXTSlhN7sD1LVUkcYdg== +"@lerna/project@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/project/-/project-5.0.0.tgz#31672891236696b2a70226388de0300c6086d75f" + integrity sha512-+izHk7D/Di2b0s69AzKzAa/qBz32H9s67oN9aKntrjNylpY7iN5opU157l60Kh4TprYHU5bLisqzFLZsHHADGw== dependencies: - "@lerna/package" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/package" "5.0.0" + "@lerna/validation-error" "5.0.0" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" glob-parent "^5.1.1" globby "^11.0.2" load-json-file "^6.2.0" - npmlog "^6.0.2" + npmlog "^4.1.2" p-map "^4.0.0" resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.4.0.tgz#719fdbcd37ad6adaa974cdaf7f3bad491ae673e0" - integrity sha512-Kuw/YpQLwrbKx9fp/wWXi8jiZ8mqmpE7UUVWcFNed0oSHrlUpIhRXPSSTEHsX983Iepj65YL1O6Zffr3t/vP/Q== +"@lerna/prompt@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.0.0.tgz#31d3d82ecd17e863f8b7cc7944accff4f3de3395" + integrity sha512-cq2k04kOPY1yuJNHJn4qfBDDrCi9PF4Q228JICa6bxaONRf/C/TRsEQXHVIdlax8B3l53LnlGv5GECwRuvkQbA== dependencies: - inquirer "^8.2.4" - npmlog "^6.0.2" + inquirer "^7.3.3" + npmlog "^4.1.2" -"@lerna/publish@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.4.0.tgz#bb8d6f68a72fb889050e8043567f67d1fc933723" - integrity sha512-C+p3K6cKLML4L/7xkmPAafmBdPlltjZtsKuUKSKKnt/FrX4giv81Kp0FQ0mAps0JN1A++ni0AOJAxlBowZs1Pg== +"@lerna/publish@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/publish/-/publish-5.0.0.tgz#27c4c469e6abd5b52e977568d328632929e859b1" + integrity sha512-QEWFtN8fW1M+YXEQOWb2XBBCT137CrwHYK29ojMXW9HShvSZezf8Q/niH91nZ4kIhWdpOGz4w3rKopsumAM5SA== dependencies: - "@lerna/check-working-tree" "5.4.0" - "@lerna/child-process" "5.4.0" - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/describe-ref" "5.4.0" - "@lerna/log-packed" "5.4.0" - "@lerna/npm-conf" "5.4.0" - "@lerna/npm-dist-tag" "5.4.0" - "@lerna/npm-publish" "5.4.0" - "@lerna/otplease" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/pack-directory" "5.4.0" - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/pulse-till-done" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/validation-error" "5.4.0" - "@lerna/version" "5.4.0" + "@lerna/check-working-tree" "5.0.0" + "@lerna/child-process" "5.0.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/describe-ref" "5.0.0" + "@lerna/log-packed" "5.0.0" + "@lerna/npm-conf" "5.0.0" + "@lerna/npm-dist-tag" "5.0.0" + "@lerna/npm-publish" "5.0.0" + "@lerna/otplease" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/pack-directory" "5.0.0" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/pulse-till-done" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/validation-error" "5.0.0" + "@lerna/version" "5.0.0" fs-extra "^9.1.0" - libnpmaccess "^6.0.3" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" + libnpmaccess "^4.0.1" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" + npmlog "^4.1.2" p-map "^4.0.0" p-pipe "^3.1.0" - pacote "^13.6.1" + pacote "^13.4.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.4.0.tgz#5221927fa1acc25714fcb5c2cd70872770f3ed63" - integrity sha512-d3f8da0J+fZg/EXFVih1cdTfYCn74l1aJ6vEH18CdDlylOLONRgGWliMLnrQMssSVHu6AF1BSte27yfJ6sfOfw== +"@lerna/pulse-till-done@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.0.0.tgz#df3c32c2d7457362956d997da366f5c060953eef" + integrity sha512-qFeVybGIZbQSWKasWIzZmHsvCQMC/AwTz5B44a0zTt5eSNQuI65HRpKKUgmFFu/Jzd7u+yp7eP+NQ53gjOcQlQ== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/query-graph@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.4.0.tgz#20f7dea4997aac4b685c1336ca731d07da9ccd04" - integrity sha512-CC6wi63C9r/S7mJ1ENsBGz1O76Rog1LRTBqiLUlVsJxVf+X+WboIVcouoESNDeudxJ0Fl0sFdvRVZ5Q2Bt7xKw== +"@lerna/query-graph@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.0.0.tgz#76c45f648915ef5c884c32c3d35daa3ebb53440b" + integrity sha512-C/HXssBI8DVsZ/7IDW6JG9xhoHtWywi3L5oZB9q84MBYpQ9otUv6zbB+K4JCj7w9WHcuFWe2T/mc9wsaFuvB5g== dependencies: - "@lerna/package-graph" "5.4.0" + "@lerna/package-graph" "5.0.0" -"@lerna/resolve-symlink@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.4.0.tgz#ce88674ea1d049cc750755939a5e1303b1beded5" - integrity sha512-shPld+YY4lf7teHkxTBBUjTZ7RNvqALZ8Nc5y1xvuHmrornGqwDeFZGbu2OZgc409HNWUheZHLluSrUIP/mn0Q== +"@lerna/resolve-symlink@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.0.0.tgz#edff89908e90a390791ab762305d34aa95e7bdbe" + integrity sha512-O1EMQh3O3nKjLyI2guCCaxmi9xzZXpiMZhrz2ki5ENEDB2N1+f7cZ2THT0lEOIkLRuADI6hrzoN1obJ+TTk+KQ== dependencies: fs-extra "^9.1.0" - npmlog "^6.0.2" - read-cmd-shim "^3.0.0" + npmlog "^4.1.2" + read-cmd-shim "^2.0.0" -"@lerna/rimraf-dir@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.4.0.tgz#6e81edb5722dd9003d2ef3c9639bc9287234f2d4" - integrity sha512-QGFlQUcdQaUAs3mXMOvbb4WU0tuinTDVoH+1ztIJf5vj/NAHWTH/H0KxPGIJJUODtyuaNCufU7LDXkQMOORGyQ== +"@lerna/rimraf-dir@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.0.0.tgz#9e7689610415e6d68c9e766a462c8acfdbf04b9a" + integrity sha512-hWJg/13CiSUrWWEek3B/A1mkvBbcPvG5z69/Ugyerdpzlw44ubf02MAZ0/kXPJjkICI2hMrS07YotQ60LdYpCw== dependencies: - "@lerna/child-process" "5.4.0" - npmlog "^6.0.2" + "@lerna/child-process" "5.0.0" + npmlog "^4.1.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.4.0.tgz#c42bf12c44c4b4df96b20db19b3934e2db6d5abd" - integrity sha512-d+XO8X5Kiuv+w65wrU8thrObJwgODqA12xLW7kCLnh20njTWimOfjq/xsbSbSwRr5es8uHtK7Vqns+nBVSTeEw== +"@lerna/run-lifecycle@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.0.0.tgz#0f62c2faebc19e4ee247bdfa1e05b2a9f51b0637" + integrity sha512-36mAm9rC5DSliFShI0Y4ICjgrJXdIIVt7VW9rdbdJ8/XYjRHDzhGPB9Sc1neJOVlGL4DmaArvh5tGgo62KPJYQ== dependencies: - "@lerna/npm-conf" "5.4.0" - "@npmcli/run-script" "^4.1.7" - npmlog "^6.0.2" + "@lerna/npm-conf" "5.0.0" + "@npmcli/run-script" "^3.0.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.0.0.tgz#0b0156e3ebe2bf768b9ba1339e02e947e70d1dd1" + integrity sha512-B2s1N/+r3sfPOLRA2svNk+C52JpXQleMuGap0yhOx5mZzR1M2Lo4vpe9Ody4hCvXQjfdLx/U342fxVmgugUtfQ== + dependencies: + "@lerna/query-graph" "5.0.0" p-queue "^6.6.2" -"@lerna/run-topologically@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.4.0.tgz#f0a3254553022fd8812a16cd25a260e97f211af7" - integrity sha512-wwelSpQT/ZDornu0+idYKfY1q7ggIOMiXrGq9nDshbtgPwme/CMEr5SPur80oR5Z6Pc2Fm7cHtxI2je7YOuqKA== +"@lerna/run@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/run/-/run-5.0.0.tgz#3af69d1a787866cf85072a0ae9571b9c3bf262e7" + integrity sha512-8nBZstqKSO+7wHlKk1g+iexSYRVVNJq/u5ZbAzBiHNrABtqA6/0G7q9vsAEMsnPZ8ARAUYpwvbfKTipjpWH0VA== dependencies: - "@lerna/query-graph" "5.4.0" - p-queue "^6.6.2" - -"@lerna/run@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/run/-/run-5.4.0.tgz#6373fdbe950d24f56305dd89946f9966ab80113b" - integrity sha512-UgdsV3dvdmSLoQIrh9Wxb5kiTbwrQP7dN5MOADfH+DhO+/pktBsp8KtLr1g+y+nNyHc2LRkAL+E/KozLATbKSA== - dependencies: - "@lerna/command" "5.4.0" - "@lerna/filter-options" "5.4.0" - "@lerna/npm-run-script" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/profiler" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/timer" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/command" "5.0.0" + "@lerna/filter-options" "5.0.0" + "@lerna/npm-run-script" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/profiler" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/timer" "5.0.0" + "@lerna/validation-error" "5.0.0" p-map "^4.0.0" -"@lerna/symlink-binary@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.4.0.tgz#33dfe2ba92ed3295c3a08710c9964dedde493d2a" - integrity sha512-DqwgjBywI8HgBaQYJjHzLkJ6IWspcL8rb8zgo4O/HSC7NJDTq3ir9S1HkzixxszL/G4Zp6mfqj0AGfzLYhjKLA== +"@lerna/symlink-binary@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.0.0.tgz#f9da5673ed3a44570fa4d2e691759f82bd7ad057" + integrity sha512-uYyiiNjkdL1tWf8MDXIIyCa/a2gmYaUxagqMgEZ4wRtOk+PDypDwMUFVop/EQtUWZqG5CAJBJYOztG3DdapTbA== dependencies: - "@lerna/create-symlink" "5.4.0" - "@lerna/package" "5.4.0" + "@lerna/create-symlink" "5.0.0" + "@lerna/package" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.4.0.tgz#49d616b23750583fb6ffb0b30c07e23397948ba9" - integrity sha512-iKM4dykV0NHCsXEchgEsxtWur1OQ2glLXmJb02QHPsFdqLaAgl0F77+dVPfN16I743lgf52sz2rqIcVo7VeJrg== +"@lerna/symlink-dependencies@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.0.0.tgz#878b0f52737f82bb7014e13afda8efc606fc071c" + integrity sha512-wlZGOOB87XMy278hpF4fOwGNnjTXf1vJ/cFHIdKsJAiDipyhtnuCiJLBDPh4NzEGb02o4rhaqt8Nl5yWRu9CNA== dependencies: - "@lerna/create-symlink" "5.4.0" - "@lerna/resolve-symlink" "5.4.0" - "@lerna/symlink-binary" "5.4.0" + "@lerna/create-symlink" "5.0.0" + "@lerna/resolve-symlink" "5.0.0" + "@lerna/symlink-binary" "5.0.0" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.4.0.tgz#6aa4db0019e45a74f8d4e8ca06644e2a86d93202" - integrity sha512-dojKAYCWhOmUw4fnJpruGfgBA9RMBW5mVkKJ5HcB2uruJza92ffV9SRADe5bnrIZDu4/mh/6lPU0+rVHvJhWsA== +"@lerna/temp-write@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.0.0.tgz#44f8c7c82f498e15db33c166d063be117b819162" + integrity sha512-JOkRR6xyASuBy1udyS/VD52Wgywnz7cSKppD+QKIDseNzTq27I9mNmb702BSXNXIdD19lLVQ7q6WoAlpnelnZg== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -4716,42 +4720,42 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.4.0.tgz#0915ec1f22c6b16157fef91c2364b464d41773bb" - integrity sha512-Ow070AbPVIYO5H1m0B85VGrQtYPa47s4cbA9gj9iU6VBVnw/F7tDN0e/QfGhYgb4atwc046WoZmUQYyD7w9l/g== +"@lerna/timer@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/timer/-/timer-5.0.0.tgz#ab8fba29f90de21b0eb02406916269122deb2e41" + integrity sha512-p2vevkpB6V/b0aR8VyMLDfg0Arp9VvMxcZOEu+IfZ9XKTtnbwjWPHKUOS34x/VGa6bnOIWjE046ixWymOs/fTw== -"@lerna/validation-error@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.4.0.tgz#ede63fccdb7ef8666fefb47151a475fd976afb34" - integrity sha512-H/CiOgMlZO0QlGbVGk1iVKDbtWKV0gUse9XwP7N15qroCJU2d6u0XUJS5eCTNQ/JrLdFCtEdzg3uPOHbpIOykw== +"@lerna/validation-error@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.0.0.tgz#3d3557023e3eb2fd3d8fc9c89f7352a1b6e5bd3e" + integrity sha512-fu/MhqRXiRQM2cirP/HoSkfwc5XtJ21G60WHv74RnanKBqWEZAUALWa3MQN2sYhVV/FpDW3GLkO008IW5NWzdg== dependencies: - npmlog "^6.0.2" + npmlog "^4.1.2" -"@lerna/version@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/version/-/version-5.4.0.tgz#61ef5032e5c73ee271f2c97d925503c92d37db73" - integrity sha512-SZZuSYkmMb/QKDCMM2IBxX2O5RN7O18ZWi75SCRQ+MZHXt6Yl4VC/l16TBtM8Nlf3ZmBP20sIWbm5UqD9f3FjQ== +"@lerna/version@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/version/-/version-5.0.0.tgz#36a808e8b4458febd58a6b76852f2ce30e740ca1" + integrity sha512-M8KvdyG5kR/d3wgg5S46Q2YMf0L9iw9MiumTvlDP4ckysTt+04kS74Vp4+aClgPM4xaoI5OuMrs6wy5ICcd3Pw== dependencies: - "@lerna/check-working-tree" "5.4.0" - "@lerna/child-process" "5.4.0" - "@lerna/collect-updates" "5.4.0" - "@lerna/command" "5.4.0" - "@lerna/conventional-commits" "5.4.0" - "@lerna/github-client" "5.4.0" - "@lerna/gitlab-client" "5.4.0" - "@lerna/output" "5.4.0" - "@lerna/prerelease-id-from-version" "5.4.0" - "@lerna/prompt" "5.4.0" - "@lerna/run-lifecycle" "5.4.0" - "@lerna/run-topologically" "5.4.0" - "@lerna/temp-write" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/check-working-tree" "5.0.0" + "@lerna/child-process" "5.0.0" + "@lerna/collect-updates" "5.0.0" + "@lerna/command" "5.0.0" + "@lerna/conventional-commits" "5.0.0" + "@lerna/github-client" "5.0.0" + "@lerna/gitlab-client" "5.0.0" + "@lerna/output" "5.0.0" + "@lerna/prerelease-id-from-version" "5.0.0" + "@lerna/prompt" "5.0.0" + "@lerna/run-lifecycle" "5.0.0" + "@lerna/run-topologically" "5.0.0" + "@lerna/temp-write" "5.0.0" + "@lerna/validation-error" "5.0.0" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" minimatch "^3.0.4" - npmlog "^6.0.2" + npmlog "^4.1.2" p-map "^4.0.0" p-pipe "^3.1.0" p-reduce "^2.1.0" @@ -4760,13 +4764,13 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.4.0.tgz#cb207187ce86e6c4fb46e971d2ea355c7ca53d20" - integrity sha512-Zj2rRG5HasQNOaVmOaSSAn6wZ4esJSJ/fI/IYK1yCvx9dMq5X0BAiVBWijXW7V1xlwJY0TDeI82p36HS09dFLQ== +"@lerna/write-log-file@5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.0.0.tgz#ad3d33d6153b962beef48442ab6472233b5d5197" + integrity sha512-kpPNxe9xm36QbCWY7DwO96Na6FpCHzZinJtw6ttBHslIcdR38lZuCp+/2KfJcVsRIPNOsp1VvgP7EZIKiBhgjw== dependencies: - npmlog "^6.0.2" - write-file-atomic "^4.0.1" + npmlog "^4.1.2" + write-file-atomic "^3.0.3" "@lezer/common@^1.0.0": version "1.0.0" @@ -5115,31 +5119,31 @@ tslib "2.3.1" uuid "8.3.2" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@nodelib/fs.stat" "2.0.5" + "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== "@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + version "1.2.4" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: - "@nodelib/fs.scandir" "2.1.5" + "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@npmcli/arborist@5.3.0": - version "5.3.0" - resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" - integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== +"@npmcli/arborist@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.2.0.tgz#ee40dfe1f81ae1524819ee39c8f3e7022b0d6269" + integrity sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -5149,7 +5153,7 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^4.1.3" + "@npmcli/run-script" "^3.0.0" bin-links "^3.0.0" cacache "^16.0.6" common-ancestor-path "^1.0.1" @@ -5163,7 +5167,7 @@ npm-pick-manifest "^7.0.0" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" - pacote "^13.6.1" + pacote "^13.0.5" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -5214,18 +5218,23 @@ treeverse "^1.0.4" walk-up-path "^1.0.0" +"@npmcli/ci-detect@^1.0.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" + integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== + "@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + version "1.0.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" + integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" "@npmcli/fs@^2.1.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.1.tgz#c0c480b03450d8b9fc086816a50cb682668a48bf" - integrity sha512-1Q0uzx6c/NVNGszePbr5Gc2riSU1zLpNlo/1YWntH+eaPmMgBssAW0qXofCVkpdj3ce4swZtlDYQu+NKiYcptg== + version "2.1.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" + integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== dependencies: "@gar/promisify" "^1.1.3" semver "^7.3.5" @@ -5278,9 +5287,9 @@ read-package-json-fast "^2.0.1" "@npmcli/map-workspaces@^2.0.3": - version "2.0.4" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" - integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== + version "2.0.3" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" + integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== dependencies: "@npmcli/name-from-folder" "^1.0.1" glob "^8.0.1" @@ -5298,16 +5307,23 @@ semver "^7.3.2" "@npmcli/metavuln-calculator@^3.0.1": - version "3.1.1" - resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" - integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== + version "3.1.0" + resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.0.tgz#b1c2f0991c4f2d992b1615a54d4358c05efc3702" + integrity sha512-Q5fbQqGDlYqk7kWrbg6E2j/mtqQjZop0ZE6735wYA1tYNHguIDjAuWs+kFb5rJCkLIlXllfapvsyotYKiZOTBA== dependencies: cacache "^16.0.0" json-parse-even-better-errors "^2.3.1" pacote "^13.0.3" semver "^7.3.5" -"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + +"@npmcli/move-file@^1.1.0": version "1.1.2" resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== @@ -5376,30 +5392,15 @@ node-gyp "^8.2.0" read-package-json-fast "^2.0.1" -"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": - version "4.2.0" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.0.tgz#2c25758f80831ba138afe25225d456e89acedac3" - integrity sha512-e/QgLg7j2wSJp1/7JRl0GC8c7PMX+uYlA/1Tb+IDOLdSM4T7K1VQ9mm9IGU3WRtY5vEIObpqCLb3aCNCug18DA== +"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1", "@npmcli/run-script@^3.0.2": + version "3.0.3" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz#66afa6e0c4c3484056195f295fa6c1d1a45ddf58" + integrity sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q== dependencies: "@npmcli/node-gyp" "^2.0.0" "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^9.0.0" + node-gyp "^8.4.1" read-package-json-fast "^2.0.3" - which "^2.0.2" - -"@nrwl/cli@14.5.4": - version "14.5.4" - resolved "https://registry.npmjs.org/@nrwl/cli/-/cli-14.5.4.tgz#86ac4fbcd1bf079b67c420376cf696b68fcc1200" - integrity sha512-UYr14hxeYV8p/zt6D6z33hljZJQROJAVxSC+mm72fyVvy88Gt0sQNLfMmOARXur0p/73PSLM0jJ2Sr7Ftsuu+A== - dependencies: - nx "14.5.4" - -"@nrwl/tao@14.5.4": - version "14.5.4" - resolved "https://registry.npmjs.org/@nrwl/tao/-/tao-14.5.4.tgz#a67097d424bcbf7073a1944ea1a0209c4f4f859c" - integrity sha512-a2GCuSE8WghjehuU3GVO63KZEnZXXQiqEg137yN/Na+PxwSu68XeaX53SLyzRskTV120YwBBy1YCTNzAZxxsjg== - dependencies: - nx "14.5.4" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -5752,7 +5753,7 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.5.3": +"@octokit/rest@^18.1.0", "@octokit/rest@^18.5.3": version "18.5.6" resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.6.tgz#8c9a7c9329c7bbf478af20df78ddeab0d21f6d89" integrity sha512-8HdG6ZjQdZytU6tCt8BQ2XLC7EJ5m4RrbyU/EARSkAM1/HP3ceOzMG/9atEfe17EDMer3IVdHWLedz2wDi73YQ== @@ -5876,14 +5877,6 @@ resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz#a167e46c10d05a07ab299fc518793b0cff8f6924" integrity sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog== -"@parcel/watcher@2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" - integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== - dependencies: - node-addon-api "^3.2.1" - node-gyp-build "^4.3.0" - "@peculiar/asn1-schema@^2.1.6": version "2.2.0" resolved "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.2.0.tgz#d8a54527685c8dee518e6448137349444310ad64" @@ -7186,7 +7179,7 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/jsonwebtoken@^8.3.3", "@types/jsonwebtoken@^8.5.0": version "8.5.0" @@ -8405,7 +8398,7 @@ acorn@^8.8.0: add-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= address@^1.0.1, address@^1.1.2: version "1.1.2" @@ -8424,19 +8417,19 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== +agentkeepalive@^4.1.3, agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" + integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== dependencies: debug "^4.1.0" depd "^1.1.2" humanize-ms "^1.2.1" -agentkeepalive@^4.1.4, agentkeepalive@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz#616ce94ccb41d1a39a45d203d8076fe98713062d" - integrity sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw== +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== dependencies: debug "^4.1.0" depd "^1.1.2" @@ -8749,9 +8742,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + version "3.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" + integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -8842,7 +8835,7 @@ array-flatten@^2.1.2: array-ify@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= array-includes@^3.1.2, array-includes@^3.1.4: version "3.1.4" @@ -9460,21 +9453,21 @@ bignumber.js@^9.0.0: integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== bin-links@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" - integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ== + version "3.0.0" + resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.0.tgz#8273063638919f6ba4fbe890de9438c1b3adf0b7" + integrity sha512-fC7kPWcEkAWBgCKxmAMqZldlIeHsXwQy9JXzrppAVQiukGiDKxmYesJcBKWu6UMwx/5GOfo10wtK/4zy+Xt/mg== dependencies: - cmd-shim "^5.0.0" + cmd-shim "^4.0.1" mkdirp-infer-owner "^2.0.0" npm-normalize-package-bin "^1.0.0" - read-cmd-shim "^3.0.0" + read-cmd-shim "^2.0.0" rimraf "^3.0.0" write-file-atomic "^4.0.0" binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.0.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== binary-search@^1.3.5: version "1.3.6" @@ -9825,7 +9818,7 @@ builtin-status-codes@^3.0.0: builtins@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= builtins@^5.0.0: version "5.0.1" @@ -9847,9 +9840,9 @@ byline@^5.0.0: integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= byte-size@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" - integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== + version "7.0.0" + resolved "https://registry.npmjs.org/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032" + integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ== bytes@3.0.0: version "3.0.0" @@ -10074,14 +10067,6 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -10197,7 +10182,7 @@ check-types@^11.1.1: resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.5.3: +chokidar@^3.3.1, chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -10291,22 +10276,17 @@ clean-stack@^2.0.0: resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@3.1.0, cli-cursor@^3.1.0: +cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" -cli-spinners@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - cli-spinners@^2.5.0: - version "2.7.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" - integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + version "2.5.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== cli-table3@~0.6.1: version "0.6.1" @@ -10427,10 +10407,10 @@ cluster-key-slot@^1.1.0: resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== -cmd-shim@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" - integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== +cmd-shim@^4.0.1, cmd-shim@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" + integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== dependencies: mkdirp-infer-owner "^2.0.0" @@ -10600,12 +10580,12 @@ colorspace@1.1.x: color "3.0.x" text-hex "1.0.x" -columnify@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= dependencies: - strip-ansi "^6.0.1" + strip-ansi "^3.0.0" wcwidth "^1.0.0" combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: @@ -10778,7 +10758,7 @@ compute-lcm@^1.1.0, compute-lcm@^1.1.2: concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^2.0.0: version "2.0.0" @@ -10827,9 +10807,9 @@ concurrently@^7.0.0: yargs "^17.3.1" config-chain@^1.1.12: - version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + version "1.1.12" + resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -10893,14 +10873,14 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + version "5.0.12" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== dependencies: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-core@^4.2.4: +conventional-changelog-core@^4.2.2: version "4.2.4" resolved "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -10949,9 +10929,9 @@ conventional-commits-filter@^2.0.7: modify-values "^1.0.0" conventional-commits-parser@^3.2.0: - version "3.2.4" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== + version "3.2.1" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" + integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" @@ -10959,6 +10939,7 @@ conventional-commits-parser@^3.2.0: meow "^8.0.0" split2 "^3.0.0" through2 "^4.0.0" + trim-off-newlines "^1.0.0" conventional-recommended-bump@^6.1.0: version "6.1.0" @@ -11049,16 +11030,11 @@ core-js@^3.4.1, core-js@^3.6.5: resolved "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== -core-util-is@1.0.2: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cors@^2.8.5: version "2.8.5" resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -11860,7 +11836,7 @@ debug@~4.1.0: debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= decamelize-keys@^1.1.0: version "1.1.0" @@ -11914,7 +11890,7 @@ decompress-response@^6.0.0: dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= deep-extend@0.6.0, deep-extend@^0.6.0: version "0.6.0" @@ -12012,7 +11988,7 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= denque@^2.0.1: version "2.0.1" @@ -12065,7 +12041,7 @@ destroy@1.2.0: detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-indent@^6.0.0: version "6.1.0" @@ -12110,7 +12086,7 @@ devtools-protocol@0.0.1019158: resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz#4b08d06108a784a2134313149626ba55f030a86f" integrity sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ== -dezalgo@1.0.3: +dezalgo@1.0.3, dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= @@ -12118,14 +12094,6 @@ dezalgo@1.0.3: asap "^2.0.0" wrappy "1" -dezalgo@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" - integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - dependencies: - asap "^2.0.0" - wrappy "1" - diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -12346,11 +12314,6 @@ dotenv@^16.0.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== -dotenv@~10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - drange@^1.0.2: version "1.1.1" resolved "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" @@ -12361,16 +12324,16 @@ dset@^3.1.2: resolved "https://registry.npmjs.org/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== -duplexer@^0.1.1, duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -duplexer@~0.1.1: +duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + duplexify@^4.0.0, duplexify@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" @@ -12550,7 +12513,7 @@ enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.0, enquirer@^2.3.6, enquirer@~2.3.6: +enquirer@^2.3.0, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -12573,14 +12536,14 @@ entities@^4.3.0: integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + version "2.2.0" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== envinfo@^7.7.4: - version "7.8.1" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + version "7.7.4" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" + integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== eol@^0.9.1: version "0.9.1" @@ -13608,17 +13571,6 @@ fast-equals@^2.0.0: resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.4.tgz#3add9410585e2d7364c2deeb6a707beadb24b927" integrity sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w== -fast-glob@3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-glob@^3.2.11, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -13683,9 +13635,9 @@ fastest-stable-stringify@^2.0.2: integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.6.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz#4570c74f2ded173e71cf0beb08ac70bb85826791" + integrity sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw== dependencies: reusify "^1.0.4" @@ -13740,7 +13692,7 @@ fecha@^4.2.0: resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== -figures@3.2.0, figures@^3.0.0, figures@^3.2.0: +figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -13914,11 +13866,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatstr@^1.0.12: version "1.0.12" resolved "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" @@ -14122,7 +14069,7 @@ fs-extra@10.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1, fs-extra@^10.1.0: +fs-extra@10.1.0, fs-extra@^10.0.0, fs-extra@^10.0.1: version "10.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -14174,7 +14121,7 @@ fs-monkey@1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -14221,6 +14168,21 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" +gauge@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" + integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== + dependencies: + ansi-regex "^5.0.1" + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gauge@^4.0.3: version "4.0.4" resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" @@ -14410,9 +14372,9 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-raw-commits@^2.0.8: - version "2.0.11" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + version "2.0.10" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz#e2255ed9563b1c9c3ea6bd05806410290297bbc1" + integrity sha512-sHhX5lsbG9SOO6yXdlwgEMQ/ljIn7qMpAbJZCGfXX2fq5T8M5SrDnpYk9/4HswTildcIqatsWa91vty6VhWSaQ== dependencies: dargs "^7.0.0" lodash "^4.17.15" @@ -14423,7 +14385,7 @@ git-raw-commits@^2.0.8: git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= dependencies: gitconfiglocal "^1.0.0" pify "^2.3.0" @@ -14436,6 +14398,14 @@ git-semver-tags@^4.1.1: meow "^8.0.0" semver "^6.0.0" +git-up@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + git-up@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" @@ -14444,6 +14414,13 @@ git-up@^6.0.0: is-ssh "^1.4.0" parse-url "^7.0.2" +git-url-parse@^11.4.4: + version "11.6.0" + resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" + integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== + dependencies: + git-up "^4.0.0" + git-url-parse@^12.0.0: version "12.0.0" resolved "https://registry.npmjs.org/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" @@ -14454,7 +14431,7 @@ git-url-parse@^12.0.0: gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= dependencies: ini "^1.3.2" @@ -14482,18 +14459,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.4: - version "7.1.4" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -14519,15 +14484,16 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl path-is-absolute "^1.0.0" glob@^8.0.1: - version "8.0.3" - resolved "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + version "8.0.1" + resolved "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz#00308f5c035aa0b2a447cd37ead267ddff1577d3" + integrity sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^5.0.1" once "^1.3.0" + path-is-absolute "^1.0.0" global-agent@^3.0.0: version "3.0.0" @@ -14678,16 +14644,16 @@ got@^11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -15307,7 +15273,7 @@ humanize-duration@^3.25.1, humanize-duration@^3.26.0, humanize-duration@^3.27.0, humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= dependencies: ms "^2.0.0" @@ -15367,6 +15333,13 @@ ignore-by-default@^1.0.1: resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= +ignore-walk@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + ignore-walk@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" @@ -15386,7 +15359,7 @@ ignore@^3.3.5: resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^5.0.4, ignore@^5.1.4, ignore@^5.2.0: +ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -15423,7 +15396,7 @@ import-cwd@^3.0.0: dependencies: import-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -15431,14 +15404,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - import-from@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" @@ -15457,9 +15422,9 @@ import-lazy@~4.0.0: integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.0.2" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -15467,7 +15432,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indefinite-observable@^2.0.1: version "2.0.1" @@ -15499,7 +15464,7 @@ infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -15529,18 +15494,19 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" - integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== +init-package-json@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.2.tgz#d81a7e6775af9b618f20bba288e440b8d1ce05f3" + integrity sha512-PO64kVeArePvhX7Ff0jVWkpnE1DfGRvaWcStYrPugcJz9twQGYibagKJuIMHCX7ENcp0M6LJlcjLBuLD5KeJMg== dependencies: - npm-package-arg "^9.0.1" + glob "^7.1.1" + npm-package-arg "^8.1.0" promzard "^0.3.0" - read "^1.0.7" - read-package-json "^5.0.0" - semver "^7.3.5" + read "~1.0.1" + read-package-json "^3.0.0" + semver "^7.3.2" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" + validate-npm-package-name "^3.0.0" inline-style-parser@0.1.1: version "0.1.1" @@ -15574,7 +15540,26 @@ inquirer@8.2.2: strip-ansi "^6.0.0" through "^2.3.6" -inquirer@^8.0.0, inquirer@^8.2.0, inquirer@^8.2.4: +inquirer@^7.3.3: + version "7.3.3" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +inquirer@^8.0.0, inquirer@^8.2.0: version "8.2.4" resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== @@ -15654,10 +15639,10 @@ ioredis@^5.1.0: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.1: version "1.9.1" @@ -15802,7 +15787,14 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.8.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: version "2.10.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== @@ -15886,7 +15878,7 @@ is-extendable@^1.0.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -15958,7 +15950,7 @@ is-interactive@^1.0.0: is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= is-lower-case@^2.0.2: version "2.0.2" @@ -16024,7 +16016,7 @@ is-path-inside@^3.0.2: is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-obj@^2.0.0: version "2.1.0" @@ -16070,6 +16062,11 @@ is-primitive@^3.0.1: resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-promise@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -16126,6 +16123,13 @@ is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-ssh@^1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" + integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== + dependencies: + protocols "^1.1.0" + is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" @@ -16177,7 +16181,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= dependencies: text-extensions "^1.0.0" @@ -17212,7 +17216,7 @@ json5@^2.1.2, json5@^2.1.3, json5@^2.2.0, json5@^2.2.1: resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -jsonc-parser@3.0.0, jsonc-parser@^3.0.0: +jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== @@ -17241,7 +17245,7 @@ jsonify@~0.0.0: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= jsonpath-plus@^0.19.0: version "0.19.0" @@ -17396,15 +17400,15 @@ jsx-ast-utils@^3.3.2: array-includes "^3.1.5" object.assign "^4.1.2" -just-diff-apply@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" - integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== +just-diff-apply@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz#da89c5a4ccb14aa8873c70e2c3b6695cef45dab5" + integrity sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ== just-diff@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" - integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== + version "5.0.1" + resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz#db8fe1cfeea1156f2374bfb289826dca28e7e390" + integrity sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ== just-extend@^4.0.2: version "4.2.1" @@ -17610,29 +17614,28 @@ leasot@^12.0.0: text-table "^0.2.0" lerna@^5.0.0: - version "5.4.0" - resolved "https://registry.npmjs.org/lerna/-/lerna-5.4.0.tgz#0b3c2310146fa9480ade9c6978c7693ad5c39fe1" - integrity sha512-y1gRvW5oFo+xumYQCDadDj8r4R4o6fpmuNc94b2h8HRoiCnHZWIlMvym4m+R7kSDh0CuuYRTB2wPjUrHmQXL7w== + version "5.0.0" + resolved "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" + integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== dependencies: - "@lerna/add" "5.4.0" - "@lerna/bootstrap" "5.4.0" - "@lerna/changed" "5.4.0" - "@lerna/clean" "5.4.0" - "@lerna/cli" "5.4.0" - "@lerna/create" "5.4.0" - "@lerna/diff" "5.4.0" - "@lerna/exec" "5.4.0" - "@lerna/import" "5.4.0" - "@lerna/info" "5.4.0" - "@lerna/init" "5.4.0" - "@lerna/link" "5.4.0" - "@lerna/list" "5.4.0" - "@lerna/publish" "5.4.0" - "@lerna/run" "5.4.0" - "@lerna/version" "5.4.0" + "@lerna/add" "5.0.0" + "@lerna/bootstrap" "5.0.0" + "@lerna/changed" "5.0.0" + "@lerna/clean" "5.0.0" + "@lerna/cli" "5.0.0" + "@lerna/create" "5.0.0" + "@lerna/diff" "5.0.0" + "@lerna/exec" "5.0.0" + "@lerna/import" "5.0.0" + "@lerna/info" "5.0.0" + "@lerna/init" "5.0.0" + "@lerna/link" "5.0.0" + "@lerna/list" "5.0.0" + "@lerna/publish" "5.0.0" + "@lerna/run" "5.0.0" + "@lerna/version" "5.0.0" import-local "^3.0.2" - npmlog "^6.0.2" - nx ">=14.5.4 < 16" + npmlog "^4.1.2" leven@2.1.0: version "2.1.0" @@ -17665,26 +17668,26 @@ li@^1.3.0: resolved "https://registry.npmjs.org/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= -libnpmaccess@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" - integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== +libnpmaccess@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz#17e842e03bef759854adf6eb6c2ede32e782639f" + integrity sha512-ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" + npm-package-arg "^8.0.0" + npm-registry-fetch "^9.0.0" -libnpmpublish@^6.0.4: - version "6.0.4" - resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" - integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== +libnpmpublish@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz#ad6413914e0dfd78df868ce14ba3d3a4cc8b385b" + integrity sha512-2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA== dependencies: - normalize-package-data "^4.0.0" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" - semver "^7.3.7" - ssri "^9.0.0" + normalize-package-data "^3.0.0" + npm-package-arg "^8.1.0" + npm-registry-fetch "^9.0.0" + semver "^7.1.3" + ssri "^8.0.0" lilconfig@2.0.5: version "2.0.5" @@ -17783,7 +17786,7 @@ load-json-file@^1.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -17841,7 +17844,7 @@ loader-utils@^3.2.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -17873,6 +17876,11 @@ lodash-es@^4.17.21: resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + lodash.assign@^4.1.0, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -17966,7 +17974,7 @@ lodash.isinteger@^4.0.4: lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= lodash.isnil@^4.0.0: version "4.0.0" @@ -18028,6 +18036,21 @@ lodash.startcase@^4.4.0: resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -18153,7 +18176,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.10.1: +lru-cache@^7.10.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.10.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== @@ -18163,11 +18186,6 @@ lru-cache@^7.3.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.3.1.tgz#7702e80694ec2bf19865567a469f2b081fcf53f5" integrity sha512-nX1x4qUrKqwbIAhv4s9et4FIUVzNOpeY07bsjGUy8gwJrXH/wScImSQqXErmo/b2jZY2r0mohbLA9zVj7u1cNw== -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.13.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.2.tgz#bb5d3f1deea3f3a7a35c1c44345566a612e09cd0" - integrity sha512-VJL3nIpA79TodY/ctmZEfhASgqekbT574/c4j3jn4bKXbSCnTTCH/KltZyvL2GlV+tGSMtsWyem8DCX7qKTMBA== - lunr@^2.3.9: version "2.3.9" resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" @@ -18254,10 +18272,10 @@ make-fetch-happen@^10.0.1: socks-proxy-agent "^6.1.1" ssri "^8.0.1" -make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: - version "10.2.0" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.0.tgz#0bde3914f2f82750b5d48c6d2294d2c74f985e5b" - integrity sha512-OnEfCLofQVJ5zgKwGk55GaqosqKjaR6khQlJY3dBAA+hM25Bc5CmX5rKUfVut+rYA3uidA7zb7AvcglU87rPRg== +make-fetch-happen@^10.0.6: + version "10.1.7" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz#b1402cb3c9fad92b380ff3a863cdae5414a42f76" + integrity sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q== dependencies: agentkeepalive "^4.2.1" cacache "^16.1.0" @@ -18276,6 +18294,27 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" +make-fetch-happen@^8.0.9: + version "8.0.14" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^2.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" + make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" @@ -18626,7 +18665,12 @@ merge-stream@^2.0.0: resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -19056,13 +19100,6 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - minimatch@4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" @@ -19112,7 +19149,7 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: +minipass-fetch@^1.3.0, minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== @@ -19164,9 +19201,9 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + version "3.1.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" @@ -19541,11 +19578,6 @@ node-abort-controller@^3.0.1: resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz#f91fa50b1dee3f909afabb7e261b1e1d6b0cb74e" integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw== -node-addon-api@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-cache@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" @@ -19577,12 +19609,7 @@ node-forge@^1, node-forge@^1.3.1: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -node-gyp@^8.2.0: +node-gyp@^8.2.0, node-gyp@^8.4.1: version "8.4.1" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== @@ -19598,22 +19625,6 @@ node-gyp@^8.2.0: tar "^6.1.2" which "^2.0.2" -node-gyp@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" - integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -19704,13 +19715,13 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: validate-npm-package-license "^3.0.1" normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" + integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" + hosted-git-info "^3.0.6" + resolve "^1.17.0" + semver "^7.3.2" validate-npm-package-license "^3.0.1" normalize-package-data@^4.0.0: @@ -19735,6 +19746,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + normalize-url@^6.0.1, normalize-url@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -19766,16 +19782,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" - integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== - dependencies: - hosted-git-info "^3.0.6" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -19785,15 +19792,24 @@ npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: validate-npm-package-name "^3.0.0" npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: - version "9.1.0" - resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz#a60e9f1e7c03e4e3e4e994ea87fff8b90b522987" - integrity sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw== + version "9.0.2" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.2.tgz#f3ef7b1b3b02e82564af2d5228b4c36567dcd389" + integrity sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g== dependencies: hosted-git-info "^5.0.0" - proc-log "^2.0.1" semver "^7.3.5" validate-npm-package-name "^4.0.0" +npm-packlist@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz#40e96b2b43787d0546a574542d01e066640d09da" + integrity sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw== + dependencies: + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + npm-packlist@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" @@ -19804,7 +19820,7 @@ npm-packlist@^3.0.0: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-packlist@^5.0.0, npm-packlist@^5.1.0, npm-packlist@^5.1.1: +npm-packlist@^5.0.0, npm-packlist@^5.1.0: version "5.1.1" resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== @@ -19846,10 +19862,10 @@ npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: minizlib "^2.1.2" npm-package-arg "^8.1.5" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: - version "13.3.0" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz#0ce10fa4a699a1e70685ecf41bbfb4150d74231b" - integrity sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg== +npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: + version "13.1.1" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz#26dc4b26d0a545886e807748032ba2aefaaae96b" + integrity sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w== dependencies: make-fetch-happen "^10.0.6" minipass "^3.1.6" @@ -19859,6 +19875,20 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3 npm-package-arg "^9.0.1" proc-log "^2.0.0" +npm-registry-fetch@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz#86f3feb4ce00313bc0b8f1f8f69daae6face1661" + integrity sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA== + dependencies: + "@npmcli/ci-detect" "^1.0.0" + lru-cache "^6.0.0" + make-fetch-happen "^8.0.9" + minipass "^3.1.3" + minipass-fetch "^1.3.0" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -19900,7 +19930,17 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^6.0.0, npmlog@^6.0.2: +npmlog@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" + integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.0" + set-blocking "^2.0.0" + +npmlog@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== @@ -19941,42 +19981,6 @@ nwsapi@^2.2.0: resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -nx@14.5.4, "nx@>=14.5.4 < 16": - version "14.5.4" - resolved "https://registry.npmjs.org/nx/-/nx-14.5.4.tgz#58b6e8ee798733a6ab9aff2a19180c371482fa10" - integrity sha512-xv1nTaQP6kqVDE4PXcB1tLlgzNAPUHE/2vlqSLgxjNb6colKf0vrEZhVTjhnbqBeJiTb33gUx50bBXkurCkN5w== - dependencies: - "@nrwl/cli" "14.5.4" - "@nrwl/tao" "14.5.4" - "@parcel/watcher" "2.0.4" - chalk "4.1.0" - chokidar "^3.5.1" - cli-cursor "3.1.0" - cli-spinners "2.6.1" - cliui "^7.0.2" - dotenv "~10.0.0" - enquirer "~2.3.6" - fast-glob "3.2.7" - figures "3.2.0" - flat "^5.0.2" - fs-extra "^10.1.0" - glob "7.1.4" - ignore "^5.0.4" - js-yaml "4.1.0" - jsonc-parser "3.0.0" - minimatch "3.0.5" - npm-run-path "^4.0.1" - open "^8.4.0" - semver "7.3.4" - string-width "^4.2.3" - tar-stream "~2.2.0" - tmp "~0.2.1" - tsconfig-paths "^3.9.0" - tslib "^2.3.0" - v8-compile-cache "2.3.0" - yargs "^17.4.0" - yargs-parser "21.0.1" - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -20294,7 +20298,7 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^3.0.0: version "3.0.0" @@ -20339,7 +20343,7 @@ p-limit@^4.0.0: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" @@ -20425,7 +20429,7 @@ p-transform@^1.3.0: p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: version "2.2.0" @@ -20469,15 +20473,15 @@ pacote@^12.0.0, pacote@^12.0.2: ssri "^8.0.1" tar "^6.1.0" -pacote@^13.0.3, pacote@^13.6.1: - version "13.6.1" - resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz#ac6cbd9032b4c16e5c1e0c60138dfe44e4cc589d" - integrity sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw== +pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1: + version "13.6.0" + resolved "https://registry.npmjs.org/pacote/-/pacote-13.6.0.tgz#79ea3d3ae5a2b29e2994dcf18d75494e8d888032" + integrity sha512-zHmuCwG4+QKnj47LFlW3LmArwKoglx2k5xtADiMCivVWPgNRP5QyLDGOIjGjwOe61lhl1rO63m/VxT16pEHLWg== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/installed-package-contents" "^1.0.7" "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" + "@npmcli/run-script" "^3.0.1" cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" @@ -20552,13 +20556,13 @@ parse-bmfont-xml@^1.1.4: xml2js "^0.4.5" parse-conflict-json@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" - integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== + version "2.0.1" + resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz#76647dd072e6068bcaff20be6ccea68a18e1fb58" + integrity sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA== dependencies: json-parse-even-better-errors "^2.3.1" just-diff "^5.0.1" - just-diff-apply "^5.2.0" + just-diff-apply "^4.0.1" parse-entities@^2.0.0: version "2.0.0" @@ -20608,7 +20612,7 @@ parse-json@^2.2.0: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -20628,6 +20632,14 @@ parse-package-name@^0.1.0: resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= +parse-path@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + parse-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" @@ -20635,6 +20647,16 @@ parse-path@^5.0.0: dependencies: protocols "^2.0.0" +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + parse-url@^7.0.2: version "7.0.2" resolved "https://registry.npmjs.org/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" @@ -20812,7 +20834,7 @@ path-exists@^2.0.0: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" @@ -20822,7 +20844,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@1.0.2, path-is-inside@^1.0.2: version "1.0.2" @@ -21036,7 +21058,7 @@ pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" @@ -21586,7 +21608,7 @@ proc-log@^1.0.0: resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== -proc-log@^2.0.0, proc-log@^2.0.1: +proc-log@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== @@ -21631,7 +21653,7 @@ promise-call-limit@^1.0.1: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise-retry@^2.0.1: version "2.0.1" @@ -21664,7 +21686,7 @@ prompts@^2.0.1, prompts@^2.4.2: promzard@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= dependencies: read "1" @@ -21704,7 +21726,7 @@ property-information@^6.0.0: proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proto3-json-serializer@^1.0.0: version "1.0.0" @@ -21751,6 +21773,11 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.7" + resolved "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" + integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== + protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" @@ -21873,7 +21900,7 @@ pvutils@^1.1.3: q@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.10.3, qs@^6.10.1, qs@^6.10.2, qs@^6.10.3, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: version "6.10.3" @@ -21922,11 +21949,6 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - quick-format-unescaped@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9" @@ -22441,10 +22463,10 @@ react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" -read-cmd-shim@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" - integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== +read-cmd-shim@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" + integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" @@ -22454,7 +22476,17 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^5.0.0, read-package-json@^5.0.1: +read-package-json@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.0.tgz#2219328e77c9be34f035a4ce58d1fb8e2979adf9" + integrity sha512-4TnJZ5fnDs+/3deg1AuMExL4R1SFNRLQeOhV9c8oDKm3eoG6u8xU0r0mNNRJHi3K6B+jXmT7JOhwhAklWw9SSQ== + dependencies: + glob "^7.1.1" + json-parse-even-better-errors "^2.3.0" + normalize-package-data "^3.0.0" + npm-normalize-package-bin "^1.0.0" + +read-package-json@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== @@ -22475,7 +22507,7 @@ read-pkg-up@^1.0.1: read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -22501,7 +22533,7 @@ read-pkg@^1.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -22527,10 +22559,10 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" -read@1, read@^1.0.7: +read@1, read@~1.0.1: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= dependencies: mute-stream "~0.0.4" @@ -23059,7 +23091,7 @@ resolve.exports@^1.1.0: resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0: +resolve@^1.1.6, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0: version "1.21.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== @@ -23068,7 +23100,7 @@ resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0, resolve@^1.17.0: +resolve@^1.10.0: version "1.22.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -23150,7 +23182,7 @@ retry@0.13.1: retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= reusify@^1.0.4: version "1.0.4" @@ -23303,37 +23335,37 @@ rtl-css-js@^1.14.0: "@babel/runtime" "^7.1.2" run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + version "2.4.0" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + dependencies: + is-promise "^2.1.0" run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" + version "1.1.9" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-script-webpack-plugin@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.1.1.tgz#dad3114be32eb864d2160306e4d9c52a2c1cfd59" integrity sha512-PrxBRLv1K9itDKMlootSCyGhdTU+KbKGJ2wF6/k0eyo6M0YGPC58HYbS/J/QsDiwM0t7G99WcuCqto0J7omOXA== -rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1: +rxjs@7.5.5, rxjs@^7.1.0, rxjs@^7.5.1, rxjs@^7.5.5: version "7.5.5" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" -rxjs@^6.6.3: +rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.5.5: +rxjs@^7.0.0: version "7.5.6" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== @@ -23506,13 +23538,6 @@ semver@7.0.0, semver@~7.0.0: resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.4: - version "7.3.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -23619,7 +23644,7 @@ serve-static@1.15.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-cookie-parser@^2.4.6: version "2.4.8" @@ -23955,16 +23980,16 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" + agent-base "6" + debug "4" + socks "^2.3.3" -socks-proxy-agent@^6.1.1: +socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== @@ -23982,12 +24007,12 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.6.1, socks@^2.6.2: - version "2.7.0" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" - integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== +socks@^2.3.3, socks@^2.6.1, socks@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== dependencies: - ip "^2.0.0" + ip "^1.1.5" smart-buffer "^4.2.0" sonic-boom@^0.7.5: @@ -24001,7 +24026,7 @@ sonic-boom@^0.7.5: sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= dependencies: is-plain-obj "^1.0.0" @@ -24244,7 +24269,7 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -ssri@^9.0.0, ssri@^9.0.1: +ssri@^9.0.0: version "9.0.1" resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== @@ -24891,7 +24916,7 @@ tar-fs@~2.0.1: pump "^3.0.0" tar-stream "^2.0.0" -tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0, tar-stream@~2.2.0: +tar-stream@^2.0.0, tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -24965,7 +24990,7 @@ teeny-request@^8.0.0: temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= temp@^0.8.4: version "0.8.4" @@ -25298,7 +25323,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" @@ -25325,6 +25350,11 @@ trim-newlines@^3.0.0: resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +trim-off-newlines@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz#8df24847fcb821b0ab27d58ab6efec9f2fe961a1" + integrity sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg== + triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" @@ -25401,7 +25431,7 @@ ts-node@^9: source-map-support "^0.5.17" yn "3.1.1" -tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== @@ -25426,7 +25456,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@~2.4.0: +tslib@^2.1.0, tslib@^2.4.0, tslib@~2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -25559,7 +25589,7 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript-json-schema@^0.54.0: version "0.54.0" @@ -25596,9 +25626,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.16.3" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz#94c7a63337ee31227a18d03b8a3041c210fd1f1d" - integrity sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== + version "3.14.3" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" + integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== uid-safe@~2.1.5: version "2.1.5" @@ -26062,11 +26092,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" @@ -26092,7 +26117,7 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= dependencies: builtins "^1.0.3" @@ -26288,7 +26313,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: wcwidth@>=1.0.1, wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= dependencies: defaults "^1.0.3" @@ -26325,7 +26350,7 @@ webcrypto-core@^1.7.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= webidl-conversions@^5.0.0: version "5.0.0" @@ -26470,7 +26495,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -26592,7 +26617,7 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= wrap-ansi@^2.0.0: version "2.1.0" @@ -26623,7 +26648,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" @@ -26634,7 +26659,7 @@ write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -26644,7 +26669,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: +write-file-atomic@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== @@ -26868,16 +26893,11 @@ yaml@^2.0.0, yaml@^2.1.1: resolved "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== -yargs-parser@20.2.4: +yargs-parser@20.2.4, yargs-parser@^20.2.3: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@21.0.1: - version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -26886,7 +26906,7 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.3: +yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -26947,7 +26967,7 @@ yargs@^17.0.0, yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^21.0.0" -yargs@^17.1.1, yargs@^17.3.1, yargs@^17.4.0: +yargs@^17.1.1, yargs@^17.3.1: version "17.5.1" resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== From d6ec65b61821edfb7559b5e0f8d596ad343d9979 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:45:41 +0200 Subject: [PATCH 017/239] root: pin lerna to 5.0 until we know what caused the CI issues Signed-off-by: Patrik Oldsberg --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 324b2e811c..855a91f0f4 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "eslint-plugin-notice": "^0.9.10", "fs-extra": "10.1.0", "husky": "^8.0.0", - "lerna": "^5.0.0", + "lerna": "~5.0.0", "lint-staged": "^13.0.0", "minimist": "^1.2.5", "prettier": "^2.2.1", diff --git a/yarn.lock b/yarn.lock index 734206b1a7..7a871fc95a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17613,7 +17613,7 @@ leasot@^12.0.0: strip-ansi "^6.0.0" text-table "^0.2.0" -lerna@^5.0.0: +lerna@~5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz#077e35d41fcead5ea223af1862dc25475e1aaf2a" integrity sha512-dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA== From 888698a308581a505191d2f58b88df9883004ddf Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 13:48:16 +0200 Subject: [PATCH 018/239] yarn.lock: sync with new release Signed-off-by: Patrik Oldsberg --- yarn.lock | 110 +++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7a871fc95a..b95ddada1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13204,61 +13204,61 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.74-next.1" + version "0.2.74-next.2" dependencies: - "@backstage/app-defaults" "^1.0.5-next.0" + "@backstage/app-defaults" "^1.0.5-next.1" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.0" + "@backstage/cli" "^0.18.1-next.1" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.10.1-next.1" + "@backstage/core-components" "^0.11.0-next.2" "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.0" - "@backstage/plugin-airbrake" "^0.3.8-next.0" - "@backstage/plugin-apache-airflow" "^0.2.1-next.0" - "@backstage/plugin-api-docs" "^0.8.8-next.1" - "@backstage/plugin-azure-devops" "^0.1.24-next.0" - "@backstage/plugin-badges" "^0.2.32-next.0" + "@backstage/integration-react" "^1.1.3-next.1" + "@backstage/plugin-airbrake" "^0.3.8-next.1" + "@backstage/plugin-apache-airflow" "^0.2.1-next.1" + "@backstage/plugin-api-docs" "^0.8.8-next.2" + "@backstage/plugin-azure-devops" "^0.1.24-next.1" + "@backstage/plugin-badges" "^0.2.32-next.1" "@backstage/plugin-catalog-common" "^1.0.5-next.0" - "@backstage/plugin-catalog-graph" "^0.2.20-next.0" - "@backstage/plugin-catalog-import" "^0.8.11-next.0" - "@backstage/plugin-catalog-react" "^1.1.3-next.1" - "@backstage/plugin-circleci" "^0.3.8-next.0" - "@backstage/plugin-cloudbuild" "^0.3.8-next.0" - "@backstage/plugin-code-coverage" "^0.2.1-next.0" - "@backstage/plugin-cost-insights" "^0.11.30-next.0" - "@backstage/plugin-dynatrace" "^0.1.2-next.0" - "@backstage/plugin-explore" "^0.3.39-next.0" - "@backstage/plugin-gcalendar" "^0.3.4-next.0" - "@backstage/plugin-gcp-projects" "^0.3.27-next.0" - "@backstage/plugin-github-actions" "^0.5.8-next.0" - "@backstage/plugin-gocd" "^0.1.14-next.0" - "@backstage/plugin-graphiql" "^0.2.40-next.0" - "@backstage/plugin-home" "^0.4.24-next.1" - "@backstage/plugin-jenkins" "^0.7.7-next.1" - "@backstage/plugin-kafka" "^0.3.8-next.0" - "@backstage/plugin-kubernetes" "^0.7.1-next.1" - "@backstage/plugin-lighthouse" "^0.3.8-next.0" - "@backstage/plugin-newrelic" "^0.3.26-next.0" - "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.0" - "@backstage/plugin-org" "^0.5.8-next.0" - "@backstage/plugin-pagerduty" "0.5.1-next.0" + "@backstage/plugin-catalog-graph" "^0.2.20-next.1" + "@backstage/plugin-catalog-import" "^0.8.11-next.1" + "@backstage/plugin-catalog-react" "^1.1.3-next.2" + "@backstage/plugin-circleci" "^0.3.8-next.1" + "@backstage/plugin-cloudbuild" "^0.3.8-next.1" + "@backstage/plugin-code-coverage" "^0.2.1-next.1" + "@backstage/plugin-cost-insights" "^0.11.30-next.1" + "@backstage/plugin-dynatrace" "^0.1.2-next.1" + "@backstage/plugin-explore" "^0.3.39-next.1" + "@backstage/plugin-gcalendar" "^0.3.4-next.1" + "@backstage/plugin-gcp-projects" "^0.3.27-next.1" + "@backstage/plugin-github-actions" "^0.5.8-next.1" + "@backstage/plugin-gocd" "^0.1.14-next.1" + "@backstage/plugin-graphiql" "^0.2.40-next.1" + "@backstage/plugin-home" "^0.4.24-next.2" + "@backstage/plugin-jenkins" "^0.7.7-next.2" + "@backstage/plugin-kafka" "^0.3.8-next.1" + "@backstage/plugin-kubernetes" "^0.7.1-next.2" + "@backstage/plugin-lighthouse" "^0.3.8-next.1" + "@backstage/plugin-newrelic" "^0.3.26-next.1" + "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.1" + "@backstage/plugin-org" "^0.5.8-next.1" + "@backstage/plugin-pagerduty" "0.5.1-next.1" "@backstage/plugin-permission-react" "^0.4.4-next.0" - "@backstage/plugin-rollbar" "^0.4.8-next.0" - "@backstage/plugin-scaffolder" "^1.5.0-next.1" - "@backstage/plugin-search" "^1.0.1-next.0" + "@backstage/plugin-rollbar" "^0.4.8-next.1" + "@backstage/plugin-scaffolder" "^1.5.0-next.2" + "@backstage/plugin-search" "^1.0.1-next.1" "@backstage/plugin-search-common" "^1.0.0" - "@backstage/plugin-search-react" "^1.0.1-next.0" - "@backstage/plugin-sentry" "^0.4.1-next.0" - "@backstage/plugin-shortcuts" "^0.3.0-next.0" - "@backstage/plugin-stack-overflow" "^0.1.4-next.0" - "@backstage/plugin-tech-insights" "^0.2.4-next.0" - "@backstage/plugin-tech-radar" "^0.5.15-next.0" - "@backstage/plugin-techdocs" "^1.3.1-next.1" - "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.1" - "@backstage/plugin-techdocs-react" "^1.0.3-next.1" - "@backstage/plugin-todo" "^0.2.10-next.0" - "@backstage/plugin-user-settings" "^0.4.7-next.0" + "@backstage/plugin-search-react" "^1.0.1-next.1" + "@backstage/plugin-sentry" "^0.4.1-next.1" + "@backstage/plugin-shortcuts" "^0.3.0-next.1" + "@backstage/plugin-stack-overflow" "^0.1.4-next.1" + "@backstage/plugin-tech-insights" "^0.2.4-next.1" + "@backstage/plugin-tech-radar" "^0.5.15-next.1" + "@backstage/plugin-techdocs" "^1.3.1-next.2" + "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.2" + "@backstage/plugin-techdocs-react" "^1.0.3-next.2" + "@backstage/plugin-todo" "^0.2.10-next.1" + "@backstage/plugin-user-settings" "^0.4.7-next.1" "@backstage/theme" "^0.2.16" "@internal/plugin-catalog-customized" "0.0.1-next.0" "@material-ui/core" "^4.12.2" @@ -24952,19 +24952,19 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.73-next.0" + version "0.2.73-next.1" dependencies: - "@backstage/app-defaults" "^1.0.5-next.0" + "@backstage/app-defaults" "^1.0.5-next.1" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.0" + "@backstage/cli" "^0.18.1-next.1" "@backstage/config" "^1.0.1" "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.10.1-next.0" + "@backstage/core-components" "^0.11.0-next.2" "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.0" - "@backstage/plugin-catalog" "^1.5.0-next.0" - "@backstage/plugin-techdocs" "^1.3.1-next.0" - "@backstage/plugin-techdocs-react" "^1.0.3-next.0" + "@backstage/integration-react" "^1.1.3-next.1" + "@backstage/plugin-catalog" "^1.5.0-next.2" + "@backstage/plugin-techdocs" "^1.3.1-next.2" + "@backstage/plugin-techdocs-react" "^1.0.3-next.2" "@backstage/test-utils" "^1.1.3-next.0" "@backstage/theme" "^0.2.16" "@material-ui/core" "^4.11.0" From bfc7c50a09c85c9bad217178447a2be0e0362cb6 Mon Sep 17 00:00:00 2001 From: Phil Kuang Date: Mon, 8 Aug 2022 15:30:25 -0400 Subject: [PATCH 019/239] feat(adrs): display associated entity in AdrSearchResultListItem Signed-off-by: Phil Kuang --- .changeset/cyan-carpets-build.md | 9 +++++++++ .../adr-backend/src/search/DefaultAdrCollatorFactory.ts | 1 + plugins/adr-backend/src/search/createMadrParser.ts | 3 +++ plugins/adr-common/api-report.md | 2 ++ plugins/adr-common/src/index.ts | 8 ++++++++ plugins/adr/package.json | 1 + plugins/adr/src/search/AdrSearchResultListItem.tsx | 9 +++++++++ 7 files changed, 33 insertions(+) create mode 100644 .changeset/cyan-carpets-build.md diff --git a/.changeset/cyan-carpets-build.md b/.changeset/cyan-carpets-build.md new file mode 100644 index 0000000000..eca260c34c --- /dev/null +++ b/.changeset/cyan-carpets-build.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-adr': minor +'@backstage/plugin-adr-backend': minor +'@backstage/plugin-adr-common': minor +--- + +Display associated entity as a chip in `AdrSearchResultListItem` + +BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents diff --git a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts index e0c90af767..811b52ba82 100644 --- a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts +++ b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts @@ -142,6 +142,7 @@ export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { 'metadata.annotations', 'metadata.name', 'metadata.namespace', + 'metadata.title', ], }, { token }, diff --git a/plugins/adr-backend/src/search/createMadrParser.ts b/plugins/adr-backend/src/search/createMadrParser.ts index 9efd49754a..6b77ec2fa7 100644 --- a/plugins/adr-backend/src/search/createMadrParser.ts +++ b/plugins/adr-backend/src/search/createMadrParser.ts @@ -16,6 +16,7 @@ import { DateTime } from 'luxon'; import { marked } from 'marked'; +import { stringifyEntityRef } from '@backstage/catalog-model'; import { MADR_DATE_FORMAT } from '@backstage/plugin-adr-common'; import { AdrParser } from './types'; @@ -101,6 +102,8 @@ export const createMadrParser = ( text: content, status: adrStatus, date: adrDate, + entityRef: stringifyEntityRef(entity), + entityTitle: entity.metadata.title, location: applyArgsToFormat(locationTemplate, { namespace: entity.metadata.namespace || 'default', kind: entity.kind, diff --git a/plugins/adr-common/api-report.md b/plugins/adr-common/api-report.md index 290d984181..0236b355a5 100644 --- a/plugins/adr-common/api-report.md +++ b/plugins/adr-common/api-report.md @@ -10,6 +10,8 @@ import { ScmIntegrationRegistry } from '@backstage/integration'; // @public export interface AdrDocument extends IndexableDocument { date?: string; + entityRef: string; + entityTitle?: string; status?: string; } diff --git a/plugins/adr-common/src/index.ts b/plugins/adr-common/src/index.ts index 94b6b788c8..c3a048d9d1 100644 --- a/plugins/adr-common/src/index.ts +++ b/plugins/adr-common/src/index.ts @@ -84,6 +84,14 @@ export const madrFilePathFilter: AdrFilePathFilterFn = (path: string) => * @public */ export interface AdrDocument extends IndexableDocument { + /** + * Ref of the entity associated with this ADR + */ + entityRef: string; + /** + * Title of the entity associated with this ADR + */ + entityTitle?: string; /** * ADR status label */ diff --git a/plugins/adr/package.json b/plugins/adr/package.json index e9c2f05e0f..dfe3a233b9 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -22,6 +22,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { + "@backstage/catalog-model": "^1.1.0", "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration-react": "^1.1.3-next.1", diff --git a/plugins/adr/src/search/AdrSearchResultListItem.tsx b/plugins/adr/src/search/AdrSearchResultListItem.tsx index 677e39fc11..e9e05a9df2 100644 --- a/plugins/adr/src/search/AdrSearchResultListItem.tsx +++ b/plugins/adr/src/search/AdrSearchResultListItem.tsx @@ -23,9 +23,11 @@ import { ListItemText, makeStyles, } from '@material-ui/core'; +import { parseEntityRef } from '@backstage/catalog-model'; import { Link } from '@backstage/core-components'; import { useAnalytics } from '@backstage/core-plugin-api'; import { AdrDocument } from '@backstage/plugin-adr-common'; +import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; import { ResultHighlight } from '@backstage/plugin-search-common'; import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; @@ -104,6 +106,13 @@ export const AdrSearchResultListItem = ({ } /> + {result.status && ( )} From 5e4dc173f72b3159270c4864368b2e74ac1b34b2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 18:04:22 +0200 Subject: [PATCH 020/239] backend-common: validate zip archive paths when unpacking into a dir Signed-off-by: Patrik Oldsberg --- .changeset/dirty-pears-allow.md | 5 +++++ .../backend-common/src/reading/tree/ZipArchiveResponse.ts | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/dirty-pears-allow.md diff --git a/.changeset/dirty-pears-allow.md b/.changeset/dirty-pears-allow.md new file mode 100644 index 0000000000..4b488ad79d --- /dev/null +++ b/.changeset/dirty-pears-allow.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts index 1a6658b0c2..4100af3d57 100644 --- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts @@ -25,6 +25,7 @@ import { ReadTreeResponseFile, } from '../types'; import { streamToBuffer } from './util'; +import { resolveSafeChildPath } from '../../paths'; /** * Wraps a zip archive stream into a tree response reader. @@ -187,10 +188,10 @@ export class ZipArchiveResponse implements ReadTreeResponse { const dirname = platformPath.dirname(entryPath); if (dirname) { - await fs.mkdirp(platformPath.join(dir, dirname)); + await fs.mkdirp(resolveSafeChildPath(dir, dirname)); } return new Promise(async (resolve, reject) => { - const file = fs.createWriteStream(platformPath.join(dir, entryPath)); + const file = fs.createWriteStream(resolveSafeChildPath(dir, entryPath)); file.on('finish', resolve); content.on('error', reject); From cb24f975aaf46f3bd526f3cd147aff3818a5a3fd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 9 Aug 2022 18:27:13 +0200 Subject: [PATCH 021/239] backend-common: added test to ensure malicious zip archives are handled Signed-off-by: Patrik Oldsberg --- .../src/reading/__fixtures__/mallory.zip | Bin 0 -> 147 bytes .../reading/tree/ZipArchiveResponse.test.ts | 22 ++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 packages/backend-common/src/reading/__fixtures__/mallory.zip diff --git a/packages/backend-common/src/reading/__fixtures__/mallory.zip b/packages/backend-common/src/reading/__fixtures__/mallory.zip new file mode 100644 index 0000000000000000000000000000000000000000..e45bd798b3748702af1f53a4780b335844dae9dc GIT binary patch literal 147 zcmWIWW@Zs#-~d9)M$S+MB)|=1>*?tiXQrg;l~j~yd+O?4^gVsXla(RBo1Fus5TpVG l0=yZSbQw@hfyu#Wh)NKNWM+UjD;r3N5eO}Tv { beforeEach(() => { @@ -35,6 +38,7 @@ describe('ZipArchiveResponse', () => { '/test-archive.zip': archiveData, '/test-archive-with-extra-root-dir.zip': archiveDataWithExtraDir, '/test-archive-corrupted.zip': archiveDataCorrupted, + '/test-archive-malicious.zip': archiveWithMaliciousEntry, '/tmp': mockFs.directory(), }); }); @@ -167,4 +171,22 @@ describe('ZipArchiveResponse', () => { 'invalid comment length. expected: 55. found: 0', ); }); + + it('should throw on entries with a path outside the destination dir', async () => { + const stream = fs.createReadStream('/test-archive-malicious.zip'); + + const res = new ZipArchiveResponse(stream, '', '/tmp', 'etag'); + await expect(res.files()).rejects.toThrow( + 'invalid relative path: ../side.txt', + ); + }); + + it('should throw on entries that attempt to write outside destination dir', async () => { + const stream = fs.createReadStream('/test-archive-malicious.zip'); + + const res = new ZipArchiveResponse(stream, '', '/tmp', 'etag'); + await expect(res.dir()).rejects.toThrow( + 'invalid relative path: ../side.txt', + ); + }); }); From 6fa57375f396401523bccd5cdfa21a8655cb8fa7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:47:58 +0000 Subject: [PATCH 022/239] fix(deps): update dependency octokit to v2.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..c557ba18c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20102,9 +20102,9 @@ octokit-plugin-create-pull-request@^3.10.0: "@octokit/types" "^6.8.2" octokit@^2.0.0, octokit@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.4.tgz#cfd3adee6b775d3fa8cd8746590bed36127cc0a0" - integrity sha512-9QvgYGzrSTGmr3koSGtbgeMgqYI20QI0Vv8Bk9y6phchk6L2aHFhcrUOIeNUPj1Z+KZnEBd6A/8faNpDFNfVjg== + version "2.0.5" + resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.5.tgz#4091813187f363eff787b89b66aafc273ba3318d" + integrity sha512-Znv9zxhKxl9C11QsAK/RRoIutAsHawVrYplZNf7IqpB+mi3Zu0zBfZ5sFUqMRwemucff+MDHh1RtlpF5946UDA== dependencies: "@octokit/app" "^13.0.5" "@octokit/core" "^4.0.4" From b793c3043be46fc13267a42a9356f52ea2d85786 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:52:03 +0000 Subject: [PATCH 023/239] fix(deps): update dependency aws-sdk to v2.1191.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..d4618a5ef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9073,9 +9073,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1189.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1189.0.tgz#8dd6b48dd7896642af8e2f86e026932a28e380d5" - integrity sha512-EqluXSo8XAR086nF9UAtPYwUm82ZIRqg8OmHBRQyftcrD1Z0pqMmiuvacXoEAJ/4UU8KKafbpYarxx8rH/pZjQ== + version "2.1191.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1191.0.tgz#2748567252c68ef37a8ce29f48aa063681083918" + integrity sha512-G8hWvuc+3rxTfHqsnUwGx/fy8zlnVPtlNesXMHlwU/l4oBx3+Weg0Nhng6HvLGzUJifzlnSKDXrOsWVkHtuZ1w== dependencies: buffer "4.9.2" events "1.1.1" From 98d5cd49cd52b6c2dfb0248e646760fa5dfd301e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 22:49:39 +0000 Subject: [PATCH 024/239] fix(deps): update dependency @octokit/webhooks to v10.1.2 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..2897c90b04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5813,19 +5813,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.1.tgz#af0c31c81ccc3818de01df1977463b78c7c02b4f" - integrity sha512-pHjIWGLDldWKuuax5ZDzQeTSnHN6/9RbDaXYEtHwlbW5SPFwTwy3xhJ552qJH6kHP0M3k5t5JVpa0f6fR9MooQ== +"@octokit/webhooks-types@6.3.2": + version "6.3.2" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.2.tgz#752497434e735874ba985ea0d53d63e2568e838d" + integrity sha512-6DSvdzg7AIVgLjIjqf5BDrloMs7zUfpF0EJhLiOjXtuLr38W5pWSC7aHr7V59LCEDueJRfKZ6c9ZyuLLqVgx8g== "@octokit/webhooks@^10.0.0": - version "10.1.1" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.1.tgz#8fdbddd2b0ee9c53ddabb47c346032fcc46fd5ff" - integrity sha512-/PhAXTA5M47sM/LxFXfTQ8WUEFsNQog29VfcxYCtsJtRz3NoaDAirH4gT6/Z81BrC8Vw3JA7mF+yFUN7RmxWGw== + version "10.1.2" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.2.tgz#78396b6d32c60789f6031d2551a2cd598c157627" + integrity sha512-jxISKMLiYebQ/EByLXDEWQMcHASKUVl1T0EuCnpHTYjELsDXg7BEw0FCInlc8RpWmmPp4sMsh3Dd86spXAIp1A== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.1" + "@octokit/webhooks-types" "6.3.2" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 21ea9d39168a61916457440d42e2290449f18897 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 22:53:00 +0000 Subject: [PATCH 025/239] fix(deps): update dependency graphql-ws to v5.10.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 38a59e6a76..14c202c955 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14739,9 +14739,9 @@ graphql-type-json@^0.3.2: integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== graphql-ws@^5.4.1, graphql-ws@^5.9.0: - version "5.9.1" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.9.1.tgz#9c0fa48ceb695d61d574ed3ab21b426729e87f2d" - integrity sha512-mL/SWGBwIT9Meq0NlfS55yXXTOeWPMbK7bZBEZhFu46bcGk1coTx2Sdtzxdk+9yHWngD+Fk1PZDWaAutQa9tpw== + version "5.10.0" + resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.10.0.tgz#3fb47a4e809e0d2e7c197f1bca754fa9f31b940e" + integrity sha512-ewbPzHQdRZgNCPDH9Yr6xccSeZfk3fmpO/AGGGg4KkM5gc6oAOJQ10Oui1EqprhVOyRbOll9bw2qAkOiOwfTag== graphql@^16.0.0, graphql@^16.3.0: version "16.5.0" From 44103351351a1e41ba695be490319945a401d86c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 00:42:15 +0000 Subject: [PATCH 026/239] fix(deps): update dependency zod to v3.18.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2e4b846092..37be4b8017 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27141,9 +27141,9 @@ zip-stream@^4.1.0: readable-stream "^3.6.0" zod@^3.11.6, zod@^3.9.5: - version "3.17.10" - resolved "https://registry.npmjs.org/zod/-/zod-3.17.10.tgz#8716a05e6869df6faaa878a44ffe3c79e615defb" - integrity sha512-IHXnQYQuOOOL/XgHhgl8YjNxBHi3xX0mVcHmqsvJgcxKkEczPshoWdxqyFwsARpf41E0v9U95WUROqsHHxt0UQ== + version "3.18.0" + resolved "https://registry.npmjs.org/zod/-/zod-3.18.0.tgz#2eed58b3cafb8d9a67aa2fee69279702f584f3bc" + integrity sha512-gwTm8RfUCe8l9rDwN5r2A17DkAa8Ez4Yl4yXqc5VqeGaXaJahzYYXbTwvhroZi0SNBqTwh/bKm2N0mpCzuw4bA== zustand@3.6.9: version "3.6.9" From fa3eeee92d314ec47f68ee5ed7157056c99e4315 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 00:43:27 +0000 Subject: [PATCH 027/239] fix(deps): update dependency @graphql-tools/schema to v9 Signed-off-by: Renovate Bot --- .changeset/renovate-34c125c.md | 6 ++++++ plugins/catalog-graphql/package.json | 2 +- plugins/graphql-backend/package.json | 2 +- yarn.lock | 25 +++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 .changeset/renovate-34c125c.md diff --git a/.changeset/renovate-34c125c.md b/.changeset/renovate-34c125c.md new file mode 100644 index 0000000000..5f59ab4124 --- /dev/null +++ b/.changeset/renovate-34c125c.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-graphql': patch +'@backstage/plugin-graphql-backend': patch +--- + +Updated dependency `@graphql-tools/schema` to `^9.0.0`. diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 082bd43c34..12eafe58d4 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -52,7 +52,7 @@ "@graphql-codegen/graphql-modules-preset": "^2.3.2", "@graphql-codegen/typescript": "^2.4.2", "@graphql-codegen/typescript-resolvers": "^2.4.3", - "@graphql-tools/schema": "^8.3.1", + "@graphql-tools/schema": "^9.0.0", "msw": "^0.44.0" }, "files": [ diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 64cd268e00..d772e84dde 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -37,7 +37,7 @@ "@backstage/backend-common": "^0.15.0-next.0", "@backstage/config": "^1.0.1", "@backstage/plugin-catalog-graphql": "^0.3.11", - "@graphql-tools/schema": "^8.3.1", + "@graphql-tools/schema": "^9.0.0", "@types/express": "^4.17.6", "apollo-server": "^3.0.0", "apollo-server-express": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 2e4b846092..8f5a763655 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3160,6 +3160,14 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" +"@graphql-tools/merge@8.3.2": + version "8.3.2" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.2.tgz#a058e0307b9a145c6965420fd67ee1405cf033e8" + integrity sha512-r8TFlDFA9N4hbkKbHCUK5pkiSnVUsB5AtcyhoY1d3b9zNa9CAYgxZMkKZgDJAf9ZTIqki9t0eOW/jn1H4MCFsg== + dependencies: + "@graphql-tools/utils" "8.9.1" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.6.8" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.6.8.tgz#232a23c0c14dcfca88012886230b93e6fc2303e2" @@ -3241,6 +3249,16 @@ tslib "^2.4.0" value-or-promise "1.0.11" +"@graphql-tools/schema@^9.0.0": + version "9.0.0" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.0.tgz#a689ae23474bf662b3571a180f0e0d11c7b8f135" + integrity sha512-H1rlt0tptzYE1jnKGjfmMvvMCwsDTUgCy3Eam9agsPP4ZtHAcwijDx3BKKJaV1fDRV5ztz2aJ5Q7+4s/SMOYvQ== + dependencies: + "@graphql-tools/merge" "8.3.2" + "@graphql-tools/utils" "8.9.1" + tslib "^2.4.0" + value-or-promise "1.0.11" + "@graphql-tools/url-loader@7.13.2", "@graphql-tools/url-loader@^7.13.2": version "7.13.2" resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.13.2.tgz#4663ea817aa60d3d4ce81a47a36cba8fdfff069f" @@ -3304,6 +3322,13 @@ dependencies: tslib "^2.4.0" +"@graphql-tools/utils@8.9.1": + version "8.9.1" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.1.tgz#11d6c8a292ac5f224dfda655b87adfece3a257c6" + integrity sha512-LHR7U4okICeUap+WV/T1FnLOmTr3KYuphgkXYendaBVO/DXKyc+TeOFBiN1LcEjPqCB8hO+0B0iTIO0cGqhNTA== + dependencies: + tslib "^2.4.0" + "@graphql-tools/wrap@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.5.0.tgz#ce1b0d775e1fc3a17404df566f4d2196d31c6e20" From f4af474364d412a1b49b38a0f86fa32940117c3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 08:59:08 +0000 Subject: [PATCH 028/239] fix(deps): update dependency @maxim_mazurok/gapi.client.calendar to v3.0.20220805 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f489904061..197930f055 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4967,9 +4967,9 @@ react-is "^16.8.0 || ^17.0.0" "@maxim_mazurok/gapi.client.calendar@^3.0.20220408": - version "3.0.20220722" - resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220722.tgz#cfcf40676c2bd07175db688cf96c9377f1b55e1b" - integrity sha512-/ft7PMhBYW6zEFkV1r5WekxzJrxEXVwqSPBssOneTBzgE/MMV2hkbFPocnQ1z9YRH8TAsskv/DQlpDbmmbK9JA== + version "3.0.20220805" + resolved "https://registry.npmjs.org/@maxim_mazurok/gapi.client.calendar/-/gapi.client.calendar-3.0.20220805.tgz#ccc3c12f83b361daf5e48e0a2ff7abee5b0a6c5d" + integrity sha512-YwUDC4G4amUkM4u55wJpARowbs6AjJoF+PxxLEz3ZoHXvzP/VWPb1L0AhxnbFwDhWKVFcXkZTEGDc59PcuIJjQ== dependencies: "@types/gapi.client" "*" From 97cd54c92f0748a7e764d90d327608574dca8b1e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 12:09:23 +0200 Subject: [PATCH 029/239] Revert "changeset: exit pre-release" Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 748a6c5940..aeefcf1fef 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "exit", + "mode": "pre", "tag": "next", "initialVersions": { "example-app": "0.2.73", From b162bbf464caf4d5a4a1b683c212379b2453ae2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 10 Aug 2022 10:33:47 +0000 Subject: [PATCH 030/239] Version Packages (next) --- .changeset/create-app-1660127534.md | 5 +++ .changeset/pre.json | 3 ++ docs/releases/v1.5.0-next.3-changelog.md | 48 ++++++++++++++++++++++++ package.json | 2 +- packages/backend-common/CHANGELOG.md | 6 +++ packages/backend-common/package.json | 2 +- packages/create-app/CHANGELOG.md | 6 +++ packages/create-app/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 14 +++++++ plugins/adr-backend/package.json | 6 +-- plugins/adr-common/CHANGELOG.md | 8 ++++ plugins/adr-common/package.json | 2 +- plugins/adr/CHANGELOG.md | 13 +++++++ plugins/adr/package.json | 4 +- 14 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 .changeset/create-app-1660127534.md create mode 100644 docs/releases/v1.5.0-next.3-changelog.md diff --git a/.changeset/create-app-1660127534.md b/.changeset/create-app-1660127534.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1660127534.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index aeefcf1fef..0d89198dec 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -176,6 +176,9 @@ "cool-months-tickle", "create-app-1658824524", "create-app-1659429685", + "create-app-1660127534", + "cyan-carpets-build", + "dirty-pears-allow", "dull-owls-grab", "dull-pumas-hope", "dull-starfishes-chew", diff --git a/docs/releases/v1.5.0-next.3-changelog.md b/docs/releases/v1.5.0-next.3-changelog.md new file mode 100644 index 0000000000..db9dc2ae48 --- /dev/null +++ b/docs/releases/v1.5.0-next.3-changelog.md @@ -0,0 +1,48 @@ +# Release v1.5.0-next.3 + +## @backstage/plugin-adr@0.2.0-next.2 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + +## @backstage/plugin-adr-backend@0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + - @backstage/backend-common@0.15.0-next.2 + +## @backstage/plugin-adr-common@0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +## @backstage/backend-common@0.15.0-next.2 + +### Patch Changes + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. + +## @backstage/create-app@0.4.30-next.3 + +### Patch Changes + +- Bumped create-app version. diff --git a/package.json b/package.json index 855a91f0f4..936ce63fb8 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.5.0-next.2", + "version": "1.5.0-next.3", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index e712a96470..a60a401106 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/backend-common +## 0.15.0-next.2 + +### Patch Changes + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. + ## 0.15.0-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 1e89cf13df..77a9854fdd 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.15.0-next.1", + "version": "0.15.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "private": false, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 675bcb7eed..2dd8c8748b 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.4.30-next.3 + +### Patch Changes + +- Bumped create-app version. + ## 0.4.30-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 681650022b..5c8be59645 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.30-next.2", + "version": "0.4.30-next.3", "private": false, "publishConfig": { "access": "public" diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index b68f6f3bd2..cf7feb2af0 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-adr-backend +## 0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + - @backstage/backend-common@0.15.0-next.2 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 137a94a66d..c8a349be8b 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.1.3-next.0", + "version": "0.2.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,13 +29,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0-next.2", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-adr-common": "^0.1.3-next.0", + "@backstage/plugin-adr-common": "^0.2.0-next.1", "@backstage/plugin-search-common": "^1.0.0", "luxon": "^3.0.0", "marked": "^4.0.14", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index a5f58a7ed4..2ab0e174d4 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-adr-common +## 0.2.0-next.1 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index f1418000d6..48dd40ce60 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.1.3-next.0", + "version": "0.2.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index 0ba1d96995..d416218c6c 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-adr +## 0.2.0-next.2 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0-next.1 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index dfe3a233b9..f9cf5b4ba9 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.1.3-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,7 +26,7 @@ "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-adr-common": "^0.1.3-next.0", + "@backstage/plugin-adr-common": "^0.2.0-next.1", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/plugin-search-common": "^1.0.0", "@backstage/plugin-search-react": "^1.0.1-next.1", From 168bb7acdc517a04d6b79fa687eaec466a39c435 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Wed, 10 Aug 2022 08:05:44 -0300 Subject: [PATCH 031/239] Update app-custhome-theme.md After suggestions @jhaals Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 26 +++++++++--------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 97d57540a9..48d40761da 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -277,21 +277,19 @@ const LogoFull = () => { You can also customize the Project's _default_ icons. -We can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). +You can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). ### Requirements -- Files in `.svg` format; +- Files in `.svg` format - React components created for the icons ### Create React Component -In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory. +In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory and `CustomIcons.tsx` file. -In the `icons` directory, upload the files in `.svg` format. - -In the `assets` directory, you can create the `customIcons.tsx` file. > Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes. + ```tsx // customIcons.tsx import { SvgIcon, SvgIconProps } from '@material-ui/core'; @@ -301,11 +299,11 @@ import React from 'react'; export const HeaderIcon = (props: SvgIconProps) => ( ); @@ -313,11 +311,7 @@ export const HeaderIcon = (props: SvgIconProps) => ( ### Using the custom icon -In your front-end application, locate the `src/components` folder. - -You will find the `App.tsx` file. - -The `app` constant, instantiates the `createApp` function, in this constant we will use the "icons" parameter that receives an object. +Supply your custom icon in `packages/app/src/App.tsx` ```diff From 485ee93cde44126d52a7e296946931002124349c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:28:19 +0200 Subject: [PATCH 032/239] contrib: add note about k8s best security practices Signed-off-by: Patrik Oldsberg --- contrib/kubernetes/basic_kubernetes_example_with_helm/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md b/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md index 2dc875f671..c18329f59e 100644 --- a/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md +++ b/contrib/kubernetes/basic_kubernetes_example_with_helm/README.md @@ -1 +1,3 @@ # Basic Kubernetes example with Helm + +Note that these examples aim to show a minimal setup and do not include best practices for secure Kubernetes deployments. See the [Kubernetes documentation](https://kubernetes.io/docs/concepts/security/) for more information, or resources provided by your own organization. From ff118129d8a454511cdf88bc80882b35f69758e1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:29:16 +0200 Subject: [PATCH 033/239] Introduce backend-defaults package Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 78 ++++++++++++++++++- packages/backend-app-api/src/index.ts | 1 + .../services/implementations/cacheService.ts | 2 +- .../services/implementations/configService.ts | 1 + .../implementations/databaseService.ts | 1 + .../implementations/discoveryService.ts | 1 + .../implementations/httpRouterService.ts | 1 + .../src/services/implementations/index.ts | 33 +++----- .../services/implementations/loggerService.ts | 1 + .../implementations/permissionsService.ts | 1 + .../implementations/schedulerService.ts | 1 + .../implementations/tokenManagerService.ts | 1 + .../implementations/urlReaderService.ts | 1 + packages/backend-app-api/src/wiring/index.ts | 4 +- packages/backend-app-api/src/wiring/types.ts | 15 ++-- packages/backend-defaults/.eslintrc.js | 1 + packages/backend-defaults/README.md | 19 +++++ packages/backend-defaults/api-report.md | 19 +++++ packages/backend-defaults/package.json | 47 +++++++++++ .../backend-defaults/src/CreateBackend.ts | 57 ++++++++++++++ packages/backend-defaults/src/index.ts | 18 +++++ packages/backend-defaults/src/types.ts | 24 ++++++ packages/backend-next/package.json | 4 +- packages/backend-next/src/index.ts | 6 +- 24 files changed, 293 insertions(+), 44 deletions(-) create mode 100644 packages/backend-defaults/.eslintrc.js create mode 100644 packages/backend-defaults/README.md create mode 100644 packages/backend-defaults/api-report.md create mode 100644 packages/backend-defaults/package.json create mode 100644 packages/backend-defaults/src/CreateBackend.ts create mode 100644 packages/backend-defaults/src/index.ts create mode 100644 packages/backend-defaults/src/types.ts diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index a37ec6abc6..c91709519f 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -5,6 +5,18 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { Config } from '@backstage/config'; +import { HttpRouterService } from '@backstage/backend-plugin-api'; +import { Logger } from '@backstage/backend-plugin-api'; +import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; +import { PermissionEvaluator } from '@backstage/plugin-permission-common'; +import { PluginCacheManager } from '@backstage/backend-common'; +import { PluginDatabaseManager } from '@backstage/backend-common'; +import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { ServiceFactory } from '@backstage/backend-plugin-api'; +import { TokenManager } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface Backend { @@ -15,11 +27,71 @@ export interface Backend { } // @public (undocumented) -export function createBackend(options?: CreateBackendOptions): Backend; +export const cacheFactory: ServiceFactory< + PluginCacheManager, + PluginCacheManager, + {} +>; // @public (undocumented) -export interface CreateBackendOptions { +export const configFactory: ServiceFactory; + +// @public (undocumented) +export function createSpecializedBackend( + options: CreateSpecializedBackendOptions, +): Backend; + +// @public (undocumented) +export interface CreateSpecializedBackendOptions { // (undocumented) - apis: AnyServiceFactory[]; + serviceFactories: AnyServiceFactory[]; } + +// @public (undocumented) +export const databaseFactory: ServiceFactory< + PluginDatabaseManager, + PluginDatabaseManager, + {} +>; + +// @public (undocumented) +export const discoveryFactory: ServiceFactory< + PluginEndpointDiscovery, + PluginEndpointDiscovery, + {} +>; + +// @public (undocumented) +export const httpRouterFactory: ServiceFactory< + HttpRouterService, + HttpRouterService, + {} +>; + +// @public (undocumented) +export const loggerFactory: ServiceFactory; + +// @public (undocumented) +export const permissionsFactory: ServiceFactory< + PermissionAuthorizer | PermissionEvaluator, + PermissionAuthorizer | PermissionEvaluator, + {} +>; + +// @public (undocumented) +export const schedulerFactory: ServiceFactory< + PluginTaskScheduler, + PluginTaskScheduler, + {} +>; + +// @public (undocumented) +export const tokenManagerFactory: ServiceFactory< + TokenManager, + TokenManager, + {} +>; + +// @public (undocumented) +export const urlReaderFactory: ServiceFactory; ``` diff --git a/packages/backend-app-api/src/index.ts b/packages/backend-app-api/src/index.ts index c58379c3e4..02633f3732 100644 --- a/packages/backend-app-api/src/index.ts +++ b/packages/backend-app-api/src/index.ts @@ -21,3 +21,4 @@ */ export * from './wiring'; +export * from './services/implementations'; diff --git a/packages/backend-app-api/src/services/implementations/cacheService.ts b/packages/backend-app-api/src/services/implementations/cacheService.ts index 034f85f917..c5e58b4a41 100644 --- a/packages/backend-app-api/src/services/implementations/cacheService.ts +++ b/packages/backend-app-api/src/services/implementations/cacheService.ts @@ -21,7 +21,7 @@ import { cacheServiceRef, } from '@backstage/backend-plugin-api'; -// TODO: Work out some naming and implementation patterns for these +/** @public */ export const cacheFactory = createServiceFactory({ service: cacheServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/configService.ts b/packages/backend-app-api/src/services/implementations/configService.ts index 94a59baf34..c4aa641f72 100644 --- a/packages/backend-app-api/src/services/implementations/configService.ts +++ b/packages/backend-app-api/src/services/implementations/configService.ts @@ -22,6 +22,7 @@ import { loggerServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const configFactory = createServiceFactory({ service: configServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/databaseService.ts b/packages/backend-app-api/src/services/implementations/databaseService.ts index a52da1e444..b2bc19de84 100644 --- a/packages/backend-app-api/src/services/implementations/databaseService.ts +++ b/packages/backend-app-api/src/services/implementations/databaseService.ts @@ -21,6 +21,7 @@ import { databaseServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const databaseFactory = createServiceFactory({ service: databaseServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/discoveryService.ts b/packages/backend-app-api/src/services/implementations/discoveryService.ts index 23af1924a0..3f1a584c61 100644 --- a/packages/backend-app-api/src/services/implementations/discoveryService.ts +++ b/packages/backend-app-api/src/services/implementations/discoveryService.ts @@ -21,6 +21,7 @@ import { discoveryServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const discoveryFactory = createServiceFactory({ service: discoveryServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/httpRouterService.ts b/packages/backend-app-api/src/services/implementations/httpRouterService.ts index 1f72378643..6460a77eaf 100644 --- a/packages/backend-app-api/src/services/implementations/httpRouterService.ts +++ b/packages/backend-app-api/src/services/implementations/httpRouterService.ts @@ -23,6 +23,7 @@ import Router from 'express-promise-router'; import { Handler } from 'express'; import { createServiceBuilder } from '@backstage/backend-common'; +/** @public */ export const httpRouterFactory = createServiceFactory({ service: httpRouterServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/index.ts b/packages/backend-app-api/src/services/implementations/index.ts index e6b6604069..048c952b4e 100644 --- a/packages/backend-app-api/src/services/implementations/index.ts +++ b/packages/backend-app-api/src/services/implementations/index.ts @@ -14,26 +14,13 @@ * limitations under the License. */ -import { cacheFactory } from './cacheService'; -import { configFactory } from './configService'; -import { databaseFactory } from './databaseService'; -import { discoveryFactory } from './discoveryService'; -import { loggerFactory } from './loggerService'; -import { permissionsFactory } from './permissionsService'; -import { schedulerFactory } from './schedulerService'; -import { tokenManagerFactory } from './tokenManagerService'; -import { urlReaderFactory } from './urlReaderService'; -import { httpRouterFactory } from './httpRouterService'; - -export const defaultServiceFactories = [ - cacheFactory, - configFactory, - databaseFactory, - discoveryFactory, - loggerFactory, - permissionsFactory, - schedulerFactory, - tokenManagerFactory, - urlReaderFactory, - httpRouterFactory, -]; +export { cacheFactory } from './cacheService'; +export { configFactory } from './configService'; +export { databaseFactory } from './databaseService'; +export { discoveryFactory } from './discoveryService'; +export { loggerFactory } from './loggerService'; +export { permissionsFactory } from './permissionsService'; +export { schedulerFactory } from './schedulerService'; +export { tokenManagerFactory } from './tokenManagerService'; +export { urlReaderFactory } from './urlReaderService'; +export { httpRouterFactory } from './httpRouterService'; diff --git a/packages/backend-app-api/src/services/implementations/loggerService.ts b/packages/backend-app-api/src/services/implementations/loggerService.ts index fbeb4b9ade..e90b591302 100644 --- a/packages/backend-app-api/src/services/implementations/loggerService.ts +++ b/packages/backend-app-api/src/services/implementations/loggerService.ts @@ -38,6 +38,7 @@ class BackstageLogger implements Logger { } } +/** @public */ export const loggerFactory = createServiceFactory({ service: loggerServiceRef, deps: {}, diff --git a/packages/backend-app-api/src/services/implementations/permissionsService.ts b/packages/backend-app-api/src/services/implementations/permissionsService.ts index 97f0330917..26fe012a20 100644 --- a/packages/backend-app-api/src/services/implementations/permissionsService.ts +++ b/packages/backend-app-api/src/services/implementations/permissionsService.ts @@ -23,6 +23,7 @@ import { } from '@backstage/backend-plugin-api'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; +/** @public */ export const permissionsFactory = createServiceFactory({ service: permissionsServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/schedulerService.ts b/packages/backend-app-api/src/services/implementations/schedulerService.ts index 130ccb3f5f..39dbf26ba9 100644 --- a/packages/backend-app-api/src/services/implementations/schedulerService.ts +++ b/packages/backend-app-api/src/services/implementations/schedulerService.ts @@ -21,6 +21,7 @@ import { } from '@backstage/backend-plugin-api'; import { TaskScheduler } from '@backstage/backend-tasks'; +/** @public */ export const schedulerFactory = createServiceFactory({ service: schedulerServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/tokenManagerService.ts b/packages/backend-app-api/src/services/implementations/tokenManagerService.ts index 2e82fce9d9..7767c17944 100644 --- a/packages/backend-app-api/src/services/implementations/tokenManagerService.ts +++ b/packages/backend-app-api/src/services/implementations/tokenManagerService.ts @@ -23,6 +23,7 @@ import { } from '@backstage/backend-plugin-api'; import { ServerTokenManager } from '@backstage/backend-common'; +/** @public */ export const tokenManagerFactory = createServiceFactory({ service: tokenManagerServiceRef, deps: { diff --git a/packages/backend-app-api/src/services/implementations/urlReaderService.ts b/packages/backend-app-api/src/services/implementations/urlReaderService.ts index 74431dfa0d..df353a52d2 100644 --- a/packages/backend-app-api/src/services/implementations/urlReaderService.ts +++ b/packages/backend-app-api/src/services/implementations/urlReaderService.ts @@ -23,6 +23,7 @@ import { urlReaderServiceRef, } from '@backstage/backend-plugin-api'; +/** @public */ export const urlReaderFactory = createServiceFactory({ service: urlReaderServiceRef, deps: { diff --git a/packages/backend-app-api/src/wiring/index.ts b/packages/backend-app-api/src/wiring/index.ts index 1dd91e30e1..d6e4de9145 100644 --- a/packages/backend-app-api/src/wiring/index.ts +++ b/packages/backend-app-api/src/wiring/index.ts @@ -14,5 +14,5 @@ * limitations under the License. */ -export type { Backend, CreateBackendOptions } from './types'; -export { createBackend } from './types'; +export type { Backend, CreateSpecializedBackendOptions } from './types'; +export { createSpecializedBackend } from './types'; diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 112fe06b05..fc4d14a962 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -20,7 +20,6 @@ import { FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; -import { defaultServiceFactories } from '../services/implementations'; import { BackstageBackend } from './BackstageBackend'; /** @@ -42,8 +41,8 @@ export interface BackendRegisterInit { /** * @public */ -export interface CreateBackendOptions { - apis: AnyServiceFactory[]; +export interface CreateSpecializedBackendOptions { + serviceFactories: AnyServiceFactory[]; } export type ServiceHolder = { @@ -53,10 +52,8 @@ export type ServiceHolder = { /** * @public */ -export function createBackend(options?: CreateBackendOptions): Backend { - // TODO: merge with provided APIs - return new BackstageBackend([ - ...defaultServiceFactories, - ...(options?.apis ?? []), - ]); +export function createSpecializedBackend( + options: CreateSpecializedBackendOptions, +): Backend { + return new BackstageBackend(options.serviceFactories); } diff --git a/packages/backend-defaults/.eslintrc.js b/packages/backend-defaults/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/packages/backend-defaults/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/backend-defaults/README.md b/packages/backend-defaults/README.md new file mode 100644 index 0000000000..3128159f7c --- /dev/null +++ b/packages/backend-defaults/README.md @@ -0,0 +1,19 @@ +# @backstage/backend-defaults + +**This package is HIGHLY EXPERIMENTAL, do not use this for production** + +This package provides the core API used by Backstage backend apps. + +## Installation + +Add the library to your backend app package: + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/backend-defaults +``` + +## Documentation + +- [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md) +- [Backstage Documentation](https://github.com/backstage/backstage/blob/master/docs/README.md) diff --git a/packages/backend-defaults/api-report.md b/packages/backend-defaults/api-report.md new file mode 100644 index 0000000000..4e8f7d755c --- /dev/null +++ b/packages/backend-defaults/api-report.md @@ -0,0 +1,19 @@ +## API Report File for "@backstage/backend-defaults" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; +import { Backend } from '@backstage/backend-app-api'; + +// @public (undocumented) +export function createBackend(options?: CreateBackendOptions): Backend; + +// @public (undocumented) +export interface CreateBackendOptions { + // (undocumented) + serviceFactories?: AnyServiceFactory[]; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json new file mode 100644 index 0000000000..796aee835e --- /dev/null +++ b/packages/backend-defaults/package.json @@ -0,0 +1,47 @@ +{ + "name": "@backstage/backend-defaults", + "description": "Backend defaults used by Backstage backend apps", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "private": false, + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts", + "alphaTypes": "dist/index.alpha.d.ts" + }, + "backstage": { + "role": "node-library" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "packages/backend-defaults" + }, + "keywords": [ + "backstage" + ], + "license": "Apache-2.0", + "scripts": { + "build": "backstage-cli package build --experimental-type-build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean", + "start": "backstage-cli package start" + }, + "dependencies": { + "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1-next.0" + }, + "devDependencies": { + "@backstage/cli": "^0.18.1-next.0" + }, + "files": [ + "dist", + "alpha" + ] +} \ No newline at end of file diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts new file mode 100644 index 0000000000..31905a3081 --- /dev/null +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -0,0 +1,57 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + Backend, + cacheFactory, + configFactory, + createSpecializedBackend, + databaseFactory, + discoveryFactory, + httpRouterFactory, + loggerFactory, + permissionsFactory, + schedulerFactory, + tokenManagerFactory, + urlReaderFactory, +} from '@backstage/backend-app-api'; +import { CreateBackendOptions } from './types'; + +export const defaultServiceFactories = [ + cacheFactory, + configFactory, + databaseFactory, + discoveryFactory, + loggerFactory, + permissionsFactory, + schedulerFactory, + tokenManagerFactory, + urlReaderFactory, + httpRouterFactory, +]; + +/** + * @public + */ +export function createBackend(options?: CreateBackendOptions): Backend { + // TODO: merge with provided APIs + return createSpecializedBackend({ + serviceFactories: [ + ...defaultServiceFactories, + ...(options?.serviceFactories || []), + ], + }); +} diff --git a/packages/backend-defaults/src/index.ts b/packages/backend-defaults/src/index.ts new file mode 100644 index 0000000000..d3227d6d96 --- /dev/null +++ b/packages/backend-defaults/src/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export type { CreateBackendOptions } from './types'; +export { createBackend } from './CreateBackend'; diff --git a/packages/backend-defaults/src/types.ts b/packages/backend-defaults/src/types.ts new file mode 100644 index 0000000000..710f18ab16 --- /dev/null +++ b/packages/backend-defaults/src/types.ts @@ -0,0 +1,24 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; + +/** + * @public + */ +export interface CreateBackendOptions { + serviceFactories?: AnyServiceFactory[]; +} diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 934ddd3a71..93eff3f78e 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -25,7 +25,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-defaults": "^0.0.0", "@backstage/plugin-catalog-backend": "^1.3.1-next.0", "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0" }, @@ -35,4 +35,4 @@ "files": [ "dist" ] -} +} \ No newline at end of file diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 6463dc7ed5..ec7ebc0c0d 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -14,13 +14,11 @@ * limitations under the License. */ -import { createBackend } from '@backstage/backend-app-api'; import { catalogPlugin } from '@backstage/plugin-catalog-backend'; import { scaffolderCatalogModule } from '@backstage/plugin-scaffolder-backend'; +import { createBackend } from '@backstage/backend-defaults'; -const backend = createBackend({ - apis: [], -}); +const backend = createBackend(); backend.add(catalogPlugin({})); backend.add(scaffolderCatalogModule({})); From 5df230d48cf44200175620e02e41f4f920de4163 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:32:54 +0200 Subject: [PATCH 034/239] Add changeset Signed-off-by: Johan Haals --- .changeset/lazy-students-fetch.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/lazy-students-fetch.md diff --git a/.changeset/lazy-students-fetch.md b/.changeset/lazy-students-fetch.md new file mode 100644 index 0000000000..2ea7c3922c --- /dev/null +++ b/.changeset/lazy-students-fetch.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-app-api': minor +'@backstage/backend-defaults': minor +--- + +Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. +The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. From c971afbf211166b79f208e59436a1943e5d22a71 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:18:15 +0200 Subject: [PATCH 035/239] scaffolder-backend: deprecate publish:file action Signed-off-by: Patrik Oldsberg --- .changeset/fresh-rockets-yell.md | 5 +++++ plugins/scaffolder-backend/api-report.md | 2 +- .../src/scaffolder/actions/builtin/publish/file.ts | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .changeset/fresh-rockets-yell.md diff --git a/.changeset/fresh-rockets-yell.md b/.changeset/fresh-rockets-yell.md new file mode 100644 index 0000000000..b8f597206e --- /dev/null +++ b/.changeset/fresh-rockets-yell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +The `publish:file` action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default. diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index de9a9e677f..7c24bdc572 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -303,7 +303,7 @@ export function createPublishBitbucketServerAction(options: { token?: string | undefined; }>; -// @public +// @public @deprecated export function createPublishFileAction(): TemplateAction<{ path: string; }>; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts index 2d2cb85930..52376e39a3 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts @@ -29,6 +29,7 @@ import { createTemplateAction } from '../../createTemplateAction'; * production, as it writes the files to the local filesystem of the scaffolder. * * @public + * @deprecated This action will be removed, prefer testing templates using the template editor instead. */ export function createPublishFileAction() { return createTemplateAction<{ path: string }>({ @@ -47,6 +48,10 @@ export function createPublishFileAction() { }, }, async handler(ctx) { + ctx.logger.warn( + '[DEPRECATED] This action will be removed, prefer testing templates using the template editor instead.', + ); + const { path } = ctx.input; const exists = await fs.pathExists(path); From 2df9955f4a649942582da2109e5a200543346e85 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:21:04 +0200 Subject: [PATCH 036/239] scaffolder-backend: removed the publish:file action Signed-off-by: Patrik Oldsberg --- .changeset/silent-kings-live.md | 5 ++ plugins/scaffolder-backend/api-report.md | 5 -- .../actions/builtin/publish/file.ts | 65 ------------------- .../actions/builtin/publish/index.ts | 1 - 4 files changed, 5 insertions(+), 71 deletions(-) create mode 100644 .changeset/silent-kings-live.md delete mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts diff --git a/.changeset/silent-kings-live.md b/.changeset/silent-kings-live.md new file mode 100644 index 0000000000..7e55f5ae78 --- /dev/null +++ b/.changeset/silent-kings-live.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Removed the depreacated `publish:file` action, use the template editor to test templates instead. diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 7c24bdc572..123591b1f3 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -303,11 +303,6 @@ export function createPublishBitbucketServerAction(options: { token?: string | undefined; }>; -// @public @deprecated -export function createPublishFileAction(): TemplateAction<{ - path: string; -}>; - // @public export function createPublishGerritAction(options: { integrations: ScmIntegrationRegistry; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts deleted file mode 100644 index 52376e39a3..0000000000 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/file.ts +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import fs from 'fs-extra'; -import { dirname } from 'path'; -import { InputError } from '@backstage/errors'; -import { createTemplateAction } from '../../createTemplateAction'; - -/** - * This task is useful for local development and testing of both the scaffolder - * and scaffolder templates. - * - * @remarks - * - * This action is not installed by default and should not be installed in - * production, as it writes the files to the local filesystem of the scaffolder. - * - * @public - * @deprecated This action will be removed, prefer testing templates using the template editor instead. - */ -export function createPublishFileAction() { - return createTemplateAction<{ path: string }>({ - id: 'publish:file', - description: 'Writes contents of the workspace to a local directory', - schema: { - input: { - type: 'object', - required: ['path'], - properties: { - path: { - title: 'Path to a directory where the output will be written', - type: 'string', - }, - }, - }, - }, - async handler(ctx) { - ctx.logger.warn( - '[DEPRECATED] This action will be removed, prefer testing templates using the template editor instead.', - ); - - const { path } = ctx.input; - - const exists = await fs.pathExists(path); - if (exists) { - throw new InputError('Output path already exists'); - } - await fs.ensureDir(dirname(path)); - await fs.copy(ctx.workspacePath, path); - }, - }); -} diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/index.ts index 8819c93d08..a8a40ab1df 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/index.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/index.ts @@ -18,7 +18,6 @@ export { createPublishAzureAction } from './azure'; export { createPublishBitbucketAction } from './bitbucket'; export { createPublishBitbucketCloudAction } from './bitbucketCloud'; export { createPublishBitbucketServerAction } from './bitbucketServer'; -export { createPublishFileAction } from './file'; export { createPublishGerritAction } from './gerrit'; export { createPublishGerritReviewAction } from './gerritReview'; export { createPublishGithubAction } from './github'; From 187e249276e90c43128789018f1256677241d63d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 12:48:19 +0200 Subject: [PATCH 037/239] create-app: switch better-sqlite3 to be prod dependency by default Signed-off-by: Patrik Oldsberg --- docs/deployment/docker.md | 6 ++++-- packages/backend/Dockerfile | 3 ++- .../templates/default-app/packages/backend/Dockerfile | 3 ++- .../templates/default-app/packages/backend/package.json.hbs | 4 ++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index 6471ada7f2..6e0ff77228 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -60,7 +60,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ @@ -178,7 +179,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile index 86f6e17861..fb60b8a669 100644 --- a/packages/backend/Dockerfile +++ b/packages/backend/Dockerfile @@ -13,7 +13,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/create-app/templates/default-app/packages/backend/Dockerfile b/packages/create-app/templates/default-app/packages/backend/Dockerfile index a5773aa0f8..8836ac7898 100644 --- a/packages/create-app/templates/default-app/packages/backend/Dockerfile +++ b/packages/create-app/templates/default-app/packages/backend/Dockerfile @@ -13,7 +13,8 @@ FROM node:16-bullseye-slim WORKDIR /app -# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ rm -rf /var/lib/apt/lists/* && \ diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index 3bd070ee9b..3853911c7f 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -33,6 +33,7 @@ "@backstage/plugin-search-backend-module-pg": "^{{version '@backstage/plugin-search-backend-module-pg'}}", "@backstage/plugin-search-backend-node": "^{{version '@backstage/plugin-search-backend-node'}}", "@backstage/plugin-techdocs-backend": "^{{version '@backstage/plugin-techdocs-backend'}}", + "better-sqlite3": "^7.5.0", "dockerode": "^3.3.1", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -44,8 +45,7 @@ "@types/dockerode": "^3.3.0", "@types/express-serve-static-core": "^4.17.5", "@types/express": "^4.17.6", - "@types/luxon": "^2.0.4", - "better-sqlite3": "^7.5.0" + "@types/luxon": "^2.0.4" }, "files": [ "dist" From db76fc6255309365ead6c6527e4baffa7a9adb7b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 14:47:13 +0200 Subject: [PATCH 038/239] changesets: added changeset for better-sqlite3 move Signed-off-by: Patrik Oldsberg --- .changeset/loud-ears-taste.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/loud-ears-taste.md diff --git a/.changeset/loud-ears-taste.md b/.changeset/loud-ears-taste.md new file mode 100644 index 0000000000..479e14ce02 --- /dev/null +++ b/.changeset/loud-ears-taste.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +The `better-sqlite3` dependency has been moved back to production `"dependencies"` in `packages/backend/package.json`, with instructions in the Dockerfile to move it to `"devDependencies"` if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option. From 5595a608d44f71dfbe2164c208bae8d813c5317b Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 14:50:22 +0200 Subject: [PATCH 039/239] format Signed-off-by: Johan Haals --- packages/backend-defaults/package.json | 2 +- packages/backend-next/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 796aee835e..3a9e3a4498 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -44,4 +44,4 @@ "dist", "alpha" ] -} \ No newline at end of file +} diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 93eff3f78e..a5437f621d 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -35,4 +35,4 @@ "files": [ "dist" ] -} \ No newline at end of file +} From e419f6dccaca9e7fa59d0be02fc07cf74bb413af Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 15:35:18 +0200 Subject: [PATCH 040/239] Rename serviceFactories to services, fix docs Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 2 +- packages/backend-app-api/src/wiring/types.ts | 4 ++-- packages/backend-defaults/api-report.md | 4 +--- .../backend-defaults/src/CreateBackend.ts | 15 ++++++++---- packages/backend-defaults/src/index.ts | 8 ++++++- packages/backend-defaults/src/types.ts | 24 ------------------- 6 files changed, 21 insertions(+), 36 deletions(-) delete mode 100644 packages/backend-defaults/src/types.ts diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index c91709519f..130ad6d1f1 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -44,7 +44,7 @@ export function createSpecializedBackend( // @public (undocumented) export interface CreateSpecializedBackendOptions { // (undocumented) - serviceFactories: AnyServiceFactory[]; + services: AnyServiceFactory[]; } // @public (undocumented) diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index fc4d14a962..2aaead805d 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -42,7 +42,7 @@ export interface BackendRegisterInit { * @public */ export interface CreateSpecializedBackendOptions { - serviceFactories: AnyServiceFactory[]; + services: AnyServiceFactory[]; } export type ServiceHolder = { @@ -55,5 +55,5 @@ export type ServiceHolder = { export function createSpecializedBackend( options: CreateSpecializedBackendOptions, ): Backend { - return new BackstageBackend(options.serviceFactories); + return new BackstageBackend(options.services); } diff --git a/packages/backend-defaults/api-report.md b/packages/backend-defaults/api-report.md index 4e8f7d755c..4c0fb80714 100644 --- a/packages/backend-defaults/api-report.md +++ b/packages/backend-defaults/api-report.md @@ -12,8 +12,6 @@ export function createBackend(options?: CreateBackendOptions): Backend; // @public (undocumented) export interface CreateBackendOptions { // (undocumented) - serviceFactories?: AnyServiceFactory[]; + services?: AnyServiceFactory[]; } - -// (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 31905a3081..8d61d6e915 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -28,7 +28,6 @@ import { tokenManagerFactory, urlReaderFactory, } from '@backstage/backend-app-api'; -import { CreateBackendOptions } from './types'; export const defaultServiceFactories = [ cacheFactory, @@ -43,15 +42,21 @@ export const defaultServiceFactories = [ httpRouterFactory, ]; +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; + +/** + * @public + */ +export interface CreateBackendOptions { + services?: AnyServiceFactory[]; +} + /** * @public */ export function createBackend(options?: CreateBackendOptions): Backend { // TODO: merge with provided APIs return createSpecializedBackend({ - serviceFactories: [ - ...defaultServiceFactories, - ...(options?.serviceFactories || []), - ], + services: [...defaultServiceFactories, ...(options?.services || [])], }); } diff --git a/packages/backend-defaults/src/index.ts b/packages/backend-defaults/src/index.ts index d3227d6d96..b6ae2f1333 100644 --- a/packages/backend-defaults/src/index.ts +++ b/packages/backend-defaults/src/index.ts @@ -14,5 +14,11 @@ * limitations under the License. */ -export type { CreateBackendOptions } from './types'; +/** + * Backend defaults used by Backstage backend apps + * + * @packageDocumentation + */ + +export type { CreateBackendOptions } from './CreateBackend'; export { createBackend } from './CreateBackend'; diff --git a/packages/backend-defaults/src/types.ts b/packages/backend-defaults/src/types.ts deleted file mode 100644 index 710f18ab16..0000000000 --- a/packages/backend-defaults/src/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { AnyServiceFactory } from '@backstage/backend-plugin-api'; - -/** - * @public - */ -export interface CreateBackendOptions { - serviceFactories?: AnyServiceFactory[]; -} From ab4b0f4ce1a4fd7ab365b9d750496af6919aaf05 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 15:43:15 +0200 Subject: [PATCH 041/239] skip building alpha types Signed-off-by: Johan Haals --- packages/backend-defaults/package.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 3a9e3a4498..8b39ecc724 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -8,8 +8,7 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", - "types": "dist/index.d.ts", - "alphaTypes": "dist/index.alpha.d.ts" + "types": "dist/index.d.ts" }, "backstage": { "role": "node-library" @@ -25,7 +24,7 @@ ], "license": "Apache-2.0", "scripts": { - "build": "backstage-cli package build --experimental-type-build", + "build": "backstage-cli package build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", @@ -41,7 +40,6 @@ "@backstage/cli": "^0.18.1-next.0" }, "files": [ - "dist", - "alpha" + "dist" ] } From 009cffb4ee9c8201011f962bc4a42867e6ab4128 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 13:15:35 +0200 Subject: [PATCH 042/239] contrib: remove kubernetes example as its all documented elsewhere Signed-off-by: Patrik Oldsberg --- .../kubernetes-example-backend/Dockerfile | 33 ------------------- .../kubernetes-example-backend/README.md | 13 -------- 2 files changed, 46 deletions(-) delete mode 100644 contrib/docker/kubernetes-example-backend/Dockerfile delete mode 100644 contrib/docker/kubernetes-example-backend/README.md diff --git a/contrib/docker/kubernetes-example-backend/Dockerfile b/contrib/docker/kubernetes-example-backend/Dockerfile deleted file mode 100644 index 4f4105838d..0000000000 --- a/contrib/docker/kubernetes-example-backend/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM node:14-buster - -WORKDIR /usr/src/app - -# (workaround) Install cookiecutter and mkdocs to avoid the need to run docker in docker -RUN cd /tmp && curl -O https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz && \ - tar -xvf Python-3.8.2.tar.xz && \ - cd Python-3.8.2 && \ - ./configure --enable-optimizations && \ - make -j 4 && \ - make altinstall - -RUN apt update -RUN apt install -y mkdocs - -RUN pip3.8 install mkdocs-techdocs-core - -RUN pip3.8 install cookiecutter && \ - apt remove -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev g++ python-pip python-dev && \ - rm -rf /var/cache/apt/* /tmp/Python-3.8.2 - -# Copy repo skeleton first, to avoid unnecessary docker cache invalidation. -# The skeleton contains the package.json of each package in the monorepo, -# and along with yarn.lock and the root package.json, that's enough to run yarn install. -ADD yarn.lock package.json skeleton.tar ./ - -RUN yarn install --frozen-lockfile --production - -# This will copy the contents of the dist-workspace when running the build-image command. -# Do not use this Dockerfile outside of that command, as it will copy in the source code instead. -COPY . . - -CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.development.yaml"] diff --git a/contrib/docker/kubernetes-example-backend/README.md b/contrib/docker/kubernetes-example-backend/README.md deleted file mode 100644 index d0f9d57022..0000000000 --- a/contrib/docker/kubernetes-example-backend/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Example backend Dockerfile - -This Dockerfile will build the example backend with certain additional binaries needed to workaround -the docker requirement in the scaffolder and techdocs. - -# Usage - -```bash -yarn docker-build -f --tag -``` - -> The absolute path is necessary as this directory is not copied to the build workspace when building -> the docker image. From afb14027c2d1f02339fa54fbf47ee9708386689f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 13:21:18 +0200 Subject: [PATCH 043/239] contrib: remove jinja2 extension Dockerfile example, inline in README instead Signed-off-by: Patrik Oldsberg --- .../cookiecutter-with-jinja2-extensions/Dockerfile | 11 ----------- .../cookiecutter-with-jinja2-extensions/README.md | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 contrib/docker/cookiecutter-with-jinja2-extensions/Dockerfile diff --git a/contrib/docker/cookiecutter-with-jinja2-extensions/Dockerfile b/contrib/docker/cookiecutter-with-jinja2-extensions/Dockerfile deleted file mode 100644 index e41d324730..0000000000 --- a/contrib/docker/cookiecutter-with-jinja2-extensions/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM alpine:3.16 - -RUN apk add --update \ - git \ - python \ - python-dev \ - py-pip \ - g++ && \ - pip install cookiecutter jinja2_custom_filters_extension && \ - apk del g++ py-pip python-dev && \ - rm -rf /var/cache/apk/* diff --git a/contrib/docker/cookiecutter-with-jinja2-extensions/README.md b/contrib/docker/cookiecutter-with-jinja2-extensions/README.md index 470694513a..0b754fa4ce 100644 --- a/contrib/docker/cookiecutter-with-jinja2-extensions/README.md +++ b/contrib/docker/cookiecutter-with-jinja2-extensions/README.md @@ -51,7 +51,7 @@ steps: imageName: 'foo/custom-built-cookiecutter-image-with-extensions' ``` -See for example, the [`Dockerfile`](./Dockerfile) in this directory. +For example, you can `pip install jinja2_custom_filters_extension` as part of your cookiecutter Dockerfile. ### Instructing Cookiecutter to use the extension From 8a0f1459708b6d2abd0e548f034b18d817eeedf9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 13:25:39 +0200 Subject: [PATCH 044/239] create-app: update Dockerfile to run app with node user Signed-off-by: Patrik Oldsberg --- docs/deployment/docker.md | 22 +++++++++++-------- packages/backend/Dockerfile | 10 +++++---- .../default-app/packages/backend/Dockerfile | 10 +++++---- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index 6e0ff77228..ff31a6a81f 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -58,8 +58,6 @@ Once the host build is complete, we are ready to build our image. The following ```Dockerfile FROM node:16-bullseye-slim -WORKDIR /app - # Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, # in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ @@ -67,16 +65,20 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* && \ yarn config set python /usr/bin/python3 +# From here on we use the least-privileged `node` user to run the backend. +USER node +WORKDIR /app + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. -COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ +COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)" # Then copy the rest of the backend bundle, along with any other files we might want. -COPY packages/backend/dist/bundle.tar.gz app-config.yaml ./ +COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ RUN tar xzf bundle.tar.gz && rm bundle.tar.gz CMD ["node", "packages/backend", "--config", "app-config.yaml"] @@ -177,8 +179,6 @@ RUN yarn --cwd packages/backend build # Stage 3 - Build the actual backend image and install production dependencies FROM node:16-bullseye-slim -WORKDIR /app - # Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, # in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ @@ -186,18 +186,22 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* && \ yarn config set python /usr/bin/python3 +# From here on we use the least-privileged `node` user to run the backend. +USER node +WORKDIR /app + # Copy the install dependencies from the build stage and context -COPY --from=build /app/yarn.lock /app/package.json /app/packages/backend/dist/skeleton.tar.gz ./ +COPY --from=build --chown=node:node /app/yarn.lock /app/package.json /app/packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz RUN yarn install --frozen-lockfile --production --network-timeout 600000 && rm -rf "$(yarn cache dir)" # Copy the built packages from the build stage -COPY --from=build /app/packages/backend/dist/bundle.tar.gz . +COPY --from=build --chown=node:node /app/packages/backend/dist/bundle.tar.gz . RUN tar xzf bundle.tar.gz && rm bundle.tar.gz # Copy any other files that we need at runtime -COPY app-config.yaml ./ +COPY --chown=node:node app-config.yaml ./ CMD ["node", "packages/backend", "--config", "app-config.yaml"] ``` diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile index fb60b8a669..bda34fa045 100644 --- a/packages/backend/Dockerfile +++ b/packages/backend/Dockerfile @@ -11,8 +11,6 @@ FROM node:16-bullseye-slim -WORKDIR /app - # Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, # in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ @@ -20,16 +18,20 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* && \ yarn config set python /usr/bin/python3 +# From here on we use the least-privileged `node` user to run the backend. +USER node +WORKDIR /app + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. -COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ +COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)" # Then copy the rest of the backend bundle, along with any other files we might want. -COPY packages/backend/dist/bundle.tar.gz app-config.yaml ./ +COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ RUN tar xzf bundle.tar.gz && rm bundle.tar.gz CMD ["node", "packages/backend", "--config", "app-config.yaml"] diff --git a/packages/create-app/templates/default-app/packages/backend/Dockerfile b/packages/create-app/templates/default-app/packages/backend/Dockerfile index 8836ac7898..c926ba350b 100644 --- a/packages/create-app/templates/default-app/packages/backend/Dockerfile +++ b/packages/create-app/templates/default-app/packages/backend/Dockerfile @@ -11,8 +11,6 @@ FROM node:16-bullseye-slim -WORKDIR /app - # Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, # in which case you should also move better-sqlite3 to "devDependencies" in package.json. RUN apt-get update && \ @@ -20,16 +18,20 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* && \ yarn config set python /usr/bin/python3 +# From here on we use the least-privileged `node` user to run the backend. +USER node +WORKDIR /app + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. -COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ +COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)" # Then copy the rest of the backend bundle, along with any other files we might want. -COPY packages/backend/dist/bundle.tar.gz app-config*.yaml ./ +COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ RUN tar xzf bundle.tar.gz && rm bundle.tar.gz CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"] From 1725b2a3aa0bec1048b405ffe1653267c8e77a19 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 13:26:02 +0200 Subject: [PATCH 045/239] create-app: update Dockerfile to set NODE_ENV=production Signed-off-by: Patrik Oldsberg --- docs/deployment/docker.md | 6 ++++++ packages/backend/Dockerfile | 3 +++ .../templates/default-app/packages/backend/Dockerfile | 3 +++ 3 files changed, 12 insertions(+) diff --git a/docs/deployment/docker.md b/docs/deployment/docker.md index ff31a6a81f..d46aff1b06 100644 --- a/docs/deployment/docker.md +++ b/docs/deployment/docker.md @@ -69,6 +69,9 @@ RUN apt-get update && \ USER node WORKDIR /app +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV production + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. @@ -190,6 +193,9 @@ RUN apt-get update && \ USER node WORKDIR /app +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV production + # Copy the install dependencies from the build stage and context COPY --from=build --chown=node:node /app/yarn.lock /app/package.json /app/packages/backend/dist/skeleton.tar.gz ./ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz diff --git a/packages/backend/Dockerfile b/packages/backend/Dockerfile index bda34fa045..ed18da530b 100644 --- a/packages/backend/Dockerfile +++ b/packages/backend/Dockerfile @@ -22,6 +22,9 @@ RUN apt-get update && \ USER node WORKDIR /app +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV production + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. diff --git a/packages/create-app/templates/default-app/packages/backend/Dockerfile b/packages/create-app/templates/default-app/packages/backend/Dockerfile index c926ba350b..682798b826 100644 --- a/packages/create-app/templates/default-app/packages/backend/Dockerfile +++ b/packages/create-app/templates/default-app/packages/backend/Dockerfile @@ -22,6 +22,9 @@ RUN apt-get update && \ USER node WORKDIR /app +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV production + # Copy repo skeleton first, to avoid unnecessary docker cache invalidation. # The skeleton contains the package.json of each package in the monorepo, # and along with yarn.lock and the root package.json, that's enough to run yarn install. From 208d6780c99f2383f45d3bdf73bd62a7264bcd4d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 10 Aug 2022 13:51:19 +0200 Subject: [PATCH 046/239] changesets: added changeset for create-app prod changes Signed-off-by: Patrik Oldsberg --- .changeset/hot-files-begin.md | 71 +++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .changeset/hot-files-begin.md diff --git a/.changeset/hot-files-begin.md b/.changeset/hot-files-begin.md new file mode 100644 index 0000000000..e9b9076986 --- /dev/null +++ b/.changeset/hot-files-begin.md @@ -0,0 +1,71 @@ +--- +'@backstage/create-app': patch +--- + +The `packages/backend/Dockerfile` received a couple of updates, it now looks as follows: + +```Dockerfile +FROM node:16-bullseye-slim + +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. +RUN apt-get update && \ + apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \ + rm -rf /var/lib/apt/lists/* && \ + yarn config set python /usr/bin/python3 + +# From here on we use the least-privileged `node` user to run the backend. +USER node +WORKDIR /app + +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV production + +# Copy repo skeleton first, to avoid unnecessary docker cache invalidation. +# The skeleton contains the package.json of each package in the monorepo, +# and along with yarn.lock and the root package.json, that's enough to run yarn install. +COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ +RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz + +RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)" + +# Then copy the rest of the backend bundle, along with any other files we might want. +COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ +RUN tar xzf bundle.tar.gz && rm bundle.tar.gz + +CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"] +``` + +The two notable changes are that a `USER node` instruction has been added and the ordering of instructions has been changed accordingly. This means that the app will now be running using the least-privileged `node` user. In order for this to work we now need to make sure that all app files are owned by the `node` user, which we do by adding the `--chown=node:node` option to the `COPY` instructions. + +The second change is the addition of `ENV NODE_ENV production`, which ensured that all Node.js modules run in production mode. If you apply this change to an existing app, note that one of the more significant changes is that this switches the log formatting to use the default production format, JSON. Rather than your log lines looking like this: + +```log +2022-08-10T11:36:05.478Z catalog info Performing database migration type=plugin +``` + +They will now look like this: + +```log +{"level":"info","message":"Performing database migration","plugin":"catalog","service":"backstage","type":"plugin"} +``` + +If you wish to keep the existing format, you can override this change by applying the following change to `packages/backend/src/index.ts`: + +```diff + getRootLogger, ++ setRootLogger, ++ createRootLogger, ++ coloredFormat, + useHotMemoize, + ... + ServerTokenManager, + } from '@backstage/backend-common'; + + ... + + async function main() { ++ setRootLogger(createRootLogger({ format: coloredFormat })); ++ + const config = await loadBackendConfig({ +``` From 0297da83c0569f3ec3298672cad3056de72d187a Mon Sep 17 00:00:00 2001 From: Salomon Moreno Date: Tue, 9 Aug 2022 10:03:55 -0500 Subject: [PATCH 047/239] Add DaemonSets as Default Objects Signed-off-by: Salomon Moreno --- .changeset/dull-peaches-approve.md | 6 ++++++ plugins/kubernetes-backend/api-report.md | 3 ++- .../src/service/KubernetesFanOutHandler.ts | 6 ++++++ plugins/kubernetes-backend/src/types/types.ts | 3 ++- plugins/kubernetes-common/api-report.md | 14 +++++++++++++- plugins/kubernetes-common/src/types.ts | 9 ++++++++- 6 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 .changeset/dull-peaches-approve.md diff --git a/.changeset/dull-peaches-approve.md b/.changeset/dull-peaches-approve.md new file mode 100644 index 0000000000..f2edcc9e11 --- /dev/null +++ b/.changeset/dull-peaches-approve.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-kubernetes-common': patch +--- + +Added `DaemonSets` to the default kubernetes resources. diff --git a/plugins/kubernetes-backend/api-report.md b/plugins/kubernetes-backend/api-report.md index 03ecefa79d..d98d80ddb1 100644 --- a/plugins/kubernetes-backend/api-report.md +++ b/plugins/kubernetes-backend/api-report.md @@ -227,7 +227,8 @@ export type KubernetesObjectTypes = | 'cronjobs' | 'ingresses' | 'customresources' - | 'statefulsets'; + | 'statefulsets' + | 'daemonsets'; // @alpha export interface KubernetesServiceLocator { diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts index 3b96dc783f..7fcc9836a3 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts @@ -118,6 +118,12 @@ export const DEFAULT_OBJECTS: ObjectToFetch[] = [ plural: 'statefulsets', objectType: 'statefulsets', }, + { + group: 'apps', + apiVersion: 'v1', + plural: 'daemonsets', + objectType: 'daemonsets', + }, ]; export interface KubernetesFanOutHandlerOptions diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index 6bdcfc24da..33fde70b24 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -108,7 +108,8 @@ export type KubernetesObjectTypes = | 'cronjobs' | 'ingresses' | 'customresources' - | 'statefulsets'; + | 'statefulsets' + | 'daemonsets'; /** * Used to load cluster details from different sources diff --git a/plugins/kubernetes-common/api-report.md b/plugins/kubernetes-common/api-report.md index 2ca33d1a97..f8a8c6b460 100644 --- a/plugins/kubernetes-common/api-report.md +++ b/plugins/kubernetes-common/api-report.md @@ -7,6 +7,7 @@ import { Entity } from '@backstage/catalog-model'; import type { JsonObject } from '@backstage/types'; import { V1ConfigMap } from '@kubernetes/client-node'; import { V1CronJob } from '@kubernetes/client-node'; +import { V1DaemonSet } from '@kubernetes/client-node'; import { V1Deployment } from '@kubernetes/client-node'; import { V1HorizontalPodAutoscaler } from '@kubernetes/client-node'; import { V1Ingress } from '@kubernetes/client-node'; @@ -114,6 +115,16 @@ export interface CustomResourceFetchResponse { type: 'customresources'; } +// Warning: (ae-missing-release-tag) "DaemonSetsFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface DaemonSetsFetchResponse { + // (undocumented) + resources: Array; + // (undocumented) + type: 'daemonsets'; +} + // Warning: (ae-missing-release-tag) "DeploymentFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -139,7 +150,8 @@ export type FetchResponse = | CronJobsFetchResponse | IngressesFetchResponse | CustomResourceFetchResponse - | StatefulSetsFetchResponse; + | StatefulSetsFetchResponse + | DaemonSetsFetchResponse; // Warning: (ae-missing-release-tag) "HorizontalPodAutoscalersFetchResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/plugins/kubernetes-common/src/types.ts b/plugins/kubernetes-common/src/types.ts index 9b8b790c79..53f6a5a640 100644 --- a/plugins/kubernetes-common/src/types.ts +++ b/plugins/kubernetes-common/src/types.ts @@ -18,6 +18,7 @@ import type { JsonObject } from '@backstage/types'; import { V1ConfigMap, V1CronJob, + V1DaemonSet, V1Deployment, V1HorizontalPodAutoscaler, V1Ingress, @@ -105,7 +106,8 @@ export type FetchResponse = | CronJobsFetchResponse | IngressesFetchResponse | CustomResourceFetchResponse - | StatefulSetsFetchResponse; + | StatefulSetsFetchResponse + | DaemonSetsFetchResponse; export interface PodFetchResponse { type: 'pods'; @@ -167,6 +169,11 @@ export interface StatefulSetsFetchResponse { resources: Array; } +export interface DaemonSetsFetchResponse { + type: 'daemonsets'; + resources: Array; +} + export interface KubernetesFetchError { errorType: KubernetesErrorTypes; statusCode?: number; From 79fd0b32d61e8585ecd65b9c23dc89ef690ad504 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Wed, 10 Aug 2022 16:13:08 +0200 Subject: [PATCH 048/239] backend-defaults: Merge provided services with default services Signed-off-by: Johan Haals --- packages/backend-defaults/src/CreateBackend.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 8d61d6e915..7cc116a052 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -28,6 +28,7 @@ import { tokenManagerFactory, urlReaderFactory, } from '@backstage/backend-app-api'; +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; export const defaultServiceFactories = [ cacheFactory, @@ -42,8 +43,6 @@ export const defaultServiceFactories = [ httpRouterFactory, ]; -import { AnyServiceFactory } from '@backstage/backend-plugin-api'; - /** * @public */ @@ -55,8 +54,17 @@ export interface CreateBackendOptions { * @public */ export function createBackend(options?: CreateBackendOptions): Backend { - // TODO: merge with provided APIs + const services = new Map( + defaultServiceFactories.map(sf => [sf.service.id, sf]), + ); + + if (options?.services) { + for (const sf of options.services) { + services.set(sf.service.id, sf); + } + } + return createSpecializedBackend({ - services: [...defaultServiceFactories, ...(options?.services || [])], + services: Array.from(services.values()), }); } From cfb4a12c684719a7a5d059ea452654c909c6c108 Mon Sep 17 00:00:00 2001 From: Paulo Peixoto <72894267+padupe@users.noreply.github.com> Date: Wed, 10 Aug 2022 11:47:33 -0300 Subject: [PATCH 049/239] fix: change HeaderIcon for ExampleIcon. Signed-off-by: Paulo Peixoto <72894267+padupe@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 48d40761da..9ca82d01a1 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -296,7 +296,7 @@ import { SvgIcon, SvgIconProps } from '@material-ui/core'; import React from 'react'; -export const HeaderIcon = (props: SvgIconProps) => ( +export const ExampleIcon = (props: SvgIconProps) => ( Date: Wed, 10 Aug 2022 10:13:34 -0500 Subject: [PATCH 050/239] Added back reduction in size Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../techdocs/src/reader/transformers/styles/rules/typeset.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts b/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts index 6a3b0461ef..4c1eef1ea4 100644 --- a/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts +++ b/plugins/techdocs/src/reader/transformers/styles/rules/typeset.ts @@ -47,7 +47,8 @@ ${headings.reduce((style, heading) => { let factor: number | string = 1; if (typeof value === 'number') { // convert px to rem - factor = value / htmlFontSize; + // 60% of the size defined because it is too big + factor = (value / htmlFontSize) * 0.6; } if (typeof value === 'string') { factor = value.replace('rem', ''); From e924d2d01326512741c4c96662a544abf540ac8b Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 10 Aug 2022 10:15:15 -0500 Subject: [PATCH 051/239] Added changeset Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/dull-fans-hug.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dull-fans-hug.md diff --git a/.changeset/dull-fans-hug.md b/.changeset/dull-fans-hug.md new file mode 100644 index 0000000000..6328e3d9f2 --- /dev/null +++ b/.changeset/dull-fans-hug.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Added back reduction in size, this fixes the extermly large TeachDocs headings From 0c027eb524be00bccf349880038f712a314349b3 Mon Sep 17 00:00:00 2001 From: kielosz Date: Wed, 10 Aug 2022 17:51:07 +0200 Subject: [PATCH 052/239] Use options parameter Signed-off-by: kielosz --- plugins/cost-insights/api-report.md | 4 +++- .../src/components/CostGrowth/CostGrowthIndicator.tsx | 4 ++-- .../components/CostOverviewCard/CostOverviewLegend.tsx | 4 ++-- .../ProductInsightsCard/ProductEntityTable.tsx | 10 ++-------- plugins/cost-insights/src/utils/formatters.test.ts | 2 +- plugins/cost-insights/src/utils/formatters.ts | 8 ++++---- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/plugins/cost-insights/api-report.md b/plugins/cost-insights/api-report.md index 19d94c7058..2a4cecc4eb 100644 --- a/plugins/cost-insights/api-report.md +++ b/plugins/cost-insights/api-report.md @@ -322,7 +322,9 @@ export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; formatter?: ( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { + absolute: boolean; + }, ) => Maybe; }; diff --git a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx index bb303956a3..e7746495d6 100644 --- a/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx +++ b/plugins/cost-insights/src/components/CostGrowth/CostGrowthIndicator.tsx @@ -27,7 +27,7 @@ export type CostGrowthIndicatorProps = TypographyProps & { change: ChangeStatistic; formatter?: ( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { absolute: boolean }, ) => Maybe; }; @@ -47,7 +47,7 @@ export const CostGrowthIndicator = ({ return ( - {formatter ? formatter(change, true) : change.ratio} + {formatter ? formatter(change, { absolute: true }) : change.ratio} {growth === GrowthType.Excess && } {growth === GrowthType.Savings && } diff --git a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx index ddd31201a6..2df80f4780 100644 --- a/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx +++ b/plugins/cost-insights/src/components/CostOverviewCard/CostOverviewLegend.tsx @@ -59,7 +59,7 @@ export const CostOverviewLegend = ({ {dailyCostData.change && ( - {formatChange(dailyCostData.change, false)} + {formatChange(dailyCostData.change)} )} @@ -70,7 +70,7 @@ export const CostOverviewLegend = ({ title={`${metric.name} Trend`} markerColor={theme.palette.magenta} > - {formatChange(metricData.change, false)} + {formatChange(metricData.change)} ) { if (b.id === 'total') return 1; if (field === 'label') return a.label.localeCompare(b.label); if (field === 'change') { - if ( - formatChange(a[field], false) === '∞' || - formatChange(b[field], false) === '-∞' - ) + if (formatChange(a[field]) === '∞' || formatChange(b[field]) === '-∞') return 1; - if ( - formatChange(a[field], false) === '-∞' || - formatChange(b[field], false) === '∞' - ) + if (formatChange(a[field]) === '-∞' || formatChange(b[field]) === '∞') return -1; return a[field].ratio! - b[field].ratio!; } diff --git a/plugins/cost-insights/src/utils/formatters.test.ts b/plugins/cost-insights/src/utils/formatters.test.ts index 754760e5cb..8bf0a6a9d7 100644 --- a/plugins/cost-insights/src/utils/formatters.test.ts +++ b/plugins/cost-insights/src/utils/formatters.test.ts @@ -75,7 +75,7 @@ describe.each` ${10.123} | ${'>1000%'} ${-0.123123} | ${'-12%'} ${-1.123} | ${'-112%'} - ${-10.123} | ${'>1000%'} + ${-10.123} | ${'>-1000%'} `('formatPercent', ({ ratio, expected }) => { it(`correctly formats ${ratio} as ${expected}`, () => { expect(formatPercent(ratio)).toBe(expected); diff --git a/plugins/cost-insights/src/utils/formatters.ts b/plugins/cost-insights/src/utils/formatters.ts index e66b6bc75c..e9b19097a4 100644 --- a/plugins/cost-insights/src/utils/formatters.ts +++ b/plugins/cost-insights/src/utils/formatters.ts @@ -83,14 +83,14 @@ export function formatCurrency(amount: number, currency?: string): string { export function formatChange( change: ChangeStatistic, - returnAbsoluteValue: boolean, + options?: { absolute: boolean }, ): string { if (notEmpty(change.ratio)) { return formatPercent( - returnAbsoluteValue ? Math.abs(change.ratio) : change.ratio, + options?.absolute ? Math.abs(change.ratio) : change.ratio, ); } - if (returnAbsoluteValue) { + if (options?.absolute) { return '∞'; } return change.amount >= 0 ? '∞' : '-∞'; @@ -103,7 +103,7 @@ export function formatPercent(n: number): string { } if (Math.abs(n) > 10) { - return `>1000%`; + return `>${n < 0 ? '-' : ''}1000%`; } return `${(n * 100).toFixed(0)}%`; From ac39b6da0e561f14b2caa69567d87bb1bbd09f5c Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 10 Aug 2022 12:08:15 -0400 Subject: [PATCH 053/239] Fix typo Signed-off-by: Adam Harvey --- packages/create-app/templates/default-app/app-config.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 9c31ccf381..4a058deefd 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -26,7 +26,7 @@ backend: origin: http://localhost:3000 methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true - # This is for local developement only, it is not recommended to use this in production + # This is for local development only, it is not recommended to use this in production # The production database configuration is stored in app-config.production.yaml database: client: better-sqlite3 From 83eb862f15a51ece09525725c9d26af4f0e33cbb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 17:59:19 +0000 Subject: [PATCH 054/239] chore(deps): update dependency @types/semver to v7.3.11 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 197930f055..b138ec50fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7645,9 +7645,9 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.8": - version "7.3.10" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.10.tgz#5f19ee40cbeff87d916eedc8c2bfe2305d957f73" - integrity sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw== + version "7.3.11" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.11.tgz#7a84d3228f34e68d14955fc406f8e66fdbe9e65e" + integrity sha512-R9HhjC4aKx3jL0FLwU7x6qMTysTvLh7jesRslXmxgCOXZwyh5dsnmrPQQToMyess8D4U+8G9x9mBFZoC/1o/Tw== "@types/serve-handler@^6.1.0": version "6.1.1" From e8cd3491c9599b2157adecc31f1434a904950db5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:00:16 +0000 Subject: [PATCH 055/239] fix(deps): update apollo graphql packages to v3.10.1 Signed-off-by: Renovate Bot --- yarn.lock | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 197930f055..9d4360d789 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6932,7 +6932,7 @@ resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@4.17.29", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.5": version "4.17.29" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== @@ -6941,6 +6941,15 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express-serve-static-core@4.17.30": + version "4.17.30" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" + integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/express-session@^1.17.2": version "1.17.5" resolved "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e" @@ -8605,10 +8614,10 @@ apollo-reporting-protobuf@^3.3.2: dependencies: "@apollo/protobufjs" "1.2.4" -apollo-server-core@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.10.0.tgz#6680b4eb4699829ed50d8a592721ee5e5e11e041" - integrity sha512-ln5drIk3oW/ycYhcYL9TvM7vRf7OZwJrgHWlnjnMakozBQIBSumdMi4pN001DhU9mVBWTfnmBv3CdcxJdGXIvA== +apollo-server-core@^3.10.1: + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.10.1.tgz#01f9ffc57c7d15c27bd7f89d65f45522aa3f3c3d" + integrity sha512-UFFziv6h15QbKRZOA6wLyr1Sle9kns3JuQ5DEB7OYe5AIoOJNjZkWXX/tmLFUrSmlnDDryi6Sf5pDzpYmUC/UA== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" "@apollo/utils.logger" "^1.0.0" @@ -8645,18 +8654,18 @@ apollo-server-errors@^3.3.1: resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== -apollo-server-express@^3.0.0, apollo-server-express@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.10.0.tgz#fd276cf36031f7a02936cce6d170a35e1c084701" - integrity sha512-ww3tZq9I/x3Oxtux8xlHAZcSB0NNQ17lRlY6yCLk1F+jCzdcjuj0x8XNg0GdTrMowt5v43o786bU9VYKD5OVnA== +apollo-server-express@^3.0.0, apollo-server-express@^3.10.1: + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.10.1.tgz#b0262d3c4919b554cff5872639bb13b694b5a217" + integrity sha512-r0esst3YGNdlphYiOrflfBqJ15VAZAhYhWSFo2kPF4knsIGK5HUkeqwjMr+fFDBn4DEfYzC+I1+LnsF/hFN8VQ== dependencies: "@types/accepts" "^1.3.5" "@types/body-parser" "1.19.2" "@types/cors" "2.8.12" "@types/express" "4.17.13" - "@types/express-serve-static-core" "4.17.29" + "@types/express-serve-static-core" "4.17.30" accepts "^1.3.5" - apollo-server-core "^3.10.0" + apollo-server-core "^3.10.1" apollo-server-types "^3.6.2" body-parser "^1.19.0" cors "^2.8.5" @@ -8680,13 +8689,13 @@ apollo-server-types@^3.6.2: apollo-server-env "^4.2.1" apollo-server@^3.0.0: - version "3.10.0" - resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.10.0.tgz#ed4b0b4cc5e1f44260923a4317caa663f1a3824e" - integrity sha512-6PAz1XZFM9+K2+QUCXXxQIlZy5mhSOhg0rTx3ZNbIdy1fFNP+6ZjvQAJxBIyEtaKlC2yEPAOg4yi3u8WfuA3bA== + version "3.10.1" + resolved "https://registry.npmjs.org/apollo-server/-/apollo-server-3.10.1.tgz#ed0c39d706a6a232885680c001df3b90c5cb0902" + integrity sha512-2e7EN7Pw+vV7vP236zozuFVMLjeY6Q8lF1VzT+j32pZ2oYuTrDv+9lFjMjTBPK2yV5kzuOwJU4dWkWx5OKDEiQ== dependencies: "@types/express" "4.17.13" - apollo-server-core "^3.10.0" - apollo-server-express "^3.10.0" + apollo-server-core "^3.10.1" + apollo-server-express "^3.10.1" express "^4.17.1" aproba@^1.0.3: From 3cff2dbf5904c4119dd88663619ce9e90b3c1a67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 18:49:59 +0000 Subject: [PATCH 056/239] fix(deps): update dependency @google-cloud/storage to v6.4.0 Signed-off-by: Renovate Bot --- yarn.lock | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index b138ec50fb..8d7f8ea446 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2768,9 +2768,9 @@ integrity sha512-91ArYvRgXWb73YvEOBMmOcJc0bDRs5yiVHnqkwoG0f3nm7nZuipllz6e7BvFESBvjkDTBC0zMD8QxedUwNLc1A== "@google-cloud/storage@^6.0.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.3.0.tgz#0a9765416b659f54477da6611d9c12b914c04a61" - integrity sha512-Ah4wl9cWUEW+2lAqHsKauaLlPmbtdOdQkvJE6BFwmTSZhywYVtVHLcEpf5F+/GmmNTnirFGNdE7UjgbyOxcnRg== + version "6.4.0" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.0.tgz#36413d549859ea325b71328e61dff7a669bc1f2e" + integrity sha512-ogNKY8Mv8JmNvSlJv12E6lB2DtcG7pVEI8k9vmH879ja5qqK8WPw0ys5/FG2Dh5AOwxrbDKbnzMVChNQuXtGpg== dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^3.0.0" @@ -2789,7 +2789,6 @@ p-limit "^3.0.1" pumpify "^2.0.0" retry-request "^5.0.0" - stream-events "^1.0.4" teeny-request "^8.0.0" uuid "^8.0.0" @@ -24383,7 +24382,7 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-events@^1.0.4, stream-events@^1.0.5: +stream-events@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== From a641f79dcb51a2936cce4446e22684ee3ad2e39f Mon Sep 17 00:00:00 2001 From: Vincent Lam Date: Wed, 10 Aug 2022 21:17:02 +0200 Subject: [PATCH 057/239] Move CSS overflow property to quadrant block element Signed-off-by: Vincent Lam --- .changeset/witty-seas-tie.md | 5 +++++ .../tech-radar/src/components/RadarLegend/RadarLegend.tsx | 7 +------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 .changeset/witty-seas-tie.md diff --git a/.changeset/witty-seas-tie.md b/.changeset/witty-seas-tie.md new file mode 100644 index 0000000000..e0ee2f57d4 --- /dev/null +++ b/.changeset/witty-seas-tie.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-radar': patch +--- + +Move CSS overflow property to quadrant block element (i.e. to a div element) in RadarLegend component. diff --git a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx index 705dc9f47b..a398113b98 100644 --- a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx +++ b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.tsx @@ -32,15 +32,11 @@ export type Props = { }; const useStyles = makeStyles(theme => ({ - quadrantLegend: { - overflowY: 'auto', - scrollbarWidth: 'thin', - }, quadrant: { height: '100%', width: '100%', + overflowY: 'auto', scrollbarWidth: 'thin', - pointerEvents: 'none', }, quadrantHeading: { pointerEvents: 'none', @@ -229,7 +225,6 @@ const RadarLegend = (props: Props): JSX.Element => { y={quadrant.legendY} width={quadrant.legendWidth} height={quadrant.legendHeight} - className={classes.quadrantLegend} data-testid="radar-quadrant" >
From 6dd47b8a8122ce4f0aafd77b99fa79c095becd8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 19:34:54 +0000 Subject: [PATCH 058/239] fix(deps): update dependency aws-sdk to v2.1192.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d7f8ea446..a18da54699 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9072,9 +9072,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1191.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1191.0.tgz#2748567252c68ef37a8ce29f48aa063681083918" - integrity sha512-G8hWvuc+3rxTfHqsnUwGx/fy8zlnVPtlNesXMHlwU/l4oBx3+Weg0Nhng6HvLGzUJifzlnSKDXrOsWVkHtuZ1w== + version "2.1192.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1192.0.tgz#13fe38ec8dae3232f17d52b370e69daa9c7a0e9c" + integrity sha512-6uzrlG1Ow3qcOnL0+et+DBTGhYgJzgNydVvos1Eg01vPc/ZhxR7roZ3epZQcPmOR0thQuzzckTq7FBO6wzZA2w== dependencies: buffer "4.9.2" events "1.1.1" From 9ba754239b1cca8c31e343cd8951e54a8b203ee4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 19:35:48 +0000 Subject: [PATCH 059/239] fix(deps): update dependency webpack-dev-server to v4.10.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d7f8ea446..7cf1217bf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26373,9 +26373,9 @@ webpack-dev-middleware@^5.3.1: schema-utils "^4.0.0" webpack-dev-server@^4.7.3: - version "4.9.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz#2360a5d6d532acb5410a668417ad549ee3b8a3c9" - integrity sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw== + version "4.10.0" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz#de270d0009eba050546912be90116e7fd740a9ca" + integrity sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" From bc0addf4de335a388b57f1c16a569043fcbd1b04 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Aug 2022 20:26:21 +0000 Subject: [PATCH 060/239] fix(deps): update dependency @types/passport to v1.0.10 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7cf1217bf2..43f1cc89fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7444,9 +7444,9 @@ "@types/passport" "*" "@types/passport@*", "@types/passport@^1.0.3": - version "1.0.9" - resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.9.tgz#b32fa8f7485dace77a9b58e82d0c92908f6e8387" - integrity sha512-9+ilzUhmZQR4JP49GdC2O4UdDE3POPLwpmaTC/iLkW7l0TZCXOo1zsTnnlXPq6rP1UsUZPfbAV4IUdiwiXyC7g== + version "1.0.10" + resolved "https://registry.npmjs.org/@types/passport/-/passport-1.0.10.tgz#c518f2bae8b1538b7be71ee7f9220fbd3f569f05" + integrity sha512-IZamnXuN7mY+2/v8bAW6nuTcKiay7gXBBcMBZ8n7YHB4u5DwsWoJaNrHdAQ8PZEODRjCv3oHOg76CYJ40j9RqA== dependencies: "@types/express" "*" From d4ff58fd6166d593d6f4672dad98963bac91ed1b Mon Sep 17 00:00:00 2001 From: Bruce Arctor <5032356+brucearctor@users.noreply.github.com> Date: Wed, 10 Aug 2022 14:41:26 -0700 Subject: [PATCH 061/239] vacation over Signed-off-by: Bruce Arctor <5032356+brucearctor@users.noreply.github.com> --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a6e740a427..5dba1fdf52 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ ![headline](docs/assets/headline.png) -> 🏖 From July 7th due to Summer Vacations for some of the maintainers, expect the project to move a little slower than normal, and support to be limited. Normal service will resume on August 8th 🏝 - # [Backstage](https://backstage.io) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) From 831a8fee86c21777ca81c78e45c3a06c083fc8a7 Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Thu, 11 Aug 2022 14:25:05 +1000 Subject: [PATCH 062/239] Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md Signed-off-by: Robert Cen --- .changeset/weak-drinks-report.md | 5 +++ .../code-climate/src/api/production-api.ts | 37 ++++++++++++++++--- plugins/code-climate/src/plugin.ts | 3 +- 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 .changeset/weak-drinks-report.md diff --git a/.changeset/weak-drinks-report.md b/.changeset/weak-drinks-report.md new file mode 100644 index 0000000000..d9ab3880f7 --- /dev/null +++ b/.changeset/weak-drinks-report.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-code-climate': patch +--- + +Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md. diff --git a/plugins/code-climate/src/api/production-api.ts b/plugins/code-climate/src/api/production-api.ts index 665d7e9f63..d37ec61458 100644 --- a/plugins/code-climate/src/api/production-api.ts +++ b/plugins/code-climate/src/api/production-api.ts @@ -22,7 +22,7 @@ import { CodeClimateIssuesData, } from './code-climate-data'; import { CodeClimateApi } from './code-climate-api'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import { Duration } from 'luxon'; import humanizeDuration from 'humanize-duration'; @@ -34,8 +34,19 @@ const codeSmellsQuery = `${basicIssuesOptions}&${categoriesFilter}=Complexity`; const duplicationQuery = `${basicIssuesOptions}&${categoriesFilter}=Duplication`; const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`; +type Options = { + discoveryApi: DiscoveryApi; + identityApi: IdentityApi; +}; + export class ProductionCodeClimateApi implements CodeClimateApi { - constructor(private readonly discoveryApi: DiscoveryApi) {} + private readonly discoveryApi: DiscoveryApi; + private readonly identityApi: IdentityApi; + + constructor(options: Options) { + this.discoveryApi = options.discoveryApi; + this.identityApi = options.identityApi; + } async fetchAllData(options: { apiUrl: string; @@ -45,6 +56,10 @@ export class ProductionCodeClimateApi implements CodeClimateApi { }): Promise { const { apiUrl, repoID, snapshotID, testReportID } = options; + const { token } = await this.identityApi.getCredentials(); + const headersWithAuth = { + headers: { Authorization: `Bearer ${token}` }, + }; const [ maintainabilityResponse, testCoverageResponse, @@ -52,16 +67,25 @@ export class ProductionCodeClimateApi implements CodeClimateApi { duplicationResponse, otherIssuesResponse, ] = await Promise.all([ - await fetch(`${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`), - await fetch(`${apiUrl}/repos/${repoID}/test_reports/${testReportID}`), + await fetch( + `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`, + headersWithAuth, + ), + await fetch( + `${apiUrl}/repos/${repoID}/test_reports/${testReportID}`, + headersWithAuth, + ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${codeSmellsQuery}`, + headersWithAuth, ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${duplicationQuery}`, + headersWithAuth, ), await fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${otherIssuesQuery}`, + headersWithAuth, ), ]); @@ -108,8 +132,11 @@ export class ProductionCodeClimateApi implements CodeClimateApi { const apiUrl = `${await this.discoveryApi.getBaseUrl( 'proxy', )}/codeclimate/api`; + const { token } = await this.identityApi.getCredentials(); - const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`); + const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`, { + headers: { Authorization: `Bearer ${token}` }, + }); if (!repoResponse.ok) { throw new Error('Failed fetching Code Climate info'); diff --git a/plugins/code-climate/src/plugin.ts b/plugins/code-climate/src/plugin.ts index dcf86f1e19..d8f7ea5028 100644 --- a/plugins/code-climate/src/plugin.ts +++ b/plugins/code-climate/src/plugin.ts @@ -39,7 +39,8 @@ export const codeClimatePlugin = createPlugin({ discoveryApi: discoveryApiRef, identityApi: identityApiRef, }, - factory: ({ discoveryApi }) => new ProductionCodeClimateApi(discoveryApi), + factory: ({ discoveryApi, identityApi }) => + new ProductionCodeClimateApi({ discoveryApi, identityApi }), }), ], routes: { From 459b179de4e9b26e2c48ce7e92508a994b7b7acd Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Thu, 11 Aug 2022 14:44:02 +1000 Subject: [PATCH 063/239] Run yarn build:api-reports to update api-report.md Signed-off-by: Robert Cen --- plugins/code-climate/api-report.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/code-climate/api-report.md b/plugins/code-climate/api-report.md index b0cc3e1450..13231361dc 100644 --- a/plugins/code-climate/api-report.md +++ b/plugins/code-climate/api-report.md @@ -8,6 +8,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { IdentityApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // Warning: (ae-missing-release-tag) "CodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -74,7 +75,8 @@ export const mockData: CodeClimateData; // // @public (undocumented) export class ProductionCodeClimateApi implements CodeClimateApi { - constructor(discoveryApi: DiscoveryApi); + // Warning: (ae-forgotten-export) The symbol "Options" needs to be exported by the entry point index.d.ts + constructor(options: Options); // (undocumented) fetchAllData(options: { apiUrl: string; From a9c0f40404f8822083f829aa47bc7d08a5222dcd Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 11 Aug 2022 11:36:40 +0200 Subject: [PATCH 064/239] chore: adding a note about division mode Signed-off-by: blam --- docs/tutorials/switching-sqlite-postgres.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index c4e4bd83b6..b31ce120d8 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -86,3 +86,16 @@ backend: + # ca: # if you have a CA file and want to verify it you can uncomment this section + # $file: /ca/server.crt ``` + +### Using a single database + +By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these seperate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create seperate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating seperate databases. + +You can enable this using the following config: + +```yaml +backend: + database: + client: pg + pluginDivisionMode: schema # defaults to database, but changing this to schema means plugins will be given their own schema (in the specified/default database) +``` From 097ad14492fc6817c063db3386594a0ae2aace56 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 11 Aug 2022 11:41:31 +0200 Subject: [PATCH 065/239] chore: fix my spelling issues Signed-off-by: blam --- docs/tutorials/switching-sqlite-postgres.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index b31ce120d8..74fddb5eb3 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -89,7 +89,7 @@ backend: ### Using a single database -By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these seperate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create seperate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating seperate databases. +By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these separate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. You can enable this using the following config: From 2cf8337e57894e8ee7c87820762d87a1d01e8a81 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 11:44:18 +0200 Subject: [PATCH 066/239] exit Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 0d89198dec..012728eb38 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "next", "initialVersions": { "example-app": "0.2.73", From c2b932dfb9ee53e4eb66763473bc861e0c35f52b Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Thu, 11 Aug 2022 11:46:21 +0200 Subject: [PATCH 067/239] Update docs/tutorials/switching-sqlite-postgres.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Ben Lambert --- docs/tutorials/switching-sqlite-postgres.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/switching-sqlite-postgres.md b/docs/tutorials/switching-sqlite-postgres.md index 74fddb5eb3..c0c35999c6 100644 --- a/docs/tutorials/switching-sqlite-postgres.md +++ b/docs/tutorials/switching-sqlite-postgres.md @@ -89,7 +89,7 @@ backend: ### Using a single database -By default, each plugin will get it's own database ensure that there's no conflict in table names throughout the plugins that you install, and to keep these separate for other use cases further down the line. If you are limited in that you can only create one database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. +By default, each plugin will get its own logical database, to ensure that there's no conflict in table names throughout the plugins that you install and to keep their concerns separate for other use cases further down the line. If you are limited in that you can only make use of a single database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases. You can enable this using the following config: From b50e8e533b7aca0c93b78a56b2788cf7209a4b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Frinnstr=C3=B6m?= Date: Thu, 11 Aug 2022 12:04:27 +0200 Subject: [PATCH 068/239] Add openApiPlaceholderResolver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Frinnström --- .changeset/strong-birds-pretend.md | 21 +++++ .../catalog-backend-module-openapi/README.md | 26 ++++++ .../api-report.md | 7 ++ .../package.json | 2 + .../src/OpenApiRefProcessor.test.ts | 2 +- .../src/OpenApiRefProcessor.ts | 19 +++-- .../src/index.ts | 1 + .../src/lib/bundle.test.ts | 36 ++------ .../src/lib/bundle.ts | 31 +++---- .../src/openApiPlaceholderResolver.test.ts | 63 ++++++++++++++ .../src/openApiPlaceholderResolver.ts | 85 +++++++++++++++++++ 11 files changed, 237 insertions(+), 56 deletions(-) create mode 100644 .changeset/strong-birds-pretend.md create mode 100644 plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts create mode 100644 plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts diff --git a/.changeset/strong-birds-pretend.md b/.changeset/strong-birds-pretend.md new file mode 100644 index 0000000000..9ad3bae97b --- /dev/null +++ b/.changeset/strong-birds-pretend.md @@ -0,0 +1,21 @@ +--- +'@backstage/plugin-catalog-backend-module-openapi': patch +--- + +Add an `$openapi` placeholder resolver that supports more use cases for resolving `$ref` instances. This means that the quite recently added `OpenApiRefProcessor` has been deprecated in favor of the `openApiPlaceholderResolver`. + +An example of how to use it can be seen below. + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example + description: Example API +spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances +``` diff --git a/plugins/catalog-backend-module-openapi/README.md b/plugins/catalog-backend-module-openapi/README.md index 1a133521c6..f80798e267 100644 --- a/plugins/catalog-backend-module-openapi/README.md +++ b/plugins/catalog-backend-module-openapi/README.md @@ -15,6 +15,32 @@ yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-openapi ### Adding the plugin to your `packages/backend` +#### **openApiPlaceholderResolver** + +The placeholder resolver can be added by importing `openApiPlaceholderResolver` in `src/plugins/catalog.ts` in your `backend` package and adding the following. + +```ts +builder.setPlaceholderResolver('openapi', openApiPlaceholderResolver); +``` + +This allows you to use the `$openapi` placeholder when referencing your OpenAPI specification. This will then resolve all `$ref` instances in your specification. + +```yaml +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example + description: Example API +spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances +``` + +#### **OpenAPIRefProcessor** (deprecated) + The processor can be added by importing `OpenApiRefProcessor` in `src/plugins/catalog.ts` in your `backend` package and adding the following. ```ts diff --git a/plugins/catalog-backend-module-openapi/api-report.md b/plugins/catalog-backend-module-openapi/api-report.md index 92ddd1e3cd..d3a40067c5 100644 --- a/plugins/catalog-backend-module-openapi/api-report.md +++ b/plugins/catalog-backend-module-openapi/api-report.md @@ -6,12 +6,19 @@ import { CatalogProcessor } from '@backstage/plugin-catalog-backend'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; +import { JsonValue } from '@backstage/types'; import { LocationSpec } from '@backstage/plugin-catalog-backend'; import { Logger } from 'winston'; +import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; import { ScmIntegrations } from '@backstage/integration'; import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) +export function openApiPlaceholderResolver( + params: PlaceholderResolverParams, +): Promise; + +// @public @deprecated (undocumented) export class OpenApiRefProcessor implements CatalogProcessor { constructor(options: { integrations: ScmIntegrations; diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index d2d4d4989c..81f8875247 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -39,6 +39,8 @@ "@backstage/config": "^1.0.1", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-node": "^1.0.1-next.0", + "@backstage/types": "^1.0.0", "winston": "^3.2.1", "yaml": "^2.1.1" }, diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts index 8f2cc571c2..21080202b5 100644 --- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts +++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.test.ts @@ -86,7 +86,7 @@ describe('OpenApiRefProcessor', () => { it('should ignore other specification types', async () => { const { entity, processor } = setupTest({ - kind: 'Group', + kind: 'API', spec: { type: 'asyncapi' }, }); diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts index 01875e0779..f4cffdf48f 100644 --- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts +++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts @@ -24,7 +24,10 @@ import { import { bundleOpenApiSpecification } from './lib'; import { Logger } from 'winston'; -/** @public */ +/** + * @public + * @deprecated replaced by the openApiPlaceholderResolver + */ export class OpenApiRefProcessor implements CatalogProcessor { private readonly integrations: ScmIntegrations; private readonly logger: Logger; @@ -69,17 +72,23 @@ export class OpenApiRefProcessor implements CatalogProcessor { } const scmIntegration = this.integrations.byUrl(location.target); - if (!scmIntegration) { + const definition = entity.spec!.definition; + + if (!scmIntegration || !definition) { return entity; } + const resolveUrl = (url: string, base: string): string => { + return scmIntegration.resolveUrl({ url, base }); + }; + this.logger.debug(`Bundling OpenAPI specification from ${location.target}`); try { const bundledSpec = await bundleOpenApiSpecification( - entity.spec!.definition?.toString(), + definition.toString(), location.target, - this.reader, - scmIntegration, + this.reader.read, + resolveUrl, ); return { diff --git a/plugins/catalog-backend-module-openapi/src/index.ts b/plugins/catalog-backend-module-openapi/src/index.ts index f98bee6bac..ccd3ced71e 100644 --- a/plugins/catalog-backend-module-openapi/src/index.ts +++ b/plugins/catalog-backend-module-openapi/src/index.ts @@ -14,3 +14,4 @@ * limitations under the License. */ export { OpenApiRefProcessor } from './OpenApiRefProcessor'; +export { openApiPlaceholderResolver } from './openApiPlaceholderResolver'; diff --git a/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts b/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts index 4505f158b5..0ecd9f7fd1 100644 --- a/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts +++ b/plugins/catalog-backend-module-openapi/src/lib/bundle.test.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ConfigReader } from '@backstage/config'; -import { ScmIntegrations } from '@backstage/integration'; import { bundleOpenApiSpecification } from './bundle'; const specification = ` @@ -73,43 +71,21 @@ paths: `; describe('bundleOpenApiSpecification', () => { - const readUrl = jest.fn(); - const reader = { - readUrl, - read: jest.fn(), - readTree: jest.fn(), - search: jest.fn(), - }; - - const scmIntegration = ScmIntegrations.fromConfig(new ConfigReader({})).byUrl( - 'https://github.com/owner/repo/blob/main/openapi.yaml', - ); + const read = jest.fn(); + const resolveUrl = jest.fn(); beforeEach(() => { jest.clearAllMocks(); }); - it('should return undefined if no specification is supplied', async () => { - expect( - await bundleOpenApiSpecification( - undefined, - 'https://github.com/owner/repo/blob/main/openapi.yaml', - reader, - scmIntegration as any, - ), - ).toBeUndefined(); - }); - it('should return the bundled specification', async () => { - readUrl.mockResolvedValue({ - buffer: jest.fn().mockResolvedValue(list), - }); + read.mockResolvedValue(list); const result = await bundleOpenApiSpecification( specification, - 'https://github.com/owner/repo/blob/main/openapi.yaml', - reader, - scmIntegration as any, + 'https://github.com/owner/repo/blob/main/catalog-info.yaml', + read, + resolveUrl, ); expect(result).toEqual(expectedResult.trimStart()); diff --git a/plugins/catalog-backend-module-openapi/src/lib/bundle.ts b/plugins/catalog-backend-module-openapi/src/lib/bundle.ts index 3d35429d8b..6ac8d211e2 100644 --- a/plugins/catalog-backend-module-openapi/src/lib/bundle.ts +++ b/plugins/catalog-backend-module-openapi/src/lib/bundle.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { UrlReader } from '@backstage/backend-common'; -import { ScmIntegration } from '@backstage/integration'; import SwaggerParser from '@apidevtools/swagger-parser'; import { parse, stringify } from 'yaml'; import * as path from 'path'; @@ -28,12 +26,16 @@ const getProtocol = (refPath: string) => { return undefined; }; +export type BundlerRead = (url: string) => Promise; + +export type BundlerResolveUrl = (url: string, base: string) => string; + export async function bundleOpenApiSpecification( - specification: string | undefined, - targetUrl: string, - reader: UrlReader, - scmIntegration: ScmIntegration, -): Promise { + specification: string, + baseUrl: string, + read: BundlerRead, + resolveUrl: BundlerResolveUrl, +): Promise { const fileUrlReaderResolver: SwaggerParser.ResolverOptions = { canRead: file => { const protocol = getProtocol(file.url); @@ -41,22 +43,11 @@ export async function bundleOpenApiSpecification( }, read: async file => { const relativePath = path.relative('.', file.url); - const url = scmIntegration.resolveUrl({ - base: targetUrl, - url: relativePath, - }); - if (reader.readUrl) { - const data = await reader.readUrl(url); - return data.buffer(); - } - throw new Error('UrlReader has no readUrl method defined'); + const url = resolveUrl(relativePath, baseUrl); + return await read(url); }, }; - if (!specification) { - return undefined; - } - const options: SwaggerParser.Options = { resolve: { file: fileUrlReaderResolver, diff --git a/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts new file mode 100644 index 0000000000..f58a818ba5 --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.test.ts @@ -0,0 +1,63 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; +import { openApiPlaceholderResolver } from './openApiPlaceholderResolver'; +import { bundleOpenApiSpecification } from './lib'; + +jest.mock('./lib', () => ({ + bundleOpenApiSpecification: jest.fn(), +})); + +const bundledSpecification = ''; + +describe('openApiPlaceholderResolver', () => { + const mockResolveUrl = jest.fn(); + mockResolveUrl.mockReturnValue('mockUrl'); + + const mockRead = jest.fn(); + mockRead.mockResolvedValue(Buffer.from('mockData')); + + const params: PlaceholderResolverParams = { + key: 'openapi', + value: './spec/openapi.yaml', + baseUrl: 'https://github.com/owner/repo/blob/main/catalog-info.yaml', + resolveUrl: mockResolveUrl, + read: mockRead, + emit: jest.fn(), + }; + + beforeEach(() => { + (bundleOpenApiSpecification as any).mockResolvedValue(bundledSpecification); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('should throw error if unable to bundle the OpenAPI specification', async () => { + (bundleOpenApiSpecification as any).mockRejectedValue(new Error('TEST')); + + await expect(openApiPlaceholderResolver(params)).rejects.toThrow( + 'Placeholder $openapi unable to bundle OpenAPI specification', + ); + }); + + it('should bundle the OpenAPI specification', async () => { + const result = await openApiPlaceholderResolver(params); + + expect(result).toEqual(bundledSpecification); + }); +}); diff --git a/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts new file mode 100644 index 0000000000..96fadb3cbc --- /dev/null +++ b/plugins/catalog-backend-module-openapi/src/openApiPlaceholderResolver.ts @@ -0,0 +1,85 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; +import { JsonValue } from '@backstage/types'; +import { processingResult } from '@backstage/plugin-catalog-node'; +import { bundleOpenApiSpecification } from './lib'; + +/** @public */ +export async function openApiPlaceholderResolver( + params: PlaceholderResolverParams, +): Promise { + const { content, url } = await readTextLocation(params); + + params.emit(processingResult.refresh(`url:${url}`)); + + try { + return await bundleOpenApiSpecification( + content, + url, + params.read, + params.resolveUrl, + ); + } catch (error) { + throw new Error( + `Placeholder \$${params.key} unable to bundle OpenAPI specification at ${params.value}, ${error}`, + ); + } +} + +/* + * Helpers, copied from PlaceholderProcessor + */ + +async function readTextLocation( + params: PlaceholderResolverParams, +): Promise<{ content: string; url: string }> { + const newUrl = relativeUrl(params); + + try { + const data = await params.read(newUrl); + return { content: data.toString('utf-8'), url: newUrl }; + } catch (e) { + throw new Error( + `Placeholder \$${params.key} could not read location ${params.value}, ${e}`, + ); + } +} + +function relativeUrl({ + key, + value, + baseUrl, + resolveUrl, +}: PlaceholderResolverParams): string { + if (typeof value !== 'string') { + throw new Error( + `Placeholder \$${key} expected a string value parameter, in the form of an absolute URL or a relative path`, + ); + } + + try { + return resolveUrl(value, baseUrl); + } catch (e) { + // The only remaining case that isn't support is a relative file path that should be + // resolved using a relative file location. Accessing local file paths can lead to + // path traversal attacks and access to any file on the host system. Implementing this + // would require additional security measures. + throw new Error( + `Placeholder \$${key} could not form a URL out of ${baseUrl} and ${value}, ${e}`, + ); + } +} From fcb6b2d531fa2ebc7cd1d6f4f3a69b6c3af506fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:13:32 +0000 Subject: [PATCH 069/239] fix(deps): update dependency rollup to v2.77.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 43f1cc89fc..76410ec502 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23320,9 +23320,9 @@ rollup@^0.63.4: "@types/node" "*" rollup@^2.60.2: - version "2.77.2" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3" - integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== + version "2.77.3" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== optionalDependencies: fsevents "~2.3.2" From 3d5ab6cb3c71bd9f0b5def268f25ab004737f834 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 13:19:02 +0200 Subject: [PATCH 070/239] test-utils: Publish alpha types Signed-off-by: Johan Haals --- packages/backend-test-utils/package.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index c3ba763bd2..004289d448 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -8,7 +8,8 @@ "publishConfig": { "access": "public", "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "types": "dist/index.d.ts", + "alphaTypes": "dist/index.alpha.d.ts" }, "backstage": { "role": "node-library" @@ -25,7 +26,7 @@ ], "license": "Apache-2.0", "scripts": { - "build": "backstage-cli package build", + "build": "backstage-cli package build --experimental-type-build", "lint": "backstage-cli package lint", "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", @@ -49,6 +50,7 @@ "@backstage/cli": "^0.18.1-next.0" }, "files": [ - "dist" + "dist", + "alpha" ] } From 2d7e22953a7c61f6523640f07917fe48bf382ee4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 11:26:49 +0000 Subject: [PATCH 071/239] chore(deps): update dependency @graphql-codegen/cli to v2.11.6 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index f9fd40ff2d..c1b27dc74e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2815,11 +2815,11 @@ meros "^1.1.4" "@graphql-codegen/cli@^2.3.1": - version "2.11.5" - resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.5.tgz#6e781d9e77b8a9192456a8f50059e4281be12b73" - integrity sha512-0RntZ/F/d7M7KJU24nDwfKTuuhpwQ8nSs00RgKIqsk4xSX/U9HgOp29pWZfJjHCppb0EiXKBDvK4DtQIqe3n3w== + version "2.11.6" + resolved "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.11.6.tgz#3acfd7cd3bac40999ba1262063d84ca7c96172dc" + integrity sha512-0R2Bhgjt3XZTSdsn8MGGuJjDEN2z+KCo7920zLZz9boy6bQ0EyuxS9AUATePS9aC3djy2POAIPCHz8iHK68IlQ== dependencies: - "@graphql-codegen/core" "2.6.1" + "@graphql-codegen/core" "2.6.2" "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-tools/apollo-engine-loader" "^7.3.6" "@graphql-tools/code-file-loader" "^7.3.1" @@ -2851,13 +2851,13 @@ yaml "^1.10.0" yargs "^17.0.0" -"@graphql-codegen/core@2.6.1": - version "2.6.1" - resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.1.tgz#57599a2e97d3c5109d888781587eba65f3c6cabe" - integrity sha512-X6IIQCIvEm+g6xcd/5ml/Tmz8U6pd4q9s1mM4WcstBQ26v+gzzlj6lc7+6ALhrNm25gHKQ4PiVoG2W0pw503Dw== +"@graphql-codegen/core@2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.2.tgz#29c766d2e9e5a3deeeb4f1728c1f7b1aca054a22" + integrity sha512-58T5yf9nEfAhDwN1Vz1hImqpdJ/gGpCGUaroQ5tqskZPf7eZYYVkEXbtqRZZLx1MCCKwjWX4hMtTPpHhwKCkng== dependencies: "@graphql-codegen/plugin-helpers" "^2.6.2" - "@graphql-tools/schema" "^8.5.0" + "@graphql-tools/schema" "^9.0.0" "@graphql-tools/utils" "^8.8.0" tslib "~2.4.0" @@ -3228,7 +3228,7 @@ tslib "~2.3.0" value-or-promise "1.0.11" -"@graphql-tools/schema@8.5.0", "@graphql-tools/schema@^8.5.0": +"@graphql-tools/schema@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.0.tgz#0332b3a2e674d16e9bf8a58dfd47432449ce2368" integrity sha512-VeFtKjM3SA9/hCJJfr95aEdC3G0xIKM9z0Qdz4i+eC1g2fdZYnfWFt2ucW4IME+2TDd0enHlKzaV0qk2SLVUww== From e58262b025d7e8387b44cc13ceda48697373e54a Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 12:38:08 +0100 Subject: [PATCH 072/239] Include stack trace on startup errors in create app Updated the backend index.ts in create-app to log the error as an object, rather than a string. This causes the error to include a stack trace, along with the error message, as well as bringing it in line with the main app in the bakstage repo. Signed-off-by: Alex Crome --- .../templates/default-app/packages/backend/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-app/templates/default-app/packages/backend/src/index.ts b/packages/create-app/templates/default-app/packages/backend/src/index.ts index 70bc66bcdd..ef05fa50ee 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/index.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/index.ts @@ -104,6 +104,6 @@ async function main() { module.hot?.accept(); main().catch(error => { - console.error(`Backend failed to start up, ${error}`); + console.error('Backend failed to start up', error); process.exit(1); }); From ab9edd8b58ac1e8d8f8b4830112c2201634c01f0 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 12:56:27 +0100 Subject: [PATCH 073/239] Added changeset Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twenty-terms-dress.md diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md new file mode 100644 index 0000000000..9262315326 --- /dev/null +++ b/.changeset/twenty-terms-dress.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Updated backend to include stack trace in stderr when the backend fails to start up. From dcf81f1a6e6eecd96430ae3ca5ddfae5913ff5c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 12:04:53 +0000 Subject: [PATCH 074/239] fix(deps): update dependency @graphql-tools/schema to v9.0.1 Signed-off-by: Renovate Bot --- yarn.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/yarn.lock b/yarn.lock index a3c5aacf8b..8c8279aff0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3159,12 +3159,12 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.2": - version "8.3.2" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.2.tgz#a058e0307b9a145c6965420fd67ee1405cf033e8" - integrity sha512-r8TFlDFA9N4hbkKbHCUK5pkiSnVUsB5AtcyhoY1d3b9zNa9CAYgxZMkKZgDJAf9ZTIqki9t0eOW/jn1H4MCFsg== +"@graphql-tools/merge@8.3.3": + version "8.3.3" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.3.tgz#74dd4816c3fc7af38730fc59d1cba6e687d7fb2d" + integrity sha512-EfULshN2s2s2mhBwbV9WpGnoehRLe7eIMdZrKfHhxlBWOvtNUd3KSCN0PUdAMd7lj1jXUW9KYdn624JrVn6qzg== dependencies: - "@graphql-tools/utils" "8.9.1" + "@graphql-tools/utils" "8.10.0" tslib "^2.4.0" "@graphql-tools/mock@^8.1.2": @@ -3249,12 +3249,12 @@ value-or-promise "1.0.11" "@graphql-tools/schema@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.0.tgz#a689ae23474bf662b3571a180f0e0d11c7b8f135" - integrity sha512-H1rlt0tptzYE1jnKGjfmMvvMCwsDTUgCy3Eam9agsPP4ZtHAcwijDx3BKKJaV1fDRV5ztz2aJ5Q7+4s/SMOYvQ== + version "9.0.1" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.1.tgz#ba8629107c1f0b9ffad14c08c2a85961967682fd" + integrity sha512-Y6apeiBmvXEz082IAuS/ainnEEQrzMECP1MRIV72eo2WPa6ZtLYPycvIbd56Z5uU2LKP4XcWRgK6WUbCyN16Rw== dependencies: - "@graphql-tools/merge" "8.3.2" - "@graphql-tools/utils" "8.9.1" + "@graphql-tools/merge" "8.3.3" + "@graphql-tools/utils" "8.10.0" tslib "^2.4.0" value-or-promise "1.0.11" @@ -3300,6 +3300,13 @@ value-or-promise "^1.0.11" ws "^8.3.0" +"@graphql-tools/utils@8.10.0": + version "8.10.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.10.0.tgz#8e76db7487e19b60cf99fb90c2d6343b2105b331" + integrity sha512-yI+V373FdXQbYfqdarehn9vRWDZZYuvyQ/xwiv5ez2BbobHrqsexF7qs56plLRaQ8ESYpVAjMQvJWe9s23O0Jg== + dependencies: + tslib "^2.4.0" + "@graphql-tools/utils@8.6.9": version "8.6.9" resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.9.tgz#fe1b81df29c9418b41b7a1ffe731710b93d3a1fe" @@ -3321,13 +3328,6 @@ dependencies: tslib "^2.4.0" -"@graphql-tools/utils@8.9.1": - version "8.9.1" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.1.tgz#11d6c8a292ac5f224dfda655b87adfece3a257c6" - integrity sha512-LHR7U4okICeUap+WV/T1FnLOmTr3KYuphgkXYendaBVO/DXKyc+TeOFBiN1LcEjPqCB8hO+0B0iTIO0cGqhNTA== - dependencies: - tslib "^2.4.0" - "@graphql-tools/wrap@8.5.0": version "8.5.0" resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.5.0.tgz#ce1b0d775e1fc3a17404df566f4d2196d31c6e20" From 62355489347052d473ff75fd618bc0597d3909fd Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 13:06:19 +0100 Subject: [PATCH 075/239] Make Vale happy Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md index 9262315326..e8ab7437ab 100644 --- a/.changeset/twenty-terms-dress.md +++ b/.changeset/twenty-terms-dress.md @@ -2,4 +2,4 @@ '@backstage/create-app': patch --- -Updated backend to include stack trace in stderr when the backend fails to start up. +Updated backend to write stack trace when the backend fails to start up. From 07efab5b291841b7e8eabf68994c575a1a807fac Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Thu, 11 Aug 2022 07:24:42 -0500 Subject: [PATCH 076/239] Corrected typo Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/dull-fans-hug.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/dull-fans-hug.md b/.changeset/dull-fans-hug.md index 6328e3d9f2..562ef62bc0 100644 --- a/.changeset/dull-fans-hug.md +++ b/.changeset/dull-fans-hug.md @@ -2,4 +2,4 @@ '@backstage/plugin-techdocs': patch --- -Added back reduction in size, this fixes the extermly large TeachDocs headings +Added back reduction in size, this fixes the extremely large TeachDocs headings From 72c228fdb8edc3258232f2f45bdba515b99c0098 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 15:38:37 +0200 Subject: [PATCH 077/239] cli: fix node env not being set for backend dev Signed-off-by: Patrik Oldsberg --- .changeset/funny-oranges-switch.md | 5 +++++ packages/cli/src/lib/bundler/backend.ts | 4 ++++ 2 files changed, 9 insertions(+) create mode 100644 .changeset/funny-oranges-switch.md diff --git a/.changeset/funny-oranges-switch.md b/.changeset/funny-oranges-switch.md new file mode 100644 index 0000000000..23c3104441 --- /dev/null +++ b/.changeset/funny-oranges-switch.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external. diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index 1b161976e3..3094450d4b 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -26,6 +26,10 @@ export async function serveBackend(options: BackendServeOptions) { isDev: true, }); + // Webpack only replaces occurrences of this in code it touches, which does + // not include dependencies in node_modules. So we set it here at runtime as well. + (process.env as { NODE_ENV: string }).NODE_ENV = 'development'; + const compiler = webpack(config, (err: Error | undefined) => { if (err) { console.error(err); From 56e1b4b89cd9dc314890daeebc7e97e5d7bc7e4b Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:19:58 +0200 Subject: [PATCH 078/239] Add test helpers for new backend system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: blam Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .changeset/selfish-items-play.md | 7 ++ .changeset/seven-nails-cough.md | 5 ++ packages/backend-test-utils/package.json | 2 + packages/backend-test-utils/src/index.ts | 1 + packages/backend-test-utils/src/next/index.ts | 17 +++++ .../src/next/wiring/TestBackend.test.ts | 76 +++++++++++++++++++ .../src/next/wiring/TestBackend.ts | 66 ++++++++++++++++ .../src/next/wiring/index.ts | 18 +++++ .../src/service/CatalogPlugin.ts | 4 +- plugins/catalog-node/src/extensions.ts | 2 +- plugins/catalog-node/src/index.ts | 2 +- .../extension/ScaffolderCatalogModule.test.ts | 24 ++---- .../src/extension/ScaffolderCatalogModule.ts | 10 +-- 13 files changed, 208 insertions(+), 26 deletions(-) create mode 100644 .changeset/selfish-items-play.md create mode 100644 .changeset/seven-nails-cough.md create mode 100644 packages/backend-test-utils/src/next/index.ts create mode 100644 packages/backend-test-utils/src/next/wiring/TestBackend.test.ts create mode 100644 packages/backend-test-utils/src/next/wiring/TestBackend.ts create mode 100644 packages/backend-test-utils/src/next/wiring/index.ts diff --git a/.changeset/selfish-items-play.md b/.changeset/selfish-items-play.md new file mode 100644 index 0000000000..6df9bd0de1 --- /dev/null +++ b/.changeset/selfish-items-play.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-catalog-node': patch +'@backstage/plugin-scaffolder-backend': patch +--- + +Fixed typos in alpha types. diff --git a/.changeset/seven-nails-cough.md b/.changeset/seven-nails-cough.md new file mode 100644 index 0000000000..eefef0b376 --- /dev/null +++ b/.changeset/seven-nails-cough.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +Added alpha test helpers for the new experimental backen system. diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 004289d448..3b490b625d 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -36,6 +36,8 @@ }, "dependencies": { "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-app-api": "^0.1.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1-next.0", "@backstage/cli": "^0.18.1-next.0", "@backstage/config": "^1.0.1", "better-sqlite3": "^7.5.0", diff --git a/packages/backend-test-utils/src/index.ts b/packages/backend-test-utils/src/index.ts index 5fef4e6b55..ae937d2fc8 100644 --- a/packages/backend-test-utils/src/index.ts +++ b/packages/backend-test-utils/src/index.ts @@ -22,4 +22,5 @@ export * from './database'; export * from './msw'; +export * from './next'; export * from './util'; diff --git a/packages/backend-test-utils/src/next/index.ts b/packages/backend-test-utils/src/next/index.ts new file mode 100644 index 0000000000..9bb5431772 --- /dev/null +++ b/packages/backend-test-utils/src/next/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './wiring'; diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts new file mode 100644 index 0000000000..279667560f --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -0,0 +1,76 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + createBackendModule, + createServiceFactory, + createServiceRef, +} from '@backstage/backend-plugin-api'; +import { createTestBackend, startTestBackend } from './TestBackend'; + +describe('TestBackend', () => { + it('should get a type error if service implementation does not match', () => { + const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); + const backend = createTestBackend({ + services: [ + [serviceRef, { a: 'a' }], + [serviceRef, { a: 'a', b: 'b' }], + // @ts-expect-error + [serviceRef, { c: 'c' }], + // @ts-expect-error + [serviceRef, { a: 'a', c: 'c' }], + // @ts-expect-error + [serviceRef, { a: 'a', b: 'b', c: 'c' }], + ], + }); + expect(backend).toBeDefined(); + }); + + it('should start the test backend', async () => { + const testRef = createServiceRef<(v: string) => void>({ id: 'test' }); + const testFn = jest.fn(); + + const sf = createServiceFactory({ + deps: {}, + service: testRef, + factory: async () => { + return async () => testFn; + }, + }); + + const testModule = createBackendModule({ + moduleId: 'test.module', + pluginId: 'test', + register(env) { + env.registerInit({ + deps: { + test: testRef, + }, + async init({ test }) { + test('winning'); + }, + }); + }, + }); + + await startTestBackend({ + services: [sf], + registrables: [testModule({})], + }); + + expect(testFn).toBeCalledWith('winning'); + }); +}); diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts new file mode 100644 index 0000000000..49acb07ab4 --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -0,0 +1,66 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Backend, createSpecializedBackend } from '@backstage/backend-app-api'; +import { + AnyServiceFactory, + ServiceRef, + createServiceFactory, + BackendRegistrable, +} from '@backstage/backend-plugin-api'; + +/** @alpha */ +export interface TestBackendOptions { + services: readonly [ + ...{ + [index in keyof TServices]: + | AnyServiceFactory + | [ServiceRef, Partial]; + }, + ]; +} + +/** @alpha */ +export function createTestBackend( + options: TestBackendOptions, +): Backend { + const factories = + options.services?.map(serviceDef => { + if (Array.isArray(serviceDef)) { + return createServiceFactory({ + service: serviceDef[0], + deps: {}, + factory: async () => async () => serviceDef[1], + }); + } + return serviceDef as AnyServiceFactory; + }) ?? []; + return createSpecializedBackend({ services: factories }); +} + +/** @alpha */ +export async function startTestBackend( + options: TestBackendOptions & { + registrables?: BackendRegistrable[]; + }, +): Promise { + const { registrables = [], ...otherOptions } = options; + const backend = createTestBackend(otherOptions); + for (const reg of registrables) { + backend.add(reg); + } + return backend.start(); +} diff --git a/packages/backend-test-utils/src/next/wiring/index.ts b/packages/backend-test-utils/src/next/wiring/index.ts new file mode 100644 index 0000000000..18a35c2b66 --- /dev/null +++ b/packages/backend-test-utils/src/next/wiring/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { createTestBackend, startTestBackend } from './TestBackend'; +export type { TestBackendOptions } from './TestBackend'; diff --git a/plugins/catalog-backend/src/service/CatalogPlugin.ts b/plugins/catalog-backend/src/service/CatalogPlugin.ts index b82797ec8b..ed356df5a2 100644 --- a/plugins/catalog-backend/src/service/CatalogPlugin.ts +++ b/plugins/catalog-backend/src/service/CatalogPlugin.ts @@ -27,7 +27,7 @@ import { CatalogBuilder } from './CatalogBuilder'; import { CatalogProcessor, CatalogProcessingExtensionPoint, - catalogProcessingExtentionPoint, + catalogProcessingExtensionPoint, EntityProvider, } from '@backstage/plugin-catalog-node'; @@ -62,7 +62,7 @@ export const catalogPlugin = createBackendPlugin({ const processingExtensions = new CatalogExtensionPointImpl(); // plugins depending on this API will be initialized before this plugins init method is executed. env.registerExtensionPoint( - catalogProcessingExtentionPoint, + catalogProcessingExtensionPoint, processingExtensions, ); diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 560d9d4db1..9f76946d30 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -28,7 +28,7 @@ export interface CatalogProcessingExtensionPoint { /** * @alpha */ -export const catalogProcessingExtentionPoint = +export const catalogProcessingExtensionPoint = createServiceRef({ id: 'catalog.processing', }); diff --git a/plugins/catalog-node/src/index.ts b/plugins/catalog-node/src/index.ts index fc7a1b1b67..02ae325a9a 100644 --- a/plugins/catalog-node/src/index.ts +++ b/plugins/catalog-node/src/index.ts @@ -21,6 +21,6 @@ */ export type { CatalogProcessingExtensionPoint } from './extensions'; -export { catalogProcessingExtentionPoint } from './extensions'; +export { catalogProcessingExtensionPoint } from './extensions'; export * from './api'; export * from './processing'; diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index f07eb0f7ae..a969d80a1b 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -14,27 +14,19 @@ * limitations under the License. */ -import { BackendInitRegistry } from '@backstage/backend-plugin-api'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'; import { ScaffolderEntitiesProcessor } from '../processor'; import { scaffolderCatalogModule } from './ScaffolderCatalogModule'; +import { startTestBackend } from '@backstage/backend-test-utils'; describe('ScaffolderCatalogModule', () => { - it('should register the extension point', () => { - // TODO(jhaals): clean this up and add test helpers for backend system. - const ext = scaffolderCatalogModule({}); - expect(ext.id).toBe('catalog.scaffolder.module'); - const registry: jest.Mocked = { - registerInit: jest.fn(), - } as any; - ext.register(registry); - - const extensionPoint = { - addProcessor: jest.fn(), - }; - - registry.registerInit.mock.calls[0][0].init({ - catalogProcessingExtensionPoint: extensionPoint, + it('should register the extension point', async () => { + const extensionPoint = { addProcessor: jest.fn() }; + await startTestBackend({ + services: [[catalogProcessingExtensionPoint, extensionPoint]], + registrables: [scaffolderCatalogModule({})], }); + expect(extensionPoint.addProcessor).toHaveBeenCalledWith( new ScaffolderEntitiesProcessor(), ); diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts index bdce46a31a..0fb3c2e428 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { createBackendModule } from '@backstage/backend-plugin-api'; -import { catalogProcessingExtentionPoint } from '@backstage/plugin-catalog-node'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'; import { ScaffolderEntitiesProcessor } from '../processor'; /** @@ -27,12 +27,10 @@ export const scaffolderCatalogModule = createBackendModule({ register(env) { env.registerInit({ deps: { - catalogProcessingExtensionPoint: catalogProcessingExtentionPoint, + catalog: catalogProcessingExtensionPoint, }, - async init({ catalogProcessingExtensionPoint }) { - catalogProcessingExtensionPoint.addProcessor( - new ScaffolderEntitiesProcessor(), - ); + async init({ catalog }) { + catalog.addProcessor(new ScaffolderEntitiesProcessor()); }, }); }, From 60833f16d746d3e487d11c410adff4a92dc1fc9d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:23:10 +0200 Subject: [PATCH 079/239] fix typo Co-authored-by: Patrik Oldsberg Signed-off-by: Johan Haals --- .changeset/seven-nails-cough.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/seven-nails-cough.md b/.changeset/seven-nails-cough.md index eefef0b376..1464e29235 100644 --- a/.changeset/seven-nails-cough.md +++ b/.changeset/seven-nails-cough.md @@ -2,4 +2,4 @@ '@backstage/backend-test-utils': patch --- -Added alpha test helpers for the new experimental backen system. +Added alpha test helpers for the new experimental backend system. From 7d80daf594a9e2666d63fce928337be15efdaec9 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Thu, 11 Aug 2022 16:24:24 +0200 Subject: [PATCH 080/239] update api reports Signed-off-by: Johan Haals --- packages/backend-test-utils/api-report.md | 28 +++++++++++++++++++++++ plugins/catalog-node/api-report.md | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index cba8953432..9c75402b43 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -3,7 +3,16 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { AnyServiceFactory } from '@backstage/backend-plugin-api'; +import { Backend } from '@backstage/backend-app-api'; +import { BackendRegistrable } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; +import { ServiceRef } from '@backstage/backend-plugin-api'; + +// @alpha (undocumented) +export function createTestBackend( + options: TestBackendOptions, +): Backend; // @public (undocumented) export function isDockerDisabledForTests(): boolean; @@ -15,6 +24,25 @@ export function setupRequestMockHandlers(worker: { resetHandlers: () => void; }): void; +// @alpha (undocumented) +export function startTestBackend( + options: TestBackendOptions & { + registrables?: BackendRegistrable[]; + }, +): Promise; + +// @alpha (undocumented) +export interface TestBackendOptions { + // (undocumented) + services: readonly [ + ...{ + [index in keyof TServices]: + | AnyServiceFactory + | [ServiceRef, Partial]; + }, + ]; +} + // @public export type TestDatabaseId = | 'POSTGRES_13' diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 0449708bc3..47a9bdf45c 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -19,7 +19,7 @@ export interface CatalogProcessingExtensionPoint { } // @alpha (undocumented) -export const catalogProcessingExtentionPoint: ServiceRef; +export const catalogProcessingExtensionPoint: ServiceRef; // @public (undocumented) export type CatalogProcessor = { From 57e550fae1a2402208350d06d0acb9b9f0884a51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 15:13:13 +0000 Subject: [PATCH 081/239] fix(deps): update dependency @octokit/webhooks to v10.1.3 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96f098eeed..9bd862beb8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5837,19 +5837,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.2": - version "6.3.2" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.2.tgz#752497434e735874ba985ea0d53d63e2568e838d" - integrity sha512-6DSvdzg7AIVgLjIjqf5BDrloMs7zUfpF0EJhLiOjXtuLr38W5pWSC7aHr7V59LCEDueJRfKZ6c9ZyuLLqVgx8g== +"@octokit/webhooks-types@6.3.4": + version "6.3.4" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.4.tgz#b553da7479edfb04218160c85f16dbbc68251533" + integrity sha512-9E0HNgHqc5v22+9IzCSEZ9iXnBJ/n+GM9gZye0kp7XmzcOfrnAKZzd4km269n6/vVOkmXwT11DbbQFukWOvbdw== "@octokit/webhooks@^10.0.0": - version "10.1.2" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.2.tgz#78396b6d32c60789f6031d2551a2cd598c157627" - integrity sha512-jxISKMLiYebQ/EByLXDEWQMcHASKUVl1T0EuCnpHTYjELsDXg7BEw0FCInlc8RpWmmPp4sMsh3Dd86spXAIp1A== + version "10.1.3" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.3.tgz#415bb4f826167b15da4dede81c14cb7a8978ac9a" + integrity sha512-c5uQW0HJbI5mcQpUFcM7LVs1gbdEiHD6OLXZcwxLJeNUmI8Cy9uzfCib6HguARKgnz3tSavYX/teHq7brm05iQ== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.2" + "@octokit/webhooks-types" "6.3.4" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From 0e2be112e472e42dd2a5468496a05ac383577426 Mon Sep 17 00:00:00 2001 From: Alex Crome Date: Thu, 11 Aug 2022 16:28:01 +0100 Subject: [PATCH 082/239] Added diff to change set Signed-off-by: Alex Crome --- .changeset/twenty-terms-dress.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md index e8ab7437ab..99acaf612a 100644 --- a/.changeset/twenty-terms-dress.md +++ b/.changeset/twenty-terms-dress.md @@ -3,3 +3,12 @@ --- Updated backend to write stack trace when the backend fails to start up. + +To apply this change to your Backstage installation, make the following change to `packages/backend/src/index.ts` + +```diff + cors: + origin: http://localhost:3000 +- console.error(`Backend failed to start up, ${error}`); ++ console.error('Backend failed to start up', error); +``` From 90b66621fbef0d37f6c804480cea8846f08424ea Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 17:49:46 +0200 Subject: [PATCH 083/239] backend-plugin-api: move wiring factories to separate file and add tests Signed-off-by: Patrik Oldsberg --- .../src/wiring/factories.test.ts | 64 +++++++++++++++ .../src/wiring/factories.ts | 80 +++++++++++++++++++ .../backend-plugin-api/src/wiring/index.ts | 13 ++- .../backend-plugin-api/src/wiring/types.ts | 59 -------------- 4 files changed, 155 insertions(+), 61 deletions(-) create mode 100644 packages/backend-plugin-api/src/wiring/factories.test.ts create mode 100644 packages/backend-plugin-api/src/wiring/factories.ts diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts new file mode 100644 index 0000000000..d92ccc1bf6 --- /dev/null +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -0,0 +1,64 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + createBackendModule, + createBackendPlugin, + createExtensionPoint, +} from './factories'; + +describe('createExtensionPoint', () => { + it('should create an ExtensionPoint', () => { + const extensionPoint = createExtensionPoint({ id: 'x' }); + expect(extensionPoint).toBeDefined(); + expect(extensionPoint.id).toBe('x'); + expect(() => extensionPoint.T).toThrow(); + expect(String(extensionPoint)).toBe('extensionPoint{x}'); + }); +}); + +describe('createBackendPlugin', () => { + it('should create an BackendPlugin', () => { + const plugin = createBackendPlugin({ + id: 'x', + register(_reg, _options: { a: string }) {}, + }); + expect(plugin).toBeDefined(); + expect(plugin({ a: 'a' })).toBeDefined(); + expect(plugin({ a: 'a' }).id).toBe('x'); + // @ts-expect-error + expect(plugin()).toBeDefined(); + // @ts-expect-error + expect(plugin({ b: 'b' })).toBeDefined(); + }); +}); + +describe('createBackendModule', () => { + it('should create an BackendModule', () => { + const mod = createBackendModule({ + pluginId: 'x', + moduleId: 'y', + register(_reg, _options: { a: string }) {}, + }); + expect(mod).toBeDefined(); + expect(mod({ a: 'a' })).toBeDefined(); + expect(mod({ a: 'a' }).id).toBe('x.y'); + // @ts-expect-error + expect(mod()).toBeDefined(); + // @ts-expect-error + expect(mod({ b: 'b' })).toBeDefined(); + }); +}); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts new file mode 100644 index 0000000000..9b971311d0 --- /dev/null +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -0,0 +1,80 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + BackendInitRegistry, + BackendRegistrable, + ExtensionPoint, +} from './types'; + +/** @public */ +export function createExtensionPoint(options: { + id: string; +}): ExtensionPoint { + return { + id: options.id, + get T(): T { + throw new Error(`tried to read ExtensionPoint.T of ${this}`); + }, + toString() { + return `extensionPoint{${options.id}}`; + }, + $$ref: 'extension-point', // TODO: declare + }; +} + +/** @public */ +export interface BackendPluginConfig { + id: string; + register(reg: BackendInitRegistry, options: TOptions): void; +} + +// TODO: Make option optional in the returned factory if they are indeed optional +/** @public */ +export function createBackendPlugin( + config: BackendPluginConfig, +): (option: TOptions) => BackendRegistrable { + return options => ({ + id: config.id, + register(register) { + return config.register(register, options); + }, + }); +} + +/** @public */ +export interface BackendModuleConfig { + pluginId: string; + moduleId: string; + register( + reg: Omit, + options: TOptions, + ): void; +} + +// TODO: Make option optional in the returned factory if they are indeed optional +/** @public */ +export function createBackendModule( + config: BackendModuleConfig, +): (option: TOptions) => BackendRegistrable { + return options => ({ + id: `${config.pluginId}.${config.moduleId}`, + register(register) { + // TODO: Hide registerExtensionPoint + return config.register(register, options); + }, + }); +} diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 9340dc8fa9..342a922dbd 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -14,5 +14,14 @@ * limitations under the License. */ -export type { BackendRegistrable } from './types'; -export * from './types'; +export type { BackendModuleConfig, BackendPluginConfig } from './factories'; +export { + createBackendModule, + createBackendPlugin, + createExtensionPoint, +} from './factories'; +export type { + BackendInitRegistry, + BackendRegistrable, + ExtensionPoint, +} from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 2b0bef16f7..65525fd8aa 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -35,22 +35,6 @@ export type ExtensionPoint = { $$ref: 'extension-point'; }; -/** @public */ -export function createExtensionPoint(options: { - id: string; -}): ExtensionPoint { - return { - id: options.id, - get T(): T { - throw new Error(`tried to read ExtensionPoint.T of ${this}`); - }, - toString() { - return `extensionPoint{${options.id}}`; - }, - $$ref: 'extension-point', // TODO: declare - }; -} - /** @public */ export interface BackendInitRegistry { registerExtensionPoint( @@ -68,46 +52,3 @@ export interface BackendRegistrable { id: string; register(reg: BackendInitRegistry): void; } - -/** @public */ -export interface BackendPluginConfig { - id: string; - register(reg: BackendInitRegistry, options: TOptions): void; -} - -// TODO: Make option optional in the returned factory if they are indeed optional -/** @public */ -export function createBackendPlugin( - config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ - id: config.id, - register(register) { - return config.register(register, options); - }, - }); -} - -/** @public */ -export interface BackendModuleConfig { - pluginId: string; - moduleId: string; - register( - reg: Omit, - options: TOptions, - ): void; -} - -// TODO: Make option optional in the returned factory if they are indeed optional -/** @public */ -export function createBackendModule( - config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ - id: `${config.pluginId}.${config.moduleId}`, - register(register) { - // TODO: Hide registerExtensionPoint - return config.register(register, options); - }, - }); -} From f8e891d081592049a37381ec564767ecea55c1e3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 18:18:41 +0200 Subject: [PATCH 084/239] backend-plugin-api: handle optional options for plugins and modules Signed-off-by: Patrik Oldsberg --- .../src/wiring/factories.test.ts | 25 +++++++++++++++++++ .../src/wiring/factories.ts | 22 ++++++++-------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts index d92ccc1bf6..6cfcdd06cc 100644 --- a/packages/backend-plugin-api/src/wiring/factories.test.ts +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -44,6 +44,18 @@ describe('createBackendPlugin', () => { // @ts-expect-error expect(plugin({ b: 'b' })).toBeDefined(); }); + + it('should create plugins with optional options', () => { + const plugin = createBackendPlugin({ + id: 'x', + register(_reg, _options?: { a: string }) {}, + }); + expect(plugin).toBeDefined(); + expect(plugin({ a: 'a' })).toBeDefined(); + expect(plugin()).toBeDefined(); + // @ts-expect-error + expect(plugin({ b: 'b' })).toBeDefined(); + }); }); describe('createBackendModule', () => { @@ -61,4 +73,17 @@ describe('createBackendModule', () => { // @ts-expect-error expect(mod({ b: 'b' })).toBeDefined(); }); + + it('should create modules with optional options', () => { + const mod = createBackendModule({ + pluginId: 'x', + moduleId: 'y', + register(_reg, _options?: { a: string }) {}, + }); + expect(mod).toBeDefined(); + expect(mod({ a: 'a' })).toBeDefined(); + expect(mod()).toBeDefined(); + // @ts-expect-error + expect(mod({ b: 'b' })).toBeDefined(); + }); }); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 9b971311d0..1c3a27bb1c 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -42,15 +42,16 @@ export interface BackendPluginConfig { register(reg: BackendInitRegistry, options: TOptions): void; } -// TODO: Make option optional in the returned factory if they are indeed optional /** @public */ export function createBackendPlugin( config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable { + return (options?: TOptions) => ({ id: config.id, - register(register) { - return config.register(register, options); + register(register: BackendInitRegistry) { + return config.register(register, options!); }, }); } @@ -65,16 +66,17 @@ export interface BackendModuleConfig { ): void; } -// TODO: Make option optional in the returned factory if they are indeed optional /** @public */ export function createBackendModule( config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable { - return options => ({ +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable { + return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, - register(register) { + register(register: BackendInitRegistry) { // TODO: Hide registerExtensionPoint - return config.register(register, options); + return config.register(register, options!); }, }); } From 34c2f5aca11326df67f82ffe073b1450a0ef2441 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 18:19:39 +0200 Subject: [PATCH 085/239] changesets: added changeset for optional options Signed-off-by: Patrik Oldsberg --- .changeset/giant-swans-change.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/giant-swans-change.md diff --git a/.changeset/giant-swans-change.md b/.changeset/giant-swans-change.md new file mode 100644 index 0000000000..bff90db2b1 --- /dev/null +++ b/.changeset/giant-swans-change.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +The factory returned by `createBackendPlugin` and `createBackendModule` no longer require a parameter to be passed if the options are optional. From aab62307ab5b0c66ee24b330470b2c5ba4aba0a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 18:33:24 +0000 Subject: [PATCH 086/239] fix(deps): update dependency graphiql to v1.11.4 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bd862beb8..df8bed6c8c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2792,10 +2792,10 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphiql/react@^0.9.0": - version "0.9.0" - resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.9.0.tgz#8450d3ea6dbf096deb16c9b297ff2ed526e793f4" - integrity sha512-JwhHVFS4ZP5lCchaf31NMJ/MVxl//DGrt/WO9XVjtQoL4kkAWMnNOQzZmTAnbEfPwdQUhkMz+xL50Yum3QrIZg== +"@graphiql/react@^0.10.0": + version "0.10.0" + resolved "https://registry.npmjs.org/@graphiql/react/-/react-0.10.0.tgz#8d888949dc6c9ddebe0817aeba3e2c164bfbb1bb" + integrity sha512-8Xo1O6SQps6R+mOozN7Ht85/07RwyXgJcKNeR2dWPkJz/1Lww8wVHIKM/AUpo0Aaoh6Ps3UK9ep8DDRfBT4XrQ== dependencies: "@graphiql/toolkit" "^0.6.1" codemirror "^5.65.3" @@ -14693,11 +14693,11 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.11.3" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.3.tgz#ed14117c1a9b1d93e66a9e5c23b135ba2bd15a6f" - integrity sha512-cvXYU0adFsvCIxbHMTcpi69jR5LZOG6tP00jnoSbgrYvQvGvIDGgRB5Dam+NmubVTqbjiC/SqF8mzh8rZp7AhQ== + version "1.11.4" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.4.tgz#c84f39dbc7379fef62bc0ff98c9af86bfbce3241" + integrity sha512-yPjEPssKp6mo91q2zjSs6WUpiGm37r396OSHnfSVn0bE4jOMBtB2sbjzwe0GVKZeY3MpfZjpK0UFGrS05wb+qw== dependencies: - "@graphiql/react" "^0.9.0" + "@graphiql/react" "^0.10.0" "@graphiql/toolkit" "^0.6.1" entities "^2.0.0" graphql-language-service "^5.0.6" From 3dd5ab857c82042f62e998a1aec8528902ce18a0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 11 Aug 2022 22:47:43 +0200 Subject: [PATCH 087/239] update API reports Signed-off-by: Patrik Oldsberg --- packages/backend-plugin-api/api-report.md | 8 ++++++-- plugins/catalog-backend/api-report.md | 2 +- plugins/scaffolder-backend/api-report.md | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index df8474d670..44791f5744 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -83,12 +83,16 @@ export const configServiceRef: ServiceRef; // @public (undocumented) export function createBackendModule( config: BackendModuleConfig, -): (option: TOptions) => BackendRegistrable; +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable; // @public (undocumented) export function createBackendPlugin( config: BackendPluginConfig, -): (option: TOptions) => BackendRegistrable; +): undefined extends TOptions + ? (options?: TOptions) => BackendRegistrable + : (options: TOptions) => BackendRegistrable; // @public (undocumented) export function createExtensionPoint(options: { diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index 22a7f8192c..fa6806933d 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -224,7 +224,7 @@ export type CatalogPermissionRule = PermissionRule; // @alpha -export const catalogPlugin: (option: unknown) => BackendRegistrable; +export const catalogPlugin: (options?: unknown) => BackendRegistrable; // @public (undocumented) export interface CatalogProcessingEngine { diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 7c24bdc572..6e7220964d 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -566,7 +566,7 @@ export type RunCommandOptions = { }; // @alpha -export const scaffolderCatalogModule: (option: unknown) => BackendRegistrable; +export const scaffolderCatalogModule: (options?: unknown) => BackendRegistrable; // @public (undocumented) export class ScaffolderEntitiesProcessor implements CatalogProcessor { From 444a188d95ea196c9781f3a5f54f04ce97b1e10d Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 11 Aug 2022 14:43:37 -0700 Subject: [PATCH 088/239] fix: use @backstage/core-components, address PR feedback from @freben Signed-off-by: Isaiah Thiessen --- plugins/dynatrace/src/api/DynatraceClient.ts | 12 +++-- .../components/DynatraceTab/DynatraceTab.tsx | 18 +++++--- .../src/components/EmptyState/EmptyState.tsx | 46 ------------------- .../src/components/EmptyState/index.ts | 17 ------- .../Problems/ProblemsList/ProblemsList.tsx | 12 +++-- .../Problems/ProblemsTable/ProblemsTable.tsx | 11 +++-- .../SyntheticsCard/SyntheticsCard.tsx | 7 ++- .../SyntheticsLocation/SyntheticsLocation.tsx | 7 ++- plugins/dynatrace/src/constants.ts | 3 +- plugins/dynatrace/src/plugin.ts | 8 +++- 10 files changed, 46 insertions(+), 95 deletions(-) delete mode 100644 plugins/dynatrace/src/components/EmptyState/EmptyState.tsx delete mode 100644 plugins/dynatrace/src/components/EmptyState/index.ts diff --git a/plugins/dynatrace/src/api/DynatraceClient.ts b/plugins/dynatrace/src/api/DynatraceClient.ts index 1aabd3fb6d..a31253bcb5 100644 --- a/plugins/dynatrace/src/api/DynatraceClient.ts +++ b/plugins/dynatrace/src/api/DynatraceClient.ts @@ -64,7 +64,10 @@ export class DynatraceClient implements DynatraceApi { throw new Error('Dynatrace syntheticId is required'); } - return this.callApi(`synthetic/execution/${syntheticsId}/FAILED`, {}); + return this.callApi( + `synthetic/execution/${encodeURIComponent(syntheticsId)}/FAILED`, + {}, + ); } async getDynatraceSyntheticLocationInfo( @@ -74,14 +77,17 @@ export class DynatraceClient implements DynatraceApi { throw new Error('Dynatrace syntheticLocationId is required'); } - return this.callApi(`synthetic/locations/${syntheticLocationId}`, {}); + return this.callApi( + `synthetic/locations/${encodeURIComponent(syntheticLocationId)}`, + {}, + ); } async getDynatraceProblems( dynatraceEntityId: string, ): Promise { if (!dynatraceEntityId) { - throw new Error('Dynatrace entity Id is required'); + throw new Error('Dynatrace entity id is required'); } return this.callApi('problems', { diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index 3e137f4109..59886a121d 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -50,14 +50,18 @@ export const DynatraceTab = () => { - - - + {dynatraceEntityId ? ( + + + + ) : ( + '' + )} {syntheticsIds - .replace(' ', '') + ?.replace(' ', '') .split(',') .map(id => { return ( diff --git a/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx b/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx deleted file mode 100644 index 87d0099499..0000000000 --- a/plugins/dynatrace/src/components/EmptyState/EmptyState.tsx +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import React from 'react'; -import { Grid, Typography } from '@material-ui/core'; -import EmptyStateImage from '../../assets/emptystate.svg'; - -type EmptyStateProps = { - message: string; -}; - -export const EmptyState = (props: EmptyStateProps) => { - const { message } = props; - return ( - - - {message} - - - EmptyState - - - ); -}; diff --git a/plugins/dynatrace/src/components/EmptyState/index.ts b/plugins/dynatrace/src/components/EmptyState/index.ts deleted file mode 100644 index 0037560be4..0000000000 --- a/plugins/dynatrace/src/components/EmptyState/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { EmptyState } from './EmptyState'; diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index ef6a2ed173..8fb3f67934 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -15,12 +15,14 @@ */ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -import { Progress } from '@backstage/core-components'; -import Alert from '@material-ui/lab/Alert'; +import { + Progress, + ResponseErrorPanel, + EmptyState, +} from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; import { ProblemsTable } from '../ProblemsTable'; import { dynatraceApiRef, DynatraceProblem } from '../../../api'; -import { EmptyState } from '../../EmptyState'; import { InfoCard } from '@backstage/core-components'; type ProblemsListProps = { @@ -38,7 +40,7 @@ const cardContents = ( dynatraceBaseUrl={dynatraceBaseUrl} /> ) : ( - + ); }; @@ -53,7 +55,7 @@ export const ProblemsList = (props: ProblemsListProps) => { if (loading) { return ; } else if (error) { - return {error.message}; + return ; } return ( { + return timestamp ? new Date(timestamp).toLocaleString() : 'N/A'; +}; + export const ProblemsTable = (props: ProblemsTableProps) => { const { problems, dynatraceBaseUrl } = props; const columns: TableColumn[] = [ @@ -60,16 +64,13 @@ export const ProblemsTable = (props: ProblemsTableProps) => { { title: 'Start Time', field: 'startTime', - render: (row: Partial) => - new Date(row.startTime || 0).toLocaleString(), + render: (row: Partial) => parseTimestamp(row.startTime), }, { title: 'End Time', field: 'endTime', render: (row: Partial) => - row.endTime === -1 - ? 'ongoing' - : new Date(row.endTime || 0).toLocaleString(), + row.endTime === -1 ? 'ongoing' : parseTimestamp(row.endTime), }, ]; diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx index 1b73e51313..531d7ef72f 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx @@ -15,8 +15,7 @@ */ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -import { Progress } from '@backstage/core-components'; -import Alert from '@material-ui/lab/Alert'; +import { Progress, ResponseErrorPanel } from '@backstage/core-components'; import { InfoCard } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; import { dynatraceApiRef } from '../../../api'; @@ -50,11 +49,11 @@ export const SyntheticsCard = (props: SyntheticsCardProps) => { if (loading) { return ; } else if (error) { - return {error.message}; + return ; } const deepLinkPrefix = dynatraceMonitorPrefixes( - `${syntheticsId.match(/(.+)-/)![1]}`, + `${syntheticsId.split('-')[0]}`, ); const lastFailed = value?.locationsExecutionResults.map(l => { diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx index e72995158c..4d328210cb 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsLocation/SyntheticsLocation.tsx @@ -16,8 +16,7 @@ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -import { Progress } from '@backstage/core-components'; -import Alert from '@material-ui/lab/Alert'; +import { Progress, ResponseErrorPanel } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; import { Chip } from '@material-ui/core'; import { dynatraceApiRef } from '../../../api'; @@ -28,7 +27,7 @@ type SyntheticsLocationProps = { key: string; }; -const failedInLastXHours = (timestamp: Date, offset: number): Boolean => { +const failedInLastXHours = (timestamp: Date, offset: number): boolean => { if (offset < 0 || offset > 24) throw new Error('offset must be between 0 and 24'); return timestamp > new Date(new Date().getTime() - 1000 * 60 * 60 * offset); @@ -59,7 +58,7 @@ export const SyntheticsLocation = (props: SyntheticsLocationProps) => { if (loading) { return ; } else if (error) { - return {error.message}; + return ; } return ( diff --git a/plugins/dynatrace/src/constants.ts b/plugins/dynatrace/src/constants.ts index 8f504db1f4..c4cc48d48a 100644 --- a/plugins/dynatrace/src/constants.ts +++ b/plugins/dynatrace/src/constants.ts @@ -14,5 +14,4 @@ * limitations under the License. */ export const DYNATRACE_ID_ANNOTATION = 'dynatrace.com/dynatrace-entity-id'; -export const DYNATRACE_SYNTHETICS_ANNOTATION = - 'dynatrace.com/dynatrace-synthetics-ids'; +export const DYNATRACE_SYNTHETICS_ANNOTATION = 'dynatrace.com/synthetics-ids'; diff --git a/plugins/dynatrace/src/plugin.ts b/plugins/dynatrace/src/plugin.ts index fc1778b45c..26ecb1aba1 100644 --- a/plugins/dynatrace/src/plugin.ts +++ b/plugins/dynatrace/src/plugin.ts @@ -23,7 +23,10 @@ import { } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; -import { DYNATRACE_ID_ANNOTATION } from './constants'; +import { + DYNATRACE_ID_ANNOTATION, + DYNATRACE_SYNTHETICS_ANNOTATION, +} from './constants'; import { rootRouteRef } from './routes'; @@ -55,7 +58,8 @@ export const dynatracePlugin = createPlugin({ * @param entity {Entity} - The entity to check for the dynatrace id annotation. */ export const isDynatraceAvailable = (entity: Entity) => - Boolean(entity.metadata.annotations?.[DYNATRACE_ID_ANNOTATION]); + Boolean(entity.metadata.annotations?.[DYNATRACE_ID_ANNOTATION]) || + Boolean(entity.metadata.annotations?.[DYNATRACE_SYNTHETICS_ANNOTATION]); /** * Creates a routable extension for the dynatrace plugin tab. From 7152961286a8595cd3b0ffbc366aeb0ca3bd5806 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 21:44:53 +0000 Subject: [PATCH 089/239] fix(deps): update dependency aws-sdk to v2.1193.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bd862beb8..08386c58dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9106,9 +9106,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1192.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1192.0.tgz#13fe38ec8dae3232f17d52b370e69daa9c7a0e9c" - integrity sha512-6uzrlG1Ow3qcOnL0+et+DBTGhYgJzgNydVvos1Eg01vPc/ZhxR7roZ3epZQcPmOR0thQuzzckTq7FBO6wzZA2w== + version "2.1193.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1193.0.tgz#34d3ed3ea19a776dafd954183588169c6daa4764" + integrity sha512-nSbljBZhxNn+LmENc14md+y1Z+U8BUcS1LLlOxeJvjYAkkGbPf29Bl8FvzbRsZuoxtF6N1Mkel3AI5XIx7mkew== dependencies: buffer "4.9.2" events "1.1.1" From 392f99a3dfc7979b0cbba4270aa109eefe6e5512 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 11 Aug 2022 14:45:36 -0700 Subject: [PATCH 090/239] fix: remove extra svg file Signed-off-by: Isaiah Thiessen --- plugins/dynatrace/src/assets/emptystate.svg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 plugins/dynatrace/src/assets/emptystate.svg diff --git a/plugins/dynatrace/src/assets/emptystate.svg b/plugins/dynatrace/src/assets/emptystate.svg deleted file mode 100644 index 8a0490727f..0000000000 --- a/plugins/dynatrace/src/assets/emptystate.svg +++ /dev/null @@ -1 +0,0 @@ - From dde444346d45e4017b7c581173b9f9b98c9e10ed Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Thu, 11 Aug 2022 15:00:07 -0700 Subject: [PATCH 091/239] fix: pull dynatraceBaseUrl from config, support [, ] for synthetics annotation Signed-off-by: Isaiah Thiessen --- .../components/DynatraceTab/DynatraceTab.tsx | 18 ++++-------------- .../Problems/ProblemsList/ProblemsList.tsx | 8 +++++--- .../SyntheticsCard/SyntheticsCard.tsx | 8 +++++--- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx index 59886a121d..3f58eed9dc 100644 --- a/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx +++ b/plugins/dynatrace/src/components/DynatraceTab/DynatraceTab.tsx @@ -21,7 +21,6 @@ import { MissingAnnotationEmptyState, } from '@backstage/core-components'; import { useEntity } from '@backstage/plugin-catalog-react'; -import { useApi, configApiRef } from '@backstage/core-plugin-api'; import { ProblemsList } from '../Problems/ProblemsList'; import { SyntheticsCard } from '../Synthetics/SyntheticsCard'; import { isDynatraceAvailable } from '../../plugin'; @@ -33,9 +32,6 @@ import { export const DynatraceTab = () => { const { entity } = useEntity(); - const configApi = useApi(configApiRef); - const dynatraceBaseUrl = configApi.getString('dynatrace.baseUrl'); - if (!isDynatraceAvailable(entity)) { return ; } @@ -52,24 +48,18 @@ export const DynatraceTab = () => { {dynatraceEntityId ? ( - + ) : ( '' )} {syntheticsIds - ?.replace(' ', '') - .split(',') + ?.split(/[ ,]/) + .filter(Boolean) .map(id => { return ( - + ); })} diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx index 8fb3f67934..2ee0dda48d 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.tsx @@ -20,14 +20,13 @@ import { ResponseErrorPanel, EmptyState, } from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; +import { useApi, configApiRef } from '@backstage/core-plugin-api'; import { ProblemsTable } from '../ProblemsTable'; import { dynatraceApiRef, DynatraceProblem } from '../../../api'; import { InfoCard } from '@backstage/core-components'; type ProblemsListProps = { dynatraceEntityId: string; - dynatraceBaseUrl: string; }; const cardContents = ( @@ -45,8 +44,11 @@ const cardContents = ( }; export const ProblemsList = (props: ProblemsListProps) => { - const { dynatraceEntityId, dynatraceBaseUrl } = props; + const { dynatraceEntityId } = props; + const configApi = useApi(configApiRef); const dynatraceApi = useApi(dynatraceApiRef); + const dynatraceBaseUrl = configApi.getString('dynatrace.baseUrl'); + const { value, loading, error } = useAsync(async () => { return dynatraceApi.getDynatraceProblems(dynatraceEntityId); }, [dynatraceApi, dynatraceEntityId]); diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx index 531d7ef72f..6b51a1725c 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.tsx @@ -17,13 +17,12 @@ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { Progress, ResponseErrorPanel } from '@backstage/core-components'; import { InfoCard } from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; +import { useApi, configApiRef } from '@backstage/core-plugin-api'; import { dynatraceApiRef } from '../../../api'; import { SyntheticsLocation } from '../SyntheticsLocation'; type SyntheticsCardProps = { syntheticsId: string; - dynatraceBaseUrl: string; }; const dynatraceMonitorPrefixes = (idPrefix: string): string => { @@ -40,8 +39,11 @@ const dynatraceMonitorPrefixes = (idPrefix: string): string => { }; export const SyntheticsCard = (props: SyntheticsCardProps) => { - const { syntheticsId, dynatraceBaseUrl } = props; + const { syntheticsId } = props; + const configApi = useApi(configApiRef); const dynatraceApi = useApi(dynatraceApiRef); + const dynatraceBaseUrl = configApi.getString('dynatrace.baseUrl'); + const { value, loading, error } = useAsync(async () => { return dynatraceApi.getDynatraceSyntheticFailures(syntheticsId); }, [dynatraceApi, syntheticsId]); From 333448fb12e59e7390c378c5ed47c739b475588c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 22:38:16 +0000 Subject: [PATCH 092/239] chore(deps): update dependency @types/semver to v7.3.12 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 08386c58dc..b2f61d3e33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7678,9 +7678,9 @@ integrity sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A== "@types/semver@^7.3.8": - version "7.3.11" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.11.tgz#7a84d3228f34e68d14955fc406f8e66fdbe9e65e" - integrity sha512-R9HhjC4aKx3jL0FLwU7x6qMTysTvLh7jesRslXmxgCOXZwyh5dsnmrPQQToMyess8D4U+8G9x9mBFZoC/1o/Tw== + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== "@types/serve-handler@^6.1.0": version "6.1.1" From 9a20067f441d142e5c04412742e494a573280ffd Mon Sep 17 00:00:00 2001 From: Robert Cen Date: Fri, 12 Aug 2022 10:01:16 +1000 Subject: [PATCH 093/239] Use FetchApi wrapper instead of manually passing through the token Signed-off-by: Robert Cen --- .changeset/weak-drinks-report.md | 2 +- plugins/code-climate/api-report.md | 2 +- .../code-climate/src/api/production-api.ts | 33 ++++++------------- plugins/code-climate/src/plugin.ts | 8 ++--- 4 files changed, 16 insertions(+), 29 deletions(-) diff --git a/.changeset/weak-drinks-report.md b/.changeset/weak-drinks-report.md index d9ab3880f7..1f8ee512ba 100644 --- a/.changeset/weak-drinks-report.md +++ b/.changeset/weak-drinks-report.md @@ -2,4 +2,4 @@ '@backstage/plugin-code-climate': patch --- -Send Authorization headers in fetch requests in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled as per https://github.com/backstage/backstage/blob/master/contrib/docs/tutorials/authenticate-api-requests.md. +Send Authorization headers in fetch requests using FetchApi in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled. diff --git a/plugins/code-climate/api-report.md b/plugins/code-climate/api-report.md index 13231361dc..5ef53cf543 100644 --- a/plugins/code-climate/api-report.md +++ b/plugins/code-climate/api-report.md @@ -8,7 +8,7 @@ import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; import { DiscoveryApi } from '@backstage/core-plugin-api'; -import { IdentityApi } from '@backstage/core-plugin-api'; +import { FetchApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // Warning: (ae-missing-release-tag) "CodeClimateApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/code-climate/src/api/production-api.ts b/plugins/code-climate/src/api/production-api.ts index d37ec61458..81ba6b9ad6 100644 --- a/plugins/code-climate/src/api/production-api.ts +++ b/plugins/code-climate/src/api/production-api.ts @@ -22,7 +22,7 @@ import { CodeClimateIssuesData, } from './code-climate-data'; import { CodeClimateApi } from './code-climate-api'; -import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; import { Duration } from 'luxon'; import humanizeDuration from 'humanize-duration'; @@ -36,16 +36,16 @@ const otherIssuesQuery = `${basicIssuesOptions}&${categoriesFilter}=Bug%20Risk`; type Options = { discoveryApi: DiscoveryApi; - identityApi: IdentityApi; + fetchApi: FetchApi; }; export class ProductionCodeClimateApi implements CodeClimateApi { private readonly discoveryApi: DiscoveryApi; - private readonly identityApi: IdentityApi; + private readonly fetchApi: FetchApi; constructor(options: Options) { this.discoveryApi = options.discoveryApi; - this.identityApi = options.identityApi; + this.fetchApi = options.fetchApi; } async fetchAllData(options: { @@ -55,11 +55,6 @@ export class ProductionCodeClimateApi implements CodeClimateApi { testReportID: string; }): Promise { const { apiUrl, repoID, snapshotID, testReportID } = options; - - const { token } = await this.identityApi.getCredentials(); - const headersWithAuth = { - headers: { Authorization: `Bearer ${token}` }, - }; const [ maintainabilityResponse, testCoverageResponse, @@ -67,25 +62,20 @@ export class ProductionCodeClimateApi implements CodeClimateApi { duplicationResponse, otherIssuesResponse, ] = await Promise.all([ - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/test_reports/${testReportID}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${codeSmellsQuery}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${duplicationQuery}`, - headersWithAuth, ), - await fetch( + await this.fetchApi.fetch( `${apiUrl}/repos/${repoID}/snapshots/${snapshotID}/issues?${otherIssuesQuery}`, - headersWithAuth, ), ]); @@ -132,11 +122,8 @@ export class ProductionCodeClimateApi implements CodeClimateApi { const apiUrl = `${await this.discoveryApi.getBaseUrl( 'proxy', )}/codeclimate/api`; - const { token } = await this.identityApi.getCredentials(); - const repoResponse = await fetch(`${apiUrl}/repos/${repoID}`, { - headers: { Authorization: `Bearer ${token}` }, - }); + const repoResponse = await this.fetchApi.fetch(`${apiUrl}/repos/${repoID}`); if (!repoResponse.ok) { throw new Error('Failed fetching Code Climate info'); diff --git a/plugins/code-climate/src/plugin.ts b/plugins/code-climate/src/plugin.ts index d8f7ea5028..54502b6355 100644 --- a/plugins/code-climate/src/plugin.ts +++ b/plugins/code-climate/src/plugin.ts @@ -20,7 +20,7 @@ import { createPlugin, createRouteRef, discoveryApiRef, - identityApiRef, + fetchApiRef, createComponentExtension, } from '@backstage/core-plugin-api'; @@ -37,10 +37,10 @@ export const codeClimatePlugin = createPlugin({ api: codeClimateApiRef, deps: { discoveryApi: discoveryApiRef, - identityApi: identityApiRef, + fetchApi: fetchApiRef, }, - factory: ({ discoveryApi, identityApi }) => - new ProductionCodeClimateApi({ discoveryApi, identityApi }), + factory: ({ discoveryApi, fetchApi }) => + new ProductionCodeClimateApi({ discoveryApi, fetchApi }), }), ], routes: { From c676a9e07bd0150eb9cabc3da41f5de838811b31 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Mon, 8 Aug 2022 18:13:44 -0300 Subject: [PATCH 094/239] fix(auth-plugin-backend): Allow it to skip migrations When auth plugin is using database provider it verify if needs to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .changeset/fuzzy-months-study.md | 5 ++++ .../src/identity/DatabaseKeyStore.test.ts | 26 ++++++++++++---- .../src/identity/DatabaseKeyStore.ts | 30 +++++++++++-------- .../auth-backend/src/identity/KeyStores.ts | 4 +-- 4 files changed, 45 insertions(+), 20 deletions(-) create mode 100644 .changeset/fuzzy-months-study.md diff --git a/.changeset/fuzzy-months-study.md b/.changeset/fuzzy-months-study.md new file mode 100644 index 0000000000..024349f90b --- /dev/null +++ b/.changeset/fuzzy-months-study.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Fixed a bug in auth plugin on the backend where it ignores the skip migration database options when using the database provider. diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts index fa7b251780..da67a2f88f 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.test.ts @@ -14,10 +14,22 @@ * limitations under the License. */ -import Knex from 'knex'; +import Knex, { Knex as KnexType } from 'knex'; import { DatabaseKeyStore } from './DatabaseKeyStore'; import { DateTime } from 'luxon'; +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} + function createDB() { const knex = Knex({ client: 'better-sqlite3', @@ -38,8 +50,10 @@ const keyBase = { describe('DatabaseKeyStore', () => { it('should store a key', async () => { - const database = createDB(); - const store = await DatabaseKeyStore.create({ database }); + const client = createDB(); + const store = await DatabaseKeyStore.create({ + database: createDatabaseManager(client), + }); const key = { kid: '123', @@ -59,8 +73,10 @@ describe('DatabaseKeyStore', () => { }); it('should remove stored keys', async () => { - const database = createDB(); - const store = await DatabaseKeyStore.create({ database }); + const client = createDB(); + const store = await DatabaseKeyStore.create({ + database: createDatabaseManager(client), + }); const key1 = { kid: '1', ...keyBase }; const key2 = { kid: '2', ...keyBase }; diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts index 6bae1f4412..8039837469 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { Knex } from 'knex'; import { DateTime } from 'luxon'; import { AnyJWK, KeyStore, StoredKey } from './types'; @@ -33,7 +36,7 @@ type Row = { }; type Options = { - database: Knex; + database: PluginDatabaseManager; }; const parseDate = (date: string | Date) => { @@ -54,29 +57,32 @@ const parseDate = (date: string | Date) => { export class DatabaseKeyStore implements KeyStore { static async create(options: Options): Promise { const { database } = options; + const client = await database.getClient(); - await database.migrate.latest({ - directory: migrationsDir, - }); + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } - return new DatabaseKeyStore(options); + return new DatabaseKeyStore(client); } - private readonly database: Knex; + private readonly client: Knex; - private constructor(options: Options) { - this.database = options.database; + private constructor(client: Knex) { + this.client = client; } async addKey(key: AnyJWK): Promise { - await this.database(TABLE).insert({ + await this.client(TABLE).insert({ kid: key.kid, key: JSON.stringify(key), }); } async listKeys(): Promise<{ items: StoredKey[] }> { - const rows = await this.database(TABLE).select(); + const rows = await this.client(TABLE).select(); return { items: rows.map(row => ({ @@ -87,6 +93,6 @@ export class DatabaseKeyStore implements KeyStore { } async removeKeys(kids: string[]): Promise { - await this.database(TABLE).delete().whereIn('kid', kids); + await this.client(TABLE).delete().whereIn('kid', kids); } } diff --git a/plugins/auth-backend/src/identity/KeyStores.ts b/plugins/auth-backend/src/identity/KeyStores.ts index 3d238adba9..e29b4b6fc4 100644 --- a/plugins/auth-backend/src/identity/KeyStores.ts +++ b/plugins/auth-backend/src/identity/KeyStores.ts @@ -53,9 +53,7 @@ export class KeyStores { throw new Error('This KeyStore provider requires a database'); } - return await DatabaseKeyStore.create({ - database: await database.getClient(), - }); + return await DatabaseKeyStore.create({ database }); } if (provider === 'memory') { From f027a34a28a7d3cc7dabfe63c27f4e27e3a0b6f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 10:18:45 +0000 Subject: [PATCH 095/239] chore(deps): update dependency @types/node to v16.11.48 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b2f61d3e33..99e9e46942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7382,9 +7382,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.0.0", "@types/node@^16.11.26", "@types/node@^16.9.2": - version "16.11.47" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz#efa9e3e0f72e7aa6a138055dace7437a83d9f91c" - integrity sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g== + version "16.11.48" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.48.tgz#22d386f32b24fb644940b606ed393b56be7d8686" + integrity sha512-Z9r9UWlNeNkYnxybm+1fc0jxUNjZqRekTAr1pG0qdXe9apT9yCiqk1c4VvKQJsFpnchU4+fLl25MabSLA2wxIw== "@types/normalize-package-data@^2.4.0": version "2.4.1" From b4d3f115fa762aab3b23b9a9989bee72119ccd01 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 13:25:09 +0200 Subject: [PATCH 096/239] await backend start Signed-off-by: Johan Haals --- .../src/next/wiring/TestBackend.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 49acb07ab4..c7bc987cb8 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -37,18 +37,17 @@ export interface TestBackendOptions { export function createTestBackend( options: TestBackendOptions, ): Backend { - const factories = - options.services?.map(serviceDef => { - if (Array.isArray(serviceDef)) { - return createServiceFactory({ - service: serviceDef[0], - deps: {}, - factory: async () => async () => serviceDef[1], - }); - } - return serviceDef as AnyServiceFactory; - }) ?? []; - return createSpecializedBackend({ services: factories }); + const factories = options.services?.map(serviceDef => { + if (Array.isArray(serviceDef)) { + return createServiceFactory({ + service: serviceDef[0], + deps: {}, + factory: async () => async () => serviceDef[1], + }); + } + return serviceDef as AnyServiceFactory; + }); + return createSpecializedBackend({ services: factories ?? [] }); } /** @alpha */ @@ -62,5 +61,5 @@ export async function startTestBackend( for (const reg of registrables) { backend.add(reg); } - return backend.start(); + await backend.start(); } From e3d514507a88d71cc09ab6d23b14ca8f87fcf23d Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 13:40:59 +0200 Subject: [PATCH 097/239] backend-app-api: rename BackendRegistrable to BackendFeature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 22 +++++++++---------- .../src/wiring/BackstageBackend.ts | 6 ++--- packages/backend-app-api/src/wiring/types.ts | 4 ++-- .../src/wiring/factories.ts | 14 +++++------- .../backend-plugin-api/src/wiring/index.ts | 2 +- .../backend-plugin-api/src/wiring/types.ts | 2 +- .../src/next/wiring/TestBackend.ts | 4 ++-- 7 files changed, 24 insertions(+), 30 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ab086f4144..0c2cd3e541 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -15,7 +15,7 @@ */ import { - BackendRegistrable, + BackendFeature, ExtensionPoint, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -25,7 +25,7 @@ type ServiceOrExtensionPoint = ExtensionPoint | ServiceRef; export class BackendInitializer { #started = false; - #extensions = new Map(); + #features = new Map(); #registerInits = new Array(); #extensionPoints = new Map(); #serviceHolder: ServiceHolder; @@ -51,13 +51,11 @@ export class BackendInitializer { ); } - add(extension: BackendRegistrable, options?: TOptions) { + add(feature: BackendFeature, options?: TOptions) { if (this.#started) { - throw new Error( - 'extension can not be added after the backend has started', - ); + throw new Error('feature can not be added after the backend has started'); } - this.#extensions.set(extension, options); + this.#features.set(feature, options); } async start(): Promise { @@ -67,13 +65,13 @@ export class BackendInitializer { } this.#started = true; - for (const [extension] of this.#extensions) { + for (const [feature] of this.#features) { const provides = new Set>(); let registerInit: BackendRegisterInit | undefined = undefined; - console.log('Registering', extension.id); - extension.register({ + console.log('Registering', feature.id); + feature.register({ registerExtensionPoint: (extensionPointRef, impl) => { if (registerInit) { throw new Error('registerExtensionPoint called after registerInit'); @@ -89,7 +87,7 @@ export class BackendInitializer { throw new Error('registerInit must only be called once'); } registerInit = { - id: extension.id, + id: feature.id, provides, consumes: new Set(Object.values(registerOptions.deps)), deps: registerOptions.deps, @@ -100,7 +98,7 @@ export class BackendInitializer { if (!registerInit) { throw new Error( - `registerInit was not called by register in ${extension.id}`, + `registerInit was not called by register in ${feature.id}`, ); } diff --git a/packages/backend-app-api/src/wiring/BackstageBackend.ts b/packages/backend-app-api/src/wiring/BackstageBackend.ts index 104d2b6fc8..1e09ed77ba 100644 --- a/packages/backend-app-api/src/wiring/BackstageBackend.ts +++ b/packages/backend-app-api/src/wiring/BackstageBackend.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; @@ -31,8 +31,8 @@ export class BackstageBackend implements Backend { this.#initializer = new BackendInitializer(this.#services); } - add(extension: BackendRegistrable): void { - this.#initializer.add(extension); + add(feature: BackendFeature): void { + this.#initializer.add(feature); } async start(): Promise { diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 2aaead805d..cdd4578789 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -16,7 +16,7 @@ import { AnyServiceFactory, - BackendRegistrable, + BackendFeature, FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -26,7 +26,7 @@ import { BackstageBackend } from './BackstageBackend'; * @public */ export interface Backend { - add(extension: BackendRegistrable): void; + add(feature: BackendFeature): void; start(): Promise; } diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 1c3a27bb1c..a057c0d6ec 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - BackendInitRegistry, - BackendRegistrable, - ExtensionPoint, -} from './types'; +import { BackendInitRegistry, BackendFeature, ExtensionPoint } from './types'; /** @public */ export function createExtensionPoint(options: { @@ -46,8 +42,8 @@ export interface BackendPluginConfig { export function createBackendPlugin( config: BackendPluginConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: config.id, register(register: BackendInitRegistry) { @@ -70,8 +66,8 @@ export interface BackendModuleConfig { export function createBackendModule( config: BackendModuleConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable { + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, register(register: BackendInitRegistry) { diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 342a922dbd..2ad414beca 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -22,6 +22,6 @@ export { } from './factories'; export type { BackendInitRegistry, - BackendRegistrable, + BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 65525fd8aa..3f01879f80 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -48,7 +48,7 @@ export interface BackendInitRegistry { } /** @public */ -export interface BackendRegistrable { +export interface BackendFeature { id: string; register(reg: BackendInitRegistry): void; } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index c7bc987cb8..30dbe7f804 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -19,7 +19,7 @@ import { AnyServiceFactory, ServiceRef, createServiceFactory, - BackendRegistrable, + BackendFeature, } from '@backstage/backend-plugin-api'; /** @alpha */ @@ -53,7 +53,7 @@ export function createTestBackend( /** @alpha */ export async function startTestBackend( options: TestBackendOptions & { - registrables?: BackendRegistrable[]; + registrables?: BackendFeature[]; }, ): Promise { const { registrables = [], ...otherOptions } = options; From 04525293745fdb736d9918042633a3cc9d077c49 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 14:02:15 +0200 Subject: [PATCH 098/239] BackendInitRegistry -> BackendRegistrationPoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Patrik Oldsberg Signed-off-by: Johan Haals --- .../backend-plugin-api/src/wiring/factories.ts | 14 +++++++++----- packages/backend-plugin-api/src/wiring/index.ts | 2 +- packages/backend-plugin-api/src/wiring/types.ts | 5 +++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index a057c0d6ec..68f13f6c30 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -import { BackendInitRegistry, BackendFeature, ExtensionPoint } from './types'; +import { + BackendRegistrationPoints, + BackendFeature, + ExtensionPoint, +} from './types'; /** @public */ export function createExtensionPoint(options: { @@ -35,7 +39,7 @@ export function createExtensionPoint(options: { /** @public */ export interface BackendPluginConfig { id: string; - register(reg: BackendInitRegistry, options: TOptions): void; + register(reg: BackendRegistrationPoints, options: TOptions): void; } /** @public */ @@ -46,7 +50,7 @@ export function createBackendPlugin( : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: config.id, - register(register: BackendInitRegistry) { + register(register: BackendRegistrationPoints) { return config.register(register, options!); }, }); @@ -57,7 +61,7 @@ export interface BackendModuleConfig { pluginId: string; moduleId: string; register( - reg: Omit, + reg: Omit, options: TOptions, ): void; } @@ -70,7 +74,7 @@ export function createBackendModule( : (options: TOptions) => BackendFeature { return (options?: TOptions) => ({ id: `${config.pluginId}.${config.moduleId}`, - register(register: BackendInitRegistry) { + register(register: BackendRegistrationPoints) { // TODO: Hide registerExtensionPoint return config.register(register, options!); }, diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 2ad414beca..8f85edb2eb 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -21,7 +21,7 @@ export { createExtensionPoint, } from './factories'; export type { - BackendInitRegistry, + BackendRegistrationPoints, BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 3f01879f80..1801127ddb 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -36,7 +36,7 @@ export type ExtensionPoint = { }; /** @public */ -export interface BackendInitRegistry { +export interface BackendRegistrationPoints { registerExtensionPoint( ref: ServiceRef, impl: TExtensionPoint, @@ -49,6 +49,7 @@ export interface BackendInitRegistry { /** @public */ export interface BackendFeature { + // TODO(Rugvip): Try to get rid of the ID at this level, allowing for a feature to register multiple features as a bundle id: string; - register(reg: BackendInitRegistry): void; + register(reg: BackendRegistrationPoints): void; } From 0ef2719b11ba98a167cfafa86787fd71dfa09c96 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 14:13:02 +0200 Subject: [PATCH 099/239] registrables -> feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../backend-test-utils/src/next/wiring/TestBackend.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 30dbe7f804..150d4ce2af 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -53,13 +53,13 @@ export function createTestBackend( /** @alpha */ export async function startTestBackend( options: TestBackendOptions & { - registrables?: BackendFeature[]; + features?: BackendFeature[]; }, ): Promise { - const { registrables = [], ...otherOptions } = options; + const { features = [], ...otherOptions } = options; const backend = createTestBackend(otherOptions); - for (const reg of registrables) { - backend.add(reg); + for (const feature of features) { + backend.add(feature); } await backend.start(); } From 0d2e6197d8e775fcf9b146f8b7735d2a45b2f893 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:30:24 +0200 Subject: [PATCH 100/239] =?UTF-8?q?Refactor=20backend-test-utils=20Co-auth?= =?UTF-8?q?ored-by:=20Fredrik=20Adel=C3=B6w=20=20Co-authored-by:=20Patrik=20Oldsberg=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 21 +++--- packages/backend-app-api/src/wiring/index.ts | 6 +- packages/backend-app-api/src/wiring/types.ts | 14 +++- .../backend-plugin-api/src/wiring/types.ts | 8 ++- .../src/next/wiring/TestBackend.test.ts | 6 +- .../src/next/wiring/TestBackend.ts | 64 ++++++++++++++----- .../src/next/wiring/index.ts | 2 +- plugins/catalog-node/src/extensions.ts | 4 +- .../extension/ScaffolderCatalogModule.test.ts | 5 +- 9 files changed, 89 insertions(+), 41 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 0c2cd3e541..c1b7089827 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -19,15 +19,17 @@ import { ExtensionPoint, ServiceRef, } from '@backstage/backend-plugin-api'; -import { BackendRegisterInit, ServiceHolder } from './types'; - -type ServiceOrExtensionPoint = ExtensionPoint | ServiceRef; +import { + BackendRegisterInit, + ServiceHolder, + ServiceOrExtensionPoint, +} from './types'; export class BackendInitializer { #started = false; #features = new Map(); #registerInits = new Array(); - #extensionPoints = new Map(); + #extensionPoints = new Map, unknown>(); #serviceHolder: ServiceHolder; constructor(serviceHolder: ServiceHolder) { @@ -42,7 +44,7 @@ export class BackendInitializer { await Promise.all( Object.entries(deps).map(async ([name, ref]) => [ name, - this.#extensionPoints.get(ref) || + this.#extensionPoints.get(ref as ExtensionPoint) || (await this.#serviceHolder.get(ref as ServiceRef)!( pluginId, )), @@ -66,7 +68,7 @@ export class BackendInitializer { this.#started = true; for (const [feature] of this.#features) { - const provides = new Set>(); + const provides = new Set>(); let registerInit: BackendRegisterInit | undefined = undefined; @@ -129,13 +131,13 @@ export class BackendInitializer { for (const registerInit of registerInitsToOrder) { const unInitializedDependents = []; - for (const serviceRef of registerInit.provides) { + for (const provided of registerInit.provides) { if ( registerInitsToOrder.some( - init => init !== registerInit && init.consumes.has(serviceRef), + init => init !== registerInit && init.consumes.has(provided), ) ) { - unInitializedDependents.push(serviceRef); + unInitializedDependents.push(provided); } } @@ -148,6 +150,7 @@ export class BackendInitializer { registerInitsToOrder = registerInitsToOrder.filter(r => !toRemove.has(r)); } + return orderedRegisterInits; } } diff --git a/packages/backend-app-api/src/wiring/index.ts b/packages/backend-app-api/src/wiring/index.ts index d6e4de9145..2f55076922 100644 --- a/packages/backend-app-api/src/wiring/index.ts +++ b/packages/backend-app-api/src/wiring/index.ts @@ -14,5 +14,9 @@ * limitations under the License. */ -export type { Backend, CreateSpecializedBackendOptions } from './types'; +export type { + Backend, + CreateSpecializedBackendOptions, + ServiceOrExtensionPoint, +} from './types'; export { createSpecializedBackend } from './types'; diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index cdd4578789..0ca40b5660 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -17,6 +17,7 @@ import { AnyServiceFactory, BackendFeature, + ExtensionPoint, FactoryFunc, ServiceRef, } from '@backstage/backend-plugin-api'; @@ -32,9 +33,9 @@ export interface Backend { export interface BackendRegisterInit { id: string; - consumes: Set>; - provides: Set>; - deps: { [name: string]: ServiceRef }; + consumes: Set; + provides: Set; + deps: { [name: string]: ServiceOrExtensionPoint }; init: (deps: { [name: string]: unknown }) => Promise; } @@ -57,3 +58,10 @@ export function createSpecializedBackend( ): Backend { return new BackstageBackend(options.services); } + +/** + * @public + */ +export type ServiceOrExtensionPoint = + | ExtensionPoint + | ServiceRef; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 1801127ddb..cdb56ea2e4 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -38,12 +38,14 @@ export type ExtensionPoint = { /** @public */ export interface BackendRegistrationPoints { registerExtensionPoint( - ref: ServiceRef, + ref: ExtensionPoint, impl: TExtensionPoint, ): void; registerInit(options: { - deps: { [name in keyof Deps]: ServiceRef }; - init: (deps: Deps) => Promise; + deps: { + [name in keyof Deps]: ServiceRef | ExtensionPoint; + }; + init(deps: Deps): Promise; }): void; } diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index 279667560f..6b3f8e270f 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -19,12 +19,12 @@ import { createServiceFactory, createServiceRef, } from '@backstage/backend-plugin-api'; -import { createTestBackend, startTestBackend } from './TestBackend'; +import { startTestBackend } from './TestBackend'; describe('TestBackend', () => { it('should get a type error if service implementation does not match', () => { const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); - const backend = createTestBackend({ + const backend = startTestBackend({ services: [ [serviceRef, { a: 'a' }], [serviceRef, { a: 'a', b: 'b' }], @@ -68,7 +68,7 @@ describe('TestBackend', () => { await startTestBackend({ services: [sf], - registrables: [testModule({})], + features: [testModule({})], }); expect(testFn).toBeCalledWith('winning'); diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 150d4ce2af..b9276fa9b9 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -14,31 +14,54 @@ * limitations under the License. */ -import { Backend, createSpecializedBackend } from '@backstage/backend-app-api'; +import { createSpecializedBackend } from '@backstage/backend-app-api'; import { AnyServiceFactory, ServiceRef, createServiceFactory, BackendFeature, + ExtensionPoint, } from '@backstage/backend-plugin-api'; /** @alpha */ -export interface TestBackendOptions { - services: readonly [ +export interface TestBackendOptions< + TServices extends any[], + TExtensionPoints extends any[], +> { + services?: readonly [ ...{ [index in keyof TServices]: | AnyServiceFactory | [ServiceRef, Partial]; }, ]; + extensionPoints?: readonly [ + ...{ + [index in keyof TExtensionPoints]: [ + ExtensionPoint, + Partial, + ]; + }, + ]; + features?: BackendFeature[]; } /** @alpha */ -export function createTestBackend( - options: TestBackendOptions, -): Backend { - const factories = options.services?.map(serviceDef => { +export async function startTestBackend< + TServices extends any[], + TExtensionPoints extends any[], +>(options: TestBackendOptions): Promise { + const { + services = [], + extensionPoints = [], + features = [], + ...otherOptions + } = options; + + const factories = services.map(serviceDef => { if (Array.isArray(serviceDef)) { + // if type is ExtensionPoint? + // do something differently? return createServiceFactory({ service: serviceDef[0], deps: {}, @@ -47,19 +70,26 @@ export function createTestBackend( } return serviceDef as AnyServiceFactory; }); - return createSpecializedBackend({ services: factories ?? [] }); -} -/** @alpha */ -export async function startTestBackend( - options: TestBackendOptions & { - features?: BackendFeature[]; - }, -): Promise { - const { features = [], ...otherOptions } = options; - const backend = createTestBackend(otherOptions); + const backend = createSpecializedBackend({ + ...otherOptions, + services: factories, + }); + + backend.add({ + id: `---test-extension-point-registrar`, + register(reg) { + for (const [ref, impl] of extensionPoints) { + reg.registerExtensionPoint(ref, impl); + } + + reg.registerInit({ deps: {}, async init() {} }); + }, + }); + for (const feature of features) { backend.add(feature); } + await backend.start(); } diff --git a/packages/backend-test-utils/src/next/wiring/index.ts b/packages/backend-test-utils/src/next/wiring/index.ts index 18a35c2b66..eb7b773e33 100644 --- a/packages/backend-test-utils/src/next/wiring/index.ts +++ b/packages/backend-test-utils/src/next/wiring/index.ts @@ -14,5 +14,5 @@ * limitations under the License. */ -export { createTestBackend, startTestBackend } from './TestBackend'; +export { startTestBackend } from './TestBackend'; export type { TestBackendOptions } from './TestBackend'; diff --git a/plugins/catalog-node/src/extensions.ts b/plugins/catalog-node/src/extensions.ts index 9f76946d30..80fbd7630f 100644 --- a/plugins/catalog-node/src/extensions.ts +++ b/plugins/catalog-node/src/extensions.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { createServiceRef } from '@backstage/backend-plugin-api'; +import { createExtensionPoint } from '@backstage/backend-plugin-api'; import { EntityProvider } from './api'; import { CatalogProcessor } from './api/processor'; @@ -29,6 +29,6 @@ export interface CatalogProcessingExtensionPoint { * @alpha */ export const catalogProcessingExtensionPoint = - createServiceRef({ + createExtensionPoint({ id: 'catalog.processing', }); diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index a969d80a1b..e8ed3bf505 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -23,8 +23,9 @@ describe('ScaffolderCatalogModule', () => { it('should register the extension point', async () => { const extensionPoint = { addProcessor: jest.fn() }; await startTestBackend({ - services: [[catalogProcessingExtensionPoint, extensionPoint]], - registrables: [scaffolderCatalogModule({})], + services: [], + extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], + features: [scaffolderCatalogModule({})], }); expect(extensionPoint.addProcessor).toHaveBeenCalledWith( From 3f37ff4c42a90a403e05524d0027513743d75bf9 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:32:25 +0200 Subject: [PATCH 101/239] chore: remove unused parameter Signed-off-by: Johan Haals --- .../src/extension/ScaffolderCatalogModule.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts index e8ed3bf505..1ced3dd676 100644 --- a/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts +++ b/plugins/scaffolder-backend/src/extension/ScaffolderCatalogModule.test.ts @@ -23,7 +23,6 @@ describe('ScaffolderCatalogModule', () => { it('should register the extension point', async () => { const extensionPoint = { addProcessor: jest.fn() }; await startTestBackend({ - services: [], extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], features: [scaffolderCatalogModule({})], }); From 0599732ec0dd8b392f525ce24ababa38da541945 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:40:23 +0200 Subject: [PATCH 102/239] add changeset Signed-off-by: Johan Haals --- .changeset/cyan-pens-suffer.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/cyan-pens-suffer.md diff --git a/.changeset/cyan-pens-suffer.md b/.changeset/cyan-pens-suffer.md new file mode 100644 index 0000000000..b7d3a3a096 --- /dev/null +++ b/.changeset/cyan-pens-suffer.md @@ -0,0 +1,8 @@ +--- +'@backstage/backend-app-api': patch +'@backstage/backend-plugin-api': patch +'@backstage/backend-test-utils': patch +'@backstage/plugin-catalog-node': patch +--- + +Refactored experimental backend system with new type names. From c2e7491890a6ac0deb360e90e6c075f77fdee659 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:58:36 +0200 Subject: [PATCH 103/239] backend-app-api: Improve error handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/wiring/BackendInitializer.ts | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index c1b7089827..afb5250504 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -40,17 +40,35 @@ export class BackendInitializer { deps: { [name: string]: ServiceOrExtensionPoint }, pluginId: string, ) { - return Object.fromEntries( - await Promise.all( - Object.entries(deps).map(async ([name, ref]) => [ - name, - this.#extensionPoints.get(ref as ExtensionPoint) || - (await this.#serviceHolder.get(ref as ServiceRef)!( - pluginId, - )), - ]), - ), - ); + const result = new Map(); + const missingRefs = new Set(); + + for (const [name, ref] of Object.entries(deps)) { + const extensionPoint = this.#extensionPoints.get( + ref as ExtensionPoint, + ); + if (extensionPoint) { + result.set(name, extensionPoint); + } else { + const factory = await this.#serviceHolder.get( + ref as ServiceRef, + ); + if (factory) { + result.set(name, await factory(pluginId)); + } else { + missingRefs.add(ref); + } + } + } + + if (missingRefs.size > 0) { + const missing = Array.from(missingRefs).join(', '); + throw new Error( + `No extension point or service available for the following ref(s): ${missing}`, + ); + } + + return Object.fromEntries(result); } add(feature: BackendFeature, options?: TOptions) { @@ -61,7 +79,6 @@ export class BackendInitializer { } async start(): Promise { - console.log(`Starting backend`); if (this.#started) { throw new Error('Backend has already started'); } @@ -72,7 +89,6 @@ export class BackendInitializer { let registerInit: BackendRegisterInit | undefined = undefined; - console.log('Registering', feature.id); feature.register({ registerExtensionPoint: (extensionPointRef, impl) => { if (registerInit) { @@ -107,8 +123,6 @@ export class BackendInitializer { this.#registerInits.push(registerInit); } - this.validateSetup(); - const orderedRegisterResults = this.#resolveInitOrder(this.#registerInits); for (const registerInit of orderedRegisterResults) { @@ -117,8 +131,6 @@ export class BackendInitializer { } } - private validateSetup() {} - #resolveInitOrder(registerInits: Array) { let registerInitsToOrder = registerInits.slice(); const orderedRegisterInits = new Array(); @@ -142,7 +154,6 @@ export class BackendInitializer { } if (unInitializedDependents.length === 0) { - console.log(`DEBUG: pushed ${registerInit.id} to results`); orderedRegisterInits.push(registerInit); toRemove.add(registerInit); } From b76eeaf302b691705ba9737d59e36aa3f87efc6a Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 15:58:52 +0200 Subject: [PATCH 104/239] add api reports Signed-off-by: Johan Haals --- packages/backend-app-api/api-report.md | 11 +++++- packages/backend-plugin-api/api-report.md | 48 +++++++++++------------ packages/backend-test-utils/api-report.md | 36 ++++++++++------- plugins/catalog-backend/api-report.md | 4 +- plugins/catalog-node/api-report.md | 4 +- plugins/scaffolder-backend/api-report.md | 4 +- 6 files changed, 61 insertions(+), 46 deletions(-) diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 130ad6d1f1..26c8179771 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -4,8 +4,9 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; import { Logger } from '@backstage/backend-plugin-api'; import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; @@ -15,13 +16,14 @@ import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; import { ServiceFactory } from '@backstage/backend-plugin-api'; +import { ServiceRef } from '@backstage/backend-plugin-api'; import { TokenManager } from '@backstage/backend-common'; import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface Backend { // (undocumented) - add(extension: BackendRegistrable): void; + add(feature: BackendFeature): void; // (undocumented) start(): Promise; } @@ -85,6 +87,11 @@ export const schedulerFactory: ServiceFactory< {} >; +// @public (undocumented) +export type ServiceOrExtensionPoint = + | ExtensionPoint + | ServiceRef; + // @public (undocumented) export const tokenManagerFactory: ServiceFactory< TokenManager, diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 44791f5744..fa5097be64 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -26,23 +26,11 @@ export type AnyServiceFactory = ServiceFactory< >; // @public (undocumented) -export interface BackendInitRegistry { +export interface BackendFeature { // (undocumented) - registerExtensionPoint( - ref: ServiceRef, - impl: TExtensionPoint, - ): void; + id: string; // (undocumented) - registerInit< - Deps extends { - [name in string]: unknown; - }, - >(options: { - deps: { - [name in keyof Deps]: ServiceRef; - }; - init: (deps: Deps) => Promise; - }): void; + register(reg: BackendRegistrationPoints): void; } // @public (undocumented) @@ -53,7 +41,7 @@ export interface BackendModuleConfig { pluginId: string; // (undocumented) register( - reg: Omit, + reg: Omit, options: TOptions, ): void; } @@ -63,15 +51,27 @@ export interface BackendPluginConfig { // (undocumented) id: string; // (undocumented) - register(reg: BackendInitRegistry, options: TOptions): void; + register(reg: BackendRegistrationPoints, options: TOptions): void; } // @public (undocumented) -export interface BackendRegistrable { +export interface BackendRegistrationPoints { // (undocumented) - id: string; + registerExtensionPoint( + ref: ExtensionPoint, + impl: TExtensionPoint, + ): void; // (undocumented) - register(reg: BackendInitRegistry): void; + registerInit< + Deps extends { + [name in string]: unknown; + }, + >(options: { + deps: { + [name in keyof Deps]: ServiceRef | ExtensionPoint; + }; + init(deps: Deps): Promise; + }): void; } // @public (undocumented) @@ -84,15 +84,15 @@ export const configServiceRef: ServiceRef; export function createBackendModule( config: BackendModuleConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable; + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature; // @public (undocumented) export function createBackendPlugin( config: BackendPluginConfig, ): undefined extends TOptions - ? (options?: TOptions) => BackendRegistrable - : (options: TOptions) => BackendRegistrable; + ? (options?: TOptions) => BackendFeature + : (options: TOptions) => BackendFeature; // @public (undocumented) export function createExtensionPoint(options: { diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index 9c75402b43..b8881e659d 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -4,16 +4,11 @@ ```ts import { AnyServiceFactory } from '@backstage/backend-plugin-api'; -import { Backend } from '@backstage/backend-app-api'; -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; import { ServiceRef } from '@backstage/backend-plugin-api'; -// @alpha (undocumented) -export function createTestBackend( - options: TestBackendOptions, -): Backend; - // @public (undocumented) export function isDockerDisabledForTests(): boolean; @@ -25,16 +20,29 @@ export function setupRequestMockHandlers(worker: { }): void; // @alpha (undocumented) -export function startTestBackend( - options: TestBackendOptions & { - registrables?: BackendRegistrable[]; - }, -): Promise; +export function startTestBackend< + TServices extends any[], + TExtensionPoints extends any[], +>(options: TestBackendOptions): Promise; // @alpha (undocumented) -export interface TestBackendOptions { +export interface TestBackendOptions< + TServices extends any[], + TExtensionPoints extends any[], +> { // (undocumented) - services: readonly [ + extensionPoints?: readonly [ + ...{ + [index in keyof TExtensionPoints]: [ + ExtensionPoint, + Partial, + ]; + }, + ]; + // (undocumented) + features?: BackendFeature[]; + // (undocumented) + services?: readonly [ ...{ [index in keyof TServices]: | AnyServiceFactory diff --git a/plugins/catalog-backend/api-report.md b/plugins/catalog-backend/api-report.md index fa6806933d..55f2d114db 100644 --- a/plugins/catalog-backend/api-report.md +++ b/plugins/catalog-backend/api-report.md @@ -5,7 +5,7 @@ ```ts /// -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; @@ -224,7 +224,7 @@ export type CatalogPermissionRule = PermissionRule; // @alpha -export const catalogPlugin: (options?: unknown) => BackendRegistrable; +export const catalogPlugin: (options?: unknown) => BackendFeature; // @public (undocumented) export interface CatalogProcessingEngine { diff --git a/plugins/catalog-node/api-report.md b/plugins/catalog-node/api-report.md index 47a9bdf45c..46e3efef99 100644 --- a/plugins/catalog-node/api-report.md +++ b/plugins/catalog-node/api-report.md @@ -7,8 +7,8 @@ import { CompoundEntityRef } from '@backstage/catalog-model'; import { Entity } from '@backstage/catalog-model'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { JsonValue } from '@backstage/types'; -import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) export interface CatalogProcessingExtensionPoint { @@ -19,7 +19,7 @@ export interface CatalogProcessingExtensionPoint { } // @alpha (undocumented) -export const catalogProcessingExtensionPoint: ServiceRef; +export const catalogProcessingExtensionPoint: ExtensionPoint; // @public (undocumented) export type CatalogProcessor = { diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 6e7220964d..96a4d7b400 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -5,7 +5,7 @@ ```ts /// -import { BackendRegistrable } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CatalogProcessor } from '@backstage/plugin-catalog-backend'; import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend'; @@ -566,7 +566,7 @@ export type RunCommandOptions = { }; // @alpha -export const scaffolderCatalogModule: (options?: unknown) => BackendRegistrable; +export const scaffolderCatalogModule: (options?: unknown) => BackendFeature; // @public (undocumented) export class ScaffolderEntitiesProcessor implements CatalogProcessor { From 91dd47a6a182641d880b265244f8f2e2114a87a1 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 12 Aug 2022 16:09:17 +0200 Subject: [PATCH 105/239] chore: update backend tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Patrik Oldsberg Co-authored-by: Fredrik Adelöw Signed-off-by: Johan Haals --- .../src/next/wiring/TestBackend.test.ts | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index 6b3f8e270f..488a258388 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -16,16 +16,25 @@ import { createBackendModule, + createExtensionPoint, createServiceFactory, createServiceRef, } from '@backstage/backend-plugin-api'; import { startTestBackend } from './TestBackend'; describe('TestBackend', () => { - it('should get a type error if service implementation does not match', () => { - const serviceRef = createServiceRef<{ a: string; b: string }>({ id: 'a' }); - const backend = startTestBackend({ + it('should get a type error if service implementation does not match', async () => { + type Obj = { a: string; b: string }; + const serviceRef = createServiceRef({ id: 'a' }); + const extensionPoint1 = createExtensionPoint({ id: 'b1' }); + const extensionPoint2 = createExtensionPoint({ id: 'b2' }); + const extensionPoint3 = createExtensionPoint({ id: 'b3' }); + const extensionPoint4 = createExtensionPoint({ id: 'b4' }); + const extensionPoint5 = createExtensionPoint({ id: 'b5' }); + await startTestBackend({ services: [ + // @ts-expect-error + [extensionPoint1, { a: 'a' }], [serviceRef, { a: 'a' }], [serviceRef, { a: 'a', b: 'b' }], // @ts-expect-error @@ -35,8 +44,20 @@ describe('TestBackend', () => { // @ts-expect-error [serviceRef, { a: 'a', b: 'b', c: 'c' }], ], + extensionPoints: [ + // @ts-expect-error + [serviceRef, { a: 'a' }], + [extensionPoint1, { a: 'a' }], + [extensionPoint2, { a: 'a', b: 'b' }], + // @ts-expect-error + [extensionPoint3, { c: 'c' }], + // @ts-expect-error + [extensionPoint4, { a: 'a', c: 'c' }], + // @ts-expect-error + [extensionPoint5, { a: 'a', b: 'b', c: 'c' }], + ], }); - expect(backend).toBeDefined(); + expect(1).toBe(1); }); it('should start the test backend', async () => { From 48b8deeaa919358ca1cbf0fd4b4f7f2f98e5a5af Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 17:08:31 +0000 Subject: [PATCH 106/239] fix(deps): update dependency terser-webpack-plugin to v5.3.4 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99e9e46942..355006a095 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4048,10 +4048,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.7": - version "0.3.13" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== +"@jridgewell/trace-mapping@^0.3.14": + version "0.3.15" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -25046,17 +25046,17 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: - version "5.3.3" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90" - integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== + version "5.3.4" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.4.tgz#f4d31e265883d20fda3ca9c0fc6a53f173ae62e3" + integrity sha512-SmnkUhBxLDcBfTIeaq+ZqJXLVEyXxSaNcCeSezECdKjfkMrTTnPvapBILylYwyEvHFZAn2cJ8dtiXel5XnfOfQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.14" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.0" - terser "^5.7.2" + terser "^5.14.1" -terser@^5.10.0, terser@^5.7.2: +terser@^5.10.0, terser@^5.14.1: version "5.14.2" resolved "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== From 844757ef480a636733fba2d151727a4455a0fdc5 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:18:48 -0400 Subject: [PATCH 107/239] Fixing issue #13126 Fixing evaluation grouping with ternary. Regex match was returning all archived repos as matching along with the ones that actually matched. Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 991b380112..346d4d9097 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,9 +185,9 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && repositoryFilter + return !r.isArchived && ( repositoryFilter ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name; + : true && r.defaultBranchRef?.name) ; }); return matchingRepositories; } From 62bf7826546b4be8daae32b3651cc2971a55d9ee Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:20:15 -0400 Subject: [PATCH 108/239] Removing extra space Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 346d4d9097..35d2b66de5 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,7 +185,7 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && ( repositoryFilter + return !r.isArchived && (repositoryFilter ? repositoryFilter?.test(r.name) : true && r.defaultBranchRef?.name) ; }); From 341d50570e4e6f7ab6bcd571d8335134fe945a99 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 12:28:42 -0400 Subject: [PATCH 109/239] Removing extra whitespace Signed-off-by: Tim Harris Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index 35d2b66de5..ec7e598327 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -187,7 +187,7 @@ export class GitHubEntityProvider implements EntityProvider { const matchingRepositories = repositories.filter(r => { return !r.isArchived && (repositoryFilter ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name) ; + : true && r.defaultBranchRef?.name); }); return matchingRepositories; } From a63ffec08af50772d61681660b8439413fb8a10b Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 13:13:16 -0400 Subject: [PATCH 110/239] Apply Prettier formatting Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index ec7e598327..e47ed62890 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -185,9 +185,12 @@ export class GitHubEntityProvider implements EntityProvider { const repositoryFilter = this.config.filters?.repository; const matchingRepositories = repositories.filter(r => { - return !r.isArchived && (repositoryFilter - ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name); + return ( + !r.isArchived && + (repositoryFilter + ? repositoryFilter?.test(r.name) + : true && r.defaultBranchRef?.name) + ); }); return matchingRepositories; } From c59d1ce48796b2ae99272fd97f3fb957a2c6cf31 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Fri, 12 Aug 2022 13:16:18 -0400 Subject: [PATCH 111/239] Adding changeset Signed-off-by: Tim Harris --- .changeset/serious-flowers-smash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/serious-flowers-smash.md diff --git a/.changeset/serious-flowers-smash.md b/.changeset/serious-flowers-smash.md new file mode 100644 index 0000000000..274250b1dd --- /dev/null +++ b/.changeset/serious-flowers-smash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Fixed bug where repository filter was including all archived repositories From 4b3c5df733087fd31024c70950dff057eb35827d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 20:32:42 +0000 Subject: [PATCH 112/239] fix(deps): update dependency aws-sdk to v2.1194.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 355006a095..4455ceac5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9106,9 +9106,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1193.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1193.0.tgz#34d3ed3ea19a776dafd954183588169c6daa4764" - integrity sha512-nSbljBZhxNn+LmENc14md+y1Z+U8BUcS1LLlOxeJvjYAkkGbPf29Bl8FvzbRsZuoxtF6N1Mkel3AI5XIx7mkew== + version "2.1194.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1194.0.tgz#6a820684fa3f58ea40caf90d302414a23df7c308" + integrity sha512-wbgib7r7sHPkZIhqSMduueKYqe+DrFyxsKnUKHj6hdNcRKqEeqzvKp4olWmFs/3z3qU8+g78kBXr9rujvko1ug== dependencies: buffer "4.9.2" events "1.1.1" From d45bbfeb6935075963f146e5716640b206959065 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 12:59:46 +0200 Subject: [PATCH 113/239] cli: lint ignore any eslintrc files Signed-off-by: Patrik Oldsberg --- .changeset/blue-hairs-prove.md | 5 +++++ packages/cli/config/eslint-factory.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/blue-hairs-prove.md diff --git a/.changeset/blue-hairs-prove.md b/.changeset/blue-hairs-prove.md new file mode 100644 index 0000000000..7812825da6 --- /dev/null +++ b/.changeset/blue-hairs-prove.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`. diff --git a/packages/cli/config/eslint-factory.js b/packages/cli/config/eslint-factory.js index e86146048e..6e2a510c4a 100644 --- a/packages/cli/config/eslint-factory.js +++ b/packages/cli/config/eslint-factory.js @@ -76,7 +76,7 @@ function createConfig(dir, extraConfig = {}) { ...parserOptions, }, ignorePatterns: [ - '.eslintrc.js', + '.eslintrc.*', '**/dist/**', '**/dist-types/**', ...(ignorePatterns ?? []), From 3a8ab72248ef9eaa32c93ed28791d491be7c1f37 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 18:34:37 +0200 Subject: [PATCH 114/239] graphiql: avoid using dynamic default import Signed-off-by: Patrik Oldsberg --- .changeset/late-dolphins-leave.md | 5 +++++ .../src/components/GraphiQLBrowser/GraphiQLBrowser.tsx | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/late-dolphins-leave.md diff --git a/.changeset/late-dolphins-leave.md b/.changeset/late-dolphins-leave.md new file mode 100644 index 0000000000..796b9a7a21 --- /dev/null +++ b/.changeset/late-dolphins-leave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-graphiql': patch +--- + +Minor internal tweak to lazy loading in order to improve module compatibility. diff --git a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx index 87419aec94..dd38f513be 100644 --- a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx +++ b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.tsx @@ -22,7 +22,9 @@ import { GraphQLEndpoint } from '../../lib/api'; import { BackstageTheme } from '@backstage/theme'; import { Progress } from '@backstage/core-components'; -const GraphiQL = React.lazy(() => import('graphiql')); +const GraphiQL = React.lazy(() => + import('graphiql').then(m => ({ default: m.GraphiQL })), +); const useStyles = makeStyles(theme => ({ root: { From fe1e075b5a820758384e749f46a77858fb2494d1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 31 Jul 2022 18:35:10 +0200 Subject: [PATCH 115/239] core-app-api: fix import syntax Signed-off-by: Patrik Oldsberg --- .../apis/implementations/IdentityApi/AppIdentityProxy.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts b/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts index 3d4f83b05d..6fa46db7c9 100644 --- a/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts +++ b/packages/core-app-api/src/apis/implementations/IdentityApi/AppIdentityProxy.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { withLogCollector } from '@backstage//test-utils'; +import { withLogCollector } from '@backstage/test-utils'; import { AppIdentityProxy } from './AppIdentityProxy'; describe('AppIdentityProxy', () => { From 175849ac98468f34894bac6250416deee95292e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 02:38:48 +0000 Subject: [PATCH 116/239] fix(deps): update dependency eslint to v8.22.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4455ceac5a..7185ca594a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13054,9 +13054,9 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.6.0: - version "8.21.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" - integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== + version "8.22.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" + integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.10.4" From ef0393fac03f6f53a88d90c3388a75c9e499bf49 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 09:46:11 +0000 Subject: [PATCH 117/239] chore(deps): update dependency @changesets/cli to v2.24.3 Signed-off-by: Renovate Bot --- yarn.lock | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7185ca594a..b1de8458fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2249,10 +2249,10 @@ resolve-from "^5.0.0" semver "^5.4.1" -"@changesets/assemble-release-plan@^5.2.0": - version "5.2.0" - resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.0.tgz#35158dc9b496a4c108936ae8ad776ef855795ff6" - integrity sha512-ewY24PEbSec2eKX0+KM7eyENA2hUUp6s4LF9p/iBxTtc+TX2Xbx5rZnlLKZkc8tpuQ3PZbyjLFXWhd1PP6SjCg== +"@changesets/assemble-release-plan@^5.2.1": + version "5.2.1" + resolved "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.1.tgz#b66df8d4a5615d4d904b75f7b60faeb64eb1d506" + integrity sha512-d6ckasOWlKF9Mzs82jhl6TKSCgVvfLoUK1ERySrTg2TQJdrVUteZue6uEIYUTA7SgMu67UOSwol6R9yj1nTdjw== dependencies: "@babel/runtime" "^7.10.4" "@changesets/errors" "^0.1.4" @@ -2269,18 +2269,18 @@ "@changesets/types" "^5.1.0" "@changesets/cli@^2.14.0": - version "2.24.2" - resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.2.tgz#333ad412c821b582680fbc7f0d0596ebba442c2d" - integrity sha512-Bya7bnxF8Sz+O25M6kseAludVsCy5nXSW9u2Lbje/XbJTyU5q/xwIiXF9aTUzVi/4jyKoKoOasx7B1/z+NJLzg== + version "2.24.3" + resolved "https://registry.npmjs.org/@changesets/cli/-/cli-2.24.3.tgz#e6d8ab5d831d2249ca482955232a9a1c9ff02c21" + integrity sha512-okhRV+0WCQJa2Kmil/WvN5TK1o3+1JYSjrsGHqhjv+PYcDgDDgQ6I9J9OMBO9lfmNIpN7xSO80/BzxgvReO4Wg== dependencies: "@babel/runtime" "^7.10.4" "@changesets/apply-release-plan" "^6.0.4" - "@changesets/assemble-release-plan" "^5.2.0" + "@changesets/assemble-release-plan" "^5.2.1" "@changesets/changelog-git" "^0.1.12" "@changesets/config" "^2.1.1" "@changesets/errors" "^0.1.4" "@changesets/get-dependents-graph" "^1.3.3" - "@changesets/get-release-plan" "^3.0.13" + "@changesets/get-release-plan" "^3.0.14" "@changesets/git" "^1.4.1" "@changesets/logger" "^0.0.5" "@changesets/pre" "^1.0.12" @@ -2338,13 +2338,13 @@ fs-extra "^7.0.1" semver "^5.4.1" -"@changesets/get-release-plan@^3.0.13": - version "3.0.13" - resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.13.tgz#f5f7b67b798d1bf2d6e8e546a60c199dd09bfeaf" - integrity sha512-Zl/UN4FUzb5LwmzhO2STRijJT5nQCN4syPEs0p1HSIR+O2iVOzes+2yTLF2zGiOx8qPOsFx/GRSAvuhSzm+9ig== +"@changesets/get-release-plan@^3.0.14": + version "3.0.14" + resolved "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.14.tgz#b4423028a90c63feec12e22c48078f106f8d01f4" + integrity sha512-xzSfeyIOvUnbqMuQXVKTYUizreWQfICwoQpvEHoePVbERLocc1tPo5lzR7dmVCFcaA/DcnbP6mxyioeq+JuzSg== dependencies: "@babel/runtime" "^7.10.4" - "@changesets/assemble-release-plan" "^5.2.0" + "@changesets/assemble-release-plan" "^5.2.1" "@changesets/config" "^2.1.1" "@changesets/pre" "^1.0.12" "@changesets/read" "^0.5.7" @@ -20065,7 +20065,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.2: +object.assign@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -20075,6 +20075,16 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +object.assign@^4.1.2: + version "4.1.3" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f" + integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + object.entries@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" From 8a5680cb3165cac1b5f97bf13357ab87f26401fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 19:38:45 +0000 Subject: [PATCH 118/239] fix(deps): update dependency @react-hookz/web to v15.1.0 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index b1de8458fb..e880888d6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5981,17 +5981,17 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@react-hookz/deep-equal@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.2.tgz#4e8bdeda027379dcf8b62a42e5f75f0351b11b35" - integrity sha512-cM5kPFb6EFH5q52WzRxfRX9+8g5kq78McWOYs6e1seo+nK6NpfLupT5uOCIJp37jU8ayd4Su8ni3HRFTN2C2kg== +"@react-hookz/deep-equal@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.3.tgz#e044bca38c1612ea8c1596ef858ef7cfea49dd7a" + integrity sha512-lGZR5l3YRjzeIOHtJhiq96vQKrsq+9lsCyv+0fROMQeSNWtLLzX3R+psHNi6nsoP3XEhspiZ92nsiPmdNo8ztQ== "@react-hookz/web@^15.0.0": - version "15.0.1" - resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.0.1.tgz#a6e5460dd16e54ccc0b899e1eed4ae29e871060f" - integrity sha512-nvVLUsDFv3fpZcINoy3I4MeaX8+yoKU21m2Ey2g0VAVqOMp+0GBBC6OHkzT2lRa2fiPIVuJwlmboSKQt7segfQ== + version "15.1.0" + resolved "https://registry.npmjs.org/@react-hookz/web/-/web-15.1.0.tgz#62f7cedb98f345a1cdc7437673ea93dfb4d753d1" + integrity sha512-AsmqeZDg22JnpQS1hGIjLbue4LPmcsgyoPzgmKt6WDeqIUWFL20cgowiGBMFNLvL5Cc9XdusVY720S+CpLyT4Q== dependencies: - "@react-hookz/deep-equal" "^1.0.2" + "@react-hookz/deep-equal" "^1.0.3" "@rjsf/core@^3.2.1": version "3.2.1" From 76f2a1b4e0524dfd27e01232a837575e2f7c6e9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 05:40:38 +0000 Subject: [PATCH 119/239] fix(deps): update dependency rollup-plugin-esbuild to v4.9.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e880888d6f..051d3ae98c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23300,9 +23300,9 @@ rollup-plugin-dts@^4.0.1: "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.7.2: - version "4.9.1" - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz#369d137e2b1542c8ee459495fd4f10de812666aa" - integrity sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw== + version "4.9.3" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.3.tgz#8c62042bdda9f33d18b1c280914394e5a842dd53" + integrity sha512-bxfUNYTa9Tw/4kdFfT9gtidDtqXyRdCW11ctZM7D8houCCVqp5qHzQF7hhIr31rqMA0APbG47fgVbbCGXgM49Q== dependencies: "@rollup/pluginutils" "^4.1.1" debug "^4.3.3" From fcbafccd0520c804e1d00cc4cdff7e38099cb3a5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 15 Aug 2022 11:25:01 +0200 Subject: [PATCH 120/239] github-issues: remove dependency on prettier Signed-off-by: Patrik Oldsberg --- plugins/github-issues/package.json | 5 +---- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 109c825994..2ddb8481c4 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -21,7 +21,6 @@ "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack" }, - "prettier": "@spotify/prettier-config", "dependencies": { "@backstage/catalog-model": "^1.0.3", "@backstage/core-components": "^0.11.0-next.2", @@ -44,7 +43,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", @@ -52,8 +50,7 @@ "@types/node": "*", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^0.44.0", - "prettier": "^2.7.1" + "msw": "^0.44.0" }, "files": [ "dist" diff --git a/yarn.lock b/yarn.lock index 051d3ae98c..f8d31be28f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21589,7 +21589,7 @@ prettier@^1.16.4, prettier@^1.19.1: resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.2.1, prettier@^2.7.1: +prettier@^2.2.1: version "2.7.1" resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== From acdf7c40ecde4916447a42b755710310e15df953 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:29:43 +0200 Subject: [PATCH 121/239] chore: add the documentation to the sidebar Signed-off-by: blam --- docs/plugins/customization.md | 2 +- microsite/sidebars.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/plugins/customization.md b/docs/plugins/customization.md index 0477ba18a7..44ca5147ea 100644 --- a/docs/plugins/customization.md +++ b/docs/plugins/customization.md @@ -1,6 +1,6 @@ --- id: customization -title: Customization +title: Customization (Experimental) description: Documentation on adding a customization logic to the plugin --- diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 2ae7f5e81d..27ae9c8295 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -219,6 +219,7 @@ "plugins/integrating-plugin-into-software-catalog", "plugins/integrating-search-into-plugins", "plugins/composability", + "plugins/customization", "plugins/analytics", { "type": "subcategory", From 381ff8164f6df9d01f9d3c7e38990b9813922cd9 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:41:47 +0200 Subject: [PATCH 122/239] chore: set as undefined if there's an error in the grabbing of the user entity Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 2f72004afe..1a1077cccf 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -192,7 +192,12 @@ export async function createRouter( ); const userEntity = userEntityRef - ? await catalogClient.getEntityByRef(userEntityRef, { token }) + ? await catalogClient + .getEntityByRef(userEntityRef, { token }) + .catch(e => { + logger.error(`Failed to get user entity: ${stringifyError(e)}`); + return undefined; + }) : undefined; let auditLog = `Scaffolding task for ${templateRef}`; From 471dc5699f5b06185ef1d2789acfe8e893fe2b9d Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:43:27 +0200 Subject: [PATCH 123/239] chore: a little more refactoring here if it's undefined Signed-off-by: blam --- plugins/scaffolder-backend/src/service/router.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 1a1077cccf..beaa0388dc 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -241,10 +241,12 @@ export async function createRouter( })), output: template.spec.output ?? {}, parameters: values, - user: { - entity: userEntity as UserEntity, - ref: userEntityRef, - }, + user: userEntity + ? { + entity: userEntity as UserEntity, + ref: userEntityRef, + } + : undefined, templateInfo: { entityRef: stringifyEntityRef({ kind, From dad0f65494036639ba487be0d2cbe67f13817830 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 11:44:38 +0200 Subject: [PATCH 124/239] chore: add changeset Signed-off-by: blam --- .changeset/smooth-planes-itch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/smooth-planes-itch.md diff --git a/.changeset/smooth-planes-itch.md b/.changeset/smooth-planes-itch.md new file mode 100644 index 0000000000..638a2e0bf6 --- /dev/null +++ b/.changeset/smooth-planes-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fail gracefully if an invalid `Authorization` header is passed to `POST /v2/tasks` From 0ba7c724054c8871036ced048d2aacefdd377d15 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 15 Aug 2022 12:58:10 +0200 Subject: [PATCH 125/239] chore: reworking the parsing so that we verify it's a valid entity ref before calling out anywhere Signed-off-by: blam --- .../src/service/router.test.ts | 51 +++++++++++++++++++ .../scaffolder-backend/src/service/router.ts | 48 ++++++++++------- 2 files changed, 80 insertions(+), 19 deletions(-) diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index f545e57f85..f769038369 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -267,6 +267,57 @@ describe('createRouter', () => { ); }); + it('should not throw when an invalid authorization header is passed', async () => { + const broker = taskBroker.dispatch as jest.Mocked['dispatch']; + const mockToken = 'blob.eyJzdWIiOiIiLCJuYW1lIjoiSm9obiBEb2UifQ.blob'; + + await request(app) + .post('/v2/tasks') + .set('Authorization', `Bearer ${mockToken}`) + .send({ + templateRef: stringifyEntityRef({ + kind: 'template', + name: 'create-react-app-template', + }), + values: { + required: 'required-value', + }, + }); + expect(broker).toHaveBeenCalledWith( + expect.objectContaining({ + createdBy: undefined, + secrets: { + backstageToken: undefined, + }, + + spec: { + apiVersion: mockTemplate.apiVersion, + steps: mockTemplate.spec.steps.map((step, index) => ({ + ...step, + id: step.id ?? `step-${index + 1}`, + name: step.name ?? step.action, + })), + output: mockTemplate.spec.output ?? {}, + parameters: { + required: 'required-value', + }, + user: { + entity: undefined, + ref: undefined, + }, + templateInfo: { + entityRef: stringifyEntityRef({ + kind: 'Template', + namespace: 'Default', + name: mockTemplate.metadata?.name, + }), + baseUrl: 'https://dev.azure.com', + }, + }, + }), + ); + }); + it('should not decorate a user when no backstage auth is passed', async () => { const broker = taskBroker.dispatch as jest.Mocked['dispatch']; diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index beaa0388dc..2a8f15d967 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -146,7 +146,10 @@ export async function createRouter( '/v2/templates/:namespace/:kind/:name/parameter-schema', async (req, res) => { const { namespace, kind, name } = req.params; - const { token } = parseBearerToken(req.headers.authorization); + const { token } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); const template = await findTemplate({ catalogApi: catalogClient, entityRef: { kind, namespace, name }, @@ -187,17 +190,13 @@ export async function createRouter( const { kind, namespace, name } = parseEntityRef(templateRef, { defaultKind: 'template', }); - const { token, entityRef: userEntityRef } = parseBearerToken( - req.headers.authorization, - ); + const { token, entityRef: userEntityRef } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); const userEntity = userEntityRef - ? await catalogClient - .getEntityByRef(userEntityRef, { token }) - .catch(e => { - logger.error(`Failed to get user entity: ${stringifyError(e)}`); - return undefined; - }) + ? await catalogClient.getEntityByRef(userEntityRef, { token }) : undefined; let auditLog = `Scaffolding task for ${templateRef}`; @@ -241,12 +240,10 @@ export async function createRouter( })), output: template.spec.output ?? {}, parameters: values, - user: userEntity - ? { - entity: userEntity as UserEntity, - ref: userEntityRef, - } - : undefined, + user: { + entity: userEntity as UserEntity, + ref: userEntityRef, + }, templateInfo: { entityRef: stringifyEntityRef({ kind, @@ -396,7 +393,10 @@ export async function createRouter( throw new InputError('Input template is not a template'); } - const { token } = parseBearerToken(req.headers.authorization); + const { token } = parseBearerToken({ + header: req.headers.authorization, + logger, + }); for (const parameters of [template.spec.parameters ?? []].flat()) { const result = validate(body.values, parameters); @@ -447,7 +447,13 @@ export async function createRouter( return app; } -function parseBearerToken(header?: string): { +function parseBearerToken({ + header, + logger, +}: { + header?: string; + logger: Logger; +}): { token?: string; entityRef?: string; } { @@ -479,8 +485,12 @@ function parseBearerToken(header?: string): { throw new TypeError('Expected string sub claim'); } + // Check that it's a valid ref, otherwise this will throw. + parseEntityRef(sub); + return { entityRef: sub, token }; } catch (e) { - throw new InputError(`Invalid authorization header: ${stringifyError(e)}`); + logger.error(`Invalid authorization header: ${stringifyError(e)}`); + return {}; } } From a2ee1d73d1f5ba2da31f7d4eb3d4b98c253a2537 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:27:46 +0100 Subject: [PATCH 126/239] feat: generate test issue + new dependencies Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 4 +- .../src/utils/generateTestIssue.ts | 53 +++++++++++++++++++ plugins/github-issues/src/utils/index.ts | 16 ++++++ yarn.lock | 7 ++- 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 plugins/github-issues/src/utils/generateTestIssue.ts create mode 100644 plugins/github-issues/src/utils/index.ts diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 2ddb8481c4..98434ce748 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -25,15 +25,17 @@ "@backstage/catalog-model": "^1.0.3", "@backstage/core-components": "^0.11.0-next.2", "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/errors": "^1.1.0", "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", + "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", "luxon": "^2.4.0", "octokit": "^2.0.4", - "react-use": "^17.2.4" + "react-use": "^17.4.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0" diff --git a/plugins/github-issues/src/utils/generateTestIssue.ts b/plugins/github-issues/src/utils/generateTestIssue.ts new file mode 100644 index 0000000000..a07c8dfc57 --- /dev/null +++ b/plugins/github-issues/src/utils/generateTestIssue.ts @@ -0,0 +1,53 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { faker } from '@faker-js/faker'; +import { Issue } from '../api'; + +export const generateTestIssue = ( + overwrites: Partial = {}, +): { node: Issue } => ({ + node: { + ...{ + assignees: { + edges: [ + { + node: { + avatarUrl: faker.internet.avatar(), + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + }, + ], + }, + author: { + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + repository: { + nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + }, + title: faker.lorem.words(3), + url: faker.internet.url(), + participants: { + totalCount: +faker.random.numeric(), + }, + updatedAt: faker.date.past().toISOString(), + createdAt: faker.date.past().toISOString(), + comments: { + totalCount: +faker.random.numeric(), + }, + }, + ...overwrites, + }, +}); diff --git a/plugins/github-issues/src/utils/index.ts b/plugins/github-issues/src/utils/index.ts new file mode 100644 index 0000000000..16740dac94 --- /dev/null +++ b/plugins/github-issues/src/utils/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './generateTestIssue'; diff --git a/yarn.lock b/yarn.lock index f8d31be28f..4bebec76e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2673,6 +2673,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@faker-js/faker@^7.4.0": + version "7.4.0" + resolved "https://registry.npmjs.org/@faker-js/faker/-/faker-7.4.0.tgz#cac720d860a89d487b47e55e66a4fd114f1d3fe5" + integrity sha512-xDd3Tvkt2jgkx1LkuwwxpNBy/Oe+LkZBTwkgEFTiWpVSZgQ5sc/LenbHKRHbFl0dq/KFeeq/szyyPtpJRKY0fg== + "@fmvilas/pseudo-yaml-ast@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" @@ -22465,7 +22470,7 @@ react-universal-interface@^0.6.2: resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b" integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw== -react-use@^17.2.4, react-use@^17.3.1, react-use@^17.3.2: +react-use@^17.2.4, react-use@^17.3.1, react-use@^17.3.2, react-use@^17.4.0: version "17.4.0" resolved "https://registry.npmjs.org/react-use/-/react-use-17.4.0.tgz#cefef258b0a6c534a5c8021c2528ac6e1a4cdc6d" integrity sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q== From e1c5cd7dbe3f67af2012d1ea447197691ff0b3ab Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:34:21 +0100 Subject: [PATCH 127/239] feat: github graphql communicationg moved to new github issues api + fixes the issue with no data rendered on partial failure from api Signed-off-by: Kamil Wolny --- .../src/api/gitHubIssuesApi.test.ts | 300 ++++++++++++++++++ .../github-issues/src/api/gitHubIssuesApi.ts | 207 ++++++++++++ plugins/github-issues/src/api/index.ts | 16 + plugins/github-issues/src/plugin.ts | 17 + 4 files changed, 540 insertions(+) create mode 100644 plugins/github-issues/src/api/gitHubIssuesApi.test.ts create mode 100644 plugins/github-issues/src/api/gitHubIssuesApi.ts create mode 100644 plugins/github-issues/src/api/index.ts diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.test.ts b/plugins/github-issues/src/api/gitHubIssuesApi.test.ts new file mode 100644 index 0000000000..4d1c3ffff3 --- /dev/null +++ b/plugins/github-issues/src/api/gitHubIssuesApi.test.ts @@ -0,0 +1,300 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const mockGraphQLQuery = jest.fn(() => ({})); +jest.mock('octokit', () => ({ + Octokit: jest.fn(() => ({ graphql: mockGraphQLQuery })), +})); + +import { ConfigApi, ErrorApi } from '@backstage/core-plugin-api'; +import { ForwardedError } from '@backstage/errors'; +import { gitHubIssuesApi } from './gitHubIssuesApi'; + +describe('gitHubIssuesApi', () => { + describe('fetchIssuesByRepoFromGitHub', () => { + it('should call GitHub API with correct query with fragment for each repo', async () => { + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/yo-yo', 'mrwolny/yoyo', 'mrwolny/yo.yo'], + 10, + ); + expect(mockGraphQLQuery).toHaveBeenCalledTimes(1); + expect(mockGraphQLQuery).toHaveBeenCalledWith( + '\n' + + ' \n' + + ' fragment issues on Repository {\n' + + ' issues(\n' + + ' states: OPEN\n' + + ' first: 10\n' + + ' orderBy: { field: UPDATED_AT, direction: DESC }\n' + + ' ) {\n' + + ' totalCount\n' + + ' edges {\n' + + ' node {\n' + + ' assignees(first: 10) {\n' + + ' edges {\n' + + ' node {\n' + + ' avatarUrl\n' + + ' login\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' author {\n' + + ' login\n' + + ' }\n' + + ' repository {\n' + + ' nameWithOwner\n' + + ' }\n' + + ' title\n' + + ' url\n' + + ' participants {\n' + + ' totalCount\n' + + ' }\n' + + ' updatedAt\n' + + ' createdAt\n' + + ' comments(last: 1) {\n' + + ' totalCount\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' }\n' + + ' \n' + + '\n' + + ' query {\n' + + ' \n' + + ' yoyo: repository(name: "yo-yo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' ,\n' + + ' yoyox: repository(name: "yoyo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' ,\n' + + ' yoyoxx: repository(name: "yo.yo", owner: "mrwolny") {\n' + + ' ...issues\n' + + ' }\n' + + ' \n' + + ' } \n' + + ' ', + ); + }); + }); + + it('should return data for repos with successfully retrieved issues when GitHub returns partial failure', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + yoyo: { + issues: { + totalCount: 1, + edges: [ + { + node: { + assignees: { + edges: [], + }, + author: { + login: 'mrwolny', + }, + repository: { + nameWithOwner: 'mrwolny/yo-yo', + }, + title: "It's the ISSUE!", + url: 'https://github.com/mrwolny/yo-yo/issues/1', + participants: { + totalCount: 1, + }, + updatedAt: '2022-07-04T18:47:33Z', + createdAt: '2022-06-23T18:14:26Z', + comments: { + totalCount: 4, + }, + }, + }, + ], + }, + }, + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + const data = await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/yo-yo', 'mrwolny/notfound'], + 10, + ); + + expect(data).toEqual({ + 'mrwolny/yo-yo': { + issues: { + totalCount: 1, + edges: [ + { + node: { + assignees: { + edges: [], + }, + author: { + login: 'mrwolny', + }, + repository: { + nameWithOwner: 'mrwolny/yo-yo', + }, + title: "It's the ISSUE!", + url: 'https://github.com/mrwolny/yo-yo/issues/1', + participants: { + totalCount: 1, + }, + updatedAt: '2022-07-04T18:47:33Z', + createdAt: '2022-06-23T18:14:26Z', + comments: { + totalCount: 4, + }, + }, + }, + ], + }, + }, + }); + }); + + it('should return empty object when GitHub returns failure with no data', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + { post: jest.fn() } as unknown as ErrorApi, + ); + + const data = await api.fetchIssuesByRepoFromGitHub( + ['mrwolny/notfound'], + 10, + ); + + expect(data).toEqual({}); + }); + + it('should post error to the backstage error API when GitHub returns failure', async () => { + mockGraphQLQuery.mockImplementationOnce(() => + Promise.reject({ + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + + const mockErrorApi = { post: jest.fn() }; + + const api = gitHubIssuesApi( + { getAccessToken: jest.fn() }, + { + getOptionalConfigArray: jest.fn(), + } as unknown as ConfigApi, + mockErrorApi as unknown as ErrorApi, + ); + + await api.fetchIssuesByRepoFromGitHub(['mrwolny/notfound'], 10); + + expect(mockErrorApi.post).toHaveBeenCalledTimes(1); + expect(mockErrorApi.post).toHaveBeenCalledWith( + new ForwardedError('GitHub Issues Plugin failure', { + data: { + notfound: null, + }, + errors: [ + { + type: 'NOT_FOUND', + path: ['notfound'], + locations: [ + { + line: 48, + column: 9, + }, + ], + message: + "Could not resolve to a Repository with the name 'notfound/notfound'.", + }, + ], + }), + ); + }); +}); diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts new file mode 100644 index 0000000000..06fdf3d452 --- /dev/null +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -0,0 +1,207 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Octokit } from 'octokit'; +import { + createApiRef, + ConfigApi, + ErrorApi, + OAuthApi, +} from '@backstage/core-plugin-api'; +import { readGitHubIntegrationConfigs } from '@backstage/integration'; +import { ForwardedError } from '@backstage/errors'; + +type Assignee = { + avatarUrl: string; + login: string; +}; + +type EdgesWithNodes = { + edges: Array<{ + node: T; + }>; +}; + +type IssueAuthor = { + login: string; +}; + +export type Issue = { + assignees: EdgesWithNodes; + author: IssueAuthor; + repository: { + nameWithOwner: string; + }; + title: string; + url: string; + participants: { + totalCount: number; + }; + createdAt: string; + updatedAt: string; + comments: { + totalCount: number; + }; +}; + +export type RepoIssues = { + issues: { + totalCount: number; + } & EdgesWithNodes; +}; +export type IssuesByRepo = Record; + +export type GitHubIssuesApi = ReturnType; + +export const gitHubIssuesApiRef = createApiRef({ + id: 'plugin.githubissues.service', +}); + +export const gitHubIssuesApi = ( + githubAuthApi: OAuthApi, + configApi: ConfigApi, + errorApi: ErrorApi, +) => { + let octokit: Octokit; + + const getOctokit = async () => { + const baseUrl = readGitHubIntegrationConfigs( + configApi.getOptionalConfigArray('integrations.github') ?? [], + )[0].apiBaseUrl; + + const token = await githubAuthApi.getAccessToken(['repo']); + + if (!octokit) { + octokit = new Octokit({ auth: token, ...(baseUrl && { baseUrl }) }); + } + + return octokit.graphql; + }; + + const fetchIssuesByRepoFromGitHub = async ( + repos: Array, + itemsPerRepo: number, + ): Promise => { + const graphql = await getOctokit(); + const safeNames: Array = []; + + const repositories = repos.map(repo => { + const [owner, name] = repo.split('/'); + + const safeNameRegex = /-|\./gi; + let safeName = name.replace(safeNameRegex, ''); + + while (safeNames.includes(safeName)) { + safeName += 'x'; + } + + safeNames.push(safeName); + + return { + safeName, + name, + owner, + }; + }); + + let issuesByRepo: IssuesByRepo = {}; + try { + issuesByRepo = await graphql( + createIssueByRepoQuery(repositories, itemsPerRepo), + ); + } catch (e) { + if (e.data) { + issuesByRepo = e.data; + } + + errorApi.post(new ForwardedError('GitHub Issues Plugin failure', e)); + } + + return repositories.reduce((acc, { safeName, name, owner }) => { + if (issuesByRepo[safeName]) { + acc[`${owner}/${name}`] = issuesByRepo[safeName]; + } + + return acc; + }, {} as IssuesByRepo); + }; + + return { fetchIssuesByRepoFromGitHub }; +}; + +function createIssueByRepoQuery( + repositories: Array<{ + safeName: string; + name: string; + owner: string; + }>, + itemsPerRepo: number, +): string { + const fragment = ` + fragment issues on Repository { + issues( + states: OPEN + first: ${itemsPerRepo} + orderBy: { field: UPDATED_AT, direction: DESC } + ) { + totalCount + edges { + node { + assignees(first: 10) { + edges { + node { + avatarUrl + login + } + } + } + author { + login + } + repository { + nameWithOwner + } + title + url + participants { + totalCount + } + updatedAt + createdAt + comments(last: 1) { + totalCount + } + } + } + } + } + `; + + const query = ` + ${fragment} + + query { + ${repositories.map( + ({ safeName, name, owner }) => ` + ${safeName}: repository(name: "${name}", owner: "${owner}") { + ...issues + } + `, + )} + } + `; + + return query; +} diff --git a/plugins/github-issues/src/api/index.ts b/plugins/github-issues/src/api/index.ts new file mode 100644 index 0000000000..4cc3372c45 --- /dev/null +++ b/plugins/github-issues/src/api/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from './gitHubIssuesApi'; diff --git a/plugins/github-issues/src/plugin.ts b/plugins/github-issues/src/plugin.ts index ece3fd09a2..3d845f4adf 100644 --- a/plugins/github-issues/src/plugin.ts +++ b/plugins/github-issues/src/plugin.ts @@ -15,15 +15,32 @@ */ import { createPlugin, + createApiFactory, createComponentExtension, createRoutableExtension, + configApiRef, + errorApiRef, + githubAuthApiRef, } from '@backstage/core-plugin-api'; +import { gitHubIssuesApi, gitHubIssuesApiRef } from './api'; import { rootRouteRef } from './routes'; /** @public */ export const gitHubIssuesPlugin = createPlugin({ id: 'github-issues', + apis: [ + createApiFactory({ + api: gitHubIssuesApiRef, + deps: { + configApi: configApiRef, + githubAuthApi: githubAuthApiRef, + errorApi: errorApiRef, + }, + factory: ({ configApi, githubAuthApi, errorApi }) => + gitHubIssuesApi(githubAuthApi, configApi, errorApi), + }), + ], routes: { root: rootRouteRef, }, From 19eb6499999e1129e943042effa38b1f844fe414 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:39:14 +0100 Subject: [PATCH 128/239] feat: hooks refactor to use new plugin api Signed-off-by: Kamil Wolny --- .../useGetIssuesBeRepoFromGitHub.test.tsx | 100 ----------- .../src/hooks/useGetIssuesByRepoFromGitHub.ts | 170 +++--------------- .../src/hooks/useOctokitGraphQL.ts | 47 ----- 3 files changed, 20 insertions(+), 297 deletions(-) delete mode 100644 plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx delete mode 100644 plugins/github-issues/src/hooks/useOctokitGraphQL.ts diff --git a/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx b/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx deleted file mode 100644 index 547e32db22..0000000000 --- a/plugins/github-issues/src/hooks/useGetIssuesBeRepoFromGitHub.test.tsx +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const mockGraphQLQuery = jest.fn(() => ({})); -jest.mock('./useOctokitGraphQL', () => ({ - useOctokitGraphQL: jest.fn(() => mockGraphQLQuery), -})); - -import React from 'react'; -import { render } from '@testing-library/react'; -import { useGetIssuesByRepoFromGitHub } from './useGetIssuesByRepoFromGitHub'; - -describe('useGetIssuesBeRepoFromGitHub', () => { - it('should call GitHub API with correct query with fragment for each repo', async () => { - const Helper = () => { - const getIssues = useGetIssuesByRepoFromGitHub(); - - getIssues(['mrwolny/yo-yo', 'mrwolny/yoyo', 'mrwolny/yo.yo'], 10); - - return
; - }; - - render(); - - expect(mockGraphQLQuery).toHaveBeenCalledTimes(1); - expect(mockGraphQLQuery).toHaveBeenCalledWith( - '\n' + - ' \n' + - ' fragment issues on Repository {\n' + - ' issues(\n' + - ' states: OPEN\n' + - ' first: 10\n' + - ' orderBy: { field: UPDATED_AT, direction: DESC }\n' + - ' ) {\n' + - ' totalCount\n' + - ' edges {\n' + - ' node {\n' + - ' assignees(first: 10) {\n' + - ' edges {\n' + - ' node {\n' + - ' avatarUrl\n' + - ' login\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' author {\n' + - ' login\n' + - ' avatarUrl\n' + - ' url\n' + - ' }\n' + - ' repository {\n' + - ' nameWithOwner\n' + - ' }\n' + - ' title\n' + - ' url\n' + - ' participants {\n' + - ' totalCount\n' + - ' }\n' + - ' updatedAt\n' + - ' createdAt\n' + - ' comments(last: 1) {\n' + - ' totalCount\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' }\n' + - ' \n' + - '\n' + - ' query {\n' + - ' \n' + - ' yoyo: repository(name: "yo-yo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' ,\n' + - ' yoyox: repository(name: "yoyo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' ,\n' + - ' yoyoxx: repository(name: "yo.yo", owner: "mrwolny") {\n' + - ' ...issues\n' + - ' }\n' + - ' \n' + - ' } \n' + - ' ', - ); - }); -}); diff --git a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts index 271cd6c741..29e89213dc 100644 --- a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts +++ b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts @@ -13,161 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import React from 'react'; -import { useOctokitGraphQL } from './useOctokitGraphQL'; +import { useApi } from '@backstage/core-plugin-api'; -type Assignee = { - avatarUrl: string; - login: string; -}; +import { useAsyncRetry } from 'react-use'; +import { gitHubIssuesApiRef } from '../api'; -export type EdgesWithNodes = { - edges: Array<{ - node: T; - }>; -}; - -export type Node = { - node: T; -}; - -type IssueAuthor = { - login: string; -}; - -export type Issue = { - assignees: EdgesWithNodes; - author: IssueAuthor; - repository: { - nameWithOwner: string; - }; - title: string; - url: string; - participants: { - totalCount: number; - }; - createdAt: string; - updatedAt: string; - comments: { - totalCount: number; - }; -}; - -export type RepoIssues = { - issues: { - totalCount: number; - } & EdgesWithNodes; -}; - -export type RepoIssuesQueryResults = Record; - -const createQuery = ( - repositories: Array<{ - safeName: string; - name: string; - owner: string; - }>, +export const useGetIssuesByRepoFromGitHub = ( + repos: Array, itemsPerRepo: number, -): string => { - const fragment = ` - fragment issues on Repository { - issues( - states: OPEN - first: ${itemsPerRepo} - orderBy: { field: UPDATED_AT, direction: DESC } - ) { - totalCount - edges { - node { - assignees(first: 10) { - edges { - node { - avatarUrl - login - } - } - } - author { - login - avatarUrl - url - } - repository { - nameWithOwner - } - title - url - participants { - totalCount - } - updatedAt - createdAt - comments(last: 1) { - totalCount - } - } - } - } - } - `; +) => { + const gitHubIssuesApi = useApi(gitHubIssuesApiRef); - const query = ` - ${fragment} - - query { - ${repositories.map( - ({ safeName, name, owner }) => ` - ${safeName}: repository(name: "${name}", owner: "${owner}") { - ...issues - } - `, - )} - } - `; - - return query; -}; - -export const useGetIssuesByRepoFromGitHub = () => { - const graphql = useOctokitGraphQL(); - - const fn = React.useRef( - async ( - repos: Array, - itemsPerRepo: number, - ): Promise> => { - const safeNames: Array = []; - - const repositories = repos.map(repo => { - const [owner, name] = repo.split('/'); - - const safeNameRegex = /-|\./gi; - let safeName = name.replace(safeNameRegex, ''); - - while (safeNames.includes(safeName)) { - safeName += 'x'; - } - - safeNames.push(safeName); - - return { - safeName, - name, - owner, - }; - }); - - const issuesByRepo: RepoIssuesQueryResults = await graphql( - createQuery(repositories, itemsPerRepo), + const { + value: issues, + loading: isLoading, + retry, + } = useAsyncRetry(async () => { + if (repos.length > 0) { + return await gitHubIssuesApi.fetchIssuesByRepoFromGitHub( + repos, + itemsPerRepo, ); + } - return repositories.reduce((acc, { safeName, name, owner }) => { - acc[`${owner}/${name}`] = issuesByRepo[safeName]; + return {}; + }, [repos]); - return acc; - }, {} as Record); - }, - ); - - return fn.current; + return { isLoading, gitHubIssuesByRepo: issues, retry }; }; diff --git a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts b/plugins/github-issues/src/hooks/useOctokitGraphQL.ts deleted file mode 100644 index 6b783efd6f..0000000000 --- a/plugins/github-issues/src/hooks/useOctokitGraphQL.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Octokit } from 'octokit'; -import { - useApi, - githubAuthApiRef, - configApiRef, -} from '@backstage/core-plugin-api'; -import { readGitHubIntegrationConfigs } from '@backstage/integration'; - -let octokit: Octokit; - -export const useOctokitGraphQL = () => { - const auth = useApi(githubAuthApiRef); - const config = useApi(configApiRef); - - const baseUrl = readGitHubIntegrationConfigs( - config.getOptionalConfigArray('integrations.github') ?? [], - )[0].apiBaseUrl; - - return (path: string, options?: any): Promise => - auth - .getAccessToken(['repo']) - .then((token: string) => { - if (!octokit) { - octokit = new Octokit({ auth: token, ...(baseUrl && { baseUrl }) }); - } - - return octokit; - }) - .then(octokitInstance => { - return octokitInstance.graphql(path, options); - }); -}; From f9f9aa64f8a394bd0fbe641596631ce81a846e43 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 9 Aug 2022 23:43:17 +0100 Subject: [PATCH 129/239] feat: use refactored hooks in components and component tests for basic rendering of the plugin Signed-off-by: Kamil Wolny --- .../GitHubIssues/GitHubIssues.test.tsx | 127 ++++++++++++++++++ .../components/GitHubIssues/GitHubIssues.tsx | 38 ++---- .../GitHubIssues/IssueCard/IssueCard.tsx | 2 +- .../GitHubIssues/IssuesList/IssuesList.tsx | 9 +- 4 files changed, 142 insertions(+), 34 deletions(-) create mode 100644 plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx new file mode 100644 index 0000000000..7b9d6d87b2 --- /dev/null +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -0,0 +1,127 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; +import { + EntityProvider, + catalogApiRef, + CatalogApi, +} from '@backstage/plugin-catalog-react'; + +import { generateTestIssue } from '../../utils'; +import { GitHubIssuesApi, gitHubIssuesApiRef } from '../../api'; + +import { GitHubIssues } from './GitHubIssues'; +import { Entity } from '@backstage/catalog-model'; + +jest + .useFakeTimers() + .setSystemTime(new Date('2020-04-20T08:15:47.614Z').getTime()); + +const entityComponent = { + metadata: { + annotations: { + 'github.com/project-slug': 'backstage/backstage', + }, + name: 'backstage', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', +} as unknown as Entity; + +const mockCatalogApi = { + getEntities: () => ({}), +} as CatalogApi; + +describe('GitHubIssues', () => { + it('should render correctly when there are no issues in GitHub', async () => { + const mockApi = { + fetchIssuesByRepoFromGitHub: async () => ({ + backstage: { + issues: { + totalCount: 0, + edges: [], + }, + }, + }), + } as GitHubIssuesApi; + + const apis = [ + [gitHubIssuesApiRef, mockApi], + [catalogApiRef, mockCatalogApi], + ] as const; + + const { getByTestId } = await renderInTestApp( + + + + + , + ); + + expect(getByTestId('no-issues-msg')).toHaveTextContent( + 'Hurray! No Issues 🚀', + ); + }); + + it('should render correctly', async () => { + const testIssue = generateTestIssue({ + createdAt: '2020-04-19T10:15:47.614Z', + updatedAt: '2020-04-20T00:15:47.614Z', + }); + + const mockApi = { + fetchIssuesByRepoFromGitHub: async () => ({ + backstage: { + issues: { + totalCount: 1, + edges: [testIssue], + }, + }, + }), + } as GitHubIssuesApi; + const apis = [ + [gitHubIssuesApiRef, mockApi], + [catalogApiRef, mockCatalogApi], + ] as const; + + const { getByText, getByTestId } = await renderInTestApp( + + + + + , + ); + + getByText('All repositories (1 Issue)'); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + testIssue.node.title, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + testIssue.node.repository.nameWithOwner, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + `Created at: 22 hours ago by ${testIssue.node.author.login}`, + ); + + expect(getByTestId(`issue-${testIssue.node.url}`)).toHaveTextContent( + `Last update at: 8 hours ago`, + ); + }); +}); diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx index 5380c8eb22..574c15d3b3 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.tsx @@ -20,12 +20,9 @@ import { InfoCard, Progress } from '@backstage/core-components'; import RefreshIcon from '@material-ui/icons/Refresh'; import { useEntityGitHubRepositories } from '../../hooks/useEntityGitHubRepositories'; -import { - RepoIssues, - useGetIssuesByRepoFromGitHub, -} from '../../hooks/useGetIssuesByRepoFromGitHub'; +import { useGetIssuesByRepoFromGitHub } from '../../hooks/useGetIssuesByRepoFromGitHub'; -import { IssueList } from './IssuesList'; +import { IssuesList } from './IssuesList'; import { NoRepositoriesInfo } from './NoRepositoriesInfo'; /** @@ -39,29 +36,12 @@ export type GitHubIssuesProps = { export const GitHubIssues = (props: GitHubIssuesProps) => { const { itemsPerPage = 10, itemsPerRepo = 40 } = props; - const [isLoading, setIsLoading] = React.useState(true); - - const [issuesByRepository, setIssuesByRepository] = - React.useState>(); - const { repositories } = useEntityGitHubRepositories(); - const getIssues = useGetIssuesByRepoFromGitHub(); - - const fetchGitHubIssues = React.useCallback(async () => { - setIsLoading(true); - const issuesByRepo = await getIssues(repositories, itemsPerRepo); - - setIssuesByRepository(issuesByRepo); - setIsLoading(false); - }, [itemsPerRepo, getIssues, repositories]); - - React.useEffect(() => { - if (repositories.length) { - fetchGitHubIssues(); - } else { - setIsLoading(false); - } - }, [repositories.length, fetchGitHubIssues]); + const { + isLoading, + gitHubIssuesByRepo: issuesByRepository, + retry, + } = useGetIssuesByRepoFromGitHub(repositories, itemsPerRepo); if (!repositories.length) { return ; @@ -72,7 +52,7 @@ export const GitHubIssues = (props: GitHubIssuesProps) => { title={ Open GitHub Issues - + @@ -80,7 +60,7 @@ export const GitHubIssues = (props: GitHubIssuesProps) => { > {isLoading && } - diff --git a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx index 95658fb343..ccf30a9a84 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssueCard/IssueCard.tsx @@ -59,7 +59,7 @@ export const IssueCard = (props: IssueCardProps) => { } = props; return ( - + diff --git a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx index f279294928..b46eab22b6 100644 --- a/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/IssuesList/IssuesList.tsx @@ -19,14 +19,14 @@ import { Box } from '@material-ui/core'; import { Pagination } from '@material-ui/lab'; import { IssueCard } from '../IssueCard'; -import { RepoIssues } from '../../../hooks/useGetIssuesByRepoFromGitHub'; +import { IssuesByRepo } from '../../../api'; import { RepositoryFilters } from './Filters'; export type PluginMode = 'page' | 'card'; export type IssueListProps = { itemsPerPage?: number; - issuesByRepository?: Record; + issuesByRepository?: IssuesByRepo; }; const getIssuesCountForFilterLabel = ( @@ -37,7 +37,7 @@ const getIssuesCountForFilterLabel = ( issuesAvailable < totalIssues ? '*' : '' }`; -export const IssueList = ({ +export const IssuesList = ({ itemsPerPage = 10, issuesByRepository, }: IssueListProps) => { @@ -140,6 +140,7 @@ export const IssueList = ({ index, ) => ( Hurray! No Issues 🚀 +

Hurray! No Issues 🚀

)} {issues.length / itemsPerPage > 1 ? ( Date: Tue, 9 Aug 2022 23:46:18 +0100 Subject: [PATCH 130/239] feat: add basic plugin render page with mocked data for standalon local developement Signed-off-by: Kamil Wolny --- plugins/github-issues/dev/index.tsx | 83 +++++++++++++++++++++++++++++ plugins/github-issues/src/index.ts | 2 + 2 files changed, 85 insertions(+) create mode 100644 plugins/github-issues/dev/index.tsx diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx new file mode 100644 index 0000000000..c214334780 --- /dev/null +++ b/plugins/github-issues/dev/index.tsx @@ -0,0 +1,83 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * 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 { + CatalogApi, + catalogApiRef, + EntityProvider, +} from '@backstage/plugin-catalog-react'; + +import { + gitHubIssuesPlugin, + GitHubIssuesPage, + GitHubIssuesApi, + gitHubIssuesApiRef, + IssuesByRepo, +} from '../src'; +import { generateTestIssue } from '../src/utils'; + +const response: IssuesByRepo = { + backstage: { + issues: { + totalCount: 464, + edges: Array.from(Array(40)).map(() => + generateTestIssue({ + repository: { nameWithOwner: 'backstage/backstage' }, + }), + ), + }, + }, +}; + +createDevApp() + .registerPlugin(gitHubIssuesPlugin) + .registerApi({ + api: gitHubIssuesApiRef, + deps: {}, + factory: () => + ({ + fetchIssuesByRepoFromGitHub: async () => response, + } as GitHubIssuesApi), + }) + .registerApi({ + api: catalogApiRef, + deps: {}, + factory: () => + ({ + getEntities: () => ({}), + } as CatalogApi), + }) + .addPage({ + title: 'Component Issues', + element: ( + + + + ), + }) + .render(); diff --git a/plugins/github-issues/src/index.ts b/plugins/github-issues/src/index.ts index 5f6c248db7..d69719d136 100644 --- a/plugins/github-issues/src/index.ts +++ b/plugins/github-issues/src/index.ts @@ -19,4 +19,6 @@ export { GitHubIssuesCard, } from './plugin'; +export * from './api'; + export type { GitHubIssuesProps } from './components/GitHubIssues'; From 347ea327c2f015593dc78da8290d9a07d460c33e Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 09:24:12 +0100 Subject: [PATCH 131/239] feat: changeset added Signed-off-by: Kamil Wolny --- .changeset/gold-dots-search.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/gold-dots-search.md diff --git a/.changeset/gold-dots-search.md b/.changeset/gold-dots-search.md new file mode 100644 index 0000000000..e2a679dff7 --- /dev/null +++ b/.changeset/gold-dots-search.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-github-issues': patch +--- + +Moved communication with GitHub graphql API to the dedicated plugin API. +Fixes issue when no GitHub Issues are rendered when partial failure is returned from GitHub API. From 9e64dd3032c35708adf5db8272716b274ba394ab Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 10:14:45 +0100 Subject: [PATCH 132/239] feat: fix plugin api report Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 74 +++++++++++++++++++ .../github-issues/src/api/gitHubIssuesApi.ts | 16 +++- 2 files changed, 87 insertions(+), 3 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index eb69fc8e8e..9852ec80c9 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -5,9 +5,49 @@ ```ts /// +import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { ConfigApi } from '@backstage/core-plugin-api'; +import { ErrorApi } from '@backstage/core-plugin-api'; +import { OAuthApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; +// @public (undocumented) +export type Assignee = { + avatarUrl: string; + login: string; +}; + +// @public (undocumented) +export type EdgesWithNodes = { + edges: Array<{ + node: T; + }>; +}; + +// @public (undocumented) +export type GitHubIssuesApi = ReturnType; + +// @public (undocumented) +export const gitHubIssuesApi: ( + githubAuthApi: OAuthApi, + configApi: ConfigApi, + errorApi: ErrorApi, +) => { + fetchIssuesByRepoFromGitHub: ( + repos: Array, + itemsPerRepo: number, + ) => Promise; +}; + +// @public (undocumented) +export const gitHubIssuesApiRef: ApiRef<{ + fetchIssuesByRepoFromGitHub: ( + repos: Array, + itemsPerRepo: number, + ) => Promise; +}>; + // @public (undocumented) export const GitHubIssuesCard: (props: GitHubIssuesProps) => JSX.Element; @@ -29,5 +69,39 @@ export type GitHubIssuesProps = { itemsPerRepo?: number; }; +// @public (undocumented) +export type Issue = { + assignees: EdgesWithNodes; + author: IssueAuthor; + repository: { + nameWithOwner: string; + }; + title: string; + url: string; + participants: { + totalCount: number; + }; + createdAt: string; + updatedAt: string; + comments: { + totalCount: number; + }; +}; + +// @public (undocumented) +export type IssueAuthor = { + login: string; +}; + +// @public (undocumented) +export type IssuesByRepo = Record; + +// @public (undocumented) +export type RepoIssues = { + issues: { + totalCount: number; + } & EdgesWithNodes; +}; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts index 06fdf3d452..2fea0dd759 100644 --- a/plugins/github-issues/src/api/gitHubIssuesApi.ts +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -23,21 +23,25 @@ import { import { readGitHubIntegrationConfigs } from '@backstage/integration'; import { ForwardedError } from '@backstage/errors'; -type Assignee = { +/** @public */ +export type Assignee = { avatarUrl: string; login: string; }; -type EdgesWithNodes = { +/** @public */ +export type EdgesWithNodes = { edges: Array<{ node: T; }>; }; -type IssueAuthor = { +/** @public */ +export type IssueAuthor = { login: string; }; +/** @public */ export type Issue = { assignees: EdgesWithNodes; author: IssueAuthor; @@ -56,19 +60,25 @@ export type Issue = { }; }; +/** @public */ export type RepoIssues = { issues: { totalCount: number; } & EdgesWithNodes; }; + +/** @public */ export type IssuesByRepo = Record; +/** @public */ export type GitHubIssuesApi = ReturnType; +/** @public */ export const gitHubIssuesApiRef = createApiRef({ id: 'plugin.githubissues.service', }); +/** @public */ export const gitHubIssuesApi = ( githubAuthApi: OAuthApi, configApi: ConfigApi, From eb23e4b36298d66db8ad3bcc076c887e0f099254 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 10:15:27 +0100 Subject: [PATCH 133/239] fix: fix the react-use import to mitigate ts error Signed-off-by: Kamil Wolny --- plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts index 29e89213dc..8d1d0c2056 100644 --- a/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts +++ b/plugins/github-issues/src/hooks/useGetIssuesByRepoFromGitHub.ts @@ -15,7 +15,7 @@ */ import { useApi } from '@backstage/core-plugin-api'; -import { useAsyncRetry } from 'react-use'; +import useAsyncRetry from 'react-use/lib/useAsyncRetry'; import { gitHubIssuesApiRef } from '../api'; export const useGetIssuesByRepoFromGitHub = ( From 07096fa8432088ba9109d97e6abe7c55052ee519 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Wed, 10 Aug 2022 17:14:21 +0100 Subject: [PATCH 134/239] feat: make plugin api internal Signed-off-by: Kamil Wolny --- plugins/github-issues/api-report.md | 74 ------------------- .../github-issues/src/api/gitHubIssuesApi.ts | 18 ++--- 2 files changed, 9 insertions(+), 83 deletions(-) diff --git a/plugins/github-issues/api-report.md b/plugins/github-issues/api-report.md index 9852ec80c9..eb69fc8e8e 100644 --- a/plugins/github-issues/api-report.md +++ b/plugins/github-issues/api-report.md @@ -5,49 +5,9 @@ ```ts /// -import { ApiRef } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { ConfigApi } from '@backstage/core-plugin-api'; -import { ErrorApi } from '@backstage/core-plugin-api'; -import { OAuthApi } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; -// @public (undocumented) -export type Assignee = { - avatarUrl: string; - login: string; -}; - -// @public (undocumented) -export type EdgesWithNodes = { - edges: Array<{ - node: T; - }>; -}; - -// @public (undocumented) -export type GitHubIssuesApi = ReturnType; - -// @public (undocumented) -export const gitHubIssuesApi: ( - githubAuthApi: OAuthApi, - configApi: ConfigApi, - errorApi: ErrorApi, -) => { - fetchIssuesByRepoFromGitHub: ( - repos: Array, - itemsPerRepo: number, - ) => Promise; -}; - -// @public (undocumented) -export const gitHubIssuesApiRef: ApiRef<{ - fetchIssuesByRepoFromGitHub: ( - repos: Array, - itemsPerRepo: number, - ) => Promise; -}>; - // @public (undocumented) export const GitHubIssuesCard: (props: GitHubIssuesProps) => JSX.Element; @@ -69,39 +29,5 @@ export type GitHubIssuesProps = { itemsPerRepo?: number; }; -// @public (undocumented) -export type Issue = { - assignees: EdgesWithNodes; - author: IssueAuthor; - repository: { - nameWithOwner: string; - }; - title: string; - url: string; - participants: { - totalCount: number; - }; - createdAt: string; - updatedAt: string; - comments: { - totalCount: number; - }; -}; - -// @public (undocumented) -export type IssueAuthor = { - login: string; -}; - -// @public (undocumented) -export type IssuesByRepo = Record; - -// @public (undocumented) -export type RepoIssues = { - issues: { - totalCount: number; - } & EdgesWithNodes; -}; - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/github-issues/src/api/gitHubIssuesApi.ts b/plugins/github-issues/src/api/gitHubIssuesApi.ts index 2fea0dd759..816345940c 100644 --- a/plugins/github-issues/src/api/gitHubIssuesApi.ts +++ b/plugins/github-issues/src/api/gitHubIssuesApi.ts @@ -23,25 +23,25 @@ import { import { readGitHubIntegrationConfigs } from '@backstage/integration'; import { ForwardedError } from '@backstage/errors'; -/** @public */ +/** @internal */ export type Assignee = { avatarUrl: string; login: string; }; -/** @public */ +/** @internal */ export type EdgesWithNodes = { edges: Array<{ node: T; }>; }; -/** @public */ +/** @internal */ export type IssueAuthor = { login: string; }; -/** @public */ +/** @internal */ export type Issue = { assignees: EdgesWithNodes; author: IssueAuthor; @@ -60,25 +60,25 @@ export type Issue = { }; }; -/** @public */ +/** @internal */ export type RepoIssues = { issues: { totalCount: number; } & EdgesWithNodes; }; -/** @public */ +/** @internal */ export type IssuesByRepo = Record; -/** @public */ +/** @internal */ export type GitHubIssuesApi = ReturnType; -/** @public */ +/** @internal */ export const gitHubIssuesApiRef = createApiRef({ id: 'plugin.githubissues.service', }); -/** @public */ +/** @internal */ export const gitHubIssuesApi = ( githubAuthApi: OAuthApi, configApi: ConfigApi, From f9a16edaf3e136246bbdafa613417759aa8d4e8a Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 12 Aug 2022 13:16:37 +0100 Subject: [PATCH 135/239] feat: remove traces of plugin api + moved faker to dev deps Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 3 ++- plugins/github-issues/src/index.ts | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 98434ce748..21693740c7 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,7 +29,6 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", - "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -45,6 +44,8 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", + "@faker-js/faker": "^7.4.0", + "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-issues/src/index.ts b/plugins/github-issues/src/index.ts index d69719d136..5f6c248db7 100644 --- a/plugins/github-issues/src/index.ts +++ b/plugins/github-issues/src/index.ts @@ -19,6 +19,4 @@ export { GitHubIssuesCard, } from './plugin'; -export * from './api'; - export type { GitHubIssuesProps } from './components/GitHubIssues'; From 5e615bf99cd7cc7660515717a021536830a6123e Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Fri, 12 Aug 2022 14:26:22 +0100 Subject: [PATCH 136/239] feat: fix local dev environment Signed-off-by: Kamil Wolny --- plugins/github-issues/dev/index.tsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx index c214334780..57fd1a86e0 100644 --- a/plugins/github-issues/dev/index.tsx +++ b/plugins/github-issues/dev/index.tsx @@ -21,13 +21,9 @@ import { EntityProvider, } from '@backstage/plugin-catalog-react'; -import { - gitHubIssuesPlugin, - GitHubIssuesPage, - GitHubIssuesApi, - gitHubIssuesApiRef, - IssuesByRepo, -} from '../src'; +import { gitHubIssuesPlugin, GitHubIssuesPage } from '../src'; +import { GitHubIssuesApi, gitHubIssuesApiRef, IssuesByRepo } from '../src/api'; + import { generateTestIssue } from '../src/utils'; const response: IssuesByRepo = { From 824f8dcce071abd224b8178465af1a1ec88cf24a Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 09:15:06 +0100 Subject: [PATCH 137/239] feat: move faker to regular deps of github issues plugin Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 21693740c7..d7accb907e 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,6 +29,7 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", + "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -44,7 +45,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", From f6fb510ec4ab9162bd9b0d6de5a07493da358e7d Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 12:09:37 +0100 Subject: [PATCH 138/239] feat: faker as dev dependency + use static json as test data for the local dev Signed-off-by: Kamil Wolny --- .../__fixtures__/component-issues-data.json | 1209 +++++++++++++++++ plugins/github-issues/dev/index.tsx | 19 +- plugins/github-issues/package.json | 2 +- 3 files changed, 1213 insertions(+), 17 deletions(-) create mode 100644 plugins/github-issues/dev/__fixtures__/component-issues-data.json diff --git a/plugins/github-issues/dev/__fixtures__/component-issues-data.json b/plugins/github-issues/dev/__fixtures__/component-issues-data.json new file mode 100644 index 0000000000..8192f38838 --- /dev/null +++ b/plugins/github-issues/dev/__fixtures__/component-issues-data.json @@ -0,0 +1,1209 @@ +{ + "backstage": { + "issues": { + "totalCount": 464, + "edges": [ + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1112.jpg", + "login": "worthless-horse" + } + } + ] + }, + "author": { + "login": "next-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "quasi labore qui", + "url": "http://flowery-muscatel.net", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-05-02T09:46:35.885Z", + "createdAt": "2022-06-03T07:11:22.320Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1061.jpg", + "login": "colorful-bird" + } + } + ] + }, + "author": { + "login": "loud-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "debitis alias voluptatem", + "url": "https://complete-grief.biz", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-05-04T19:44:01.090Z", + "createdAt": "2022-02-21T08:07:57.434Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1222.jpg", + "login": "sharp-cetacean" + } + } + ] + }, + "author": { + "login": "growing-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "non accusamus occaecati", + "url": "http://medium-choosing.com", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2021-10-28T00:36:58.871Z", + "createdAt": "2021-11-08T02:21:55.269Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/513.jpg", + "login": "crafty-crocodilia" + } + } + ] + }, + "author": { + "login": "wooden-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "tenetur distinctio sint", + "url": "http://opulent-prejudice.biz", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-08-10T19:22:08.823Z", + "createdAt": "2022-02-21T06:24:45.090Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/785.jpg", + "login": "genuine-cow" + } + } + ] + }, + "author": { + "login": "likely-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eveniet sed nesciunt", + "url": "http://flickering-atmosphere.com", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-02-26T15:54:42.831Z", + "createdAt": "2022-02-13T14:52:35.327Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/503.jpg", + "login": "imaginary-lion" + } + } + ] + }, + "author": { + "login": "lame-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "saepe sequi dolore", + "url": "https://short-term-broccoli.org", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2021-10-11T01:31:28.508Z", + "createdAt": "2022-04-11T12:41:01.234Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/590.jpg", + "login": "funny-snake" + } + } + ] + }, + "author": { + "login": "hollow-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "enim quia magni", + "url": "https://scornful-servant.name", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-03-05T19:19:15.147Z", + "createdAt": "2022-03-13T09:25:35.802Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/588.jpg", + "login": "zigzag-bear" + } + } + ] + }, + "author": { + "login": "growling-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "omnis ut nostrum", + "url": "https://worthy-minority.net", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-08-18T19:21:40.603Z", + "createdAt": "2022-06-04T16:06:26.277Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1134.jpg", + "login": "composed-lion" + } + } + ] + }, + "author": { + "login": "overjoyed-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sit est corrupti", + "url": "http://vital-armpit.com", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-07-26T22:13:34.123Z", + "createdAt": "2022-02-28T17:59:42.677Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/802.jpg", + "login": "sarcastic-bear" + } + } + ] + }, + "author": { + "login": "utilized-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "illo perferendis suscipit", + "url": "http://snappy-skywalk.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2021-10-02T21:22:35.070Z", + "createdAt": "2021-10-25T11:36:35.561Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/232.jpg", + "login": "pristine-cow" + } + } + ] + }, + "author": { + "login": "adorable-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "assumenda nostrum aut", + "url": "http://loud-legend.info", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-06-16T22:45:23.107Z", + "createdAt": "2022-05-23T01:10:35.755Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/652.jpg", + "login": "wrong-insect" + } + } + ] + }, + "author": { + "login": "grizzled-cow" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "qui magnam dolorem", + "url": "http://exhausted-horn.org", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-12-18T18:46:10.828Z", + "createdAt": "2022-03-27T06:42:04.192Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/838.jpg", + "login": "humming-cow" + } + } + ] + }, + "author": { + "login": "profuse-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "nostrum numquam porro", + "url": "https://unusual-reaction.org", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-11T15:14:57.433Z", + "createdAt": "2022-05-06T10:48:16.946Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/573.jpg", + "login": "prime-cow" + } + } + ] + }, + "author": { + "login": "forthright-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "in inventore pariatur", + "url": "https://cheery-accord.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-06-30T16:22:46.819Z", + "createdAt": "2022-05-11T12:37:36.848Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1143.jpg", + "login": "limp-bear" + } + } + ] + }, + "author": { + "login": "faraway-rabbit" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "et dolores eaque", + "url": "http://overjoyed-former.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-04-19T15:14:58.698Z", + "createdAt": "2022-04-28T23:15:49.918Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/347.jpg", + "login": "same-insect" + } + } + ] + }, + "author": { + "login": "smoggy-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "vel error numquam", + "url": "http://submissive-ladder.org", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2021-12-19T23:43:44.987Z", + "createdAt": "2022-01-04T11:52:01.233Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/951.jpg", + "login": "round-dog" + } + } + ] + }, + "author": { + "login": "humming-cetacean" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "doloribus asperiores occaecati", + "url": "http://webbed-underclothes.biz", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-04-19T07:07:21.270Z", + "createdAt": "2022-04-20T10:41:00.681Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1123.jpg", + "login": "tepid-cat" + } + } + ] + }, + "author": { + "login": "colossal-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "reiciendis illum quos", + "url": "http://rusty-repeat.com", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-08-04T06:35:11.880Z", + "createdAt": "2022-07-16T15:11:56.116Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1068.jpg", + "login": "grown-cat" + } + } + ] + }, + "author": { + "login": "superficial-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "tempore et sequi", + "url": "https://defenseless-signal.info", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-03-12T10:17:20.598Z", + "createdAt": "2022-05-31T20:12:43.316Z", + "comments": { + "totalCount": 7 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/468.jpg", + "login": "blissful-horse" + } + } + ] + }, + "author": { + "login": "positive-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "aut minima odit", + "url": "https://well-groomed-octave.biz", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2021-08-20T21:00:05.294Z", + "createdAt": "2022-04-11T23:51:45.727Z", + "comments": { + "totalCount": 9 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1044.jpg", + "login": "crowded-bird" + } + } + ] + }, + "author": { + "login": "unlined-horse" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "aut sunt quisquam", + "url": "https://realistic-student.com", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2021-11-07T11:13:39.158Z", + "createdAt": "2022-01-30T19:35:35.546Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/691.jpg", + "login": "loathsome-insect" + } + } + ] + }, + "author": { + "login": "kooky-crocodilia" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "reprehenderit non eos", + "url": "https://alert-testimony.net", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-04-24T16:34:36.616Z", + "createdAt": "2021-11-01T21:35:35.900Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/691.jpg", + "login": "dear-insect" + } + } + ] + }, + "author": { + "login": "wavy-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "quis in earum", + "url": "https://radiant-posterior.net", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-09-26T08:50:55.755Z", + "createdAt": "2022-04-10T00:03:40.290Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/952.jpg", + "login": "prestigious-cat" + } + } + ] + }, + "author": { + "login": "quick-cetacean" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed ut exercitationem", + "url": "https://portly-clasp.name", + "participants": { + "totalCount": 3 + }, + "updatedAt": "2022-04-06T03:04:16.077Z", + "createdAt": "2022-01-14T10:22:19.619Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/768.jpg", + "login": "fatal-cetacean" + } + } + ] + }, + "author": { + "login": "pricey-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "voluptas error sunt", + "url": "http://second-outcome.info", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2021-08-19T20:35:40.281Z", + "createdAt": "2021-10-02T12:24:16.983Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/283.jpg", + "login": "double-fish" + } + } + ] + }, + "author": { + "login": "liquid-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed reprehenderit sunt", + "url": "https://playful-fibrosis.com", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-24T19:35:19.804Z", + "createdAt": "2022-04-04T20:15:10.303Z", + "comments": { + "totalCount": 3 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/38.jpg", + "login": "separate-cat" + } + } + ] + }, + "author": { + "login": "jolly-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "accusantium cupiditate et", + "url": "http://lined-flood.biz", + "participants": { + "totalCount": 9 + }, + "updatedAt": "2022-01-23T15:45:04.503Z", + "createdAt": "2021-11-29T07:20:44.372Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/410.jpg", + "login": "yummy-dog" + } + } + ] + }, + "author": { + "login": "pesky-bear" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eum molestiae accusantium", + "url": "http://vast-grub.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-05-24T12:02:33.225Z", + "createdAt": "2022-02-26T14:40:38.285Z", + "comments": { + "totalCount": 5 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/186.jpg", + "login": "unique-cow" + } + } + ] + }, + "author": { + "login": "remorseful-horse" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "ea eligendi dolore", + "url": "http://mammoth-wick.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2022-07-02T12:23:03.701Z", + "createdAt": "2022-06-30T03:56:08.273Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/605.jpg", + "login": "soft-insect" + } + } + ] + }, + "author": { + "login": "vengeful-fish" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "eum in esse", + "url": "https://immaculate-liability.info", + "participants": { + "totalCount": 4 + }, + "updatedAt": "2022-06-14T02:40:34.008Z", + "createdAt": "2022-04-07T14:46:48.442Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/916.jpg", + "login": "wretched-cow" + } + } + ] + }, + "author": { + "login": "popular-insect" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "est voluptatem molestiae", + "url": "http://venerated-chocolate.biz", + "participants": { + "totalCount": 1 + }, + "updatedAt": "2021-10-08T18:02:11.052Z", + "createdAt": "2021-09-28T09:48:13.138Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/218.jpg", + "login": "flawless-dog" + } + } + ] + }, + "author": { + "login": "made-up-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sunt atque corrupti", + "url": "https://secondary-flight.biz", + "participants": { + "totalCount": 7 + }, + "updatedAt": "2021-12-31T07:36:01.831Z", + "createdAt": "2022-03-29T20:52:30.083Z", + "comments": { + "totalCount": 6 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1099.jpg", + "login": "nervous-dog" + } + } + ] + }, + "author": { + "login": "inconsequential-cat" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "vel quo nam", + "url": "https://third-week.info", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-03-06T07:42:44.049Z", + "createdAt": "2021-08-16T14:34:09.635Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/688.jpg", + "login": "dark-dog" + } + } + ] + }, + "author": { + "login": "modest-rabbit" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "rerum non nam", + "url": "http://complete-registry.net", + "participants": { + "totalCount": 5 + }, + "updatedAt": "2022-05-04T02:09:20.355Z", + "createdAt": "2022-06-08T12:23:09.380Z", + "comments": { + "totalCount": 1 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/489.jpg", + "login": "blond-insect" + } + } + ] + }, + "author": { + "login": "terrible-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "accusamus quis non", + "url": "https://rosy-childhood.com", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2021-12-14T12:46:15.628Z", + "createdAt": "2022-02-19T00:45:57.573Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1094.jpg", + "login": "creative-bird" + } + } + ] + }, + "author": { + "login": "grotesque-dog" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "consectetur id et", + "url": "http://some-innocent.info", + "participants": { + "totalCount": 8 + }, + "updatedAt": "2021-11-27T11:12:58.067Z", + "createdAt": "2021-12-10T00:15:14.640Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/583.jpg", + "login": "drab-horse" + } + } + ] + }, + "author": { + "login": "acceptable-snake" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "ipsum beatae voluptas", + "url": "https://faithful-down.info", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2022-08-13T17:03:33.381Z", + "createdAt": "2021-10-05T11:26:39.392Z", + "comments": { + "totalCount": 8 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/578.jpg", + "login": "esteemed-bird" + } + } + ] + }, + "author": { + "login": "cultured-fish" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "odio perferendis maxime", + "url": "https://minty-tactics.info", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2022-01-25T02:14:59.148Z", + "createdAt": "2021-09-23T04:02:15.225Z", + "comments": { + "totalCount": 4 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/917.jpg", + "login": "quiet-bear" + } + } + ] + }, + "author": { + "login": "ill-fated-lion" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "sed enim laudantium", + "url": "https://welcome-provider.org", + "participants": { + "totalCount": 6 + }, + "updatedAt": "2022-02-24T23:08:19.320Z", + "createdAt": "2021-09-13T03:10:39.303Z", + "comments": { + "totalCount": 2 + } + } + }, + { + "node": { + "assignees": { + "edges": [ + { + "node": { + "avatarUrl": "https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/973.jpg", + "login": "portly-crocodilia" + } + } + ] + }, + "author": { + "login": "antique-bird" + }, + "repository": { + "nameWithOwner": "backstage/backstage" + }, + "title": "enim accusamus consequuntur", + "url": "http://shady-impudence.net", + "participants": { + "totalCount": 2 + }, + "updatedAt": "2021-12-04T05:35:50.780Z", + "createdAt": "2021-12-21T11:44:33.940Z", + "comments": { + "totalCount": 9 + } + } + } + ] + } + } +} diff --git a/plugins/github-issues/dev/index.tsx b/plugins/github-issues/dev/index.tsx index 57fd1a86e0..a5f20ab9b9 100644 --- a/plugins/github-issues/dev/index.tsx +++ b/plugins/github-issues/dev/index.tsx @@ -22,22 +22,9 @@ import { } from '@backstage/plugin-catalog-react'; import { gitHubIssuesPlugin, GitHubIssuesPage } from '../src'; -import { GitHubIssuesApi, gitHubIssuesApiRef, IssuesByRepo } from '../src/api'; +import { GitHubIssuesApi, gitHubIssuesApiRef } from '../src/api'; -import { generateTestIssue } from '../src/utils'; - -const response: IssuesByRepo = { - backstage: { - issues: { - totalCount: 464, - edges: Array.from(Array(40)).map(() => - generateTestIssue({ - repository: { nameWithOwner: 'backstage/backstage' }, - }), - ), - }, - }, -}; +import testData from './__fixtures__/component-issues-data.json'; createDevApp() .registerPlugin(gitHubIssuesPlugin) @@ -46,7 +33,7 @@ createDevApp() deps: {}, factory: () => ({ - fetchIssuesByRepoFromGitHub: async () => response, + fetchIssuesByRepoFromGitHub: async () => testData, } as GitHubIssuesApi), }) .registerApi({ diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index d7accb907e..21693740c7 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -29,7 +29,6 @@ "@backstage/integration": "^1.3.0-next.0", "@backstage/plugin-catalog-react": "^1.1.3-next.2", "@backstage/theme": "^0.2.15", - "@faker-js/faker": "^7.4.0", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.61", @@ -45,6 +44,7 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", + "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", From 87649a06bfc38d39646117f4e5f80cd3ddf9d724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 15 Aug 2022 13:14:03 +0200 Subject: [PATCH 139/239] Add note about fetchApi not being suitable for sign-in page use MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/sweet-apricots-kneel.md | 5 +++++ packages/core-plugin-api/src/apis/definitions/FetchApi.ts | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/sweet-apricots-kneel.md diff --git a/.changeset/sweet-apricots-kneel.md b/.changeset/sweet-apricots-kneel.md new file mode 100644 index 0000000000..1a114ec4ae --- /dev/null +++ b/.changeset/sweet-apricots-kneel.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-plugin-api': patch +--- + +Add a note that the `fetchApi` utility should not be used on sign-in page implementations and similar. diff --git a/packages/core-plugin-api/src/apis/definitions/FetchApi.ts b/packages/core-plugin-api/src/apis/definitions/FetchApi.ts index b1a4dbbd0b..aba0e53bb7 100644 --- a/packages/core-plugin-api/src/apis/definitions/FetchApi.ts +++ b/packages/core-plugin-api/src/apis/definitions/FetchApi.ts @@ -37,6 +37,13 @@ export type FetchApi = { * This is a wrapper for the fetch API, that has additional behaviors such as * the ability to automatically inject auth information where necessary. * + * Note that the default behavior of this API (unless overridden by your org), + * is to require that the user is already signed in so that it has auth + * information to inject. Therefore, using the default implementation of this + * utility API e.g. on the `SignInPage` or similar, would cause issues. In + * special circumstances like those, you can use the regular system `fetch` + * instead. + * * @public */ export const fetchApiRef: ApiRef = createApiRef({ From ebde1274c8272b228c60132aebc62cf9c639d010 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Mon, 15 Aug 2022 12:35:49 +0100 Subject: [PATCH 140/239] feat: moved generating test issues code to the test file Signed-off-by: Kamil Wolny --- .../GitHubIssues/GitHubIssues.test.tsx | 42 +++++++++++++-- .../src/utils/generateTestIssue.ts | 53 ------------------- plugins/github-issues/src/utils/index.ts | 16 ------ 3 files changed, 39 insertions(+), 72 deletions(-) delete mode 100644 plugins/github-issues/src/utils/generateTestIssue.ts delete mode 100644 plugins/github-issues/src/utils/index.ts diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx index 7b9d6d87b2..c8486d3d70 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -20,12 +20,48 @@ import { catalogApiRef, CatalogApi, } from '@backstage/plugin-catalog-react'; +import { faker } from '@faker-js/faker'; +import { Entity } from '@backstage/catalog-model'; -import { generateTestIssue } from '../../utils'; -import { GitHubIssuesApi, gitHubIssuesApiRef } from '../../api'; +import { GitHubIssuesApi, gitHubIssuesApiRef, Issue } from '../../api'; import { GitHubIssues } from './GitHubIssues'; -import { Entity } from '@backstage/catalog-model'; + +const generateTestIssue = ( + overwrites: Partial = {}, +): { node: Issue } => ({ + node: { + ...{ + assignees: { + edges: [ + { + node: { + avatarUrl: faker.internet.avatar(), + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + }, + ], + }, + author: { + login: `${faker.word.adjective()}-${faker.animal.type()}`, + }, + repository: { + nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + }, + title: faker.lorem.words(3), + url: faker.internet.url(), + participants: { + totalCount: +faker.random.numeric(), + }, + updatedAt: faker.date.past().toISOString(), + createdAt: faker.date.past().toISOString(), + comments: { + totalCount: +faker.random.numeric(), + }, + }, + ...overwrites, + }, +}); jest .useFakeTimers() diff --git a/plugins/github-issues/src/utils/generateTestIssue.ts b/plugins/github-issues/src/utils/generateTestIssue.ts deleted file mode 100644 index a07c8dfc57..0000000000 --- a/plugins/github-issues/src/utils/generateTestIssue.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { faker } from '@faker-js/faker'; -import { Issue } from '../api'; - -export const generateTestIssue = ( - overwrites: Partial = {}, -): { node: Issue } => ({ - node: { - ...{ - assignees: { - edges: [ - { - node: { - avatarUrl: faker.internet.avatar(), - login: `${faker.word.adjective()}-${faker.animal.type()}`, - }, - }, - ], - }, - author: { - login: `${faker.word.adjective()}-${faker.animal.type()}`, - }, - repository: { - nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, - }, - title: faker.lorem.words(3), - url: faker.internet.url(), - participants: { - totalCount: +faker.random.numeric(), - }, - updatedAt: faker.date.past().toISOString(), - createdAt: faker.date.past().toISOString(), - comments: { - totalCount: +faker.random.numeric(), - }, - }, - ...overwrites, - }, -}); diff --git a/plugins/github-issues/src/utils/index.ts b/plugins/github-issues/src/utils/index.ts deleted file mode 100644 index 16740dac94..0000000000 --- a/plugins/github-issues/src/utils/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './generateTestIssue'; From c508f92c9fbbc82badc44f5ddd8f99c9d57fbe92 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 12:46:56 +0000 Subject: [PATCH 141/239] fix(deps): update dependency eslint-plugin-jest to v26.8.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8d31be28f..ad1d57c260 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12937,9 +12937,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.2: - version "26.8.2" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.2.tgz#42a1248a5ade2bc589eb0f9c4e0608dd89b18cf3" - integrity sha512-67oh0FKaku9y48OpLzL3uK9ckrgLb83Sp5gxxTbtOGDw9lq6D8jw/Psj/9CipkbK406I2M7mvx1q+pv/MdbvxA== + version "26.8.3" + resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.8.3.tgz#f5d9bb162636491c8f6f0cd2743fe67c86569338" + integrity sha512-2roWu1MkEiihQ/qEszPPoaoqVI1x2D8Jtadk5AmoXTdEeNVPMu01Dtz7jIuTOAmdW3L+tSkPZOtEtQroYJDt0A== dependencies: "@typescript-eslint/utils" "^5.10.0" From 19066cd1ced6a96a6da19a3b2c2822af18308d70 Mon Sep 17 00:00:00 2001 From: Tim Harris Date: Mon, 15 Aug 2022 08:58:11 -0400 Subject: [PATCH 142/239] Update GitHubEntityProvider.ts Signed-off-by: Tim Harris --- .../src/providers/GitHubEntityProvider.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts index e47ed62890..eb5b9d67e2 100644 --- a/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GitHubEntityProvider.ts @@ -187,9 +187,8 @@ export class GitHubEntityProvider implements EntityProvider { const matchingRepositories = repositories.filter(r => { return ( !r.isArchived && - (repositoryFilter - ? repositoryFilter?.test(r.name) - : true && r.defaultBranchRef?.name) + (!repositoryFilter || repositoryFilter.test(r.name)) && + r.defaultBranchRef?.name ); }); return matchingRepositories; From 007d27a0fbe0871c87f2fba3cce7a89ce9d3e344 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 13:35:29 +0000 Subject: [PATCH 143/239] fix(deps): update dependency @octokit/auth-app to v4.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad1d57c260..0b0468830d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5449,15 +5449,15 @@ "@octokit/webhooks" "^10.0.0" "@octokit/auth-app@^4.0.0": - version "4.0.4" - resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.4.tgz#e774da352e7c9d0648d5d0fdf0fb75cd6a16c2af" - integrity sha512-s3MK7M9e8TD/ih8lCBTrdZ74XPHMtHV7aycCKNBRQ2QJPdMwqx0mVbmLOIuW4dCwMX7K243+JAvf52tryFHRdQ== + version "4.0.5" + resolved "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.5.tgz#0e52752c37340ae8686617b7ce188e4cae6d7ba1" + integrity sha512-fCbi4L/egsP3p4p1SelOFORM/m/5KxROhHdcIW5Lb17DDdW61fGT8y3wGpfiSeYNuulwF5QIfzJ7tdgtHNAymA== dependencies: "@octokit/auth-oauth-app" "^5.0.0" "@octokit/auth-oauth-user" "^2.0.0" "@octokit/request" "^6.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" "@types/lru-cache" "^5.1.0" deprecation "^2.3.1" lru-cache "^6.0.0" @@ -5669,6 +5669,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== +"@octokit/openapi-types@^13.0.0": + version "13.0.1" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" + integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== + "@octokit/openapi-types@^7.3.2": version "7.3.2" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" @@ -5832,6 +5837,13 @@ dependencies: "@octokit/openapi-types" "^12.7.0" +"@octokit/types@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" + integrity sha512-8uSDc66p6+wADn6lh6lA7I3ZTIapn7F/dfpsiDztVjEr6kkyKR3qPqa4lgEX92O/8iJoDeGcscKRXGAjCSR/zg== + dependencies: + "@octokit/openapi-types" "^13.0.0" + "@octokit/webhooks-methods@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" From 077f461a4ae7fb4bacee73bb159a92655d7b600b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 13:36:23 +0000 Subject: [PATCH 144/239] fix(deps): update dependency @octokit/graphql to v5.0.1 Signed-off-by: Renovate Bot --- yarn.lock | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad1d57c260..2d48cd611a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5597,12 +5597,12 @@ universal-user-agent "^6.0.0" "@octokit/graphql@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz#2cc6eb3bf8e0278656df1a7d0ca0d7591599e3b3" - integrity sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ== + version "5.0.1" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz#a06982514ad131fb6fbb9da968653b2233fade9b" + integrity sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA== dependencies: "@octokit/request" "^6.0.0" - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" universal-user-agent "^6.0.0" "@octokit/oauth-app@^4.0.4", "@octokit/oauth-app@^4.0.6": @@ -5669,6 +5669,11 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== +"@octokit/openapi-types@^13.0.0": + version "13.0.1" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" + integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== + "@octokit/openapi-types@^7.3.2": version "7.3.2" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" @@ -5832,6 +5837,13 @@ dependencies: "@octokit/openapi-types" "^12.7.0" +"@octokit/types@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" + integrity sha512-8uSDc66p6+wADn6lh6lA7I3ZTIapn7F/dfpsiDztVjEr6kkyKR3qPqa4lgEX92O/8iJoDeGcscKRXGAjCSR/zg== + dependencies: + "@octokit/openapi-types" "^13.0.0" + "@octokit/webhooks-methods@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" From 99a2642b09518fbf298b34eba549a98bb713ec9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:17:05 +0000 Subject: [PATCH 145/239] fix(deps): update dependency @octokit/request to v6.2.1 Signed-off-by: Renovate Bot --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef7edbda64..a5f9d27a1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5771,13 +5771,13 @@ universal-user-agent "^6.0.0" "@octokit/request@^6.0.0": - version "6.2.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz#9c25606df84e6f2ccbcc2c58e1d35438e20b688b" - integrity sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q== + version "6.2.1" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: "@octokit/endpoint" "^7.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.16.1" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" From 9cad1b7104249194cc9ad6b2fb628b605fc46edc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 14:18:16 +0000 Subject: [PATCH 146/239] fix(deps): update dependency @octokit/rest to v19.0.4 Signed-off-by: Renovate Bot --- yarn.lock | 233 +++++++++++++++++------------------------------------- 1 file changed, 74 insertions(+), 159 deletions(-) diff --git a/yarn.lock b/yarn.lock index ef7edbda64..872925cd83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5517,11 +5517,11 @@ "@octokit/types" "^6.0.0" "@octokit/auth-token@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz#6f22c5fc56445c496628488ba6810131558fa4a9" - integrity sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ== + version "3.0.1" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz#88bc2baf5d706cb258474e722a720a8365dff2ec" + integrity sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" "@octokit/auth-unauthenticated@^3.0.0": version "3.0.0" @@ -5544,15 +5544,15 @@ universal-user-agent "^6.0.0" "@octokit/core@^4.0.0": - version "4.0.2" - resolved "https://registry.npmjs.org/@octokit/core/-/core-4.0.2.tgz#4eaf9c5fd39913b541c5e31a2b8fdc3cf50480bc" - integrity sha512-vgVtE02EF9kXFsjmFoKFCwH1wDspPfDgopRbAlavkGuBJPWF+u5n0xgwP4obmdKNvLM+bB7MI7W31c2E13zgDQ== + version "4.0.5" + resolved "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz#589e68c0a35d2afdcd41dafceab072c2fbc6ab5f" + integrity sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA== dependencies: "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^4.5.8" + "@octokit/graphql" "^5.0.0" "@octokit/request" "^6.0.0" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" @@ -5570,23 +5570,23 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.3" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" - integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== - dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^3.0.0" - universal-user-agent "^5.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz#be758a1236d68d6bbb505e686dd50881c327a519" - integrity sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ== + version "6.0.12" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: "@octokit/types" "^6.0.3" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" +"@octokit/endpoint@^7.0.0": + version "7.0.1" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.1.tgz#cb0d03e62e8762f3c80e52b025179de81899a823" + integrity sha512-/wTXAJwt0HzJ2IeE4kQXO+mBScfzyCkI0hMtkIaqyXd9zg76OpOfNQfHL9FlaxAV2RsNiOXZibVWloy8EexENg== + dependencies: + "@octokit/types" "^7.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + "@octokit/graphql@^4.5.8": version "4.8.0" resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" @@ -5659,25 +5659,25 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + "@octokit/openapi-types@^12.4.0": version "12.4.0" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" integrity sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA== -"@octokit/openapi-types@^12.7.0": - version "12.8.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" - integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== - "@octokit/openapi-types@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" integrity sha512-40U39YoFBhJhmkAg6gbJnh9U8aueJwCuiTW0mXY2pNl9/+E7dUxXiMPOrIUGT12XqLinroaXYA3FUiw3BMeNfg== "@octokit/openapi-types@^7.3.2": - version "7.3.2" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.3.2.tgz#065ce49b338043ec7f741316ce06afd4d459d944" - integrity sha512-oJhK/yhl9Gt430OrZOzAl2wJqR0No9445vmZ9Ey8GjUZUpwuu/vmEFP0TDhDXdpGDoxD6/EIFHJEcY8nHXpDTA== + version "7.4.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-7.4.0.tgz#07631899dc32b72a532178e27235c541f3c359f1" + integrity sha512-V2qNML1knHjrjTJcIIvhYZSTkvtSAoQpNEX8y0ykTJI8vOQPqIh0y6Jf9EU6c/y+v0c9+LeC1acwLQh1xo96MA== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -5698,6 +5698,13 @@ dependencies: "@octokit/types" "^6.39.0" +"@octokit/plugin-paginate-rest@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.0.0.tgz#859a168262b657d46a8f1243ded66c87cee964b9" + integrity sha512-g4GJMt/7VDmIMMdQenN6bmsmRoZca1c7IxOdF2yMiMwQYrE2bmmypGQeQSD5rsaffsFMCUS7Br4pMVZamareYA== + dependencies: + "@octokit/types" "^7.0.0" + "@octokit/plugin-request-log@^1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" @@ -5717,11 +5724,11 @@ deprecation "^2.3.1" "@octokit/plugin-rest-endpoint-methods@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.0.0.tgz#e4a55d83ec5a00e6b4d7a780f4ec9009095bff6f" - integrity sha512-9LkEvZB3WDuayEI381O5A/eM3QQioBZrwymQp5CUCNz9UMP/yZAIqBjcPhVJJFA3IRkKO1EARo98OePt9i0rkQ== + version "6.3.0" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.3.0.tgz#81549334ce020169b84bd4a7fa2577e9d725d829" + integrity sha512-qEu2wn6E7hqluZwIEUnDxWROvKjov3zMIAi4H4d7cmKWNMeBprEXZzJe8pE5eStUYC1ysGhD0B7L6IeG1Rfb+g== dependencies: - "@octokit/types" "^6.39.0" + "@octokit/types" "^7.0.0" deprecation "^2.3.1" "@octokit/plugin-retry@^3.0.9": @@ -5750,11 +5757,11 @@ once "^1.4.0" "@octokit/request-error@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz#f527d178f115a3b62d76ce4804dd5bdbc0270a81" - integrity sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w== + version "3.0.1" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz#3fd747913c06ab2195e52004a521889dadb4b295" + integrity sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" deprecation "^2.0.0" once "^1.4.0" @@ -5771,13 +5778,13 @@ universal-user-agent "^6.0.0" "@octokit/request@^6.0.0": - version "6.2.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz#9c25606df84e6f2ccbcc2c58e1d35438e20b688b" - integrity sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q== + version "6.2.1" + resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: "@octokit/endpoint" "^7.0.0" "@octokit/request-error" "^3.0.0" - "@octokit/types" "^6.16.1" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" @@ -5793,29 +5800,36 @@ "@octokit/plugin-rest-endpoint-methods" "5.3.1" "@octokit/rest@^19.0.3": - version "19.0.3" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz#b9a4e8dc8d53e030d611c053153ee6045f080f02" - integrity sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ== + version "19.0.4" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz#fd8bed1cefffa486e9ae46a9dc608ce81bcfcbdd" + integrity sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA== dependencies: "@octokit/core" "^4.0.0" - "@octokit/plugin-paginate-rest" "^3.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^6.0.0" -"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": +"@octokit/types@^5.0.1": version "5.5.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== dependencies: "@types/node" ">= 8" -"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.0.3", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.1", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": +"@octokit/types@^6.0.0", "@octokit/types@^6.0.1", "@octokit/types@^6.10.0", "@octokit/types@^6.12.2", "@octokit/types@^6.14.2", "@octokit/types@^6.16.2", "@octokit/types@^6.8.2": version "6.16.4" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.16.4.tgz#d24f5e1bacd2fe96d61854b5bda0e88cf8288dfe" integrity sha512-UxhWCdSzloULfUyamfOg4dJxV9B+XjgrIZscI0VCbp4eNrjmorGEw+4qdwcpTsu6DIrm9tQsFQS2pK5QkqQ04A== dependencies: "@octokit/openapi-types" "^7.3.2" +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0": + version "6.41.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + "@octokit/types@^6.27.1": version "6.34.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" @@ -5830,13 +5844,6 @@ dependencies: "@octokit/openapi-types" "^12.4.0" -"@octokit/types@^6.39.0": - version "6.39.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz#46ce28ca59a3d4bac0e487015949008302e78eee" - integrity sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ== - dependencies: - "@octokit/openapi-types" "^12.7.0" - "@octokit/types@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" @@ -7363,7 +7370,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "17.0.25" resolved "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== @@ -7373,6 +7380,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== +"@types/node@>= 8": + version "18.7.4" + resolved "https://registry.npmjs.org/@types/node/-/node-18.7.4.tgz#95baa50846ae112a7376869d49fec23b2506c69d" + integrity sha512-RzRcw8c0B8LzryWOR4Wj7YOTFXvdYKwvrb6xQQyuDfnlTxwYXGCV5RZ/TEbq5L5kn+w3rliHAUyRcG1RtbmTFg== + "@types/node@^10.1.0", "@types/node@^10.12.0": version "10.17.60" resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -11216,17 +11228,6 @@ cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -13369,19 +13370,6 @@ execa@5.1.1, execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" @@ -14365,13 +14353,6 @@ get-stdin@^8.0.0: resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.0.0, get-stream@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" @@ -16085,13 +16066,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" - integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== - dependencies: - isobject "^4.0.0" - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -16187,11 +16161,6 @@ is-stream-ended@^0.1.4: resolved "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz#f50224e95e06bce0e356d440a4827cd35b267eda" integrity sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw== -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -16341,11 +16310,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isobject@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" - integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== - isomorphic-dompurify@^0.13.0: version "0.13.0" resolved "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-0.13.0.tgz#a4dde357e8531018a85ebb2dd56c4794b6739ba3" @@ -18256,11 +18220,6 @@ lz-string@^1.4.4: resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= -macos-release@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" - integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== - magic-string@^0.25.7: version "0.25.7" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" @@ -19587,11 +19546,6 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.2: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - nise@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz#ac4237e0d785ecfcb83e20f389185975da5c31f3" @@ -19934,13 +19888,6 @@ npm-registry-fetch@^9.0.0: minizlib "^2.0.0" npm-package-arg "^8.0.0" -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -20310,14 +20257,6 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-name@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -20353,7 +20292,7 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-is-promise@^3.0.0: version "3.0.0" @@ -20906,11 +20845,6 @@ path-is-inside@1.0.2, path-is-inside@^1.0.2: resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -23583,7 +23517,7 @@ semver-store@^0.3.0: resolved "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz#ce602ff07df37080ec9f4fb40b29576547befbe9" integrity sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg== -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -24648,11 +24582,6 @@ strip-bom@^4.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -25378,7 +25307,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" @@ -25911,13 +25840,6 @@ universal-github-app-jwt@^1.0.1: "@types/jsonwebtoken" "^8.3.3" jsonwebtoken "^8.5.1" -universal-user-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" - integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== - dependencies: - os-name "^3.1.0" - universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -26405,7 +26327,7 @@ webcrypto-core@^1.7.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^5.0.0: version "5.0.0" @@ -26550,7 +26472,7 @@ whatwg-mimetype@^3.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -26632,13 +26554,6 @@ window-size@^0.2.0: resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= -windows-release@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz#8122dad5afc303d833422380680a79cdfa91785f" - integrity sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA== - dependencies: - execa "^1.0.0" - winston-transport@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" @@ -26703,7 +26618,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" From db4abcf329e64b9e6fcacc716a1ec934e43a19fd Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 12 Aug 2022 10:54:01 -0400 Subject: [PATCH 147/239] Update cli-build-system.md Fix some wording/typos. Signed-off-by: Feanil Patel --- docs/local-dev/cli-build-system.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/local-dev/cli-build-system.md b/docs/local-dev/cli-build-system.md index 9245cea7ff..cc364d0ca5 100644 --- a/docs/local-dev/cli-build-system.md +++ b/docs/local-dev/cli-build-system.md @@ -38,7 +38,7 @@ In addition, there are a number of hard and soft requirements: - Scale - It should scale to hundreds of large packages without excessive wait times - Reloads - The development flow should support quick on-save hot reloads -- Simple - Usage should simple and configuration should be kept minimal +- Simple - Usage should be simple and configuration should be kept minimal - Universal - Development towards both web applications, isomorphic packages, and Node.js - Modern - The build system targets modern environments @@ -95,7 +95,7 @@ These are the available roles that are currently supported by the Backstage buil | Role | Description | Example | | ---------------------- | -------------------------------------------- | -------------------------------------------- | -| frontend | Bundled frontend application | `package/app` | +| frontend | Bundled frontend application | `packages/app` | | backend | Bundled backend application | `packages/backend` | | cli | Package used as a command-line interface | `@backstage/cli`, `@backstage/codemods` | | web-library | Web library for use by other packages | `@backstage/plugin-catalog-react` | From 6b6f4bc15ab9d452738da76139195658fee6f031 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 15:03:33 +0000 Subject: [PATCH 148/239] fix(deps): update dependency octokit to v2.0.7 Signed-off-by: Renovate Bot --- yarn.lock | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/yarn.lock b/yarn.lock index 872925cd83..e968410c10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5664,11 +5664,6 @@ resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== -"@octokit/openapi-types@^12.4.0": - version "12.4.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.4.0.tgz#fd8bf5db72bd566c5ba2cb76754512a9ebe66e71" - integrity sha512-Npcb7Pv30b33U04jvcD7l75yLU0mxhuX2Xqrn51YyZ5WTkF04bpbxLaZ6GcaTqu03WZQHoO/Gbfp95NGRueDUA== - "@octokit/openapi-types@^13.0.0": version "13.0.1" resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.0.1.tgz#f655810f0dc0547b771526fea171acffbc7bd4a8" @@ -5837,13 +5832,6 @@ dependencies: "@octokit/openapi-types" "^11.2.0" -"@octokit/types@^6.35.0": - version "6.37.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.37.0.tgz#32eb78edb34cf5cea4ba5753ab8db75b776d617a" - integrity sha512-BXWQhFKRkjX4dVW5L2oYa0hzWOAqsEsujXsQLSdepPoDZfYdubrD1KDGpyNldGXtR8QM/WezDcxcIN1UKJMGPA== - dependencies: - "@octokit/openapi-types" "^12.4.0" - "@octokit/types@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/@octokit/types/-/types-7.0.0.tgz#3ecee92edff53a93ecd75d6b9d6620574d2048ca" @@ -20104,18 +20092,18 @@ octokit-plugin-create-pull-request@^3.10.0: "@octokit/types" "^6.8.2" octokit@^2.0.0, octokit@^2.0.4: - version "2.0.5" - resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.5.tgz#4091813187f363eff787b89b66aafc273ba3318d" - integrity sha512-Znv9zxhKxl9C11QsAK/RRoIutAsHawVrYplZNf7IqpB+mi3Zu0zBfZ5sFUqMRwemucff+MDHh1RtlpF5946UDA== + version "2.0.7" + resolved "https://registry.npmjs.org/octokit/-/octokit-2.0.7.tgz#7e6658ddcca234d8cc6ca9344403b516d3b2d136" + integrity sha512-Rf+pY3fCphmS4jjLqQ+D0xS1U+Ry/pAZHLJNvsQksuj4aopl7qFLlV4Id2KIlaUpKZrUCPzOkLiZOaoEb47RZQ== dependencies: "@octokit/app" "^13.0.5" "@octokit/core" "^4.0.4" "@octokit/oauth-app" "^4.0.6" - "@octokit/plugin-paginate-rest" "^3.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" "@octokit/plugin-rest-endpoint-methods" "^6.0.0" "@octokit/plugin-retry" "^3.0.9" "@octokit/plugin-throttling" "^4.0.1" - "@octokit/types" "^6.35.0" + "@octokit/types" "^7.0.0" oidc-token-hash@^5.0.1: version "5.0.1" From b421826f495342caac24e06967e981adb28ca631 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 17:22:41 +0000 Subject: [PATCH 149/239] fix(deps): update dependency @google-cloud/storage to v6.4.1 Signed-off-by: Renovate Bot --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 872925cd83..29d5847872 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2768,9 +2768,9 @@ integrity sha512-91ArYvRgXWb73YvEOBMmOcJc0bDRs5yiVHnqkwoG0f3nm7nZuipllz6e7BvFESBvjkDTBC0zMD8QxedUwNLc1A== "@google-cloud/storage@^6.0.0": - version "6.4.0" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.0.tgz#36413d549859ea325b71328e61dff7a669bc1f2e" - integrity sha512-ogNKY8Mv8JmNvSlJv12E6lB2DtcG7pVEI8k9vmH879ja5qqK8WPw0ys5/FG2Dh5AOwxrbDKbnzMVChNQuXtGpg== + version "6.4.1" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.4.1.tgz#83334150d4e224cb48691de4d7f9c38e143a0970" + integrity sha512-lAddmRJ8tvxPykUqJfONBQA5XGwGk0vut1POXublc64+nCdB5aQMxwuBMf7J1zubx19QGpYPQwW6wR7YTWrvLw== dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^3.0.0" @@ -2787,7 +2787,6 @@ mime "^3.0.0" mime-types "^2.0.8" p-limit "^3.0.1" - pumpify "^2.0.0" retry-request "^5.0.0" teeny-request "^8.0.0" uuid "^8.0.0" @@ -12380,7 +12379,7 @@ duplexer@^0.1.2: resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^4.0.0, duplexify@^4.1.1: +duplexify@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== @@ -21832,15 +21831,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" - integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== - dependencies: - duplexify "^4.1.1" - inherits "^2.0.3" - pump "^3.0.0" - punycode@1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" From ad9ff7194bdbe3c74a48c6b6bf75723df5ced853 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Mon, 15 Aug 2022 10:38:37 -0700 Subject: [PATCH 150/239] fix: update docs for changes to synthetics annotation Signed-off-by: Isaiah Thiessen --- plugins/dynatrace/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/dynatrace/README.md b/plugins/dynatrace/README.md index 2f5d30b88a..8ed72ebb5d 100644 --- a/plugins/dynatrace/README.md +++ b/plugins/dynatrace/README.md @@ -62,11 +62,11 @@ To show recent results from a Synthetic Monitor, add the following annotation to # [...] metadata: annotations: - dynatrace.com/dynatrace-synthetics-ids: SYNTHETIC_ID, SYNTHETIC_ID_2, ... + dynatrace.com/synthetics-ids: SYNTHETIC_ID, SYNTHETIC_ID_2, ... # [...] ``` -The annotation can also contain a comma separated list of Synthetic Ids to surface details for multiple monitors! +The annotation can also contain a comma or space separated list of Synthetic Ids to surface details for multiple monitors! The `SYNTHETIC_ID` can be found in Dynatrace by browsing to the Synthetic monitor. It will be located in the browser address bar in the resource path - `https://example.dynatrace.com/ui/http-monitor/HTTP_CHECK-1234` for an Http check, or `https://example.dynatrace.com/ui/browser-monitor/SYNTHETIC_TEST-1234` for a browser clickpath. From d299da4cb0e54e2371e9a0b86e555845228ef598 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 18:10:32 +0000 Subject: [PATCH 151/239] fix(deps): update typescript-eslint monorepo to v5.33.1 Signed-off-by: Renovate Bot --- yarn.lock | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29d5847872..79f9e3406e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7997,13 +7997,13 @@ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw== "@typescript-eslint/eslint-plugin@^5.9.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec" - integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg== + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714" + integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/type-utils" "5.33.0" - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/type-utils" "5.33.1" + "@typescript-eslint/utils" "5.33.1" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -8024,13 +8024,13 @@ eslint-utils "^3.0.0" "@typescript-eslint/parser@^5.9.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383" - integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w== + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3" + integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA== dependencies: - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/typescript-estree" "5.33.1" debug "^4.3.4" "@typescript-eslint/scope-manager@5.20.0": @@ -8041,13 +8041,13 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/scope-manager@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d" - integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw== +"@typescript-eslint/scope-manager@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493" + integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/visitor-keys" "5.33.1" "@typescript-eslint/scope-manager@5.9.0": version "5.9.0" @@ -8057,12 +8057,12 @@ "@typescript-eslint/types" "5.9.0" "@typescript-eslint/visitor-keys" "5.9.0" -"@typescript-eslint/type-utils@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338" - integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA== +"@typescript-eslint/type-utils@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367" + integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g== dependencies: - "@typescript-eslint/utils" "5.33.0" + "@typescript-eslint/utils" "5.33.1" debug "^4.3.4" tsutils "^3.21.0" @@ -8071,10 +8071,10 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/types@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b" - integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw== +"@typescript-eslint/types@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7" + integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ== "@typescript-eslint/types@5.9.0": version "5.9.0" @@ -8094,13 +8094,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf" - integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ== +"@typescript-eslint/typescript-estree@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34" + integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA== dependencies: - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/visitor-keys" "5.33.0" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/visitor-keys" "5.33.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -8120,15 +8120,15 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038" - integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw== +"@typescript-eslint/utils@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575" + integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.33.0" - "@typescript-eslint/types" "5.33.0" - "@typescript-eslint/typescript-estree" "5.33.0" + "@typescript-eslint/scope-manager" "5.33.1" + "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/typescript-estree" "5.33.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -8152,12 +8152,12 @@ "@typescript-eslint/types" "5.20.0" eslint-visitor-keys "^3.0.0" -"@typescript-eslint/visitor-keys@5.33.0": - version "5.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484" - integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw== +"@typescript-eslint/visitor-keys@5.33.1": + version "5.33.1" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b" + integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg== dependencies: - "@typescript-eslint/types" "5.33.0" + "@typescript-eslint/types" "5.33.1" eslint-visitor-keys "^3.3.0" "@typescript-eslint/visitor-keys@5.9.0": From 7f781e4f421610024e8f5e0484af9904866f51d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 18:11:28 +0000 Subject: [PATCH 152/239] fix(deps): update dependency already to v3.4.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29d5847872..64d4028421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8549,9 +8549,9 @@ alphanum-sort@^1.0.2: integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= already@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/already/-/already-3.3.0.tgz#a5e5becd167cf537b45f8f1c23d331488ed77003" - integrity sha512-ADGyKddqEp8t/Wu4ITc0y9GGsgZDgyMeMk38AM5qrPK7VEjNAYD87QGTGGgNhSQahmjw76V3mi+3fJRwPJXcTw== + version "3.4.0" + resolved "https://registry.npmjs.org/already/-/already-3.4.0.tgz#d32aab4be75ae2352a16f26d688393fc79675c18" + integrity sha512-l2neHYJryLga4BiKsVdO3c3E5dCl1OgkKS4pr3nDyxQRABywIyI3MuNaUypj2tLQKy7PFJ5CUrQ7Waa+eVn4Fg== anafanafo@2.0.0: version "2.0.0" From ab6650ede9ef7438af09e99209a37e7eb19900d8 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 15 Aug 2022 15:27:21 -0500 Subject: [PATCH 153/239] Added edit button to UserProfileCard Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/lucky-points-wash.md | 5 ++ .../UserProfileCard/UserProfileCard.test.tsx | 83 +++++++++++++++++++ .../User/UserProfileCard/UserProfileCard.tsx | 27 +++++- 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 .changeset/lucky-points-wash.md diff --git a/.changeset/lucky-points-wash.md b/.changeset/lucky-points-wash.md new file mode 100644 index 0000000000..961c354574 --- /dev/null +++ b/.changeset/lucky-points-wash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +Added an edit button to the `UserProfileCard` that is enabled when the `backstage.io/edit-url` is present, this matches how the `GroupProfileCard` works diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx index 68e9715b06..acbd13703b 100644 --- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx +++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx @@ -73,3 +73,86 @@ describe('UserSummary Test', () => { expect(rendered.getByText('Super awesome human')).toBeInTheDocument(); }); }); + +describe('Edit Button', () => { + it('Should default to disabled', async () => { + const userEntity: UserEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'calum.leavy', + description: 'Super awesome human', + }, + spec: { + profile: { + displayName: 'Calum Leavy', + email: 'calum-leavy@example.com', + }, + memberOf: ['ExampleGroup'], + }, + relations: [ + { + type: 'memberOf', + targetRef: 'group:default/examplegroup', + }, + ], + }; + + const rendered = await renderWithEffects( + wrapInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ), + ); + + expect(rendered.getByRole('button')).toBeDisabled(); + }); + + it('Should be enabled when edit URL annotation is present', async () => { + const annotations: Record = { + 'backstage.io/edit-url': 'https://example.com/user.yaml', + }; + const userEntity: UserEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'calum.leavy', + description: 'Super awesome human', + annotations, + }, + spec: { + profile: { + displayName: 'Calum Leavy', + email: 'calum-leavy@example.com', + }, + memberOf: ['ExampleGroup'], + }, + relations: [ + { + type: 'memberOf', + targetRef: 'group:default/examplegroup', + }, + ], + }; + + const rendered = await renderWithEffects( + wrapInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ), + ); + expect(rendered.getByRole('button')).toBeEnabled(); + }); +}); diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx index 148fb03d19..39565d99d5 100644 --- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx +++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx @@ -14,7 +14,11 @@ * limitations under the License. */ -import { RELATION_MEMBER_OF, UserEntity } from '@backstage/catalog-model'; +import { + RELATION_MEMBER_OF, + UserEntity, + ANNOTATION_EDIT_URL, +} from '@backstage/catalog-model'; import { EntityRefLinks, getEntityRelations, @@ -23,12 +27,14 @@ import { import { Box, Grid, + IconButton, List, ListItem, ListItemIcon, ListItemText, Tooltip, } from '@material-ui/core'; +import EditIcon from '@material-ui/icons/Edit'; import EmailIcon from '@material-ui/icons/Email'; import GroupIcon from '@material-ui/icons/Group'; import PersonIcon from '@material-ui/icons/Person'; @@ -56,6 +62,9 @@ export const UserProfileCard = (props: { variant?: InfoCardVariants }) => { return User not found; } + const entityMetadataEditUrl = + user.metadata.annotations?.[ANNOTATION_EDIT_URL]; + const { metadata: { name: metaName, description }, spec: { profile }, @@ -66,11 +75,27 @@ export const UserProfileCard = (props: { variant?: InfoCardVariants }) => { kind: 'Group', }); + const infoCardAction = entityMetadataEditUrl ? ( + + + + ) : ( + + + + ); + return ( } subheader={description} variant={props.variant} + action={infoCardAction} > From 6226d5b5c2807d5f2fd119ed8e73f49d8a8599ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 21:24:22 +0000 Subject: [PATCH 154/239] chore(deps): update dependency @types/inquirer to v8.2.3 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81a5a1a1f5..31b83f2190 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7113,9 +7113,9 @@ integrity sha512-K3e+NZlpCKd6Bd/EIdqjFJRFHbrq5TzPPLwREk5Iv/YoIjQrs6ljdAUCo+Lb2xFlGNOjGSE0dqsVD19cZL137w== "@types/inquirer@^8.1.3": - version "8.2.2" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.2.tgz#7ec5f166026b55b10df011521c8a63920cb84a7a" - integrity sha512-HXoFOl+KS4yvmUjisi83VpuSBOeeXIzdJfoT/v2pUruqybpHy0Dz1DyXy3E2jNH0cSVKJZV92VOnFBwJR6k83A== + version "8.2.3" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.3.tgz#985515d04879a0d0c1f5f49ec375767410ba9dab" + integrity sha512-ZlBqD+8WIVNy3KIVkl+Qne6bGLW2erwN0GJXY9Ri/9EMbyupee3xw3H0Mmv5kJoLyNpfd/oHlwKxO0DUDH7yWA== dependencies: "@types/through" "*" From 3c848c05f44abf1f9ffb09346ed5f6a632b08619 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 21:27:14 +0000 Subject: [PATCH 155/239] chore(deps): update dependency @types/node to v16.11.49 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81a5a1a1f5..826650d923 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7405,9 +7405,9 @@ integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^16.0.0", "@types/node@^16.11.26", "@types/node@^16.9.2": - version "16.11.48" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.48.tgz#22d386f32b24fb644940b606ed393b56be7d8686" - integrity sha512-Z9r9UWlNeNkYnxybm+1fc0jxUNjZqRekTAr1pG0qdXe9apT9yCiqk1c4VvKQJsFpnchU4+fLl25MabSLA2wxIw== + version "16.11.49" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.49.tgz#560b1ea774b61e19a89c3fc72d2dcaa3863f38b2" + integrity sha512-Abq9fBviLV93OiXMu+f6r0elxCzRwc0RC5f99cU892uBITL44pTvgvEqlRlPRi8EGcO1z7Cp8A4d0s/p3J/+Nw== "@types/normalize-package-data@^2.4.0": version "2.4.1" From 09b789c80bf9598156fa0874ea54d870d205b39f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 22:05:18 +0000 Subject: [PATCH 156/239] fix(deps): update dependency aws-sdk to v2.1195.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 31b83f2190..8dbf96768a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9129,9 +9129,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1194.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1194.0.tgz#6a820684fa3f58ea40caf90d302414a23df7c308" - integrity sha512-wbgib7r7sHPkZIhqSMduueKYqe+DrFyxsKnUKHj6hdNcRKqEeqzvKp4olWmFs/3z3qU8+g78kBXr9rujvko1ug== + version "2.1195.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1195.0.tgz#f6f091426934ba1a4f8d5138f568e840f7bdb51a" + integrity sha512-xU7177JhKM+4SsLnoA6/r3qGzSXmbLgw/YC1KRHvZyJCbuTY+vdAGLaldbtNXjjwmE3a6EeoCREANv8GY62VdQ== dependencies: buffer "4.9.2" events "1.1.1" From 0f2534537f7ee86ec37613aa6aee4605938baa5e Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 09:42:30 +0200 Subject: [PATCH 157/239] chore: cleanup lint errors Signed-off-by: blam --- plugins/sonarqube-backend/package.json | 2 ++ plugins/sonarqube-backend/src/service/router.ts | 2 +- .../src/service/sonarqubeInfoProvider.test.ts | 4 ++-- plugins/sonarqube/src/components/useProjectKey.test.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index e4d87147b3..c9b281621c 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -25,6 +25,7 @@ "dependencies": { "@backstage/backend-common": "^0.15.0-next.1", "@backstage/config": "^1.0.1", + "@backstage/errors": "^1.1.0", "@types/express": "*", "express": "^4.18.1", "express-promise-router": "^4.1.0", @@ -34,6 +35,7 @@ }, "devDependencies": { "@backstage/cli": "^0.18.1-next.0", + "@backstage/test-utils": "^1.1.3-next.0", "@types/supertest": "^2.0.12", "msw": "^0.44.2", "supertest": "^6.2.4" diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 45cdcb64c3..f244ae5ce3 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -19,7 +19,7 @@ import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; import { SonarqubeInfoProvider } from './sonarqubeInfoProvider'; -import { InputError } from '../../../../packages/errors'; +import { InputError } from '@backstage/errors'; /** * Dependencies needed by the router diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index e617324555..64313e8fd2 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import { ConfigReader } from '../../../../packages/config'; +import { ConfigReader } from '@backstage/config'; import { DefaultSonarqubeInfoProvider, SonarqubeConfig, } from './sonarqubeInfoProvider'; import { setupServer } from 'msw/node'; -import { setupRequestMockHandlers } from '../../../../packages/test-utils'; +import { setupRequestMockHandlers } from '@backstage/test-utils'; import { rest, RestRequest } from 'msw'; describe('SonarqubeConfig', () => { diff --git a/plugins/sonarqube/src/components/useProjectKey.test.ts b/plugins/sonarqube/src/components/useProjectKey.test.ts index be83c236df..921e9455c0 100644 --- a/plugins/sonarqube/src/components/useProjectKey.test.ts +++ b/plugins/sonarqube/src/components/useProjectKey.test.ts @@ -19,7 +19,7 @@ import { SONARQUBE_PROJECT_KEY_ANNOTATION, useProjectInfo, } from './useProjectKey'; -import { Entity } from '../../../../packages/catalog-model'; +import { Entity } from '@backstage/catalog-model'; const createDummyEntity = (sonarqubeAnnotationValue: string): Entity => { return { From 474370b668282e696c821c7383bf37b312a403f0 Mon Sep 17 00:00:00 2001 From: Kamil Wolny Date: Tue, 16 Aug 2022 09:36:35 +0100 Subject: [PATCH 158/239] feat: removed faker-js Signed-off-by: Kamil Wolny --- plugins/github-issues/package.json | 1 - .../GitHubIssues/GitHubIssues.test.tsx | 28 +++++++++---------- yarn.lock | 5 ---- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 21693740c7..d31bb52603 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -44,7 +44,6 @@ "@backstage/core-app-api": "^1.0.5-next.0", "@backstage/dev-utils": "^1.0.5-next.1", "@backstage/test-utils": "^1.1.3-next.0", - "@faker-js/faker": "^7.4.0", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx index c8486d3d70..33eec79359 100644 --- a/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx +++ b/plugins/github-issues/src/components/GitHubIssues/GitHubIssues.test.tsx @@ -20,43 +20,41 @@ import { catalogApiRef, CatalogApi, } from '@backstage/plugin-catalog-react'; -import { faker } from '@faker-js/faker'; import { Entity } from '@backstage/catalog-model'; import { GitHubIssuesApi, gitHubIssuesApiRef, Issue } from '../../api'; import { GitHubIssues } from './GitHubIssues'; -const generateTestIssue = ( - overwrites: Partial = {}, -): { node: Issue } => ({ +const getTestIssue = (overwrites: Partial = {}): { node: Issue } => ({ node: { ...{ assignees: { edges: [ { node: { - avatarUrl: faker.internet.avatar(), - login: `${faker.word.adjective()}-${faker.animal.type()}`, + avatarUrl: + 'https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/1112.jpg', + login: 'worthless-horse', }, }, ], }, author: { - login: `${faker.word.adjective()}-${faker.animal.type()}`, + login: 'next-dog', }, repository: { - nameWithOwner: `${faker.animal.type()}/${faker.animal.type()}`, + nameWithOwner: 'backstage/backstage', }, - title: faker.lorem.words(3), - url: faker.internet.url(), + title: 'quasi labore qui', + url: 'http://flowery-muscatel.net', participants: { - totalCount: +faker.random.numeric(), + totalCount: 3, }, - updatedAt: faker.date.past().toISOString(), - createdAt: faker.date.past().toISOString(), + updatedAt: '2022-05-02T09:46:35.885Z', + createdAt: '2022-06-03T07:11:22.320Z', comments: { - totalCount: +faker.random.numeric(), + totalCount: 6, }, }, ...overwrites, @@ -114,7 +112,7 @@ describe('GitHubIssues', () => { }); it('should render correctly', async () => { - const testIssue = generateTestIssue({ + const testIssue = getTestIssue({ createdAt: '2020-04-19T10:15:47.614Z', updatedAt: '2020-04-20T00:15:47.614Z', }); diff --git a/yarn.lock b/yarn.lock index 4bebec76e1..4894a4b674 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2673,11 +2673,6 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@faker-js/faker@^7.4.0": - version "7.4.0" - resolved "https://registry.npmjs.org/@faker-js/faker/-/faker-7.4.0.tgz#cac720d860a89d487b47e55e66a4fd114f1d3fe5" - integrity sha512-xDd3Tvkt2jgkx1LkuwwxpNBy/Oe+LkZBTwkgEFTiWpVSZgQ5sc/LenbHKRHbFl0dq/KFeeq/szyyPtpJRKY0fg== - "@fmvilas/pseudo-yaml-ast@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@fmvilas/pseudo-yaml-ast/-/pseudo-yaml-ast-0.3.1.tgz#66c5df2c2d76ba8571dc5bd98fda4d7dce6121de" From a88aa8ff7137c4685772e61377ae3ec9095fbfd9 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 13:44:53 +0200 Subject: [PATCH 159/239] chore: fix behaviour on windows for absolute paths Signed-off-by: blam --- .../src/scaffolder/actions/builtin/fetch/template.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts index 5e5b7052ed..bbba4f2fb3 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts @@ -301,12 +301,13 @@ export function createFetchTemplateAction(options: { } function containsSkippedContent(localOutputPath: string): boolean { - // if the path is absolute means that the root directory has been skipped // if the path is empty means that there is a file skipped in the root + // if the path is starts with a separator it means that the root directory has been skipped // if the path includes // means that there is a subdirectory skipped + // All paths returned are considered with / seperator because of globby returning the linux seperator for all os'. return ( localOutputPath === '' || - path.isAbsolute(localOutputPath) || - localOutputPath.includes(`${path.sep}${path.sep}`) + localOutputPath.startsWith('/') || + localOutputPath.includes('//') ); } From b10b6c4aa4c9d71a379a552c07bdba6065cec1ad Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 13:45:45 +0200 Subject: [PATCH 160/239] chore: add changeset Signed-off-by: blam --- .changeset/khaki-fans-brake.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/khaki-fans-brake.md diff --git a/.changeset/khaki-fans-brake.md b/.changeset/khaki-fans-brake.md new file mode 100644 index 0000000000..46d3cd518b --- /dev/null +++ b/.changeset/khaki-fans-brake.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fix issue with absolute paths on windows hosts From 560fd1251a04329c0979ae63e9ea93b514b2e26a Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Tue, 16 Aug 2022 13:51:46 +0200 Subject: [PATCH 161/239] Update plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Ben Lambert --- .../src/scaffolder/actions/builtin/fetch/template.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts index bbba4f2fb3..18737a83f5 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts @@ -302,7 +302,7 @@ export function createFetchTemplateAction(options: { function containsSkippedContent(localOutputPath: string): boolean { // if the path is empty means that there is a file skipped in the root - // if the path is starts with a separator it means that the root directory has been skipped + // if the path starts with a separator it means that the root directory has been skipped // if the path includes // means that there is a subdirectory skipped // All paths returned are considered with / seperator because of globby returning the linux seperator for all os'. return ( From 387d5e9a721fc0645dfb42bd4cffe04444e060ec Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 13:51:55 +0200 Subject: [PATCH 162/239] chore: updating changeset messagingL: Signed-off-by: blam Signed-off-by: blam --- .changeset/khaki-fans-brake.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/khaki-fans-brake.md b/.changeset/khaki-fans-brake.md index 46d3cd518b..8460da3cc8 100644 --- a/.changeset/khaki-fans-brake.md +++ b/.changeset/khaki-fans-brake.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': patch --- -Fix issue with absolute paths on windows hosts +Fix issue on Windows where templated files where not properly skipped as intended. From 8fa852f2c864e0dd7cc285bc483c1efec01a950c Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 16 Aug 2022 13:53:33 +0200 Subject: [PATCH 163/239] chore: `path` is no longer needed Signed-off-by: blam --- .../src/scaffolder/actions/builtin/fetch/template.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts index 18737a83f5..1ead7ebcd6 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/template.ts @@ -27,7 +27,6 @@ import { TemplateFilter, SecureTemplater, } from '../../../../lib/templating/SecureTemplater'; -import path from 'path'; /** * Downloads a skeleton, templates variables into file and directory names and content. From 8c542ccbb3a38e8c9f9a7bdc099dd2540ddd295e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Aug 2022 12:08:05 +0000 Subject: [PATCH 164/239] chore(deps): update dependency @types/webpack-env to v1.18.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de5a33bf49..cdab4be162 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7914,9 +7914,9 @@ "@types/node" "*" "@types/webpack-env@^1.15.2", "@types/webpack-env@^1.15.3": - version "1.17.0" - resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz#f99ce359f1bfd87da90cc4a57cab0a18f34a48d0" - integrity sha512-eHSaNYEyxRA5IAG0Ym/yCyf86niZUIF/TpWKofQI/CVfh5HsMEUyfE2kwFxha4ow0s5g0LfISQxpDKjbRDrizw== + version "1.18.0" + resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.0.tgz#ed6ecaa8e5ed5dfe8b2b3d00181702c9925f13fb" + integrity sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg== "@types/webpack@^5.28.0": version "5.28.0" From a5684d0d53d535360e14ca07e34d8a8423db7348 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Aug 2022 12:15:33 +0000 Subject: [PATCH 165/239] Version Packages --- .changeset/big-mirrors-play.md | 5 - .changeset/blue-hairs-prove.md | 5 - .changeset/calm-clocks-drum.md | 8 - .changeset/cool-months-tickle.md | 17 - .changeset/create-app-1658824524.md | 5 - .changeset/create-app-1659429685.md | 5 - .changeset/create-app-1660127534.md | 5 - .changeset/cyan-carpets-build.md | 9 - .changeset/cyan-pens-suffer.md | 8 - .changeset/dirty-pears-allow.md | 5 - .changeset/dull-fans-hug.md | 5 - .changeset/dull-owls-grab.md | 5 - .changeset/dull-peaches-approve.md | 6 - .changeset/dull-pumas-hope.md | 5 - .changeset/dull-starfishes-chew.md | 5 - .changeset/eighty-radios-look.md | 5 - .changeset/empty-apple-pie.md | 5 - .changeset/empty-apples-tie.md | 6 - .changeset/famous-bikes-brush.md | 8 - .changeset/fast-panthers-fold.md | 5 - .changeset/few-berries-deny.md | 15 - .changeset/flat-zebras-draw.md | 5 - .changeset/forty-lobsters-guess.md | 9 - .changeset/fresh-hounds-argue.md | 6 - .changeset/fresh-rockets-yell.md | 5 - .changeset/friendly-sheep-flash.md | 5 - .changeset/funny-oranges-switch.md | 5 - .changeset/fuzzy-months-study.md | 5 - .changeset/giant-swans-change.md | 5 - .changeset/gold-dots-search.md | 6 - .changeset/green-laws-greet.md | 5 - .changeset/hot-crabs-wonder.md | 5 - .changeset/itchy-mice-kiss.md | 5 - .changeset/khaki-fans-brake.md | 5 - .changeset/khaki-meals-hammer.md | 6 - .changeset/late-dolphins-leave.md | 5 - .changeset/lazy-students-fetch.md | 7 - .changeset/little-laws-heal.md | 5 - .changeset/long-pumpkins-walk.md | 5 - .changeset/loud-ears-taste.md | 5 - .changeset/loud-panthers-arrive.md | 7 - .changeset/lovely-walls-brush.md | 5 - .changeset/mean-ants-hang.md | 5 - .changeset/metal-points-itch.md | 6 - .changeset/mighty-penguins-tap.md | 5 - .changeset/modern-shrimps-wave.md | 5 - .changeset/nine-mails-crash.md | 9 - .changeset/odd-adults-smash.md | 5 - .changeset/odd-tomatoes-juggle.md | 9 - .changeset/olive-tips-camp.md | 8 - .changeset/plenty-timers-flow.md | 6 - .changeset/popular-ears-allow.md | 5 - .changeset/popular-starfishes-bow.md | 5 - .changeset/pre.json | 242 --- .changeset/pretty-gifts-do.md | 5 - .changeset/purple-apricots-build.md | 5 - .changeset/red-turtles-melt.md | 7 - .changeset/renovate-15030f1.md | 5 - .changeset/renovate-34c125c.md | 6 - .changeset/renovate-5b3cf8c.md | 5 - .changeset/renovate-5b7b62b.md | 17 - .changeset/renovate-5ba3a71.md | 5 - .changeset/renovate-5f2abaa.md | 5 - .changeset/rich-readers-return.md | 5 - .changeset/rotten-moles-give.md | 7 - .changeset/selfish-items-play.md | 7 - .changeset/serious-flowers-smash.md | 5 - .changeset/seven-nails-cough.md | 5 - .changeset/short-trains-roll.md | 5 - .changeset/silver-carpets-grin.md | 5 - .changeset/silver-poets-push.md | 5 - .changeset/smooth-planes-itch.md | 5 - .changeset/strange-crabs-confess.md | 5 - .changeset/strange-moles-design.md | 7 - .changeset/strong-birds-pretend.md | 21 - .changeset/stupid-carpets-remain.md | 51 - .changeset/sweet-apricots-kneel.md | 5 - .changeset/tall-mugs-press.md | 5 - .changeset/tasty-falcons-press.md | 5 - .changeset/techdocs-eagles-stare.md | 5 - .changeset/ten-roses-walk.md | 5 - .changeset/thick-readers-invite.md | 5 - .changeset/three-parents-love.md | 5 - .changeset/tricky-ligers-move.md | 5 - .changeset/twenty-humans-visit.md | 6 - .changeset/twenty-terms-dress.md | 14 - .changeset/violet-mayflies-mix.md | 5 - .changeset/violet-trees-play.md | 14 - .changeset/weak-drinks-report.md | 5 - .changeset/weak-shrimps-deny.md | 5 - .changeset/wicked-knives-wink.md | 14 - .changeset/witty-seas-tie.md | 5 - docs/releases/v1.5.0-changelog.md | 1725 +++++++++++++++++ package.json | 2 +- packages/app-defaults/CHANGELOG.md | 10 + packages/app-defaults/package.json | 14 +- packages/app/CHANGELOG.md | 57 + packages/app/package.json | 106 +- packages/backend-app-api/CHANGELOG.md | 16 + packages/backend-app-api/package.json | 12 +- packages/backend-common/CHANGELOG.md | 29 + packages/backend-common/package.json | 8 +- packages/backend-defaults/CHANGELOG.md | 14 + packages/backend-defaults/package.json | 8 +- packages/backend-next/CHANGELOG.md | 9 + packages/backend-next/package.json | 10 +- packages/backend-plugin-api/CHANGELOG.md | 10 + packages/backend-plugin-api/package.json | 8 +- packages/backend-tasks/CHANGELOG.md | 8 + packages/backend-tasks/package.json | 8 +- packages/backend-test-utils/CHANGELOG.md | 12 + packages/backend-test-utils/package.json | 12 +- packages/backend/CHANGELOG.md | 36 + packages/backend/package.json | 62 +- packages/cli/CHANGELOG.md | 10 + packages/cli/package.json | 14 +- packages/core-app-api/CHANGELOG.md | 7 + packages/core-app-api/package.json | 8 +- packages/core-components/CHANGELOG.md | 12 + packages/core-components/package.json | 10 +- packages/core-plugin-api/CHANGELOG.md | 11 + packages/core-plugin-api/package.json | 8 +- packages/create-app/CHANGELOG.md | 30 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 13 + packages/dev-utils/package.json | 18 +- packages/integration-react/CHANGELOG.md | 9 + packages/integration-react/package.json | 14 +- packages/integration/CHANGELOG.md | 16 + packages/integration/package.json | 6 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 16 + .../techdocs-cli-embedded-app/package.json | 24 +- packages/techdocs-cli/CHANGELOG.md | 12 + packages/techdocs-cli/package.json | 8 +- packages/test-utils/CHANGELOG.md | 9 + packages/test-utils/package.json | 10 +- plugins/adr-backend/CHANGELOG.md | 15 + plugins/adr-backend/package.json | 10 +- plugins/adr-common/CHANGELOG.md | 13 + plugins/adr-common/package.json | 6 +- plugins/adr/CHANGELOG.md | 18 + plugins/adr/package.json | 22 +- plugins/airbrake-backend/CHANGELOG.md | 7 + plugins/airbrake-backend/package.json | 6 +- plugins/airbrake/CHANGELOG.md | 11 + plugins/airbrake/package.json | 20 +- plugins/allure/CHANGELOG.md | 9 + plugins/allure/package.json | 16 +- plugins/analytics-module-ga/CHANGELOG.md | 8 + plugins/analytics-module-ga/package.json | 14 +- plugins/apache-airflow/CHANGELOG.md | 8 + plugins/apache-airflow/package.json | 14 +- plugins/api-docs/CHANGELOG.md | 11 + plugins/api-docs/package.json | 18 +- plugins/apollo-explorer/CHANGELOG.md | 8 + plugins/apollo-explorer/package.json | 14 +- plugins/app-backend/CHANGELOG.md | 7 + plugins/app-backend/package.json | 8 +- plugins/auth-backend/CHANGELOG.md | 10 + plugins/auth-backend/package.json | 10 +- plugins/auth-node/CHANGELOG.md | 7 + plugins/auth-node/package.json | 6 +- plugins/azure-devops-backend/CHANGELOG.md | 7 + plugins/azure-devops-backend/package.json | 6 +- plugins/azure-devops/CHANGELOG.md | 9 + plugins/azure-devops/package.json | 16 +- plugins/badges-backend/CHANGELOG.md | 7 + plugins/badges-backend/package.json | 6 +- plugins/badges/CHANGELOG.md | 9 + plugins/badges/package.json | 16 +- plugins/bazaar-backend/CHANGELOG.md | 8 + plugins/bazaar-backend/package.json | 8 +- plugins/bazaar/CHANGELOG.md | 11 + plugins/bazaar/package.json | 16 +- plugins/bitbucket-cloud-common/CHANGELOG.md | 7 + plugins/bitbucket-cloud-common/package.json | 6 +- plugins/bitrise/CHANGELOG.md | 9 + plugins/bitrise/package.json | 16 +- .../catalog-backend-module-aws/CHANGELOG.md | 15 + .../catalog-backend-module-aws/package.json | 12 +- .../catalog-backend-module-azure/CHANGELOG.md | 10 + .../catalog-backend-module-azure/package.json | 14 +- .../CHANGELOG.md | 10 + .../package.json | 16 +- .../CHANGELOG.md | 60 + .../package.json | 14 +- .../CHANGELOG.md | 10 + .../package.json | 14 +- .../CHANGELOG.md | 10 + .../package.json | 14 +- .../CHANGELOG.md | 18 + .../package.json | 14 +- .../CHANGELOG.md | 24 + .../package.json | 14 +- .../catalog-backend-module-ldap/CHANGELOG.md | 8 + .../catalog-backend-module-ldap/package.json | 8 +- .../CHANGELOG.md | 9 + .../package.json | 12 +- .../CHANGELOG.md | 28 + .../package.json | 14 +- plugins/catalog-backend/CHANGELOG.md | 18 + plugins/catalog-backend/package.json | 20 +- plugins/catalog-common/CHANGELOG.md | 6 + plugins/catalog-common/package.json | 4 +- plugins/catalog-customized/CHANGELOG.md | 8 + plugins/catalog-customized/package.json | 6 +- plugins/catalog-graph/CHANGELOG.md | 9 + plugins/catalog-graph/package.json | 18 +- plugins/catalog-graphql/CHANGELOG.md | 6 + plugins/catalog-graphql/package.json | 6 +- plugins/catalog-import/CHANGELOG.md | 11 + plugins/catalog-import/package.json | 20 +- plugins/catalog-node/CHANGELOG.md | 9 + plugins/catalog-node/package.json | 8 +- plugins/catalog-react/CHANGELOG.md | 12 + plugins/catalog-react/package.json | 20 +- plugins/catalog/CHANGELOG.md | 28 + plugins/catalog/package.json | 24 +- .../CHANGELOG.md | 8 + .../package.json | 8 +- plugins/cicd-statistics/CHANGELOG.md | 9 + plugins/cicd-statistics/package.json | 6 +- plugins/circleci/CHANGELOG.md | 9 + plugins/circleci/package.json | 16 +- plugins/cloudbuild/CHANGELOG.md | 9 + plugins/cloudbuild/package.json | 16 +- plugins/code-climate/CHANGELOG.md | 11 + plugins/code-climate/package.json | 14 +- plugins/code-coverage-backend/CHANGELOG.md | 8 + plugins/code-coverage-backend/package.json | 8 +- plugins/code-coverage/CHANGELOG.md | 9 + plugins/code-coverage/package.json | 16 +- plugins/codescene/CHANGELOG.md | 8 + plugins/codescene/package.json | 14 +- plugins/config-schema/CHANGELOG.md | 8 + plugins/config-schema/package.json | 14 +- plugins/cost-insights-common/CHANGELOG.md | 6 + plugins/cost-insights-common/package.json | 4 +- plugins/cost-insights/CHANGELOG.md | 12 + plugins/cost-insights/package.json | 16 +- plugins/dynatrace/CHANGELOG.md | 8 + plugins/dynatrace/package.json | 14 +- .../example-todo-list-backend/CHANGELOG.md | 8 + .../example-todo-list-backend/package.json | 8 +- plugins/example-todo-list/CHANGELOG.md | 8 + plugins/example-todo-list/package.json | 14 +- plugins/explore-react/CHANGELOG.md | 7 + plugins/explore-react/package.json | 10 +- plugins/explore/CHANGELOG.md | 10 + plugins/explore/package.json | 18 +- plugins/firehydrant/CHANGELOG.md | 9 + plugins/firehydrant/package.json | 16 +- plugins/fossa/CHANGELOG.md | 9 + plugins/fossa/package.json | 16 +- plugins/gcalendar/CHANGELOG.md | 8 + plugins/gcalendar/package.json | 14 +- plugins/gcp-projects/CHANGELOG.md | 8 + plugins/gcp-projects/package.json | 14 +- plugins/git-release-manager/CHANGELOG.md | 9 + plugins/git-release-manager/package.json | 16 +- plugins/github-actions/CHANGELOG.md | 10 + plugins/github-actions/package.json | 18 +- plugins/github-deployments/CHANGELOG.md | 11 + plugins/github-deployments/package.json | 20 +- plugins/github-issues/CHANGELOG.md | 17 + plugins/github-issues/package.json | 18 +- .../github-pull-requests-board/CHANGELOG.md | 11 + .../github-pull-requests-board/package.json | 16 +- plugins/gitops-profiles/CHANGELOG.md | 8 + plugins/gitops-profiles/package.json | 14 +- plugins/gocd/CHANGELOG.md | 10 + plugins/gocd/package.json | 16 +- plugins/graphiql/CHANGELOG.md | 9 + plugins/graphiql/package.json | 14 +- plugins/graphql-backend/CHANGELOG.md | 9 + plugins/graphql-backend/package.json | 8 +- plugins/home/CHANGELOG.md | 11 + plugins/home/package.json | 18 +- plugins/ilert/CHANGELOG.md | 9 + plugins/ilert/package.json | 16 +- plugins/jenkins-backend/CHANGELOG.md | 9 + plugins/jenkins-backend/package.json | 10 +- plugins/jenkins-common/CHANGELOG.md | 7 + plugins/jenkins-common/package.json | 6 +- plugins/jenkins/CHANGELOG.md | 10 + plugins/jenkins/package.json | 18 +- plugins/kafka-backend/CHANGELOG.md | 7 + plugins/kafka-backend/package.json | 6 +- plugins/kafka/CHANGELOG.md | 10 + plugins/kafka/package.json | 16 +- plugins/kubernetes-backend/CHANGELOG.md | 12 + plugins/kubernetes-backend/package.json | 10 +- plugins/kubernetes-common/CHANGELOG.md | 6 + plugins/kubernetes-common/package.json | 4 +- plugins/kubernetes/CHANGELOG.md | 12 + plugins/kubernetes/package.json | 18 +- plugins/lighthouse/CHANGELOG.md | 9 + plugins/lighthouse/package.json | 16 +- plugins/newrelic-dashboard/CHANGELOG.md | 9 + plugins/newrelic-dashboard/package.json | 12 +- plugins/newrelic/CHANGELOG.md | 8 + plugins/newrelic/package.json | 14 +- plugins/org/CHANGELOG.md | 9 + plugins/org/package.json | 16 +- plugins/pagerduty/CHANGELOG.md | 9 + plugins/pagerduty/package.json | 16 +- plugins/periskop-backend/CHANGELOG.md | 7 + plugins/periskop-backend/package.json | 6 +- plugins/periskop/CHANGELOG.md | 10 + plugins/periskop/package.json | 16 +- plugins/permission-backend/CHANGELOG.md | 9 + plugins/permission-backend/package.json | 10 +- plugins/permission-node/CHANGELOG.md | 8 + plugins/permission-node/package.json | 8 +- plugins/permission-react/CHANGELOG.md | 7 + plugins/permission-react/package.json | 8 +- plugins/proxy-backend/CHANGELOG.md | 7 + plugins/proxy-backend/package.json | 6 +- plugins/rollbar-backend/CHANGELOG.md | 7 + plugins/rollbar-backend/package.json | 8 +- plugins/rollbar/CHANGELOG.md | 9 + plugins/rollbar/package.json | 16 +- .../CHANGELOG.md | 9 + .../package.json | 10 +- .../CHANGELOG.md | 9 + .../package.json | 10 +- .../CHANGELOG.md | 7 + .../package.json | 6 +- plugins/scaffolder-backend/CHANGELOG.md | 26 + plugins/scaffolder-backend/package.json | 16 +- plugins/scaffolder/CHANGELOG.md | 17 + plugins/scaffolder/package.json | 26 +- .../CHANGELOG.md | 7 + .../package.json | 8 +- plugins/search-backend-module-pg/CHANGELOG.md | 8 + plugins/search-backend-module-pg/package.json | 10 +- plugins/search-backend-node/CHANGELOG.md | 8 + plugins/search-backend-node/package.json | 10 +- plugins/search-backend/CHANGELOG.md | 10 + plugins/search-backend/package.json | 12 +- plugins/search-react/CHANGELOG.md | 8 + plugins/search-react/package.json | 10 +- plugins/search/CHANGELOG.md | 10 + plugins/search/package.json | 18 +- plugins/sentry/CHANGELOG.md | 10 + plugins/sentry/package.json | 16 +- plugins/shortcuts/CHANGELOG.md | 21 + plugins/shortcuts/package.json | 14 +- plugins/sonarqube-backend/CHANGELOG.md | 11 + plugins/sonarqube-backend/package.json | 8 +- plugins/sonarqube/CHANGELOG.md | 18 + plugins/sonarqube/package.json | 16 +- plugins/splunk-on-call/CHANGELOG.md | 10 + plugins/splunk-on-call/package.json | 16 +- plugins/stack-overflow-backend/CHANGELOG.md | 6 + plugins/stack-overflow-backend/package.json | 2 +- plugins/stack-overflow/CHANGELOG.md | 9 + plugins/stack-overflow/package.json | 16 +- .../CHANGELOG.md | 9 + .../package.json | 10 +- plugins/tech-insights-backend/CHANGELOG.md | 10 + plugins/tech-insights-backend/package.json | 14 +- plugins/tech-insights-common/CHANGELOG.md | 6 + plugins/tech-insights-common/package.json | 4 +- plugins/tech-insights-node/CHANGELOG.md | 9 + plugins/tech-insights-node/package.json | 8 +- plugins/tech-insights/CHANGELOG.md | 10 + plugins/tech-insights/package.json | 18 +- plugins/tech-radar/CHANGELOG.md | 9 + plugins/tech-radar/package.json | 14 +- .../techdocs-addons-test-utils/CHANGELOG.md | 15 + .../techdocs-addons-test-utils/package.json | 24 +- plugins/techdocs-backend/CHANGELOG.md | 10 + plugins/techdocs-backend/package.json | 16 +- .../CHANGELOG.md | 12 + .../package.json | 22 +- plugins/techdocs-node/CHANGELOG.md | 17 + plugins/techdocs-node/package.json | 8 +- plugins/techdocs-react/CHANGELOG.md | 10 + plugins/techdocs-react/package.json | 8 +- plugins/techdocs/CHANGELOG.md | 17 + plugins/techdocs/package.json | 24 +- plugins/todo-backend/CHANGELOG.md | 8 + plugins/todo-backend/package.json | 8 +- plugins/todo/CHANGELOG.md | 9 + plugins/todo/package.json | 16 +- plugins/user-settings/CHANGELOG.md | 8 + plugins/user-settings/package.json | 14 +- plugins/vault-backend/CHANGELOG.md | 9 + plugins/vault-backend/package.json | 10 +- plugins/vault/CHANGELOG.md | 9 + plugins/vault/package.json | 16 +- plugins/xcmetrics/CHANGELOG.md | 9 + plugins/xcmetrics/package.json | 14 +- yarn.lock | 256 +-- 395 files changed, 4519 insertions(+), 2082 deletions(-) delete mode 100644 .changeset/big-mirrors-play.md delete mode 100644 .changeset/blue-hairs-prove.md delete mode 100644 .changeset/calm-clocks-drum.md delete mode 100644 .changeset/cool-months-tickle.md delete mode 100644 .changeset/create-app-1658824524.md delete mode 100644 .changeset/create-app-1659429685.md delete mode 100644 .changeset/create-app-1660127534.md delete mode 100644 .changeset/cyan-carpets-build.md delete mode 100644 .changeset/cyan-pens-suffer.md delete mode 100644 .changeset/dirty-pears-allow.md delete mode 100644 .changeset/dull-fans-hug.md delete mode 100644 .changeset/dull-owls-grab.md delete mode 100644 .changeset/dull-peaches-approve.md delete mode 100644 .changeset/dull-pumas-hope.md delete mode 100644 .changeset/dull-starfishes-chew.md delete mode 100644 .changeset/eighty-radios-look.md delete mode 100644 .changeset/empty-apple-pie.md delete mode 100644 .changeset/empty-apples-tie.md delete mode 100644 .changeset/famous-bikes-brush.md delete mode 100644 .changeset/fast-panthers-fold.md delete mode 100644 .changeset/few-berries-deny.md delete mode 100644 .changeset/flat-zebras-draw.md delete mode 100644 .changeset/forty-lobsters-guess.md delete mode 100644 .changeset/fresh-hounds-argue.md delete mode 100644 .changeset/fresh-rockets-yell.md delete mode 100644 .changeset/friendly-sheep-flash.md delete mode 100644 .changeset/funny-oranges-switch.md delete mode 100644 .changeset/fuzzy-months-study.md delete mode 100644 .changeset/giant-swans-change.md delete mode 100644 .changeset/gold-dots-search.md delete mode 100644 .changeset/green-laws-greet.md delete mode 100644 .changeset/hot-crabs-wonder.md delete mode 100644 .changeset/itchy-mice-kiss.md delete mode 100644 .changeset/khaki-fans-brake.md delete mode 100644 .changeset/khaki-meals-hammer.md delete mode 100644 .changeset/late-dolphins-leave.md delete mode 100644 .changeset/lazy-students-fetch.md delete mode 100644 .changeset/little-laws-heal.md delete mode 100644 .changeset/long-pumpkins-walk.md delete mode 100644 .changeset/loud-ears-taste.md delete mode 100644 .changeset/loud-panthers-arrive.md delete mode 100644 .changeset/lovely-walls-brush.md delete mode 100644 .changeset/mean-ants-hang.md delete mode 100644 .changeset/metal-points-itch.md delete mode 100644 .changeset/mighty-penguins-tap.md delete mode 100644 .changeset/modern-shrimps-wave.md delete mode 100644 .changeset/nine-mails-crash.md delete mode 100644 .changeset/odd-adults-smash.md delete mode 100644 .changeset/odd-tomatoes-juggle.md delete mode 100644 .changeset/olive-tips-camp.md delete mode 100644 .changeset/plenty-timers-flow.md delete mode 100644 .changeset/popular-ears-allow.md delete mode 100644 .changeset/popular-starfishes-bow.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/pretty-gifts-do.md delete mode 100644 .changeset/purple-apricots-build.md delete mode 100644 .changeset/red-turtles-melt.md delete mode 100644 .changeset/renovate-15030f1.md delete mode 100644 .changeset/renovate-34c125c.md delete mode 100644 .changeset/renovate-5b3cf8c.md delete mode 100644 .changeset/renovate-5b7b62b.md delete mode 100644 .changeset/renovate-5ba3a71.md delete mode 100644 .changeset/renovate-5f2abaa.md delete mode 100644 .changeset/rich-readers-return.md delete mode 100644 .changeset/rotten-moles-give.md delete mode 100644 .changeset/selfish-items-play.md delete mode 100644 .changeset/serious-flowers-smash.md delete mode 100644 .changeset/seven-nails-cough.md delete mode 100644 .changeset/short-trains-roll.md delete mode 100644 .changeset/silver-carpets-grin.md delete mode 100644 .changeset/silver-poets-push.md delete mode 100644 .changeset/smooth-planes-itch.md delete mode 100644 .changeset/strange-crabs-confess.md delete mode 100644 .changeset/strange-moles-design.md delete mode 100644 .changeset/strong-birds-pretend.md delete mode 100644 .changeset/stupid-carpets-remain.md delete mode 100644 .changeset/sweet-apricots-kneel.md delete mode 100644 .changeset/tall-mugs-press.md delete mode 100644 .changeset/tasty-falcons-press.md delete mode 100644 .changeset/techdocs-eagles-stare.md delete mode 100644 .changeset/ten-roses-walk.md delete mode 100644 .changeset/thick-readers-invite.md delete mode 100644 .changeset/three-parents-love.md delete mode 100644 .changeset/tricky-ligers-move.md delete mode 100644 .changeset/twenty-humans-visit.md delete mode 100644 .changeset/twenty-terms-dress.md delete mode 100644 .changeset/violet-mayflies-mix.md delete mode 100644 .changeset/violet-trees-play.md delete mode 100644 .changeset/weak-drinks-report.md delete mode 100644 .changeset/weak-shrimps-deny.md delete mode 100644 .changeset/wicked-knives-wink.md delete mode 100644 .changeset/witty-seas-tie.md create mode 100644 docs/releases/v1.5.0-changelog.md create mode 100644 packages/backend-defaults/CHANGELOG.md diff --git a/.changeset/big-mirrors-play.md b/.changeset/big-mirrors-play.md deleted file mode 100644 index 7478363a46..0000000000 --- a/.changeset/big-mirrors-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes': patch ---- - -Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax. diff --git a/.changeset/blue-hairs-prove.md b/.changeset/blue-hairs-prove.md deleted file mode 100644 index 7812825da6..0000000000 --- a/.changeset/blue-hairs-prove.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`. diff --git a/.changeset/calm-clocks-drum.md b/.changeset/calm-clocks-drum.md deleted file mode 100644 index feb35e0133..0000000000 --- a/.changeset/calm-clocks-drum.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Improve `scm/git` wrapper around `isomorphic-git` library : - -- Add `checkout` function, -- Add optional `remoteRef` parameter in the `push` function. diff --git a/.changeset/cool-months-tickle.md b/.changeset/cool-months-tickle.md deleted file mode 100644 index 281c74bab0..0000000000 --- a/.changeset/cool-months-tickle.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gitlab': patch ---- - -Enhancing GitLab provider with filtering projects by pattern RegExp - -```yaml -providers: - gitlab: - stg: - host: gitlab.stg.company.io - branch: main - projectPattern: 'john/' # new option - entityFilename: template.yaml -``` - -With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". diff --git a/.changeset/create-app-1658824524.md b/.changeset/create-app-1658824524.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1658824524.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1659429685.md b/.changeset/create-app-1659429685.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1659429685.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1660127534.md b/.changeset/create-app-1660127534.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1660127534.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/cyan-carpets-build.md b/.changeset/cyan-carpets-build.md deleted file mode 100644 index eca260c34c..0000000000 --- a/.changeset/cyan-carpets-build.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-adr': minor -'@backstage/plugin-adr-backend': minor -'@backstage/plugin-adr-common': minor ---- - -Display associated entity as a chip in `AdrSearchResultListItem` - -BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents diff --git a/.changeset/cyan-pens-suffer.md b/.changeset/cyan-pens-suffer.md deleted file mode 100644 index b7d3a3a096..0000000000 --- a/.changeset/cyan-pens-suffer.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/backend-app-api': patch -'@backstage/backend-plugin-api': patch -'@backstage/backend-test-utils': patch -'@backstage/plugin-catalog-node': patch ---- - -Refactored experimental backend system with new type names. diff --git a/.changeset/dirty-pears-allow.md b/.changeset/dirty-pears-allow.md deleted file mode 100644 index 4b488ad79d..0000000000 --- a/.changeset/dirty-pears-allow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. diff --git a/.changeset/dull-fans-hug.md b/.changeset/dull-fans-hug.md deleted file mode 100644 index 562ef62bc0..0000000000 --- a/.changeset/dull-fans-hug.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Added back reduction in size, this fixes the extremely large TeachDocs headings diff --git a/.changeset/dull-owls-grab.md b/.changeset/dull-owls-grab.md deleted file mode 100644 index e71db46827..0000000000 --- a/.changeset/dull-owls-grab.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home': patch ---- - -Add wrap-around for the listing of tools to prevent increasing width with name length. diff --git a/.changeset/dull-peaches-approve.md b/.changeset/dull-peaches-approve.md deleted file mode 100644 index f2edcc9e11..0000000000 --- a/.changeset/dull-peaches-approve.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-kubernetes-common': patch ---- - -Added `DaemonSets` to the default kubernetes resources. diff --git a/.changeset/dull-pumas-hope.md b/.changeset/dull-pumas-hope.md deleted file mode 100644 index a19811ddbc..0000000000 --- a/.changeset/dull-pumas-hope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': minor ---- - -Added back support for when no branch is provided to the `UrlReader` for Bitbucket Server diff --git a/.changeset/dull-starfishes-chew.md b/.changeset/dull-starfishes-chew.md deleted file mode 100644 index 9733e8b7e6..0000000000 --- a/.changeset/dull-starfishes-chew.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration': patch ---- - -Handle incorrect return type from Octokit paginate plugin to resolve reading URLs from GitHub diff --git a/.changeset/eighty-radios-look.md b/.changeset/eighty-radios-look.md deleted file mode 100644 index 2db51d47d7..0000000000 --- a/.changeset/eighty-radios-look.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-sonarqube-backend': minor ---- - -Initial creation of the plugin diff --git a/.changeset/empty-apple-pie.md b/.changeset/empty-apple-pie.md deleted file mode 100644 index 8e9fecdafb..0000000000 --- a/.changeset/empty-apple-pie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Adding a `className` prop to the `MarkdownContent` component diff --git a/.changeset/empty-apples-tie.md b/.changeset/empty-apples-tie.md deleted file mode 100644 index 3ebfe0fc70..0000000000 --- a/.changeset/empty-apples-tie.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor -'@backstage/plugin-scaffolder-backend': minor ---- - -Starting the implementation of the Wizard page for the `next` scaffolder plugin diff --git a/.changeset/famous-bikes-brush.md b/.changeset/famous-bikes-brush.md deleted file mode 100644 index 0008a9145c..0000000000 --- a/.changeset/famous-bikes-brush.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/core-plugin-api': patch ---- - -Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining -`__experimentalConfigure` in your `createPlugin` options. See https://backstage.io/docs/plugins/customization.md for more information. - -This is an experimental feature and it will have breaking changes in the future. diff --git a/.changeset/fast-panthers-fold.md b/.changeset/fast-panthers-fold.md deleted file mode 100644 index f8adac413e..0000000000 --- a/.changeset/fast-panthers-fold.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Add a `publish:gerrit:review` scaffolder action diff --git a/.changeset/few-berries-deny.md b/.changeset/few-berries-deny.md deleted file mode 100644 index d5e14a807c..0000000000 --- a/.changeset/few-berries-deny.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button. - -You can modify it by doing: - -```typescript jsx -import { catalogPlugin } from '@backstage/plugin-catalog'; - -catalogPlugin.__experimentalReconfigure({ - createButtonTitle: 'New', -}); -``` diff --git a/.changeset/flat-zebras-draw.md b/.changeset/flat-zebras-draw.md deleted file mode 100644 index ba82f156ef..0000000000 --- a/.changeset/flat-zebras-draw.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes': patch ---- - -Adds namespace column to Kubernetes error reporting table diff --git a/.changeset/forty-lobsters-guess.md b/.changeset/forty-lobsters-guess.md deleted file mode 100644 index 1a722fa04d..0000000000 --- a/.changeset/forty-lobsters-guess.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-sonarqube': minor ---- - -**BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin - -The whole proxy's `'/sonarqube':` key can be removed from your configuration files. - -Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. diff --git a/.changeset/fresh-hounds-argue.md b/.changeset/fresh-hounds-argue.md deleted file mode 100644 index 9291a99659..0000000000 --- a/.changeset/fresh-hounds-argue.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/integration': minor -'@backstage/plugin-scaffolder-backend': minor ---- - -Add support for Basic Auth for Bitbucket Server. diff --git a/.changeset/fresh-rockets-yell.md b/.changeset/fresh-rockets-yell.md deleted file mode 100644 index b8f597206e..0000000000 --- a/.changeset/fresh-rockets-yell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -The `publish:file` action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default. diff --git a/.changeset/friendly-sheep-flash.md b/.changeset/friendly-sheep-flash.md deleted file mode 100644 index 58ae309bf1..0000000000 --- a/.changeset/friendly-sheep-flash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-stack-overflow-backend': patch ---- - -Added API key as separate configuration diff --git a/.changeset/funny-oranges-switch.md b/.changeset/funny-oranges-switch.md deleted file mode 100644 index 23c3104441..0000000000 --- a/.changeset/funny-oranges-switch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external. diff --git a/.changeset/fuzzy-months-study.md b/.changeset/fuzzy-months-study.md deleted file mode 100644 index 024349f90b..0000000000 --- a/.changeset/fuzzy-months-study.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch ---- - -Fixed a bug in auth plugin on the backend where it ignores the skip migration database options when using the database provider. diff --git a/.changeset/giant-swans-change.md b/.changeset/giant-swans-change.md deleted file mode 100644 index bff90db2b1..0000000000 --- a/.changeset/giant-swans-change.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch ---- - -The factory returned by `createBackendPlugin` and `createBackendModule` no longer require a parameter to be passed if the options are optional. diff --git a/.changeset/gold-dots-search.md b/.changeset/gold-dots-search.md deleted file mode 100644 index e2a679dff7..0000000000 --- a/.changeset/gold-dots-search.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-github-issues': patch ---- - -Moved communication with GitHub graphql API to the dedicated plugin API. -Fixes issue when no GitHub Issues are rendered when partial failure is returned from GitHub API. diff --git a/.changeset/green-laws-greet.md b/.changeset/green-laws-greet.md deleted file mode 100644 index 120a1d3f2c..0000000000 --- a/.changeset/green-laws-greet.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-react': patch ---- - -Modify description column to not use auto width. diff --git a/.changeset/hot-crabs-wonder.md b/.changeset/hot-crabs-wonder.md deleted file mode 100644 index b39398bfc3..0000000000 --- a/.changeset/hot-crabs-wonder.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Make `products` field optional in the config diff --git a/.changeset/itchy-mice-kiss.md b/.changeset/itchy-mice-kiss.md deleted file mode 100644 index 18390866d9..0000000000 --- a/.changeset/itchy-mice-kiss.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Add highlight to active navigation item and navigation parents. diff --git a/.changeset/khaki-fans-brake.md b/.changeset/khaki-fans-brake.md deleted file mode 100644 index 8460da3cc8..0000000000 --- a/.changeset/khaki-fans-brake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Fix issue on Windows where templated files where not properly skipped as intended. diff --git a/.changeset/khaki-meals-hammer.md b/.changeset/khaki-meals-hammer.md deleted file mode 100644 index 1deee2706d..0000000000 --- a/.changeset/khaki-meals-hammer.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-common': minor ---- - -- Added `force` and `remoteRef` option to `push` method in `git` actions -- Added `addRemote` and `deleteRemote` methods to `git` actions diff --git a/.changeset/late-dolphins-leave.md b/.changeset/late-dolphins-leave.md deleted file mode 100644 index 796b9a7a21..0000000000 --- a/.changeset/late-dolphins-leave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-graphiql': patch ---- - -Minor internal tweak to lazy loading in order to improve module compatibility. diff --git a/.changeset/lazy-students-fetch.md b/.changeset/lazy-students-fetch.md deleted file mode 100644 index 2ea7c3922c..0000000000 --- a/.changeset/lazy-students-fetch.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/backend-app-api': minor -'@backstage/backend-defaults': minor ---- - -Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. -The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. diff --git a/.changeset/little-laws-heal.md b/.changeset/little-laws-heal.md deleted file mode 100644 index cd1505540e..0000000000 --- a/.changeset/little-laws-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Allow changing the subtitle of the `CatalogTable` component diff --git a/.changeset/long-pumpkins-walk.md b/.changeset/long-pumpkins-walk.md deleted file mode 100644 index 0ccad4d678..0000000000 --- a/.changeset/long-pumpkins-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes-backend': patch ---- - -Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster diff --git a/.changeset/loud-ears-taste.md b/.changeset/loud-ears-taste.md deleted file mode 100644 index 479e14ce02..0000000000 --- a/.changeset/loud-ears-taste.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -The `better-sqlite3` dependency has been moved back to production `"dependencies"` in `packages/backend/package.json`, with instructions in the Dockerfile to move it to `"devDependencies"` if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option. diff --git a/.changeset/loud-panthers-arrive.md b/.changeset/loud-panthers-arrive.md deleted file mode 100644 index a8c69cdc76..0000000000 --- a/.changeset/loud-panthers-arrive.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Fix AWS S3 404 NotFound error - -When reading an object from the S3 bucket through a stream, the aws-sdk getObject() API may throw a 404 NotFound Error with no error message or, in fact, any sort of HTTP-layer error responses. These fail the @backstage/error's assertError() checks, so they must be wrapped. The test for this case was also updated to match the wrapped error message. diff --git a/.changeset/lovely-walls-brush.md b/.changeset/lovely-walls-brush.md deleted file mode 100644 index 8834673d3b..0000000000 --- a/.changeset/lovely-walls-brush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-common': patch ---- - -Export aggregated list of all catalog permissions diff --git a/.changeset/mean-ants-hang.md b/.changeset/mean-ants-hang.md deleted file mode 100644 index e9c3bc4eaf..0000000000 --- a/.changeset/mean-ants-hang.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. diff --git a/.changeset/metal-points-itch.md b/.changeset/metal-points-itch.md deleted file mode 100644 index 752f52c269..0000000000 --- a/.changeset/metal-points-itch.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor -'@backstage/backend-common': patch ---- - -Add support for Bearer Authorization header / token-based auth at Git commands. diff --git a/.changeset/mighty-penguins-tap.md b/.changeset/mighty-penguins-tap.md deleted file mode 100644 index 0958e71ffd..0000000000 --- a/.changeset/mighty-penguins-tap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Fixed techdocs sidebar layout bug for medium devices. diff --git a/.changeset/modern-shrimps-wave.md b/.changeset/modern-shrimps-wave.md deleted file mode 100644 index 9be8c49ca8..0000000000 --- a/.changeset/modern-shrimps-wave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Added Backstage version to output of `yarn backstage-cli info` command diff --git a/.changeset/nine-mails-crash.md b/.changeset/nine-mails-crash.md deleted file mode 100644 index ead5553d1c..0000000000 --- a/.changeset/nine-mails-crash.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -The `ZipArchiveResponse` now correctly handles corrupt ZIP archives. - -Before this change, certain corrupt ZIP archives either cause the inflater to throw (as expected), or will hang the parser indefinitely. - -By switching out the `zip` parsing library, we now write to a temporary directory, and load from disk which should ensure that the parsing of the `.zip` files are done correctly because `streaming` of `zip` paths is technically impossible without being able to parse the headers at the end of the file. diff --git a/.changeset/odd-adults-smash.md b/.changeset/odd-adults-smash.md deleted file mode 100644 index d0002094bd..0000000000 --- a/.changeset/odd-adults-smash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kafka': patch ---- - -Add dashboard URL feature and fix minor styling issues. diff --git a/.changeset/odd-tomatoes-juggle.md b/.changeset/odd-tomatoes-juggle.md deleted file mode 100644 index 336af17eb4..0000000000 --- a/.changeset/odd-tomatoes-juggle.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Github Entity Provider functionality for adding entities to the catalog. - -This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. - -More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. diff --git a/.changeset/olive-tips-camp.md b/.changeset/olive-tips-camp.md deleted file mode 100644 index 8b65eed574..0000000000 --- a/.changeset/olive-tips-camp.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-aws': patch ---- - -Deprecate `AwsS3DiscoveryProcessor` in favor of `AwsS3EntityProvider` (since v0.1.4). - -You can find a migration guide at -[the release notes for v0.1.4](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014). diff --git a/.changeset/plenty-timers-flow.md b/.changeset/plenty-timers-flow.md deleted file mode 100644 index 8a26c8068b..0000000000 --- a/.changeset/plenty-timers-flow.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch -'@backstage/plugin-cost-insights-common': patch ---- - -Add name property to Group diff --git a/.changeset/popular-ears-allow.md b/.changeset/popular-ears-allow.md deleted file mode 100644 index 1af2fcbd81..0000000000 --- a/.changeset/popular-ears-allow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch ---- - -Display minus sign in trends in `CostOverviewCard` diff --git a/.changeset/popular-starfishes-bow.md b/.changeset/popular-starfishes-bow.md deleted file mode 100644 index 1b976d1624..0000000000 --- a/.changeset/popular-starfishes-bow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 012728eb38..0000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,242 +0,0 @@ -{ - "mode": "exit", - "tag": "next", - "initialVersions": { - "example-app": "0.2.73", - "@backstage/app-defaults": "1.0.4", - "example-backend": "0.2.73", - "@backstage/backend-app-api": "0.1.0", - "@backstage/backend-common": "0.14.1", - "example-backend-next": "0.0.1", - "@backstage/backend-plugin-api": "0.1.0", - "@backstage/backend-tasks": "0.3.3", - "@backstage/backend-test-utils": "0.1.26", - "@backstage/catalog-client": "1.0.4", - "@backstage/catalog-model": "1.1.0", - "@backstage/cli": "0.18.0", - "@backstage/cli-common": "0.1.9", - "@backstage/codemods": "0.1.38", - "@backstage/config": "1.0.1", - "@backstage/config-loader": "1.1.3", - "@backstage/core-app-api": "1.0.4", - "@backstage/core-components": "0.10.0", - "@backstage/core-plugin-api": "1.0.4", - "@backstage/create-app": "0.4.29", - "@backstage/dev-utils": "1.0.4", - "e2e-test": "0.2.0", - "@backstage/errors": "1.1.0", - "@backstage/integration": "1.2.2", - "@backstage/integration-react": "1.1.2", - "@backstage/release-manifests": "0.0.5", - "@techdocs/cli": "1.1.3", - "techdocs-cli-embedded-app": "0.2.72", - "@backstage/test-utils": "1.1.2", - "@backstage/theme": "0.2.16", - "@backstage/types": "1.0.0", - "@backstage/version-bridge": "1.0.1", - "@backstage/plugin-adr": "0.1.2", - "@backstage/plugin-adr-backend": "0.1.2", - "@backstage/plugin-adr-common": "0.1.2", - "@backstage/plugin-airbrake": "0.3.7", - "@backstage/plugin-airbrake-backend": "0.2.7", - "@backstage/plugin-allure": "0.1.23", - "@backstage/plugin-analytics-module-ga": "0.1.18", - "@backstage/plugin-apache-airflow": "0.2.0", - "@backstage/plugin-api-docs": "0.8.7", - "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0", - "@backstage/plugin-apollo-explorer": "0.1.0", - "@backstage/plugin-app-backend": "0.3.34", - "@backstage/plugin-auth-backend": "0.15.0", - "@backstage/plugin-auth-node": "0.2.3", - "@backstage/plugin-azure-devops": "0.1.23", - "@backstage/plugin-azure-devops-backend": "0.3.13", - "@backstage/plugin-azure-devops-common": "0.2.4", - "@backstage/plugin-badges": "0.2.31", - "@backstage/plugin-badges-backend": "0.1.28", - "@backstage/plugin-bazaar": "0.1.22", - "@backstage/plugin-bazaar-backend": "0.1.18", - "@backstage/plugin-bitbucket-cloud-common": "0.1.1", - "@backstage/plugin-bitrise": "0.1.34", - "@backstage/plugin-catalog": "1.4.0", - "@backstage/plugin-catalog-backend": "1.3.0", - "@backstage/plugin-catalog-backend-module-aws": "0.1.7", - "@backstage/plugin-catalog-backend-module-azure": "0.1.5", - "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.1", - "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.1", - "@backstage/plugin-catalog-backend-module-gerrit": "0.1.2", - "@backstage/plugin-catalog-backend-module-github": "0.1.5", - "@backstage/plugin-catalog-backend-module-gitlab": "0.1.5", - "@backstage/plugin-catalog-backend-module-ldap": "0.5.1", - "@backstage/plugin-catalog-backend-module-msgraph": "0.4.0", - "@backstage/plugin-catalog-backend-module-openapi": "0.1.0", - "@backstage/plugin-catalog-common": "1.0.4", - "@backstage/plugin-catalog-graph": "0.2.19", - "@backstage/plugin-catalog-graphql": "0.3.11", - "@backstage/plugin-catalog-import": "0.8.10", - "@backstage/plugin-catalog-node": "1.0.0", - "@backstage/plugin-catalog-react": "1.1.2", - "@backstage/plugin-cicd-statistics": "0.1.9", - "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.3", - "@backstage/plugin-circleci": "0.3.7", - "@backstage/plugin-cloudbuild": "0.3.7", - "@backstage/plugin-code-climate": "0.1.7", - "@backstage/plugin-code-coverage": "0.2.0", - "@backstage/plugin-code-coverage-backend": "0.2.0", - "@backstage/plugin-codescene": "0.1.2", - "@backstage/plugin-config-schema": "0.1.30", - "@backstage/plugin-cost-insights": "0.11.29", - "@backstage/plugin-cost-insights-common": "0.1.0", - "@backstage/plugin-dynatrace": "0.1.1", - "@internal/plugin-todo-list": "1.0.3", - "@internal/plugin-todo-list-backend": "1.0.3", - "@internal/plugin-todo-list-common": "1.0.3", - "@backstage/plugin-explore": "0.3.38", - "@backstage/plugin-explore-react": "0.0.19", - "@backstage/plugin-firehydrant": "0.1.24", - "@backstage/plugin-fossa": "0.2.39", - "@backstage/plugin-gcalendar": "0.3.3", - "@backstage/plugin-gcp-projects": "0.3.26", - "@backstage/plugin-git-release-manager": "0.3.20", - "@backstage/plugin-github-actions": "0.5.7", - "@backstage/plugin-github-deployments": "0.1.38", - "@backstage/plugin-github-pull-requests-board": "0.1.1", - "@backstage/plugin-gitops-profiles": "0.3.25", - "@backstage/plugin-gocd": "0.1.13", - "@backstage/plugin-graphiql": "0.2.39", - "@backstage/plugin-graphql-backend": "0.1.24", - "@backstage/plugin-home": "0.4.23", - "@backstage/plugin-ilert": "0.1.33", - "@backstage/plugin-jenkins": "0.7.6", - "@backstage/plugin-jenkins-backend": "0.1.24", - "@backstage/plugin-jenkins-common": "0.1.6", - "@backstage/plugin-kafka": "0.3.7", - "@backstage/plugin-kafka-backend": "0.2.27", - "@backstage/plugin-kubernetes": "0.7.0", - "@backstage/plugin-kubernetes-backend": "0.7.0", - "@backstage/plugin-kubernetes-common": "0.4.0", - "@backstage/plugin-lighthouse": "0.3.7", - "@backstage/plugin-newrelic": "0.3.25", - "@backstage/plugin-newrelic-dashboard": "0.2.0", - "@backstage/plugin-org": "0.5.7", - "@backstage/plugin-pagerduty": "0.5.0", - "@backstage/plugin-periskop": "0.1.5", - "@backstage/plugin-periskop-backend": "0.1.5", - "@backstage/plugin-permission-backend": "0.5.9", - "@backstage/plugin-permission-common": "0.6.3", - "@backstage/plugin-permission-node": "0.6.3", - "@backstage/plugin-permission-react": "0.4.3", - "@backstage/plugin-proxy-backend": "0.2.28", - "@backstage/plugin-rollbar": "0.4.7", - "@backstage/plugin-rollbar-backend": "0.1.31", - "@backstage/plugin-scaffolder": "1.4.0", - "@backstage/plugin-scaffolder-backend": "1.4.0", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.9", - "@backstage/plugin-scaffolder-backend-module-rails": "0.4.2", - "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.7", - "@backstage/plugin-scaffolder-common": "1.1.2", - "@backstage/plugin-search": "1.0.0", - "@backstage/plugin-search-backend": "1.0.0", - "@backstage/plugin-search-backend-module-elasticsearch": "1.0.0", - "@backstage/plugin-search-backend-module-pg": "0.3.5", - "@backstage/plugin-search-backend-node": "1.0.0", - "@backstage/plugin-search-common": "1.0.0", - "@backstage/plugin-search-react": "1.0.0", - "@backstage/plugin-sentry": "0.4.0", - "@backstage/plugin-shortcuts": "0.2.8", - "@backstage/plugin-sonarqube": "0.3.7", - "@backstage/plugin-splunk-on-call": "0.3.31", - "@backstage/plugin-stack-overflow": "0.1.3", - "@backstage/plugin-stack-overflow-backend": "0.1.3", - "@backstage/plugin-tech-insights": "0.2.3", - "@backstage/plugin-tech-insights-backend": "0.5.0", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.18", - "@backstage/plugin-tech-insights-common": "0.2.5", - "@backstage/plugin-tech-insights-node": "0.3.2", - "@backstage/plugin-tech-radar": "0.5.14", - "@backstage/plugin-techdocs": "1.3.0", - "@backstage/plugin-techdocs-addons-test-utils": "1.0.2", - "@backstage/plugin-techdocs-backend": "1.2.0", - "@backstage/plugin-techdocs-module-addons-contrib": "1.0.2", - "@backstage/plugin-techdocs-node": "1.2.0", - "@backstage/plugin-techdocs-react": "1.0.2", - "@backstage/plugin-todo": "0.2.9", - "@backstage/plugin-todo-backend": "0.1.31", - "@backstage/plugin-user-settings": "0.4.6", - "@backstage/plugin-vault": "0.1.1", - "@backstage/plugin-vault-backend": "0.2.0", - "@backstage/plugin-xcmetrics": "0.2.27", - "@internal/plugin-catalog-customized": "0.0.0", - "@backstage/plugin-sonarqube-backend": "0.0.0", - "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.0.0", - "@backstage/plugin-github-issues": "0.0.0" - }, - "changesets": [ - "big-mirrors-play", - "calm-clocks-drum", - "cool-months-tickle", - "create-app-1658824524", - "create-app-1659429685", - "create-app-1660127534", - "cyan-carpets-build", - "dirty-pears-allow", - "dull-owls-grab", - "dull-pumas-hope", - "dull-starfishes-chew", - "eighty-radios-look", - "empty-apple-pie", - "empty-apples-tie", - "famous-bikes-brush", - "fast-panthers-fold", - "few-berries-deny", - "flat-zebras-draw", - "forty-lobsters-guess", - "fresh-hounds-argue", - "friendly-sheep-flash", - "green-laws-greet", - "hot-crabs-wonder", - "itchy-mice-kiss", - "khaki-meals-hammer", - "little-laws-heal", - "long-pumpkins-walk", - "loud-panthers-arrive", - "lovely-walls-brush", - "mean-ants-hang", - "metal-points-itch", - "mighty-penguins-tap", - "modern-shrimps-wave", - "nine-mails-crash", - "odd-adults-smash", - "odd-tomatoes-juggle", - "olive-tips-camp", - "plenty-timers-flow", - "popular-starfishes-bow", - "pretty-gifts-do", - "purple-apricots-build", - "red-turtles-melt", - "renovate-15030f1", - "renovate-5b3cf8c", - "renovate-5b7b62b", - "renovate-5ba3a71", - "renovate-5f2abaa", - "rich-readers-return", - "rotten-moles-give", - "short-trains-roll", - "silver-carpets-grin", - "silver-poets-push", - "strange-crabs-confess", - "strange-moles-design", - "stupid-carpets-remain", - "tall-mugs-press", - "tasty-falcons-press", - "techdocs-eagles-stare", - "ten-roses-walk", - "thick-readers-invite", - "three-parents-love", - "tricky-ligers-move", - "twenty-humans-visit", - "violet-mayflies-mix", - "violet-trees-play", - "weak-shrimps-deny", - "wicked-knives-wink" - ] -} diff --git a/.changeset/pretty-gifts-do.md b/.changeset/pretty-gifts-do.md deleted file mode 100644 index 8d939db6b6..0000000000 --- a/.changeset/pretty-gifts-do.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration': patch ---- - -Avoid double encoding of the file path in `getBitbucketDownloadUrl` diff --git a/.changeset/purple-apricots-build.md b/.changeset/purple-apricots-build.md deleted file mode 100644 index da473070c9..0000000000 --- a/.changeset/purple-apricots-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -The config prop `ensureExists` now applies to schema creation when `pluginDivisionMode` is set to `schema`. This means schemas will no longer accidentally be automatically created when `ensureExists` is set to `false`. diff --git a/.changeset/red-turtles-melt.md b/.changeset/red-turtles-melt.md deleted file mode 100644 index 436e69116c..0000000000 --- a/.changeset/red-turtles-melt.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/integration': minor -'@backstage/plugin-techdocs-node': minor -'@backstage/plugin-techdocs-module-addons-contrib': patch ---- - -feat(techdocs): add edit button support for bitbucketServer diff --git a/.changeset/renovate-15030f1.md b/.changeset/renovate-15030f1.md deleted file mode 100644 index 5347a7f3e8..0000000000 --- a/.changeset/renovate-15030f1.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated dependencies `@svgr/*` to `6.3.x`. diff --git a/.changeset/renovate-34c125c.md b/.changeset/renovate-34c125c.md deleted file mode 100644 index 5f59ab4124..0000000000 --- a/.changeset/renovate-34c125c.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-catalog-graphql': patch -'@backstage/plugin-graphql-backend': patch ---- - -Updated dependency `@graphql-tools/schema` to `^9.0.0`. diff --git a/.changeset/renovate-5b3cf8c.md b/.changeset/renovate-5b3cf8c.md deleted file mode 100644 index d0e32e8837..0000000000 --- a/.changeset/renovate-5b3cf8c.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch ---- - -Updated dependency `@google-cloud/firestore` to `^6.0.0`. diff --git a/.changeset/renovate-5b7b62b.md b/.changeset/renovate-5b7b62b.md deleted file mode 100644 index 4027ee6c7c..0000000000 --- a/.changeset/renovate-5b7b62b.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/backend-common': patch -'@backstage/backend-tasks': patch -'@backstage/integration': patch -'@backstage/plugin-cicd-statistics': patch -'@backstage/plugin-code-climate': patch -'@backstage/plugin-gocd': patch -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-periskop': patch -'@backstage/plugin-sentry': patch -'@backstage/plugin-splunk-on-call': patch -'@backstage/plugin-tech-insights-common': patch -'@backstage/plugin-tech-insights-node': patch -'@backstage/plugin-xcmetrics': patch ---- - -Updated dependency `@types/luxon` to `^3.0.0`. diff --git a/.changeset/renovate-5ba3a71.md b/.changeset/renovate-5ba3a71.md deleted file mode 100644 index ba1bdd3b73..0000000000 --- a/.changeset/renovate-5ba3a71.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-api-docs': patch ---- - -Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. diff --git a/.changeset/renovate-5f2abaa.md b/.changeset/renovate-5f2abaa.md deleted file mode 100644 index 8114448cb4..0000000000 --- a/.changeset/renovate-5f2abaa.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-issues': patch ---- - -Updated dependency `@spotify/prettier-config` to `^14.0.0`. diff --git a/.changeset/rich-readers-return.md b/.changeset/rich-readers-return.md deleted file mode 100644 index 3c8f3d7b5a..0000000000 --- a/.changeset/rich-readers-return.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Scroll techdocs navigation into focus and expand any nested navigation items. diff --git a/.changeset/rotten-moles-give.md b/.changeset/rotten-moles-give.md deleted file mode 100644 index 0ca3d3eadc..0000000000 --- a/.changeset/rotten-moles-give.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/integration': patch ---- - -Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the -`/-/` scope would result in a fetch URL that did not support -private-token-based authentication. diff --git a/.changeset/selfish-items-play.md b/.changeset/selfish-items-play.md deleted file mode 100644 index 6df9bd0de1..0000000000 --- a/.changeset/selfish-items-play.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-node': patch -'@backstage/plugin-scaffolder-backend': patch ---- - -Fixed typos in alpha types. diff --git a/.changeset/serious-flowers-smash.md b/.changeset/serious-flowers-smash.md deleted file mode 100644 index 274250b1dd..0000000000 --- a/.changeset/serious-flowers-smash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Fixed bug where repository filter was including all archived repositories diff --git a/.changeset/seven-nails-cough.md b/.changeset/seven-nails-cough.md deleted file mode 100644 index 1464e29235..0000000000 --- a/.changeset/seven-nails-cough.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-test-utils': patch ---- - -Added alpha test helpers for the new experimental backend system. diff --git a/.changeset/short-trains-roll.md b/.changeset/short-trains-roll.md deleted file mode 100644 index 709d534d57..0000000000 --- a/.changeset/short-trains-roll.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor ---- - -User Bearer Authorization header at Git commands with token-based auth at Bitbucket Server. diff --git a/.changeset/silver-carpets-grin.md b/.changeset/silver-carpets-grin.md deleted file mode 100644 index 9865393631..0000000000 --- a/.changeset/silver-carpets-grin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-issues': minor ---- - -New plugin for displaying GitHub Issues added diff --git a/.changeset/silver-poets-push.md b/.changeset/silver-poets-push.md deleted file mode 100644 index 2e64915a80..0000000000 --- a/.changeset/silver-poets-push.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-pull-requests-board': patch ---- - -Fixed rendering when PR contains references to deleted Github accounts diff --git a/.changeset/smooth-planes-itch.md b/.changeset/smooth-planes-itch.md deleted file mode 100644 index 638a2e0bf6..0000000000 --- a/.changeset/smooth-planes-itch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Fail gracefully if an invalid `Authorization` header is passed to `POST /v2/tasks` diff --git a/.changeset/strange-crabs-confess.md b/.changeset/strange-crabs-confess.md deleted file mode 100644 index 48456b870a..0000000000 --- a/.changeset/strange-crabs-confess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Add missing `res.end()` in scaffolder backend `EventStream` usage diff --git a/.changeset/strange-moles-design.md b/.changeset/strange-moles-design.md deleted file mode 100644 index 8515d02e9b..0000000000 --- a/.changeset/strange-moles-design.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Fix issue for conditional decisions based on properties stored as arrays, like tags. - -Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`. diff --git a/.changeset/strong-birds-pretend.md b/.changeset/strong-birds-pretend.md deleted file mode 100644 index 9ad3bae97b..0000000000 --- a/.changeset/strong-birds-pretend.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-openapi': patch ---- - -Add an `$openapi` placeholder resolver that supports more use cases for resolving `$ref` instances. This means that the quite recently added `OpenApiRefProcessor` has been deprecated in favor of the `openApiPlaceholderResolver`. - -An example of how to use it can be seen below. - -```yaml -apiVersion: backstage.io/v1alpha1 -kind: API -metadata: - name: example - description: Example API -spec: - type: openapi - lifecycle: production - owner: team - definition: - $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances -``` diff --git a/.changeset/stupid-carpets-remain.md b/.changeset/stupid-carpets-remain.md deleted file mode 100644 index c0b4a54bfd..0000000000 --- a/.changeset/stupid-carpets-remain.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-server': minor ---- - -Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. - -The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). - -**Before:** - -```typescript -// packages/backend/src/plugins/catalog.ts -builder.addProcessor( - BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), -); -``` - -```yaml -# app-config.yaml -catalog: - locations: - - type: bitbucket-discovery - target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml -``` - -**After:** - -```typescript -// packages/backend/src/plugins/catalog.ts -builder.addEntityProvider( - BitbucketServerEntityProvider.fromConfig(env.config, { - logger: env.logger, - schedule: env.scheduler.createScheduledTaskRunner({ - frequency: { minutes: 30 }, - timeout: { minutes: 3 }, - }), - }), -); -``` - -```yaml -# app-config.yaml -catalog: - providers: - bitbucketServer: - yourProviderId: # identifies your ingested dataset - catalogPath: /catalog-info.yaml # default value - filters: # optional - projectKey: '.*' # optional; RegExp - repoSlug: '.*' # optional; RegExp -``` diff --git a/.changeset/sweet-apricots-kneel.md b/.changeset/sweet-apricots-kneel.md deleted file mode 100644 index 1a114ec4ae..0000000000 --- a/.changeset/sweet-apricots-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-plugin-api': patch ---- - -Add a note that the `fetchApi` utility should not be used on sign-in page implementations and similar. diff --git a/.changeset/tall-mugs-press.md b/.changeset/tall-mugs-press.md deleted file mode 100644 index 2a0053e95d..0000000000 --- a/.changeset/tall-mugs-press.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Improved support for wildcards in `catalogPath` diff --git a/.changeset/tasty-falcons-press.md b/.changeset/tasty-falcons-press.md deleted file mode 100644 index 288f527e17..0000000000 --- a/.changeset/tasty-falcons-press.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': minor ---- - -Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. diff --git a/.changeset/techdocs-eagles-stare.md b/.changeset/techdocs-eagles-stare.md deleted file mode 100644 index cf8bda4024..0000000000 --- a/.changeset/techdocs-eagles-stare.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). diff --git a/.changeset/ten-roses-walk.md b/.changeset/ten-roses-walk.md deleted file mode 100644 index 87b711db2a..0000000000 --- a/.changeset/ten-roses-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-sonarqube': patch ---- - -Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file diff --git a/.changeset/thick-readers-invite.md b/.changeset/thick-readers-invite.md deleted file mode 100644 index 689ae7eb0c..0000000000 --- a/.changeset/thick-readers-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor ---- - -Updated `publish:gitlab:merge-request` action to allow commit updates and deletes diff --git a/.changeset/three-parents-love.md b/.changeset/three-parents-love.md deleted file mode 100644 index 33f13cc218..0000000000 --- a/.changeset/three-parents-love.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Use the non-deprecated form of table.unique in knex diff --git a/.changeset/tricky-ligers-move.md b/.changeset/tricky-ligers-move.md deleted file mode 100644 index 21aa7757ba..0000000000 --- a/.changeset/tricky-ligers-move.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor ---- - -Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action diff --git a/.changeset/twenty-humans-visit.md b/.changeset/twenty-humans-visit.md deleted file mode 100644 index e543d30145..0000000000 --- a/.changeset/twenty-humans-visit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs-react': patch ---- - -Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag. -Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag. diff --git a/.changeset/twenty-terms-dress.md b/.changeset/twenty-terms-dress.md deleted file mode 100644 index 99acaf612a..0000000000 --- a/.changeset/twenty-terms-dress.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Updated backend to write stack trace when the backend fails to start up. - -To apply this change to your Backstage installation, make the following change to `packages/backend/src/index.ts` - -```diff - cors: - origin: http://localhost:3000 -- console.error(`Backend failed to start up, ${error}`); -+ console.error('Backend failed to start up', error); -``` diff --git a/.changeset/violet-mayflies-mix.md b/.changeset/violet-mayflies-mix.md deleted file mode 100644 index a4d078ac35..0000000000 --- a/.changeset/violet-mayflies-mix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-msgraph': patch ---- - -Adjust references in deprecation warnings to point to stable URL/document. diff --git a/.changeset/violet-trees-play.md b/.changeset/violet-trees-play.md deleted file mode 100644 index 00f1e156a8..0000000000 --- a/.changeset/violet-trees-play.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/plugin-shortcuts': minor ---- - -Internal observable replaced with a mapping from the storage API. This fixes shortcuts initialization when using firestore. - -`ShortcutApi.get` method, that returns an immediate snapshot of shortcuts, made public. - -Example of how to get and observe `shortcuts`: - -```typescript -const shortcutApi = useApi(shortcutsApiRef); -const shortcuts = useObservable(shortcutApi.shortcut$(), shortcutApi.get()); -``` diff --git a/.changeset/weak-drinks-report.md b/.changeset/weak-drinks-report.md deleted file mode 100644 index 1f8ee512ba..0000000000 --- a/.changeset/weak-drinks-report.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-code-climate': patch ---- - -Send Authorization headers in fetch requests using FetchApi in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled. diff --git a/.changeset/weak-shrimps-deny.md b/.changeset/weak-shrimps-deny.md deleted file mode 100644 index 38b5ca1a8a..0000000000 --- a/.changeset/weak-shrimps-deny.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@techdocs/cli': minor ---- - -Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. diff --git a/.changeset/wicked-knives-wink.md b/.changeset/wicked-knives-wink.md deleted file mode 100644 index e0f3e485c0..0000000000 --- a/.changeset/wicked-knives-wink.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. - -To apply this change to your Backstage installation make the following change to your `app-config.yaml` - -```diff - cors: - origin: http://localhost:3000 -- methods: [GET, POST, PUT, DELETE] -+ methods: [GET, POST, PUT, DELETE, PATCH, HEAD] -``` diff --git a/.changeset/witty-seas-tie.md b/.changeset/witty-seas-tie.md deleted file mode 100644 index e0ee2f57d4..0000000000 --- a/.changeset/witty-seas-tie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-tech-radar': patch ---- - -Move CSS overflow property to quadrant block element (i.e. to a div element) in RadarLegend component. diff --git a/docs/releases/v1.5.0-changelog.md b/docs/releases/v1.5.0-changelog.md new file mode 100644 index 0000000000..6e4d251ef7 --- /dev/null +++ b/docs/releases/v1.5.0-changelog.md @@ -0,0 +1,1725 @@ +# Release v1.5.0 + +## @backstage/backend-app-api@0.2.0 + +### Minor Changes + +- 5df230d48c: Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. + The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-permission-node@0.6.4 + +## @backstage/backend-common@0.15.0 + +### Minor Changes + +- 12e9b54f0e: Added back support for when no branch is provided to the `UrlReader` for Bitbucket Server +- 30012e7d8c: - Added `force` and `remoteRef` option to `push` method in `git` actions + - Added `addRemote` and `deleteRemote` methods to `git` actions + +### Patch Changes + +- fc8a5f797b: Improve `scm/git` wrapper around `isomorphic-git` library : + + - Add `checkout` function, + - Add optional `remoteRef` parameter in the `push` function. + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. + +- 1732a18a7a: Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. + +- 3b7930b3e5: Add support for Bearer Authorization header / token-based auth at Git commands. + +- cfa078e255: The `ZipArchiveResponse` now correctly handles corrupt ZIP archives. + + Before this change, certain corrupt ZIP archives either cause the inflater to throw (as expected), or will hang the parser indefinitely. + + By switching out the `zip` parsing library, we now write to a temporary directory, and load from disk which should ensure that the parsing of the `.zip` files are done correctly because `streaming` of `zip` paths is technically impossible without being able to parse the headers at the end of the file. + +- 770d3f92c4: The config prop `ensureExists` now applies to schema creation when `pluginDivisionMode` is set to `schema`. This means schemas will no longer accidentally be automatically created when `ensureExists` is set to `false`. + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. + +- Updated dependencies + - @backstage/integration@1.3.0 + +## @backstage/backend-defaults@0.1.0 + +### Minor Changes + +- 5df230d48c: Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. + The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.2.0 + - @backstage/backend-plugin-api@0.1.1 + +## @backstage/core-components@0.11.0 + +### Minor Changes + +- d0eefc499a: Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. + +### Patch Changes + +- a22af3edc8: Adding a `className` prop to the `MarkdownContent` component +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + +## @backstage/integration@1.3.0 + +### Minor Changes + +- 593dea6710: Add support for Basic Auth for Bitbucket Server. +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- 163243a4d1: Handle incorrect return type from Octokit paginate plugin to resolve reading URLs from GitHub +- c4b460a47d: Avoid double encoding of the file path in `getBitbucketDownloadUrl` +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- 1f27d83933: Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the + `/-/` scope would result in a fetch URL that did not support + private-token-based authentication. + +## @techdocs/cli@1.2.0 + +### Minor Changes + +- 855952db53: Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-techdocs-node@1.3.0 + +## @backstage/plugin-adr@0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + +## @backstage/plugin-adr-backend@0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-adr-common@0.2.0 + - @backstage/integration@1.3.0 + +## @backstage/plugin-adr-common@0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + +## @backstage/plugin-catalog@1.5.0 + +### Minor Changes + +- 80da5162c7: Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button. + + You can modify it by doing: + + ```typescript jsx + import { catalogPlugin } from '@backstage/plugin-catalog'; + + catalogPlugin.__experimentalReconfigure({ + createButtonTitle: 'New', + }); + ``` + +- fe94398418: Allow changing the subtitle of the `CatalogTable` component + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.0 + +### Minor Changes + +- f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. + + The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). + + **Before:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + locations: + - type: bitbucket-discovery + target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml + ``` + + **After:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '.*' # optional; RegExp + repoSlug: '.*' # optional; RegExp + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-github-issues@0.1.0 + +### Minor Changes + +- ffd5e47fb5: New plugin for displaying GitHub Issues added + +### Patch Changes + +- 347ea327c2: Moved communication with GitHub graphql API to the dedicated plugin API. + Fixes issue when no GitHub Issues are rendered when partial failure is returned from GitHub API. +- b522f49403: Updated dependency `@spotify/prettier-config` to `^14.0.0`. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-scaffolder@1.5.0 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-permission-react@0.4.4 + +## @backstage/plugin-scaffolder-backend@1.5.0 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin +- 593dea6710: Add support for Basic Auth for Bitbucket Server. +- 3b7930b3e5: Add support for Bearer Authorization header / token-based auth at Git commands. +- 3f1316f1c5: User Bearer Authorization header at Git commands with token-based auth at Bitbucket Server. +- eeff5046ae: Updated `publish:gitlab:merge-request` action to allow commit updates and deletes +- 692d5d3405: Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action + +### Patch Changes + +- fc8a5f797b: Add a `publish:gerrit:review` scaffolder action +- c971afbf21: The `publish:file` action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default. +- b10b6c4aa4: Fix issue on Windows where templated files where not properly skipped as intended. +- 56e1b4b89c: Fixed typos in alpha types. +- dad0f65494: Fail gracefully if an invalid `Authorization` header is passed to `POST /v2/tasks` +- 014b3b7776: Add missing `res.end()` in scaffolder backend `EventStream` usage +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-shortcuts@0.3.0 + +### Minor Changes + +- 5b769fddb5: Internal observable replaced with a mapping from the storage API. This fixes shortcuts initialization when using firestore. + + `ShortcutApi.get` method, that returns an immediate snapshot of shortcuts, made public. + + Example of how to get and observe `shortcuts`: + + ```typescript + const shortcutApi = useApi(shortcutsApiRef); + const shortcuts = useObservable(shortcutApi.shortcut$(), shortcutApi.get()); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-sonarqube@0.4.0 + +### Minor Changes + +- 619b515172: **BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin + + The whole proxy's `'/sonarqube':` key can be removed from your configuration files. + + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + +### Patch Changes + +- f9c310a439: Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-sonarqube-backend@0.1.0 + +### Minor Changes + +- e2be9ab3a4: Initial creation of the plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-techdocs-node@1.3.0 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- c8196bd37d: Fix AWS S3 404 NotFound error + + When reading an object from the S3 bucket through a stream, the aws-sdk getObject() API may throw a 404 NotFound Error with no error message or, in fact, any sort of HTTP-layer error responses. These fail the @backstage/error's assertError() checks, so they must be wrapped. The test for this case was also updated to match the wrapped error message. + +- f833344611: Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + +## @backstage/app-defaults@1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + +## @backstage/backend-plugin-api@0.1.1 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 34c2f5aca1: The factory returned by `createBackendPlugin` and `createBackendModule` no longer require a parameter to be passed if the options are optional. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + +## @backstage/backend-tasks@0.3.4 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/backend-test-utils@0.1.27 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 56e1b4b89c: Added alpha test helpers for the new experimental backend system. +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/backend-common@0.15.0 + - @backstage/backend-app-api@0.2.0 + - @backstage/backend-plugin-api@0.1.1 + +## @backstage/cli@0.18.1 + +### Patch Changes + +- d45bbfeb69: Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`. +- 72c228fdb8: Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external. +- a539564c0d: Added Backstage version to output of `yarn backstage-cli info` command +- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. +- 94155a41e0: Updated dependencies `@svgr/*` to `6.3.x`. + +## @backstage/core-app-api@1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + +## @backstage/core-plugin-api@1.0.5 + +### Patch Changes + +- 80da5162c7: Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining + `__experimentalConfigure` in your `createPlugin` options. See for more information. + + This is an experimental feature and it will have breaking changes in the future. + +- 87649a06bf: Add a note that the `fetchApi` utility should not be used on sign-in page implementations and similar. + +## @backstage/create-app@0.4.30 + +### Patch Changes + +- 73cee58fc2: Bumped create-app version. + +- f762386d48: Bumped create-app version. + +- b162bbf464: Bumped create-app version. + +- db76fc6255: The `better-sqlite3` dependency has been moved back to production `"dependencies"` in `packages/backend/package.json`, with instructions in the Dockerfile to move it to `"devDependencies"` if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option. + +- ab9edd8b58: Updated backend to write stack trace when the backend fails to start up. + + To apply this change to your Backstage installation, make the following change to `packages/backend/src/index.ts` + + ```diff + cors: + origin: http://localhost:3000 + - console.error(`Backend failed to start up, ${error}`); + + console.error('Backend failed to start up', error); + ``` + +- 0174a0a022: Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. + + To apply this change to your Backstage installation make the following change to your `app-config.yaml` + + ```diff + cors: + origin: http://localhost:3000 + - methods: [GET, POST, PUT, DELETE] + + methods: [GET, POST, PUT, DELETE, PATCH, HEAD] + ``` + +## @backstage/dev-utils@1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + +## @backstage/integration-react@1.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/test-utils@1.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + +## @backstage/plugin-airbrake@0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/dev-utils@1.0.5 + - @backstage/test-utils@1.1.3 + +## @backstage/plugin-airbrake-backend@0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-allure@0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-analytics-module-ga@0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-apache-airflow@0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-api-docs@0.8.8 + +### Patch Changes + +- dae12c71cf: Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-apollo-explorer@0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-app-backend@0.3.35 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-auth-backend@0.15.1 + +### Patch Changes + +- c676a9e07b: Fixed a bug in auth plugin on the backend where it ignores the skip migration database options when using the database provider. +- 2d7d6028e1: Updated dependency `@google-cloud/firestore` to `^6.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + +## @backstage/plugin-auth-node@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-azure-devops@0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-azure-devops-backend@0.3.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-badges@0.2.32 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-badges-backend@0.1.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-bazaar@0.1.23 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-bazaar-backend@0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-test-utils@0.1.27 + +## @backstage/plugin-bitbucket-cloud-common@0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + +## @backstage/plugin-bitrise@0.1.35 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-catalog-backend@1.3.1 + +### Patch Changes + +- 56e1b4b89c: Fixed typos in alpha types. + +- e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags. + + Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`. + +- 059ae348b4: Use the non-deprecated form of table.unique in knex + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-permission-node@0.6.4 + +## @backstage/plugin-catalog-backend-module-aws@0.1.8 + +### Patch Changes + +- 17d45dbf10: Deprecate `AwsS3DiscoveryProcessor` in favor of `AwsS3EntityProvider` (since v0.1.4). + + You can find a migration guide at + [the release notes for v0.1.4](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014). + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-azure@0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + - @backstage/plugin-bitbucket-cloud-common@0.1.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + - @backstage/plugin-bitbucket-cloud-common@0.1.2 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-github@0.1.6 + +### Patch Changes + +- f48950e34b: Github Entity Provider functionality for adding entities to the catalog. + + This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. + + More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. + +- c59d1ce487: Fixed bug where repository filter was including all archived repositories + +- 97f0a37378: Improved support for wildcards in `catalogPath` + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-gitlab@0.1.6 + +### Patch Changes + +- 24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp + + ```yaml + providers: + gitlab: + stg: + host: gitlab.stg.company.io + branch: main + projectPattern: 'john/' # new option + entityFilename: template.yaml + ``` + + With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-msgraph@0.4.1 + +### Patch Changes + +- b1995df9f3: Adjust references in deprecation warnings to point to stable URL/document. +- Updated dependencies + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.1 + +### Patch Changes + +- b50e8e533b: Add an `$openapi` placeholder resolver that supports more use cases for resolving `$ref` instances. This means that the quite recently added `OpenApiRefProcessor` has been deprecated in favor of the `openApiPlaceholderResolver`. + + An example of how to use it can be seen below. + + ```yaml + apiVersion: backstage.io/v1alpha1 + kind: API + metadata: + name: example + description: Example API + spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances + ``` + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + +## @backstage/plugin-catalog-common@1.0.5 + +### Patch Changes + +- 92103db537: Export aggregated list of all catalog permissions + +## @backstage/plugin-catalog-graph@0.2.20 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-catalog-graphql@0.3.12 + +### Patch Changes + +- fa3eeee92d: Updated dependency `@graphql-tools/schema` to `^9.0.0`. + +## @backstage/plugin-catalog-import@0.8.11 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + +## @backstage/plugin-catalog-node@1.0.1 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 56e1b4b89c: Fixed typos in alpha types. +- Updated dependencies + - @backstage/backend-plugin-api@0.1.1 + +## @backstage/plugin-catalog-react@1.1.3 + +### Patch Changes + +- 44e691a7f9: Modify description column to not use auto width. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + +## @backstage/plugin-cicd-statistics@0.1.10 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-cicd-statistics@0.1.10 + +## @backstage/plugin-circleci@0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-cloudbuild@0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-code-climate@0.1.8 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- 831a8fee86: Send Authorization headers in fetch requests using FetchApi in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-code-coverage@0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-code-coverage-backend@0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + +## @backstage/plugin-codescene@0.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-config-schema@0.1.31 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-cost-insights@0.11.30 + +### Patch Changes + +- b746eca638: Make `products` field optional in the config +- daf4b33e34: Add name property to Group +- 08562ebe11: Display minus sign in trends in `CostOverviewCard` +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-cost-insights-common@0.1.1 + +### Patch Changes + +- daf4b33e34: Add name property to Group + +## @backstage/plugin-dynatrace@0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-explore@0.3.39 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-explore-react@0.0.20 + +## @backstage/plugin-explore-react@0.0.20 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-firehydrant@0.1.25 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-fossa@0.2.40 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-gcalendar@0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-gcp-projects@0.3.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-git-release-manager@0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-github-actions@0.5.8 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-github-deployments@0.1.39 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + +## @backstage/plugin-github-pull-requests-board@0.1.2 + +### Patch Changes + +- 73268a67ff: Fixed rendering when PR contains references to deleted Github accounts +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-gitops-profiles@0.3.26 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-gocd@0.1.14 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-graphiql@0.2.40 + +### Patch Changes + +- 3a8ab72248: Minor internal tweak to lazy loading in order to improve module compatibility. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-graphql-backend@0.1.25 + +### Patch Changes + +- fa3eeee92d: Updated dependency `@graphql-tools/schema` to `^9.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-catalog-graphql@0.3.12 + +## @backstage/plugin-home@0.4.24 + +### Patch Changes + +- df7b9158b8: Add wrap-around for the listing of tools to prevent increasing width with name length. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-stack-overflow@0.1.4 + +## @backstage/plugin-ilert@0.1.34 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-jenkins@0.7.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-jenkins-common@0.1.7 + +## @backstage/plugin-jenkins-backend@0.1.25 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-jenkins-common@0.1.7 + +## @backstage/plugin-jenkins-common@0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5 + +## @backstage/plugin-kafka@0.3.8 + +### Patch Changes + +- bde245f0bf: Add dashboard URL feature and fix minor styling issues. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-kafka-backend@0.2.28 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-kubernetes@0.7.1 + +### Patch Changes + +- 860ed68343: Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax. +- f563b86a5b: Adds namespace column to Kubernetes error reporting table +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.4.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-kubernetes-backend@0.7.1 + +### Patch Changes + +- 0297da83c0: Added `DaemonSets` to the default kubernetes resources. +- 0cd87cf30d: Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-kubernetes-common@0.4.1 + - @backstage/plugin-auth-node@0.2.4 + +## @backstage/plugin-kubernetes-common@0.4.1 + +### Patch Changes + +- 0297da83c0: Added `DaemonSets` to the default kubernetes resources. + +## @backstage/plugin-lighthouse@0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-newrelic@0.3.26 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-newrelic-dashboard@0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-org@0.5.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-pagerduty@0.5.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-periskop@0.1.6 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-periskop-backend@0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-permission-backend@0.5.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-permission-node@0.6.4 + +## @backstage/plugin-permission-node@0.6.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + +## @backstage/plugin-permission-react@0.4.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-proxy-backend@0.2.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-rollbar@0.4.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-rollbar-backend@0.1.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.5.0 + +## @backstage/plugin-search@1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + +## @backstage/plugin-search-backend@1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-permission-node@0.6.4 + - @backstage/plugin-search-backend-node@1.0.1 + +## @backstage/plugin-search-backend-module-elasticsearch@1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.0.1 + +## @backstage/plugin-search-backend-module-pg@0.3.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-search-backend-node@1.0.1 + +## @backstage/plugin-search-backend-node@1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + +## @backstage/plugin-search-react@1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-sentry@0.4.1 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-splunk-on-call@0.3.32 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-stack-overflow@0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.4.24 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-stack-overflow-backend@0.1.4 + +### Patch Changes + +- ea5631a8b2: Added API key as separate configuration + +## @backstage/plugin-tech-insights@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-tech-insights-common@0.2.6 + +## @backstage/plugin-tech-insights-backend@0.5.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-tech-insights-common@0.2.6 + - @backstage/plugin-tech-insights-node@0.3.3 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-tech-insights-common@0.2.6 + - @backstage/plugin-tech-insights-node@0.3.3 + +## @backstage/plugin-tech-insights-common@0.2.6 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. + +## @backstage/plugin-tech-insights-node@0.3.3 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-tech-insights-common@0.2.6 + +## @backstage/plugin-tech-radar@0.5.15 + +### Patch Changes + +- a641f79dcb: Move CSS overflow property to quadrant block element (i.e. to a div element) in RadarLegend component. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-techdocs@1.3.1 + +### Patch Changes + +- e924d2d013: Added back reduction in size, this fixes the extremely large TeachDocs headings +- b86ed4d990: Add highlight to active navigation item and navigation parents. +- 7a98c73dc8: Fixed techdocs sidebar layout bug for medium devices. +- 8acb22205c: Scroll techdocs navigation into focus and expand any nested navigation items. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.3.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + - @backstage/plugin-search-react@1.0.1 + +## @backstage/plugin-techdocs-backend@1.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-techdocs-node@1.3.0 + - @backstage/plugin-catalog-common@1.0.5 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.3 + +### Patch Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/integration-react@1.1.3 + +## @backstage/plugin-techdocs-react@1.0.3 + +### Patch Changes + +- 29d6cf0147: Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag. + Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-todo@0.2.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-todo-backend@0.1.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + +## @backstage/plugin-user-settings@0.4.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @backstage/plugin-vault@0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + +## @backstage/plugin-vault-backend@0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-test-utils@0.1.27 + - @backstage/backend-tasks@0.3.4 + +## @backstage/plugin-xcmetrics@0.2.28 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## example-app@0.2.74 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1 + - @backstage/cli@0.18.1 + - @backstage/plugin-techdocs@1.3.1 + - @backstage/plugin-home@0.4.24 + - @backstage/core-components@0.11.0 + - @backstage/plugin-scaffolder@1.5.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-cost-insights@0.11.30 + - @backstage/plugin-graphiql@0.2.40 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-kafka@0.3.8 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3 + - @backstage/plugin-gocd@0.1.14 + - @backstage/plugin-sentry@0.4.1 + - @backstage/plugin-api-docs@0.8.8 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/plugin-shortcuts@0.3.0 + - @backstage/plugin-tech-radar@0.5.15 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-airbrake@0.3.8 + - @backstage/plugin-apache-airflow@0.2.1 + - @backstage/plugin-azure-devops@0.1.24 + - @backstage/plugin-badges@0.2.32 + - @internal/plugin-catalog-customized@0.0.1 + - @backstage/plugin-catalog-graph@0.2.20 + - @backstage/plugin-catalog-import@0.8.11 + - @backstage/plugin-circleci@0.3.8 + - @backstage/plugin-cloudbuild@0.3.8 + - @backstage/plugin-code-coverage@0.2.1 + - @backstage/plugin-dynatrace@0.1.2 + - @backstage/plugin-explore@0.3.39 + - @backstage/plugin-gcalendar@0.3.4 + - @backstage/plugin-gcp-projects@0.3.27 + - @backstage/plugin-github-actions@0.5.8 + - @backstage/plugin-jenkins@0.7.7 + - @backstage/plugin-lighthouse@0.3.8 + - @backstage/plugin-newrelic@0.3.26 + - @backstage/plugin-newrelic-dashboard@0.2.1 + - @backstage/plugin-org@0.5.8 + - @backstage/plugin-pagerduty@0.5.1 + - @backstage/plugin-permission-react@0.4.4 + - @backstage/plugin-rollbar@0.4.8 + - @backstage/plugin-search@1.0.1 + - @backstage/plugin-search-react@1.0.1 + - @backstage/plugin-stack-overflow@0.1.4 + - @backstage/plugin-tech-insights@0.2.4 + - @backstage/plugin-todo@0.2.10 + - @backstage/plugin-user-settings@0.4.7 + +## example-backend@0.2.74 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-kubernetes-backend@0.7.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + - @backstage/plugin-auth-backend@0.15.1 + - @backstage/plugin-graphql-backend@0.1.25 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-tech-insights-node@0.3.3 + - @backstage/plugin-catalog-backend@1.3.1 + - example-app@0.2.74 + - @backstage/plugin-app-backend@0.3.35 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-azure-devops-backend@0.3.14 + - @backstage/plugin-badges-backend@0.1.29 + - @backstage/plugin-code-coverage-backend@0.2.1 + - @backstage/plugin-jenkins-backend@0.1.25 + - @backstage/plugin-kafka-backend@0.2.28 + - @backstage/plugin-permission-backend@0.5.10 + - @backstage/plugin-permission-node@0.6.4 + - @backstage/plugin-proxy-backend@0.2.29 + - @backstage/plugin-rollbar-backend@0.1.32 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.3 + - @backstage/plugin-search-backend@1.0.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.0.1 + - @backstage/plugin-search-backend-module-pg@0.3.6 + - @backstage/plugin-search-backend-node@1.0.1 + - @backstage/plugin-tech-insights-backend@0.5.1 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.19 + - @backstage/plugin-techdocs-backend@1.2.1 + - @backstage/plugin-todo-backend@0.1.32 + +## example-backend-next@0.0.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.5.0 + - @backstage/backend-defaults@0.1.0 + - @backstage/plugin-catalog-backend@1.3.1 + +## techdocs-cli-embedded-app@0.2.73 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/plugin-techdocs@1.3.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + +## @internal/plugin-catalog-customized@0.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + +## @internal/plugin-todo-list@1.0.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + +## @internal/plugin-todo-list-backend@1.0.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 diff --git a/package.json b/package.json index 936ce63fb8..cfcfe00b1d 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.5.0-next.3", + "version": "1.5.0", "dependencies": { "@manypkg/get-packages": "^1.1.3", "@microsoft/api-documenter": "^7.17.11", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 1307046de3..77949cbb27 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/app-defaults +## 1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + ## 1.0.5-next.1 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index ecb89a5871..04852ec4b5 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.0.5-next.1", + "version": "1.0.5", "private": false, "publishConfig": { "access": "public", @@ -33,10 +33,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-permission-react": "^0.4.4-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-permission-react": "^0.4.4", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,8 +46,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@types/jest": "^26.0.7", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 5f5cd2c5f5..cdc3283c1f 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,62 @@ # example-app +## 0.2.74 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-kubernetes@0.7.1 + - @backstage/cli@0.18.1 + - @backstage/plugin-techdocs@1.3.1 + - @backstage/plugin-home@0.4.24 + - @backstage/core-components@0.11.0 + - @backstage/plugin-scaffolder@1.5.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-cost-insights@0.11.30 + - @backstage/plugin-graphiql@0.2.40 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-kafka@0.3.8 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.3 + - @backstage/plugin-gocd@0.1.14 + - @backstage/plugin-sentry@0.4.1 + - @backstage/plugin-api-docs@0.8.8 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/plugin-shortcuts@0.3.0 + - @backstage/plugin-tech-radar@0.5.15 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-airbrake@0.3.8 + - @backstage/plugin-apache-airflow@0.2.1 + - @backstage/plugin-azure-devops@0.1.24 + - @backstage/plugin-badges@0.2.32 + - @internal/plugin-catalog-customized@0.0.1 + - @backstage/plugin-catalog-graph@0.2.20 + - @backstage/plugin-catalog-import@0.8.11 + - @backstage/plugin-circleci@0.3.8 + - @backstage/plugin-cloudbuild@0.3.8 + - @backstage/plugin-code-coverage@0.2.1 + - @backstage/plugin-dynatrace@0.1.2 + - @backstage/plugin-explore@0.3.39 + - @backstage/plugin-gcalendar@0.3.4 + - @backstage/plugin-gcp-projects@0.3.27 + - @backstage/plugin-github-actions@0.5.8 + - @backstage/plugin-jenkins@0.7.7 + - @backstage/plugin-lighthouse@0.3.8 + - @backstage/plugin-newrelic@0.3.26 + - @backstage/plugin-newrelic-dashboard@0.2.1 + - @backstage/plugin-org@0.5.8 + - @backstage/plugin-pagerduty@0.5.1 + - @backstage/plugin-permission-react@0.4.4 + - @backstage/plugin-rollbar@0.4.8 + - @backstage/plugin-search@1.0.1 + - @backstage/plugin-search-react@1.0.1 + - @backstage/plugin-stack-overflow@0.1.4 + - @backstage/plugin-tech-insights@0.2.4 + - @backstage/plugin-todo@0.2.10 + - @backstage/plugin-user-settings@0.4.7 + ## 0.2.74-next.2 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 2e97049094..d4e0644f3a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,65 +1,65 @@ { "name": "example-app", - "version": "0.2.74-next.2", + "version": "0.2.74", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.1", + "@backstage/app-defaults": "^1.0.5", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@backstage/config": "^1.0.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-airbrake": "^0.3.8-next.1", - "@backstage/plugin-api-docs": "^0.8.8-next.2", - "@backstage/plugin-azure-devops": "^0.1.24-next.1", - "@backstage/plugin-apache-airflow": "^0.2.1-next.1", - "@backstage/plugin-badges": "^0.2.32-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-graph": "^0.2.20-next.1", - "@backstage/plugin-catalog-import": "^0.8.11-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-circleci": "^0.3.8-next.1", - "@backstage/plugin-cloudbuild": "^0.3.8-next.1", - "@backstage/plugin-code-coverage": "^0.2.1-next.1", - "@backstage/plugin-cost-insights": "^0.11.30-next.1", - "@backstage/plugin-dynatrace": "^0.1.2-next.1", - "@backstage/plugin-explore": "^0.3.39-next.1", - "@backstage/plugin-gcalendar": "^0.3.4-next.1", - "@backstage/plugin-gcp-projects": "^0.3.27-next.1", - "@backstage/plugin-github-actions": "^0.5.8-next.1", - "@backstage/plugin-gocd": "^0.1.14-next.1", - "@backstage/plugin-graphiql": "^0.2.40-next.1", - "@backstage/plugin-home": "^0.4.24-next.2", - "@backstage/plugin-jenkins": "^0.7.7-next.2", - "@backstage/plugin-kafka": "^0.3.8-next.1", - "@backstage/plugin-kubernetes": "^0.7.1-next.2", - "@backstage/plugin-lighthouse": "^0.3.8-next.1", - "@backstage/plugin-newrelic": "^0.3.26-next.1", - "@backstage/plugin-newrelic-dashboard": "^0.2.1-next.1", - "@backstage/plugin-org": "^0.5.8-next.1", - "@backstage/plugin-pagerduty": "0.5.1-next.1", - "@backstage/plugin-permission-react": "^0.4.4-next.0", - "@backstage/plugin-rollbar": "^0.4.8-next.1", - "@backstage/plugin-scaffolder": "^1.5.0-next.2", - "@backstage/plugin-search": "^1.0.1-next.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-airbrake": "^0.3.8", + "@backstage/plugin-api-docs": "^0.8.8", + "@backstage/plugin-azure-devops": "^0.1.24", + "@backstage/plugin-apache-airflow": "^0.2.1", + "@backstage/plugin-badges": "^0.2.32", + "@backstage/plugin-catalog-common": "^1.0.5", + "@backstage/plugin-catalog-graph": "^0.2.20", + "@backstage/plugin-catalog-import": "^0.8.11", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-circleci": "^0.3.8", + "@backstage/plugin-cloudbuild": "^0.3.8", + "@backstage/plugin-code-coverage": "^0.2.1", + "@backstage/plugin-cost-insights": "^0.11.30", + "@backstage/plugin-dynatrace": "^0.1.2", + "@backstage/plugin-explore": "^0.3.39", + "@backstage/plugin-gcalendar": "^0.3.4", + "@backstage/plugin-gcp-projects": "^0.3.27", + "@backstage/plugin-github-actions": "^0.5.8", + "@backstage/plugin-gocd": "^0.1.14", + "@backstage/plugin-graphiql": "^0.2.40", + "@backstage/plugin-home": "^0.4.24", + "@backstage/plugin-jenkins": "^0.7.7", + "@backstage/plugin-kafka": "^0.3.8", + "@backstage/plugin-kubernetes": "^0.7.1", + "@backstage/plugin-lighthouse": "^0.3.8", + "@backstage/plugin-newrelic": "^0.3.26", + "@backstage/plugin-newrelic-dashboard": "^0.2.1", + "@backstage/plugin-org": "^0.5.8", + "@backstage/plugin-pagerduty": "0.5.1", + "@backstage/plugin-permission-react": "^0.4.4", + "@backstage/plugin-rollbar": "^0.4.8", + "@backstage/plugin-scaffolder": "^1.5.0", + "@backstage/plugin-search": "^1.0.1", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.1", - "@backstage/plugin-sentry": "^0.4.1-next.1", - "@backstage/plugin-shortcuts": "^0.3.0-next.1", - "@backstage/plugin-stack-overflow": "^0.1.4-next.1", - "@backstage/plugin-tech-insights": "^0.2.4-next.1", - "@backstage/plugin-tech-radar": "^0.5.15-next.1", - "@backstage/plugin-techdocs": "^1.3.1-next.2", - "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3-next.2", - "@backstage/plugin-techdocs-react": "^1.0.3-next.2", - "@backstage/plugin-todo": "^0.2.10-next.1", - "@backstage/plugin-user-settings": "^0.4.7-next.1", + "@backstage/plugin-search-react": "^1.0.1", + "@backstage/plugin-sentry": "^0.4.1", + "@backstage/plugin-shortcuts": "^0.3.0", + "@backstage/plugin-stack-overflow": "^0.1.4", + "@backstage/plugin-tech-insights": "^0.2.4", + "@backstage/plugin-tech-radar": "^0.5.15", + "@backstage/plugin-techdocs": "^1.3.1", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.0.3", + "@backstage/plugin-techdocs-react": "^1.0.3", + "@backstage/plugin-todo": "^0.2.10", + "@backstage/plugin-user-settings": "^0.4.7", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -69,7 +69,7 @@ "@roadiehq/backstage-plugin-github-insights": "^2.0.0", "@roadiehq/backstage-plugin-github-pull-requests": "^2.0.0", "@roadiehq/backstage-plugin-travis-ci": "^2.0.0", - "@internal/plugin-catalog-customized": "0.0.1-next.0", + "@internal/plugin-catalog-customized": "0.0.1", "history": "^5.0.0", "prop-types": "^15.7.2", "react": "^17.0.2", @@ -81,7 +81,7 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/test-utils": "^1.1.3", "@rjsf/core": "^3.2.1", "@testing-library/cypress": "^8.0.2", "@testing-library/jest-dom": "^5.10.1", diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 6794161f1d..a467ef5b7a 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/backend-app-api +## 0.2.0 + +### Minor Changes + +- 5df230d48c: Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. + The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-permission-node@0.6.4 + ## 0.1.1-next.0 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 1655d9ea87..fc908d107b 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.1.1-next.0", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -34,16 +34,16 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-plugin-api": "^0.1.1-next.0", - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", - "@backstage/plugin-permission-node": "^0.6.4-next.0", + "@backstage/backend-plugin-api": "^0.1.1", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", + "@backstage/plugin-permission-node": "^0.6.4", "express": "^4.17.1", "express-promise-router": "^4.1.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index a60a401106..6068b179e4 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/backend-common +## 0.15.0 + +### Minor Changes + +- 12e9b54f0e: Added back support for when no branch is provided to the `UrlReader` for Bitbucket Server +- 30012e7d8c: - Added `force` and `remoteRef` option to `push` method in `git` actions + - Added `addRemote` and `deleteRemote` methods to `git` actions + +### Patch Changes + +- fc8a5f797b: Improve `scm/git` wrapper around `isomorphic-git` library : + + - Add `checkout` function, + - Add optional `remoteRef` parameter in the `push` function. + +- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory. +- 1732a18a7a: Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`. +- 3b7930b3e5: Add support for Bearer Authorization header / token-based auth at Git commands. +- cfa078e255: The `ZipArchiveResponse` now correctly handles corrupt ZIP archives. + + Before this change, certain corrupt ZIP archives either cause the inflater to throw (as expected), or will hang the parser indefinitely. + + By switching out the `zip` parsing library, we now write to a temporary directory, and load from disk which should ensure that the parsing of the `.zip` files are done correctly because `streaming` of `zip` paths is technically impossible without being able to parse the headers at the end of the file. + +- 770d3f92c4: The config prop `ensureExists` now applies to schema creation when `pluginDivisionMode` is set to `schema`. This means schemas will no longer accidentally be automatically created when `ensureExists` is set to `false`. +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/integration@1.3.0 + ## 0.15.0-next.2 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 77a9854fdd..ed84bec016 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.15.0-next.2", + "version": "0.15.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -38,7 +38,7 @@ "@backstage/config": "^1.0.1", "@backstage/config-loader": "^1.1.3", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", + "@backstage/integration": "^1.3.0", "@backstage/types": "^1.0.0", "@google-cloud/storage": "^6.0.0", "@keyv/redis": "^2.2.3", @@ -91,8 +91,8 @@ } }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/archiver": "^5.1.0", "@types/base64-stream": "^1.0.2", "@types/compression": "^1.7.0", diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md new file mode 100644 index 0000000000..2d80e84fc2 --- /dev/null +++ b/packages/backend-defaults/CHANGELOG.md @@ -0,0 +1,14 @@ +# @backstage/backend-defaults + +## 0.1.0 + +### Minor Changes + +- 5df230d48c: Introduced a new `backend-defaults` package carrying `createBackend` which was previously exported from `backend-app-api`. + The `backend-app-api` package now exports the `createSpecializedBacked` that does not add any service factories by default. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.2.0 + - @backstage/backend-plugin-api@0.1.1 diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 8b39ecc724..1270029909 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.0.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -33,11 +33,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-app-api": "^0.1.1-next.0", - "@backstage/backend-plugin-api": "^0.1.1-next.0" + "@backstage/backend-app-api": "^0.2.0", + "@backstage/backend-plugin-api": "^0.1.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 4226d86709..b8706c0e51 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,14 @@ # example-backend-next +## 0.0.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.5.0 + - @backstage/backend-defaults@0.1.0 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.0.2-next.0 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index a5437f621d..056b6c5722 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.2-next.0", + "version": "0.0.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,12 +25,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-defaults": "^0.0.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", - "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0" + "@backstage/backend-defaults": "^0.1.0", + "@backstage/plugin-catalog-backend": "^1.3.1", + "@backstage/plugin-scaffolder-backend": "^1.5.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index f6003e3f59..71987fd616 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-plugin-api +## 0.1.1 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 34c2f5aca1: The factory returned by `createBackendPlugin` and `createBackendModule` no longer require a parameter to be passed if the options are optional. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + ## 0.1.1-next.0 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 9bb6fba154..9a4e9ce8a8 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.1.1-next.0", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -35,16 +35,16 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@types/express": "^4.17.6", "express": "^4.17.1", "winston": "^3.2.1", "winston-transport": "^4.5.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 96e03f0232..59e5c8ca8a 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-tasks +## 0.3.4 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.3.4-next.0 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 7322446c40..7d8886d77b 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.3.4-next.0", + "version": "0.3.4", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -33,7 +33,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/types": "^1.0.0", @@ -48,8 +48,8 @@ "zod": "^3.9.5" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/cron": "^2.0.0", "wait-for-expect": "^3.0.2" }, diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 1b37f615ee..2e1b1bea6a 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-test-utils +## 0.1.27 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 56e1b4b89c: Added alpha test helpers for the new experimental backend system. +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/backend-common@0.15.0 + - @backstage/backend-app-api@0.2.0 + - @backstage/backend-plugin-api@0.1.1 + ## 0.1.27-next.0 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 3b490b625d..31576ce77b 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.27-next.0", + "version": "0.1.27", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -35,10 +35,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-app-api": "^0.1.1-next.0", - "@backstage/backend-plugin-api": "^0.1.1-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-app-api": "^0.2.0", + "@backstage/backend-plugin-api": "^0.1.1", + "@backstage/cli": "^0.18.1", "@backstage/config": "^1.0.1", "better-sqlite3": "^7.5.0", "knex": "^2.0.0", @@ -49,7 +49,7 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 56266d0a0e..670ce31973 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,41 @@ # example-backend +## 0.2.74 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-kubernetes-backend@0.7.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + - @backstage/plugin-auth-backend@0.15.1 + - @backstage/plugin-graphql-backend@0.1.25 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-tech-insights-node@0.3.3 + - @backstage/plugin-catalog-backend@1.3.1 + - example-app@0.2.74 + - @backstage/plugin-app-backend@0.3.35 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-azure-devops-backend@0.3.14 + - @backstage/plugin-badges-backend@0.1.29 + - @backstage/plugin-code-coverage-backend@0.2.1 + - @backstage/plugin-jenkins-backend@0.1.25 + - @backstage/plugin-kafka-backend@0.2.28 + - @backstage/plugin-permission-backend@0.5.10 + - @backstage/plugin-permission-node@0.6.4 + - @backstage/plugin-proxy-backend@0.2.29 + - @backstage/plugin-rollbar-backend@0.1.32 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.3 + - @backstage/plugin-search-backend@1.0.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.0.1 + - @backstage/plugin-search-backend-module-pg@0.3.6 + - @backstage/plugin-search-backend-node@1.0.1 + - @backstage/plugin-tech-insights-backend@0.5.1 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.19 + - @backstage/plugin-techdocs-backend@1.2.1 + - @backstage/plugin-todo-backend@0.1.32 + ## 0.2.74-next.0 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 415a966242..5226cf3270 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.74-next.0", + "version": "0.2.74", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,40 +26,40 @@ "build-image": "docker build ../.. -f Dockerfile --tag example-backend" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-app-backend": "^0.3.35-next.0", - "@backstage/plugin-auth-backend": "^0.15.1-next.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", - "@backstage/plugin-azure-devops-backend": "^0.3.14-next.0", - "@backstage/plugin-badges-backend": "^0.1.29-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", - "@backstage/plugin-code-coverage-backend": "^0.2.1-next.0", - "@backstage/plugin-graphql-backend": "^0.1.25-next.0", - "@backstage/plugin-jenkins-backend": "^0.1.25-next.0", - "@backstage/plugin-kubernetes-backend": "^0.7.1-next.0", - "@backstage/plugin-kafka-backend": "^0.2.28-next.0", - "@backstage/plugin-permission-backend": "^0.5.10-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-app-backend": "^0.3.35", + "@backstage/plugin-auth-backend": "^0.15.1", + "@backstage/plugin-auth-node": "^0.2.4", + "@backstage/plugin-azure-devops-backend": "^0.3.14", + "@backstage/plugin-badges-backend": "^0.1.29", + "@backstage/plugin-catalog-backend": "^1.3.1", + "@backstage/plugin-code-coverage-backend": "^0.2.1", + "@backstage/plugin-graphql-backend": "^0.1.25", + "@backstage/plugin-jenkins-backend": "^0.1.25", + "@backstage/plugin-kubernetes-backend": "^0.7.1", + "@backstage/plugin-kafka-backend": "^0.2.28", + "@backstage/plugin-permission-backend": "^0.5.10", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-node": "^0.6.4-next.0", - "@backstage/plugin-proxy-backend": "^0.2.29-next.0", - "@backstage/plugin-rollbar-backend": "^0.1.32-next.0", - "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0", - "@backstage/plugin-scaffolder-backend-module-rails": "^0.4.3-next.0", - "@backstage/plugin-search-backend": "^1.0.1-next.0", + "@backstage/plugin-permission-node": "^0.6.4", + "@backstage/plugin-proxy-backend": "^0.2.29", + "@backstage/plugin-rollbar-backend": "^0.1.32", + "@backstage/plugin-scaffolder-backend": "^1.5.0", + "@backstage/plugin-scaffolder-backend-module-rails": "^0.4.3", + "@backstage/plugin-search-backend": "^1.0.1", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-backend-node": "^1.0.1-next.0", - "@backstage/plugin-search-backend-module-elasticsearch": "^1.0.1-next.0", - "@backstage/plugin-search-backend-module-pg": "^0.3.6-next.0", - "@backstage/plugin-techdocs-backend": "^1.2.1-next.0", - "@backstage/plugin-tech-insights-backend": "^0.5.1-next.0", - "@backstage/plugin-tech-insights-node": "^0.3.3-next.0", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.19-next.0", - "@backstage/plugin-todo-backend": "^0.1.32-next.0", + "@backstage/plugin-search-backend-node": "^1.0.1", + "@backstage/plugin-search-backend-module-elasticsearch": "^1.0.1", + "@backstage/plugin-search-backend-module-pg": "^0.3.6", + "@backstage/plugin-techdocs-backend": "^1.2.1", + "@backstage/plugin-tech-insights-backend": "^0.5.1", + "@backstage/plugin-tech-insights-node": "^0.3.3", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.19", + "@backstage/plugin-todo-backend": "^0.1.32", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^19.0.3", "better-sqlite3": "^7.5.0", @@ -76,7 +76,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/dockerode": "^3.3.0", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index b8b8b4a66b..4fdab1c48d 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/cli +## 0.18.1 + +### Patch Changes + +- d45bbfeb69: Linting is now ignored for any `.eslintrc.*` files, not just `.eslintrc.js`. +- 72c228fdb8: Fixed a bug where `NODE_ENV` was not set in the environment when starting the backend in development mode. It has always been the case that Webpack transformed `NODE_ENV` when running in development mode, but this did not affect dependencies in `node_modules` as they are treated as external. +- a539564c0d: Added Backstage version to output of `yarn backstage-cli info` command +- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults. +- 94155a41e0: Updated dependencies `@svgr/*` to `6.3.x`. + ## 0.18.1-next.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index b3b2835f0c..2dd77778b5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.18.1-next.1", + "version": "0.18.1", "private": false, "publishConfig": { "access": "public" @@ -126,13 +126,13 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16", "@types/diff": "^5.0.0", "@types/express": "^4.17.6", diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index c78206bbea..8a14eed4ec 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/core-app-api +## 1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + ## 1.0.5-next.0 ### Patch Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index 3df868ad3d..d8586a7985 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-app-api", "description": "Core app API used by Backstage apps", - "version": "1.0.5-next.0", + "version": "1.0.5", "private": false, "publishConfig": { "access": "public", @@ -34,7 +34,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", "@types/prop-types": "^15.7.3", @@ -49,8 +49,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 95881c5f7f..c1cd9e33ac 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-components +## 0.11.0 + +### Minor Changes + +- d0eefc499a: Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime. + +### Patch Changes + +- a22af3edc8: Adding a `className` prop to the `MarkdownContent` component +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + ## 0.11.0-next.2 ### Minor Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 62c0a90179..7a43e27290 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.11.0-next.2", + "version": "0.11.0", "private": false, "publishConfig": { "access": "public", @@ -34,7 +34,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", "@backstage/version-bridge": "^1.0.1", @@ -79,9 +79,9 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/cli": "^0.18.1-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md index ce81ff83dc..807718212c 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/core-plugin-api +## 1.0.5 + +### Patch Changes + +- 80da5162c7: Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining + `__experimentalConfigure` in your `createPlugin` options. See https://backstage.io/docs/plugins/customization.md for more information. + + This is an experimental feature and it will have breaking changes in the future. + +- 87649a06bf: Add a note that the `fetchApi` utility should not be used on sign-in page implementations and similar. + ## 1.0.5-next.0 ### Patch Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index fdf49e2e82..ab0136d1f1 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-plugin-api", "description": "Core API used by Backstage plugins", - "version": "1.0.5-next.0", + "version": "1.0.5", "private": false, "publishConfig": { "access": "public", @@ -47,9 +47,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 2dd8c8748b..51e9fa0987 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/create-app +## 0.4.30 + +### Patch Changes + +- 73cee58fc2: Bumped create-app version. +- f762386d48: Bumped create-app version. +- b162bbf464: Bumped create-app version. +- db76fc6255: The `better-sqlite3` dependency has been moved back to production `"dependencies"` in `packages/backend/package.json`, with instructions in the Dockerfile to move it to `"devDependencies"` if desired. There is no need to apply this change to existing apps, unless you want your production image to have SQLite available as a database option. +- ab9edd8b58: Updated backend to write stack trace when the backend fails to start up. + + To apply this change to your Backstage installation, make the following change to `packages/backend/src/index.ts` + + ```diff + cors: + origin: http://localhost:3000 + - console.error(`Backend failed to start up, ${error}`); + + console.error('Backend failed to start up', error); + ``` + +- 0174a0a022: Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`. + + To apply this change to your Backstage installation make the following change to your `app-config.yaml` + + ```diff + cors: + origin: http://localhost:3000 + - methods: [GET, POST, PUT, DELETE] + + methods: [GET, POST, PUT, DELETE, PATCH, HEAD] + ``` + ## 0.4.30-next.3 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 5c8be59645..be2df5752a 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.30-next.3", + "version": "0.4.30", "private": false, "publishConfig": { "access": "public" diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index cc0459d05a..34adb63d3c 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/dev-utils +## 1.0.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + ## 1.0.5-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 37155f0837..07c51dc8ae 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.5-next.1", + "version": "1.0.5", "private": false, "publishConfig": { "access": "public", @@ -33,14 +33,14 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/app-defaults": "^1.0.5", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/catalog-model": "^1.1.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -59,7 +59,7 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@types/jest": "^26.0.7", "@types/node": "^16.0.0" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 1a90e277d0..89fbb56619 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/integration-react +## 1.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 1.1.3-next.1 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index ac74dd63fd..999a8a6031 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "1.1.3-next.1", + "version": "1.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration": "^1.3.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -38,9 +38,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index ad2a32a713..57bb9297ba 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/integration +## 1.3.0 + +### Minor Changes + +- 593dea6710: Add support for Basic Auth for Bitbucket Server. +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- 163243a4d1: Handle incorrect return type from Octokit paginate plugin to resolve reading URLs from GitHub +- c4b460a47d: Avoid double encoding of the file path in `getBitbucketDownloadUrl` +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- 1f27d83933: Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the + `/-/` scope would result in a fetch URL that did not support + private-token-based authentication. + ## 1.3.0-next.1 ### Minor Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index 30eed36ae4..720cdd163d 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.3.0-next.1", + "version": "1.3.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -43,9 +43,9 @@ "lodash": "^4.17.21" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@backstage/config-loader": "^1.1.3", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/test-utils": "^1.1.3", "@types/jest": "^26.0.7", "@types/luxon": "^3.0.0", "msw": "^0.44.0" diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 5aad4f8d33..85300ab0f7 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,21 @@ # techdocs-cli-embedded-app +## 0.2.73 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/plugin-techdocs@1.3.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/app-defaults@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + ## 0.2.73-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index f5af90160f..ea429fa611 100644 --- a/packages/techdocs-cli-embedded-app/package.json +++ b/packages/techdocs-cli-embedded-app/package.json @@ -1,24 +1,24 @@ { "name": "techdocs-cli-embedded-app", - "version": "0.2.73-next.1", + "version": "0.2.73", "private": true, "backstage": { "role": "frontend" }, "bundled": true, "dependencies": { - "@backstage/app-defaults": "^1.0.5-next.1", + "@backstage/app-defaults": "^1.0.5", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@backstage/config": "^1.0.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/plugin-techdocs": "^1.3.1-next.2", - "@backstage/plugin-techdocs-react": "^1.0.3-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/plugin-techdocs": "^1.3.1", + "@backstage/plugin-techdocs-react": "^1.0.3", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.9.1", @@ -30,7 +30,7 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 53296a72d1..27843fbec5 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,17 @@ # @techdocs/cli +## 1.2.0 + +### Minor Changes + +- 855952db53: Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-techdocs-node@1.3.0 + ## 1.2.0-next.2 ### Minor Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 7df37b08fc..bb8b10fb6f 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.2.0-next.2", + "version": "1.2.0", "private": false, "publishConfig": { "access": "public" @@ -37,7 +37,7 @@ "techdocs-cli": "bin/techdocs-cli" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", @@ -62,11 +62,11 @@ "ext": "ts" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", "@backstage/cli-common": "^0.1.9", "@backstage/config": "^1.0.1", - "@backstage/plugin-techdocs-node": "^1.3.0-next.1", + "@backstage/plugin-techdocs-node": "^1.3.0", "@types/dockerode": "^3.3.0", "commander": "^9.1.0", "dockerode": "^3.3.1", diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 7162c293dd..4f15c6a665 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/test-utils +## 1.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/core-app-api@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + ## 1.1.3-next.0 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index d7558a8c57..0ee76a55ab 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "1.1.3-next.0", + "version": "1.1.3", "private": false, "publishConfig": { "access": "public", @@ -34,10 +34,10 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-react": "^0.4.4-next.0", + "@backstage/plugin-permission-react": "^0.4.4", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -55,7 +55,7 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "msw": "^0.44.0" diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index cf7feb2af0..a4ad1edfa4 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr-backend +## 0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-adr-common@0.2.0 + - @backstage/integration@1.3.0 + ## 0.2.0-next.1 ### Minor Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index c8a349be8b..0ecc3471c4 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.2.0-next.1", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,13 +29,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.2", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-adr-common": "^0.2.0-next.1", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-adr-common": "^0.2.0", "@backstage/plugin-search-common": "^1.0.0", "luxon": "^3.0.0", "marked": "^4.0.14", @@ -44,7 +44,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/marked": "^4.0.0", "@types/supertest": "^2.0.8", "supertest": "^6.1.3", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index 2ab0e174d4..baf239d0ab 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-adr-common +## 0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + ## 0.2.0-next.1 ### Minor Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 48dd40ce60..76058f8a86 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.2.0-next.1", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,11 +31,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0", "@backstage/plugin-search-common": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index d416218c6c..f3f92199e4 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-adr +## 0.2.0 + +### Minor Changes + +- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` + + BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-adr-common@0.2.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + ## 0.2.0-next.2 ### Minor Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index f9cf5b4ba9..e6010addd8 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.2.0-next.2", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,13 +23,13 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-adr-common": "^0.2.0-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-adr-common": "^0.2.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-search-react": "^1.0.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,10 +45,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md index 1513dd88ac..01d44965d8 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-airbrake-backend +## 0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.2.8-next.0 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 888cf84cfa..d484e33ad1 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.2.8-next.0", + "version": "0.2.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,7 +22,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@types/express": "*", "express": "^4.17.1", @@ -33,7 +33,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index db6227fbc6..9aeec07ae3 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-airbrake +## 0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/dev-utils@1.0.5 + - @backstage/test-utils@1.1.3 + ## 0.3.8-next.1 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index cd8149c4b3..d27b1bb0ae 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.8-next.1", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,11 +24,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/app-defaults": "^1.0.5-next.1", - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/app-defaults": "^1.0.5", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index 6e891020f4..f93b59fbae 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-allure +## 0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 918cb165a6..b79a1cee95 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.24-next.1", + "version": "0.1.24", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,9 +26,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index 6f07805377..10ecbc4def 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-analytics-module-ga +## 0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index e11b0b3be1..4f9927585b 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.19-next.1", + "version": "0.1.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,8 +25,8 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -38,10 +38,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index e504184203..4306582b59 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apache-airflow +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 433a340a6b..7625ff730c 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.2.1-next.1", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index fb0d41b7c1..3d4dae36f1 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-api-docs +## 0.8.8 + +### Patch Changes + +- dae12c71cf: Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.8.8-next.2 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index d1210c9646..8e2b400f91 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.8.8-next.2", + "version": "0.8.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ "dependencies": { "@asyncapi/react-component": "1.0.0-next.40", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -57,10 +57,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md index c0623c981c..fbe32ec2db 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-apollo-explorer +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index b26391eb2c..50e66504c6 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apollo-explorer", - "version": "0.1.1-next.1", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,8 +22,8 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 6b18abee30..33845eb9c7 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-app-backend +## 0.3.35 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.3.35-next.0 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index a6c7649d40..4d862f02c0 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-backend", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.35-next.0", + "version": "0.3.35", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,7 +33,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config-loader": "^1.1.3", "@backstage/config": "^1.0.1", "@backstage/types": "^1.0.0", @@ -50,8 +50,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@backstage/types": "^1.0.0", "@types/supertest": "^2.0.8", "mock-fs": "^5.1.0", diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index bc6460a1dd..43460df12f 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend +## 0.15.1 + +### Patch Changes + +- c676a9e07b: Fixed a bug in auth plugin on the backend where it ignores the skip migration database options when using the database provider. +- 2d7d6028e1: Updated dependency `@google-cloud/firestore` to `^6.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + ## 0.15.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 70300fd81a..4628669c78 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.15.1-next.1", + "version": "0.15.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,8 +33,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-auth-node": "^0.2.4-next.0", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/plugin-auth-node": "^0.2.4", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", @@ -76,8 +76,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/body-parser": "^1.19.0", "@types/cookie-parser": "^1.4.2", "@types/express-session": "^1.17.2", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index 1251030658..c01c24590d 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-auth-node +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.2.4-next.0 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 294bc08889..0a5bf2dc19 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.2.4-next.0", + "version": "0.2.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "jose": "^4.6.0", @@ -31,7 +31,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "lodash": "^4.17.21", "msw": "^0.44.0", "uuid": "^8.0.0" diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index 5171a92bf7..5c8de9557e 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-devops-backend +## 0.3.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.3.14-next.0 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index d960c1e311..467a3f7e5b 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.3.14-next.0", + "version": "0.3.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/plugin-azure-devops-common": "^0.2.4", "@types/express": "^4.17.6", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", "msw": "^0.44.0" diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 01430bc032..f108dd1424 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-devops +## 0.1.24 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.24-next.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index 6766b48608..457cc008a0 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.1.24-next.1", + "version": "0.1.24", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,11 +31,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/plugin-azure-devops-common": "^0.2.4", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index a4ab10f37d..c9730194af 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-badges-backend +## 0.1.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.1.29-next.0 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index ba8d0221b6..e642121802 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.29-next.0", + "version": "0.1.29", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", @@ -48,7 +48,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index 9da02587f3..534c433781 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-badges +## 0.2.32 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.32-next.1 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index e8bb6c3714..0399835530 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.32-next.1", + "version": "0.2.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,10 +31,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,10 +46,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index e72e36100d..d607584548 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bazaar-backend +## 0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-test-utils@0.1.27 + ## 0.1.19-next.0 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index e0484c86ee..85539c6dab 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.1.19-next.0", + "version": "0.1.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-test-utils": "^0.1.27-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-test-utils": "^0.1.27", "@backstage/config": "^1.0.1", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -34,7 +34,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index d19601a60a..c1c9f91eed 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-bazaar +## 0.1.23 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.18.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index d16a3b3192..db2b72f920 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.1.23-next.1", + "version": "0.1.23", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,11 +26,11 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/cli": "^0.18.1", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,8 +47,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", "@testing-library/jest-dom": "^5.10.1", "cross-fetch": "^3.1.5" }, diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 6e55f5e507..e6c2f366d6 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index a03324d3af..5ae5ea33f5 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", "description": "Common functionalities for bitbucket-cloud plugins", - "version": "0.1.2-next.0", + "version": "0.1.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,11 +28,11 @@ "update-models": "yarn refresh-schema && yarn generate-models && yarn reduce-models" }, "dependencies": { - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0", "cross-fetch": "^3.1.5" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@openapitools/openapi-generator-cli": "^2.4.26", "msw": "^0.44.0", "ts-morph": "^15.0.0" diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index ce6706f368..8fd4113dd2 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-bitrise +## 0.1.35 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.35-next.1 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 60f74d3cf3..9045bdd64f 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.35-next.1", + "version": "0.1.35", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index faf6d2abea..ab7ac4b3ac 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.8 + +### Patch Changes + +- 17d45dbf10: Deprecate `AwsS3DiscoveryProcessor` in favor of `AwsS3EntityProvider` (since v0.1.4). + + You can find a migration guide at + [the release notes for v0.1.4](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014). + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.8-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 53224a0408..5b4eefb70b 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.1.8-next.0", + "version": "0.1.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "aws-sdk": "^2.840.0", "lodash": "^4.17.21", @@ -48,7 +48,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151", "aws-sdk-mock": "^5.2.1", "yaml": "^2.0.0" diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index f8f1553359..d7f0d022ce 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 2d23f6190e..3c76cc870f 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.6-next.0", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.44.0", @@ -48,8 +48,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index 4d3f05ad30..2586ee3a5a 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + - @backstage/plugin-bitbucket-cloud-common@0.1.2 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 2d991e21b4..d335b06b1a 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.1.2-next.0", + "version": "0.1.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,18 +33,18 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/config": "^1.0.1", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-bitbucket-cloud-common": "^0.1.2-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-bitbucket-cloud-common": "^0.1.2", + "@backstage/plugin-catalog-backend": "^1.3.1", "uuid": "^8.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "msw": "^0.44.0" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 11a6e70e0b..216de9ff65 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,65 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.0 + +### Minor Changes + +- f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`. + + The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement). + + **Before:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addProcessor( + BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + locations: + - type: bitbucket-discovery + target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml + ``` + + **After:** + + ```typescript + // packages/backend/src/plugins/catalog.ts + builder.addEntityProvider( + BitbucketServerEntityProvider.fromConfig(env.config, { + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + }), + ); + ``` + + ```yaml + # app-config.yaml + catalog: + providers: + bitbucketServer: + yourProviderId: # identifies your ingested dataset + catalogPath: /catalog-info.yaml # default value + filters: # optional + projectKey: '.*' # optional; RegExp + repoSlug: '.*' # optional; RegExp + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 646a31e53f..02c16f0a12 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.1.0-next.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,20 +32,20 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.0.1", "@backstage/config": "^1.0.0", "@backstage/errors": "^1.0.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "cross-fetch": "^3.1.5", "uuid": "^8.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "msw": "^0.44.0" }, "files": [ diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index 65f9da80d6..1f1761bc71 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + - @backstage/plugin-bitbucket-cloud-common@0.1.2 + ## 0.2.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 0cc8d38833..92f29ef6f1 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.2.2-next.0", + "version": "0.2.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-bitbucket-cloud-common": "^0.1.2-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-bitbucket-cloud-common": "^0.1.2", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.44.0", @@ -47,8 +47,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 13a0ec487f..b4292da75c 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 946bd3099f..8a36c90796 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.1.3-next.0", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -28,13 +28,13 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "fs-extra": "10.1.0", "msw": "^0.44.0", "node-fetch": "^2.6.7", @@ -42,8 +42,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/fs-extra": "^9.0.1" }, "files": [ diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 2cabe628db..2e9c03529b 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-github +## 0.1.6 + +### Patch Changes + +- f48950e34b: Github Entity Provider functionality for adding entities to the catalog. + + This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities. + + More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page. + +- c59d1ce487: Fixed bug where repository filter was including all archived repositories +- 97f0a37378: Improved support for wildcards in `catalogPath` +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 29405e38c2..a0b7f10833 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github", "description": "A Backstage catalog backend module that helps integrate towards GitHub", - "version": "0.1.6-next.2", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-backend": "^1.3.1-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "@octokit/graphql": "^5.0.0", "lodash": "^4.17.21", @@ -49,8 +49,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index ad9259067f..e3f269514b 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.6 + +### Patch Changes + +- 24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp + + ```yaml + providers: + gitlab: + stg: + host: gitlab.stg.company.io + branch: main + projectPattern: 'john/' # new option + entityFilename: template.yaml + ``` + + With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john". + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 431dd69c3c..a5f9259764 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.1.6-next.1", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,13 +33,13 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "lodash": "^4.17.21", "msw": "^0.44.0", @@ -48,8 +48,8 @@ "uuid": "^8.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151", "@types/uuid": "^8.0.0" }, diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 7c71053e0d..8e41d6325b 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.5.2-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index cfb867b69b..1de6cbd331 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.5.2-next.0", + "version": "0.5.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,11 +33,11 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/types": "^1.0.0", "@types/ldapjs": "^2.2.0", "ldapjs": "^2.2.0", @@ -46,7 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151" }, "files": [ diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 3ff8a4d90d..f914f83f00 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.4.1 + +### Patch Changes + +- b1995df9f3: Adjust references in deprecation warnings to point to stable URL/document. +- Updated dependencies + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.4.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index f96c95854a..383dd42fcf 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.4.1-next.0", + "version": "0.4.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,10 +34,10 @@ }, "dependencies": { "@azure/identity": "^2.1.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@microsoft/microsoft-graph-types": "^2.6.0", "@types/node-fetch": "^2.5.12", "lodash": "^4.17.21", @@ -48,9 +48,9 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151", "msw": "^0.44.0" }, diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index 85a14917d8..660fbd4148 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.1 + +### Patch Changes + +- b50e8e533b: Add an `$openapi` placeholder resolver that supports more use cases for resolving `$ref` instances. This means that the quite recently added `OpenApiRefProcessor` has been deprecated in favor of the `openApiPlaceholderResolver`. + + An example of how to use it can be seen below. + + ```yaml + apiVersion: backstage.io/v1alpha1 + kind: API + metadata: + name: example + description: Example API + spec: + type: openapi + lifecycle: production + owner: team + definition: + $openapi: ./spec/openapi.yaml # by using $openapi Backstage will now resolve all $ref instances + ``` + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 81f8875247..ce08fcf4d3 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.1-next.0", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,19 +34,19 @@ }, "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-backend": "^1.3.1-next.0", - "@backstage/plugin-catalog-node": "^1.0.1-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", + "@backstage/plugin-catalog-node": "^1.0.1", "@backstage/types": "^1.0.0", "winston": "^3.2.1", "yaml": "^2.1.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "openapi-types": "^12.0.0" }, "files": [ diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index f17e7f85cc..bc287ad98a 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend +## 1.3.1 + +### Patch Changes + +- 56e1b4b89c: Fixed typos in alpha types. +- e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags. + + Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`. + +- 059ae348b4: Use the non-deprecated form of table.unique in knex +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-permission-node@0.6.4 + ## 1.3.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 6cbdd55387..45e447efe8 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.3.1-next.2", + "version": "1.3.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,17 +34,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-plugin-api": "^0.1.1-next.0", - "@backstage/plugin-catalog-node": "^1.0.1-next.0", - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-plugin-api": "^0.1.1", + "@backstage/plugin-catalog-node": "^1.0.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-common": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-node": "^0.6.4-next.0", + "@backstage/plugin-permission-node": "^0.6.4", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/plugin-search-common": "^1.0.0", "@backstage/types": "^1.0.0", @@ -70,10 +70,10 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-search-backend-node": "1.0.1-next.0", + "@backstage/plugin-search-backend-node": "1.0.1", "@types/core-js": "^2.5.4", "@types/git-url-parse": "^9.0.0", "@types/lodash": "^4.14.151", diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index b05ac57b9f..b3e150edc8 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-catalog-common +## 1.0.5 + +### Patch Changes + +- 92103db537: Export aggregated list of all catalog permissions + ## 1.0.5-next.0 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index f3cfa2d236..09911048ee 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-common", "description": "Common functionalities for the catalog plugin", - "version": "1.0.5-next.0", + "version": "1.0.5", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,7 +38,7 @@ "@backstage/plugin-search-common": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md index c6e3c86ff4..7d4ce71cb2 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index ee4d22eb09..747897da41 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -1,7 +1,7 @@ { "name": "@internal/plugin-catalog-customized", "description": "The internal Backstage Customizable plugin for browsing the Backstage catalog", - "version": "0.0.1-next.0", + "version": "0.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,8 +34,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog": "^1.5.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0" + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/plugin-catalog-react": "^1.1.3" }, "devDependencies": { "@types/react": "^16.13.1 || ^17.0.0" diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index d0bb340559..398aec357f 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-graph +## 0.2.20 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.20-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 5dde4c10aa..14f5aecb0d 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.20-next.1", + "version": "0.2.20", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,9 +26,9 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,11 +45,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/test-utils": "^1.1.3", "@backstage/types": "^1.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/catalog-graphql/CHANGELOG.md b/plugins/catalog-graphql/CHANGELOG.md index 950cebce5f..3f2ffd4f64 100644 --- a/plugins/catalog-graphql/CHANGELOG.md +++ b/plugins/catalog-graphql/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-catalog-graphql +## 0.3.12 + +### Patch Changes + +- fa3eeee92d: Updated dependency `@graphql-tools/schema` to `^9.0.0`. + ## 0.3.11 ### Patch Changes diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index 12eafe58d4..25ba1cb492 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-graphql", "description": "An experimental Backstage catalog GraphQL module", - "version": "0.3.11", + "version": "0.3.12", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -46,8 +46,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@graphql-codegen/cli": "^2.3.1", "@graphql-codegen/graphql-modules-preset": "^2.3.2", "@graphql-codegen/typescript": "^2.4.2", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 38394bb798..bbed459737 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-import +## 0.8.11 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + ## 0.8.11-next.1 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 7e48bd8c77..006decf867 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.8.11-next.1", + "version": "0.8.11", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,12 +37,12 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-react": "^1.1.3", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", @@ -60,10 +60,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 78fe4d3873..04b65bb4ba 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-node +## 1.0.1 + +### Patch Changes + +- 0599732ec0: Refactored experimental backend system with new type names. +- 56e1b4b89c: Fixed typos in alpha types. +- Updated dependencies + - @backstage/backend-plugin-api@0.1.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 0684112075..08f61b699c 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.0.1-next.0", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,14 +25,14 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-plugin-api": "^0.1.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1", "@backstage/catalog-model": "^1.1.0", "@backstage/errors": "1.1.0", "@backstage/types": "^1.0.0" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/cli": "^0.18.1-next.0" + "@backstage/backend-common": "^0.15.0", + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index 27af75bfbf..964e1e0017 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-react +## 1.1.3 + +### Patch Changes + +- 44e691a7f9: Modify description column to not use auto width. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/plugin-permission-react@0.4.4 + ## 1.1.3-next.2 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index f778924647..08987df622 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-react", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.1.3-next.2", + "version": "1.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,13 +36,13 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-common": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-react": "^0.4.4-next.0", + "@backstage/plugin-permission-react": "^0.4.4", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", @@ -63,11 +63,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/plugin-catalog-common": "^1.0.5", "@backstage/plugin-scaffolder-common": "^1.1.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index efcc843095..578b51c61b 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-catalog +## 1.5.0 + +### Minor Changes + +- 80da5162c7: Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button. + + You can modify it by doing: + + ```typescript jsx + import { catalogPlugin } from '@backstage/plugin-catalog'; + + catalogPlugin.__experimentalReconfigure({ + createButtonTitle: 'New', + }); + ``` + +- fe94398418: Allow changing the subtitle of the `CatalogTable` component + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + ## 1.5.0-next.2 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 78365d305f..ba20f0d285 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.5.0-next.2", + "version": "1.5.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,14 +36,14 @@ "dependencies": { "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-common": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-search-react": "^1.0.1", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -61,11 +61,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/plugin-permission-react": "^0.4.4-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/plugin-permission-react": "^0.4.4", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index 24fa1a0e2e..163776416b 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-cicd-statistics@0.1.10 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 2d3db01baf..b034b48177 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics-module-gitlab", "description": "CI/CD Statistics plugin module; Gitlab CICD", - "version": "0.1.4-next.0", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,16 +29,16 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/plugin-cicd-statistics": "^0.1.10-next.0", + "@backstage/plugin-cicd-statistics": "^0.1.10", "@gitbeaker/browser": "^35.6.0", "@gitbeaker/core": "^35.6.0", "luxon": "^3.0.0", "p-limit": "^4.0.0", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/catalog-model": "^1.1.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index ac12967919..268e32b825 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics +## 0.1.10 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.10-next.0 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 40dd26fcd8..10e5e5ea38 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics", "description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)", - "version": "0.1.10-next.0", + "version": "0.1.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,8 +38,8 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@date-io/luxon": "^1.3.13", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.11.2", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index 32b13f71d9..b76be5b5b2 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-circleci +## 0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.3.8-next.1 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 29c8826022..d26df28bce 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.8-next.1", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,10 +55,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index d9afe72a02..18ebdec1df 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cloudbuild +## 0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.3.8-next.1 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 76d4a7e4a3..570cebfbb2 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.8-next.1", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -52,10 +52,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index b679f10e8c..6202bf67a3 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-code-climate +## 0.1.8 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- 831a8fee86: Send Authorization headers in fetch requests using FetchApi in Code Climate plugin to fix unauthorized requests to Backstage backends with authentication enabled. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.8-next.1 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index a8821da11f..669f21cb88 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.8-next.1", + "version": "0.1.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -40,9 +40,9 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 0a7653cb81..0d07616343 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-code-coverage-backend +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 29a7c84512..34c75f45ed 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.2.1-next.0", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,12 +23,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -39,7 +39,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/express-xml-bodyparser": "^0.3.2", "@types/supertest": "^2.0.8", "msw": "^0.44.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index aedf29b796..9e4282b28a 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-code-coverage +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 15eab12436..b49e4b8b3b 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.2.1-next.1", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,10 +26,10 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -46,10 +46,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index d4d4d899ca..f753f291f7 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-codescene +## 0.1.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index a90ad0f31d..e99c0132e3 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.3-next.1", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.10", @@ -38,10 +38,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index b3d61041f5..f69905cce2 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-config-schema +## 0.1.31 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.31-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 560b7e5b36..957fc57b35 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.31-next.1", + "version": "0.1.31", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,8 +25,8 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", @@ -41,10 +41,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/cost-insights-common/CHANGELOG.md b/plugins/cost-insights-common/CHANGELOG.md index 41102c5229..52d167c17c 100644 --- a/plugins/cost-insights-common/CHANGELOG.md +++ b/plugins/cost-insights-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-cost-insights-common +## 0.1.1 + +### Patch Changes + +- daf4b33e34: Add name property to Group + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/cost-insights-common/package.json b/plugins/cost-insights-common/package.json index 8a0d597243..03d3b11ea8 100644 --- a/plugins/cost-insights-common/package.json +++ b/plugins/cost-insights-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights-common", "description": "Common functionalities for the cost-insights plugin", - "version": "0.1.1-next.0", + "version": "0.1.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ }, "dependencies": {}, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 52e3730795..080f2e1f41 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-cost-insights +## 0.11.30 + +### Patch Changes + +- b746eca638: Make `products` field optional in the config +- daf4b33e34: Add name property to Group +- 08562ebe11: Display minus sign in trends in `CostOverviewCard` +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.11.30-next.1 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index 05c736a234..d520945f8f 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.11.30-next.1", + "version": "0.11.30", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-cost-insights-common": "^0.1.1-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-cost-insights-common": "^0.1.1", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -61,10 +61,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index 33bf8dddd0..08a98daa2e 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-dynatrace +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index e2ac3f0aaa..75840783b1 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "0.1.2-next.1", + "version": "0.1.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", @@ -37,10 +37,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index dec5c014e4..d541b6e65d 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-todo-list-backend +## 1.0.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + ## 1.0.4-next.0 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index d72f238bba..544b1e219e 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-backend", - "version": "1.0.4-next.0", + "version": "1.0.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", + "@backstage/plugin-auth-node": "^0.2.4", "@types/express": "^4.17.6", "cross-fetch": "^3.1.5", "express": "^4.17.1", @@ -36,7 +36,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", "msw": "^0.44.0", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index 821cd49d46..3d637910de 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-todo-list +## 1.0.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 1.0.4-next.1 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 79920a97b1..6900e7455a 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list", - "version": "1.0.4-next.1", + "version": "1.0.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,8 +24,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -36,10 +36,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/explore-react/CHANGELOG.md b/plugins/explore-react/CHANGELOG.md index 9a560155ca..b4c5547d9f 100644 --- a/plugins/explore-react/CHANGELOG.md +++ b/plugins/explore-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-explore-react +## 0.0.20 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + ## 0.0.20-next.0 ### Patch Changes diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index ae4bd3a918..dee3504382 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore-react", "description": "A frontend library for Backstage plugins that want to interact with the explore plugin", - "version": "0.0.20-next.0", + "version": "0.0.20", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,12 +33,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-plugin-api": "^1.0.5-next.0" + "@backstage/core-plugin-api": "^1.0.5" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/dev-utils": "^1.0.5-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 7fdae5d5ae..96813c08ca 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-explore +## 0.3.39 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-explore-react@0.0.20 + ## 0.3.39-next.1 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 782d36504f..793baa699e 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.39-next.1", + "version": "0.3.39", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-explore-react": "^0.0.20-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-explore-react": "^0.0.20", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index c1c5155008..2af1f5ffe3 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-firehydrant +## 0.1.25 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.25-next.1 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 0932896f17..def4c08045 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.25-next.1", + "version": "0.1.25", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,9 +25,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -39,10 +39,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index 409e4a2f25..8a7e37e0eb 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-fossa +## 0.2.40 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.40-next.1 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index 4a094615ff..f9de9e8087 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.40-next.1", + "version": "0.2.40", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index dd07805e18..946aae643a 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gcalendar +## 0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.4-next.1 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 7f711beecf..cc7fdfa61c 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.4-next.1", + "version": "0.3.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,8 +22,8 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index a1cb764e11..c7ab79eada 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gcp-projects +## 0.3.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.27-next.1 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 1470873a86..5a24b88a5e 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.27-next.1", + "version": "0.3.27", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,8 +34,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 13345e1e5b..4613940252 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-git-release-manager +## 0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index a0a6f9f486..d5b0835513 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.21-next.1", + "version": "0.3.21", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration": "^1.3.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 05faee61df..cb3f73d4cb 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-github-actions +## 0.5.8 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.5.8-next.1 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index fb30598057..6360a532e6 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.5.8-next.1", + "version": "0.5.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,10 +37,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -55,10 +55,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index dad77b8944..0e331108a3 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-github-deployments +## 0.1.39 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/integration-react@1.1.3 + ## 0.1.39-next.1 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 15a9343632..f230fb77fc 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.39-next.1", + "version": "0.1.39", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,12 +25,12 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index ff9d0860aa..a85982820d 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-github-issues +## 0.1.0 + +### Minor Changes + +- ffd5e47fb5: New plugin for displaying GitHub Issues added + +### Patch Changes + +- 347ea327c2: Moved communication with GitHub graphql API to the dedicated plugin API. + Fixes issue when no GitHub Issues are rendered when partial failure is returned from GitHub API. +- b522f49403: Updated dependency `@spotify/prettier-config` to `^14.0.0`. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index d31bb52603..f64d849ab5 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.1.0-next.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,11 +23,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.0.3", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.15", "@material-ui/core": "^4.12.4", "@material-ui/icons": "^4.9.1", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@spotify/prettier-config": "^14.0.0", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index e797a79a9b..8ff761dfc3 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.2 + +### Patch Changes + +- 73268a67ff: Fixed rendering when PR contains references to deleted Github accounts +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 566e8e5942..e8d22dcf6f 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.2-next.1", + "version": "0.1.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,9 +49,9 @@ "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index e3f526e483..83407f23b7 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-gitops-profiles +## 0.3.26 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.26-next.1 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index e6d87d83da..078b83c61e 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.26-next.1", + "version": "0.3.26", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,8 +35,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -48,10 +48,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index c946ac8c5b..62f1019c62 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gocd +## 0.1.14 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index e3dd9c7498..30a2b78c32 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.14-next.1", + "version": "0.1.14", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,10 +32,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index cd9eefb43e..dad0b78969 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphiql +## 0.2.40 + +### Patch Changes + +- 3a8ab72248: Minor internal tweak to lazy loading in order to improve module compatibility. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.2.40-next.1 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index a23c349946..a5525f0353 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.2.40-next.1", + "version": "0.2.40", "private": false, "publishConfig": { "access": "public", @@ -34,8 +34,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index e41866c272..88f7454741 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.1.25 + +### Patch Changes + +- fa3eeee92d: Updated dependency `@graphql-tools/schema` to `^9.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-catalog-graphql@0.3.12 + ## 0.1.25-next.0 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index d772e84dde..20be68c811 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "An experimental Backstage backend plugin for GraphQL", - "version": "0.1.25-next.0", + "version": "0.1.25", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", - "@backstage/plugin-catalog-graphql": "^0.3.11", + "@backstage/plugin-catalog-graphql": "^0.3.12", "@graphql-tools/schema": "^9.0.0", "@types/express": "^4.17.6", "apollo-server": "^3.0.0", @@ -51,7 +51,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", "supertest": "^6.1.3" diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index f4535043c0..8a340590ed 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-home +## 0.4.24 + +### Patch Changes + +- df7b9158b8: Add wrap-around for the listing of tools to prevent increasing width with name length. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-stack-overflow@0.1.4 + ## 0.4.24-next.2 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 11e8a75c05..3f87d10771 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.24-next.2", + "version": "0.4.24", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-stack-overflow": "^0.1.4-next.1", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-stack-overflow": "^0.1.4", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 114b09d5b0..83649c4010 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-ilert +## 0.1.34 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.34-next.1 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 22e7f14d15..4342d9a93d 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.1.34-next.1", + "version": "0.1.34", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,10 +25,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", @@ -43,10 +43,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 46430334b1..b07e224d2a 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins-backend +## 0.1.25 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-jenkins-common@0.1.7 + ## 0.1.25-next.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index c49e4a66cd..9a62239954 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.25-next.1", + "version": "0.1.25", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -25,13 +25,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", - "@backstage/plugin-jenkins-common": "^0.1.7-next.0", + "@backstage/plugin-auth-node": "^0.2.4", + "@backstage/plugin-jenkins-common": "^0.1.7", "@backstage/plugin-permission-common": "^0.6.3", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -42,7 +42,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/jenkins": "^0.23.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index befb804c0c..a284687d69 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-jenkins-common +## 0.1.7 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.5 + ## 0.1.7-next.0 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index e207f8e298..6a58de3601 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins-common", - "version": "0.1.7-next.0", + "version": "0.1.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,11 +22,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/plugin-catalog-common": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 299e56ba30..6c10aef068 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-jenkins +## 0.7.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-jenkins-common@0.1.7 + ## 0.7.7-next.2 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index c4fbdf3e98..f013532b55 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.7-next.2", + "version": "0.7.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,11 +36,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-jenkins-common": "^0.1.7-next.0", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-jenkins-common": "^0.1.7", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -54,10 +54,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index 658959494c..ce42cd1202 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kafka-backend +## 0.2.28 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.2.28-next.0 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index c2ddfd4cad..aaba4b1abe 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.28-next.0", + "version": "0.2.28", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,7 +35,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", @@ -47,7 +47,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/jest-when": "^3.5.0", "@types/lodash": "^4.14.151", "jest-when": "^3.1.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index 217ada3545..344f591932 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kafka +## 0.3.8 + +### Patch Changes + +- bde245f0bf: Add dashboard URL feature and fix minor styling issues. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.3.8-next.1 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 341fda9a64..5bd7da5060 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.8-next.1", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -27,9 +27,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -41,10 +41,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 9270a90ed8..f4e98a4152 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kubernetes-backend +## 0.7.1 + +### Patch Changes + +- 0297da83c0: Added `DaemonSets` to the default kubernetes resources. +- 0cd87cf30d: Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-kubernetes-common@0.4.1 + - @backstage/plugin-auth-node@0.2.4 + ## 0.7.1-next.1 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 36305e51c9..6a894d8820 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.7.1-next.1", + "version": "0.7.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,13 +36,13 @@ }, "dependencies": { "@azure/identity": "^2.0.4", - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", - "@backstage/plugin-kubernetes-common": "^0.4.0", + "@backstage/plugin-auth-node": "^0.2.4", + "@backstage/plugin-kubernetes-common": "^0.4.1", "@google-cloud/container": "^4.0.0", "@kubernetes/client-node": "^0.17.0", "@types/express": "^4.17.6", @@ -63,7 +63,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", + "@backstage/cli": "^0.18.1", "@types/aws4": "^1.5.1", "aws-sdk-mock": "^5.2.1", "supertest": "^6.1.3" diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 9b90db4da6..290a2ada81 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-kubernetes-common +## 0.4.1 + +### Patch Changes + +- 0297da83c0: Added `DaemonSets` to the default kubernetes resources. + ## 0.4.0 ### Minor Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 3dd0be7670..16d3e7d61b 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-common", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", - "version": "0.4.0", + "version": "0.4.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -42,7 +42,7 @@ "@kubernetes/client-node": "^0.17.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "jest": { "roots": [ diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index f0beee0ae8..546d6a1912 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kubernetes +## 0.7.1 + +### Patch Changes + +- 860ed68343: Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax. +- f563b86a5b: Adds namespace column to Kubernetes error reporting table +- Updated dependencies + - @backstage/plugin-kubernetes-common@0.4.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.7.1-next.2 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index f7706ef7aa..f0d7076efd 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.7.1-next.2", + "version": "0.7.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,10 +36,10 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-kubernetes-common": "^0.4.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-kubernetes-common": "^0.4.1", "@backstage/theme": "^0.2.16", "@kubernetes/client-node": "^0.17.0", "@material-ui/core": "^4.12.2", @@ -57,10 +57,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index f1892b1331..522ef9d0d5 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-lighthouse +## 0.3.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.3.8-next.1 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 96ab8c8e4a..30539b8859 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.3.8-next.1", + "version": "0.3.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index 7fc68f473f..431fcb4a33 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index 9acc2db59b..2644524e32 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.2.1-next.1", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,18 +24,18 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.57", "react-use": "^17.2.4" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", "@testing-library/jest-dom": "^5.10.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5" diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index b083be62af..11dc6139db 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-newrelic +## 0.3.26 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.26-next.1 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 7a8b91a8a3..541fdbddb3 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.26-next.1", + "version": "0.3.26", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,8 +35,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 6f3f92cbbd..f67be53874 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-org +## 0.5.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.5.8-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 9ea320c8f0..3d9582a81b 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.5.8-next.1", + "version": "0.5.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,9 +30,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ }, "devDependencies": { "@backstage/catalog-client": "^1.0.4", - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 0183241c6c..6e4e062402 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-pagerduty +## 0.5.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.5.1-next.1 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 743fad192e..367bcdc40a 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.5.1-next.1", + "version": "0.5.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index 15fe0034d7..3652e42d0a 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-periskop-backend +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.1.6-next.0 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index dca1ac34ce..bdbf7f8e62 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.1.6-next.0", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@types/express": "*", "cross-fetch": "^3.0.6", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", "supertest": "^6.1.6" diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index f8a7d28341..261af5f7f7 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-periskop +## 0.1.6 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index ce736fda5c..e3137741ef 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.6-next.1", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -26,10 +26,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -42,10 +42,10 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 22ef7b3b24..45c37afe27 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend +## 0.5.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-permission-node@0.6.4 + ## 0.5.10-next.0 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 20b508c833..a529c87439 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.10-next.0", + "version": "0.5.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -22,12 +22,12 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", + "@backstage/plugin-auth-node": "^0.2.4", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-node": "^0.6.4-next.0", + "@backstage/plugin-permission-node": "^0.6.4", "@types/express": "*", "dataloader": "^2.0.0", "express": "^4.17.1", @@ -39,7 +39,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/lodash": "^4.14.151", "@types/supertest": "^2.0.8", "supertest": "^6.1.6", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 177522ab2f..924cb098ce 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-permission-node +## 0.6.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + ## 0.6.4-next.0 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index be15aff4ce..980a600020 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-node", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.6.4-next.0", + "version": "0.6.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,10 +33,10 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", + "@backstage/plugin-auth-node": "^0.2.4", "@backstage/plugin-permission-common": "^0.6.3", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -44,7 +44,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", "supertest": "^6.1.3" diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index 8d5a99b1ba..3215aa7b90 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-permission-react +## 0.4.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.0.5 + ## 0.4.4-next.0 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 9a077a5bea..c0a7084f4b 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.4.4-next.0", + "version": "0.4.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3", "cross-fetch": "^3.1.5", "react-router": "6.0.0-beta.0", @@ -44,8 +44,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@types/jest": "^26.0.7" diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 1c124fcf8c..c80a754839 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-proxy-backend +## 0.2.29 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.2.29-next.0 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 52cae9d7c9..3b6c732a57 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.2.29-next.0", + "version": "0.2.29", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,7 +32,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@types/express": "^4.17.6", "express": "^4.17.1", @@ -46,7 +46,7 @@ "yup": "^0.32.9" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/http-proxy-middleware": "^0.19.3", "@types/supertest": "^2.0.8", "@types/uuid": "^8.0.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 2c9f3c7665..3e61d541a4 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar-backend +## 0.1.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.1.32-next.0 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index e2150eb67c..449ff72536 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.32-next.0", + "version": "0.1.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,7 +34,7 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@types/express": "^4.17.6", "camelcase-keys": "^7.0.1", @@ -50,8 +50,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", "supertest": "^6.1.3" diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index 59ab29e1c9..de7caae47d 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-rollbar +## 0.4.8 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.4.8-next.1 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 81e37f7f4c..0928e90778 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.8-next.1", + "version": "0.4.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 22c4364082..509e2025a7 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + ## 0.2.10-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 41afcdabe4..aeb8a42df6 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.10-next.0", + "version": "0.2.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,10 +23,10 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", - "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-scaffolder-backend": "^1.5.0", "@backstage/config": "^1.0.1", "@backstage/types": "^1.0.0", "command-exists": "^1.2.9", @@ -35,7 +35,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", "@types/jest": "^26.0.7", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index 65e91bb9d3..64f782e243 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-scaffolder-backend@1.5.0 + ## 0.4.3-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 6c4b6e3a58..5df1b902eb 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.4.3-next.0", + "version": "0.4.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,17 +24,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/plugin-scaffolder-backend": "^1.5.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0", "@backstage/types": "^1.0.0", "command-exists": "^1.2.9", "fs-extra": "^10.0.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/jest": "^26.0.7", "@types/node": "^16.11.26", "@types/command-exists": "^1.2.0", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 6155eaf3da..21bc6b30fa 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.8 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.5.0 + ## 0.2.8-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index a1f9ac9fc9..ab487b72f3 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.8-next.0", + "version": "0.2.8", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,13 +24,13 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/plugin-scaffolder-backend": "^1.5.0-next.0", + "@backstage/plugin-scaffolder-backend": "^1.5.0", "@backstage/types": "^1.0.0", "winston": "^3.2.1", "yeoman-environment": "^3.9.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@types/jest": "^26.0.7" }, "files": [ diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 7610ccfe49..c471cc82eb 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-scaffolder-backend +## 1.5.0 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin +- 593dea6710: Add support for Basic Auth for Bitbucket Server. +- 3b7930b3e5: Add support for Bearer Authorization header / token-based auth at Git commands. +- 3f1316f1c5: User Bearer Authorization header at Git commands with token-based auth at Bitbucket Server. +- eeff5046ae: Updated `publish:gitlab:merge-request` action to allow commit updates and deletes +- 692d5d3405: Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action + +### Patch Changes + +- fc8a5f797b: Add a `publish:gerrit:review` scaffolder action +- c971afbf21: The `publish:file` action has been deprecated in favor of testing templates using the template editor instead. Note that this action is not and was never been installed by default. +- b10b6c4aa4: Fix issue on Windows where templated files where not properly skipped as intended. +- 56e1b4b89c: Fixed typos in alpha types. +- dad0f65494: Fail gracefully if an invalid `Authorization` header is passed to `POST /v2/tasks` +- 014b3b7776: Add missing `res.end()` in scaffolder backend `EventStream` usage +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-plugin-api@0.1.1 + - @backstage/plugin-catalog-node@1.0.1 + - @backstage/integration@1.3.0 + - @backstage/plugin-catalog-backend@1.3.1 + ## 1.5.0-next.2 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 7fc9211701..3b9c24cf88 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.5.0-next.2", + "version": "1.5.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,16 +35,16 @@ "build:assets": "node scripts/build-nunjucks.js" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-backend": "^1.3.1-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-backend": "^1.3.1", "@backstage/plugin-scaffolder-common": "^1.1.2", - "@backstage/backend-plugin-api": "^0.1.1-next.0", - "@backstage/plugin-catalog-node": "^1.0.1-next.0", + "@backstage/backend-plugin-api": "^0.1.1", + "@backstage/plugin-catalog-node": "^1.0.1", "@backstage/types": "^1.0.0", "@gitbeaker/core": "^35.6.0", "@gitbeaker/node": "^35.1.0", @@ -79,8 +79,8 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.1", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/git-url-parse": "^9.0.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index e96832d732..323e91f28b 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-scaffolder +## 1.5.0 + +### Minor Changes + +- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-catalog-common@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-permission-react@0.4.4 + ## 1.5.0-next.2 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 164d7172bf..626a20d73e 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.5.0-next.2", + "version": "1.5.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,14 +38,14 @@ "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-permission-react": "^0.4.4-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-common": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-permission-react": "^0.4.4", "@backstage/plugin-scaffolder-common": "^1.1.2", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", @@ -80,11 +80,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 686166e11c..ed1c23000f 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.0.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 1592f2c3d6..119c4602d1 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.0.1-next.0", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,7 +24,7 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/plugin-search-backend-node": "^1.0.1-next.0", + "@backstage/plugin-search-backend-node": "^1.0.1", "@backstage/plugin-search-common": "^1.0.0", "@elastic/elasticsearch": "^7.13.0", "@opensearch-project/opensearch": "^2.0.0", @@ -36,8 +36,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/cli": "^0.18.1", "@elastic/elasticsearch-mock": "^1.0.0", "@short.io/opensearch-mock": "^0.3.1" }, diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index 737babecff..c760d518ea 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-module-pg +## 0.3.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-search-backend-node@1.0.1 + ## 0.3.6-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 273f3b5e8f..b2a75f8ebc 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.3.6-next.0", + "version": "0.3.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,17 +23,17 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", - "@backstage/plugin-search-backend-node": "^1.0.1-next.0", + "@backstage/plugin-search-backend-node": "^1.0.1", "@backstage/plugin-search-common": "^1.0.0", "lodash": "^4.17.21", "knex": "^2.0.0", "uuid": "^8.3.2" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0" + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1" }, "files": [ "dist", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index 49835bd31c..71e4bd5431 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-node +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 7772837347..ec83bb50a8 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.0.1-next.0", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,8 +23,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@backstage/plugin-permission-common": "^0.6.3", @@ -38,8 +38,8 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/cli": "^0.18.1", "@types/ndjson": "^2.0.1" }, "files": [ diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index 9a48c96755..019aa50ea8 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-auth-node@0.2.4 + - @backstage/plugin-permission-node@0.6.4 + - @backstage/plugin-search-backend-node@1.0.1 + ## 1.0.1-next.0 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 49aa696f58..0e1efb11f6 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.0.1-next.0", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,13 +23,13 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-auth-node": "^0.2.4-next.0", + "@backstage/plugin-auth-node": "^0.2.4", "@backstage/plugin-permission-common": "^0.6.3", - "@backstage/plugin-permission-node": "^0.6.4-next.0", - "@backstage/plugin-search-backend-node": "^1.0.1-next.0", + "@backstage/plugin-permission-node": "^0.6.4", + "@backstage/plugin-search-backend-node": "^1.0.1", "@backstage/plugin-search-common": "^1.0.0", "@backstage/types": "^1.0.0", "@types/express": "^4.17.6", @@ -43,7 +43,7 @@ "zod": "^3.11.6" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "supertest": "^6.1.3" }, diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 9cf04b88e8..d250b7ffe4 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-react +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 1.0.1-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 78d039bd8d..4ca61dba66 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.0.1-next.1", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,8 +32,8 @@ }, "dependencies": { "@backstage/plugin-search-common": "^1.0.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/version-bridge": "^1.0.1", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", @@ -48,8 +48,8 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", "@testing-library/jest-dom": "^5.10.1", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 459d34b8e9..550073969d 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search +## 1.0.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + ## 1.0.1-next.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 5743248132..11bbc4b1ae 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "1.0.1-next.1", + "version": "1.0.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,12 +35,12 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.1", + "@backstage/plugin-search-react": "^1.0.1", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@backstage/version-bridge": "^1.0.1", @@ -57,10 +57,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index 7948162ffd..d7327602f0 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-sentry +## 0.4.1 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.4.1-next.1 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index e9d13f6ad6..afcf15c1c5 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.4.1-next.1", + "version": "0.4.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -36,9 +36,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index b8a5982006..9ea824276e 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-shortcuts +## 0.3.0 + +### Minor Changes + +- 5b769fddb5: Internal observable replaced with a mapping from the storage API. This fixes shortcuts initialization when using firestore. + + `ShortcutApi.get` method, that returns an immediate snapshot of shortcuts, made public. + + Example of how to get and observe `shortcuts`: + + ```typescript + const shortcutApi = useApi(shortcutsApiRef); + const shortcuts = useObservable(shortcutApi.shortcut$(), shortcutApi.get()); + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.3.0-next.1 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index af912276dc..46f75c010d 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.3.0-next.1", + "version": "0.3.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,8 +24,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md index 167224e5d5..06b98d9044 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sonarqube-backend +## 0.1.0 + +### Minor Changes + +- e2be9ab3a4: Initial creation of the plugin + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index c9b281621c..a5046136aa 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.1.0-next.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -23,7 +23,7 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@types/express": "*", @@ -34,8 +34,8 @@ "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/test-utils": "^1.1.3", "@types/supertest": "^2.0.12", "msw": "^0.44.2", "supertest": "^6.2.4" diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index e79c4322fe..9181ae3fcf 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-sonarqube +## 0.4.0 + +### Minor Changes + +- 619b515172: **BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin + + The whole proxy's `'/sonarqube':` key can be removed from your configuration files. + + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + +### Patch Changes + +- f9c310a439: Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.4.0-next.2 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 1ec39ec194..2944e40894 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.4.0-next.2", + "version": "0.4.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,9 +37,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -53,10 +53,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 139e6f4884..9bedb8334b 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-splunk-on-call +## 0.3.32 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.3.32-next.1 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 33d0db4983..ef287bfc64 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.3.32-next.1", + "version": "0.3.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,9 +35,9 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -51,10 +51,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 478d7f5ac3..4ba519ba73 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-stack-overflow-backend +## 0.1.4 + +### Patch Changes + +- ea5631a8b2: Added API key as separate configuration + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index 5b11dbdaab..9f75578252 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow-backend", - "version": "0.1.4-next.0", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index 3aa92d3dd6..193f0f4b6e 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-stack-overflow +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-home@0.4.24 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 2367c2c769..27da0751f4 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.4-next.1", + "version": "0.1.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,9 +24,9 @@ }, "dependencies": { "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/plugin-home": "^0.4.24-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/plugin-home": "^0.4.24", "@backstage/plugin-search-common": "^1.0.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -42,10 +42,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/jest": "^26.0.7", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index f666bb2fa9..c6e8bd0d0a 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.19 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-tech-insights-common@0.2.6 + - @backstage/plugin-tech-insights-node@0.3.3 + ## 0.1.19-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 890b521daf..3a7191e429 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.19-next.0", + "version": "0.1.19", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-tech-insights-common": "^0.2.6-next.0", - "@backstage/plugin-tech-insights-node": "^0.3.3-next.0", + "@backstage/plugin-tech-insights-common": "^0.2.6", + "@backstage/plugin-tech-insights-node": "^0.3.3", "ajv": "^8.10.0", "json-rules-engine": "^6.1.2", "lodash": "^4.17.21", @@ -46,7 +46,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index e5d471a439..a9178622a9 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-tech-insights-backend +## 0.5.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-tasks@0.3.4 + - @backstage/plugin-tech-insights-common@0.2.6 + - @backstage/plugin-tech-insights-node@0.3.3 + ## 0.5.1-next.0 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 44b84d5fd3..194959d163 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.5.1-next.0", + "version": "0.5.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,14 +34,14 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/plugin-tech-insights-common": "^0.2.6-next.0", - "@backstage/plugin-tech-insights-node": "^0.3.3-next.0", + "@backstage/plugin-tech-insights-common": "^0.2.6", + "@backstage/plugin-tech-insights-node": "^0.3.3", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -54,8 +54,8 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "@types/semver": "^7.3.8", "supertest": "^6.1.3", diff --git a/plugins/tech-insights-common/CHANGELOG.md b/plugins/tech-insights-common/CHANGELOG.md index 09a21f5386..0482f80fb0 100644 --- a/plugins/tech-insights-common/CHANGELOG.md +++ b/plugins/tech-insights-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-tech-insights-common +## 0.2.6 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. + ## 0.2.6-next.0 ### Patch Changes diff --git a/plugins/tech-insights-common/package.json b/plugins/tech-insights-common/package.json index 172344d005..1b5dabb88d 100644 --- a/plugins/tech-insights-common/package.json +++ b/plugins/tech-insights-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-common", - "version": "0.2.6-next.0", + "version": "0.2.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,7 +38,7 @@ "@backstage/types": "^1.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index 817eb1def5..36650980e8 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-insights-node +## 0.3.3 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/plugin-tech-insights-common@0.2.6 + ## 0.3.3-next.0 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 3d65d662c3..0233fac050 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.3.3-next.0", + "version": "0.3.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -33,16 +33,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/config": "^1.0.1", - "@backstage/plugin-tech-insights-common": "^0.2.6-next.0", + "@backstage/plugin-tech-insights-common": "^0.2.6", "@backstage/types": "^1.0.0", "@types/luxon": "^3.0.0", "luxon": "^3.0.0", "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0" + "@backstage/cli": "^0.18.1" }, "files": [ "dist" diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 5c4864405e..b80355146d 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-tech-insights +## 0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-tech-insights-common@0.2.6 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 3488f28f2d..2cd84c9915 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.2.4-next.1", + "version": "0.2.4", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,11 +29,11 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", - "@backstage/plugin-tech-insights-common": "^0.2.6-next.0", + "@backstage/plugin-catalog-react": "^1.1.3", + "@backstage/plugin-tech-insights-common": "^0.2.6", "@backstage/theme": "^0.2.16", "@backstage/types": "^1.0.0", "@material-ui/core": "^4.12.2", @@ -47,10 +47,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index 8d2bd23ed6..0659f93073 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-radar +## 0.5.15 + +### Patch Changes + +- a641f79dcb: Move CSS overflow property to quadrant block element (i.e. to a div element) in RadarLegend component. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.5.15-next.1 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 5267acfd55..c65d159429 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.15-next.1", + "version": "0.5.15", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,8 +34,8 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 9ee8c381a8..f10fadfec2 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.3.1 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog@1.5.0 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/core-app-api@1.0.5 + - @backstage/integration-react@1.1.3 + - @backstage/test-utils@1.1.3 + - @backstage/plugin-search-react@1.0.1 + ## 1.0.3-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 0cddc8c93c..a355d55276 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.3-next.1", + "version": "1.0.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,15 +32,15 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog": "^1.5.0-next.2", - "@backstage/plugin-search-react": "^1.0.1-next.1", - "@backstage/plugin-techdocs": "^1.3.1-next.2", - "@backstage/plugin-techdocs-react": "^1.0.3-next.2", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-app-api": "^1.0.5", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog": "^1.5.0", + "@backstage/plugin-search-react": "^1.0.1", + "@backstage/plugin-techdocs": "^1.3.1", + "@backstage/plugin-techdocs-react": "^1.0.3", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", @@ -56,8 +56,8 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/dev-utils": "^1.0.5-next.1", + "@backstage/cli": "^0.18.1", + "@backstage/dev-utils": "^1.0.5", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 944926f841..8140808d9d 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-backend +## 1.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + - @backstage/plugin-techdocs-node@1.3.0 + - @backstage/plugin-catalog-common@1.0.5 + ## 1.2.1-next.1 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index eea1837301..dcf8da6d7a 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.2.1-next.1", + "version": "1.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,16 +34,16 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/plugin-catalog-common": "^1.0.5-next.0", + "@backstage/integration": "^1.3.0", + "@backstage/plugin-catalog-common": "^1.0.5", "@backstage/plugin-permission-common": "^0.6.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-techdocs-node": "^1.3.0-next.1", + "@backstage/plugin-techdocs-node": "^1.3.0", "@types/express": "^4.17.6", "dockerode": "^3.3.1", "express": "^4.17.1", @@ -56,9 +56,9 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/backend-test-utils": "^0.1.27-next.0", - "@backstage/cli": "^0.18.1-next.0", - "@backstage/plugin-search-backend-node": "1.0.1-next.0", + "@backstage/backend-test-utils": "^0.1.27", + "@backstage/cli": "^0.18.1", + "@backstage/plugin-search-backend-node": "1.0.1", "@types/dockerode": "^3.3.0", "msw": "^0.44.0", "supertest": "^6.1.3" diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index f0b9d1578a..4babb601bc 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.3 + +### Patch Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/integration-react@1.1.3 + ## 1.0.3-next.2 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 5f84ee45c3..7e8b3f3cac 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.3-next.2", + "version": "1.0.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,11 +34,11 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-techdocs-react": "^1.0.3-next.2", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", + "@backstage/integration": "^1.3.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-techdocs-react": "^1.0.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", @@ -51,11 +51,11 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/plugin-techdocs-addons-test-utils": "^1.0.3-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/plugin-techdocs-addons-test-utils": "^1.0.3", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 4f8356a87c..8b1b2059cb 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-techdocs-node +## 1.3.0 + +### Minor Changes + +- ad35364e97: feat(techdocs): add edit button support for bitbucketServer + +### Patch Changes + +- c8196bd37d: Fix AWS S3 404 NotFound error + + When reading an object from the S3 bucket through a stream, the aws-sdk getObject() API may throw a 404 NotFound Error with no error message or, in fact, any sort of HTTP-layer error responses. These fail the @backstage/error's assertError() checks, so they must be wrapped. The test for this case was also updated to match the wrapped error message. + +- f833344611: Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0). +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + ## 1.3.0-next.1 ### Minor Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 643ac95be2..d1a79db3b3 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.3.0-next.1", + "version": "1.3.0", "main": "src/index.ts", "types": "src/index.ts", "private": false, @@ -42,11 +42,11 @@ "dependencies": { "@azure/identity": "^2.0.1", "@azure/storage-blob": "^12.5.0", - "@backstage/backend-common": "^0.15.0-next.1", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", + "@backstage/integration": "^1.3.0", "@backstage/plugin-search-common": "^1.0.0", "@google-cloud/storage": "^6.0.0", "@trendyol-js/openstack-swift-sdk": "^0.0.5", @@ -64,7 +64,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/fs-extra": "^9.0.5", "@types/js-yaml": "^4.0.0", "@types/mime-types": "^2.1.0", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 1c88d774e8..08db6050b8 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-react +## 1.0.3 + +### Patch Changes + +- 29d6cf0147: Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag. + Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 1.0.3-next.2 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 446a77752a..8074b799bf 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.0.3-next.2", + "version": "1.0.3", "private": false, "publishConfig": { "access": "public", @@ -37,8 +37,8 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/version-bridge": "^1.0.1", "@material-ui/core": "^4.12.2", "@material-ui/lab": "4.0.0-alpha.57", @@ -57,7 +57,7 @@ "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/test-utils": "^1.1.3", "@backstage/theme": "^0.2.16" }, "files": [ diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 283245bb18..099c84eb0b 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-techdocs +## 1.3.1 + +### Patch Changes + +- e924d2d013: Added back reduction in size, this fixes the extremely large TeachDocs headings +- b86ed4d990: Add highlight to active navigation item and navigation parents. +- 7a98c73dc8: Fixed techdocs sidebar layout bug for medium devices. +- 8acb22205c: Scroll techdocs navigation into focus and expand any nested navigation items. +- Updated dependencies + - @backstage/integration@1.3.0 + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + - @backstage/plugin-techdocs-react@1.0.3 + - @backstage/integration-react@1.1.3 + - @backstage/plugin-search-react@1.0.1 + ## 1.3.1-next.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index f8e363e821..10f9f2f4c0 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.3.1-next.2", + "version": "1.3.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -37,15 +37,15 @@ "dependencies": { "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.1", - "@backstage/integration-react": "^1.1.3-next.1", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/integration": "^1.3.0", + "@backstage/integration-react": "^1.1.3", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/plugin-search-common": "^1.0.0", - "@backstage/plugin-search-react": "^1.0.1-next.1", - "@backstage/plugin-techdocs-react": "^1.0.3-next.2", + "@backstage/plugin-search-react": "^1.0.1", + "@backstage/plugin-techdocs-react": "^1.0.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -67,10 +67,10 @@ "react-dom": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/react-hooks": "^8.0.0", diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index 8d086e4608..bfeaef7f11 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-todo-backend +## 0.1.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/integration@1.3.0 + ## 0.1.32-next.0 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index fc99d715b1..fc5b396a7c 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.32-next.0", + "version": "0.1.32", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,12 +29,12 @@ "start": "backstage-cli package start" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", + "@backstage/backend-common": "^0.15.0", "@backstage/catalog-client": "^1.0.4", "@backstage/catalog-model": "^1.1.0", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", - "@backstage/integration": "^1.3.0-next.0", + "@backstage/integration": "^1.3.0", "@types/express": "^4.17.6", "express": "^4.17.1", "express-promise-router": "^4.1.0", @@ -43,7 +43,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/supertest": "^2.0.8", "msw": "^0.44.0", "supertest": "^6.1.3" diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index cdc529308c..ae2fe2a9df 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-todo +## 0.2.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 817a1c5327..0472ddd349 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.10-next.1", + "version": "0.2.10", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -31,10 +31,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -45,10 +45,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index a87cdfb9c4..25fc8a11d6 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-user-settings +## 0.4.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.4.7-next.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 46a82fbdd0..7aea0a9bbb 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.4.7-next.1", + "version": "0.4.7", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,8 +34,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -48,10 +48,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index 00d5360ca4..64c3782f9d 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-vault-backend +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.15.0 + - @backstage/backend-test-utils@0.1.27 + - @backstage/backend-tasks@0.3.4 + ## 0.2.1-next.0 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 1e6292fa00..506b68ed6e 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.2.1-next.0", + "version": "0.2.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -34,9 +34,9 @@ "postpack": "backstage-cli package postpack" }, "dependencies": { - "@backstage/backend-common": "^0.15.0-next.0", - "@backstage/backend-tasks": "^0.3.4-next.0", - "@backstage/backend-test-utils": "^0.1.27-next.0", + "@backstage/backend-common": "^0.15.0", + "@backstage/backend-tasks": "^0.3.4", + "@backstage/backend-test-utils": "^0.1.27", "@backstage/config": "^1.0.1", "@backstage/errors": "^1.1.0", "@types/express": "*", @@ -51,7 +51,7 @@ "yn": "^5.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.0", + "@backstage/cli": "^0.18.1", "@types/compression": "^1.7.2", "@types/supertest": "^2.0.8", "msw": "^0.44.0", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index 56523c0d23..1cbc985e1c 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-vault +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + - @backstage/plugin-catalog-react@1.1.3 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 9aed61d6d4..66797dc171 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.2-next.1", + "version": "0.1.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -35,10 +35,10 @@ }, "dependencies": { "@backstage/catalog-model": "^1.1.0", - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", - "@backstage/plugin-catalog-react": "^1.1.3-next.2", + "@backstage/plugin-catalog-react": "^1.1.3", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", @@ -49,10 +49,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 40e7385089..2639b124e8 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-xcmetrics +## 0.2.28 + +### Patch Changes + +- 29f782eb37: Updated dependency `@types/luxon` to `^3.0.0`. +- Updated dependencies + - @backstage/core-components@0.11.0 + - @backstage/core-plugin-api@1.0.5 + ## 0.2.28-next.1 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index bd13f5f4af..d71dbb02d3 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.28-next.1", + "version": "0.2.28", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -24,8 +24,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/core-components": "^0.11.0-next.2", - "@backstage/core-plugin-api": "^1.0.5-next.0", + "@backstage/core-components": "^0.11.0", + "@backstage/core-plugin-api": "^1.0.5", "@backstage/errors": "^1.1.0", "@backstage/theme": "^0.2.16", "@material-ui/core": "^4.12.2", @@ -40,10 +40,10 @@ "react": "^16.13.1 || ^17.0.0" }, "devDependencies": { - "@backstage/cli": "^0.18.1-next.1", - "@backstage/core-app-api": "^1.0.5-next.0", - "@backstage/dev-utils": "^1.0.5-next.1", - "@backstage/test-utils": "^1.1.3-next.0", + "@backstage/cli": "^0.18.1", + "@backstage/core-app-api": "^1.0.5", + "@backstage/dev-utils": "^1.0.5", + "@backstage/test-utils": "^1.1.3", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", diff --git a/yarn.lock b/yarn.lock index de5a33bf49..a954334488 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2085,136 +2085,6 @@ zen-observable "^0.8.15" zod "^3.11.6" -"@backstage/core-plugin-api@^1.0.0", "@backstage/core-plugin-api@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-1.0.4.tgz#0dbe80be1d298273df0299ef69baa18522d9a808" - integrity sha512-fMMpjqW2RjwclnHUJsSyPCTguplflQYEWv7wsk7IoanEkWx39pensi8OsdIBawXrOixXEnI47dgxtVMOQUxOKA== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/types" "^1.0.0" - "@backstage/version-bridge" "^1.0.1" - history "^5.0.0" - prop-types "^15.7.2" - react-router-dom "6.0.0-beta.0" - zen-observable "^0.8.15" - -"@backstage/integration-react@^1.0.0": - version "1.1.2" - resolved "https://registry.npmjs.org/@backstage/integration-react/-/integration-react-1.1.2.tgz#001a736f5ce222bf770a26c2c15b42705012e495" - integrity sha512-5MA9cuIDRviQ2Qi9slbHE2i2tBnIcs4JdRukc3sTw7zarcmYaVkDI7N2pQiBkVxATKwXoY8gDuEQD8VYr62cnw== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/core-components" "^0.10.0" - "@backstage/core-plugin-api" "^1.0.4" - "@backstage/integration" "^1.2.2" - "@backstage/theme" "^0.2.16" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - react-use "^17.2.4" - -"@backstage/integration@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@backstage/integration/-/integration-1.2.2.tgz#f0a9cb6ae31444832505d9f57dfa3f921fb0c6c0" - integrity sha512-MIttnW6xEIun94muo0nmJ3hK9ks9IgUvBsYGNwfxsKpWBv3g3zZ4cU0pXpUdtvzhWOHw7w3HQrSPEVmm6MSqbA== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/errors" "^1.1.0" - "@octokit/auth-app" "^4.0.0" - "@octokit/rest" "^19.0.3" - cross-fetch "^3.1.5" - git-url-parse "^12.0.0" - lodash "^4.17.21" - luxon "^3.0.0" - -"@backstage/plugin-catalog-common@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@backstage/plugin-catalog-common/-/plugin-catalog-common-1.0.4.tgz#94389cb6555eeaea2814d286744d951578ae9132" - integrity sha512-6+3pQMFOjvsswzaGZ1qqgkc2dnuQOFILDk4zmmc/bq35R4ICk48Pbw41gH0/YR7yupXPi3OwN4la50ECUELCqw== - dependencies: - "@backstage/plugin-permission-common" "^0.6.3" - "@backstage/plugin-search-common" "^1.0.0" - -"@backstage/plugin-catalog-react@^1.0.0", "@backstage/plugin-catalog-react@^1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-1.1.2.tgz#253a99d9ced5d751f9d1fb3d278511d754aaed4e" - integrity sha512-4O9TotC4aWuLA8gFcgvq/HeKXA80LUZ98WTdIqSA6iFjzh1BZbD/nvaG7Hw7X8m5C/Z7Ck4PM+ocB4XxxlVAZw== - dependencies: - "@backstage/catalog-client" "^1.0.4" - "@backstage/catalog-model" "^1.1.0" - "@backstage/core-components" "^0.10.0" - "@backstage/core-plugin-api" "^1.0.4" - "@backstage/errors" "^1.1.0" - "@backstage/integration" "^1.2.2" - "@backstage/plugin-catalog-common" "^1.0.4" - "@backstage/plugin-permission-common" "^0.6.3" - "@backstage/plugin-permission-react" "^0.4.3" - "@backstage/theme" "^0.2.16" - "@backstage/types" "^1.0.0" - "@backstage/version-bridge" "^1.0.1" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - classnames "^2.2.6" - jwt-decode "^3.1.0" - lodash "^4.17.21" - qs "^6.9.4" - react-router "6.0.0-beta.0" - react-use "^17.2.4" - yaml "^2.0.0" - zen-observable "^0.8.15" - -"@backstage/plugin-home@^0.4.19", "@backstage/plugin-home@^0.4.23": - version "0.4.23" - resolved "https://registry.npmjs.org/@backstage/plugin-home/-/plugin-home-0.4.23.tgz#5b6a105615bdd63292470ca3906920d8fc810cc1" - integrity sha512-LrNc88Px2HjjVXe5VUBU3TuayJCibiju8GoEDerVk4aL9IW8pom0MMVBGj6qB7NvWOoOUSL19GmSA1ysZ5NN/g== - dependencies: - "@backstage/catalog-model" "^1.1.0" - "@backstage/config" "^1.0.1" - "@backstage/core-components" "^0.10.0" - "@backstage/core-plugin-api" "^1.0.4" - "@backstage/plugin-catalog-react" "^1.1.2" - "@backstage/plugin-stack-overflow" "^0.1.3" - "@backstage/theme" "^0.2.16" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.57" - lodash "^4.17.21" - react-router "6.0.0-beta.0" - react-use "^17.2.4" - -"@backstage/plugin-permission-react@^0.4.3": - version "0.4.3" - resolved "https://registry.npmjs.org/@backstage/plugin-permission-react/-/plugin-permission-react-0.4.3.tgz#9d844e178aa01b838e80ce3a4716211f79a3dec8" - integrity sha512-ZyvZ+39fw0WBFbgWYgkbfITCm9vz2onf5FAYAhzSpO3uXarKm8FXtioV93/VkOcA6uJVzkU8AvFjKW2Chd1cfA== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/core-plugin-api" "^1.0.4" - "@backstage/plugin-permission-common" "^0.6.3" - cross-fetch "^3.1.5" - react-router "6.0.0-beta.0" - react-use "^17.2.4" - swr "^1.1.2" - -"@backstage/plugin-stack-overflow@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@backstage/plugin-stack-overflow/-/plugin-stack-overflow-0.1.3.tgz#6a345f02b56443fb10303176882a6b32e83a6fdd" - integrity sha512-Oy1YNnfZB6MUVOgH5zd28yyCMKlU78aZQS1RNX34Plpf6xd+wb0Ihqhno3B0+Slp1EIAHpQBQAsGnZWPIToDhg== - dependencies: - "@backstage/config" "^1.0.1" - "@backstage/core-components" "^0.10.0" - "@backstage/core-plugin-api" "^1.0.4" - "@backstage/plugin-home" "^0.4.23" - "@backstage/plugin-search-common" "^1.0.0" - "@backstage/theme" "^0.2.16" - "@material-ui/core" "^4.12.2" - "@material-ui/icons" "^4.9.1" - "@testing-library/jest-dom" "^5.10.1" - cross-fetch "^3.1.5" - lodash "^4.17.21" - qs "^6.9.4" - react-use "^17.2.4" - "@balena/dockerignore@^1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" @@ -13249,63 +13119,63 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: safe-buffer "^5.1.1" "example-app@link:packages/app": - version "0.2.74-next.2" + version "0.2.74" dependencies: - "@backstage/app-defaults" "^1.0.5-next.1" + "@backstage/app-defaults" "^1.0.5" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.1" + "@backstage/cli" "^0.18.1" "@backstage/config" "^1.0.1" - "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.11.0-next.2" - "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.1" - "@backstage/plugin-airbrake" "^0.3.8-next.1" - "@backstage/plugin-apache-airflow" "^0.2.1-next.1" - "@backstage/plugin-api-docs" "^0.8.8-next.2" - "@backstage/plugin-azure-devops" "^0.1.24-next.1" - "@backstage/plugin-badges" "^0.2.32-next.1" - "@backstage/plugin-catalog-common" "^1.0.5-next.0" - "@backstage/plugin-catalog-graph" "^0.2.20-next.1" - "@backstage/plugin-catalog-import" "^0.8.11-next.1" - "@backstage/plugin-catalog-react" "^1.1.3-next.2" - "@backstage/plugin-circleci" "^0.3.8-next.1" - "@backstage/plugin-cloudbuild" "^0.3.8-next.1" - "@backstage/plugin-code-coverage" "^0.2.1-next.1" - "@backstage/plugin-cost-insights" "^0.11.30-next.1" - "@backstage/plugin-dynatrace" "^0.1.2-next.1" - "@backstage/plugin-explore" "^0.3.39-next.1" - "@backstage/plugin-gcalendar" "^0.3.4-next.1" - "@backstage/plugin-gcp-projects" "^0.3.27-next.1" - "@backstage/plugin-github-actions" "^0.5.8-next.1" - "@backstage/plugin-gocd" "^0.1.14-next.1" - "@backstage/plugin-graphiql" "^0.2.40-next.1" - "@backstage/plugin-home" "^0.4.24-next.2" - "@backstage/plugin-jenkins" "^0.7.7-next.2" - "@backstage/plugin-kafka" "^0.3.8-next.1" - "@backstage/plugin-kubernetes" "^0.7.1-next.2" - "@backstage/plugin-lighthouse" "^0.3.8-next.1" - "@backstage/plugin-newrelic" "^0.3.26-next.1" - "@backstage/plugin-newrelic-dashboard" "^0.2.1-next.1" - "@backstage/plugin-org" "^0.5.8-next.1" - "@backstage/plugin-pagerduty" "0.5.1-next.1" - "@backstage/plugin-permission-react" "^0.4.4-next.0" - "@backstage/plugin-rollbar" "^0.4.8-next.1" - "@backstage/plugin-scaffolder" "^1.5.0-next.2" - "@backstage/plugin-search" "^1.0.1-next.1" + "@backstage/core-app-api" "^1.0.5" + "@backstage/core-components" "^0.11.0" + "@backstage/core-plugin-api" "^1.0.5" + "@backstage/integration-react" "^1.1.3" + "@backstage/plugin-airbrake" "^0.3.8" + "@backstage/plugin-apache-airflow" "^0.2.1" + "@backstage/plugin-api-docs" "^0.8.8" + "@backstage/plugin-azure-devops" "^0.1.24" + "@backstage/plugin-badges" "^0.2.32" + "@backstage/plugin-catalog-common" "^1.0.5" + "@backstage/plugin-catalog-graph" "^0.2.20" + "@backstage/plugin-catalog-import" "^0.8.11" + "@backstage/plugin-catalog-react" "^1.1.3" + "@backstage/plugin-circleci" "^0.3.8" + "@backstage/plugin-cloudbuild" "^0.3.8" + "@backstage/plugin-code-coverage" "^0.2.1" + "@backstage/plugin-cost-insights" "^0.11.30" + "@backstage/plugin-dynatrace" "^0.1.2" + "@backstage/plugin-explore" "^0.3.39" + "@backstage/plugin-gcalendar" "^0.3.4" + "@backstage/plugin-gcp-projects" "^0.3.27" + "@backstage/plugin-github-actions" "^0.5.8" + "@backstage/plugin-gocd" "^0.1.14" + "@backstage/plugin-graphiql" "^0.2.40" + "@backstage/plugin-home" "^0.4.24" + "@backstage/plugin-jenkins" "^0.7.7" + "@backstage/plugin-kafka" "^0.3.8" + "@backstage/plugin-kubernetes" "^0.7.1" + "@backstage/plugin-lighthouse" "^0.3.8" + "@backstage/plugin-newrelic" "^0.3.26" + "@backstage/plugin-newrelic-dashboard" "^0.2.1" + "@backstage/plugin-org" "^0.5.8" + "@backstage/plugin-pagerduty" "0.5.1" + "@backstage/plugin-permission-react" "^0.4.4" + "@backstage/plugin-rollbar" "^0.4.8" + "@backstage/plugin-scaffolder" "^1.5.0" + "@backstage/plugin-search" "^1.0.1" "@backstage/plugin-search-common" "^1.0.0" - "@backstage/plugin-search-react" "^1.0.1-next.1" - "@backstage/plugin-sentry" "^0.4.1-next.1" - "@backstage/plugin-shortcuts" "^0.3.0-next.1" - "@backstage/plugin-stack-overflow" "^0.1.4-next.1" - "@backstage/plugin-tech-insights" "^0.2.4-next.1" - "@backstage/plugin-tech-radar" "^0.5.15-next.1" - "@backstage/plugin-techdocs" "^1.3.1-next.2" - "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3-next.2" - "@backstage/plugin-techdocs-react" "^1.0.3-next.2" - "@backstage/plugin-todo" "^0.2.10-next.1" - "@backstage/plugin-user-settings" "^0.4.7-next.1" + "@backstage/plugin-search-react" "^1.0.1" + "@backstage/plugin-sentry" "^0.4.1" + "@backstage/plugin-shortcuts" "^0.3.0" + "@backstage/plugin-stack-overflow" "^0.1.4" + "@backstage/plugin-tech-insights" "^0.2.4" + "@backstage/plugin-tech-radar" "^0.5.15" + "@backstage/plugin-techdocs" "^1.3.1" + "@backstage/plugin-techdocs-module-addons-contrib" "^1.0.3" + "@backstage/plugin-techdocs-react" "^1.0.3" + "@backstage/plugin-todo" "^0.2.10" + "@backstage/plugin-user-settings" "^0.4.7" "@backstage/theme" "^0.2.16" - "@internal/plugin-catalog-customized" "0.0.1-next.0" + "@internal/plugin-catalog-customized" "0.0.1" "@material-ui/core" "^4.12.2" "@material-ui/icons" "^4.9.1" "@material-ui/lab" "4.0.0-alpha.57" @@ -24926,20 +24796,20 @@ tdigest@^0.1.1: bintrees "1.0.1" "techdocs-cli-embedded-app@link:packages/techdocs-cli-embedded-app": - version "0.2.73-next.1" + version "0.2.73" dependencies: - "@backstage/app-defaults" "^1.0.5-next.1" + "@backstage/app-defaults" "^1.0.5" "@backstage/catalog-model" "^1.1.0" - "@backstage/cli" "^0.18.1-next.1" + "@backstage/cli" "^0.18.1" "@backstage/config" "^1.0.1" - "@backstage/core-app-api" "^1.0.5-next.0" - "@backstage/core-components" "^0.11.0-next.2" - "@backstage/core-plugin-api" "^1.0.5-next.0" - "@backstage/integration-react" "^1.1.3-next.1" - "@backstage/plugin-catalog" "^1.5.0-next.2" - "@backstage/plugin-techdocs" "^1.3.1-next.2" - "@backstage/plugin-techdocs-react" "^1.0.3-next.2" - "@backstage/test-utils" "^1.1.3-next.0" + "@backstage/core-app-api" "^1.0.5" + "@backstage/core-components" "^0.11.0" + "@backstage/core-plugin-api" "^1.0.5" + "@backstage/integration-react" "^1.1.3" + "@backstage/plugin-catalog" "^1.5.0" + "@backstage/plugin-techdocs" "^1.3.1" + "@backstage/plugin-techdocs-react" "^1.0.3" + "@backstage/test-utils" "^1.1.3" "@backstage/theme" "^0.2.16" "@material-ui/core" "^4.11.0" "@material-ui/icons" "^4.9.1" From 9f071f3c4d1046d5b37e98c304cda4bda1ab8eb1 Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 15:05:17 +0200 Subject: [PATCH 166/239] feat: add homepage to github:publish options Signed-off-by: Leon van Ginneken --- .../src/scaffolder/actions/builtin/github/helpers.ts | 3 +++ .../src/scaffolder/actions/builtin/github/inputProperties.ts | 5 +++++ .../src/scaffolder/actions/builtin/publish/github.ts | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts index b60794295a..fd3899b18a 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts @@ -97,6 +97,7 @@ export async function createGithubRepoWithCollaboratorsAndTopics( owner: string, repoVisibility: 'private' | 'internal' | 'public', description: string | undefined, + homepage: string | undefined, deleteBranchOnMerge: boolean, allowMergeCommit: boolean, allowSquashMerge: boolean, @@ -138,6 +139,7 @@ export async function createGithubRepoWithCollaboratorsAndTopics( allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, allow_rebase_merge: allowRebaseMerge, + homepage: homepage, }) : client.rest.repos.createForAuthenticatedUser({ name: repo, @@ -147,6 +149,7 @@ export async function createGithubRepoWithCollaboratorsAndTopics( allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, allow_rebase_merge: allowRebaseMerge, + homepage: homepage, }); let newRepo; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts index b0113a4485..153b2e6941 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts @@ -23,6 +23,10 @@ const description = { title: 'Repository Description', type: 'string', }; +const homepage = { + title: 'Repository Homepage', + type: 'string', +}; const access = { title: 'Repository Access', description: `Sets an admin collaborator on the repository. Can either be a user reference different from 'owner' in 'repoUrl' or team reference, eg. 'org/team-name'`, @@ -156,6 +160,7 @@ export { description }; export { gitAuthorEmail }; export { gitAuthorName }; export { gitCommitMessage }; +export { homepage }; export { protectDefaultBranch }; export { protectEnforceAdmins }; export { repoUrl }; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index eea006ae8f..8ce9105237 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -45,6 +45,7 @@ export function createPublishGithubAction(options: { return createTemplateAction<{ repoUrl: string; description?: string; + homepage?: string; access?: string; defaultBranch?: string; protectDefaultBranch?: boolean; @@ -88,6 +89,7 @@ export function createPublishGithubAction(options: { properties: { repoUrl: inputProps.repoUrl, description: inputProps.description, + homepage: inputProps.homepage, access: inputProps.access, requireCodeOwnerReviews: inputProps.requireCodeOwnerReviews, requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, @@ -120,6 +122,7 @@ export function createPublishGithubAction(options: { const { repoUrl, description, + homepage, access, requireCodeOwnerReviews = false, requiredStatusCheckContexts = [], @@ -159,6 +162,7 @@ export function createPublishGithubAction(options: { owner, repoVisibility, description, + homepage, deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, From 35b49f821e729b43afa4bfe23850511c59e784a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:07:53 +0000 Subject: [PATCH 167/239] chore(deps): update dependency puppeteer to v16.1.1 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a954334488..6764e6e0ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21717,9 +21717,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== puppeteer@^16.0.0: - version "16.1.0" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.0.tgz#06a32dc347c94642601017fbf83e1d37379b9651" - integrity sha512-lhykJLbH2bbBaP3NfYI2Vj0T4ctrdfVdEVf8glZITPnLfqrJ0nfUzAYuIz5YcA79k5lmFKANIhEXex+jQChU3g== + version "16.1.1" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-16.1.1.tgz#1bb8ec3b86f755c34b913421b81e9cd2cfad3588" + integrity sha512-lBneizsNF0zi1/iog9c0ogVnvDHJG4IWpkdIAgE2oiDKhr0MJRV8JeM2xbhUwCwhDJXjjVS2TNCZdLsMp9Ojdg== dependencies: cross-fetch "3.1.5" debug "4.3.4" From 0971c10a1bd1c098308a2c89d00a3d75c7f72bee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:09:02 +0000 Subject: [PATCH 168/239] fix(deps): update dependency terser-webpack-plugin to v5.3.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a954334488..2d022c2034 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24857,9 +24857,9 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: - version "5.3.4" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.4.tgz#f4d31e265883d20fda3ca9c0fc6a53f173ae62e3" - integrity sha512-SmnkUhBxLDcBfTIeaq+ZqJXLVEyXxSaNcCeSezECdKjfkMrTTnPvapBILylYwyEvHFZAn2cJ8dtiXel5XnfOfQ== + version "5.3.5" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz#f7d82286031f915a4f8fb81af4bd35d2e3c011bc" + integrity sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA== dependencies: "@jridgewell/trace-mapping" "^0.3.14" jest-worker "^27.4.5" From ea2eee9e6a65217f56202ff4f693566912b80c86 Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 15:10:33 +0200 Subject: [PATCH 169/239] chore: changeset Signed-off-by: Leon van Ginneken --- .changeset/beige-pumas-tap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/beige-pumas-tap.md diff --git a/.changeset/beige-pumas-tap.md b/.changeset/beige-pumas-tap.md new file mode 100644 index 0000000000..63b2fb0ec5 --- /dev/null +++ b/.changeset/beige-pumas-tap.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Add the option for a homepage when using the github:publish action From 88f8c2a4068cfbe8e9ab9ea5e705545d4abf0a86 Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 15:34:30 +0200 Subject: [PATCH 170/239] feat: add homepage option to github:repo:create Signed-off-by: Leon van Ginneken --- .../src/scaffolder/actions/builtin/github/githubRepoCreate.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts index 1e92d91a64..5bc1fa8702 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts @@ -42,6 +42,7 @@ export function createGithubRepoCreateAction(options: { return createTemplateAction<{ repoUrl: string; description?: string; + homepage?: string; access?: string; deleteBranchOnMerge?: boolean; gitAuthorName?: string; @@ -79,6 +80,7 @@ export function createGithubRepoCreateAction(options: { properties: { repoUrl: inputProps.repoUrl, description: inputProps.description, + homepage: inputProps.homepage, access: inputProps.access, requireCodeOwnerReviews: inputProps.requireCodeOwnerReviews, requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, @@ -104,6 +106,7 @@ export function createGithubRepoCreateAction(options: { const { repoUrl, description, + homepage, access, repoVisibility = 'private', deleteBranchOnMerge = false, @@ -135,6 +138,7 @@ export function createGithubRepoCreateAction(options: { owner, repoVisibility, description, + homepage, deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, From 1c6106bafbd89234282452bcdf87399a56f0ab1a Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 15:35:03 +0200 Subject: [PATCH 171/239] test: add tests Signed-off-by: Leon van Ginneken --- .../builtin/github/githubRepoCreate.test.ts | 38 ++++++++++ .../actions/builtin/publish/github.test.ts | 71 +++++++++++++++++++ 2 files changed, 109 insertions(+) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts index 0e7e907917..f7fd624865 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts @@ -129,6 +129,25 @@ describe('github:repo:create', () => { allow_rebase_merge: true, visibility: 'public', }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + homepage: 'https://example.com', + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: false, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + visibility: 'public', + }); }); it('should call the githubApis with the correct values for createForAuthenticatedUser', async () => { @@ -171,6 +190,25 @@ describe('github:repo:create', () => { allow_merge_commit: true, allow_rebase_merge: true, }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + homepage: 'https://example.com', + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: false, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + }); }); it('should add access for the team when it starts with the owner', async () => { diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index a526e73019..eec413e2f0 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -134,6 +134,25 @@ describe('publish:github', () => { allow_rebase_merge: true, visibility: 'public', }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + homepage: 'https://example.com', + }, + }); + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + org: 'owner', + private: false, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + visibility: 'public', + }); }); it('should call the githubApis with the correct values for createForAuthenticatedUser', async () => { @@ -176,6 +195,25 @@ describe('publish:github', () => { allow_merge_commit: true, allow_rebase_merge: true, }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + homepage: 'https://example.com', + }, + }); + expect( + mockOctokit.rest.repos.createForAuthenticatedUser, + ).toHaveBeenCalledWith({ + description: 'description', + name: 'repo', + private: false, + delete_branch_on_merge: false, + allow_squash_merge: true, + allow_merge_commit: true, + allow_rebase_merge: true, + }); }); it('should call initRepoAndPush with the correct values', async () => { @@ -812,4 +850,37 @@ describe('publish:github', () => { expect(enableBranchProtectionOnDefaultRepoBranch).not.toHaveBeenCalled(); }); + + it('should add homepage when provided', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'User' }, + }); + + mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({ + data: { + clone_url: 'https://github.com/clone/url.git', + html_url: 'https://github.com/html/url', + }, + }); + + mockOctokit.rest.repos.replaceAllTopics.mockResolvedValue({ + data: { + names: ['node.js'], + }, + }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + topics: ['node.js'], + }, + }); + + expect(mockOctokit.rest.repos.replaceAllTopics).toHaveBeenCalledWith({ + owner: 'owner', + repo: 'repo', + names: ['node.js'], + }); + }); }); From bcd9bc0d507766d0b100735e1a93acda0b6d8bbb Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 16:22:19 +0200 Subject: [PATCH 172/239] test: fix test Signed-off-by: Leon van Ginneken --- .../actions/builtin/github/githubRepoCreate.test.ts | 8 +++++--- .../src/scaffolder/actions/builtin/publish/github.test.ts | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts index f7fd624865..f04a735bee 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts @@ -139,14 +139,15 @@ describe('github:repo:create', () => { }); expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ description: 'description', + homepage: 'https://example.com', name: 'repo', org: 'owner', - private: false, + private: true, delete_branch_on_merge: false, allow_squash_merge: true, allow_merge_commit: true, allow_rebase_merge: true, - visibility: 'public', + visibility: 'private', }); }); @@ -202,8 +203,9 @@ describe('github:repo:create', () => { mockOctokit.rest.repos.createForAuthenticatedUser, ).toHaveBeenCalledWith({ description: 'description', + homepage: 'https://example.com', name: 'repo', - private: false, + private: true, delete_branch_on_merge: false, allow_squash_merge: true, allow_merge_commit: true, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index eec413e2f0..6a2665bc8d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -145,13 +145,14 @@ describe('publish:github', () => { expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ description: 'description', name: 'repo', + homepage: 'https://example.com', org: 'owner', - private: false, + private: true, delete_branch_on_merge: false, allow_squash_merge: true, allow_merge_commit: true, allow_rebase_merge: true, - visibility: 'public', + visibility: 'private', }); }); @@ -207,8 +208,9 @@ describe('publish:github', () => { mockOctokit.rest.repos.createForAuthenticatedUser, ).toHaveBeenCalledWith({ description: 'description', + homepage: 'https://example.com', name: 'repo', - private: false, + private: true, delete_branch_on_merge: false, allow_squash_merge: true, allow_merge_commit: true, From b254e95141ad9cd1a3d16e5b94aa39f0b53e8022 Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Tue, 16 Aug 2022 16:30:01 +0200 Subject: [PATCH 173/239] chore: update api-report Signed-off-by: Leon van Ginneken --- plugins/scaffolder-backend/api-report.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 96a4d7b400..256eda0063 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -178,6 +178,7 @@ export function createGithubRepoCreateAction(options: { }): TemplateAction<{ repoUrl: string; description?: string | undefined; + homepage?: string | undefined; access?: string | undefined; deleteBranchOnMerge?: boolean | undefined; gitAuthorName?: string | undefined; @@ -187,7 +188,7 @@ export function createGithubRepoCreateAction(options: { allowMergeCommit?: boolean | undefined; requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -267,7 +268,7 @@ export function createPublishBitbucketAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -284,7 +285,7 @@ export function createPublishBitbucketCloudAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; token?: string | undefined; }>; @@ -297,7 +298,7 @@ export function createPublishBitbucketServerAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -343,6 +344,7 @@ export function createPublishGithubAction(options: { }): TemplateAction<{ repoUrl: string; description?: string | undefined; + homepage?: string | undefined; access?: string | undefined; defaultBranch?: string | undefined; protectDefaultBranch?: boolean | undefined; @@ -357,7 +359,7 @@ export function createPublishGithubAction(options: { sourcePath?: string | undefined; requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -403,7 +405,7 @@ export function createPublishGitlabAction(options: { }): TemplateAction<{ repoUrl: string; defaultBranch?: string | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; sourcePath?: string | undefined; token?: string | undefined; gitCommitMessage?: string | undefined; @@ -422,7 +424,7 @@ export const createPublishGitlabMergeRequestAction: (options: { branchName: string; targetPath: string; token?: string | undefined; - commitAction?: 'update' | 'create' | 'delete' | undefined; + commitAction?: 'create' | 'update' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From 9d18c0c382b28d27484a299ee736f384b3b71fe7 Mon Sep 17 00:00:00 2001 From: Isaiah Thiessen Date: Tue, 16 Aug 2022 09:27:55 -0700 Subject: [PATCH 174/239] fix: update component props in unit tests Signed-off-by: Isaiah Thiessen --- .../Problems/ProblemsList/ProblemsList.test.tsx | 10 ++-------- .../Synthetics/SyntheticsCard/SyntheticsCard.test.tsx | 6 +----- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.test.tsx b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.test.tsx index ff5d20dc28..9b9c51dca1 100644 --- a/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.test.tsx +++ b/plugins/dynatrace/src/components/Problems/ProblemsList/ProblemsList.test.tsx @@ -36,10 +36,7 @@ describe('ProblemStatus', () => { .mockResolvedValue({ problems }); const rendered = await renderInTestApp( - + , ); expect(await rendered.findByText('example-service')).toBeInTheDocument(); @@ -48,10 +45,7 @@ describe('ProblemStatus', () => { mockDynatraceApi.getDynatraceProblems = jest.fn().mockResolvedValue({}); const rendered = await renderInTestApp( - + , ); expect( diff --git a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx index 8a06a140b4..e9083a3f82 100644 --- a/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx +++ b/plugins/dynatrace/src/components/Synthetics/SyntheticsCard/SyntheticsCard.test.tsx @@ -42,11 +42,7 @@ describe('SyntheticsCard', () => { }); const rendered = await renderInTestApp( - - , + , , ); expect( From 8fd4614665cc67f68cf296e63de61dc90aadaa21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Aug 2022 19:39:21 +0000 Subject: [PATCH 175/239] chore(deps): update dependency @types/lodash to v4.14.183 Signed-off-by: Renovate Bot --- yarn.lock | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8a1f29ae08..a17922a7dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7131,14 +7131,14 @@ "@types/node" "*" "@types/lodash@^4.14.151", "@types/lodash@^4.14.173", "@types/lodash@^4.14.175": - version "4.14.182" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + version "4.14.183" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.183.tgz#1173e843e858cff5b997c234df2789a4a54c2374" + integrity sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw== "@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + version "4.0.2" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== "@types/lru-cache@^5.1.0": version "5.1.1" @@ -7150,12 +7150,7 @@ resolved "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz#728f445855818fb17776d10ef4678f278072eb03" integrity sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g== -"@types/luxon@*": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-2.4.0.tgz#897d3abc23b68d78b69d76a12c21e01eb5adab95" - integrity sha512-oCavjEjRXuR6URJEtQm0eBdfsBiEcGBZbq21of8iGkeKxU1+1xgKuFPClaBZl2KB8ZZBSWlgk61tH6Mf+nvZVw== - -"@types/luxon@^3.0.0": +"@types/luxon@*", "@types/luxon@^3.0.0": version "3.0.0" resolved "https://registry.npmjs.org/@types/luxon/-/luxon-3.0.0.tgz#47fb7891e41875fce7018a8bd3d09b204c5621f5" integrity sha512-Lx+EZoJxUKw4dp8uei9XiUVNlgkYmax5+ovqt6Xf3LzJOnWhlfJw/jLBmqfGVwOP/pDr4HT8bI1WtxK0IChMLw== From 659116f613fa3d90f324d3b1ecbf8f312618cb4c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 00:34:35 +0000 Subject: [PATCH 176/239] chore(deps): update dependency @types/svgo to v2.6.4 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f3ebf7ca3d..a458ed69e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7674,9 +7674,9 @@ "@types/superagent" "*" "@types/svgo@^2.6.2": - version "2.6.3" - resolved "https://registry.npmjs.org/@types/svgo/-/svgo-2.6.3.tgz#0786d8329b67cd48d84e57cb92b79832b85e6c8e" - integrity sha512-5sP0Xgo0dXppY0tbYF6TevB/1+tzFLuu71XXxC/zGvQAn9PW7y+DwtDO81g0ZUPye00K6tPwtsLDOpARa0mFcA== + version "2.6.4" + resolved "https://registry.npmjs.org/@types/svgo/-/svgo-2.6.4.tgz#b7298fc1dd687539fd63fc818b00146d96e68836" + integrity sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng== dependencies: "@types/node" "*" From 04190e2f22e7f58a3447c089f764087429e32d3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 00:36:10 +0000 Subject: [PATCH 177/239] chore(deps): update dependency cypress to v10.6.0 Signed-off-by: Renovate Bot --- cypress/yarn.lock | 24 ++++++++++++------------ yarn.lock | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cypress/yarn.lock b/cypress/yarn.lock index 96e350871b..2f1e0f0775 100644 --- a/cypress/yarn.lock +++ b/cypress/yarn.lock @@ -40,14 +40,14 @@ lodash.once "^4.1.1" "@types/node@*": - version "18.6.3" - resolved "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98" - integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== + version "18.7.6" + resolved "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83" + integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A== "@types/node@^14.14.31": - version "14.18.23" - resolved "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz#70f5f20b0b1b38f696848c1d3647bb95694e615e" - integrity sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA== + version "14.18.24" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.24.tgz#406b220dc748947e1959d8a38a75979e87166704" + integrity sha512-aJdn8XErcSrfr7k8ZDDfU6/2OgjZcB2Fu9d+ESK8D7Oa5mtsv8Fa8GpcwTA0v60kuZBaalKPzuzun4Ov1YWO/w== "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" @@ -304,9 +304,9 @@ cross-spawn@^7.0.0: which "^2.0.1" cypress@^10.0.0: - version "10.4.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-10.4.0.tgz#bb5b3b6588ad49eff172fecf5778cc0da2980e4e" - integrity sha512-OM7F8MRE01SHQRVVzunid1ZK1m90XTxYnl+7uZfIrB4CYqUDCrZEeSyCXzIbsS6qcaijVCAhqDL60SxG8N6hew== + version "10.6.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-10.6.0.tgz#13f46867febf2c3715874ed5dce9c2e946b175fe" + integrity sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -359,9 +359,9 @@ dashdash@^1.12.0: assert-plus "^1.0.0" dayjs@^1.10.4: - version "1.11.4" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.4.tgz#3b3c10ca378140d8917e06ebc13a4922af4f433e" - integrity sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g== + version "1.11.5" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93" + integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA== debug@^3.1.0: version "3.2.7" diff --git a/yarn.lock b/yarn.lock index f3ebf7ca3d..564d01f003 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11366,9 +11366,9 @@ cypress-plugin-snapshots@^1.4.4: unidiff "1.0.2" cypress@^10.0.0: - version "10.4.0" - resolved "https://registry.npmjs.org/cypress/-/cypress-10.4.0.tgz#bb5b3b6588ad49eff172fecf5778cc0da2980e4e" - integrity sha512-OM7F8MRE01SHQRVVzunid1ZK1m90XTxYnl+7uZfIrB4CYqUDCrZEeSyCXzIbsS6qcaijVCAhqDL60SxG8N6hew== + version "10.6.0" + resolved "https://registry.npmjs.org/cypress/-/cypress-10.6.0.tgz#13f46867febf2c3715874ed5dce9c2e946b175fe" + integrity sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" From d38072a59a9f2cbad256dd31eaa4897aba2d10e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 00:37:11 +0000 Subject: [PATCH 178/239] fix(deps): update dependency aws-sdk to v2.1196.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f3ebf7ca3d..f03cd14a1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8987,9 +8987,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1195.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1195.0.tgz#f6f091426934ba1a4f8d5138f568e840f7bdb51a" - integrity sha512-xU7177JhKM+4SsLnoA6/r3qGzSXmbLgw/YC1KRHvZyJCbuTY+vdAGLaldbtNXjjwmE3a6EeoCREANv8GY62VdQ== + version "2.1196.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1196.0.tgz#28951e1c742373397514f295f742eb3a9497c02d" + integrity sha512-iOGhCY5IqGfHCJ70p0H/uxkXDh/96KanAMfhnGGbIKbpVliuEV7SYxTfsWORaaUHey+N8FE6OMKfzo7F4X+wQg== dependencies: buffer "4.9.2" events "1.1.1" From 38ad1fe1c50f07a26a1fc3445835b0c466866e49 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 01:34:46 +0000 Subject: [PATCH 179/239] fix(deps): update dependency google-auth-library to v8.2.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4d07a9c2ea..41c4c9c803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14460,9 +14460,9 @@ globby@^7.1.1: slash "^1.0.0" google-auth-library@^8.0.0, google-auth-library@^8.0.1, google-auth-library@^8.0.2: - version "8.1.1" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.1.1.tgz#4068d2b1512b812d3d3dfbdc848452a0d5a550de" - integrity sha512-eG3pCfrLgVJe19KhAeZwW0m1LplNEo0FX1GboWf3hu18zD2jq8TUH2K8900AB2YRAuJ7A+1aSXDp1BODjwwRzg== + version "8.2.0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.2.0.tgz#36d93e42f9bc8856ac2e69778b2b7a1e2aa16217" + integrity sha512-wCWs44jLT3cbzONVk2NKK1sfWaKCqzR21cudG3r9tV53/DC/wImxEr7HK5OBlEU5Q1iepZsrdFOxvzmC0M/YRQ== dependencies: arrify "^2.0.0" base64-js "^1.3.0" From 8fc1be7929848b160b821d5bba043f2840c8a4ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 01:35:50 +0000 Subject: [PATCH 180/239] fix(deps): update dependency graphql to v16.6.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4d07a9c2ea..94223b43f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14622,9 +14622,9 @@ graphql-ws@^5.4.1, graphql-ws@^5.9.0: integrity sha512-ewbPzHQdRZgNCPDH9Yr6xccSeZfk3fmpO/AGGGg4KkM5gc6oAOJQ10Oui1EqprhVOyRbOll9bw2qAkOiOwfTag== graphql@^16.0.0, graphql@^16.3.0: - version "16.5.0" - resolved "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz#41b5c1182eaac7f3d47164fb247f61e4dfb69c85" - integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== + version "16.6.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== grouped-queue@^2.0.0: version "2.0.0" From 196cb37c690f81dd86b80b104b2da1cb34e2317e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 08:29:24 +0000 Subject: [PATCH 181/239] fix(deps): update dependency isomorphic-git to v1.19.2 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 19853ea6dc..32c1a6dbba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16187,9 +16187,9 @@ isomorphic-form-data@^2.0.0: form-data "^2.3.2" isomorphic-git@^1.8.0: - version "1.19.1" - resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.19.1.tgz#99e18db18826b07c40a4c4b32484e917a4c4fd31" - integrity sha512-enp69F9dIWtAAB+aEMV83AVDiOoi7zHTMr1kTP2Bzka/PlX0W6C74W2y9b9UToX65oXvipPzhY5An2+F5BXVQw== + version "1.19.2" + resolved "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.19.2.tgz#e8f57443c63a58054f65f42e5cb189a2df31bd0d" + integrity sha512-14Tbf3GRFNoXw+fy6ssK7gpDZQxF+NytHmg7p+5L38IAVUafHnfjzJ0ZnEmLz3SAG20wYYyB+HufkRAFRttYxQ== dependencies: async-lock "^1.1.0" clean-git-ref "^2.0.1" From 765f1817883224656da86434e2efba3ac752b4f8 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 16 Aug 2022 11:35:19 +0200 Subject: [PATCH 182/239] Add 1.5.0 release notes Signed-off-by: Johan Haals --- docs/releases/v1.5.0.md | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/releases/v1.5.0.md diff --git a/docs/releases/v1.5.0.md b/docs/releases/v1.5.0.md new file mode 100644 index 0000000000..ca4ae11185 --- /dev/null +++ b/docs/releases/v1.5.0.md @@ -0,0 +1,60 @@ +--- +id: v1.5.0 +title: v1.5.0 +description: Backstage Release v1.5.0 +--- + +These are the release notes for the v1.5.0 release of [Backstage](https://backstage.io/). + +A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done. + +## Highlights + +### GitHub Entity Provider + +Added a new `GitHubEntityProvider` ([documentation](https://backstage.io/docs/integrations/github/discovery)), which allows for automatic discovery of catalog entity definition files out of your GitHub projects. This is an improvement upon the `GithubDiscoveryProcessor` that existed before, and we recommend using entity providers rather than processors for discovery and ingestion when possible. Contributed by [@brentg-telus](https://github.com/brentg-telus) [#12822](https://github.com/backstage/backstage/pull/12822) + +### Experimental Plugin Reconfiguration + +This release adds an experimental API that allows plugin authors to define plugin wide options. These options can then be used by adopters of the plugin to reconfigure it to fit their app. Check out the [plugin customization](https://backstage.io/docs/plugins/customization) docs for more information on how to get started. Feedback is welcome on this new feature! Contributed by [@acierto](https://github.com/acierto) [#11404](https://github.com/backstage/backstage/pull/11404) + +### Experimental Backend System Evolution + +This release adds the new `@backstage/backend-defaults` package, part of the [evolution of the backend system](https://github.com/backstage/backstage/issues/11611). This package is highly experimental and we do not recommend using it for any purpose, yet. + +### New plugin: `@aws/aws-proton-plugin-for-backstage` + +Interact with AWS Proton in Backstage. Contributed by [@clareliguori](https://github.com/clareliguori) [#12193](https://github.com/backstage/backstage/pull/12193) + +### New plugin: `@backstage/plugin-github-issues` + +This new plugin can be used to display GitHub issues for your entities. Contributed by [@mrwolny](https://github.com/mrwolny) [#12875](https://github.com/backstage/backstage/pull/12875) + +### New plugin: `@backstage/plugin-sonarqube-backend` + +This new backend for `@backstage/plugin-sonarqube` replaces the Sonarqube proxy configuration; once it is installed, you can remove the `/sonarqube` proxy entry. For more information, see the plugin [README.md](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-backend/README.md). Contributed by [@Neemys](https://github.com/Neemys) [#11925](https://github.com/backstage/backstage/pull/11925) + +### New module: `@backstage/plugin-catalog-backend-module-bitbucket-server` + +This new module for the catalog backend adds the `BitbucketServerEntityProvider`, which allows discovery of entities out of Bitbucket Server installations. Contributed by [@ONordander](https://github.com/ONordander) [#12835](https://github.com/backstage/backstage/pull/12835) + +## Security Fixes + +This release does not contain any security fixes. + +## Upgrade path + +We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). + +## Links and References + +Below you can find a list of links and references to help you learn about and start using this new release. + +- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) +- [GitHub repository](https://github.com/backstage/backstage) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) +- [Community Discord](https://discord.gg/bFESRKVt) for discussions and support +- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.5.0-changelog.md) +- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) + +Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage. From f5bfad5dd2af8d8d6a7c8c07b80be0de58e30a6e Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Wed, 17 Aug 2022 11:43:26 +0200 Subject: [PATCH 183/239] Update .changeset/beige-pumas-tap.md Co-authored-by: Patrik Oldsberg Signed-off-by: Leon van Ginneken --- .changeset/beige-pumas-tap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/beige-pumas-tap.md b/.changeset/beige-pumas-tap.md index 63b2fb0ec5..8ed8aab1f4 100644 --- a/.changeset/beige-pumas-tap.md +++ b/.changeset/beige-pumas-tap.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': minor --- -Add the option for a homepage when using the github:publish action +Add the option for a homepage when using the `github:publish` action From 422ac84c304dbeff96f5baa57171edb2f944674f Mon Sep 17 00:00:00 2001 From: Leon van Ginneken Date: Wed, 17 Aug 2022 12:15:49 +0200 Subject: [PATCH 184/239] chore: api-report Signed-off-by: Leon van Ginneken --- plugins/scaffolder-backend/api-report.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 7bdc09c874..cdbfe165f4 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -188,7 +188,7 @@ export function createGithubRepoCreateAction(options: { allowMergeCommit?: boolean | undefined; requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( | { @@ -268,7 +268,7 @@ export function createPublishBitbucketAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -285,7 +285,7 @@ export function createPublishBitbucketCloudAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; }>; @@ -298,7 +298,7 @@ export function createPublishBitbucketServerAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | undefined; + repoVisibility?: 'private' | 'public' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -354,7 +354,7 @@ export function createPublishGithubAction(options: { sourcePath?: string | undefined; requireCodeOwnerReviews?: boolean | undefined; requiredStatusCheckContexts?: string[] | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; collaborators?: | ( | { @@ -400,7 +400,7 @@ export function createPublishGitlabAction(options: { }): TemplateAction<{ repoUrl: string; defaultBranch?: string | undefined; - repoVisibility?: 'public' | 'private' | 'internal' | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; sourcePath?: string | undefined; token?: string | undefined; gitCommitMessage?: string | undefined; @@ -419,7 +419,7 @@ export const createPublishGitlabMergeRequestAction: (options: { branchName: string; targetPath: string; token?: string | undefined; - commitAction?: 'create' | 'update' | 'delete' | undefined; + commitAction?: 'update' | 'delete' | 'create' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From 361d88f6cc6e61dbe3d1c274a1a93f0a381a3a34 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 17 Aug 2022 13:09:41 +0200 Subject: [PATCH 185/239] scaffolder-backend: update API report Signed-off-by: Patrik Oldsberg --- plugins/scaffolder-backend/api-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index cdbfe165f4..68ab024bf6 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -419,7 +419,7 @@ export const createPublishGitlabMergeRequestAction: (options: { branchName: string; targetPath: string; token?: string | undefined; - commitAction?: 'update' | 'delete' | 'create' | undefined; + commitAction?: 'update' | 'create' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; From 99d0ce4199dca03fef50f2f5458ddc19d3925dee Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 17 Aug 2022 16:16:07 +0200 Subject: [PATCH 186/239] chore: remove duplicate adopter Signed-off-by: blam --- ADOPTERS.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 278422693d..146aed789f 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -27,8 +27,7 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [Acast.com](https://acast.com) | [Olle Lundberg](https://github.com/lndbrg) | Developer portal with tech docs, service catalog and a bunch of other internal tooling | | [Lunar](https://lunar.app) | [Jacob Valdemar](https://github.com/JacobValdemar) | Internal developer portal for service overview and insights, API documentation, technical guides, onboarding guides and RFC's. | | [Trendyol](https://trendyol.com) | [Gamze Senturk](https://github.com/gmzsenturk), [Mert Can Bilgic](https://github.com/mertcb) | The Developer Portal has been called `Pandora`. Provides an overview of Trendyol tech ecosystem. TechDocs, Catalog, Custom Plugins and Theme. | -| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | -| [TELUS](https://telus.com) | [Seb Barre](https://github.com/sbarre) | The Go-to place to find answers about development and delivery at TELUS. | +| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | | | [Brex](https://www.brex.com/) | [Vamsi Chitters](https://github.com/vamsikc) | A centralized UI to understand how a service fits in the whole Brex architecture and manage a team’s engineering dependencies. | | [Oriflame](https://www.oriflame.com/) | [Oriflame](https://github.com/oriflame) | Internal developer portal for services, single page apps and packages overview, API documentation, technical guides, tech-radar and more. | | [Booz Allen Hamilton](https://www.boozallen.com/) | [Jason Miller](https://github.com/JasonMiller-BAH) | Developer portal for a full-stack software development ecosystem that accelerates consistent and repeatable Modern Software Development practices for internal innovation and investments. | @@ -201,7 +200,7 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [Intility](https://intility.no/en/) | [@daniwk](https://github.com/daniwk) | We are creating a developer portal powered by Backstage, with software catalog, documentation, templates and integrations to our infrastructure and internal tools. | | [ImmobiliareLabs](https://labs.immobiliare.it/) | [@JellyBellyDev](https://github.com/JellyBellyDev) | Centralized portal with our internal services, infrastructures, relationships between systems, technical documentation, templates, monitoring and custom integrations with our own DX tools. | | [Skillz](https://skillz.com/) | [Peiman Jafari](https://github.com/peimanja) | Internal developers portal for technical documentations, components ownership and relationship, software templates and integrations with internal tools | -| [Telus](https://www.telus.com/en/) | [Leo Li](mailto:leo.li@telus.com), [Laurent Robichaud](mailto:laurent.robichaud@telus.com) | Simplifying the developer experience through centralized team member portals. Our current focus includes the adoption of Tech Docs, Software Catalog, Software Templates, the plethora of plugins, and contributing features back to Backstage. 🤖 | +| [Telus](https://www.telus.com/en/) | [Leo Li](mailto:leo.li@telus.com), [Laurent Robichaud](mailto:laurent.robichaud@telus.com), [Seb Barre](https://github.com/sbarre) | Simplifying the developer experience through centralized team member portals. Our current focus includes the adoption of Tech Docs, Software Catalog, Software Templates, the plethora of plugins, and contributing features back to Backstage. 🤖 | | [Fidelity Investments](https://fidelity.com) | [Ankita Upadhyay](mailto:ankita.upadhyay@fmr.com) | Getting started with the adoption for Monorepo projects | | [Verisk](https://verisk.com) | [Callen Barton](mailto:cbarton@verisk.com) | Developer portal to quickly create and deploy microservices. | | [iodigital](https://iodigital.com) | [Jan-Willem Mulder](mailto:jan-willem.mulder@iodigital.com) | Internal developer portal for discovery of applications, projects and teams. Using several plugins like the Software Catalog and Tech Insights for promoting best practices and supporting our SDLC toolchain | From 4a2acd29d3310711190da6fd32dd51bf0d50468e Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 17 Aug 2022 16:20:14 +0200 Subject: [PATCH 187/239] chore: make pretty Signed-off-by: blam --- ADOPTERS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 146aed789f..3a53f7d990 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -27,7 +27,7 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [Acast.com](https://acast.com) | [Olle Lundberg](https://github.com/lndbrg) | Developer portal with tech docs, service catalog and a bunch of other internal tooling | | [Lunar](https://lunar.app) | [Jacob Valdemar](https://github.com/JacobValdemar) | Internal developer portal for service overview and insights, API documentation, technical guides, onboarding guides and RFC's. | | [Trendyol](https://trendyol.com) | [Gamze Senturk](https://github.com/gmzsenturk), [Mert Can Bilgic](https://github.com/mertcb) | The Developer Portal has been called `Pandora`. Provides an overview of Trendyol tech ecosystem. TechDocs, Catalog, Custom Plugins and Theme. | -| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | | +| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. | | [Brex](https://www.brex.com/) | [Vamsi Chitters](https://github.com/vamsikc) | A centralized UI to understand how a service fits in the whole Brex architecture and manage a team’s engineering dependencies. | | [Oriflame](https://www.oriflame.com/) | [Oriflame](https://github.com/oriflame) | Internal developer portal for services, single page apps and packages overview, API documentation, technical guides, tech-radar and more. | | [Booz Allen Hamilton](https://www.boozallen.com/) | [Jason Miller](https://github.com/JasonMiller-BAH) | Developer portal for a full-stack software development ecosystem that accelerates consistent and repeatable Modern Software Development practices for internal innovation and investments. | @@ -200,10 +200,10 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [Intility](https://intility.no/en/) | [@daniwk](https://github.com/daniwk) | We are creating a developer portal powered by Backstage, with software catalog, documentation, templates and integrations to our infrastructure and internal tools. | | [ImmobiliareLabs](https://labs.immobiliare.it/) | [@JellyBellyDev](https://github.com/JellyBellyDev) | Centralized portal with our internal services, infrastructures, relationships between systems, technical documentation, templates, monitoring and custom integrations with our own DX tools. | | [Skillz](https://skillz.com/) | [Peiman Jafari](https://github.com/peimanja) | Internal developers portal for technical documentations, components ownership and relationship, software templates and integrations with internal tools | -| [Telus](https://www.telus.com/en/) | [Leo Li](mailto:leo.li@telus.com), [Laurent Robichaud](mailto:laurent.robichaud@telus.com), [Seb Barre](https://github.com/sbarre) | Simplifying the developer experience through centralized team member portals. Our current focus includes the adoption of Tech Docs, Software Catalog, Software Templates, the plethora of plugins, and contributing features back to Backstage. 🤖 | +| [Telus](https://www.telus.com/en/) | [Leo Li](mailto:leo.li@telus.com), [Laurent Robichaud](mailto:laurent.robichaud@telus.com), [Seb Barre](https://github.com/sbarre) | Simplifying the developer experience through centralized team member portals. Our current focus includes the adoption of Tech Docs, Software Catalog, Software Templates, the plethora of plugins, and contributing features back to Backstage. 🤖 | | [Fidelity Investments](https://fidelity.com) | [Ankita Upadhyay](mailto:ankita.upadhyay@fmr.com) | Getting started with the adoption for Monorepo projects | | [Verisk](https://verisk.com) | [Callen Barton](mailto:cbarton@verisk.com) | Developer portal to quickly create and deploy microservices. | | [iodigital](https://iodigital.com) | [Jan-Willem Mulder](mailto:jan-willem.mulder@iodigital.com) | Internal developer portal for discovery of applications, projects and teams. Using several plugins like the Software Catalog and Tech Insights for promoting best practices and supporting our SDLC toolchain | | [Fanatics](https://www.fanaticsinc.com/) | [Rory Scott](mailto:rscott@fanatics.com) | Internal Portal consolidating documentation, making it easier to manage applications, internal developer community platform, and self-service cloud infrastructure + pipelines. | | [Appfolio](https://appfolio.com) | [Andy Vaughn](mailto:andy.vaughn@appfolio.com) | Internal software catalog, tech radar, documentation portal to disambiguate software and domain ownership, foster exploration of available developer platform services and tools, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. | -| [isaac](https://isaac.com.br/) | [Leonardo Borges](mailto:leonardo.borges@isaac.com.br), [Ordilei Souza](mailto:ordilei.souza@isaac.com.br) | We're using Backstage as our Internal Developer Portal and main microservices catalog for mapping ownership, health and metrics for each one. +| [isaac](https://isaac.com.br/) | [Leonardo Borges](mailto:leonardo.borges@isaac.com.br), [Ordilei Souza](mailto:ordilei.souza@isaac.com.br) | We're using Backstage as our Internal Developer Portal and main microservices catalog for mapping ownership, health and metrics for each one. | From f252226b4302f5b9aa55764a392149c96a4573a6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:40:43 +0000 Subject: [PATCH 188/239] fix(deps): update dependency jose to v4.9.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6f8286da14..0546713a89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16784,9 +16784,9 @@ jose@^4.1.4: integrity sha512-GFcVFQwYQKbQTUOo2JlpFGXTkgBw26uzDsRMD2q1WgSKNSnpKS9Ug7bdQ8dS+p4sZHNH6iRPu6WK2jLIjspaMA== jose@^4.6.0: - version "4.8.3" - resolved "https://registry.npmjs.org/jose/-/jose-4.8.3.tgz#5a754fb4aa5f2806608d083f438e6916b11087da" - integrity sha512-7rySkpW78d8LBp4YU70Wb7+OTgE3OwAALNVZxhoIhp4Kscp+p/fBkdpxGAMKxvCAMV4QfXBU9m6l9nX/vGwd2g== + version "4.9.0" + resolved "https://registry.npmjs.org/jose/-/jose-4.9.0.tgz#98ecaf81b13361d1931c0126e3f765549c782f92" + integrity sha512-RgaqEOZLkVO+ViN3KkN44XJt9g7+wMveUv59sVLaTxONcUPc8ZpfqOCeLphVBZyih2dgkvZ0Ap1CNcokvY7Uyw== joycon@^3.0.1: version "3.1.0" From 8d8bde24f6afe9c74cba5e355435aea994da7dd3 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 17 Aug 2022 12:54:02 -0500 Subject: [PATCH 189/239] Change so edit icon is not visible by default Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../UserProfileCard/UserProfileCard.test.tsx | 8 ++--- .../User/UserProfileCard/UserProfileCard.tsx | 30 +++++++++---------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx index acbd13703b..f339a5828c 100644 --- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx +++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.test.tsx @@ -75,7 +75,7 @@ describe('UserSummary Test', () => { }); describe('Edit Button', () => { - it('Should default to disabled', async () => { + it('Should not be present by default', async () => { const userEntity: UserEntity = { apiVersion: 'backstage.io/v1alpha1', kind: 'User', @@ -111,10 +111,10 @@ describe('Edit Button', () => { ), ); - expect(rendered.getByRole('button')).toBeDisabled(); + expect(rendered.queryByTitle('Edit Metadata')).not.toBeInTheDocument(); }); - it('Should be enabled when edit URL annotation is present', async () => { + it('Should be visible when edit URL annotation is present', async () => { const annotations: Record = { 'backstage.io/edit-url': 'https://example.com/user.yaml', }; @@ -153,6 +153,6 @@ describe('Edit Button', () => { }, ), ); - expect(rendered.getByRole('button')).toBeEnabled(); + expect(rendered.getByRole('button')).toBeInTheDocument(); }); }); diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx index 39565d99d5..dd75578687 100644 --- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx +++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx @@ -75,27 +75,25 @@ export const UserProfileCard = (props: { variant?: InfoCardVariants }) => { kind: 'Group', }); - const infoCardAction = entityMetadataEditUrl ? ( - - - - ) : ( - - - - ); - return ( } subheader={description} variant={props.variant} - action={infoCardAction} + action={ + <> + {entityMetadataEditUrl && ( + + + + )} + + } > From e4049a29b19e444cfeac6f9c1cd89ef04bfabfbb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 18:27:56 +0000 Subject: [PATCH 190/239] chore(deps): update dependency @types/marked to v4.0.4 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0546713a89..d7ddec4a0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7144,9 +7144,9 @@ integrity sha512-Lx+EZoJxUKw4dp8uei9XiUVNlgkYmax5+ovqt6Xf3LzJOnWhlfJw/jLBmqfGVwOP/pDr4HT8bI1WtxK0IChMLw== "@types/marked@^4.0.0": - version "4.0.3" - resolved "https://registry.npmjs.org/@types/marked/-/marked-4.0.3.tgz#2098f4a77adaba9ce881c9e0b6baf29116e5acc4" - integrity sha512-HnMWQkLJEf/PnxZIfbm0yGJRRZYYMhb++O9M36UCTA9z53uPvVoSlAwJr3XOpDEryb7Hwl1qAx/MV6YIW1RXxg== + version "4.0.4" + resolved "https://registry.npmjs.org/@types/marked/-/marked-4.0.4.tgz#70ca970a59b7b29be47198161dee695dc515dbb2" + integrity sha512-5Yns/jBU+kxoWtTYsSqO0uWw5DGEVuIW10TdnChjzfbOsb4kjku95WB7oJr+ZbWh7dkrNDObFUfbX4KMlBeCGw== "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.10" From f8287e5340b1affeda54975ff44ca60cabdc990a Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 18 Jul 2022 08:10:16 -0500 Subject: [PATCH 191/239] Added UserSettingsAvailableIconsTable and related documentation Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../add-icons-links-example.png | Bin 0 -> 6342 bytes docs/getting-started/app-custom-theme.md | 51 ++++++++++++ .../core-app-api/src/app/AppContext.test.tsx | 1 + packages/core-app-api/src/app/AppManager.tsx | 9 +++ packages/core-app-api/src/app/types.ts | 5 ++ .../src/routing/RoutingProvider.test.tsx | 1 + packages/core-plugin-api/api-report.md | 7 ++ .../UserSettingsAvailableIconsTable.tsx | 73 ++++++++++++++++++ .../General/UserSettingsGeneral.tsx | 4 + 9 files changed, 151 insertions(+) create mode 100644 docs/assets/getting-started/add-icons-links-example.png create mode 100644 plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx diff --git a/docs/assets/getting-started/add-icons-links-example.png b/docs/assets/getting-started/add-icons-links-example.png new file mode 100644 index 0000000000000000000000000000000000000000..dfff84b79cf18ae32d48dc8fccc8a7f432963d24 GIT binary patch literal 6342 zcmeG=c{o)6*F%yme6z(j(?r>s5HXg<7E`v+G?p-S*=L5ah8AmCvQ>7nYh+8d6v-Ac zBD)s5ELo;VdavB+`+eT`|KIyO@AJ;{+&lN&&)LuUoX@!@(okRfFcTjW1OhpX($O@6 zKxoB*=VAtW;O;uk76^gRXgh0Y7@{;ZV1_sk2WMA%2t*{_*4p|ANL+5K@5fsR&epi=8QiVYw zg=JEG`Z}{%v`oM31LI*t202d!{K_Cb2g+UGh|3`pJGmDnGN-Lgqfcgw6-a}L~)-G z1cE054kr?cQbbuP51b=hT2WCEep&`DBO?i5NaFq630PlAcf8;}6Dl7~d%P{q*^}Vx z;SSs5i?#9aCa4Gq>5fK++!EyB>**WT4s z)7cGh4)iG4T!ehc_nl}Q=?CuXWlkvrTm5C|s)rKx7(OS3c{bcb`3zwPVF#PT?8 zbGoN;QQKFT0Mk$eTh>7>TLDb<3HhWO@(%~wM81XR4+w;9zeOkHBXdzNt46kUXaq%6 z*)Q2ntI?>PvB`_@T-*8J|-4V0~IE{Fc7ug^HSxDXdenLEH37eNImo4 zBU)_+6$Nb8ucYW1I$yhX@7}#5iwWU1sAu?n!R$K1Sr2lGi!bE#6%NrS`v?y$puFb_ zva>@c5(x{g8o#AOXk2Lc>B)V(-CPf)HwGri?wCG~xkv&-q04*HQhMx9(6$g{D(yqz zH}CGrGheUo7b|t@jmmhZ8&|Fn?vS+yw1_0?fj1a#4{}0X;n= z)q|*Z2(qu2PGj@(^UqUOCRZ$LuasGm8v}?$mHzO-w!=qHBL(7h@;{+R*^Vi|v}2*( zov%N8&A%_p9Pr{)-;Y`7aedf|inzz~t$f}4r(Xt1S~d(VxTnCamZ7-8xe&9Q&_xXc^5B{(%ezZ82?naBLi%ZQQ0U$BqHLvLz z9?#Wg^IPi>9?x2%jCypr)r<>ydwWkR?#vftCTDAeM?H7(rDkvF7dpgGy3r!z0)$$g zcW)SdoN1*4%GlUA)rJr0{(Q^fY++(zqQcA1Un+ZjVn*wUWn;K5Nq0kDMcg9}*E4j^ zg?;v2$&&ikIP`aF;#C}(+rZ|PmtV^8{lvJn(Qjb?^2WgoKPe^Ra^mLVdq+AKC#N`b zkH*VrlEr-D{BUJ~^7=o z*3>Uj<3^(ts(&0!YTEU$-5_5~KOw+>r0yqWR7IwqxI!sSd@AC^#lwoGVb_Q2aVDLhYh9bhkHhE^oVZFSY_%kn7Rjy_ew>@8=)S?o!z2QZ4 z?(HnTTrySO22F78&yS=$d9X zx_o(>l*+a(I|l$)W_mN>XU9Bm-Z?6*&cqbcw>(mPG2b9l%4M)rI(#(-)GL{`ZCATm z879$6i0Nd8H^A6bzh?z>Al>$T7A1V4%bTDh`+i1;J9r(_J~lwFf5#H*!}!zRl>B&O0~K)`^wS2nCgot@*+t{y zgZX8;(fVdrpLt^Q$IrF<@bC5=YMM88^?o328`iM9y=Y`%A@TY3-GmgY>%+slJL|pC zs=->}w*}%OWDTY(dsXq2`Exsdkdzy2`^6B${GH_3S~sI8QD~4c0OhRwGF;il53O4$ zF0uPERNg}x88Is=ER6fu60QVKFR;mYnPcyok?cZxsRZUnpdb=cz9VEo9QV#KD3I&Q z(TYx+NG4saNA#lm3WgTm#!7873$7bG{M?LJEw(zY%M;ty{jot1Jks-!C*ySj*HgA+ zj%BS&Y+xM+1_q4K=;Un9)XT`s_z~n^LNJR`QK52iO}9k%Bter z)Z7Oj0brcGa?RcS@?{7d6l%_*3z7Sv4$w-RaPxKlo2nK&`UctP9mhTx$Hb0SA6Xrf z-}kB-aGufSyD4mPj>LU8_RgtoR zqS-oO*6TBx^tj$-`tIRy*Jxu_(Dly?0H&SyrESyLb5{8D34PW%Wsl8k5I?Hgv^1hc zN8^OPA*8 zxhl_X{w$bH=_F5;a|Ab`gziYh9~YkO81sz$hA5iex&yj@m~qPfs7^T14DQhUm{)-O zbL2n*$#v1z_`P@g>?;nNwUw!QzoayFJ=TN#%!2t1VSHEpz2Um7y!-(_Z354Uir-cG zL1-^{tQ8(^`9Sf)b#K$)Vedjqv5X;s{@se<2TkNbuP@XOL8Z`!jZ&upa`&aa>=TE@ z5nE{C!E3y!(4+VgK5n$oY^+41MUw>iwI8eZ-Mr3gIoQo%La_47 ze0JxkXERY~#3!1koohC+Q!tvS(4vM2pRS#<8x3x3Y@1J)p4AHiyzv*m{uu<``eDNK zmB5YaofBIwS+8mu&zPZuMaS!(EkPf=!>{pzIVQtAb*gmkZOptDiU$Mi#u^viQEZl- zdt7UWWAV<^7`ck5G@oW!;X1BXq_^9k;N53MGk+|}>)Uk^o{9DBh6+lEED9Z9L6*!7 z--vrXb#j7v*%W?UD8N9Bq^z~Tm$2A$70%N=1bg2*Awjh8iW)Ue_*eZ82-OjYcUq5k zmhA9~-`@5wB9W3SDrA1hnkT+P+B8Qoo|eq3%oCfp{uVC`eid5_#_3@?y3)8(Q?ppW-VT&E1i@zw%ck4bvR z@!CdO(RVfLjGWwXMk;mO6cVD1#NV1>?B;5#cGNO((64hJM+}$S9?EXj=%vmys!nB{ z&|1Ga6YhQhlWI|tE+nq4ejmojwyJ)I4n_@Nu5`)J4ssm z8vtXU#N^})rlt=#d3Y|SNL?L^i5qOIvW%^sh;tu52~#Pz1ipyfjjXKT4mWh`Y=^?Y zs>5)UCf&%$#N^~xUkfH?=EpaqpdJI2Hd2pNM2g_!`ejjlANj%ULT0=_!4+f>lqa6* zo_e`AO7ZljjlTIRU8IcvA5p_ zI&Gd#3u?JXNFXuur}+m0XZS$oZ?Qn@9X_u>ZG&)oZP0C*_ten^D>FM9 zq1zS;qQ@}<=u(Nb^k5So^(TAo`U0hhOW< WIX4@k#%lK_*(fc2O_I9xjsF5S|KEB5 literal 0 HcmV?d00001 diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 9ca82d01a1..fc39412d61 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -338,6 +338,57 @@ const app = createApp({ [...] ``` +## Adding Icons + +You can add more icons, if the [default icons](https://github.com/backstage/backstage/blob/8d83f5cb4fa0544b0f9160ac22bd5f0f1fe285c6/packages/app-defaults/src/defaults/icons.tsx#L38) do not fit your needs, so that they can be used in other places like for Links in your entities. For this example we'll be using icons from[Material UI](https://v4.mui.com/components/material-icons/) and specifically the `AlarmIcon`. Here's how to do that: + +1. First you will want to open your `App.tsx` in `/packages/app/src` +2. Then you want to import your icon, add this to the rest of your imports: `import AlarmIcon from '@material-ui/icons/Alarm';` +3. Next you want to add the icon like this to your `createApp`: + + ```diff + const app = createApp({ + apis: ..., + plugins: ..., + + icons: { + + alert: AlarmIcon, + + }, + themes: ..., + components: ..., + }); + ``` + +4. Now we can reference `alert` for our icon in our entity links like this: + + ```yaml + apiVersion: backstage.io/v1alpha1 + kind: Component + metadata: + name: artist-lookup + description: Artist Lookup + links: + - url: https://example.com/alert + title: Alerts + icon: alert + ``` + + And this is the result: + + ![Example Link with Alert icon](../assets/getting-started/add-icons-links-example.png) + + Another way you can use these icons is from the `AppContext` like this: + + ```ts + import { useApp } from '@backstage/core-plugin-api'; + + const app = useApp(); + const alertIcon = app.getSystemIcon('alert'); + ``` + + You might want to use this method if you have an icon you want to use in several locations. + +Note: If the icon is not available as one of the default icons or one you've added then it will fall back to Material UI's `LanguageIcon` + ## Custom Homepage In addition to a custom theme, a custom logo, you can also customize the diff --git a/packages/core-app-api/src/app/AppContext.test.tsx b/packages/core-app-api/src/app/AppContext.test.tsx index bc67ee3a9e..a27b7c6f35 100644 --- a/packages/core-app-api/src/app/AppContext.test.tsx +++ b/packages/core-app-api/src/app/AppContext.test.tsx @@ -36,6 +36,7 @@ describe('v1 consumer', () => { getPlugins: jest.fn(), getComponents: jest.fn(), getSystemIcon: jest.fn(), + getSystemIcons: jest.fn(), }; const renderedHook = renderHook(() => useMockAppV1(), { diff --git a/packages/core-app-api/src/app/AppManager.tsx b/packages/core-app-api/src/app/AppManager.tsx index 72c69f7da4..41c57afb98 100644 --- a/packages/core-app-api/src/app/AppManager.tsx +++ b/packages/core-app-api/src/app/AppManager.tsx @@ -71,6 +71,7 @@ import { AppComponents, AppConfigLoader, AppContext, + AppIcons, AppOptions, BackstageApp, SignInPageProps, @@ -153,6 +154,10 @@ class AppContextImpl implements AppContext { return this.app.getSystemIcon(key); } + getSystemIcons(): AppIcons & { [key in string]: IconComponent } { + return this.app.getSystemIcons(); + } + getComponents(): AppComponents { return this.app.getComponents(); } @@ -194,6 +199,10 @@ export class AppManager implements BackstageApp { return this.icons[key]; } + getSystemIcons(): AppIcons & { [key in string]: IconComponent } { + return this.icons; + } + getComponents(): AppComponents { return this.components; } diff --git a/packages/core-app-api/src/app/types.ts b/packages/core-app-api/src/app/types.ts index 979fb0496e..b196e2cf90 100644 --- a/packages/core-app-api/src/app/types.ts +++ b/packages/core-app-api/src/app/types.ts @@ -328,6 +328,11 @@ export type AppContext = { */ getSystemIcon(key: string): IconComponent | undefined; + /** + * Get a list of common and custom icons for this app. + */ + getSystemIcons(): AppIcons & { [key in string]: IconComponent }; + /** * Get the components registered for various purposes in the app. */ diff --git a/packages/core-app-api/src/routing/RoutingProvider.test.tsx b/packages/core-app-api/src/routing/RoutingProvider.test.tsx index dec92072fc..c559c0fff0 100644 --- a/packages/core-app-api/src/routing/RoutingProvider.test.tsx +++ b/packages/core-app-api/src/routing/RoutingProvider.test.tsx @@ -124,6 +124,7 @@ const Extension5 = plugin.provide( const mockContext = { getComponents: () => ({ Progress: () => null } as any), getSystemIcon: jest.fn(), + getSystemIcons: jest.fn(), getPlugins: jest.fn(), }; diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md index 49e0be3800..e0686596aa 100644 --- a/packages/core-plugin-api/api-report.md +++ b/packages/core-plugin-api/api-report.md @@ -149,6 +149,9 @@ export type AppComponents = { export type AppContext = { getPlugins(): BackstagePlugin_2[]; getSystemIcon(key: string): IconComponent_2 | undefined; + getSystemIcons(): AppIcons & { + [key in string]: IconComponent_2; + }; getComponents(): AppComponents; }; @@ -780,4 +783,8 @@ export function withApis(apis: TypesToApiRefs):

( (props: React_2.PropsWithChildren>): JSX.Element; displayName: string; }; + +// Warnings were encountered during analysis: +// +// /backstage/dist-types/packages/core-app-api/src/app/types.d.ts:277:5 - (ae-forgotten-export) The symbol "AppIcons" needs to be exported by the entry point index.d.ts ``` diff --git a/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx b/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx new file mode 100644 index 0000000000..d0e6034c66 --- /dev/null +++ b/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx @@ -0,0 +1,73 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { IconComponent, useApp } from '@backstage/core-plugin-api'; +import { Table, TableColumn } from '@backstage/core-components'; + +import { Box } from '@material-ui/core'; +import LanguageIcon from '@material-ui/icons/Language'; +import React from 'react'; + +type SystemIcon = { + key: string; + icon: IconComponent; +}; + +const columns: TableColumn[] = [ + { + title: 'Icon', + field: 'icon', + width: 'auto', + render: (row: Partial) => ( + + {row.icon ? : } + + ), + }, + { + title: 'Key', + field: 'key', + width: 'auto', + defaultSort: 'asc', + }, +]; + +export const UserSettingsAvailableIconsTable = () => { + const app = useApp(); + const systemIcons = app.getSystemIcons(); + const systemIconList: SystemIcon[] = []; + for (const icon in systemIcons) { + if (Object.prototype.hasOwnProperty.call(systemIcons, icon)) { + const sysIcon = { + key: icon, + icon: systemIcons[icon], + }; + systemIconList.push(sysIcon); + } + } + + return ( + + ); +}; diff --git a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx index db7fdd7be6..e3a9567164 100644 --- a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx @@ -18,6 +18,7 @@ import React from 'react'; import { UserSettingsProfileCard } from './UserSettingsProfileCard'; import { UserSettingsAppearanceCard } from './UserSettingsAppearanceCard'; import { UserSettingsIdentityCard } from './UserSettingsIdentityCard'; +import { UserSettingsAvailableIconsTable } from './UserSettingsAvailableIconsTable'; export const UserSettingsGeneral = () => { return ( @@ -31,6 +32,9 @@ export const UserSettingsGeneral = () => { + + + ); }; From 744fea158bed9d1fd675a93ca0edf35ebd5c8109 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 18 Jul 2022 08:19:45 -0500 Subject: [PATCH 192/239] Added changeset Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/hungry-dogs-agree.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/hungry-dogs-agree.md diff --git a/.changeset/hungry-dogs-agree.md b/.changeset/hungry-dogs-agree.md new file mode 100644 index 0000000000..a8c5b24c25 --- /dev/null +++ b/.changeset/hungry-dogs-agree.md @@ -0,0 +1,6 @@ +--- +'@backstage/core-app-api': patch +'@backstage/plugin-user-settings': patch +--- + +Added Table with List of Available Icons and Documentation on Usage From fc3e132f314421dd62e45c61d7117e5fe210b82e Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 26 Jul 2022 07:44:20 -0500 Subject: [PATCH 193/239] Fixed API Report Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- packages/core-app-api/api-report.md | 3 +++ packages/core-plugin-api/api-report.md | 29 +++++++++++++++++++---- packages/core-plugin-api/src/app/types.ts | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/core-app-api/api-report.md b/packages/core-app-api/api-report.md index beb0d11201..dde4d26364 100644 --- a/packages/core-app-api/api-report.md +++ b/packages/core-app-api/api-report.md @@ -157,6 +157,9 @@ export type AppConfigLoader = () => Promise; export type AppContext = { getPlugins(): BackstagePlugin[]; getSystemIcon(key: string): IconComponent | undefined; + getSystemIcons(): AppIcons & { + [key in string]: IconComponent; + }; getComponents(): AppComponents; }; diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md index e0686596aa..facb4235c6 100644 --- a/packages/core-plugin-api/api-report.md +++ b/packages/core-plugin-api/api-report.md @@ -155,6 +155,31 @@ export type AppContext = { getComponents(): AppComponents; }; +// @public +export type AppIcons = { + 'kind:api': IconComponent_2; + 'kind:component': IconComponent_2; + 'kind:domain': IconComponent_2; + 'kind:group': IconComponent_2; + 'kind:location': IconComponent_2; + 'kind:system': IconComponent_2; + 'kind:user': IconComponent_2; + brokenImage: IconComponent_2; + catalog: IconComponent_2; + chat: IconComponent_2; + dashboard: IconComponent_2; + docs: IconComponent_2; + email: IconComponent_2; + github: IconComponent_2; + group: IconComponent_2; + help: IconComponent_2; + scaffolder: IconComponent_2; + search: IconComponent_2; + techdocs: IconComponent_2; + user: IconComponent_2; + warning: IconComponent_2; +}; + // @public export type AppTheme = { id: string; @@ -783,8 +808,4 @@ export function withApis(apis: TypesToApiRefs):

( (props: React_2.PropsWithChildren>): JSX.Element; displayName: string; }; - -// Warnings were encountered during analysis: -// -// /backstage/dist-types/packages/core-app-api/src/app/types.d.ts:277:5 - (ae-forgotten-export) The symbol "AppIcons" needs to be exported by the entry point index.d.ts ``` diff --git a/packages/core-plugin-api/src/app/types.ts b/packages/core-plugin-api/src/app/types.ts index 2a71eda1f4..17623048e2 100644 --- a/packages/core-plugin-api/src/app/types.ts +++ b/packages/core-plugin-api/src/app/types.ts @@ -24,4 +24,5 @@ export type { ErrorBoundaryFallbackProps, AppComponents, AppContext, + AppIcons, } from '../../../core-app-api/src/app/types'; From e87663dfdcc9e673df5f81ff4bb4cb9e5290aacc Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Tue, 26 Jul 2022 08:13:01 -0500 Subject: [PATCH 194/239] Removed item and updated changeset Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/hungry-dogs-agree.md | 4 +- .../UserSettingsAvailableIconsTable.tsx | 73 ------------------- .../General/UserSettingsGeneral.tsx | 4 - 3 files changed, 2 insertions(+), 79 deletions(-) delete mode 100644 plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx diff --git a/.changeset/hungry-dogs-agree.md b/.changeset/hungry-dogs-agree.md index a8c5b24c25..07d7e41483 100644 --- a/.changeset/hungry-dogs-agree.md +++ b/.changeset/hungry-dogs-agree.md @@ -1,6 +1,6 @@ --- '@backstage/core-app-api': patch -'@backstage/plugin-user-settings': patch +'@backstage/core-plugin-api': patch --- -Added Table with List of Available Icons and Documentation on Usage +Added `getSystemIcons()` function to the `AppManager` that will pull a list of all the icons that have been registered in the App. diff --git a/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx b/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx deleted file mode 100644 index d0e6034c66..0000000000 --- a/plugins/user-settings/src/components/General/UserSettingsAvailableIconsTable.tsx +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { IconComponent, useApp } from '@backstage/core-plugin-api'; -import { Table, TableColumn } from '@backstage/core-components'; - -import { Box } from '@material-ui/core'; -import LanguageIcon from '@material-ui/icons/Language'; -import React from 'react'; - -type SystemIcon = { - key: string; - icon: IconComponent; -}; - -const columns: TableColumn[] = [ - { - title: 'Icon', - field: 'icon', - width: 'auto', - render: (row: Partial) => ( - - {row.icon ? : } - - ), - }, - { - title: 'Key', - field: 'key', - width: 'auto', - defaultSort: 'asc', - }, -]; - -export const UserSettingsAvailableIconsTable = () => { - const app = useApp(); - const systemIcons = app.getSystemIcons(); - const systemIconList: SystemIcon[] = []; - for (const icon in systemIcons) { - if (Object.prototype.hasOwnProperty.call(systemIcons, icon)) { - const sysIcon = { - key: icon, - icon: systemIcons[icon], - }; - systemIconList.push(sysIcon); - } - } - - return ( -

- ); -}; diff --git a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx index e3a9567164..db7fdd7be6 100644 --- a/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx +++ b/plugins/user-settings/src/components/General/UserSettingsGeneral.tsx @@ -18,7 +18,6 @@ import React from 'react'; import { UserSettingsProfileCard } from './UserSettingsProfileCard'; import { UserSettingsAppearanceCard } from './UserSettingsAppearanceCard'; import { UserSettingsIdentityCard } from './UserSettingsIdentityCard'; -import { UserSettingsAvailableIconsTable } from './UserSettingsAvailableIconsTable'; export const UserSettingsGeneral = () => { return ( @@ -32,9 +31,6 @@ export const UserSettingsGeneral = () => { - - - ); }; From f0447ee755e1e1c0571c4dd22fd6f31c3db4b031 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 10 Aug 2022 09:07:23 -0500 Subject: [PATCH 195/239] Updates based on initial feedback Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/hungry-dogs-agree.md | 2 +- packages/core-app-api/api-report.md | 4 +-- packages/core-app-api/src/app/AppManager.tsx | 5 ++-- packages/core-app-api/src/app/types.ts | 2 +- packages/core-plugin-api/api-report.md | 29 +------------------- packages/core-plugin-api/src/app/types.ts | 1 - 6 files changed, 6 insertions(+), 37 deletions(-) diff --git a/.changeset/hungry-dogs-agree.md b/.changeset/hungry-dogs-agree.md index 07d7e41483..b111b6e463 100644 --- a/.changeset/hungry-dogs-agree.md +++ b/.changeset/hungry-dogs-agree.md @@ -3,4 +3,4 @@ '@backstage/core-plugin-api': patch --- -Added `getSystemIcons()` function to the `AppManager` that will pull a list of all the icons that have been registered in the App. +Added `getSystemIcons()` function to the `AppContext` available through `useApp` that will pull a list of all the icons that have been registered in the App. diff --git a/packages/core-app-api/api-report.md b/packages/core-app-api/api-report.md index dde4d26364..3cc1f4a8a8 100644 --- a/packages/core-app-api/api-report.md +++ b/packages/core-app-api/api-report.md @@ -157,9 +157,7 @@ export type AppConfigLoader = () => Promise; export type AppContext = { getPlugins(): BackstagePlugin[]; getSystemIcon(key: string): IconComponent | undefined; - getSystemIcons(): AppIcons & { - [key in string]: IconComponent; - }; + getSystemIcons(): Record; getComponents(): AppComponents; }; diff --git a/packages/core-app-api/src/app/AppManager.tsx b/packages/core-app-api/src/app/AppManager.tsx index 41c57afb98..f36d37f796 100644 --- a/packages/core-app-api/src/app/AppManager.tsx +++ b/packages/core-app-api/src/app/AppManager.tsx @@ -71,7 +71,6 @@ import { AppComponents, AppConfigLoader, AppContext, - AppIcons, AppOptions, BackstageApp, SignInPageProps, @@ -154,7 +153,7 @@ class AppContextImpl implements AppContext { return this.app.getSystemIcon(key); } - getSystemIcons(): AppIcons & { [key in string]: IconComponent } { + getSystemIcons(): Record { return this.app.getSystemIcons(); } @@ -199,7 +198,7 @@ export class AppManager implements BackstageApp { return this.icons[key]; } - getSystemIcons(): AppIcons & { [key in string]: IconComponent } { + getSystemIcons(): Record { return this.icons; } diff --git a/packages/core-app-api/src/app/types.ts b/packages/core-app-api/src/app/types.ts index b196e2cf90..39bf9c0554 100644 --- a/packages/core-app-api/src/app/types.ts +++ b/packages/core-app-api/src/app/types.ts @@ -331,7 +331,7 @@ export type AppContext = { /** * Get a list of common and custom icons for this app. */ - getSystemIcons(): AppIcons & { [key in string]: IconComponent }; + getSystemIcons(): Record; /** * Get the components registered for various purposes in the app. diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md index facb4235c6..87fc344a02 100644 --- a/packages/core-plugin-api/api-report.md +++ b/packages/core-plugin-api/api-report.md @@ -149,37 +149,10 @@ export type AppComponents = { export type AppContext = { getPlugins(): BackstagePlugin_2[]; getSystemIcon(key: string): IconComponent_2 | undefined; - getSystemIcons(): AppIcons & { - [key in string]: IconComponent_2; - }; + getSystemIcons(): Record; getComponents(): AppComponents; }; -// @public -export type AppIcons = { - 'kind:api': IconComponent_2; - 'kind:component': IconComponent_2; - 'kind:domain': IconComponent_2; - 'kind:group': IconComponent_2; - 'kind:location': IconComponent_2; - 'kind:system': IconComponent_2; - 'kind:user': IconComponent_2; - brokenImage: IconComponent_2; - catalog: IconComponent_2; - chat: IconComponent_2; - dashboard: IconComponent_2; - docs: IconComponent_2; - email: IconComponent_2; - github: IconComponent_2; - group: IconComponent_2; - help: IconComponent_2; - scaffolder: IconComponent_2; - search: IconComponent_2; - techdocs: IconComponent_2; - user: IconComponent_2; - warning: IconComponent_2; -}; - // @public export type AppTheme = { id: string; diff --git a/packages/core-plugin-api/src/app/types.ts b/packages/core-plugin-api/src/app/types.ts index 17623048e2..2a71eda1f4 100644 --- a/packages/core-plugin-api/src/app/types.ts +++ b/packages/core-plugin-api/src/app/types.ts @@ -24,5 +24,4 @@ export type { ErrorBoundaryFallbackProps, AppComponents, AppContext, - AppIcons, } from '../../../core-app-api/src/app/types'; From 0094d8ae943cefde2f56266192ee0a5bf0467d16 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 17 Aug 2022 14:08:09 -0500 Subject: [PATCH 196/239] Refactor icon section based on recent changes Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/getting-started/app-custom-theme.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index fc39412d61..25131f1c91 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -273,18 +273,22 @@ const LogoFull = () => { }; ``` -## Custom Icons +## Icons + +So far you've seen how to create your own theme and add your own logo, in the following sections you'll be shown how to override the existing icons and how to add more icons + +### Custom Icons You can also customize the Project's _default_ icons. You can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx). -### Requirements +#### Requirements - Files in `.svg` format - React components created for the icons -### Create React Component +#### Create React Component In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory and `CustomIcons.tsx` file. @@ -309,7 +313,7 @@ export const ExampleIcon = (props: SvgIconProps) => ( ); ``` -### Using the custom icon +#### Using the custom icon Supply your custom icon in `packages/app/src/App.tsx` @@ -338,9 +342,9 @@ const app = createApp({ [...] ``` -## Adding Icons +### Adding Icons -You can add more icons, if the [default icons](https://github.com/backstage/backstage/blob/8d83f5cb4fa0544b0f9160ac22bd5f0f1fe285c6/packages/app-defaults/src/defaults/icons.tsx#L38) do not fit your needs, so that they can be used in other places like for Links in your entities. For this example we'll be using icons from[Material UI](https://v4.mui.com/components/material-icons/) and specifically the `AlarmIcon`. Here's how to do that: +You can add more icons, if the [default icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx) do not fit your needs, so that they can be used in other places like for Links in your entities. For this example we'll be using icons from[Material UI](https://v4.mui.com/components/material-icons/) and specifically the `AlarmIcon`. Here's how to do that: 1. First you will want to open your `App.tsx` in `/packages/app/src` 2. Then you want to import your icon, add this to the rest of your imports: `import AlarmIcon from '@material-ui/icons/Alarm';` From 90d2e9ef70cbeaf2db601120e78cd7ec0d1740b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 19:10:16 +0000 Subject: [PATCH 197/239] fix(deps): update dependency aws-sdk to v2.1197.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d7ddec4a0d..b40372873a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8982,9 +8982,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1196.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1196.0.tgz#28951e1c742373397514f295f742eb3a9497c02d" - integrity sha512-iOGhCY5IqGfHCJ70p0H/uxkXDh/96KanAMfhnGGbIKbpVliuEV7SYxTfsWORaaUHey+N8FE6OMKfzo7F4X+wQg== + version "2.1197.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1197.0.tgz#d679f52353f03e598ffed5609ed65593cef1f83f" + integrity sha512-BUxYU+gzxCylEM37NeGcS5kWotXVmKrOBG9+/+U+tnOTW7/3yNBrBfhPrs5IgMhm7H38CLWgOqwJaGDlYzwH/Q== dependencies: buffer "4.9.2" events "1.1.1" From 3b25c3a1406a60b8b082bcd33d0743ee6b7d5856 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 19:11:31 +0000 Subject: [PATCH 198/239] fix(deps): update dependency swagger-ui-react to v4.14.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d7ddec4a0d..8ead17f4b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24645,9 +24645,9 @@ swagger-client@^3.18.5: url "~0.11.0" swagger-ui-react@^4.11.1: - version "4.13.2" - resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.13.2.tgz#dee4f42dae9ca8b9ac85e64a46fc12c694100a80" - integrity sha512-U3IarPb0Vyi5/bHb45Q8uWf/7fowPp3B+LeYF0VKB4xhgKNiaPypPHoSJW9oCse/lkFGd4ZKyqBOpYXCsWMcgA== + version "4.14.0" + resolved "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-4.14.0.tgz#c1a26955d8481ad024eada6e1d59c44d0b061ab1" + integrity sha512-Yz3E5a5ujj2jqI4V+OELUjgs04uGNkJxbFLTe9KyrSs37yeMsyoDwLRGWuAAP6BRLhonJzLeZRTbnD2cK+iVew== dependencies: "@babel/runtime-corejs3" "^7.18.9" "@braintree/sanitize-url" "=6.0.0" From 6698472eac02e6b434ef39c82339a6627241cd59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 22:44:40 +0000 Subject: [PATCH 199/239] fix(deps): update dependency @octokit/webhooks to v10.1.4 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 249db80316..d85c17cd90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5713,19 +5713,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.4.tgz#b553da7479edfb04218160c85f16dbbc68251533" - integrity sha512-9E0HNgHqc5v22+9IzCSEZ9iXnBJ/n+GM9gZye0kp7XmzcOfrnAKZzd4km269n6/vVOkmXwT11DbbQFukWOvbdw== +"@octokit/webhooks-types@6.3.5": + version "6.3.5" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.5.tgz#e0812abc74d27fd7443f28c0cfc527214bb5ee66" + integrity sha512-2QZkDXC3I3TO0mpI/VaqP+aeEvYm//Slkcsve24ezPCNA22HuekBaoEU92HF3WvciFEzWWv0e/E2SMVZcCaBZw== "@octokit/webhooks@^10.0.0": - version "10.1.3" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.3.tgz#415bb4f826167b15da4dede81c14cb7a8978ac9a" - integrity sha512-c5uQW0HJbI5mcQpUFcM7LVs1gbdEiHD6OLXZcwxLJeNUmI8Cy9uzfCib6HguARKgnz3tSavYX/teHq7brm05iQ== + version "10.1.4" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.4.tgz#c16803312d6102425f464529ff52bccea03ea034" + integrity sha512-MVu56s7x9Me4gT/YpR1f2pzWDJNciTMdM3subCA5H8qZcvqInIdnssaxwLp1ep/JbeFhvkYWNHfPeLtwdGg3rQ== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.4" + "@octokit/webhooks-types" "6.3.5" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3": From f4144dcc98750370b2d521df6698365b80a27342 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 22:46:31 +0000 Subject: [PATCH 200/239] fix(deps): update dependency graphiql to v1.11.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 249db80316..ff2ed8cc8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14538,9 +14538,9 @@ grapheme-splitter@^1.0.4: integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== graphiql@^1.5.12, graphiql@^1.8.8: - version "1.11.4" - resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.4.tgz#c84f39dbc7379fef62bc0ff98c9af86bfbce3241" - integrity sha512-yPjEPssKp6mo91q2zjSs6WUpiGm37r396OSHnfSVn0bE4jOMBtB2sbjzwe0GVKZeY3MpfZjpK0UFGrS05wb+qw== + version "1.11.5" + resolved "https://registry.npmjs.org/graphiql/-/graphiql-1.11.5.tgz#daf0de27b704f17c9d87ce56eea0fdcd7a370269" + integrity sha512-NI92XdSVwXTsqzJc6ykaAkKVMeC8IRRp3XzkxVQwtqDsZlVKtR2ZnssXNYt05TMGbi1ehoipn9tFywVohOlHjg== dependencies: "@graphiql/react" "^0.10.0" "@graphiql/toolkit" "^0.6.1" From b9d346cce31ffcd77e14959862df0dc9e185d53e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Aug 2022 23:28:46 +0000 Subject: [PATCH 201/239] chore(deps): update dependency @types/marked to v4.0.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8b3d1b2f1d..e697cffa41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7144,9 +7144,9 @@ integrity sha512-Lx+EZoJxUKw4dp8uei9XiUVNlgkYmax5+ovqt6Xf3LzJOnWhlfJw/jLBmqfGVwOP/pDr4HT8bI1WtxK0IChMLw== "@types/marked@^4.0.0": - version "4.0.4" - resolved "https://registry.npmjs.org/@types/marked/-/marked-4.0.4.tgz#70ca970a59b7b29be47198161dee695dc515dbb2" - integrity sha512-5Yns/jBU+kxoWtTYsSqO0uWw5DGEVuIW10TdnChjzfbOsb4kjku95WB7oJr+ZbWh7dkrNDObFUfbX4KMlBeCGw== + version "4.0.5" + resolved "https://registry.npmjs.org/@types/marked/-/marked-4.0.5.tgz#3e900fa331a9b1a98f7a8a50f0f39b4bf2b6469f" + integrity sha512-jMN2moJ+lSf1VZXQo3VXeMCjoXuciVONig8+U0YNBop5aBvQw4qkolx1Nzn1i0T8L2l9IZ3jju6bS1pPwlaY1w== "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.10" From b29c44d8958b2414b1feb1cb8477fc61dadf805e Mon Sep 17 00:00:00 2001 From: John Philip Date: Wed, 17 Aug 2022 21:19:11 -0400 Subject: [PATCH 202/239] Autogenerate ids for headings in markdown content Signed-off-by: John Philip --- .changeset/lazy-snakes-film.md | 5 ++++ .../MarkdownContent/MarkdownContent.test.tsx | 30 +++++++++++++++++++ .../MarkdownContent/MarkdownContent.tsx | 19 ++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 .changeset/lazy-snakes-film.md diff --git a/.changeset/lazy-snakes-film.md b/.changeset/lazy-snakes-film.md new file mode 100644 index 0000000000..a21d197c51 --- /dev/null +++ b/.changeset/lazy-snakes-film.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': minor +--- + +Adds code to autogenerate ids for headers parsed through the MarkdownContent component. diff --git a/packages/core-components/src/components/MarkdownContent/MarkdownContent.test.tsx b/packages/core-components/src/components/MarkdownContent/MarkdownContent.test.tsx index 9c08b83c40..fa8cb35ca8 100644 --- a/packages/core-components/src/components/MarkdownContent/MarkdownContent.test.tsx +++ b/packages/core-components/src/components/MarkdownContent/MarkdownContent.test.tsx @@ -100,4 +100,34 @@ describe('', () => { 'https://example.com/blog/assets/6/header.png', ); }); + + it('render MarkdownContent component with headings given proper ids', async () => { + const rendered = await renderWithEffects( + wrapInTestApp( + , + ), + ); + + expect(rendered.getByText('Lorem ipsum').getAttribute('id')).toEqual( + 'lorem-ipsum', + ); + expect(rendered.getByText('bing bong').getAttribute('id')).toEqual( + 'bing-bong', + ); + expect( + rendered + .getByText( + 'The FitnessGram Pacer Test is a multistage aerobic capacity test', + ) + .getAttribute('id'), + ).toEqual( + 'the-fitnessgram-pacer-test-is-a-multistage-aerobic-capacity-test', + ); + }); }); diff --git a/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx b/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx index 013e81817a..e2ee460a1f 100644 --- a/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx +++ b/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx @@ -73,6 +73,19 @@ type Props = { className?: string; }; +const flatten = (text, child) => { + return typeof child === 'string' + ? text + child + : React.Children.toArray(child.props.children).reduce(flatten, text); +}; + +const headingRenderer = ({ level, children }) => { + const childrenArray = React.Children.toArray(children); + const text = childrenArray.reduce(flatten, ''); + const slug = text.toLocaleLowerCase('en-US').replace(/\W/g, '-'); + return React.createElement(`h${level}`, { id: slug }, children); +}; + const components: Options['components'] = { code: ({ inline, className, children, ...props }) => { const text = String(children).replace(/\n+$/, ''); @@ -85,6 +98,12 @@ const components: Options['components'] = { ); }, + h1: headingRenderer, + h2: headingRenderer, + h3: headingRenderer, + h4: headingRenderer, + h5: headingRenderer, + h6: headingRenderer, }; /** From e51cddd5fbba7df09203a19be7e391f0a5012012 Mon Sep 17 00:00:00 2001 From: John Philip Date: Wed, 17 Aug 2022 22:46:38 -0400 Subject: [PATCH 203/239] Changed types to be more specific Signed-off-by: John Philip --- .../src/components/MarkdownContent/MarkdownContent.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx b/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx index e2ee460a1f..d97172bf75 100644 --- a/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx +++ b/packages/core-components/src/components/MarkdownContent/MarkdownContent.tsx @@ -20,6 +20,7 @@ import gfm from 'remark-gfm'; import React from 'react'; import { BackstageTheme } from '@backstage/theme'; import { CodeSnippet } from '../CodeSnippet'; +import { HeadingProps } from 'react-markdown/lib/ast-to-react'; export type MarkdownContentClassKey = 'markdown'; @@ -73,13 +74,15 @@ type Props = { className?: string; }; -const flatten = (text, child) => { +const flatten = (text: string, child: any): string => { + if (!child) return text; + return typeof child === 'string' ? text + child : React.Children.toArray(child.props.children).reduce(flatten, text); }; -const headingRenderer = ({ level, children }) => { +const headingRenderer = ({ level, children }: HeadingProps) => { const childrenArray = React.Children.toArray(children); const text = childrenArray.reduce(flatten, ''); const slug = text.toLocaleLowerCase('en-US').replace(/\W/g, '-'); From e83de28e36fb3e4464f0f624795f5064ff1cc989 Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Thu, 18 Aug 2022 09:59:14 +0100 Subject: [PATCH 204/239] Fix typo in create-app package Signed-off-by: Tim Jacomb <21194782+timja@users.noreply.github.com> --- .changeset/happy-kiwis-look.md | 5 +++++ .../default-app/packages/backend/src/plugins/auth.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/happy-kiwis-look.md diff --git a/.changeset/happy-kiwis-look.md b/.changeset/happy-kiwis-look.md new file mode 100644 index 0000000000..c7c82954ee --- /dev/null +++ b/.changeset/happy-kiwis-look.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Fix typo diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts b/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts index 159116d7b8..77eb6aae21 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/auth.ts @@ -25,7 +25,7 @@ export default async function createPlugin( // This particular resolver makes all users share a single "guest" identity. // It should only be used for testing and trying out Backstage. // - // If you want to use a production ready resolver you can switch to the + // If you want to use a production ready resolver you can switch to // the one that is commented out below, it looks up a user entity in the // catalog using the GitHub username of the authenticated user. // That resolver requires you to have user entities populated in the catalog, From 4c82b955fcf4df90cd797af5d48a9fae6e8d4eb0 Mon Sep 17 00:00:00 2001 From: Tim Jacomb <21194782+timja@users.noreply.github.com> Date: Thu, 18 Aug 2022 11:54:02 +0100 Subject: [PATCH 205/239] Typo in README for catalog-backend-module-msgraph Signed-off-by: Tim Jacomb <21194782+timja@users.noreply.github.com> --- .changeset/witty-cats-wink.md | 5 +++++ plugins/catalog-backend-module-msgraph/README.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/witty-cats-wink.md diff --git a/.changeset/witty-cats-wink.md b/.changeset/witty-cats-wink.md new file mode 100644 index 0000000000..82f6d3098f --- /dev/null +++ b/.changeset/witty-cats-wink.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +Fix typo diff --git a/plugins/catalog-backend-module-msgraph/README.md b/plugins/catalog-backend-module-msgraph/README.md index 23166a755d..fe2e568b5a 100644 --- a/plugins/catalog-backend-module-msgraph/README.md +++ b/plugins/catalog-backend-module-msgraph/README.md @@ -80,7 +80,7 @@ catalog: # See https://docs.microsoft.com/en-us/graph/search-query-parameter search: '"description:One" AND ("displayName:Video" OR "displayName:Drive")' # Optional select for groups, this will allow you work with schemaExtensions - # in order to add extra information to your groups that can be used on you custom groupTransformers + # in order to add extra information to your groups that can be used on your custom groupTransformers # See https://docs.microsoft.com/en-us/graph/api/resources/schemaextension?view=graph-rest-1.0 select: ['id', 'displayName', 'description'] ``` From c8bb0ff8ce655f868e7bc67385087ed51b955641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 18 Aug 2022 13:30:02 +0200 Subject: [PATCH 206/239] just some :broom: api cleaning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/wild-sheep-roll.md | 8 ++ packages/core-components/api-report.md | 14 +--- .../Sidebar/SidebarOpenStateContext.tsx | 26 +++---- .../layout/Sidebar/SidebarPinStateContext.tsx | 31 ++++---- plugins/adr/api-report.md | 28 ++----- .../src/components/AdrReader/AdrReader.tsx | 7 +- .../EntityAdrContent/EntityAdrContent.tsx | 6 +- .../src/search/AdrSearchResultListItem.tsx | 14 ++-- plugins/apache-airflow/api-report.md | 4 +- .../DagTableComponent/DagTableComponent.tsx | 3 +- plugins/api-docs/api-report.md | 75 ++++++------------- .../ApiDefinitionCard/ApiTypeTitle.tsx | 6 +- .../components/ApisCards/ConsumedApisCard.tsx | 10 +-- .../src/components/ApisCards/HasApisCard.tsx | 10 +-- .../components/ApisCards/ProvidedApisCard.tsx | 10 +-- .../ConsumingComponentsCard.tsx | 10 ++- .../ProvidingComponentsCard.tsx | 7 +- plugins/api-docs/src/plugin.ts | 7 ++ 18 files changed, 118 insertions(+), 158 deletions(-) create mode 100644 .changeset/wild-sheep-roll.md diff --git a/.changeset/wild-sheep-roll.md b/.changeset/wild-sheep-roll.md new file mode 100644 index 0000000000..1551100b2a --- /dev/null +++ b/.changeset/wild-sheep-roll.md @@ -0,0 +1,8 @@ +--- +'@backstage/core-components': patch +'@backstage/plugin-adr': patch +'@backstage/plugin-apache-airflow': patch +'@backstage/plugin-api-docs': patch +--- + +Minor cleanup of the public API surface to reduce the number of warnings diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 1cdba47257..3dc4e2848e 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -987,13 +987,10 @@ export type SidebarOpenState = { }; // @public -export const SidebarOpenStateProvider: ({ - children, - value, -}: { +export function SidebarOpenStateProvider(props: { children: ReactNode; value: SidebarOpenState; -}) => JSX.Element; +}): JSX.Element; // @public (undocumented) export type SidebarOptions = { @@ -1034,13 +1031,10 @@ export type SidebarPinStateContextType = { }; // @public -export const SidebarPinStateProvider: ({ - children, - value, -}: { +export function SidebarPinStateProvider(props: { children: ReactNode; value: SidebarPinStateContextType; -}) => JSX.Element; +}): JSX.Element; // @public (undocumented) export type SidebarProps = { diff --git a/packages/core-components/src/layout/Sidebar/SidebarOpenStateContext.tsx b/packages/core-components/src/layout/Sidebar/SidebarOpenStateContext.tsx index 7cb0e5b2c3..36e87b07a2 100644 --- a/packages/core-components/src/layout/Sidebar/SidebarOpenStateContext.tsx +++ b/packages/core-components/src/layout/Sidebar/SidebarOpenStateContext.tsx @@ -74,21 +74,21 @@ const VersionedSidebarContext = createVersionedContext<{ * * @public */ -export const SidebarOpenStateProvider = ({ - children, - value, -}: { +export function SidebarOpenStateProvider(props: { children: ReactNode; value: SidebarOpenState; -}) => ( - - - {children} - - -); +}) { + const { children, value } = props; + return ( + + + {children} + + + ); +} /** * Hook to read and update the sidebar's open state, which controls whether or diff --git a/packages/core-components/src/layout/Sidebar/SidebarPinStateContext.tsx b/packages/core-components/src/layout/Sidebar/SidebarPinStateContext.tsx index e00ed259e9..9c58a32732 100644 --- a/packages/core-components/src/layout/Sidebar/SidebarPinStateContext.tsx +++ b/packages/core-components/src/layout/Sidebar/SidebarPinStateContext.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createVersionedContext, createVersionedValueMap, @@ -22,8 +23,8 @@ import React, { createContext, ReactNode, useContext } from 'react'; /** * Type of `SidebarPinStateContext` * - * @public @deprecated - * Use `SidebarPinState` instead. + * @public + * @deprecated Use `SidebarPinState` instead. */ export type SidebarPinStateContextType = { isPinned: boolean; @@ -80,21 +81,21 @@ const VersionedSidebarPinStateContext = createVersionedContext<{ * * @public */ -export const SidebarPinStateProvider = ({ - children, - value, -}: { +export function SidebarPinStateProvider(props: { children: ReactNode; value: SidebarPinStateContextType; -}) => ( - - - {children} - - -); +}) { + const { children, value } = props; + return ( + + + {children} + + + ); +} /** * Hook to read and update sidebar pin state, which controls whether or not the diff --git a/plugins/adr/api-report.md b/plugins/adr/api-report.md index 5059d51023..ecec0c0dd5 100644 --- a/plugins/adr/api-report.md +++ b/plugins/adr/api-report.md @@ -31,13 +31,7 @@ export const adrPlugin: BackstagePlugin< // @public export const AdrReader: { - ({ - adr, - decorators, - }: { - adr: string; - decorators?: AdrContentDecorator[] | undefined; - }): JSX.Element; + (props: { adr: string; decorators?: AdrContentDecorator[] }): JSX.Element; decorators: Readonly<{ createRewriteRelativeLinksDecorator(): AdrContentDecorator; createRewriteRelativeEmbedsDecorator(): AdrContentDecorator; @@ -45,23 +39,15 @@ export const AdrReader: { }; // @public -export const AdrSearchResultListItem: ({ - lineClamp, - highlight, - rank, - result, -}: { - lineClamp?: number | undefined; - highlight?: ResultHighlight | undefined; - rank?: number | undefined; +export function AdrSearchResultListItem(props: { + lineClamp?: number; + highlight?: ResultHighlight; + rank?: number; result: AdrDocument; -}) => JSX.Element; +}): JSX.Element; // @public -export const EntityAdrContent: ({ - contentDecorators, - filePathFilterFn, -}: { +export const EntityAdrContent: (props: { contentDecorators?: AdrContentDecorator[] | undefined; filePathFilterFn?: AdrFilePathFilterFn | undefined; }) => JSX.Element; diff --git a/plugins/adr/src/components/AdrReader/AdrReader.tsx b/plugins/adr/src/components/AdrReader/AdrReader.tsx index ae7dc6c271..3667d8fd8c 100644 --- a/plugins/adr/src/components/AdrReader/AdrReader.tsx +++ b/plugins/adr/src/components/AdrReader/AdrReader.tsx @@ -32,15 +32,14 @@ import { AdrContentDecorator } from './types'; /** * Component to fetch and render an ADR. + * * @public */ -export const AdrReader = ({ - adr, - decorators, -}: { +export const AdrReader = (props: { adr: string; decorators?: AdrContentDecorator[]; }) => { + const { adr, decorators } = props; const { entity } = useEntity(); const scmIntegrations = useApi(scmIntegrationsApiRef); const adrLocationUrl = getAdrLocationUrl(entity, scmIntegrations); diff --git a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx b/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx index bd8e4be3cf..37344cecca 100644 --- a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx +++ b/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx @@ -58,13 +58,11 @@ const useStyles = makeStyles((theme: Theme) => ({ * Component for browsing ADRs on an entity page. * @public */ -export const EntityAdrContent = ({ - contentDecorators, - filePathFilterFn, -}: { +export const EntityAdrContent = (props: { contentDecorators?: AdrContentDecorator[]; filePathFilterFn?: AdrFilePathFilterFn; }) => { + const { contentDecorators, filePathFilterFn } = props; const classes = useStyles(); const { entity } = useEntity(); const rootLink = useRouteRef(rootRouteRef); diff --git a/plugins/adr/src/search/AdrSearchResultListItem.tsx b/plugins/adr/src/search/AdrSearchResultListItem.tsx index e9e05a9df2..d76f2cca4e 100644 --- a/plugins/adr/src/search/AdrSearchResultListItem.tsx +++ b/plugins/adr/src/search/AdrSearchResultListItem.tsx @@ -43,20 +43,16 @@ const useStyles = makeStyles({ }); /** - * A component to display a ADR search result + * A component to display an ADR search result. * @public */ -export const AdrSearchResultListItem = ({ - lineClamp = 5, - highlight, - rank, - result, -}: { +export function AdrSearchResultListItem(props: { lineClamp?: number; highlight?: ResultHighlight; rank?: number; result: AdrDocument; -}) => { +}) { + const { lineClamp = 5, highlight, rank, result } = props; const classes = useStyles(); const analytics = useAnalytics(); @@ -122,4 +118,4 @@ export const AdrSearchResultListItem = ({ ); -}; +} diff --git a/plugins/apache-airflow/api-report.md b/plugins/apache-airflow/api-report.md index 428f3238e8..2f03d34205 100644 --- a/plugins/apache-airflow/api-report.md +++ b/plugins/apache-airflow/api-report.md @@ -9,9 +9,7 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { RouteRef } from '@backstage/core-plugin-api'; // @public -export const ApacheAirflowDagTable: ({ - dagIds, -}: { +export const ApacheAirflowDagTable: (props: { dagIds?: string[] | undefined; }) => JSX.Element; diff --git a/plugins/apache-airflow/src/components/DagTableComponent/DagTableComponent.tsx b/plugins/apache-airflow/src/components/DagTableComponent/DagTableComponent.tsx index 2514d70d45..fcd87b2020 100644 --- a/plugins/apache-airflow/src/components/DagTableComponent/DagTableComponent.tsx +++ b/plugins/apache-airflow/src/components/DagTableComponent/DagTableComponent.tsx @@ -134,7 +134,8 @@ type DagTableComponentProps = { dagIds?: string[]; }; -export const DagTableComponent = ({ dagIds }: DagTableComponentProps) => { +export const DagTableComponent = (props: DagTableComponentProps) => { + const { dagIds } = props; const apiClient = useApi(apacheAirflowApiRef); const { value, loading, error } = useAsync(async (): Promise => { diff --git a/plugins/api-docs/api-report.md b/plugins/api-docs/api-report.md index e32a529df2..9f226e52c7 100644 --- a/plugins/api-docs/api-report.md +++ b/plugins/api-docs/api-report.md @@ -58,21 +58,13 @@ export const ApiExplorerIndexPage: ( props: DefaultApiExplorerPageProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "ApiExplorerPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const ApiExplorerPage: ( props: DefaultApiExplorerPageProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "ApiTypeTitle" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const ApiTypeTitle: ({ - apiEntity, -}: { - apiEntity: ApiEntity; -}) => JSX.Element; +export const ApiTypeTitle: (props: { apiEntity: ApiEntity }) => JSX.Element; // Warning: (ae-missing-release-tag) "AsyncApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -88,17 +80,15 @@ export type AsyncApiDefinitionWidgetProps = { definition: string; }; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "ConsumedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const ConsumedApisCard: ({ variant }: Props) => JSX.Element; +export const ConsumedApisCard: (props: { + variant?: InfoCardVariants; +}) => JSX.Element; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "ConsumingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const ConsumingComponentsCard: ({ variant }: Props_4) => JSX.Element; +export const ConsumingComponentsCard: (props: { + variant?: InfoCardVariants; +}) => JSX.Element; // @public export const DefaultApiExplorerPage: ({ @@ -119,53 +109,31 @@ export type DefaultApiExplorerPageProps = { // @public (undocumented) export function defaultDefinitionWidgets(): ApiDefinitionWidget[]; -// Warning: (ae-missing-release-tag) "EntityApiDefinitionCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityApiDefinitionCard: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityConsumedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityConsumedApisCard: ({ - variant, -}: { +export const EntityConsumedApisCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityConsumingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityConsumingComponentsCard: ({ - variant, -}: { +export const EntityConsumingComponentsCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityHasApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityHasApisCard: ({ - variant, -}: { +export const EntityHasApisCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityProvidedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityProvidedApisCard: ({ - variant, -}: { +export const EntityProvidedApisCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityProvidingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityProvidingComponentsCard: ({ - variant, -}: { +export const EntityProvidingComponentsCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; @@ -183,11 +151,10 @@ export type GraphQlDefinitionWidgetProps = { definition: string; }; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "HasApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const HasApisCard: ({ variant }: Props_2) => JSX.Element; +export const HasApisCard: (props: { + variant?: InfoCardVariants; +}) => JSX.Element; // Warning: (ae-missing-release-tag) "OpenApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -218,15 +185,15 @@ export type PlainApiDefinitionWidgetProps = { language: string; }; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "ProvidedApisCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const ProvidedApisCard: ({ variant }: Props_3) => JSX.Element; +export const ProvidedApisCard: (props: { + variant?: InfoCardVariants; +}) => JSX.Element; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "ProvidingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const ProvidingComponentsCard: ({ variant }: Props_5) => JSX.Element; +export const ProvidingComponentsCard: (props: { + variant?: InfoCardVariants; +}) => JSX.Element; ``` diff --git a/plugins/api-docs/src/components/ApiDefinitionCard/ApiTypeTitle.tsx b/plugins/api-docs/src/components/ApiDefinitionCard/ApiTypeTitle.tsx index 787c91f12b..93ab7cc05a 100644 --- a/plugins/api-docs/src/components/ApiDefinitionCard/ApiTypeTitle.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionCard/ApiTypeTitle.tsx @@ -19,7 +19,11 @@ import React from 'react'; import { apiDocsConfigRef } from '../../config'; import { useApi } from '@backstage/core-plugin-api'; -export const ApiTypeTitle = ({ apiEntity }: { apiEntity: ApiEntity }) => { +/** + * @public + */ +export const ApiTypeTitle = (props: { apiEntity: ApiEntity }) => { + const { apiEntity } = props; const config = useApi(apiDocsConfigRef); const definition = config.getApiDefinitionWidget(apiEntity); const type = definition ? definition.title : apiEntity.spec.type; diff --git a/plugins/api-docs/src/components/ApisCards/ConsumedApisCard.tsx b/plugins/api-docs/src/components/ApisCards/ConsumedApisCard.tsx index fde41425c9..588e62ceb7 100644 --- a/plugins/api-docs/src/components/ApisCards/ConsumedApisCard.tsx +++ b/plugins/api-docs/src/components/ApisCards/ConsumedApisCard.tsx @@ -32,11 +32,11 @@ import { WarningPanel, } from '@backstage/core-components'; -type Props = { - variant?: InfoCardVariants; -}; - -export const ConsumedApisCard = ({ variant = 'gridItem' }: Props) => { +/** + * @public + */ +export const ConsumedApisCard = (props: { variant?: InfoCardVariants }) => { + const { variant = 'gridItem' } = props; const { entity } = useEntity(); const { entities, loading, error } = useRelatedEntities(entity, { type: RELATION_CONSUMES_API, diff --git a/plugins/api-docs/src/components/ApisCards/HasApisCard.tsx b/plugins/api-docs/src/components/ApisCards/HasApisCard.tsx index bb22f82269..b09cafacda 100644 --- a/plugins/api-docs/src/components/ApisCards/HasApisCard.tsx +++ b/plugins/api-docs/src/components/ApisCards/HasApisCard.tsx @@ -33,10 +33,6 @@ import { WarningPanel, } from '@backstage/core-components'; -type Props = { - variant?: InfoCardVariants; -}; - const columns: TableColumn[] = [ EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }), EntityTable.columns.createOwnerColumn(), @@ -45,7 +41,11 @@ const columns: TableColumn[] = [ EntityTable.columns.createMetadataDescriptionColumn(), ]; -export const HasApisCard = ({ variant = 'gridItem' }: Props) => { +/** + * @public + */ +export const HasApisCard = (props: { variant?: InfoCardVariants }) => { + const { variant = 'gridItem' } = props; const { entity } = useEntity(); const { entities, loading, error } = useRelatedEntities(entity, { type: RELATION_HAS_PART, diff --git a/plugins/api-docs/src/components/ApisCards/ProvidedApisCard.tsx b/plugins/api-docs/src/components/ApisCards/ProvidedApisCard.tsx index 6ffb6365d2..e9c63d9956 100644 --- a/plugins/api-docs/src/components/ApisCards/ProvidedApisCard.tsx +++ b/plugins/api-docs/src/components/ApisCards/ProvidedApisCard.tsx @@ -32,11 +32,11 @@ import { WarningPanel, } from '@backstage/core-components'; -type Props = { - variant?: InfoCardVariants; -}; - -export const ProvidedApisCard = ({ variant = 'gridItem' }: Props) => { +/** + * @public + */ +export const ProvidedApisCard = (props: { variant?: InfoCardVariants }) => { + const { variant = 'gridItem' } = props; const { entity } = useEntity(); const { entities, loading, error } = useRelatedEntities(entity, { type: RELATION_PROVIDES_API, diff --git a/plugins/api-docs/src/components/ComponentsCards/ConsumingComponentsCard.tsx b/plugins/api-docs/src/components/ComponentsCards/ConsumingComponentsCard.tsx index af3dcb7204..aa6afc7822 100644 --- a/plugins/api-docs/src/components/ComponentsCards/ConsumingComponentsCard.tsx +++ b/plugins/api-docs/src/components/ComponentsCards/ConsumingComponentsCard.tsx @@ -34,11 +34,13 @@ import { WarningPanel, } from '@backstage/core-components'; -type Props = { +/** + * @public + */ +export const ConsumingComponentsCard = (props: { variant?: InfoCardVariants; -}; - -export const ConsumingComponentsCard = ({ variant = 'gridItem' }: Props) => { +}) => { + const { variant = 'gridItem' } = props; const { entity } = useEntity(); const { entities, loading, error } = useRelatedEntities(entity, { type: RELATION_API_CONSUMED_BY, diff --git a/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx b/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx index 0be746de6d..939257a2e5 100644 --- a/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx +++ b/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx @@ -34,11 +34,10 @@ import { WarningPanel, } from '@backstage/core-components'; -type Props = { +export const ProvidingComponentsCard = (props: { variant?: InfoCardVariants; -}; - -export const ProvidingComponentsCard = ({ variant = 'gridItem' }: Props) => { +}) => { + const { variant = 'gridItem' } = props; const { entity } = useEntity(); const { entities, loading, error } = useRelatedEntities(entity, { type: RELATION_API_PROVIDED_BY, diff --git a/plugins/api-docs/src/plugin.ts b/plugins/api-docs/src/plugin.ts index f1928f4443..2a10a3afcd 100644 --- a/plugins/api-docs/src/plugin.ts +++ b/plugins/api-docs/src/plugin.ts @@ -49,6 +49,7 @@ export const apiDocsPlugin = createPlugin({ }, }); +/** @public */ export const ApiExplorerPage = apiDocsPlugin.provide( createRoutableExtension({ name: 'ApiExplorerPage', @@ -58,6 +59,7 @@ export const ApiExplorerPage = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityApiDefinitionCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityApiDefinitionCard', @@ -68,6 +70,7 @@ export const EntityApiDefinitionCard = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityConsumedApisCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityConsumedApisCard', @@ -78,6 +81,7 @@ export const EntityConsumedApisCard = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityConsumingComponentsCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityConsumingComponentsCard', @@ -90,6 +94,7 @@ export const EntityConsumingComponentsCard = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityProvidedApisCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityProvidedApisCard', @@ -100,6 +105,7 @@ export const EntityProvidedApisCard = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityProvidingComponentsCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityProvidingComponentsCard', @@ -112,6 +118,7 @@ export const EntityProvidingComponentsCard = apiDocsPlugin.provide( }), ); +/** @public */ export const EntityHasApisCard = apiDocsPlugin.provide( createComponentExtension({ name: 'EntityHasApisCard', From 125a2407005343eac6b7e11caba31f7fd294a8bb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 18 Aug 2022 13:37:40 +0200 Subject: [PATCH 207/239] microsite: fix release page Signed-off-by: Patrik Oldsberg --- microsite/sidebars.json | 1 + 1 file changed, 1 insertion(+) diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 27ae9c8295..378d8085a3 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -1,6 +1,7 @@ { "releases": { "Release Notes": [ + "releases/v1.5.0", "releases/v1.4.0", "releases/v1.3.0", "releases/v1.2.0", From aded6572ed94eb8f0f3934f1b6672cfb15a77a57 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 18 Aug 2022 14:00:36 +0200 Subject: [PATCH 208/239] Update SECURITY.md Signed-off-by: Patrik Oldsberg --- SECURITY.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index 49e26349b0..5866fff2b4 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,9 +2,7 @@ ## Supported Versions -| Version | Supported | -| ------- | ------------------ | -| 0.x | :white_check_mark: | +See our [Release & Versioning Policy](https://backstage.io/docs/overview/versioning-policy#release-versioning-policy). ## Reporting a Vulnerability From 3f739be9d97a65acf87912a6d24d02b948ed14d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 18 Aug 2022 14:11:45 +0200 Subject: [PATCH 209/239] more api cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/eight-spies-protect.md | 25 ++++++++ plugins/azure-devops-backend/api-report.md | 6 -- .../src/api/AzureDevOpsApi.ts | 2 + .../src/service/router.ts | 2 + plugins/azure-devops-common/api-report.md | 46 +------------- plugins/azure-devops-common/src/types.ts | 23 +++++++ plugins/azure-devops/api-report.md | 60 +------------------ .../azure-devops/src/api/AzureDevOpsApi.ts | 2 + .../azure-devops/src/api/AzureDevOpsClient.ts | 4 +- .../AzurePullRequestsIcon.tsx | 4 +- .../EntityPageAzurePipelines.tsx | 8 +-- .../EntityPageAzurePullRequests.tsx | 6 +- .../PullRequestsPage/PullRequestsPage.tsx | 9 +-- .../PullRequestsPage/lib/filters/allFilter.ts | 1 + .../lib/filters/assignedToTeamFilter.ts | 4 +- .../lib/filters/assignedToTeamsFilter.ts | 4 +- .../lib/filters/assignedToUserFilter.ts | 4 +- .../lib/filters/createdByTeamFilter.ts | 4 +- .../lib/filters/createdByTeamsFilter.ts | 4 +- .../lib/filters/createdByUserFilter.ts | 4 +- .../PullRequestsPage/lib/filters/types.ts | 5 ++ .../components/PullRequestsPage/lib/types.ts | 6 +- plugins/azure-devops/src/plugin.ts | 7 +++ plugins/cloudbuild/api-report.md | 43 +++---------- plugins/cloudbuild/src/api/CloudbuildApi.ts | 18 ++---- .../cloudbuild/src/api/CloudbuildClient.ts | 37 +++++------- plugins/explore/api-report.md | 12 +--- .../DomainExplorerContent.tsx | 14 ++--- .../GroupsExplorerContent.tsx | 11 +--- .../ToolExplorerContent.tsx | 10 +--- plugins/fossa/api-report.md | 14 +---- .../src/components/FossaCard/FossaCard.tsx | 4 +- .../src/components/FossaPage/FossaPage.tsx | 6 +- plugins/fossa/src/extensions.tsx | 2 + plugins/fossa/src/plugin.ts | 1 + plugins/git-release-manager/api-report.md | 37 +++--------- .../src/components/InfoCardPlus.tsx | 6 +- .../src/helpers/getBumpedTag.ts | 13 ++-- .../src/helpers/tagParts/getTagParts.ts | 16 ++--- .../src/helpers/tagParts/validateTagName.ts | 9 ++- plugins/github-actions/api-report.md | 36 ++++------- .../src/components/Cards/Cards.tsx | 32 ++++------ plugins/github-actions/src/plugin.ts | 5 ++ plugins/jenkins/api-report.md | 25 ++------ .../jenkins/src/components/Cards/Cards.tsx | 14 ++--- plugins/jenkins/src/components/Router.tsx | 6 +- plugins/jenkins/src/plugin.ts | 6 ++ plugins/newrelic-dashboard/api-report.md | 12 +--- .../DashboardSnapshot.tsx | 11 ++-- .../DashboardSnapshotList.tsx | 9 +-- .../DashboardSnapshotList/index.ts | 1 + plugins/newrelic-dashboard/src/plugin.ts | 6 ++ plugins/pagerduty/api-report.md | 2 +- plugins/pagerduty/src/api/client.ts | 5 +- plugins/scaffolder/api-report.md | 6 +- plugins/scaffolder/src/types.ts | 4 +- plugins/search-backend-node/api-report.md | 12 ++-- .../search-backend-node/src/IndexBuilder.ts | 14 +++-- plugins/search-backend-node/src/Scheduler.ts | 8 ++- .../src/engines/LunrSearchEngine.ts | 6 +- plugins/sentry/api-report.md | 26 ++------ plugins/sentry/src/api/production-api.ts | 1 + plugins/sentry/src/api/sentry-api.ts | 2 + plugins/sentry/src/components/Router.tsx | 5 +- .../SentryIssuesWidget/SentryIssuesWidget.tsx | 16 ++--- plugins/sentry/src/plugin.ts | 2 + plugins/sonarqube/api-report.md | 45 +++++--------- plugins/sonarqube/src/api/SonarQubeApi.ts | 5 +- .../SonarQubeCard/SonarQubeCard.tsx | 15 ++--- .../src/components/SonarQubeCard/Value.tsx | 5 +- .../src/components/SonarQubeCard/index.ts | 1 + .../sonarqube/src/components/useProjectKey.ts | 1 + plugins/sonarqube/src/plugin.ts | 2 + plugins/tech-insights-node/api-report.md | 6 +- plugins/tech-insights-node/src/persistence.ts | 6 +- plugins/tech-insights/api-report.md | 12 +--- .../ScorecardsCard/ScorecardsCard.tsx | 7 +-- .../ScorecardsContent/ScorecardContent.tsx | 7 +-- .../ScorecardsInfo/ScorecardInfo.tsx | 17 +++--- .../api-report.md | 4 +- .../src/ReportIssue/types.ts | 4 +- plugins/techdocs/api-report.md | 6 +- plugins/techdocs/src/types.ts | 6 +- plugins/user-settings/api-report.md | 17 ++---- .../src/components/SettingsPage.tsx | 10 ++-- plugins/vault-backend/api-report.md | 2 +- plugins/vault-backend/src/service/vaultApi.ts | 4 +- scripts/api-extractor.ts | 5 -- 88 files changed, 358 insertions(+), 594 deletions(-) create mode 100644 .changeset/eight-spies-protect.md diff --git a/.changeset/eight-spies-protect.md b/.changeset/eight-spies-protect.md new file mode 100644 index 0000000000..0011dece72 --- /dev/null +++ b/.changeset/eight-spies-protect.md @@ -0,0 +1,25 @@ +--- +'@backstage/plugin-azure-devops': patch +'@backstage/plugin-azure-devops-backend': patch +'@backstage/plugin-azure-devops-common': patch +'@backstage/plugin-cloudbuild': patch +'@backstage/plugin-explore': patch +'@backstage/plugin-fossa': patch +'@backstage/plugin-git-release-manager': patch +'@backstage/plugin-github-actions': patch +'@backstage/plugin-jenkins': patch +'@backstage/plugin-newrelic-dashboard': patch +'@backstage/plugin-pagerduty': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-search-backend-node': patch +'@backstage/plugin-sentry': patch +'@backstage/plugin-sonarqube': patch +'@backstage/plugin-tech-insights': patch +'@backstage/plugin-tech-insights-node': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-techdocs-module-addons-contrib': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-vault-backend': patch +--- + +Minor API signatures cleanup diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index eaebea4d7b..712a433920 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -20,8 +20,6 @@ import { Team } from '@backstage/plugin-azure-devops-common'; import { TeamMember } from '@backstage/plugin-azure-devops-common'; import { WebApi } from 'azure-devops-node-api'; -// Warning: (ae-missing-release-tag) "AzureDevOpsApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class AzureDevOpsApi { constructor(logger: Logger, webApi: WebApi); @@ -88,13 +86,9 @@ export class AzureDevOpsApi { }): Promise; } -// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export function createRouter(options: RouterOptions): Promise; -// Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface RouterOptions { // (undocumented) diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 240ba0b189..13edd7419d 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -53,6 +53,7 @@ import { WebApiTeam, } from 'azure-devops-node-api/interfaces/CoreInterfaces'; +/** @public */ export class AzureDevOpsApi { public constructor( private readonly logger: Logger, @@ -73,6 +74,7 @@ export class AzureDevOpsApi { a.name && b.name ? a.name.localeCompare(b.name) : 0, ); } + public async getGitRepository( projectName: string, repoName: string, diff --git a/plugins/azure-devops-backend/src/service/router.ts b/plugins/azure-devops-backend/src/service/router.ts index a4a76b4a14..0cb504537c 100644 --- a/plugins/azure-devops-backend/src/service/router.ts +++ b/plugins/azure-devops-backend/src/service/router.ts @@ -31,12 +31,14 @@ import express from 'express'; const DEFAULT_TOP = 10; +/** @public */ export interface RouterOptions { azureDevOpsApi?: AzureDevOpsApi; logger: Logger; config: Config; } +/** @public */ export async function createRouter( options: RouterOptions, ): Promise { diff --git a/plugins/azure-devops-common/api-report.md b/plugins/azure-devops-common/api-report.md index 34d911dac6..ca8206b508 100644 --- a/plugins/azure-devops-common/api-report.md +++ b/plugins/azure-devops-common/api-report.md @@ -3,8 +3,6 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -// Warning: (ae-missing-release-tag) "BuildResult" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum BuildResult { Canceled = 32, @@ -14,8 +12,6 @@ export enum BuildResult { Succeeded = 2, } -// Warning: (ae-missing-release-tag) "BuildRun" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BuildRun = { id?: number; @@ -30,15 +26,11 @@ export type BuildRun = { uniqueName?: string; }; -// Warning: (ae-missing-release-tag) "BuildRunOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BuildRunOptions = { top?: number; }; -// Warning: (ae-missing-release-tag) "BuildStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum BuildStatus { All = 47, @@ -50,8 +42,6 @@ export enum BuildStatus { Postponed = 8, } -// Warning: (ae-missing-release-tag) "CreatedBy" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface CreatedBy { // (undocumented) @@ -68,8 +58,6 @@ export interface CreatedBy { uniqueName?: string; } -// Warning: (ae-missing-release-tag) "DashboardPullRequest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface DashboardPullRequest { // (undocumented) @@ -98,8 +86,6 @@ export interface DashboardPullRequest { title?: string; } -// Warning: (ae-missing-release-tag) "GitTag" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type GitTag = { objectId?: string; @@ -110,8 +96,6 @@ export type GitTag = { commitLink: string; }; -// Warning: (ae-missing-release-tag) "Policy" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Policy { // (undocumented) @@ -126,9 +110,7 @@ export interface Policy { type: PolicyType; } -// Warning: (ae-missing-release-tag) "PolicyEvaluationStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public +// @public (undocumented) export enum PolicyEvaluationStatus { Approved = 2, Broken = 5, @@ -138,8 +120,6 @@ export enum PolicyEvaluationStatus { Running = 1, } -// Warning: (ae-missing-release-tag) "PolicyType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum PolicyType { // (undocumented) @@ -156,8 +136,6 @@ export enum PolicyType { Status = 'Status', } -// Warning: (ae-missing-release-tag) "PolicyTypeId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum PolicyTypeId { Build = '0609b952-1397-4640-95ec-e00a01b2c241', @@ -168,8 +146,6 @@ export enum PolicyTypeId { Status = 'cbdc66da-9728-4af8-aada-9a5a32e4a226', } -// Warning: (ae-missing-release-tag) "Project" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type Project = { id?: string; @@ -177,8 +153,6 @@ export type Project = { description?: string; }; -// Warning: (ae-missing-release-tag) "PullRequest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type PullRequest = { pullRequestId?: number; @@ -194,16 +168,12 @@ export type PullRequest = { link: string; }; -// Warning: (ae-missing-release-tag) "PullRequestOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type PullRequestOptions = { top: number; status: PullRequestStatus; }; -// Warning: (ae-missing-release-tag) "PullRequestStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum PullRequestStatus { Abandoned = 2, @@ -213,8 +183,6 @@ export enum PullRequestStatus { NotSet = 0, } -// Warning: (ae-missing-release-tag) "PullRequestVoteStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum PullRequestVoteStatus { // (undocumented) @@ -229,8 +197,6 @@ export enum PullRequestVoteStatus { WaitingForAuthor = -5, } -// Warning: (ae-missing-release-tag) "RepoBuild" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type RepoBuild = { id?: number; @@ -245,15 +211,11 @@ export type RepoBuild = { uniqueName?: string; }; -// Warning: (ae-missing-release-tag) "RepoBuildOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type RepoBuildOptions = { top?: number; }; -// Warning: (ae-missing-release-tag) "Repository" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Repository { // (undocumented) @@ -264,8 +226,6 @@ export interface Repository { url?: string; } -// Warning: (ae-missing-release-tag) "Reviewer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Reviewer { // (undocumented) @@ -284,8 +244,6 @@ export interface Reviewer { voteStatus: PullRequestVoteStatus; } -// Warning: (ae-missing-release-tag) "Team" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Team { // (undocumented) @@ -300,8 +258,6 @@ export interface Team { projectName?: string; } -// Warning: (ae-missing-release-tag) "TeamMember" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface TeamMember { // (undocumented) diff --git a/plugins/azure-devops-common/src/types.ts b/plugins/azure-devops-common/src/types.ts index db2813dec1..d763d151ca 100644 --- a/plugins/azure-devops-common/src/types.ts +++ b/plugins/azure-devops-common/src/types.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +/** @public */ export enum BuildResult { /** * No result @@ -37,6 +38,7 @@ export enum BuildResult { Canceled = 32, } +/** @public */ export enum BuildStatus { /** * No status. @@ -68,6 +70,7 @@ export enum BuildStatus { All = 47, } +/** @public */ export type RepoBuild = { id?: number; title: string; @@ -81,10 +84,12 @@ export type RepoBuild = { uniqueName?: string; }; +/** @public */ export type RepoBuildOptions = { top?: number; }; +/** @public */ export enum PullRequestStatus { /** * Status not set. Default state. @@ -108,6 +113,7 @@ export enum PullRequestStatus { All = 4, } +/** @public */ export type GitTag = { objectId?: string; peeledObjectId?: string; @@ -117,6 +123,7 @@ export type GitTag = { commitLink: string; }; +/** @public */ export type PullRequest = { pullRequestId?: number; repoName?: string; @@ -131,11 +138,13 @@ export type PullRequest = { link: string; }; +/** @public */ export type PullRequestOptions = { top: number; status: PullRequestStatus; }; +/** @public */ export interface DashboardPullRequest { pullRequestId?: number; title?: string; @@ -151,6 +160,7 @@ export interface DashboardPullRequest { link?: string; } +/** @public */ export interface Reviewer { id?: string; displayName?: string; @@ -161,6 +171,7 @@ export interface Reviewer { voteStatus: PullRequestVoteStatus; } +/** @public */ export interface Policy { id?: number; type: PolicyType; @@ -169,6 +180,7 @@ export interface Policy { link?: string; } +/** @public */ export interface CreatedBy { id?: string; displayName?: string; @@ -178,12 +190,14 @@ export interface CreatedBy { teamNames?: string[]; } +/** @public */ export interface Repository { id?: string; name?: string; url?: string; } +/** @public */ export interface Team { id?: string; name?: string; @@ -192,6 +206,7 @@ export interface Team { members?: string[]; } +/** @public */ export interface TeamMember { id?: string; displayName?: string; @@ -202,6 +217,7 @@ export interface TeamMember { /** * Status of a policy which is running against a specific pull request. */ +/** @public */ export enum PolicyEvaluationStatus { /** * The policy is either queued to run, or is waiting for some event before progressing. @@ -229,6 +245,7 @@ export enum PolicyEvaluationStatus { Broken = 5, } +/** @public */ export enum PolicyType { Build = 'Build', Status = 'Status', @@ -238,6 +255,7 @@ export enum PolicyType { MergeStrategy = 'MergeStrategy', } +/** @public */ export enum PolicyTypeId { /** * This policy will require a successful build has been performed before updating protected refs. @@ -265,6 +283,7 @@ export enum PolicyTypeId { MergeStrategy = 'fa4e907d-c16b-4a4c-9dfa-4916e5d171ab', } +/** @public */ export enum PullRequestVoteStatus { Approved = 10, ApprovedWithSuggestions = 5, @@ -272,6 +291,8 @@ export enum PullRequestVoteStatus { WaitingForAuthor = -5, Rejected = -10, } + +/** @public */ export type BuildRun = { id?: number; title: string; @@ -285,10 +306,12 @@ export type BuildRun = { uniqueName?: string; }; +/** @public */ export type BuildRunOptions = { top?: number; }; +/** @public */ export type Project = { id?: string; name?: string; diff --git a/plugins/azure-devops/api-report.md b/plugins/azure-devops/api-report.md index 0fe600f15d..3c01936390 100644 --- a/plugins/azure-devops/api-report.md +++ b/plugins/azure-devops/api-report.md @@ -21,23 +21,17 @@ import { RepoBuildOptions } from '@backstage/plugin-azure-devops-common'; import { SvgIconProps } from '@material-ui/core'; import { Team } from '@backstage/plugin-azure-devops-common'; -// Warning: (ae-missing-release-tag) "AllFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type AllFilter = BaseFilter & { type: FilterType.All; }; -// Warning: (ae-missing-release-tag) "AssignedToTeamFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type AssignedToTeamFilter = BaseFilter & { type: FilterType.AssignedToTeam; teamId: string; }; -// Warning: (ae-missing-release-tag) "AssignedToTeamsFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type AssignedToTeamsFilter = BaseFilter & ( @@ -51,8 +45,6 @@ export type AssignedToTeamsFilter = BaseFilter & } ); -// Warning: (ae-missing-release-tag) "AssignedToUserFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type AssignedToUserFilter = BaseFilter & ( @@ -66,8 +58,6 @@ export type AssignedToUserFilter = BaseFilter & } ); -// Warning: (ae-missing-release-tag) "AzureDevOpsApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface AzureDevOpsApi { // (undocumented) @@ -112,13 +102,9 @@ export interface AzureDevOpsApi { getUserTeamIds(userId: string): Promise; } -// Warning: (ae-missing-release-tag) "azureDevOpsApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const azureDevOpsApiRef: ApiRef; -// Warning: (ae-missing-release-tag) "AzureDevOpsClient" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class AzureDevOpsClient implements AzureDevOpsApi { constructor(options: { @@ -167,38 +153,24 @@ export class AzureDevOpsClient implements AzureDevOpsApi { getUserTeamIds(userId: string): Promise; } -// Warning: (ae-missing-release-tag) "azureDevOpsPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const azureDevOpsPlugin: BackstagePlugin<{}, {}, {}>; -// Warning: (ae-missing-release-tag) "AzurePullRequestsIcon" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const AzurePullRequestsIcon: (props: SvgIconProps) => JSX.Element; -// Warning: (ae-missing-release-tag) "AzurePullRequestsPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const AzurePullRequestsPage: ({ - projectName, - pollingInterval, - defaultColumnConfigs, -}: { +export const AzurePullRequestsPage: (props: { projectName?: string | undefined; pollingInterval?: number | undefined; defaultColumnConfigs?: PullRequestColumnConfig[] | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "BaseFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BaseFilter = { type: FilterType; }; -// Warning: (ae-missing-release-tag) "CreatedByTeamFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type CreatedByTeamFilter = BaseFilter & ({ @@ -212,8 +184,6 @@ export type CreatedByTeamFilter = BaseFilter & } )); -// Warning: (ae-missing-release-tag) "CreatedByTeamsFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type CreatedByTeamsFilter = BaseFilter & ( @@ -233,8 +203,6 @@ export type CreatedByTeamsFilter = BaseFilter & } ); -// Warning: (ae-missing-release-tag) "CreatedByUserFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type CreatedByUserFilter = BaseFilter & ( @@ -248,31 +216,19 @@ export type CreatedByUserFilter = BaseFilter & } ); -// Warning: (ae-missing-release-tag) "EntityAzureGitTagsContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityAzureGitTagsContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityAzurePipelinesContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityAzurePipelinesContent: ({ - defaultLimit, -}: { +export const EntityAzurePipelinesContent: (props: { defaultLimit?: number | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityAzurePullRequestsContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityAzurePullRequestsContent: ({ - defaultLimit, -}: { +export const EntityAzurePullRequestsContent: (props: { defaultLimit?: number | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "Filter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type Filter = | AssignedToUserFilter @@ -283,8 +239,6 @@ export type Filter = | CreatedByTeamsFilter | AllFilter; -// Warning: (ae-missing-release-tag) "FilterType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export enum FilterType { // (undocumented) @@ -311,18 +265,12 @@ export enum FilterType { CreatedByUser = 'CreatedByUser', } -// Warning: (ae-missing-release-tag) "isAzureDevOpsAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const isAzureDevOpsAvailable: (entity: Entity) => boolean; -// Warning: (ae-missing-release-tag) "isAzurePipelinesAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const isAzurePipelinesAvailable: (entity: Entity) => boolean; -// Warning: (ae-missing-release-tag) "PullRequestColumnConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface PullRequestColumnConfig { // (undocumented) @@ -333,8 +281,6 @@ export interface PullRequestColumnConfig { title: string; } -// Warning: (ae-missing-release-tag) "PullRequestFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type PullRequestFilter = (pullRequest: DashboardPullRequest) => boolean; diff --git a/plugins/azure-devops/src/api/AzureDevOpsApi.ts b/plugins/azure-devops/src/api/AzureDevOpsApi.ts index ccedc401f1..d90fd71b30 100644 --- a/plugins/azure-devops/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops/src/api/AzureDevOpsApi.ts @@ -28,10 +28,12 @@ import { import { createApiRef } from '@backstage/core-plugin-api'; +/** @public */ export const azureDevOpsApiRef = createApiRef({ id: 'plugin.azure-devops.service', }); +/** @public */ export interface AzureDevOpsApi { getRepoBuilds( projectName: string, diff --git a/plugins/azure-devops/src/api/AzureDevOpsClient.ts b/plugins/azure-devops/src/api/AzureDevOpsClient.ts index 61c8479d71..41d7126f40 100644 --- a/plugins/azure-devops/src/api/AzureDevOpsClient.ts +++ b/plugins/azure-devops/src/api/AzureDevOpsClient.ts @@ -26,10 +26,10 @@ import { Team, } from '@backstage/plugin-azure-devops-common'; import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; - -import { AzureDevOpsApi } from './AzureDevOpsApi'; import { ResponseError } from '@backstage/errors'; +import { AzureDevOpsApi } from './AzureDevOpsApi'; +/** @public */ export class AzureDevOpsClient implements AzureDevOpsApi { private readonly discoveryApi: DiscoveryApi; private readonly identityApi: IdentityApi; diff --git a/plugins/azure-devops/src/components/AzurePullRequestsIcon/AzurePullRequestsIcon.tsx b/plugins/azure-devops/src/components/AzurePullRequestsIcon/AzurePullRequestsIcon.tsx index bb4cb8c081..99e3f74e90 100644 --- a/plugins/azure-devops/src/components/AzurePullRequestsIcon/AzurePullRequestsIcon.tsx +++ b/plugins/azure-devops/src/components/AzurePullRequestsIcon/AzurePullRequestsIcon.tsx @@ -14,10 +14,10 @@ * limitations under the License. */ +import React from 'react'; import { SvgIcon, SvgIconProps } from '@material-ui/core'; -import React from 'react'; - +/** @public */ export const AzurePullRequestsIcon = (props: SvgIconProps) => ( { +export const EntityPageAzurePipelines = (props: { defaultLimit?: number }) => { const { entity } = useEntity(); const { project, repo, definition } = getAnnotationFromEntity(entity); const { items, loading, error } = useBuildRuns( project, - defaultLimit, + props.defaultLimit, repo, definition, ); diff --git a/plugins/azure-devops/src/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.tsx b/plugins/azure-devops/src/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.tsx index 3d1a3ef77a..b5a21ff750 100644 --- a/plugins/azure-devops/src/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.tsx +++ b/plugins/azure-devops/src/components/EntityPageAzurePullRequests/EntityPageAzurePullRequests.tsx @@ -17,10 +17,8 @@ import { PullRequestTable } from '../PullRequestTable/PullRequestTable'; import React from 'react'; -export const EntityPageAzurePullRequests = ({ - defaultLimit, -}: { +export const EntityPageAzurePullRequests = (props: { defaultLimit?: number; }) => { - return ; + return ; }; diff --git a/plugins/azure-devops/src/components/PullRequestsPage/PullRequestsPage.tsx b/plugins/azure-devops/src/components/PullRequestsPage/PullRequestsPage.tsx index 158c4bca5b..c5da207bd6 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/PullRequestsPage.tsx +++ b/plugins/azure-devops/src/components/PullRequestsPage/PullRequestsPage.tsx @@ -24,7 +24,6 @@ import { import { PullRequestColumnConfig, PullRequestGroup } from './lib/types'; import React, { useState } from 'react'; import { getPullRequestGroupConfigs, getPullRequestGroups } from './lib/utils'; - import { FilterType } from './lib/filters'; import { PullRequestGrid } from './lib/PullRequestGrid'; import { useDashboardPullRequests } from '../../hooks'; @@ -71,11 +70,9 @@ type PullRequestsPageProps = { defaultColumnConfigs?: PullRequestColumnConfig[]; }; -export const PullRequestsPage = ({ - projectName, - pollingInterval, - defaultColumnConfigs, -}: PullRequestsPageProps) => { +export const PullRequestsPage = (props: PullRequestsPageProps) => { + const { projectName, pollingInterval, defaultColumnConfigs } = props; + const { pullRequests, loading, error } = useDashboardPullRequests( projectName, pollingInterval, diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/allFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/allFilter.ts index 90ec822ef6..952f7ddc57 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/allFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/allFilter.ts @@ -18,6 +18,7 @@ import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +/** @public */ export type AllFilter = BaseFilter & { type: FilterType.All; }; diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamFilter.ts index 8e816db2c3..fa6b3de00a 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { stringArrayHas } from '../../../../utils'; +/** @public */ export type AssignedToTeamFilter = BaseFilter & { type: FilterType.AssignedToTeam; teamId: string; diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.ts index ce5e5bcc11..df93e38f81 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToTeamsFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { createAssignedToTeamFilter } from './assignedToTeamFilter'; +/** @public */ export type AssignedToTeamsFilter = BaseFilter & ( | { diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToUserFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToUserFilter.ts index 95ee3d5a59..3f554de62b 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToUserFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/assignedToUserFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { stringArrayHas } from '../../../../utils'; +/** @public */ export type AssignedToUserFilter = BaseFilter & ( | { diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamFilter.ts index 70a388b540..e4d28d28b1 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { stringArrayHas } from '../../../../utils'; +/** @public */ export type CreatedByTeamFilter = BaseFilter & ({ type: FilterType.CreatedByTeam; diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamsFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamsFilter.ts index 34ed81db5d..44e02136ec 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamsFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByTeamsFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { createCreatedByTeamFilter } from './createdByTeamFilter'; +/** @public */ export type CreatedByTeamsFilter = BaseFilter & ( | ({ diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByUserFilter.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByUserFilter.ts index 69d4f23db5..24c14311eb 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByUserFilter.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/createdByUserFilter.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { BaseFilter, FilterType, PullRequestFilter } from './types'; - import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +import { BaseFilter, FilterType, PullRequestFilter } from './types'; import { equalsIgnoreCase } from '../../../../utils'; +/** @public */ export type CreatedByUserFilter = BaseFilter & ( | { diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/types.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/types.ts index bc4643d51b..6b0d95eb78 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/types.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/filters/types.ts @@ -23,6 +23,7 @@ import { CreatedByTeamsFilter } from './createdByTeamsFilter'; import { CreatedByUserFilter } from './createdByUserFilter'; import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; +/** @public */ export enum FilterType { All = 'All', @@ -41,6 +42,7 @@ export enum FilterType { CreatedByCurrentUsersTeams = 'CreatedByCurrentUsersTeams', } +/** @public */ export const FilterTypes = [ FilterType.All, @@ -57,10 +59,12 @@ export const FilterTypes = [ FilterType.CreatedByCurrentUsersTeams, ] as const; +/** @public */ export type BaseFilter = { type: FilterType; }; +/** @public */ export type Filter = | AssignedToUserFilter | CreatedByUserFilter @@ -80,4 +84,5 @@ export type { AllFilter, }; +/** @public */ export type PullRequestFilter = (pullRequest: DashboardPullRequest) => boolean; diff --git a/plugins/azure-devops/src/components/PullRequestsPage/lib/types.ts b/plugins/azure-devops/src/components/PullRequestsPage/lib/types.ts index 74c8ebe605..5f5f0119d8 100644 --- a/plugins/azure-devops/src/components/PullRequestsPage/lib/types.ts +++ b/plugins/azure-devops/src/components/PullRequestsPage/lib/types.ts @@ -14,22 +14,24 @@ * limitations under the License. */ +import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; import { Filter, PullRequestFilter } from './filters'; -import { DashboardPullRequest } from '@backstage/plugin-azure-devops-common'; - +/** @public */ export interface PullRequestColumnConfig { title: string; filters: Filter[]; simplified?: boolean; } +/** @public */ export interface PullRequestGroupConfig { title: string; filter: PullRequestFilter; simplified?: boolean; } +/** @public */ export interface PullRequestGroup { title: string; pullRequests: DashboardPullRequest[]; diff --git a/plugins/azure-devops/src/plugin.ts b/plugins/azure-devops/src/plugin.ts index ccd183eee9..a9753a26c1 100644 --- a/plugins/azure-devops/src/plugin.ts +++ b/plugins/azure-devops/src/plugin.ts @@ -37,9 +37,11 @@ import { AzureDevOpsClient } from './api/AzureDevOpsClient'; import { Entity } from '@backstage/catalog-model'; import { azureDevOpsApiRef } from './api/AzureDevOpsApi'; +/** @public */ export const isAzureDevOpsAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[AZURE_DEVOPS_REPO_ANNOTATION]); +/** @public */ export const isAzurePipelinesAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[AZURE_DEVOPS_REPO_ANNOTATION]) || (Boolean(entity.metadata.annotations?.[AZURE_DEVOPS_PROJECT_ANNOTATION]) && @@ -47,6 +49,7 @@ export const isAzurePipelinesAvailable = (entity: Entity) => entity.metadata.annotations?.[AZURE_DEVOPS_BUILD_DEFINITION_ANNOTATION], )); +/** @public */ export const azureDevOpsPlugin = createPlugin({ id: 'azureDevOps', apis: [ @@ -59,6 +62,7 @@ export const azureDevOpsPlugin = createPlugin({ ], }); +/** @public */ export const AzurePullRequestsPage = azureDevOpsPlugin.provide( createRoutableExtension({ name: 'AzurePullRequestsPage', @@ -68,6 +72,7 @@ export const AzurePullRequestsPage = azureDevOpsPlugin.provide( }), ); +/** @public */ export const EntityAzurePipelinesContent = azureDevOpsPlugin.provide( createRoutableExtension({ name: 'EntityAzurePipelinesContent', @@ -79,6 +84,7 @@ export const EntityAzurePipelinesContent = azureDevOpsPlugin.provide( }), ); +/** @public */ export const EntityAzureGitTagsContent = azureDevOpsPlugin.provide( createRoutableExtension({ name: 'EntityAzureGitTagsContent', @@ -90,6 +96,7 @@ export const EntityAzureGitTagsContent = azureDevOpsPlugin.provide( }), ); +/** @public */ export const EntityAzurePullRequestsContent = azureDevOpsPlugin.provide( createRoutableExtension({ name: 'EntityAzurePullRequestsContent', diff --git a/plugins/cloudbuild/api-report.md b/plugins/cloudbuild/api-report.md index ecc6d7b460..5d2dc325e4 100644 --- a/plugins/cloudbuild/api-report.md +++ b/plugins/cloudbuild/api-report.md @@ -60,31 +60,20 @@ export interface BUILD { // @public (undocumented) export const CLOUDBUILD_ANNOTATION = 'google.com/cloudbuild-project-slug'; -// Warning: (ae-missing-release-tag) "CloudbuildApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type CloudbuildApi = { - listWorkflowRuns: (request: { + listWorkflowRuns: (options: { projectId: string; }) => Promise; - getWorkflow: ({ - projectId, - id, - }: { + getWorkflow: (options: { projectId: string; id: string; }) => Promise; - getWorkflowRun: ({ - projectId, - id, - }: { + getWorkflowRun: (options: { projectId: string; id: string; }) => Promise; - reRunWorkflow: ({ - projectId, - runId, - }: { + reRunWorkflow: (options: { projectId: string; runId: string; }) => Promise; @@ -95,43 +84,27 @@ export type CloudbuildApi = { // @public (undocumented) export const cloudbuildApiRef: ApiRef; -// Warning: (ae-missing-release-tag) "CloudbuildClient" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class CloudbuildClient implements CloudbuildApi { constructor(googleAuthApi: OAuthApi); // (undocumented) getToken(): Promise; // (undocumented) - getWorkflow({ - projectId, - id, - }: { + getWorkflow(options: { projectId: string; id: string; }): Promise; // (undocumented) - getWorkflowRun({ - projectId, - id, - }: { + getWorkflowRun(options: { projectId: string; id: string; }): Promise; // (undocumented) - listWorkflowRuns({ - projectId, - }: { + listWorkflowRuns(options: { projectId: string; }): Promise; // (undocumented) - reRunWorkflow({ - projectId, - runId, - }: { - projectId: string; - runId: string; - }): Promise; + reRunWorkflow(options: { projectId: string; runId: string }): Promise; } // Warning: (ae-missing-release-tag) "cloudbuildPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/cloudbuild/src/api/CloudbuildApi.ts b/plugins/cloudbuild/src/api/CloudbuildApi.ts index 92ea8511fe..eeaf269cde 100644 --- a/plugins/cloudbuild/src/api/CloudbuildApi.ts +++ b/plugins/cloudbuild/src/api/CloudbuildApi.ts @@ -24,28 +24,20 @@ export const cloudbuildApiRef = createApiRef({ id: 'plugin.cloudbuild.service', }); +/** @public */ export type CloudbuildApi = { - listWorkflowRuns: (request: { + listWorkflowRuns: (options: { projectId: string; }) => Promise; - getWorkflow: ({ - projectId, - id, - }: { + getWorkflow: (options: { projectId: string; id: string; }) => Promise; - getWorkflowRun: ({ - projectId, - id, - }: { + getWorkflowRun: (options: { projectId: string; id: string; }) => Promise; - reRunWorkflow: ({ - projectId, - runId, - }: { + reRunWorkflow: (options: { projectId: string; runId: string; }) => Promise; diff --git a/plugins/cloudbuild/src/api/CloudbuildClient.ts b/plugins/cloudbuild/src/api/CloudbuildClient.ts index cbd47e84e9..035b20f63d 100644 --- a/plugins/cloudbuild/src/api/CloudbuildClient.ts +++ b/plugins/cloudbuild/src/api/CloudbuildClient.ts @@ -21,20 +21,18 @@ import { } from '../api/types'; import { OAuthApi } from '@backstage/core-plugin-api'; +/** @public */ export class CloudbuildClient implements CloudbuildApi { constructor(private readonly googleAuthApi: OAuthApi) {} - async reRunWorkflow({ - projectId, - runId, - }: { + async reRunWorkflow(options: { projectId: string; runId: string; }): Promise { await fetch( `https://cloudbuild.googleapis.com/v1/projects/${encodeURIComponent( - projectId, - )}/builds/${encodeURIComponent(runId)}:retry`, + options.projectId, + )}/builds/${encodeURIComponent(options.runId)}:retry`, { headers: new Headers({ Accept: '*/*', @@ -43,14 +41,13 @@ export class CloudbuildClient implements CloudbuildApi { }, ); } - async listWorkflowRuns({ - projectId, - }: { + + async listWorkflowRuns(options: { projectId: string; }): Promise { const workflowRuns = await fetch( `https://cloudbuild.googleapis.com/v1/projects/${encodeURIComponent( - projectId, + options.projectId, )}/builds`, { headers: new Headers({ @@ -65,17 +62,15 @@ export class CloudbuildClient implements CloudbuildApi { return builds; } - async getWorkflow({ - projectId, - id, - }: { + + async getWorkflow(options: { projectId: string; id: string; }): Promise { const workflow = await fetch( `https://cloudbuild.googleapis.com/v1/projects/${encodeURIComponent( - projectId, - )}/builds/${encodeURIComponent(id)}`, + options.projectId, + )}/builds/${encodeURIComponent(options.id)}`, { headers: new Headers({ Accept: '*/*', @@ -88,17 +83,15 @@ export class CloudbuildClient implements CloudbuildApi { return build; } - async getWorkflowRun({ - projectId, - id, - }: { + + async getWorkflowRun(options: { projectId: string; id: string; }): Promise { const workflow = await fetch( `https://cloudbuild.googleapis.com/v1/projects/${encodeURIComponent( - projectId, - )}/builds/${encodeURIComponent(id)}`, + options.projectId, + )}/builds/${encodeURIComponent(options.id)}`, { headers: new Headers({ Accept: '*/*', diff --git a/plugins/explore/api-report.md b/plugins/explore/api-report.md index c7181af19d..f4c7345b6c 100644 --- a/plugins/explore/api-report.md +++ b/plugins/explore/api-report.md @@ -33,9 +33,7 @@ export const DomainCard: ({ entity }: DomainCardProps) => JSX.Element; // Warning: (ae-missing-release-tag) "DomainExplorerContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const DomainExplorerContent: ({ - title, -}: { +export const DomainExplorerContent: (props: { title?: string | undefined; }) => JSX.Element; @@ -82,18 +80,14 @@ export const exploreRouteRef: RouteRef; // Warning: (ae-missing-release-tag) "GroupsExplorerContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const GroupsExplorerContent: ({ - title, -}: { +export const GroupsExplorerContent: (props: { title?: string | undefined; }) => JSX.Element; // Warning: (ae-missing-release-tag) "ToolExplorerContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const ToolExplorerContent: ({ - title, -}: { +export const ToolExplorerContent: (props: { title?: string | undefined; }) => JSX.Element; diff --git a/plugins/explore/src/components/DomainExplorerContent/DomainExplorerContent.tsx b/plugins/explore/src/components/DomainExplorerContent/DomainExplorerContent.tsx index ba495f6492..3cfed5b12b 100644 --- a/plugins/explore/src/components/DomainExplorerContent/DomainExplorerContent.tsx +++ b/plugins/explore/src/components/DomainExplorerContent/DomainExplorerContent.tsx @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { DomainEntity } from '@backstage/catalog-model'; import { catalogApiRef } from '@backstage/plugin-catalog-react'; import { Button } from '@material-ui/core'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { DomainCard } from '../DomainCard'; - import { Content, ContentHeader, @@ -29,7 +29,6 @@ import { SupportButton, WarningPanel, } from '@backstage/core-components'; - import { useApi } from '@backstage/core-plugin-api'; const Body = () => { @@ -85,16 +84,11 @@ const Body = () => { ); }; -type DomainExplorerContentProps = { - title?: string; -}; - -export const DomainExplorerContent = ({ - title, -}: DomainExplorerContentProps) => { +/** @public */ +export const DomainExplorerContent = (props: { title?: string }) => { return ( - + Discover the domains in your ecosystem. diff --git a/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx b/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx index ae711b85d9..62c4b093c0 100644 --- a/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx +++ b/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx @@ -31,21 +31,14 @@ const useStyles = makeStyles({ }, }); -type GroupsExplorerContentProps = { - title?: string; -}; - -export const GroupsExplorerContent = ({ - title, -}: GroupsExplorerContentProps) => { +export const GroupsExplorerContent = (props: { title?: string }) => { const classes = useStyles(); return ( - + Explore your groups. - ); diff --git a/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.tsx b/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.tsx index db07bd0665..5404c67393 100644 --- a/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.tsx +++ b/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.tsx @@ -18,7 +18,6 @@ import { exploreToolsConfigRef } from '@backstage/plugin-explore-react'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { ToolCard } from '../ToolCard'; - import { Content, ContentHeader, @@ -28,7 +27,6 @@ import { SupportButton, WarningPanel, } from '@backstage/core-components'; - import { useApi } from '@backstage/core-plugin-api'; const Body = () => { @@ -68,13 +66,9 @@ const Body = () => { ); }; -type ToolExplorerContentProps = { - title?: string; -}; - -export const ToolExplorerContent = ({ title }: ToolExplorerContentProps) => ( +export const ToolExplorerContent = (props: { title?: string }) => ( - + Discover the tools in your ecosystem. diff --git a/plugins/fossa/api-report.md b/plugins/fossa/api-report.md index ca9610b992..45f0746ac3 100644 --- a/plugins/fossa/api-report.md +++ b/plugins/fossa/api-report.md @@ -9,22 +9,14 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { InfoCardVariants } from '@backstage/core-components'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "EntityFossaCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityFossaCard: ({ - variant, -}: { +export const EntityFossaCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "FossaPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const FossaPage: ({ entitiesFilter }: FossaPageProps) => JSX.Element; +export const FossaPage: (props: FossaPageProps) => JSX.Element; -// Warning: (ae-missing-release-tag) "FossaPageProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type FossaPageProps = { entitiesFilter?: @@ -33,8 +25,6 @@ export type FossaPageProps = { | undefined; }; -// Warning: (ae-missing-release-tag) "fossaPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const fossaPlugin: BackstagePlugin< { diff --git a/plugins/fossa/src/components/FossaCard/FossaCard.tsx b/plugins/fossa/src/components/FossaCard/FossaCard.tsx index bbd5594fbc..31ff84e107 100644 --- a/plugins/fossa/src/components/FossaCard/FossaCard.tsx +++ b/plugins/fossa/src/components/FossaCard/FossaCard.tsx @@ -100,7 +100,9 @@ const Card = ({ ); }; -export const FossaCard = ({ variant }: { variant?: InfoCardVariants }) => { + +export const FossaCard = (props: { variant?: InfoCardVariants }) => { + const { variant } = props; const { entity } = useEntity(); const fossaApi = useApi(fossaApiRef); diff --git a/plugins/fossa/src/components/FossaPage/FossaPage.tsx b/plugins/fossa/src/components/FossaPage/FossaPage.tsx index 731852d4a7..faff862d0f 100644 --- a/plugins/fossa/src/components/FossaPage/FossaPage.tsx +++ b/plugins/fossa/src/components/FossaPage/FossaPage.tsx @@ -167,6 +167,7 @@ const filters: TableFilter[] = [ { column: 'Branch', type: 'select' }, ]; +/** @public */ export type FossaPageProps = { entitiesFilter?: | Record[] @@ -174,9 +175,8 @@ export type FossaPageProps = { | undefined; }; -export const FossaPage = ({ - entitiesFilter = { kind: 'Component' }, -}: FossaPageProps) => { +export const FossaPage = (props: FossaPageProps) => { + const { entitiesFilter = { kind: 'Component' } } = props; const catalogApi = useApi(catalogApiRef); const fossaApi = useApi(fossaApiRef); const [filter, setFilter] = useState(entitiesFilter); diff --git a/plugins/fossa/src/extensions.tsx b/plugins/fossa/src/extensions.tsx index 97bea6a4cf..d26057d9cc 100644 --- a/plugins/fossa/src/extensions.tsx +++ b/plugins/fossa/src/extensions.tsx @@ -21,6 +21,7 @@ import { createRoutableExtension, } from '@backstage/core-plugin-api'; +/** @public */ export const EntityFossaCard = fossaPlugin.provide( createComponentExtension({ name: 'EntityFossaCard', @@ -30,6 +31,7 @@ export const EntityFossaCard = fossaPlugin.provide( }), ); +/** @public */ export const FossaPage = fossaPlugin.provide( createRoutableExtension({ name: 'FossaPage', diff --git a/plugins/fossa/src/plugin.ts b/plugins/fossa/src/plugin.ts index 954ecedc81..bcc8c0f8e6 100644 --- a/plugins/fossa/src/plugin.ts +++ b/plugins/fossa/src/plugin.ts @@ -24,6 +24,7 @@ import { identityApiRef, } from '@backstage/core-plugin-api'; +/** @public */ export const fossaPlugin = createPlugin({ id: 'fossa', apis: [ diff --git a/plugins/git-release-manager/api-report.md b/plugins/git-release-manager/api-report.md index 24207de991..d34b6c07fb 100644 --- a/plugins/git-release-manager/api-report.md +++ b/plugins/git-release-manager/api-report.md @@ -90,7 +90,6 @@ const DISABLE_CACHE: { const Divider: () => JSX.Element; // Warning: (ae-forgotten-export) The symbol "SemverTagParts" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "getBumpedSemverTagParts" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public function getBumpedSemverTagParts( @@ -105,14 +104,8 @@ function getBumpedSemverTagParts( }; }; -// Warning: (ae-missing-release-tag) "getBumpedTag" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public -function getBumpedTag({ - project, - tag, - bumpLevel, -}: { +function getBumpedTag(options: { project: Project; tag: string; bumpLevel: keyof typeof SEMVER_PARTS; @@ -167,10 +160,8 @@ function getSemverTagParts(tag: string): // @public (undocumented) function getShortCommitHash(hash: string): string; -// Warning: (ae-missing-release-tag) "getTagParts" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public -function getTagParts({ project, tag }: { project: Project; tag: string }): +function getTagParts(options: { project: Project; tag: string }): | { error: AlertError; tagParts?: undefined; @@ -207,14 +198,8 @@ export const gitReleaseManagerPlugin: BackstagePlugin< {} >; -// Warning: (ae-missing-release-tag) "InfoCardPlus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -const InfoCardPlus: ({ - children, -}: { - children?: React_2.ReactNode; -}) => JSX.Element; +const InfoCardPlus: (props: { children?: React_2.ReactNode }) => JSX.Element; // Warning: (ae-missing-release-tag) "internals" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -625,16 +610,8 @@ declare namespace testIds { export { TEST_IDS }; } -// Warning: (ae-missing-release-tag) "validateTagName" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -const validateTagName: ({ - project, - tagName, -}: { - project: Project; - tagName?: string | undefined; -}) => +const validateTagName: (options: { project: Project; tagName?: string }) => | { tagNameError: null; } @@ -653,9 +630,9 @@ const VERSIONING_STRATEGIES: { // Warnings were encountered during analysis: // // src/components/ResponseStepDialog/LinearProgressWithLabel.d.ts:5:5 - (ae-forgotten-export) The symbol "ResponseStep" needs to be exported by the entry point index.d.ts -// src/helpers/getBumpedTag.d.ts:14:5 - (ae-forgotten-export) The symbol "Project" needs to be exported by the entry point index.d.ts -// src/helpers/getBumpedTag.d.ts:19:5 - (ae-forgotten-export) The symbol "CalverTagParts" needs to be exported by the entry point index.d.ts -// src/helpers/getBumpedTag.d.ts:31:5 - (ae-forgotten-export) The symbol "AlertError" needs to be exported by the entry point index.d.ts +// src/helpers/getBumpedTag.d.ts:16:5 - (ae-forgotten-export) The symbol "Project" needs to be exported by the entry point index.d.ts +// src/helpers/getBumpedTag.d.ts:21:5 - (ae-forgotten-export) The symbol "CalverTagParts" needs to be exported by the entry point index.d.ts +// src/helpers/getBumpedTag.d.ts:33:5 - (ae-forgotten-export) The symbol "AlertError" needs to be exported by the entry point index.d.ts // src/index.d.ts:9:5 - (ae-forgotten-export) The symbol "components" needs to be exported by the entry point index.d.ts // src/index.d.ts:10:5 - (ae-forgotten-export) The symbol "constants" needs to be exported by the entry point index.d.ts // src/index.d.ts:11:5 - (ae-forgotten-export) The symbol "helpers" needs to be exported by the entry point index.d.ts diff --git a/plugins/git-release-manager/src/components/InfoCardPlus.tsx b/plugins/git-release-manager/src/components/InfoCardPlus.tsx index bd0b79ba37..cd682adde1 100644 --- a/plugins/git-release-manager/src/components/InfoCardPlus.tsx +++ b/plugins/git-release-manager/src/components/InfoCardPlus.tsx @@ -17,7 +17,6 @@ import React from 'react'; import { makeStyles } from '@material-ui/core'; import { TEST_IDS } from '../test-helpers/test-ids'; - import { InfoCard } from '@backstage/core-components'; const useStyles = makeStyles(() => ({ @@ -26,7 +25,8 @@ const useStyles = makeStyles(() => ({ }, })); -export const InfoCardPlus = ({ children }: { children?: React.ReactNode }) => { +/** @public */ +export const InfoCardPlus = (props: { children?: React.ReactNode }) => { const classes = useStyles(); return ( @@ -34,7 +34,7 @@ export const InfoCardPlus = ({ children }: { children?: React.ReactNode }) => { style={{ position: 'relative' }} data-testid={TEST_IDS.info.infoFeaturePlus} > - {children} + {props.children} ); }; diff --git a/plugins/git-release-manager/src/helpers/getBumpedTag.ts b/plugins/git-release-manager/src/helpers/getBumpedTag.ts index dbfb00818e..5183947a1c 100644 --- a/plugins/git-release-manager/src/helpers/getBumpedTag.ts +++ b/plugins/git-release-manager/src/helpers/getBumpedTag.ts @@ -28,16 +28,15 @@ import { SemverTagParts } from './tagParts/getSemverTagParts'; * * For semantic versioning this means either a minor or a patch bump * depending on the value of `bumpLevel` + * + * @public */ -export function getBumpedTag({ - project, - tag, - bumpLevel, -}: { +export function getBumpedTag(options: { project: Project; tag: string; bumpLevel: keyof typeof SEMVER_PARTS; }) { + const { project, tag, bumpLevel } = options; const tagParts = getTagParts({ project, tag }); if (tagParts.error !== undefined) { @@ -53,6 +52,7 @@ export function getBumpedTag({ return getBumpedSemverTag(tagParts.tagParts, bumpLevel); } +/** @public */ function getPatchedCalverTag(tagParts: CalverTagParts) { const bumpedTagParts: CalverTagParts = { ...tagParts, @@ -67,6 +67,7 @@ function getPatchedCalverTag(tagParts: CalverTagParts) { }; } +/** @public */ function getBumpedSemverTag( tagParts: SemverTagParts, semverBumpLevel: keyof typeof SEMVER_PARTS, @@ -85,6 +86,8 @@ function getBumpedSemverTag( /** * Calculates the next semantic version, taking into account * whether or not it's a minor or patch + * + * @public */ export function getBumpedSemverTagParts( tagParts: SemverTagParts, diff --git a/plugins/git-release-manager/src/helpers/tagParts/getTagParts.ts b/plugins/git-release-manager/src/helpers/tagParts/getTagParts.ts index 750e4e23c5..ba8412b2b4 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/getTagParts.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/getTagParts.ts @@ -21,17 +21,13 @@ import { Project } from '../../contexts/ProjectContext'; /** * Tag parts are the individual parts of a version, e.g. .. * are the parts of a semantic version + * + * @public */ -export function getTagParts({ - project, - tag, -}: { - project: Project; - tag: string; -}) { - if (project.versioningStrategy === 'calver') { - return getCalverTagParts(tag); +export function getTagParts(options: { project: Project; tag: string }) { + if (options.project.versioningStrategy === 'calver') { + return getCalverTagParts(options.tag); } - return getSemverTagParts(tag); + return getSemverTagParts(options.tag); } diff --git a/plugins/git-release-manager/src/helpers/tagParts/validateTagName.ts b/plugins/git-release-manager/src/helpers/tagParts/validateTagName.ts index b9c0fb74ff..4e35cb0ca4 100644 --- a/plugins/git-release-manager/src/helpers/tagParts/validateTagName.ts +++ b/plugins/git-release-manager/src/helpers/tagParts/validateTagName.ts @@ -18,13 +18,13 @@ import { getCalverTagParts } from './getCalverTagParts'; import { getSemverTagParts } from './getSemverTagParts'; import { Project } from '../../contexts/ProjectContext'; -export const validateTagName = ({ - project, - tagName, -}: { +/** @public */ +export const validateTagName = (options: { project: Project; tagName?: string; }) => { + const { project, tagName } = options; + if (!tagName) { return { tagNameError: null, @@ -33,7 +33,6 @@ export const validateTagName = ({ if (project.versioningStrategy === 'calver') { const { error } = getCalverTagParts(tagName); - return { tagNameError: error, }; diff --git a/plugins/github-actions/api-report.md b/plugins/github-actions/api-report.md index 862d20d608..8cf70eabcc 100644 --- a/plugins/github-actions/api-report.md +++ b/plugins/github-actions/api-report.md @@ -28,35 +28,22 @@ export enum BuildStatus { 'success' = 0, } -// Warning: (ae-missing-release-tag) "EntityGithubActionsContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityGithubActionsContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityLatestGithubActionRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityLatestGithubActionRunCard: ({ - branch, - variant, -}: { +export const EntityLatestGithubActionRunCard: (props: { branch: string; variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityLatestGithubActionsForBranchCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityLatestGithubActionsForBranchCard: ({ - branch, - variant, -}: { +export const EntityLatestGithubActionsForBranchCard: (props: { branch: string; variant?: InfoCardVariants | undefined; }) => JSX.Element; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "EntityRecentGithubActionsRunsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const EntityRecentGithubActionsRunsCard: ({ @@ -191,8 +178,6 @@ export class GithubActionsClient implements GithubActionsApi { }): Promise; } -// Warning: (ae-missing-release-tag) "githubActionsPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const githubActionsPlugin: BackstagePlugin< { @@ -233,22 +218,21 @@ export type Jobs = { jobs: Job[]; }; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "LatestWorkflowRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const LatestWorkflowRunCard: ({ - branch, - variant, -}: Props_2) => JSX.Element; +export const LatestWorkflowRunCard: (props: { + branch: string; + variant?: InfoCardVariants; +}) => JSX.Element; // Warning: (ae-missing-release-tag) "LatestWorkflowsForBranchCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const LatestWorkflowsForBranchCard: ({ - branch, - variant, -}: Props_2) => JSX.Element; +export const LatestWorkflowsForBranchCard: (props: { + branch: string; + variant?: InfoCardVariants; +}) => JSX.Element; // Warning: (ae-missing-release-tag) "RecentWorkflowRunsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/plugins/github-actions/src/components/Cards/Cards.tsx b/plugins/github-actions/src/components/Cards/Cards.tsx index 61a5146bee..5e53096ba4 100644 --- a/plugins/github-actions/src/components/Cards/Cards.tsx +++ b/plugins/github-actions/src/components/Cards/Cards.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { readGitHubIntegrationConfigs } from '@backstage/integration'; import { useEntity } from '@backstage/plugin-catalog-react'; import { @@ -27,7 +28,6 @@ import { GITHUB_ACTIONS_ANNOTATION } from '../getProjectNameFromEntity'; import { useWorkflowRuns, WorkflowRun } from '../useWorkflowRuns'; import { WorkflowRunsTable } from '../WorkflowRunsTable'; import { WorkflowRunStatus } from '../WorkflowRunStatus'; - import { configApiRef, errorApiRef, useApi } from '@backstage/core-plugin-api'; import { InfoCard, @@ -43,20 +43,18 @@ const useStyles = makeStyles({ }, }); -const WidgetContent = ({ - error, - loading, - lastRun, - branch, -}: { +const WidgetContent = (props: { error?: Error; loading?: boolean; lastRun: WorkflowRun; branch: string; }) => { + const { error, loading, lastRun, branch } = props; const classes = useStyles(); + if (error) return Couldn't fetch latest {branch} run; if (loading) return ; + return ( { +export const LatestWorkflowRunCard = (props: { + branch: string; + variant?: InfoCardVariants; +}) => { + const { branch = 'master', variant } = props; const { entity } = useEntity(); const config = useApi(configApiRef); const errorApi = useApi(errorApiRef); @@ -120,15 +118,11 @@ export const LatestWorkflowRunCard = ({ ); }; -type Props = { +export const LatestWorkflowsForBranchCard = (props: { branch: string; variant?: InfoCardVariants; -}; - -export const LatestWorkflowsForBranchCard = ({ - branch = 'master', - variant, -}: Props) => { +}) => { + const { branch = 'master', variant } = props; const { entity } = useEntity(); return ( diff --git a/plugins/github-actions/src/plugin.ts b/plugins/github-actions/src/plugin.ts index d8db5e16d0..26cf246fb9 100644 --- a/plugins/github-actions/src/plugin.ts +++ b/plugins/github-actions/src/plugin.ts @@ -25,6 +25,7 @@ import { createComponentExtension, } from '@backstage/core-plugin-api'; +/** @public */ export const githubActionsPlugin = createPlugin({ id: 'github-actions', apis: [ @@ -40,6 +41,7 @@ export const githubActionsPlugin = createPlugin({ }, }); +/** @public */ export const EntityGithubActionsContent = githubActionsPlugin.provide( createRoutableExtension({ name: 'EntityGithubActionsContent', @@ -48,6 +50,7 @@ export const EntityGithubActionsContent = githubActionsPlugin.provide( }), ); +/** @public */ export const EntityLatestGithubActionRunCard = githubActionsPlugin.provide( createComponentExtension({ name: 'EntityLatestGithubActionRunCard', @@ -58,6 +61,7 @@ export const EntityLatestGithubActionRunCard = githubActionsPlugin.provide( }), ); +/** @public */ export const EntityLatestGithubActionsForBranchCard = githubActionsPlugin.provide( createComponentExtension({ @@ -71,6 +75,7 @@ export const EntityLatestGithubActionsForBranchCard = }), ); +/** @public */ export const EntityRecentGithubActionsRunsCard = githubActionsPlugin.provide( createComponentExtension({ name: 'EntityRecentGithubActionsRunsCard', diff --git a/plugins/jenkins/api-report.md b/plugins/jenkins/api-report.md index 33072ecf49..59e3dc636e 100644 --- a/plugins/jenkins/api-report.md +++ b/plugins/jenkins/api-report.md @@ -14,24 +14,15 @@ import { IdentityApi } from '@backstage/core-plugin-api'; import { InfoCardVariants } from '@backstage/core-components'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "EntityJenkinsContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityJenkinsContent: (_props: {}) => JSX.Element; +export const EntityJenkinsContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityLatestJenkinsRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityLatestJenkinsRunCard: ({ - branch, - variant, -}: { +export const EntityLatestJenkinsRunCard: (props: { branch: string; variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "isJenkinsAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const isJenkinsAvailable: (entity: Entity) => boolean; export { isJenkinsAvailable }; @@ -101,8 +92,6 @@ export class JenkinsClient implements JenkinsApi { }): Promise; } -// Warning: (ae-missing-release-tag) "jenkinsPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const jenkinsPlugin: BackstagePlugin< { @@ -117,12 +106,9 @@ export { jenkinsPlugin as plugin }; // Warning: (ae-missing-release-tag) "LatestRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const LatestRunCard: ({ - branch, - variant, -}: { +export const LatestRunCard: (props: { branch: string; - variant?: InfoCardVariants | undefined; + variant?: InfoCardVariants; }) => JSX.Element; // Warning: (ae-missing-release-tag) "LEGACY_JENKINS_ANNOTATION" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -130,9 +116,8 @@ export const LatestRunCard: ({ // @public (undocumented) export const LEGACY_JENKINS_ANNOTATION = 'jenkins.io/github-folder'; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const Router: (_props: Props) => JSX.Element; +export const Router: () => JSX.Element; ``` diff --git a/plugins/jenkins/src/components/Cards/Cards.tsx b/plugins/jenkins/src/components/Cards/Cards.tsx index cb84964124..44bbc06f65 100644 --- a/plugins/jenkins/src/components/Cards/Cards.tsx +++ b/plugins/jenkins/src/components/Cards/Cards.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { LinearProgress, makeStyles, Theme } from '@material-ui/core'; import ExternalLinkIcon from '@material-ui/icons/Launch'; import { DateTime, Duration } from 'luxon'; @@ -77,13 +78,12 @@ const WidgetContent = ({ ); }; -const JenkinsApiErrorPanel = ({ - message, - errorType, -}: { +const JenkinsApiErrorPanel = (props: { message: string; errorType: ErrorType; }) => { + const { message, errorType } = props; + let title = undefined; if (errorType === ErrorType.CONNECTION_ERROR) { title = "Can't connect to Jenkins"; @@ -94,13 +94,11 @@ const JenkinsApiErrorPanel = ({ return ; }; -export const LatestRunCard = ({ - branch = 'master', - variant, -}: { +export const LatestRunCard = (props: { branch: string; variant?: InfoCardVariants; }) => { + const { branch = 'master', variant } = props; const [{ projects, loading, error }] = useBuilds({ branch }); const latestRun = projects?.[0]; return ( diff --git a/plugins/jenkins/src/components/Router.tsx b/plugins/jenkins/src/components/Router.tsx index b3561be2b0..ef86203e9e 100644 --- a/plugins/jenkins/src/components/Router.tsx +++ b/plugins/jenkins/src/components/Router.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { Entity } from '@backstage/catalog-model'; import { MissingAnnotationEmptyState } from '@backstage/core-components'; import { useEntity } from '@backstage/plugin-catalog-react'; @@ -23,13 +24,12 @@ import { buildRouteRef } from '../plugin'; import { CITable } from './BuildsPage/lib/CITable'; import { DetailedViewPage } from './BuildWithStepsPage/'; +/** @public */ export const isJenkinsAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[JENKINS_ANNOTATION]) || Boolean(entity.metadata.annotations?.[LEGACY_JENKINS_ANNOTATION]); -type Props = {}; - -export const Router = (_props: Props) => { +export const Router = () => { const { entity } = useEntity(); if (!isJenkinsAvailable(entity)) { diff --git a/plugins/jenkins/src/plugin.ts b/plugins/jenkins/src/plugin.ts index c32c9b50d1..7dbb6bfde1 100644 --- a/plugins/jenkins/src/plugin.ts +++ b/plugins/jenkins/src/plugin.ts @@ -26,16 +26,19 @@ import { } from '@backstage/core-plugin-api'; import { JenkinsClient, jenkinsApiRef } from './api'; +/** @public */ export const rootRouteRef = createRouteRef({ id: 'jenkins', }); +/** @public */ export const buildRouteRef = createSubRouteRef({ id: 'jenkins/builds', path: '/builds/:jobFullName/:buildNumber', parent: rootRouteRef, }); +/** @public */ export const jenkinsPlugin = createPlugin({ id: 'jenkins', apis: [ @@ -51,6 +54,7 @@ export const jenkinsPlugin = createPlugin({ }, }); +/** @public */ export const EntityJenkinsContent = jenkinsPlugin.provide( createRoutableExtension({ name: 'EntityJenkinsContent', @@ -58,6 +62,8 @@ export const EntityJenkinsContent = jenkinsPlugin.provide( mountPoint: rootRouteRef, }), ); + +/** @public */ export const EntityLatestJenkinsRunCard = jenkinsPlugin.provide( createComponentExtension({ name: 'EntityLatestJenkinsRunCard', diff --git a/plugins/newrelic-dashboard/api-report.md b/plugins/newrelic-dashboard/api-report.md index d74d69cad6..223a327d20 100644 --- a/plugins/newrelic-dashboard/api-report.md +++ b/plugins/newrelic-dashboard/api-report.md @@ -10,23 +10,15 @@ import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; // @public -export const DashboardSnapshotComponent: ({ - guid, - name, - permalink, -}: { +export const DashboardSnapshotComponent: (props: { guid: string; name: string; permalink: string; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityNewRelicDashboardCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityNewRelicDashboardCard: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityNewRelicDashboardContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const EntityNewRelicDashboardContent: () => JSX.Element; @@ -35,8 +27,6 @@ export const EntityNewRelicDashboardContent: () => JSX.Element; // @public (undocumented) export const isNewRelicDashboardAvailable: (entity: Entity) => boolean; -// Warning: (ae-missing-release-tag) "newRelicDashboardPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const newRelicDashboardPlugin: BackstagePlugin< { diff --git a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshot.tsx b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshot.tsx index f501fd77bf..dcbde9279a 100644 --- a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshot.tsx +++ b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshot.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import React from 'react'; import { Box, Grid, MenuItem, Select } from '@material-ui/core'; import { useApi, storageApiRef } from '@backstage/core-plugin-api'; @@ -27,13 +28,15 @@ import { newRelicDashboardApiRef } from '../../../api'; import { DashboardSnapshotSummary } from '../../../api/NewRelicDashboardApi'; import useObservable from 'react-use/lib/useObservable'; -type Props = { +/** + * @public + */ +export const DashboardSnapshot = (props: { guid: string; name: string; permalink: string; -}; - -export const DashboardSnapshot = ({ guid, name, permalink }: Props) => { +}) => { + const { guid, name, permalink } = props; const newRelicDashboardAPI = useApi(newRelicDashboardApiRef); const storageApi = useApi(storageApiRef).forBucket('newrelic-dashboard'); const setStorageValue = (value: number) => { diff --git a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshotList.tsx b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshotList.tsx index 85a73b0a4b..594a5fd53d 100644 --- a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshotList.tsx +++ b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/DashboardSnapshotList.tsx @@ -44,15 +44,14 @@ function TabPanel(props: TabPanelProps) { ); } + function a11yProps(index: number) { return { id: `simple-tab-${index}`, 'aria-controls': `simple-tabpanel-${index}`, }; } -type Props = { - guid: string; -}; + const useStyles = makeStyles( theme => ({ tabsWrapper: { @@ -79,7 +78,9 @@ const useStyles = makeStyles( }), { name: 'DashboardHeaderTabs' }, ); -export const DashboardSnapshotList = ({ guid }: Props) => { + +export const DashboardSnapshotList = (props: { guid: string }) => { + const { guid } = props; const styles = useStyles(); const newRelicDashboardAPI = useApi(newRelicDashboardApiRef); const { value, loading, error } = useAsync(async (): Promise< diff --git a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/index.ts b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/index.ts index 6b17582515..6d6ba5666b 100644 --- a/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/index.ts +++ b/plugins/newrelic-dashboard/src/components/NewRelicDashboard/DashboardSnapshotList/index.ts @@ -13,5 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export { DashboardSnapshot } from './DashboardSnapshot'; export { DashboardSnapshotList } from './DashboardSnapshotList'; diff --git a/plugins/newrelic-dashboard/src/plugin.ts b/plugins/newrelic-dashboard/src/plugin.ts index d4ed11573f..51be731ca7 100644 --- a/plugins/newrelic-dashboard/src/plugin.ts +++ b/plugins/newrelic-dashboard/src/plugin.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createPlugin, configApiRef, @@ -24,6 +25,7 @@ import { import { newRelicDashboardApiRef, NewRelicDashboardClient } from './api'; import { rootRouteRef } from './routes'; +/** @public */ export const newRelicDashboardPlugin = createPlugin({ id: 'new-relic-dashboard', routes: { @@ -46,6 +48,8 @@ export const newRelicDashboardPlugin = createPlugin({ }), ], }); + +/** @public */ export const EntityNewRelicDashboardContent = newRelicDashboardPlugin.provide( createComponentExtension({ name: 'EntityNewRelicDashboardPage', @@ -55,6 +59,7 @@ export const EntityNewRelicDashboardContent = newRelicDashboardPlugin.provide( }), ); +/** @public */ export const EntityNewRelicDashboardCard = newRelicDashboardPlugin.provide( createComponentExtension({ name: 'EntityNewRelicDashboardListComponent', @@ -66,6 +71,7 @@ export const EntityNewRelicDashboardCard = newRelicDashboardPlugin.provide( }, }), ); + /** * Render dashboard snapshots from Newrelic in backstage. Use dashboards which have the tag `isDashboardPage: true` * diff --git a/plugins/pagerduty/api-report.md b/plugins/pagerduty/api-report.md index c81da24454..8bd8df6f7c 100644 --- a/plugins/pagerduty/api-report.md +++ b/plugins/pagerduty/api-report.md @@ -82,7 +82,7 @@ export class PagerDutyClient implements PagerDutyApi { // (undocumented) static fromConfig( configApi: ConfigApi, - { discoveryApi, fetchApi }: PagerDutyClientApiDependencies, + dependencies: PagerDutyClientApiDependencies, ): PagerDutyClient; // (undocumented) getChangeEventsByServiceId( diff --git a/plugins/pagerduty/src/api/client.ts b/plugins/pagerduty/src/api/client.ts index 69a702f66d..edc87d4b4a 100644 --- a/plugins/pagerduty/src/api/client.ts +++ b/plugins/pagerduty/src/api/client.ts @@ -43,8 +43,10 @@ const commonGetServiceParams = export class PagerDutyClient implements PagerDutyApi { static fromConfig( configApi: ConfigApi, - { discoveryApi, fetchApi }: PagerDutyClientApiDependencies, + dependencies: PagerDutyClientApiDependencies, ) { + const { discoveryApi, fetchApi } = dependencies; + const eventsBaseUrl: string = configApi.getOptionalString('pagerDuty.eventsBaseUrl') ?? 'https://events.pagerduty.com/v2'; @@ -55,6 +57,7 @@ export class PagerDutyClient implements PagerDutyApi { fetchApi, }); } + constructor(private readonly config: PagerDutyClientApiConfig) {} async getServiceByEntity(entity: Entity): Promise { diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 24ff8e210d..222c18d655 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -248,11 +248,7 @@ export interface ScaffolderApi { ): Promise; listActions(): Promise; // (undocumented) - listTasks?({ - filterByOwnership, - }: { - filterByOwnership: 'owned' | 'all'; - }): Promise<{ + listTasks?(options: { filterByOwnership: 'owned' | 'all' }): Promise<{ tasks: ScaffolderTask[]; }>; scaffold( diff --git a/plugins/scaffolder/src/types.ts b/plugins/scaffolder/src/types.ts index d814119398..acb0f0e114 100644 --- a/plugins/scaffolder/src/types.ts +++ b/plugins/scaffolder/src/types.ts @@ -194,9 +194,7 @@ export interface ScaffolderApi { getTask(taskId: string): Promise; - listTasks?({ - filterByOwnership, - }: { + listTasks?(options: { filterByOwnership: 'owned' | 'all'; }): Promise<{ tasks: ScaffolderTask[] }>; diff --git a/plugins/search-backend-node/api-report.md b/plugins/search-backend-node/api-report.md index 64957f6366..62a4eabc26 100644 --- a/plugins/search-backend-node/api-report.md +++ b/plugins/search-backend-node/api-report.md @@ -56,9 +56,9 @@ export abstract class DecoratorBase extends Transform { // @public export class IndexBuilder { - constructor({ logger, searchEngine }: IndexBuilderOptions); - addCollator({ factory, schedule }: RegisterCollatorParameters): void; - addDecorator({ factory }: RegisterDecoratorParameters): void; + constructor(options: IndexBuilderOptions); + addCollator(options: RegisterCollatorParameters): void; + addDecorator(options: RegisterDecoratorParameters): void; build(): Promise<{ scheduler: Scheduler; }>; @@ -77,7 +77,7 @@ export type LunrQueryTranslator = (query: SearchQuery) => ConcreteLunrQuery; // @public export class LunrSearchEngine implements SearchEngine { - constructor({ logger }: { logger: Logger }); + constructor(options: { logger: Logger }); // (undocumented) protected docStore: Record; // (undocumented) @@ -157,8 +157,8 @@ export interface RegisterDecoratorParameters { // @public export class Scheduler { - constructor({ logger }: { logger: Logger }); - addToSchedule({ id, task, scheduledRunner }: ScheduleTaskParameters): void; + constructor(options: { logger: Logger }); + addToSchedule(options: ScheduleTaskParameters): void; start(): void; stop(): void; } diff --git a/plugins/search-backend-node/src/IndexBuilder.ts b/plugins/search-backend-node/src/IndexBuilder.ts index 3e1dae1c2f..0ba9ba0059 100644 --- a/plugins/search-backend-node/src/IndexBuilder.ts +++ b/plugins/search-backend-node/src/IndexBuilder.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { DocumentDecoratorFactory, DocumentTypeInfo, @@ -38,12 +39,12 @@ export class IndexBuilder { private searchEngine: SearchEngine; private logger: Logger; - constructor({ logger, searchEngine }: IndexBuilderOptions) { + constructor(options: IndexBuilderOptions) { this.collators = {}; this.decorators = {}; this.documentTypes = {}; - this.logger = logger; - this.searchEngine = searchEngine; + this.logger = options.logger; + this.searchEngine = options.searchEngine; } /** @@ -64,7 +65,9 @@ export class IndexBuilder { * Makes the index builder aware of a collator that should be executed at the * given refresh interval. */ - addCollator({ factory, schedule }: RegisterCollatorParameters): void { + addCollator(options: RegisterCollatorParameters): void { + const { factory, schedule } = options; + this.logger.info( `Added ${factory.constructor.name} collator factory for type ${factory.type}`, ); @@ -82,7 +85,8 @@ export class IndexBuilder { * the decorator, it will be applied to documents from all known collators, * otherwise it will only be applied to documents of the given types. */ - addDecorator({ factory }: RegisterDecoratorParameters): void { + addDecorator(options: RegisterDecoratorParameters): void { + const { factory } = options; const types = factory.types || ['*']; this.logger.info( `Added decorator ${factory.constructor.name} to types ${types.join( diff --git a/plugins/search-backend-node/src/Scheduler.ts b/plugins/search-backend-node/src/Scheduler.ts index 404823c53a..872a410808 100644 --- a/plugins/search-backend-node/src/Scheduler.ts +++ b/plugins/search-backend-node/src/Scheduler.ts @@ -43,8 +43,8 @@ export class Scheduler { private abortController: AbortController; private isRunning: boolean; - constructor({ logger }: { logger: Logger }) { - this.logger = logger; + constructor(options: { logger: Logger }) { + this.logger = options.logger; this.schedule = {}; this.abortController = new AbortController(); this.isRunning = false; @@ -55,7 +55,9 @@ export class Scheduler { * When running the tasks, the scheduler waits at least for the time specified * in the interval once the task was completed, before running it again. */ - addToSchedule({ id, task, scheduledRunner }: ScheduleTaskParameters) { + addToSchedule(options: ScheduleTaskParameters) { + const { id, task, scheduledRunner } = options; + if (this.isRunning) { throw new Error( 'Cannot add task to schedule that has already been started.', diff --git a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts index ec8550d721..4d6779950f 100644 --- a/plugins/search-backend-node/src/engines/LunrSearchEngine.ts +++ b/plugins/search-backend-node/src/engines/LunrSearchEngine.ts @@ -43,7 +43,7 @@ type LunrResultEnvelope = { }; /** - * Translator repsonsible for translating search term and filters to a query that the Lunr Search Engine understands. + * Translator responsible for translating search term and filters to a query that the Lunr Search Engine understands. * @public */ export type LunrQueryTranslator = (query: SearchQuery) => ConcreteLunrQuery; @@ -59,8 +59,8 @@ export class LunrSearchEngine implements SearchEngine { protected highlightPreTag: string; protected highlightPostTag: string; - constructor({ logger }: { logger: Logger }) { - this.logger = logger; + constructor(options: { logger: Logger }) { + this.logger = options.logger; this.docStore = {}; const uuidTag = uuid(); this.highlightPreTag = `<${uuidTag}>`; diff --git a/plugins/sentry/api-report.md b/plugins/sentry/api-report.md index e752eb2110..bd77c46aa6 100644 --- a/plugins/sentry/api-report.md +++ b/plugins/sentry/api-report.md @@ -42,8 +42,6 @@ export class MockSentryApi implements SentryApi { fetchIssues(): Promise; } -// Warning: (ae-missing-release-tag) "ProductionSentryApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class ProductionSentryApi implements SentryApi { constructor( @@ -61,13 +59,9 @@ export class ProductionSentryApi implements SentryApi { ): Promise; } -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const Router: ({ entity }: { entity: Entity }) => JSX.Element; +export const Router: (props: { entity: Entity }) => JSX.Element; -// Warning: (ae-missing-release-tag) "SentryApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface SentryApi { // (undocumented) @@ -80,8 +74,6 @@ export interface SentryApi { ): Promise; } -// Warning: (ae-missing-release-tag) "sentryApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const sentryApiRef: ApiRef; @@ -121,25 +113,15 @@ export type SentryIssue = { statusDetails: any; }; -// Warning: (ae-missing-release-tag) "SentryIssuesWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const SentryIssuesWidget: ({ - entity, - statsFor, - tableOptions, - variant, - query, -}: { +export const SentryIssuesWidget: (props: { entity: Entity; statsFor: '24h' | '14d' | ''; tableOptions: Options; - variant?: InfoCardVariants | undefined; - query?: string | undefined; + variant?: InfoCardVariants; + query?: string; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "sentryPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const sentryPlugin: BackstagePlugin< { diff --git a/plugins/sentry/src/api/production-api.ts b/plugins/sentry/src/api/production-api.ts index da77f8a47d..7fe4afdf98 100644 --- a/plugins/sentry/src/api/production-api.ts +++ b/plugins/sentry/src/api/production-api.ts @@ -20,6 +20,7 @@ import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { getProjectSlug, getOrganization } from './annotations'; +/** @public */ export class ProductionSentryApi implements SentryApi { constructor( private readonly discoveryApi: DiscoveryApi, diff --git a/plugins/sentry/src/api/sentry-api.ts b/plugins/sentry/src/api/sentry-api.ts index 507803804d..73f1301cad 100644 --- a/plugins/sentry/src/api/sentry-api.ts +++ b/plugins/sentry/src/api/sentry-api.ts @@ -18,10 +18,12 @@ import { SentryIssue } from './sentry-issue'; import { createApiRef } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; +/** @public */ export const sentryApiRef = createApiRef({ id: 'plugin.sentry.service', }); +/** @public */ export interface SentryApi { fetchIssues( entity: Entity, diff --git a/plugins/sentry/src/components/Router.tsx b/plugins/sentry/src/components/Router.tsx index 2a3172824a..e683a6c7fa 100644 --- a/plugins/sentry/src/components/Router.tsx +++ b/plugins/sentry/src/components/Router.tsx @@ -19,14 +19,15 @@ import { Entity } from '@backstage/catalog-model'; import { Route, Routes } from 'react-router'; import { SentryIssuesWidget } from './SentryIssuesWidget'; -export const Router = ({ entity }: { entity: Entity }) => { +/** @public */ +export const Router = (props: { entity: Entity }) => { return ( ; variant?: InfoCardVariants; query?: string; }) => { + const { + entity, + statsFor, + tableOptions, + variant = 'gridItem', + query = '', + } = props; const errorApi = useApi(errorApiRef); const sentryApi = useApi(sentryApiRef); diff --git a/plugins/sentry/src/plugin.ts b/plugins/sentry/src/plugin.ts index 981745c8fe..51957b87a3 100644 --- a/plugins/sentry/src/plugin.ts +++ b/plugins/sentry/src/plugin.ts @@ -24,10 +24,12 @@ import { identityApiRef, } from '@backstage/core-plugin-api'; +/** @public */ export const rootRouteRef = createRouteRef({ id: 'sentry', }); +/** @public */ export const sentryPlugin = createPlugin({ id: 'sentry', apis: [ diff --git a/plugins/sonarqube/api-report.md b/plugins/sonarqube/api-report.md index 06e4b8578e..e0a51479a4 100644 --- a/plugins/sonarqube/api-report.md +++ b/plugins/sonarqube/api-report.md @@ -9,46 +9,29 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { InfoCardVariants } from '@backstage/core-components'; -// Warning: (ae-missing-release-tag) "EntitySonarQubeCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntitySonarQubeCard: ({ - variant, - duplicationRatings, -}: { - variant?: InfoCardVariants | undefined; - duplicationRatings?: - | { - greaterThan: number; - rating: '1.0' | '2.0' | '3.0' | '4.0' | '5.0'; - }[] - | undefined; -}) => JSX.Element; +export type DuplicationRating = { + greaterThan: number; + rating: '1.0' | '2.0' | '3.0' | '4.0' | '5.0'; +}; -// Warning: (ae-missing-release-tag) "isSonarQubeAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const isSonarQubeAvailable: (entity: Entity) => boolean; - -// Warning: (ae-missing-release-tag) "SonarQubeCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export const SonarQubeCard: ({ - variant, - duplicationRatings, -}: { +export const EntitySonarQubeCard: (props: { variant?: InfoCardVariants | undefined; duplicationRatings?: DuplicationRating[] | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "sonarQubePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// +// @public (undocumented) +export const isSonarQubeAvailable: (entity: Entity) => boolean; + +// @public (undocumented) +export const SonarQubeCard: (props: { + variant?: InfoCardVariants; + duplicationRatings?: DuplicationRating[]; +}) => JSX.Element; + // @public (undocumented) const sonarQubePlugin: BackstagePlugin<{}, {}, {}>; export { sonarQubePlugin as plugin }; export { sonarQubePlugin }; - -// Warnings were encountered during analysis: -// -// src/components/SonarQubeCard/SonarQubeCard.d.ts:9:5 - (ae-forgotten-export) The symbol "DuplicationRating" needs to be exported by the entry point index.d.ts ``` diff --git a/plugins/sonarqube/src/api/SonarQubeApi.ts b/plugins/sonarqube/src/api/SonarQubeApi.ts index 271f1d8e8e..9dbb6331dd 100644 --- a/plugins/sonarqube/src/api/SonarQubeApi.ts +++ b/plugins/sonarqube/src/api/SonarQubeApi.ts @@ -38,10 +38,7 @@ export const sonarQubeApiRef = createApiRef({ }); export type SonarQubeApi = { - getFindingSummary({ - componentKey, - projectInstance, - }: { + getFindingSummary(options: { componentKey?: string; projectInstance?: string; }): Promise; diff --git a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx index af91bc5469..b32a66aaa3 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/SonarQubeCard.tsx @@ -32,7 +32,6 @@ import { Percentage } from './Percentage'; import { Rating } from './Rating'; import { RatingCard } from './RatingCard'; import { Value } from './Value'; - import { EmptyState, InfoCard, @@ -40,7 +39,6 @@ import { MissingAnnotationEmptyState, Progress, } from '@backstage/core-components'; - import { useApi } from '@backstage/core-plugin-api'; const useStyles = makeStyles(theme => ({ @@ -72,7 +70,8 @@ const useStyles = makeStyles(theme => ({ }, })); -type DuplicationRating = { +/** @public */ +export type DuplicationRating = { greaterThan: number; rating: '1.0' | '2.0' | '3.0' | '4.0' | '5.0'; }; @@ -85,13 +84,15 @@ const defaultDuplicationRatings: DuplicationRating[] = [ { greaterThan: 20, rating: '5.0' }, ]; -export const SonarQubeCard = ({ - variant = 'gridItem', - duplicationRatings = defaultDuplicationRatings, -}: { +/** @public */ +export const SonarQubeCard = (props: { variant?: InfoCardVariants; duplicationRatings?: DuplicationRating[]; }) => { + const { + variant = 'gridItem', + duplicationRatings = defaultDuplicationRatings, + } = props; const { entity } = useEntity(); const sonarQubeApi = useApi(sonarQubeApiRef); diff --git a/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx b/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx index 58fb401ba1..a166f62a89 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx +++ b/plugins/sonarqube/src/components/SonarQubeCard/Value.tsx @@ -27,8 +27,7 @@ const useStyles = makeStyles((theme: BackstageTheme) => { }; }); -export const Value = ({ value }: { value?: string }) => { +export const Value = (props: { value?: string }) => { const classes = useStyles(); - - return {value}; + return {props.value}; }; diff --git a/plugins/sonarqube/src/components/SonarQubeCard/index.ts b/plugins/sonarqube/src/components/SonarQubeCard/index.ts index 44ab809439..307a9abc41 100644 --- a/plugins/sonarqube/src/components/SonarQubeCard/index.ts +++ b/plugins/sonarqube/src/components/SonarQubeCard/index.ts @@ -14,4 +14,5 @@ * limitations under the License. */ +export type { DuplicationRating } from './SonarQubeCard'; export { SonarQubeCard } from './SonarQubeCard'; diff --git a/plugins/sonarqube/src/components/useProjectKey.ts b/plugins/sonarqube/src/components/useProjectKey.ts index 7a5a428f49..59a572a6c4 100644 --- a/plugins/sonarqube/src/components/useProjectKey.ts +++ b/plugins/sonarqube/src/components/useProjectKey.ts @@ -19,6 +19,7 @@ import { Entity } from '@backstage/catalog-model'; export const SONARQUBE_PROJECT_KEY_ANNOTATION = 'sonarqube.org/project-key'; export const SONARQUBE_PROJECT_INSTANCE_SEPARATOR = '/'; +/** @public */ export const isSonarQubeAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[SONARQUBE_PROJECT_KEY_ANNOTATION]); diff --git a/plugins/sonarqube/src/plugin.ts b/plugins/sonarqube/src/plugin.ts index 4ac49b2350..0ea62de492 100644 --- a/plugins/sonarqube/src/plugin.ts +++ b/plugins/sonarqube/src/plugin.ts @@ -23,6 +23,7 @@ import { identityApiRef, } from '@backstage/core-plugin-api'; +/** @public */ export const sonarQubePlugin = createPlugin({ id: 'sonarqube', apis: [ @@ -41,6 +42,7 @@ export const sonarQubePlugin = createPlugin({ ], }); +/** @public */ export const EntitySonarQubeCard = sonarQubePlugin.provide( createComponentExtension({ name: 'EntitySonarQubeCard', diff --git a/plugins/tech-insights-node/api-report.md b/plugins/tech-insights-node/api-report.md index 84677bdcbc..19645d604b 100644 --- a/plugins/tech-insights-node/api-report.md +++ b/plugins/tech-insights-node/api-report.md @@ -169,11 +169,7 @@ export interface TechInsightsStore { [factRef: string]: FlatTechInsightFact; }>; getLatestSchemas(ids?: string[]): Promise; - insertFacts({ - id, - facts, - lifecycle, - }: { + insertFacts(options: { id: string; facts: TechInsightFact[]; lifecycle?: FactLifecycle; diff --git a/plugins/tech-insights-node/src/persistence.ts b/plugins/tech-insights-node/src/persistence.ts index 4324c24c42..31fda403a8 100644 --- a/plugins/tech-insights-node/src/persistence.ts +++ b/plugins/tech-insights-node/src/persistence.ts @@ -38,11 +38,7 @@ export interface TechInsightsStore { * @param facts - A collection of TechInsightFacts * @param lifecycle - (Optional) Fact lifecycle object indicating the expiration logic for these items */ - insertFacts({ - id, - facts, - lifecycle, - }: { + insertFacts(options: { id: string; facts: TechInsightFact[]; lifecycle?: FactLifecycle; diff --git a/plugins/tech-insights/api-report.md b/plugins/tech-insights/api-report.md index 694fb583d2..4f2687fa48 100644 --- a/plugins/tech-insights/api-report.md +++ b/plugins/tech-insights/api-report.md @@ -33,22 +33,14 @@ export type CheckResultRenderer = { }; // @public (undocumented) -export const EntityTechInsightsScorecardCard: ({ - title, - description, - checksId, -}: { +export const EntityTechInsightsScorecardCard: (props: { title?: string | undefined; description?: string | undefined; checksId?: string[] | undefined; }) => JSX.Element; // @public (undocumented) -export const EntityTechInsightsScorecardContent: ({ - title, - description, - checksId, -}: { +export const EntityTechInsightsScorecardContent: (props: { title?: string | undefined; description?: string | undefined; checksId?: string[] | undefined; diff --git a/plugins/tech-insights/src/components/ScorecardsCard/ScorecardsCard.tsx b/plugins/tech-insights/src/components/ScorecardsCard/ScorecardsCard.tsx index f6bc4b0cb5..57b8915b58 100644 --- a/plugins/tech-insights/src/components/ScorecardsCard/ScorecardsCard.tsx +++ b/plugins/tech-insights/src/components/ScorecardsCard/ScorecardsCard.tsx @@ -23,15 +23,12 @@ import { ScorecardInfo } from '../ScorecardsInfo'; import Alert from '@material-ui/lab/Alert'; import { techInsightsApiRef } from '../../api/TechInsightsApi'; -export const ScorecardsCard = ({ - title, - description, - checksId, -}: { +export const ScorecardsCard = (props: { title?: string; description?: string; checksId?: string[]; }) => { + const { title, description, checksId } = props; const api = useApi(techInsightsApiRef); const { namespace, kind, name } = useParams(); const { value, loading, error } = useAsync( diff --git a/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx b/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx index 07a839d7a8..c3d02c938f 100644 --- a/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx +++ b/plugins/tech-insights/src/components/ScorecardsContent/ScorecardContent.tsx @@ -31,15 +31,12 @@ const useStyles = makeStyles(() => ({ }, })); -export const ScorecardsContent = ({ - title, - description, - checksId, -}: { +export const ScorecardsContent = (props: { title?: string; description?: string; checksId?: string[]; }) => { + const { title, description, checksId } = props; const classes = useStyles(); const api = useApi(techInsightsApiRef); const { namespace, kind, name } = useParams(); diff --git a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx index 2c5abb3596..9d5fc5ac9e 100644 --- a/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx +++ b/plugins/tech-insights/src/components/ScorecardsInfo/ScorecardInfo.tsx @@ -30,15 +30,9 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({ }, })); -type Checks = { - checks: CheckResult[]; - title?: string; - description?: string; -}; - const infoCard = ( - title: Checks['title'], - description: Checks['description'], + title: string | undefined, + description: string | undefined, className: string, element: JSX.Element, ) => ( @@ -54,7 +48,12 @@ const infoCard = ( ); -export const ScorecardInfo = ({ checks, title, description }: Checks) => { +export const ScorecardInfo = (props: { + checks: CheckResult[]; + title?: string; + description?: string; +}) => { + const { checks, title, description } = props; const classes = useStyles(); const api = useApi(techInsightsApiRef); diff --git a/plugins/techdocs-module-addons-contrib/api-report.md b/plugins/techdocs-module-addons-contrib/api-report.md index f787e0678c..68fad9121d 100644 --- a/plugins/techdocs-module-addons-contrib/api-report.md +++ b/plugins/techdocs-module-addons-contrib/api-report.md @@ -26,9 +26,7 @@ export type ReportIssueTemplate = { }; // @public -export type ReportIssueTemplateBuilder = ({ - selection, -}: { +export type ReportIssueTemplateBuilder = (options: { selection: Selection; }) => ReportIssueTemplate; diff --git a/plugins/techdocs-module-addons-contrib/src/ReportIssue/types.ts b/plugins/techdocs-module-addons-contrib/src/ReportIssue/types.ts index 0816b45d9d..84143a40f2 100644 --- a/plugins/techdocs-module-addons-contrib/src/ReportIssue/types.ts +++ b/plugins/techdocs-module-addons-contrib/src/ReportIssue/types.ts @@ -37,9 +37,7 @@ export type ReportIssueTemplate = { * * @public */ -export type ReportIssueTemplateBuilder = ({ - selection, -}: { +export type ReportIssueTemplateBuilder = (options: { selection: Selection; }) => ReportIssueTemplate; diff --git a/plugins/techdocs/api-report.md b/plugins/techdocs/api-report.md index ef037fbb05..7922ea992e 100644 --- a/plugins/techdocs/api-report.md +++ b/plugins/techdocs/api-report.md @@ -345,11 +345,7 @@ export type TechDocsReaderPageProps = { }; // @public -export type TechDocsReaderPageRenderFunction = ({ - techdocsMetadataValue, - entityMetadataValue, - entityRef, -}: { +export type TechDocsReaderPageRenderFunction = (options: { techdocsMetadataValue?: TechDocsMetadata_2 | undefined; entityMetadataValue?: TechDocsEntityMetadata_2 | undefined; entityRef: CompoundEntityRef; diff --git a/plugins/techdocs/src/types.ts b/plugins/techdocs/src/types.ts index 014bf0d090..c07f7c3907 100644 --- a/plugins/techdocs/src/types.ts +++ b/plugins/techdocs/src/types.ts @@ -25,11 +25,7 @@ import { * * @public */ -export type TechDocsReaderPageRenderFunction = ({ - techdocsMetadataValue, - entityMetadataValue, - entityRef, -}: { +export type TechDocsReaderPageRenderFunction = (options: { techdocsMetadataValue?: TechDocsMetadata | undefined; entityMetadataValue?: TechDocsEntityMetadata | undefined; entityRef: CompoundEntityRef; diff --git a/plugins/user-settings/api-report.md b/plugins/user-settings/api-report.md index 914f8b2385..d6aca3c46f 100644 --- a/plugins/user-settings/api-report.md +++ b/plugins/user-settings/api-report.md @@ -20,7 +20,7 @@ import { SessionApi } from '@backstage/core-plugin-api'; // @public (undocumented) export const DefaultProviderSettings: ({ configuredProviders, -}: Props_3) => JSX.Element; +}: Props_2) => JSX.Element; // Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "ProviderSettingsItem" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -31,13 +31,10 @@ export const ProviderSettingsItem: ({ description, icon: Icon, apiRef, -}: Props_4) => JSX.Element; +}: Props_3) => JSX.Element; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "SettingsPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const Router: ({ providerSettings }: Props) => JSX.Element; +export const Router: (props: { providerSettings?: JSX.Element }) => JSX.Element; // Warning: (ae-forgotten-export) The symbol "SettingsProps" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "Settings" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -59,7 +56,7 @@ export const UserSettingsAppearanceCard: () => JSX.Element; // @public (undocumented) export const UserSettingsAuthProviders: ({ providerSettings, -}: Props_2) => JSX.Element; +}: Props) => JSX.Element; // Warning: (ae-missing-release-tag) "UserSettingsFeatureFlags" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -84,9 +81,7 @@ export const UserSettingsMenu: () => JSX.Element; // Warning: (ae-missing-release-tag) "UserSettingsPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const UserSettingsPage: ({ - providerSettings, -}: { +export const UserSettingsPage: (props: { providerSettings?: JSX.Element | undefined; }) => JSX.Element; @@ -117,7 +112,7 @@ export const UserSettingsProfileCard: () => JSX.Element; // Warning: (ae-missing-release-tag) "UserSettingsSignInAvatar" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const UserSettingsSignInAvatar: ({ size }: Props_5) => JSX.Element; +export const UserSettingsSignInAvatar: ({ size }: Props_4) => JSX.Element; // @public export const UserSettingsTab: (props: UserSettingsTabProps) => JSX.Element; diff --git a/plugins/user-settings/src/components/SettingsPage.tsx b/plugins/user-settings/src/components/SettingsPage.tsx index dcaf62d435..9803bf4761 100644 --- a/plugins/user-settings/src/components/SettingsPage.tsx +++ b/plugins/user-settings/src/components/SettingsPage.tsx @@ -28,11 +28,11 @@ import { UserSettingsFeatureFlags } from './FeatureFlags'; import { UserSettingsGeneral } from './General'; import { USER_SETTINGS_TAB_KEY, UserSettingsTabProps } from './UserSettingsTab'; -type Props = { - providerSettings?: JSX.Element; -}; - -export const SettingsPage = ({ providerSettings }: Props) => { +/** + * @public + */ +export const SettingsPage = (props: { providerSettings?: JSX.Element }) => { + const { providerSettings } = props; const { isMobile } = useSidebarPinState(); const outlet = useOutlet(); diff --git a/plugins/vault-backend/api-report.md b/plugins/vault-backend/api-report.md index d2e9e1b177..2b1fb14bd0 100644 --- a/plugins/vault-backend/api-report.md +++ b/plugins/vault-backend/api-report.md @@ -48,7 +48,7 @@ export type VaultBuilderReturn = { // @public export class VaultClient implements VaultApi { - constructor({ config }: { config: Config }); + constructor(options: { config: Config }); // (undocumented) getFrontendSecretsUrl(): string; // (undocumented) diff --git a/plugins/vault-backend/src/service/vaultApi.ts b/plugins/vault-backend/src/service/vaultApi.ts index 158778294a..16aa39ae03 100644 --- a/plugins/vault-backend/src/service/vaultApi.ts +++ b/plugins/vault-backend/src/service/vaultApi.ts @@ -79,8 +79,8 @@ export class VaultClient implements VaultApi { private vaultConfig: VaultConfig; private readonly limit = plimit(5); - constructor({ config }: { config: Config }) { - this.vaultConfig = getVaultConfig(config); + constructor(options: { config: Config }) { + this.vaultConfig = getVaultConfig(options.config); } private async callApi( diff --git a/scripts/api-extractor.ts b/scripts/api-extractor.ts index 32b27e06ca..9275b93842 100644 --- a/scripts/api-extractor.ts +++ b/scripts/api-extractor.ts @@ -204,9 +204,6 @@ const ALLOW_WARNINGS = [ 'plugins/api-docs', 'plugins/app-backend', 'plugins/auth-backend', - 'plugins/azure-devops', - 'plugins/azure-devops-backend', - 'plugins/azure-devops-common', 'plugins/badges', 'plugins/badges-backend', 'plugins/bitrise', @@ -223,7 +220,6 @@ const ALLOW_WARNINGS = [ 'plugins/explore', 'plugins/explore-react', 'plugins/firehydrant', - 'plugins/fossa', 'plugins/gcalendar', 'plugins/gcp-projects', 'plugins/git-release-manager', @@ -250,7 +246,6 @@ const ALLOW_WARNINGS = [ 'plugins/search-backend-module-pg', 'plugins/sentry', 'plugins/shortcuts', - 'plugins/sonarqube', 'plugins/splunk-on-call', 'plugins/tech-radar', 'plugins/user-settings', From 1969e7447ac035b7dae4c59ee6304b8092c552f3 Mon Sep 17 00:00:00 2001 From: Joao Paulo Moreira Antunes Date: Thu, 18 Aug 2022 10:39:34 -0300 Subject: [PATCH 210/239] chore:add adopter parana_banco Signed-off-by: Joao Paulo Moreira Antunes --- ADOPTERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ADOPTERS.md b/ADOPTERS.md index 3a53f7d990..902952a90e 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -207,3 +207,4 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi | [Fanatics](https://www.fanaticsinc.com/) | [Rory Scott](mailto:rscott@fanatics.com) | Internal Portal consolidating documentation, making it easier to manage applications, internal developer community platform, and self-service cloud infrastructure + pipelines. | | [Appfolio](https://appfolio.com) | [Andy Vaughn](mailto:andy.vaughn@appfolio.com) | Internal software catalog, tech radar, documentation portal to disambiguate software and domain ownership, foster exploration of available developer platform services and tools, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. | | [isaac](https://isaac.com.br/) | [Leonardo Borges](mailto:leonardo.borges@isaac.com.br), [Ordilei Souza](mailto:ordilei.souza@isaac.com.br) | We're using Backstage as our Internal Developer Portal and main microservices catalog for mapping ownership, health and metrics for each one. | +| [Paraná Banco](https://site.paranabanco.com.br/) | [Joao Antunes](mailto:joaopma@pbtech.net.br) | Internal software catalog, documentation and ownership, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. | \ No newline at end of file From f6be17460d1e01cd228d7553a900cd4e03680e5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 18 Aug 2022 15:42:17 +0200 Subject: [PATCH 211/239] well, let's clean up some more MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/clever-beans-turn.md | 8 ++ plugins/kafka-backend/api-report.md | 11 ++- plugins/kafka-backend/src/index.ts | 1 + plugins/kafka-backend/src/service/router.ts | 2 + plugins/kafka/api-report.md | 15 +--- plugins/kafka/src/Router.tsx | 6 +- plugins/kafka/src/constants.ts | 3 + plugins/kafka/src/plugin.ts | 3 + plugins/lighthouse/api-report.md | 81 ++++--------------- plugins/lighthouse/src/Router.tsx | 7 +- plugins/lighthouse/src/api.ts | 26 ++++-- .../Cards/LastLighthouseAuditCard.tsx | 26 +++--- plugins/lighthouse/src/plugin.ts | 4 + plugins/proxy-backend/api-report.md | 15 +++- plugins/proxy-backend/src/service/index.ts | 1 + plugins/proxy-backend/src/service/router.ts | 2 + scripts/api-extractor.ts | 4 - 17 files changed, 101 insertions(+), 114 deletions(-) create mode 100644 .changeset/clever-beans-turn.md diff --git a/.changeset/clever-beans-turn.md b/.changeset/clever-beans-turn.md new file mode 100644 index 0000000000..69846a2516 --- /dev/null +++ b/.changeset/clever-beans-turn.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-kafka': patch +'@backstage/plugin-kafka-backend': patch +'@backstage/plugin-lighthouse': patch +'@backstage/plugin-proxy-backend': patch +--- + +Minor API signatures cleanup diff --git a/plugins/kafka-backend/api-report.md b/plugins/kafka-backend/api-report.md index e73d8e9e03..20c8260b52 100644 --- a/plugins/kafka-backend/api-report.md +++ b/plugins/kafka-backend/api-report.md @@ -7,9 +7,14 @@ import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; -// Warning: (ae-forgotten-export) The symbol "RouterOptions" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export function createRouter(options: RouterOptions): Promise; + +// @public (undocumented) +export interface RouterOptions { + // (undocumented) + config: Config; + // (undocumented) + logger: Logger; +} ``` diff --git a/plugins/kafka-backend/src/index.ts b/plugins/kafka-backend/src/index.ts index ab1026e99d..70b7fb45a4 100644 --- a/plugins/kafka-backend/src/index.ts +++ b/plugins/kafka-backend/src/index.ts @@ -20,4 +20,5 @@ * @packageDocumentation */ +export type { RouterOptions } from './service/router'; export { createRouter } from './service/router'; diff --git a/plugins/kafka-backend/src/service/router.ts b/plugins/kafka-backend/src/service/router.ts index 6c8bce7af3..1271e8f48c 100644 --- a/plugins/kafka-backend/src/service/router.ts +++ b/plugins/kafka-backend/src/service/router.ts @@ -23,6 +23,7 @@ import { KafkaApi, KafkaJsApiImpl } from './KafkaApi'; import _ from 'lodash'; import { getClusterDetails } from '../config/ClusterReader'; +/** @public */ export interface RouterOptions { logger: Logger; config: Config; @@ -84,6 +85,7 @@ export const makeRouter = ( return router; }; +/** @public */ export async function createRouter( options: RouterOptions, ): Promise { diff --git a/plugins/kafka/api-report.md b/plugins/kafka/api-report.md index 844082764e..18b51b77fa 100644 --- a/plugins/kafka/api-report.md +++ b/plugins/kafka/api-report.md @@ -9,26 +9,18 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "EntityKafkaContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityKafkaContent: (_props: {}) => JSX.Element; +export const EntityKafkaContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "isPluginApplicableToEntity" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const isPluginApplicableToEntity: (entity: Entity) => boolean; export { isPluginApplicableToEntity as isKafkaAvailable }; export { isPluginApplicableToEntity }; -// Warning: (ae-missing-release-tag) "KAFKA_CONSUMER_GROUP_ANNOTATION" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const KAFKA_CONSUMER_GROUP_ANNOTATION = 'kafka.apache.org/consumer-groups'; -// Warning: (ae-missing-release-tag) "kafkaPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const kafkaPlugin: BackstagePlugin< { @@ -40,9 +32,6 @@ const kafkaPlugin: BackstagePlugin< export { kafkaPlugin }; export { kafkaPlugin as plugin }; -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const Router: (_props: Props) => JSX.Element; +export const Router: () => JSX.Element; ``` diff --git a/plugins/kafka/src/Router.tsx b/plugins/kafka/src/Router.tsx index 133326b5b9..af6d2d7ef8 100644 --- a/plugins/kafka/src/Router.tsx +++ b/plugins/kafka/src/Router.tsx @@ -22,12 +22,12 @@ import { KAFKA_CONSUMER_GROUP_ANNOTATION } from './constants'; import { KafkaTopicsForConsumer } from './components/ConsumerGroupOffsets/ConsumerGroupOffsets'; import { MissingAnnotationEmptyState } from '@backstage/core-components'; +/** @public */ export const isPluginApplicableToEntity = (entity: Entity) => Boolean(entity.metadata.annotations?.[KAFKA_CONSUMER_GROUP_ANNOTATION]); -type Props = {}; - -export const Router = (_props: Props) => { +/** @public */ +export const Router = () => { const { entity } = useEntity(); if (!isPluginApplicableToEntity(entity)) { diff --git a/plugins/kafka/src/constants.ts b/plugins/kafka/src/constants.ts index b85a738888..a900ec6abe 100644 --- a/plugins/kafka/src/constants.ts +++ b/plugins/kafka/src/constants.ts @@ -13,6 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/** @public */ export const KAFKA_CONSUMER_GROUP_ANNOTATION = 'kafka.apache.org/consumer-groups'; + export const KAFKA_DASHBOARD_URL = 'kafka.apache.org/dashboard-urls'; diff --git a/plugins/kafka/src/plugin.ts b/plugins/kafka/src/plugin.ts index 6caa4ca5ca..395152729b 100644 --- a/plugins/kafka/src/plugin.ts +++ b/plugins/kafka/src/plugin.ts @@ -26,10 +26,12 @@ import { } from '@backstage/core-plugin-api'; import { KafkaDashboardClient } from './api/KafkaDashboardClient'; +/** @public */ export const rootCatalogKafkaRouteRef = createRouteRef({ id: 'kafka', }); +/** @public */ export const kafkaPlugin = createPlugin({ id: 'kafka', apis: [ @@ -50,6 +52,7 @@ export const kafkaPlugin = createPlugin({ }, }); +/** @public */ export const EntityKafkaContent = kafkaPlugin.provide( createRoutableExtension({ name: 'EntityKafkaContent', diff --git a/plugins/lighthouse/api-report.md b/plugins/lighthouse/api-report.md index a53bef3cb0..17c771e187 100644 --- a/plugins/lighthouse/api-report.md +++ b/plugins/lighthouse/api-report.md @@ -12,14 +12,19 @@ import { Entity } from '@backstage/catalog-model'; import { InfoCardVariants } from '@backstage/core-components'; import { RouteRef } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "Audit" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type Audit = AuditRunning | AuditFailed | AuditCompleted; -// Warning: (ae-forgotten-export) The symbol "AuditBase" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "AuditCompleted" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// +// @public (undocumented) +export interface AuditBase { + // (undocumented) + id: string; + // (undocumented) + timeCreated: string; + // (undocumented) + url: string; +} + // @public (undocumented) export interface AuditCompleted extends AuditBase { // (undocumented) @@ -32,8 +37,6 @@ export interface AuditCompleted extends AuditBase { timeCompleted: string; } -// Warning: (ae-missing-release-tag) "AuditFailed" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface AuditFailed extends AuditBase { // (undocumented) @@ -42,38 +45,24 @@ export interface AuditFailed extends AuditBase { timeCompleted: string; } -// Warning: (ae-missing-release-tag) "AuditRunning" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface AuditRunning extends AuditBase { // (undocumented) status: 'RUNNING'; } -// Warning: (ae-forgotten-export) The symbol "Props" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "EmbeddedRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EmbeddedRouter: (_props: Props) => JSX.Element; +export const EmbeddedRouter: () => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityLastLighthouseAuditCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityLastLighthouseAuditCard: ({ - dense, - variant, -}: { +export const EntityLastLighthouseAuditCard: (props: { dense?: boolean | undefined; variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "EntityLighthouseContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityLighthouseContent: (_props: {}) => JSX.Element; +export const EntityLighthouseContent: () => JSX.Element; -// Warning: (ae-missing-release-tag) "FetchError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class FetchError extends Error { // (undocumented) @@ -82,15 +71,11 @@ export class FetchError extends Error { get name(): string; } -// Warning: (ae-missing-release-tag) "isLighthouseAvailable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const isLighthouseAvailable: (entity: Entity) => boolean; export { isLighthouseAvailable }; export { isLighthouseAvailable as isPluginApplicableToEntity }; -// Warning: (ae-missing-release-tag) "LASListRequest" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface LASListRequest { // (undocumented) @@ -99,8 +84,6 @@ export interface LASListRequest { offset?: number; } -// Warning: (ae-missing-release-tag) "LASListResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface LASListResponse { // (undocumented) @@ -113,19 +96,12 @@ export interface LASListResponse { total: number; } -// Warning: (ae-missing-release-tag) "LastLighthouseAuditCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const LastLighthouseAuditCard: ({ - dense, - variant, -}: { - dense?: boolean | undefined; - variant?: InfoCardVariants | undefined; +export const LastLighthouseAuditCard: (props: { + dense?: boolean; + variant?: InfoCardVariants; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "LighthouseApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type LighthouseApi = { url: string; @@ -135,13 +111,9 @@ export type LighthouseApi = { getWebsiteByUrl: (websiteUrl: string) => Promise; }; -// Warning: (ae-missing-release-tag) "lighthouseApiRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const lighthouseApiRef: ApiRef; -// Warning: (ae-missing-release-tag) "LighthouseCategoryAbbr" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface LighthouseCategoryAbbr { // (undocumented) @@ -152,8 +124,6 @@ export interface LighthouseCategoryAbbr { title: string; } -// Warning: (ae-missing-release-tag) "LighthouseCategoryId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type LighthouseCategoryId = | 'pwa' @@ -162,13 +132,9 @@ export type LighthouseCategoryId = | 'accessibility' | 'best-practices'; -// Warning: (ae-missing-release-tag) "LighthousePage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const LighthousePage: () => JSX.Element; -// Warning: (ae-missing-release-tag) "lighthousePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const lighthousePlugin: BackstagePlugin< { @@ -181,8 +147,6 @@ const lighthousePlugin: BackstagePlugin< export { lighthousePlugin }; export { lighthousePlugin as plugin }; -// Warning: (ae-missing-release-tag) "LighthouseRestApi" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class LighthouseRestApi implements LighthouseApi { constructor(url: string); @@ -193,23 +157,16 @@ export class LighthouseRestApi implements LighthouseApi { // (undocumented) getWebsiteForAuditId(auditId: string): Promise; // (undocumented) - getWebsiteList({ - limit, - offset, - }?: LASListRequest): Promise; + getWebsiteList(options?: LASListRequest): Promise; // (undocumented) triggerAudit(payload: TriggerAuditPayload): Promise; // (undocumented) url: string; } -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const Router: () => JSX.Element; -// Warning: (ae-missing-release-tag) "TriggerAuditPayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface TriggerAuditPayload { // (undocumented) @@ -224,8 +181,6 @@ export interface TriggerAuditPayload { url: string; } -// Warning: (ae-missing-release-tag) "Website" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Website { // (undocumented) @@ -236,8 +191,6 @@ export interface Website { url: string; } -// Warning: (ae-missing-release-tag) "WebsiteListResponse" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type WebsiteListResponse = LASListResponse; ``` diff --git a/plugins/lighthouse/src/Router.tsx b/plugins/lighthouse/src/Router.tsx index 1c41f522f4..04c00cde41 100644 --- a/plugins/lighthouse/src/Router.tsx +++ b/plugins/lighthouse/src/Router.tsx @@ -25,9 +25,11 @@ import { LIGHTHOUSE_WEBSITE_URL_ANNOTATION } from '../constants'; import { AuditListForEntity } from './components/AuditList/AuditListForEntity'; import { MissingAnnotationEmptyState } from '@backstage/core-components'; +/** @public */ export const isLighthouseAvailable = (entity: Entity) => Boolean(entity.metadata.annotations?.[LIGHTHOUSE_WEBSITE_URL_ANNOTATION]); +/** @public */ export const Router = () => ( } /> @@ -36,9 +38,8 @@ export const Router = () => ( ); -type Props = {}; - -export const EmbeddedRouter = (_props: Props) => { +/** @public */ +export const EmbeddedRouter = () => { const { entity } = useEntity(); if (!isLighthouseAvailable(entity)) { diff --git a/plugins/lighthouse/src/api.ts b/plugins/lighthouse/src/api.ts index b40b70356f..e4ccefe2a1 100644 --- a/plugins/lighthouse/src/api.ts +++ b/plugins/lighthouse/src/api.ts @@ -17,6 +17,7 @@ import { Config } from '@backstage/config'; import { createApiRef } from '@backstage/core-plugin-api'; +/** @public */ export type LighthouseCategoryId = | 'pwa' | 'seo' @@ -24,17 +25,20 @@ export type LighthouseCategoryId = | 'accessibility' | 'best-practices'; +/** @public */ export interface LighthouseCategoryAbbr { id: LighthouseCategoryId; score: number; title: string; } +/** @public */ export interface LASListRequest { offset?: number; limit?: number; } +/** @public */ export interface LASListResponse { items: Item[]; total: number; @@ -42,21 +46,25 @@ export interface LASListResponse { limit: number; } -interface AuditBase { +/** @public */ +export interface AuditBase { id: string; url: string; timeCreated: string; } +/** @public */ export interface AuditRunning extends AuditBase { status: 'RUNNING'; } +/** @public */ export interface AuditFailed extends AuditBase { status: 'FAILED'; timeCompleted: string; } +/** @public */ export interface AuditCompleted extends AuditBase { status: 'COMPLETED'; timeCompleted: string; @@ -64,16 +72,20 @@ export interface AuditCompleted extends AuditBase { categories: Record; } +/** @public */ export type Audit = AuditRunning | AuditFailed | AuditCompleted; +/** @public */ export interface Website { url: string; audits: Audit[]; lastAudit: Audit; } +/** @public */ export type WebsiteListResponse = LASListResponse; +/** @public */ export interface TriggerAuditPayload { url: string; options: { @@ -85,6 +97,7 @@ export interface TriggerAuditPayload { }; } +/** @public */ export class FetchError extends Error { get name(): string { return this.constructor.name; @@ -99,6 +112,7 @@ export class FetchError extends Error { } } +/** @public */ export type LighthouseApi = { url: string; getWebsiteList: (listOptions: LASListRequest) => Promise; @@ -107,10 +121,12 @@ export type LighthouseApi = { getWebsiteByUrl: (websiteUrl: string) => Promise; }; +/** @public */ export const lighthouseApiRef = createApiRef({ id: 'plugin.lighthouse.service', }); +/** @public */ export class LighthouseRestApi implements LighthouseApi { static fromConfig(config: Config) { return new LighthouseRestApi(config.getString('lighthouse.baseUrl')); @@ -124,10 +140,10 @@ export class LighthouseRestApi implements LighthouseApi { return await resp.json(); } - async getWebsiteList({ - limit, - offset, - }: LASListRequest = {}): Promise { + async getWebsiteList( + options: LASListRequest = {}, + ): Promise { + const { limit, offset } = options; const params = new URLSearchParams(); if (typeof limit === 'number') params.append('limit', limit.toString()); if (typeof offset === 'number') params.append('offset', offset.toString()); diff --git a/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.tsx b/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.tsx index fc44397330..4daeb5177c 100644 --- a/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.tsx +++ b/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.tsx @@ -27,8 +27,8 @@ import { StructuredMetadataTable, } from '@backstage/core-components'; -const LighthouseCategoryScoreStatus = ({ score }: { score: number }) => { - const scoreAsPercentage = Math.round(score * 100); +const LighthouseCategoryScoreStatus = (props: { score: number }) => { + const scoreAsPercentage = Math.round(props.score * 100); switch (true) { case scoreAsPercentage >= 90: return ( @@ -56,20 +56,15 @@ const LighthouseCategoryScoreStatus = ({ score }: { score: number }) => { } }; -const LighthouseAuditStatus = ({ audit }: { audit: Audit }) => ( +const LighthouseAuditStatus = (props: { audit: Audit }) => ( <> - - {audit.status.toLocaleUpperCase('en-US')} + + {props.audit.status.toLocaleUpperCase('en-US')} ); -const LighthouseAuditSummary = ({ - audit, - dense = false, -}: { - audit: Audit; - dense?: boolean; -}) => { +const LighthouseAuditSummary = (props: { audit: Audit; dense?: boolean }) => { + const { audit, dense = false } = props; const { url } = audit; const flattenedCategoryData: Record = {}; if (audit.status === 'COMPLETED') { @@ -92,13 +87,12 @@ const LighthouseAuditSummary = ({ return ; }; -export const LastLighthouseAuditCard = ({ - dense = false, - variant, -}: { +/** @public */ +export const LastLighthouseAuditCard = (props: { dense?: boolean; variant?: InfoCardVariants; }) => { + const { dense = false, variant } = props; const { value: website, loading, error } = useWebsiteForEntity(); let content; diff --git a/plugins/lighthouse/src/plugin.ts b/plugins/lighthouse/src/plugin.ts index 1c9bc295f8..24052f7771 100644 --- a/plugins/lighthouse/src/plugin.ts +++ b/plugins/lighthouse/src/plugin.ts @@ -40,6 +40,7 @@ export const entityContentRouteRef = createRouteRef({ id: 'lighthouse:entity-content', }); +/** @public */ export const lighthousePlugin = createPlugin({ id: 'lighthouse', apis: [ @@ -55,6 +56,7 @@ export const lighthousePlugin = createPlugin({ }, }); +/** @public */ export const LighthousePage = lighthousePlugin.provide( createRoutableExtension({ name: 'LighthousePage', @@ -63,6 +65,7 @@ export const LighthousePage = lighthousePlugin.provide( }), ); +/** @public */ export const EntityLighthouseContent = lighthousePlugin.provide( createRoutableExtension({ name: 'EntityLighthouseContent', @@ -71,6 +74,7 @@ export const EntityLighthouseContent = lighthousePlugin.provide( }), ); +/** @public */ export const EntityLastLighthouseAuditCard = lighthousePlugin.provide( createComponentExtension({ name: 'EntityLastLighthouseAuditCard', diff --git a/plugins/proxy-backend/api-report.md b/plugins/proxy-backend/api-report.md index 45ef63f4d9..b6497adbaf 100644 --- a/plugins/proxy-backend/api-report.md +++ b/plugins/proxy-backend/api-report.md @@ -8,9 +8,18 @@ import express from 'express'; import { Logger } from 'winston'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; -// Warning: (ae-forgotten-export) The symbol "RouterOptions" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export function createRouter(options: RouterOptions): Promise; + +// @public (undocumented) +export interface RouterOptions { + // (undocumented) + config: Config; + // (undocumented) + discovery: PluginEndpointDiscovery; + // (undocumented) + logger: Logger; + // (undocumented) + skipInvalidProxies?: boolean; +} ``` diff --git a/plugins/proxy-backend/src/service/index.ts b/plugins/proxy-backend/src/service/index.ts index d87e53b5c1..31d50951fd 100644 --- a/plugins/proxy-backend/src/service/index.ts +++ b/plugins/proxy-backend/src/service/index.ts @@ -14,4 +14,5 @@ * limitations under the License. */ +export type { RouterOptions } from './router'; export { createRouter } from './router'; diff --git a/plugins/proxy-backend/src/service/router.ts b/plugins/proxy-backend/src/service/router.ts index e0910da145..b7ee7014bc 100644 --- a/plugins/proxy-backend/src/service/router.ts +++ b/plugins/proxy-backend/src/service/router.ts @@ -47,6 +47,7 @@ const safeForwardHeaders = [ 'user-agent', ]; +/** @public */ export interface RouterOptions { logger: Logger; config: Config; @@ -177,6 +178,7 @@ export function buildMiddleware( return createProxyMiddleware(filter, fullConfig); } +/** @public */ export async function createRouter( options: RouterOptions, ): Promise { diff --git a/scripts/api-extractor.ts b/scripts/api-extractor.ts index 32b27e06ca..f047c08873 100644 --- a/scripts/api-extractor.ts +++ b/scripts/api-extractor.ts @@ -236,15 +236,11 @@ const ALLOW_WARNINGS = [ 'plugins/ilert', 'plugins/jenkins', 'plugins/jenkins-backend', - 'plugins/kafka', - 'plugins/kafka-backend', 'plugins/kubernetes', 'plugins/kubernetes-common', - 'plugins/lighthouse', 'plugins/newrelic', 'plugins/newrelic-dashboard', 'plugins/pagerduty', - 'plugins/proxy-backend', 'plugins/rollbar', 'plugins/rollbar-backend', 'plugins/search-backend-module-pg', From d326058eb9676c869f7679ea06b46d871412a364 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 29 Jul 2022 15:21:13 +0200 Subject: [PATCH 212/239] chore: added a simple case for async validation and testing delay with a component Signed-off-by: blam --- packages/app/src/App.tsx | 7 ++-- .../scaffolder/customScaffolderExtensions.tsx | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 3f748813f5..a0390d96e8 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -91,7 +91,10 @@ import { apis } from './apis'; import { entityPage } from './components/catalog/EntityPage'; import { homePage } from './components/home/HomePage'; import { Root } from './components/Root'; -import { LowerCaseValuePickerFieldExtension } from './components/scaffolder/customScaffolderExtensions'; +import { + DelayingComponentFieldExtension, + LowerCaseValuePickerFieldExtension, +} from './components/scaffolder/customScaffolderExtensions'; import { defaultPreviewTemplate } from './components/scaffolder/defaultPreviewTemplate'; import { searchPage } from './components/search/SearchPage'; import { providers } from './identityProviders'; @@ -228,7 +231,7 @@ const routes = ( } > - + } /> diff --git a/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx index 61407e2918..2a4dedf080 100644 --- a/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx +++ b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx @@ -62,3 +62,37 @@ export const LowerCaseValuePickerFieldExtension = scaffolderPlugin.provide( }, }), ); + +const MockDelayComponent = ( + props: FieldExtensionComponentProps<{ test?: string }>, +) => { + const { onChange, formData, rawErrors } = props; + return ( + onChange({ test: value })} + margin="normal" + error={rawErrors?.length > 0 && !formData} + /> + ); +}; + +export const DelayingComponentFieldExtension = scaffolderPlugin.provide( + createScaffolderFieldExtension({ + name: 'DelayingComponent', + component: MockDelayComponent, + validation: async ( + value: { test?: string }, + validation: FieldValidation, + ) => { + // delay 2 seconds + await new Promise(resolve => setTimeout(resolve, 2000)); + + if (value.test !== 'pass') { + validation.addError('value was not equal to pass'); + } + }, + }), +); From 6c8c1a41402caa8aa500b29ec4ac9e3acad2dcf7 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 29 Jul 2022 15:22:11 +0200 Subject: [PATCH 213/239] chore: starting to add async validation to the next scaffolder Signed-off-by: blam --- plugins/scaffolder/src/extensions/types.ts | 2 +- .../TemplateWizardPage/Stepper/Stepper.tsx | 27 +++++- .../Stepper/createAsyncValidators.ts | 83 +++++++++++++++++++ .../Stepper/useTemplateSchema.ts | 3 + 4 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts diff --git a/plugins/scaffolder/src/extensions/types.ts b/plugins/scaffolder/src/extensions/types.ts index be8dc14b0a..9b42ba478b 100644 --- a/plugins/scaffolder/src/extensions/types.ts +++ b/plugins/scaffolder/src/extensions/types.ts @@ -25,7 +25,7 @@ export type CustomFieldValidator = ( data: TFieldReturnValue, field: FieldValidation, context: { apiHolder: ApiHolder }, -) => void; +) => void | Promise; /** * Type for the Custom Field Extension with the diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 19335d4993..240139ae5c 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { useApiHolder } from '@backstage/core-plugin-api'; import { JsonObject } from '@backstage/types'; import { Stepper as MuiStepper, @@ -21,11 +22,12 @@ import { Button, makeStyles, } from '@material-ui/core'; -import { withTheme } from '@rjsf/core'; +import { FieldValidation, FormValidation, withTheme } from '@rjsf/core'; import { Theme as MuiTheme } from '@rjsf/material-ui'; import React, { useMemo, useState } from 'react'; import { FieldExtensionOptions } from '../../../extensions'; import { TemplateParameterSchema } from '../../../types'; +import { createAsyncValidator } from './createAsyncValidators'; import { useTemplateSchema } from './useTemplateSchema'; const useStyles = makeStyles(theme => ({ @@ -51,6 +53,7 @@ const Form = withTheme(MuiTheme); export const Stepper = (props: StepperProps) => { const { steps } = useTemplateSchema(props.manifest); + const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); const [formState, setFormState] = useState({}); const styles = useStyles(); @@ -61,11 +64,31 @@ export const Stepper = (props: StepperProps) => { ); }, [props.extensions]); + const validators = useMemo(() => { + return Object.fromEntries( + props.extensions.map(({ name, validation }) => [name, validation]), + ); + }, [props.extensions]); + + const validator = useMemo(() => { + return createAsyncValidator(steps[activeStep].originalSchema, validators, { + apiHolder, + }); + }, [steps, activeStep, validators, apiHolder]); + const handleBack = () => { setActiveStep(prevActiveStep => prevActiveStep - 1); }; - const handleNext = ({ formData }: { formData: JsonObject }) => { + const handleNext = async ({ formData }: { formData: JsonObject }) => { + console.log('running validation'); + + const errors = await validator(formData, { + addError: () => {}, + __errors: [], + } as any); + + console.log('errors'); setActiveStep(prevActiveStep => prevActiveStep + 1); setFormState(current => ({ ...current, ...formData })); }; diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts new file mode 100644 index 0000000000..613deb57b3 --- /dev/null +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts @@ -0,0 +1,83 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { FormValidation } from '@rjsf/core'; +import { JsonObject, JsonValue } from '@backstage/types'; +import { ApiHolder } from '@backstage/core-plugin-api'; +import { CustomFieldValidator } from '../../../extensions'; + +function isObject(obj: unknown): obj is JsonObject { + return typeof obj === 'object' && obj !== null && !Array.isArray(obj); +} + +export const createAsyncValidator = ( + rootSchema: JsonObject, + validators: Record>, + context: { + apiHolder: ApiHolder; + }, +) => { + async function validate( + schema: JsonObject, + formData: JsonObject, + errors: FormValidation, + ) { + const schemaProps = schema.properties; + const customObject = schema.type === 'object' && schemaProps === undefined; + + if (!isObject(schemaProps) && !customObject) { + return; + } + + if (schemaProps) { + for (const [key, propData] of Object.entries(formData)) { + const propValidation = errors[key]; + + if (isObject(propData)) { + const propSchemaProps = schemaProps[key]; + if (isObject(propSchemaProps)) { + await validate( + propSchemaProps, + propData as JsonObject, + propValidation as FormValidation, + ); + } + } else { + const propSchema = schemaProps[key]; + const fieldName = + isObject(propSchema) && (propSchema['ui:field'] as string); + if (fieldName && typeof validators[fieldName] === 'function') { + await validators[fieldName]!( + propData as JsonValue, + propValidation, + context, + ); + } + } + } + } else if (customObject) { + const fieldName = schema['ui:field'] as string; + if (fieldName && typeof validators[fieldName] === 'function') { + await validators[fieldName]!(formData, errors, context); + } + } + } + + return async (formData: JsonObject, errors: FormValidation) => { + await validate(rootSchema, formData, errors); + return errors; + }; +}; diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts index d5fe244a25..dac2c7b61c 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts @@ -24,6 +24,7 @@ export const useTemplateSchema = ( ): { steps: { uiSchema: UiSchema; + originalSchema: JsonObject; schema: JsonObject; title: string; description?: string; @@ -33,6 +34,7 @@ export const useTemplateSchema = ( const steps = manifest.steps.map(({ title, description, schema }) => ({ title, description, + originalSchema: schema, ...extractSchemaFromStep(schema), })); @@ -45,6 +47,7 @@ export const useTemplateSchema = ( // Then filter out the properties that are not enabled with feature flag .map(step => ({ ...step, + schema: { ...step.schema, // Title is rendered at the top of the page, so let's ignore this from jsonschemaform From 7b186350d893e848a99379d097f16fc67fa7cdc2 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 2 Aug 2022 15:58:44 +0200 Subject: [PATCH 214/239] chore: rendering the errors for the async validation Signed-off-by: blam --- .../TemplateWizardPage/Stepper/Stepper.tsx | 40 +++++++++++++++---- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 240139ae5c..bb37e3143c 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -22,7 +22,7 @@ import { Button, makeStyles, } from '@material-ui/core'; -import { FieldValidation, FormValidation, withTheme } from '@rjsf/core'; +import { FormValidation, withTheme } from '@rjsf/core'; import { Theme as MuiTheme } from '@rjsf/material-ui'; import React, { useMemo, useState } from 'react'; import { FieldExtensionOptions } from '../../../extensions'; @@ -56,6 +56,7 @@ export const Stepper = (props: StepperProps) => { const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); const [formState, setFormState] = useState({}); + const [errors, setErrors] = useState(); const styles = useStyles(); const extensions = useMemo(() => { @@ -81,15 +82,37 @@ export const Stepper = (props: StepperProps) => { }; const handleNext = async ({ formData }: { formData: JsonObject }) => { - console.log('running validation'); + setErrors(undefined); - const errors = await validator(formData, { - addError: () => {}, - __errors: [], - } as any); + const errorContext: any = {}; + for (const [key] of Object.entries(formData)) { + const localFieldContext = { + __errors: [] as string[], + addError: (message: string) => { + localFieldContext.__errors.push(message); + }, + }; + errorContext[key] = localFieldContext; + } - console.log('errors'); - setActiveStep(prevActiveStep => prevActiveStep + 1); + const returnedValidation = await validator( + formData, + errorContext as FormValidation, + ); + + const hasErrors = Object.values(returnedValidation).some(i => { + if ('__errors' in i) { + return i.__errors.length > 0; + } + return false; + }); + + if (hasErrors) { + setErrors(returnedValidation); + } else { + setErrors(undefined); + setActiveStep(prevActiveStep => prevActiveStep + 1); + } setFormState(current => ({ ...current, ...formData })); }; @@ -104,6 +127,7 @@ export const Stepper = (props: StepperProps) => {
Date: Thu, 18 Aug 2022 15:53:21 +0200 Subject: [PATCH 215/239] Update happy-kiwis-look.md Signed-off-by: Ben Lambert --- .changeset/happy-kiwis-look.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/happy-kiwis-look.md b/.changeset/happy-kiwis-look.md index c7c82954ee..ff0da8943b 100644 --- a/.changeset/happy-kiwis-look.md +++ b/.changeset/happy-kiwis-look.md @@ -2,4 +2,4 @@ '@backstage/create-app': patch --- -Fix typo +Fix typo in the documentation From d1200316767c8c69b18077ccbbf6e61f48f93233 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 3 Aug 2022 14:56:39 +0200 Subject: [PATCH 216/239] chore: added a library to work with the json schema form and make it easier to take into account all the different versions of jsonschema Signed-off-by: blam --- plugins/scaffolder/package.json | 1 + .../Stepper/createAsyncValidators.test.ts | 154 ++++++++++++++++++ .../Stepper/createAsyncValidators.ts | 71 +++----- yarn.lock | 40 +++++ 4 files changed, 221 insertions(+), 45 deletions(-) create mode 100644 plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 626a20d73e..52be3be8a4 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -65,6 +65,7 @@ "humanize-duration": "^3.25.1", "immer": "^9.0.1", "json-schema": "^0.4.0", + "json-schema-library": "^6.0.0", "lodash": "^4.17.21", "luxon": "^3.0.0", "qs": "^6.9.4", diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts new file mode 100644 index 0000000000..f101ecf0f0 --- /dev/null +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts @@ -0,0 +1,154 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { JsonObject } from '@backstage/types'; +import { CustomFieldValidator } from '../../../extensions'; +import { createAsyncValidator } from './createAsyncValidators'; + +describe('createAsyncValidators', () => { + it('should call the correct functions for validation', async () => { + const schema: JsonObject = { + type: 'object', + properties: { + name: { + type: 'string', + 'ui:field': 'NameField', + }, + address: { + type: 'object', + 'ui:field': 'AddressField', + properties: { + street: { + type: 'string', + }, + postcode: { + type: 'string', + }, + }, + }, + }, + }; + + const validators = { NameField: jest.fn(), AddressField: jest.fn() }; + + const validate = createAsyncValidator(schema, validators, { + apiHolder: { get: jest.fn() }, + }); + + await validate({ + name: 'asd', + address: { street: 'street', postcode: 'postcode' }, + }); + + expect(validators.NameField).toHaveBeenCalled(); + expect(validators.AddressField).toHaveBeenCalled(); + }); + + it('should return the correct errors to the frontend', async () => { + const schema: JsonObject = { + type: 'object', + properties: { + name: { + type: 'string', + 'ui:field': 'NameField', + }, + address: { + type: 'object', + 'ui:field': 'AddressField', + properties: { + street: { + type: 'string', + }, + postcode: { + type: 'string', + }, + }, + }, + }, + }; + + const NameField: CustomFieldValidator = (value, { addError }) => { + if (!value) { + addError('something is broken here!'); + } + }; + + const AddressField: CustomFieldValidator<{ + street?: string; + postcode?: string; + }> = (value, { addError }) => { + if (!value.postcode) { + addError('postcode is missing!'); + } + + if (!value.street) { + addError('street is missing here!'); + } + }; + + const validate = createAsyncValidator( + schema, + { + NameField: NameField as CustomFieldValidator, + AddressField: AddressField as CustomFieldValidator, + }, + { + apiHolder: { get: jest.fn() }, + }, + ); + + await expect( + validate({ + name: 'asd', + address: { street: 'street', postcode: 'postcode' }, + }), + ).resolves.toEqual({ + name: expect.objectContaining({ + __errors: [], + }), + address: expect.objectContaining({ + __errors: [], + }), + }); + + await expect( + validate({ + name: 'asd', + address: { street: '', postcode: 'postcode' }, + }), + ).resolves.toEqual({ + name: expect.objectContaining({ + __errors: [], + }), + address: expect.objectContaining({ + __errors: ['street is missing here!'], + }), + }); + + await expect( + validate({ + name: '', + address: { street: '', postcode: '' }, + }), + ).resolves.toEqual({ + name: expect.objectContaining({ + __errors: ['something is broken here!'], + }), + address: expect.objectContaining({ + __errors: ['postcode is missing!', 'street is missing here!'], + }), + }); + }); +}); diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts index 613deb57b3..26a51bf376 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts @@ -14,10 +14,11 @@ * limitations under the License. */ -import { FormValidation } from '@rjsf/core'; -import { JsonObject, JsonValue } from '@backstage/types'; +import { FieldValidation, FormValidation } from '@rjsf/core'; +import { JsonObject } from '@backstage/types'; import { ApiHolder } from '@backstage/core-plugin-api'; import { CustomFieldValidator } from '../../../extensions'; +import { Draft07 as JSONSchema } from 'json-schema-library'; function isObject(obj: unknown): obj is JsonObject { return typeof obj === 'object' && obj !== null && !Array.isArray(obj); @@ -30,54 +31,34 @@ export const createAsyncValidator = ( apiHolder: ApiHolder; }, ) => { - async function validate( - schema: JsonObject, - formData: JsonObject, - errors: FormValidation, - ) { - const schemaProps = schema.properties; - const customObject = schema.type === 'object' && schemaProps === undefined; + async function validate(formData: JsonObject, pathPrefix: string = '#') { + const parsedSchema = new JSONSchema(rootSchema); + const formValidation: Record = {}; + for (const [key, value] of Object.entries(formData)) { + const definitionInSchema = parsedSchema.getSchema( + `${pathPrefix}/${key}`, + formData, + ); - if (!isObject(schemaProps) && !customObject) { - return; - } - - if (schemaProps) { - for (const [key, propData] of Object.entries(formData)) { - const propValidation = errors[key]; - - if (isObject(propData)) { - const propSchemaProps = schemaProps[key]; - if (isObject(propSchemaProps)) { - await validate( - propSchemaProps, - propData as JsonObject, - propValidation as FormValidation, - ); - } - } else { - const propSchema = schemaProps[key]; - const fieldName = - isObject(propSchema) && (propSchema['ui:field'] as string); - if (fieldName && typeof validators[fieldName] === 'function') { - await validators[fieldName]!( - propData as JsonValue, - propValidation, - context, - ); - } + if (definitionInSchema && 'ui:field' in definitionInSchema) { + const validator = validators[definitionInSchema['ui:field']]; + if (validator) { + const fieldValidation = { + __errors: [] as string[], + addError: (message: string) => { + fieldValidation.__errors.push(message); + }, + }; + await validator(value, fieldValidation, context); + formValidation[key] = fieldValidation; } } - } else if (customObject) { - const fieldName = schema['ui:field'] as string; - if (fieldName && typeof validators[fieldName] === 'function') { - await validators[fieldName]!(formData, errors, context); - } } + + return formValidation; } - return async (formData: JsonObject, errors: FormValidation) => { - await validate(rootSchema, formData, errors); - return errors; + return async (formData: JsonObject) => { + return await validate(formData); }; }; diff --git a/yarn.lock b/yarn.lock index e697cffa41..b95e1bfe8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12254,6 +12254,11 @@ easy-table@1.1.0: optionalDependencies: wcwidth ">=1.0.1" +ebnf@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/ebnf/-/ebnf-1.9.0.tgz#9c2dd6052f3ed43a69c1f0b07b15bd03cefda764" + integrity sha512-LKK899+j758AgPq00ms+y90mo+2P86fMKUWD28sH0zLKUj7aL6iIH2wy4jejAMM9I2BawJ+2kp6C3mMXj+Ii5g== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -14651,6 +14656,25 @@ grpc-docs@^1.0.6, grpc-docs@^1.1.2: rollup-plugin-smart-asset "^2.1.2" styled-components "^5.3.3" +gson-conform@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/gson-conform/-/gson-conform-1.0.3.tgz#6f982f98ea84199280bd48b6bfbcd0ae7447f1e2" + integrity sha512-gaZQN/5ZbohkLBOs4JKHkg/IdOB9kuuEr5SVLAjHUs+Q+Nl746DRe18GgQy4oxxVXStO//Zga2wg4eWL9Mfshw== + +gson-pointer@4.1.1, gson-pointer@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/gson-pointer/-/gson-pointer-4.1.1.tgz#088d6aa38d52753530288d13b5a75b6a43170e9b" + integrity sha512-rOS/zCLUI8BT0+/U+p5nzI0RfhIyRmzkpwzyCj8gcLoRl3rHuysk6ci1IQ955AQQZDSNN3mVec26Sx9wRZ0EjA== + +gson-query@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/gson-query/-/gson-query-5.1.0.tgz#8f34a062849f8c08be0c35eddaa2ad18a4326a49" + integrity sha512-xKb/90XfmLLKGgX8Y7LRF4yKnMR/ckV5WOQ/Ip0pRXuDh7jUhdY1UYjPvQnF7/UMbNsAo0168j2j0yt9+4QdaA== + dependencies: + ebnf "^1.9.0" + gson-conform "^1.0.3" + gson-pointer "4.1.1" + gtoken@^6.0.0: version "6.0.1" resolved "https://registry.npmjs.org/gtoken/-/gtoken-6.0.1.tgz#1276371d51e93c4eface76e3f30f9e8f1cad3f1a" @@ -16989,6 +17013,17 @@ json-schema-compare@^0.2.2: dependencies: lodash "^4.17.4" +json-schema-library@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/json-schema-library/-/json-schema-library-6.0.0.tgz#2a823d850031842c6917f41a8c576af3b603ab48" + integrity sha512-1nTpSmyfmgJpaNPIBO1SnHpXiMUh76hZnqSuCrJr7Lcu2N2SB55UPgf5F790r4dy4i4o/Moaw7OdqDhEmxP/Rw== + dependencies: + deepmerge "^4.2.2" + fast-deep-equal "^3.1.3" + gson-pointer "^4.1.1" + gson-query "^5.1.0" + valid-url "^1.0.9" + json-schema-merge-allof@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" @@ -25926,6 +25961,11 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" From bc6a0c248a5191a75450a4ce3753b750a2ed3598 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 15:46:33 +0200 Subject: [PATCH 217/239] chore: fixing typescript Signed-off-by: blam --- .../TemplateWizardPage/Stepper/Stepper.tsx | 28 +++++++------------ .../Stepper/createAsyncValidators.ts | 14 ++-------- .../next/TemplateWizardPage/Stepper/schema.ts | 18 +++++++++++- .../Stepper/useTemplateSchema.ts | 4 +-- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index bb37e3143c..013147dc90 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -22,12 +22,13 @@ import { Button, makeStyles, } from '@material-ui/core'; -import { FormValidation, withTheme } from '@rjsf/core'; +import { FieldValidation, withTheme } from '@rjsf/core'; import { Theme as MuiTheme } from '@rjsf/material-ui'; import React, { useMemo, useState } from 'react'; import { FieldExtensionOptions } from '../../../extensions'; import { TemplateParameterSchema } from '../../../types'; import { createAsyncValidator } from './createAsyncValidators'; +import { createFieldValidation } from './schema'; import { useTemplateSchema } from './useTemplateSchema'; const useStyles = makeStyles(theme => ({ @@ -56,7 +57,9 @@ export const Stepper = (props: StepperProps) => { const apiHolder = useApiHolder(); const [activeStep, setActiveStep] = useState(0); const [formState, setFormState] = useState({}); - const [errors, setErrors] = useState(); + const [errors, setErrors] = useState< + undefined | Record + >(); const styles = useStyles(); const extensions = useMemo(() => { @@ -72,7 +75,8 @@ export const Stepper = (props: StepperProps) => { }, [props.extensions]); const validator = useMemo(() => { - return createAsyncValidator(steps[activeStep].originalSchema, validators, { + const { mergedSchema } = steps[activeStep]; + return createAsyncValidator(mergedSchema, validators, { apiHolder, }); }, [steps, activeStep, validators, apiHolder]); @@ -86,25 +90,13 @@ export const Stepper = (props: StepperProps) => { const errorContext: any = {}; for (const [key] of Object.entries(formData)) { - const localFieldContext = { - __errors: [] as string[], - addError: (message: string) => { - localFieldContext.__errors.push(message); - }, - }; - errorContext[key] = localFieldContext; + errorContext[key] = createFieldValidation(); } - const returnedValidation = await validator( - formData, - errorContext as FormValidation, - ); + const returnedValidation = await validator(formData); const hasErrors = Object.values(returnedValidation).some(i => { - if ('__errors' in i) { - return i.__errors.length > 0; - } - return false; + return i.__errors.length > 0; }); if (hasErrors) { diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts index 26a51bf376..e2f625892a 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts @@ -14,15 +14,12 @@ * limitations under the License. */ -import { FieldValidation, FormValidation } from '@rjsf/core'; +import { FieldValidation } from '@rjsf/core'; import { JsonObject } from '@backstage/types'; import { ApiHolder } from '@backstage/core-plugin-api'; import { CustomFieldValidator } from '../../../extensions'; import { Draft07 as JSONSchema } from 'json-schema-library'; - -function isObject(obj: unknown): obj is JsonObject { - return typeof obj === 'object' && obj !== null && !Array.isArray(obj); -} +import { createFieldValidation } from './schema'; export const createAsyncValidator = ( rootSchema: JsonObject, @@ -43,12 +40,7 @@ export const createAsyncValidator = ( if (definitionInSchema && 'ui:field' in definitionInSchema) { const validator = validators[definitionInSchema['ui:field']]; if (validator) { - const fieldValidation = { - __errors: [] as string[], - addError: (message: string) => { - fieldValidation.__errors.push(message); - }, - }; + const fieldValidation = createFieldValidation(); await validator(value, fieldValidation, context); formValidation[key] = fieldValidation; } diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts index 5a33a622bb..d353820004 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { JsonObject } from '@backstage/types'; -import { UiSchema } from '@rjsf/core'; +import { FieldValidation, UiSchema } from '@rjsf/core'; function isObject(value: unknown): value is JsonObject { return typeof value === 'object' && value !== null && !Array.isArray(value); @@ -110,3 +110,19 @@ export const extractSchemaFromStep = ( extractUiSchema(returnSchema, uiSchema); return { uiSchema, schema: returnSchema }; }; + +/** + * @alpha + * Creates a field validation object for use in react jsonschema form + * @returns {FieldValidation} A field validation object that can be used to validate a field + */ +export const createFieldValidation = (): FieldValidation => { + const fieldValidation: FieldValidation = { + __errors: [] as string[], + addError: (message: string) => { + fieldValidation.__errors.push(message); + }, + }; + + return fieldValidation; +}; diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts index dac2c7b61c..926fb8d56e 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts @@ -24,7 +24,7 @@ export const useTemplateSchema = ( ): { steps: { uiSchema: UiSchema; - originalSchema: JsonObject; + mergedSchema: JsonObject; schema: JsonObject; title: string; description?: string; @@ -34,7 +34,7 @@ export const useTemplateSchema = ( const steps = manifest.steps.map(({ title, description, schema }) => ({ title, description, - originalSchema: schema, + mergedSchema: schema, ...extractSchemaFromStep(schema), })); From ba2e4337d1a2e39424fc2e3896997448302cd944 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 12:09:11 -0300 Subject: [PATCH 218/239] fix(tech-insights-backend): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .../persistence/TechInsightsDatabase.test.ts | 17 ++++++++++++-- .../service/persistence/persistenceContext.ts | 22 +++++++++++++------ .../src/service/techInsightsContextBuilder.ts | 7 +++--- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts index e7e8819c66..3cf6d08c65 100644 --- a/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts +++ b/plugins/tech-insights-backend/src/service/persistence/TechInsightsDatabase.test.ts @@ -15,7 +15,7 @@ */ import { DateTime, Duration } from 'luxon'; import { TechInsightsStore } from '@backstage/plugin-tech-insights-node'; -import { Knex } from 'knex'; +import { Knex as KnexType, Knex } from 'knex'; import { TestDatabases } from '@backstage/backend-test-utils'; import { getVoidLogger } from '@backstage/backend-common'; import { initializePersistenceContext } from './persistenceContext'; @@ -165,15 +165,28 @@ const multipleSameFacts = [ }, ]; +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} + describe('Tech Insights database', () => { const databases = TestDatabases.create(); let store: TechInsightsStore; let testDbClient: Knex; beforeAll(async () => { testDbClient = await databases.init('SQLITE_3'); + const database = createDatabaseManager(testDbClient); store = ( - await initializePersistenceContext(testDbClient, { + await initializePersistenceContext(database, { logger: getVoidLogger(), }) ).techInsightsStore; diff --git a/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts b/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts index b0fb65349f..575ee67bdf 100644 --- a/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts +++ b/plugins/tech-insights-backend/src/service/persistence/persistenceContext.ts @@ -13,8 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { getVoidLogger, resolvePackagePath } from '@backstage/backend-common'; -import { Knex } from 'knex'; +import { + getVoidLogger, + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { Logger } from 'winston'; import { TechInsightsDatabase } from './TechInsightsDatabase'; import { TechInsightsStore } from '@backstage/plugin-tech-insights-node'; @@ -47,13 +50,18 @@ const defaultOptions: CreateDatabaseOptions = { * @public */ export const initializePersistenceContext = async ( - knex: Knex, + database: PluginDatabaseManager, options: CreateDatabaseOptions = defaultOptions, ): Promise => { - await knex.migrate.latest({ - directory: migrationsDir, - }); + const client = await database.getClient(); + + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } + return { - techInsightsStore: new TechInsightsDatabase(knex, options.logger), + techInsightsStore: new TechInsightsDatabase(client, options.logger), }; }; diff --git a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts index 008acf192d..9c54036020 100644 --- a/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts +++ b/plugins/tech-insights-backend/src/service/techInsightsContextBuilder.ts @@ -135,10 +135,9 @@ export const buildTechInsightsContext = async < const factRetrieverRegistry = buildFactRetrieverRegistry(); - const persistenceContext = await initializePersistenceContext( - await database.getClient(), - { logger }, - ); + const persistenceContext = await initializePersistenceContext(database, { + logger, + }); const factRetrieverEngine = await FactRetrieverEngine.create({ scheduler, From 332d6bff46973dee58f836907a15cf065798aa59 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 14:37:58 -0300 Subject: [PATCH 219/239] fix(bazaar-backend): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .../src/service/DatabaseHandler.test.ts | 16 +++++- .../src/service/DatabaseHandler.ts | 51 ++++++++++--------- plugins/bazaar-backend/src/service/router.ts | 3 +- 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts index 3099e5bbb2..e1a722016b 100644 --- a/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts +++ b/plugins/bazaar-backend/src/service/DatabaseHandler.test.ts @@ -16,6 +16,7 @@ import { DatabaseHandler } from './DatabaseHandler'; import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; +import { Knex as KnexType } from 'knex'; const bazaarProject: any = { name: 'n1', @@ -35,11 +36,24 @@ describe('DatabaseHandler', () => { ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], }); + function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, + ) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; + } + async function createDatabaseHandler(databaseId: TestDatabaseId) { const knex = await databases.init(databaseId); + const databaseManager = createDatabaseManager(knex); return { knex, - dbHandler: await DatabaseHandler.create({ database: knex }), + dbHandler: await DatabaseHandler.create({ database: databaseManager }), }; } diff --git a/plugins/bazaar-backend/src/service/DatabaseHandler.ts b/plugins/bazaar-backend/src/service/DatabaseHandler.ts index 7da06a54b8..d8d975b7ed 100644 --- a/plugins/bazaar-backend/src/service/DatabaseHandler.ts +++ b/plugins/bazaar-backend/src/service/DatabaseHandler.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { Knex } from 'knex'; const migrationsDir = resolvePackagePath( @@ -23,24 +26,27 @@ const migrationsDir = resolvePackagePath( ); type Options = { - database: Knex; + database: PluginDatabaseManager; }; export class DatabaseHandler { static async create(options: Options): Promise { const { database } = options; + const client = await database.getClient(); - await database.migrate.latest({ - directory: migrationsDir, - }); + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } - return new DatabaseHandler(options); + return new DatabaseHandler(client); } - private readonly database: Knex; + private readonly client: Knex; - private constructor(options: Options) { - this.database = options.database; + private constructor(client: Knex) { + this.client = client; } private columns = [ @@ -58,14 +64,11 @@ export class DatabaseHandler { ]; async getMembers(id: string) { - return await this.database - .select('*') - .from('members') - .where({ item_id: id }); + return await this.client.select('*').from('members').where({ item_id: id }); } async addMember(id: number, userId: string, picture?: string) { - await this.database + await this.client .insert({ item_id: id, user_id: userId, @@ -75,18 +78,18 @@ export class DatabaseHandler { } async deleteMember(id: number, userId: string) { - return await this.database('members') + return await this.client('members') .where({ item_id: id }) .andWhere('user_id', userId) .del(); } async getMetadataById(id: number) { - const coalesce = this.database.raw( + const coalesce = this.client.raw( 'coalesce(count(members.item_id), 0) as members_count', ); - return await this.database('metadata') + return await this.client('metadata') .select([...this.columns, coalesce]) .where({ 'metadata.id': id }) .groupBy(this.columns) @@ -94,11 +97,11 @@ export class DatabaseHandler { } async getMetadataByRef(entityRef: string) { - const coalesce = this.database.raw( + const coalesce = this.client.raw( 'coalesce(count(members.item_id), 0) as members_count', ); - return await this.database('metadata') + return await this.client('metadata') .select([...this.columns, coalesce]) .where({ 'metadata.entity_ref': entityRef }) .groupBy(this.columns) @@ -118,7 +121,7 @@ export class DatabaseHandler { responsible, } = bazaarProject; - await this.database + await this.client .insert({ name, entity_ref: entityRef, @@ -148,7 +151,7 @@ export class DatabaseHandler { responsible, } = bazaarProject; - return await this.database('metadata').where({ id: id }).update({ + return await this.client('metadata').where({ id: id }).update({ name, entity_ref: entityRef, description, @@ -163,15 +166,15 @@ export class DatabaseHandler { } async deleteMetadata(id: number) { - return await this.database('metadata').where({ id: id }).del(); + return await this.client('metadata').where({ id: id }).del(); } async getProjects() { - const coalesce = this.database.raw( + const coalesce = this.client.raw( 'coalesce(count(members.item_id), 0) as members_count', ); - return await this.database('metadata') + return await this.client('metadata') .select([...this.columns, coalesce]) .groupBy(this.columns) .leftJoin('members', 'metadata.id', '=', 'members.item_id'); diff --git a/plugins/bazaar-backend/src/service/router.ts b/plugins/bazaar-backend/src/service/router.ts index c61309d279..a5248c2949 100644 --- a/plugins/bazaar-backend/src/service/router.ts +++ b/plugins/bazaar-backend/src/service/router.ts @@ -33,9 +33,8 @@ export async function createRouter( options: RouterOptions, ): Promise { const { logger, database } = options; - const db = await database.getClient(); - const dbHandler = await DatabaseHandler.create({ database: db }); + const dbHandler = await DatabaseHandler.create({ database }); logger.info('Initializing Bazaar backend'); From 04eedfc4bf2f9550a398236783ffab9402760310 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 15:00:36 -0300 Subject: [PATCH 220/239] fix(app-backend): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .../src/lib/assets/StaticAssetsStore.test.ts | 32 +++++++++++++++---- .../src/lib/assets/StaticAssetsStore.ts | 27 ++++++++++------ plugins/app-backend/src/service/router.ts | 2 +- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts b/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts index 95de905e7a..3d0973e18c 100644 --- a/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts +++ b/plugins/app-backend/src/lib/assets/StaticAssetsStore.test.ts @@ -14,12 +14,25 @@ * limitations under the License. */ +import { Knex as KnexType } from 'knex'; import { getVoidLogger } from '@backstage/backend-common'; import { TestDatabases } from '@backstage/backend-test-utils'; import { StaticAssetsStore } from './StaticAssetsStore'; const logger = getVoidLogger(); +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} + describe('StaticAssetsStore', () => { const databases = TestDatabases.create({ ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'], @@ -28,9 +41,11 @@ describe('StaticAssetsStore', () => { it.each(databases.eachSupportedId())( 'should store and retrieve assets, %p', async databaseId => { + const client = await databases.init(databaseId); + const database = createDatabaseManager(client); const store = await StaticAssetsStore.create({ logger, - database: await databases.init(databaseId), + database, }); await store.storeAssets([ @@ -69,9 +84,11 @@ describe('StaticAssetsStore', () => { it.each(databases.eachSupportedId())( 'should update assets timestamps, but not contents, %p', async databaseId => { + const client = await databases.init(databaseId); + const database = createDatabaseManager(client); const store = await StaticAssetsStore.create({ logger, - database: await databases.init(databaseId), + database, }); await store.storeAssets([ @@ -119,7 +136,8 @@ describe('StaticAssetsStore', () => { it.each(databases.eachSupportedId())( 'should trim old assets, %p', async databaseId => { - const database = await databases.init(databaseId); + const knex = await databases.init(databaseId); + const database = createDatabaseManager(knex); const store = await StaticAssetsStore.create({ logger, database, @@ -137,12 +155,12 @@ describe('StaticAssetsStore', () => { ]); // Rewrite modified time of "old" to be 1h in the past - const updated = await database('static_assets_cache') + const updated = await knex('static_assets_cache') .where({ path: 'old' }) .update({ - last_modified_at: database.client.config.client.includes('sqlite3') - ? database.raw(`datetime('now', '-3600 seconds')`) - : database.raw(`now() + interval '-3600 seconds'`), + last_modified_at: knex.client.config.client.includes('sqlite3') + ? knex.raw(`datetime('now', '-3600 seconds')`) + : knex.raw(`now() + interval '-3600 seconds'`), }); expect(updated).toBe(1); diff --git a/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts b/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts index 70d664307e..6905d63779 100644 --- a/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts +++ b/plugins/app-backend/src/lib/assets/StaticAssetsStore.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { Knex } from 'knex'; import { Logger } from 'winston'; import { DateTime } from 'luxon'; @@ -34,7 +37,7 @@ interface StaticAssetRow { /** @internal */ export interface StaticAssetsStoreOptions { - database: Knex; + database: PluginDatabaseManager; logger: Logger; } @@ -48,15 +51,21 @@ export class StaticAssetsStore implements StaticAssetProvider { #logger: Logger; static async create(options: StaticAssetsStoreOptions) { - await options.database.migrate.latest({ - directory: migrationsDir, - }); - return new StaticAssetsStore(options); + const { database } = options; + const client = await database.getClient(); + + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } + + return new StaticAssetsStore(client, options.logger); } - private constructor(options: StaticAssetsStoreOptions) { - this.#db = options.database; - this.#logger = options.logger; + private constructor(client: Knex, logger: Logger) { + this.#db = client; + this.#logger = logger; } /** diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index b666f323db..46ecd470da 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -130,7 +130,7 @@ export async function createRouter( if (options.database) { const store = await StaticAssetsStore.create({ logger, - database: await options.database.getClient(), + database: options.database, }); const assets = await findStaticAssets(staticDir); From 833e2e4904d0d59c6bb65e7d06048281b264d00a Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 15:49:18 -0300 Subject: [PATCH 221/239] fix(search-backend-module-pg): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .../search-backend-module-pg/api-report.md | 4 +++- .../src/PgSearchEngine/PgSearchEngine.ts | 4 ++-- .../database/DatabaseDocumentStore.test.ts | 21 +++++++++++++++++-- .../src/database/DatabaseDocumentStore.ts | 19 ++++++++++++----- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/plugins/search-backend-module-pg/api-report.md b/plugins/search-backend-module-pg/api-report.md index d1913a535d..33d0f4318c 100644 --- a/plugins/search-backend-module-pg/api-report.md +++ b/plugins/search-backend-module-pg/api-report.md @@ -26,7 +26,9 @@ export class DatabaseDocumentStore implements DatabaseStore { // (undocumented) completeInsert(tx: Knex.Transaction, type: string): Promise; // (undocumented) - static create(knex: Knex): Promise; + static create( + database: PluginDatabaseManager, + ): Promise; // (undocumented) getTransaction(): Promise; // (undocumented) diff --git a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts index 9da5ceec0e..cd99a8c4b1 100644 --- a/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts +++ b/plugins/search-backend-module-pg/src/PgSearchEngine/PgSearchEngine.ts @@ -115,14 +115,14 @@ export class PgSearchEngine implements SearchEngine { config: Config; }): Promise { return new PgSearchEngine( - await DatabaseDocumentStore.create(await options.database.getClient()), + await DatabaseDocumentStore.create(options.database), options.config, ); } static async fromConfig(config: Config, options: PgSearchOptions) { return new PgSearchEngine( - await DatabaseDocumentStore.create(await options.database.getClient()), + await DatabaseDocumentStore.create(options.database), config, ); } diff --git a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts index 355e41352d..59c8d85562 100644 --- a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts +++ b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.test.ts @@ -13,6 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { Knex as KnexType } from 'knex'; import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils'; import { IndexableDocument } from '@backstage/plugin-search-common'; import { PgSearchHighlightOptions } from '../PgSearchEngine'; @@ -30,6 +32,18 @@ const highlightOptions: PgSearchHighlightOptions = { fragmentDelimiter: ' ... ', }; +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} + describe('DatabaseDocumentStore', () => { describe('unsupported', () => { const databases = TestDatabases.create({ @@ -51,9 +65,10 @@ describe('DatabaseDocumentStore', () => { 'should fail to create, %p', async databaseId => { const knex = await databases.init(databaseId); + const databaseManager = createDatabaseManager(knex); await expect( - async () => await DatabaseDocumentStore.create(knex), + async () => await DatabaseDocumentStore.create(databaseManager), ).rejects.toThrow(); }, 60_000, @@ -67,7 +82,9 @@ describe('DatabaseDocumentStore', () => { async function createStore(databaseId: TestDatabaseId) { const knex = await databases.init(databaseId); - const store = await DatabaseDocumentStore.create(knex); + const databaseManager = createDatabaseManager(knex); + const store = await DatabaseDocumentStore.create(databaseManager); + return { store, knex }; } diff --git a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts index 8e73c0f16f..4da3cca082 100644 --- a/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts +++ b/plugins/search-backend-module-pg/src/database/DatabaseDocumentStore.ts @@ -13,7 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { IndexableDocument } from '@backstage/plugin-search-common'; import { Knex } from 'knex'; import { @@ -30,7 +33,10 @@ const migrationsDir = resolvePackagePath( ); export class DatabaseDocumentStore implements DatabaseStore { - static async create(knex: Knex): Promise { + static async create( + database: PluginDatabaseManager, + ): Promise { + const knex = await database.getClient(); try { const majorVersion = await queryPostgresMajorVersion(knex); @@ -49,9 +55,12 @@ export class DatabaseDocumentStore implements DatabaseStore { ); } - await knex.migrate.latest({ - directory: migrationsDir, - }); + if (!database.migrations?.skip) { + await knex.migrate.latest({ + directory: migrationsDir, + }); + } + return new DatabaseDocumentStore(knex); } From f2ee2a5dbb11daebe5be36efb8edb1fdc2e0de4e Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 18:49:07 -0300 Subject: [PATCH 222/239] fix(code-coverage-backend): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- .../src/service/CodeCoverageDatabase.test.ts | 17 ++++++++++++++-- .../src/service/CodeCoverageDatabase.ts | 20 ++++++++++++++----- .../src/service/router.ts | 4 +--- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.test.ts b/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.test.ts index 635debca02..ed913e2c79 100644 --- a/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.test.ts +++ b/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.test.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { Knex as KnexType } from 'knex'; import { DatabaseManager } from '@backstage/backend-common'; import { stringifyEntityRef } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; @@ -95,12 +96,24 @@ const coverage: Array = [ ], }, ]; - +function createDatabaseManager( + client: KnexType, + skipMigrations: boolean = false, +) { + return { + getClient: async () => client, + migrations: { + skip: skipMigrations, + }, + }; +} let database: CodeCoverageStore; describe('CodeCoverageDatabase', () => { beforeAll(async () => { const client = await db.getClient(); - database = await CodeCoverageDatabase.create(client); + const databaseManager = createDatabaseManager(client); + database = await CodeCoverageDatabase.create(databaseManager); + await database.insertCodeCoverage(coverage[0]); await database.insertCodeCoverage(coverage[1]); }); diff --git a/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.ts b/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.ts index 9235f3a8fd..4cbcd76fe0 100644 --- a/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.ts +++ b/plugins/code-coverage-backend/src/service/CodeCoverageDatabase.ts @@ -13,7 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { NotFoundError } from '@backstage/errors'; import { parseEntityRef, stringifyEntityRef } from '@backstage/catalog-model'; import { Knex } from 'knex'; @@ -41,10 +44,17 @@ const migrationsDir = resolvePackagePath( ); export class CodeCoverageDatabase implements CodeCoverageStore { - static async create(knex: Knex): Promise { - await knex.migrate.latest({ - directory: migrationsDir, - }); + static async create( + database: PluginDatabaseManager, + ): Promise { + const knex = await database.getClient(); + + if (!database.migrations?.skip) { + await knex.migrate.latest({ + directory: migrationsDir, + }); + } + return new CodeCoverageDatabase(knex); } diff --git a/plugins/code-coverage-backend/src/service/router.ts b/plugins/code-coverage-backend/src/service/router.ts index 37279b549f..b87b21bffd 100644 --- a/plugins/code-coverage-backend/src/service/router.ts +++ b/plugins/code-coverage-backend/src/service/router.ts @@ -57,9 +57,7 @@ export const makeRouter = async ( ): Promise => { const { config, logger, discovery, database, urlReader } = options; - const codeCoverageDatabase = await CodeCoverageDatabase.create( - await database.getClient(), - ); + const codeCoverageDatabase = await CodeCoverageDatabase.create(database); const codecovUrl = await discovery.getExternalBaseUrl('code-coverage'); const catalogApi: CatalogApi = new CatalogClient({ discoveryApi: discovery }); const scm = ScmIntegrations.fromConfig(config); From 08b9631a5d13549b5323789edf800fcc3dc21141 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 20:30:46 -0300 Subject: [PATCH 223/239] fix(scaffolder-backend): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- plugins/scaffolder-backend/api-report.md | 2 +- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 61 ++++++++++++++++--- .../tasks/StorageTaskBroker.test.ts | 3 +- .../src/scaffolder/tasks/TaskWorker.test.ts | 2 +- .../src/service/router.test.ts | 2 +- .../scaffolder-backend/src/service/router.ts | 4 +- 6 files changed, 59 insertions(+), 15 deletions(-) diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 96a4d7b400..497e63f888 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -504,7 +504,7 @@ export class DatabaseTaskStore implements TaskStore { // @public export type DatabaseTaskStoreOptions = { - database: Knex; + database: PluginDatabaseManager | Knex; }; // @public diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index d62e59744f..d7f105887b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -15,7 +15,10 @@ */ import { JsonObject } from '@backstage/types'; -import { resolvePackagePath } from '@backstage/backend-common'; +import { + PluginDatabaseManager, + resolvePackagePath, +} from '@backstage/backend-common'; import { ConflictError, NotFoundError } from '@backstage/errors'; import { Knex } from 'knex'; import { v4 as uuid } from 'uuid'; @@ -61,9 +64,20 @@ export type RawDbTaskEventRow = { * @public */ export type DatabaseTaskStoreOptions = { - database: Knex; + database: PluginDatabaseManager | Knex; }; +/** + * Typeguard to help DatabaseTaskStore understand when database is PluginDatabaseManager vs. when database is a Knex instance. + * + * * @public + */ +function isPluginDatabaseManager( + opt: PluginDatabaseManager | Knex, +): opt is PluginDatabaseManager { + return (opt as PluginDatabaseManager).getClient !== undefined; +} + const parseSqlDateToIsoString = (input: T): T | string => { if (typeof input === 'string') { return DateTime.fromSQL(input, { zone: 'UTC' }).toISO(); @@ -83,14 +97,45 @@ export class DatabaseTaskStore implements TaskStore { static async create( options: DatabaseTaskStoreOptions, ): Promise { - await options.database.migrate.latest({ - directory: migrationsDir, - }); - return new DatabaseTaskStore(options); + const { database } = options; + const client = await this.getClient(database); + + await this.runMigrations(database, client); + + return new DatabaseTaskStore(client); } - private constructor(options: DatabaseTaskStoreOptions) { - this.db = options.database; + private static async getClient( + database: PluginDatabaseManager | Knex, + ): Promise { + if (isPluginDatabaseManager(database)) { + return database.getClient(); + } + + return database; + } + + private static async runMigrations( + database: PluginDatabaseManager | Knex, + client: Knex, + ): Promise { + if (!isPluginDatabaseManager(database)) { + await client.migrate.latest({ + directory: migrationsDir, + }); + + return; + } + + if (!database.migrations?.skip) { + await client.migrate.latest({ + directory: migrationsDir, + }); + } + } + + private constructor(client: Knex) { + this.db = client; } async list(options: { diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts index 2350072806..4fc142a991 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.test.ts @@ -32,8 +32,9 @@ async function createStore(): Promise { }, }), ).forPlugin('scaffolder'); + return await DatabaseTaskStore.create({ - database: await manager.getClient(), + database: manager, }); } diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts index e1421486f4..ee8ae400c4 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts @@ -40,7 +40,7 @@ async function createStore(): Promise { }), ).forPlugin('scaffolder'); return await DatabaseTaskStore.create({ - database: await manager.getClient(), + database: manager, }); } diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index f769038369..e59f222e2d 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -127,7 +127,7 @@ describe('createRouter', () => { beforeEach(async () => { const logger = getVoidLogger(); const databaseTaskStore = await DatabaseTaskStore.create({ - database: await createDatabase().getClient(), + database: createDatabase(), }); taskBroker = new StorageTaskBroker(databaseTaskStore, logger); diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 2a8f15d967..1c6ea39443 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -97,9 +97,7 @@ export async function createRouter( let taskBroker: TaskBroker; if (!options.taskBroker) { - const databaseTaskStore = await DatabaseTaskStore.create({ - database: await database.getClient(), - }); + const databaseTaskStore = await DatabaseTaskStore.create({ database }); taskBroker = new StorageTaskBroker(databaseTaskStore, logger); } else { taskBroker = options.taskBroker; From 02ced097051515a83dad5736e35cc4742b49c2d1 Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 20:38:36 -0300 Subject: [PATCH 224/239] fix(backend-tasks): Allow it to skip migrations Signed-off-by: Daniel Dias Branco Arthaud --- packages/backend-tasks/src/tasks/TaskScheduler.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/backend-tasks/src/tasks/TaskScheduler.ts b/packages/backend-tasks/src/tasks/TaskScheduler.ts index f1668a6691..f14fb9fc2b 100644 --- a/packages/backend-tasks/src/tasks/TaskScheduler.ts +++ b/packages/backend-tasks/src/tasks/TaskScheduler.ts @@ -58,9 +58,12 @@ export class TaskScheduler { */ forPlugin(pluginId: string): PluginTaskScheduler { const databaseFactory = once(async () => { - const knex = await this.databaseManager.forPlugin(pluginId).getClient(); + const databaseManager = this.databaseManager.forPlugin(pluginId); + const knex = await databaseManager.getClient(); - await migrateBackendTasks(knex); + if (!databaseManager.migrations?.skip) { + await migrateBackendTasks(knex); + } const janitor = new PluginTaskSchedulerJanitor({ knex, From 8872cc735d88fc1f3a5075f9e523ce42c7bddd6c Mon Sep 17 00:00:00 2001 From: Daniel Dias Branco Arthaud Date: Sun, 14 Aug 2022 20:49:53 -0300 Subject: [PATCH 225/239] Add changeset Signed-off-by: Daniel Dias Branco Arthaud --- .changeset/cold-frogs-kiss.md | 16 ++++++++++++++++ .changeset/light-beans-share.md | 16 ++++++++++++++++ .changeset/rude-books-rush.md | 9 +++++++++ 3 files changed, 41 insertions(+) create mode 100644 .changeset/cold-frogs-kiss.md create mode 100644 .changeset/light-beans-share.md create mode 100644 .changeset/rude-books-rush.md diff --git a/.changeset/cold-frogs-kiss.md b/.changeset/cold-frogs-kiss.md new file mode 100644 index 0000000000..7af9468ca1 --- /dev/null +++ b/.changeset/cold-frogs-kiss.md @@ -0,0 +1,16 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Fixed a bug in plugin-scaffolder-backend where it ignores the skip migration database options. + +To use this new implementation you need to create the instance of `DatabaseTaskStore` using the `PluginDatabaseManager` instead of `Knex`; + +``` +import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common'; +import { DatabaseTaskStore } from '@backstage/plugin-scaffolder-backend'; + +const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() }); +const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } }); +const databaseTaskStore = await DatabaseTaskStore.create(databaseManager); +``` diff --git a/.changeset/light-beans-share.md b/.changeset/light-beans-share.md new file mode 100644 index 0000000000..51c59ff7d0 --- /dev/null +++ b/.changeset/light-beans-share.md @@ -0,0 +1,16 @@ +--- +'@backstage/plugin-search-backend-module-pg': minor +--- + +Fixed a bug in search-backend-module-pg where it ignores the skip migration database options when using the database. + +To use this new implementation you need to create the instance of `DatabaseDocumentStore` using the `PluginDatabaseManager` instead of `Knex`; + +``` +import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common'; +import { DatabaseDocumentStore } from '@backstage/plugin-search-backend-module-pg'; + +const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() }); +const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } }); +const databaseDocumentStore = await DatabaseDocumentStore.create(databaseManager); +``` diff --git a/.changeset/rude-books-rush.md b/.changeset/rude-books-rush.md new file mode 100644 index 0000000000..a98e90e27e --- /dev/null +++ b/.changeset/rude-books-rush.md @@ -0,0 +1,9 @@ +--- +'@backstage/backend-tasks': patch +'@backstage/plugin-app-backend': patch +'@backstage/plugin-bazaar-backend': patch +'@backstage/plugin-code-coverage-backend': patch +'@backstage/plugin-tech-insights-backend': patch +--- + +Fixed a bug where the database option to skip migrations was ignored. From 3424a8075dad7569f4692c0123645e4fbf54253a Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 16:05:52 +0200 Subject: [PATCH 226/239] chore: added changeset Signed-off-by: blam --- .changeset/sharp-swans-suffer.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/sharp-swans-suffer.md diff --git a/.changeset/sharp-swans-suffer.md b/.changeset/sharp-swans-suffer.md new file mode 100644 index 0000000000..841d746634 --- /dev/null +++ b/.changeset/sharp-swans-suffer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': minor +--- + +Added support for `async` validation for the `next` version of the plugin From bdf812508adea8ad39d7d854a5b20ae05d212c5c Mon Sep 17 00:00:00 2001 From: John Philip Date: Thu, 18 Aug 2022 10:11:00 -0400 Subject: [PATCH 227/239] fix spelling Signed-off-by: John Philip --- .changeset/lazy-snakes-film.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/lazy-snakes-film.md b/.changeset/lazy-snakes-film.md index a21d197c51..ff4097f78f 100644 --- a/.changeset/lazy-snakes-film.md +++ b/.changeset/lazy-snakes-film.md @@ -2,4 +2,4 @@ '@backstage/core-components': minor --- -Adds code to autogenerate ids for headers parsed through the MarkdownContent component. +Adds code to generate ids for headers parsed through the MarkdownContent component. From ac43121a1ee5eed673c257d421479e3daac17f66 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 16:16:09 +0200 Subject: [PATCH 228/239] chore: updating api-report Signed-off-by: blam --- plugins/scaffolder/api-report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 24ff8e210d..891b76906e 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -44,7 +44,7 @@ export type CustomFieldValidator = ( context: { apiHolder: ApiHolder; }, -) => void; +) => void | Promise; // @public export const EntityNamePickerFieldExtension: FieldExtensionComponent< From ac002fe3f062ff47d0faadfc6933a18cb1fcdeb2 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 16:24:46 +0200 Subject: [PATCH 229/239] chore: removing the error context, this isn't used anymore Signed-off-by: blam --- .../src/next/TemplateWizardPage/Stepper/Stepper.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 013147dc90..5178318978 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -88,11 +88,6 @@ export const Stepper = (props: StepperProps) => { const handleNext = async ({ formData }: { formData: JsonObject }) => { setErrors(undefined); - const errorContext: any = {}; - for (const [key] of Object.entries(formData)) { - errorContext[key] = createFieldValidation(); - } - const returnedValidation = await validator(formData); const hasErrors = Object.values(returnedValidation).some(i => { From 5d2b0b8fc890ade38fccd2a1ddd0940501e6cdcc Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 16:26:13 +0200 Subject: [PATCH 230/239] chore: remove some whitespace Signed-off-by: blam --- .../src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts index 926fb8d56e..0482d89503 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/useTemplateSchema.ts @@ -47,7 +47,6 @@ export const useTemplateSchema = ( // Then filter out the properties that are not enabled with feature flag .map(step => ({ ...step, - schema: { ...step.schema, // Title is rendered at the top of the page, so let's ignore this from jsonschemaform From ddb0557e56d86fd4e43765b4d15bff1ac65aa733 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 18 Aug 2022 16:47:28 +0200 Subject: [PATCH 231/239] chore: code-review comments Signed-off-by: blam --- .../src/next/TemplateWizardPage/Stepper/Stepper.tsx | 11 ++++++----- .../Stepper/createAsyncValidators.test.ts | 6 +++--- .../Stepper/createAsyncValidators.ts | 8 ++++++-- .../src/next/TemplateWizardPage/Stepper/schema.ts | 1 - 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx index 5178318978..b85a1e1f5d 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.tsx @@ -27,8 +27,7 @@ import { Theme as MuiTheme } from '@rjsf/material-ui'; import React, { useMemo, useState } from 'react'; import { FieldExtensionOptions } from '../../../extensions'; import { TemplateParameterSchema } from '../../../types'; -import { createAsyncValidator } from './createAsyncValidators'; -import { createFieldValidation } from './schema'; +import { createAsyncValidators } from './createAsyncValidators'; import { useTemplateSchema } from './useTemplateSchema'; const useStyles = makeStyles(theme => ({ @@ -74,9 +73,9 @@ export const Stepper = (props: StepperProps) => { ); }, [props.extensions]); - const validator = useMemo(() => { + const validation = useMemo(() => { const { mergedSchema } = steps[activeStep]; - return createAsyncValidator(mergedSchema, validators, { + return createAsyncValidators(mergedSchema, validators, { apiHolder, }); }, [steps, activeStep, validators, apiHolder]); @@ -86,9 +85,11 @@ export const Stepper = (props: StepperProps) => { }; const handleNext = async ({ formData }: { formData: JsonObject }) => { + // TODO(blam): What do we do about loading states, does each field extension get a chance + // to display it's own loading? Or should we grey out the entire form. setErrors(undefined); - const returnedValidation = await validator(formData); + const returnedValidation = await validation(formData); const hasErrors = Object.values(returnedValidation).some(i => { return i.__errors.length > 0; diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts index f101ecf0f0..ed887fb56d 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.test.ts @@ -15,7 +15,7 @@ */ import { JsonObject } from '@backstage/types'; import { CustomFieldValidator } from '../../../extensions'; -import { createAsyncValidator } from './createAsyncValidators'; +import { createAsyncValidators } from './createAsyncValidators'; describe('createAsyncValidators', () => { it('should call the correct functions for validation', async () => { @@ -43,7 +43,7 @@ describe('createAsyncValidators', () => { const validators = { NameField: jest.fn(), AddressField: jest.fn() }; - const validate = createAsyncValidator(schema, validators, { + const validate = createAsyncValidators(schema, validators, { apiHolder: { get: jest.fn() }, }); @@ -98,7 +98,7 @@ describe('createAsyncValidators', () => { } }; - const validate = createAsyncValidator( + const validate = createAsyncValidators( schema, { NameField: NameField as CustomFieldValidator, diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts index e2f625892a..d89f0d4e5f 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/createAsyncValidators.ts @@ -21,7 +21,7 @@ import { CustomFieldValidator } from '../../../extensions'; import { Draft07 as JSONSchema } from 'json-schema-library'; import { createFieldValidation } from './schema'; -export const createAsyncValidator = ( +export const createAsyncValidators = ( rootSchema: JsonObject, validators: Record>, context: { @@ -41,7 +41,11 @@ export const createAsyncValidator = ( const validator = validators[definitionInSchema['ui:field']]; if (validator) { const fieldValidation = createFieldValidation(); - await validator(value, fieldValidation, context); + try { + await validator(value, fieldValidation, context); + } catch (ex) { + fieldValidation.addError(ex.message); + } formValidation[key] = fieldValidation; } } diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts index d353820004..e2d5e89932 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/schema.ts @@ -114,7 +114,6 @@ export const extractSchemaFromStep = ( /** * @alpha * Creates a field validation object for use in react jsonschema form - * @returns {FieldValidation} A field validation object that can be used to validate a field */ export const createFieldValidation = (): FieldValidation => { const fieldValidation: FieldValidation = { From ef9ab322dea45a93af5498f601e85817e43e153f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 18 Aug 2022 16:58:54 +0200 Subject: [PATCH 232/239] it just keeps :broom: -ing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/tough-dolphins-smile.md | 19 ++++++++ packages/catalog-client/api-report.md | 2 +- packages/catalog-client/src/CatalogClient.ts | 4 +- packages/core-plugin-api/api-report.md | 5 +-- .../src/plugin-options/usePluginOptions.tsx | 9 ++-- plugins/api-docs/api-report.md | 45 +++++-------------- .../ApiDefinitionCard/ApiDefinitionCard.tsx | 1 + .../ApiDefinitionCard/ApiDefinitionWidget.tsx | 2 + .../DefaultApiExplorerPage.tsx | 8 ++-- .../AsyncApiDefinitionWidget.tsx | 2 + .../ProvidingComponentsCard.tsx | 1 + .../GraphQlDefinitionWidget.tsx | 2 + .../GrpcApiDefinitionWidget.tsx | 2 + .../OpenApiDefinitionWidget.tsx | 2 + .../PlainApiDefinitionWidget.tsx | 2 + plugins/api-docs/src/config.ts | 2 + plugins/api-docs/src/index.ts | 1 + plugins/api-docs/src/plugin.ts | 1 + plugins/apollo-explorer/api-report.md | 6 +-- .../ApolloExplorerPage/ApolloExplorerPage.tsx | 3 +- plugins/azure-devops-backend/api-report.md | 5 +-- .../src/api/AzureDevOpsApi.ts | 6 +-- plugins/badges-backend/api-report.md | 28 ------------ plugins/badges-backend/src/badges.ts | 1 + .../lib/BadgeBuilder/DefaultBadgeBuilder.ts | 1 + .../src/lib/BadgeBuilder/types.ts | 4 ++ plugins/badges-backend/src/service/router.ts | 2 + plugins/badges-backend/src/types.ts | 7 +++ plugins/badges/api-report.md | 9 +--- .../src/components/EntityBadgesDialog.tsx | 7 ++- plugins/badges/src/plugin.ts | 2 + plugins/catalog-react/api-report.md | 24 +++------- .../src/components/EntityTable/columns.tsx | 9 ++-- plugins/circleci/api-report.md | 5 +-- plugins/circleci/src/api/CircleCIApi.ts | 3 +- plugins/cloudbuild/api-report.md | 18 ++------ .../cloudbuild/src/components/Cards/Cards.tsx | 14 ++---- .../WorkflowRunDetails/WorkflowRunDetails.tsx | 4 +- .../WorkflowRunStatus/WorkflowRunStatus.tsx | 7 +-- .../WorkflowRunsTable/WorkflowRunsTable.tsx | 4 +- .../src/components/useWorkflowRuns.ts | 3 +- plugins/kubernetes/api-report.md | 19 ++------ .../HorizontalPodAutoscalerDrawer.tsx | 9 ++-- .../HorizontalPodAutoscalers/index.ts | 1 + .../src/components/Pods/PodDrawer.tsx | 11 ++--- plugins/scaffolder-backend/api-report.md | 18 ++------ .../actions/builtin/fetch/helpers.ts | 10 ++--- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 20 ++++----- .../api-report.md | 25 +++-------- .../src/engines/ElasticSearchClientWrapper.ts | 43 +++++++++--------- plugins/sonarqube-backend/api-report.md | 18 +++----- .../src/service/sonarqubeInfoProvider.ts | 24 +++++----- plugins/techdocs/api-report.md | 6 +-- .../TechDocsReaderPageSubheader.tsx | 6 +-- scripts/api-extractor.ts | 3 -- 55 files changed, 193 insertions(+), 302 deletions(-) create mode 100644 .changeset/tough-dolphins-smile.md diff --git a/.changeset/tough-dolphins-smile.md b/.changeset/tough-dolphins-smile.md new file mode 100644 index 0000000000..bb4f0a39a8 --- /dev/null +++ b/.changeset/tough-dolphins-smile.md @@ -0,0 +1,19 @@ +--- +'@backstage/catalog-client': patch +'@backstage/core-plugin-api': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-apollo-explorer': patch +'@backstage/plugin-azure-devops-backend': patch +'@backstage/plugin-badges': patch +'@backstage/plugin-badges-backend': patch +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-circleci': patch +'@backstage/plugin-cloudbuild': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-search-backend-module-elasticsearch': patch +'@backstage/plugin-sonarqube-backend': patch +'@backstage/plugin-techdocs': patch +--- + +Minor API signatures cleanup diff --git a/packages/catalog-client/api-report.md b/packages/catalog-client/api-report.md index 5fcae87dd5..964a3c1018 100644 --- a/packages/catalog-client/api-report.md +++ b/packages/catalog-client/api-report.md @@ -78,7 +78,7 @@ export class CatalogClient implements CatalogApi { }; }); addLocation( - { type, target, dryRun }: AddLocationRequest, + request: AddLocationRequest, options?: CatalogRequestOptions, ): Promise; getEntities( diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index 371ac55db4..8ddc3eb36d 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -272,9 +272,11 @@ export class CatalogClient implements CatalogApi { * {@inheritdoc CatalogApi.addLocation} */ async addLocation( - { type = 'url', target, dryRun }: AddLocationRequest, + request: AddLocationRequest, options?: CatalogRequestOptions, ): Promise { + const { type = 'url', target, dryRun } = request; + const response = await this.fetchApi.fetch( `${await this.discoveryApi.getBaseUrl('catalog')}/locations${ dryRun ? '?dryRun=true' : '' diff --git a/packages/core-plugin-api/api-report.md b/packages/core-plugin-api/api-report.md index 87fc344a02..0738d7bac5 100644 --- a/packages/core-plugin-api/api-report.md +++ b/packages/core-plugin-api/api-report.md @@ -649,10 +649,7 @@ export interface PluginOptionsProviderProps { } // @alpha -export const PluginProvider: ({ - children, - plugin, -}: PluginOptionsProviderProps) => JSX.Element; +export const PluginProvider: (props: PluginOptionsProviderProps) => JSX.Element; // @public export type ProfileInfo = { diff --git a/packages/core-plugin-api/src/plugin-options/usePluginOptions.tsx b/packages/core-plugin-api/src/plugin-options/usePluginOptions.tsx index 82684636d6..4fdacc1ace 100644 --- a/packages/core-plugin-api/src/plugin-options/usePluginOptions.tsx +++ b/packages/core-plugin-api/src/plugin-options/usePluginOptions.tsx @@ -39,10 +39,11 @@ export interface PluginOptionsProviderProps { * * @alpha */ -export const PluginProvider = ({ - children, - plugin, -}: PluginOptionsProviderProps): JSX.Element => { +export const PluginProvider = ( + props: PluginOptionsProviderProps, +): JSX.Element => { + const { children, plugin } = props; + const { Provider } = createVersionedContext<{ 1: { plugin: BackstagePlugin | undefined }; }>(contextKey); diff --git a/plugins/api-docs/api-report.md b/plugins/api-docs/api-report.md index 9f226e52c7..0872d97355 100644 --- a/plugins/api-docs/api-report.md +++ b/plugins/api-docs/api-report.md @@ -17,13 +17,9 @@ import { TableColumn } from '@backstage/core-components'; import { TableProps } from '@backstage/core-components'; import { UserListFilterKind } from '@backstage/plugin-catalog-react'; -// Warning: (ae-missing-release-tag) "ApiDefinitionCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const ApiDefinitionCard: () => JSX.Element; -// Warning: (ae-missing-release-tag) "ApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type ApiDefinitionWidget = { type: string; @@ -32,14 +28,17 @@ export type ApiDefinitionWidget = { rawLanguage?: string; }; -// Warning: (ae-forgotten-export) The symbol "ApiDocsConfig" needs to be exported by the entry point index.d.ts -// Warning: (ae-missing-release-tag) "apiDocsConfigRef" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// +// @public (undocumented) +export interface ApiDocsConfig { + // (undocumented) + getApiDefinitionWidget: ( + apiEntity: ApiEntity, + ) => ApiDefinitionWidget | undefined; +} + // @public (undocumented) export const apiDocsConfigRef: ApiRef; -// Warning: (ae-missing-release-tag) "apiDocsPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) const apiDocsPlugin: BackstagePlugin< { @@ -66,15 +65,11 @@ export const ApiExplorerPage: ( // @public (undocumented) export const ApiTypeTitle: (props: { apiEntity: ApiEntity }) => JSX.Element; -// Warning: (ae-missing-release-tag) "AsyncApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const AsyncApiDefinitionWidget: ( props: AsyncApiDefinitionWidgetProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "AsyncApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type AsyncApiDefinitionWidgetProps = { definition: string; @@ -91,11 +86,9 @@ export const ConsumingComponentsCard: (props: { }) => JSX.Element; // @public -export const DefaultApiExplorerPage: ({ - initiallySelectedFilter, - columns, - actions, -}: DefaultApiExplorerPageProps) => JSX.Element; +export const DefaultApiExplorerPage: ( + props: DefaultApiExplorerPageProps, +) => JSX.Element; // @public export type DefaultApiExplorerPageProps = { @@ -104,8 +97,6 @@ export type DefaultApiExplorerPageProps = { actions?: TableProps['actions']; }; -// Warning: (ae-missing-release-tag) "defaultDefinitionWidgets" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export function defaultDefinitionWidgets(): ApiDefinitionWidget[]; @@ -137,15 +128,11 @@ export const EntityProvidingComponentsCard: (props: { variant?: InfoCardVariants | undefined; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "GraphQlDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const GraphQlDefinitionWidget: ( props: GraphQlDefinitionWidgetProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "GraphQlDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type GraphQlDefinitionWidgetProps = { definition: string; @@ -156,29 +143,21 @@ export const HasApisCard: (props: { variant?: InfoCardVariants; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "OpenApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const OpenApiDefinitionWidget: ( props: OpenApiDefinitionWidgetProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "OpenApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type OpenApiDefinitionWidgetProps = { definition: string; }; -// Warning: (ae-missing-release-tag) "PlainApiDefinitionWidget" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const PlainApiDefinitionWidget: ( props: PlainApiDefinitionWidgetProps, ) => JSX.Element; -// Warning: (ae-missing-release-tag) "PlainApiDefinitionWidgetProps" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type PlainApiDefinitionWidgetProps = { definition: any; @@ -190,8 +169,6 @@ export const ProvidedApisCard: (props: { variant?: InfoCardVariants; }) => JSX.Element; -// Warning: (ae-missing-release-tag) "ProvidingComponentsCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const ProvidingComponentsCard: (props: { variant?: InfoCardVariants; diff --git a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx index 353b973626..679069f209 100644 --- a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx @@ -24,6 +24,7 @@ import { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget'; import { CardTab, TabbedCard } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; +/** @public */ export const ApiDefinitionCard = () => { const { entity } = useEntity(); const config = useApi(apiDocsConfigRef); diff --git a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionWidget.tsx b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionWidget.tsx index 3b7aa406d4..03a56eaa78 100644 --- a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionWidget.tsx @@ -19,6 +19,7 @@ import { GraphQlDefinitionWidget } from '../GraphQlDefinitionWidget'; import { OpenApiDefinitionWidget } from '../OpenApiDefinitionWidget'; import { GrpcApiDefinitionWidget } from '../GrpcApiDefinitionWidget'; +/** @public */ export type ApiDefinitionWidget = { type: string; title: string; @@ -26,6 +27,7 @@ export type ApiDefinitionWidget = { rawLanguage?: string; }; +/** @public */ export function defaultDefinitionWidgets(): ApiDefinitionWidget[] { return [ { diff --git a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx index b0acd3567c..ad43205c5f 100644 --- a/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx +++ b/plugins/api-docs/src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx @@ -64,11 +64,9 @@ export type DefaultApiExplorerPageProps = { * DefaultApiExplorerPage * @public */ -export const DefaultApiExplorerPage = ({ - initiallySelectedFilter = 'all', - columns, - actions, -}: DefaultApiExplorerPageProps) => { +export const DefaultApiExplorerPage = (props: DefaultApiExplorerPageProps) => { + const { initiallySelectedFilter = 'all', columns, actions } = props; + const configApi = useApi(configApiRef); const generatedSubtitle = `${ configApi.getOptionalString('organization.name') ?? 'Backstage' diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx index 03bc6fa8a6..2e8710b008 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx @@ -25,10 +25,12 @@ const LazyAsyncApiDefinition = React.lazy(() => })), ); +/** @public */ export type AsyncApiDefinitionWidgetProps = { definition: string; }; +/** @public */ export const AsyncApiDefinitionWidget = ( props: AsyncApiDefinitionWidgetProps, ) => { diff --git a/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx b/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx index 939257a2e5..435021e008 100644 --- a/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx +++ b/plugins/api-docs/src/components/ComponentsCards/ProvidingComponentsCard.tsx @@ -34,6 +34,7 @@ import { WarningPanel, } from '@backstage/core-components'; +/** @public */ export const ProvidingComponentsCard = (props: { variant?: InfoCardVariants; }) => { diff --git a/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.tsx b/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.tsx index 1f8a796249..b5cf06e828 100644 --- a/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.tsx @@ -25,10 +25,12 @@ const LazyGraphQlDefinition = React.lazy(() => })), ); +/** @public */ export type GraphQlDefinitionWidgetProps = { definition: string; }; +/** @public */ export const GraphQlDefinitionWidget = ( props: GraphQlDefinitionWidgetProps, ) => { diff --git a/plugins/api-docs/src/components/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.tsx b/plugins/api-docs/src/components/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.tsx index c5f9b071ef..b6bf317099 100644 --- a/plugins/api-docs/src/components/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.tsx @@ -19,10 +19,12 @@ import { CodeSnippet } from '@backstage/core-components'; import { useTheme } from '@material-ui/core/styles'; import { BackstageTheme } from '@backstage/theme'; +/** @public */ export type GrpcApiDefinitionWidgetProps = { definition: string; }; +/** @public */ export const GrpcApiDefinitionWidget = ( props: GrpcApiDefinitionWidgetProps, ) => { diff --git a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx index 606e476454..424a52136b 100644 --- a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx @@ -25,10 +25,12 @@ const LazyOpenApiDefinition = React.lazy(() => })), ); +/** @public */ export type OpenApiDefinitionWidgetProps = { definition: string; }; +/** @public */ export const OpenApiDefinitionWidget = ( props: OpenApiDefinitionWidgetProps, ) => { diff --git a/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx b/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx index b7f1e8afc0..c7d7d83c8d 100644 --- a/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx +++ b/plugins/api-docs/src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx @@ -17,11 +17,13 @@ import React from 'react'; import { CodeSnippet } from '@backstage/core-components'; +/** @public */ export type PlainApiDefinitionWidgetProps = { definition: any; language: string; }; +/** @public */ export const PlainApiDefinitionWidget = ( props: PlainApiDefinitionWidgetProps, ) => { diff --git a/plugins/api-docs/src/config.ts b/plugins/api-docs/src/config.ts index 979340164b..4d1e650720 100644 --- a/plugins/api-docs/src/config.ts +++ b/plugins/api-docs/src/config.ts @@ -18,10 +18,12 @@ import { ApiEntity } from '@backstage/catalog-model'; import { ApiDefinitionWidget } from './components/ApiDefinitionCard/ApiDefinitionWidget'; import { createApiRef } from '@backstage/core-plugin-api'; +/** @public */ export const apiDocsConfigRef = createApiRef({ id: 'plugin.api-docs.config', }); +/** @public */ export interface ApiDocsConfig { getApiDefinitionWidget: ( apiEntity: ApiEntity, diff --git a/plugins/api-docs/src/index.ts b/plugins/api-docs/src/index.ts index fe98e9c70e..49b2805aad 100644 --- a/plugins/api-docs/src/index.ts +++ b/plugins/api-docs/src/index.ts @@ -21,6 +21,7 @@ */ export * from './components'; +export type { ApiDocsConfig } from './config'; export { apiDocsConfigRef } from './config'; export { apiDocsPlugin, diff --git a/plugins/api-docs/src/plugin.ts b/plugins/api-docs/src/plugin.ts index 2a10a3afcd..cabe2d82cd 100644 --- a/plugins/api-docs/src/plugin.ts +++ b/plugins/api-docs/src/plugin.ts @@ -25,6 +25,7 @@ import { createRoutableExtension, } from '@backstage/core-plugin-api'; +/** @public */ export const apiDocsPlugin = createPlugin({ id: 'api-docs', routes: { diff --git a/plugins/apollo-explorer/api-report.md b/plugins/apollo-explorer/api-report.md index 80dae62e60..1d3b41eac1 100644 --- a/plugins/apollo-explorer/api-report.md +++ b/plugins/apollo-explorer/api-report.md @@ -10,11 +10,7 @@ import { JSONObject } from '@apollo/explorer/src/helpers/types'; import { RouteRef } from '@backstage/core-plugin-api'; // @public -export const ApolloExplorerPage: ({ - title, - subtitle, - endpoints, -}: { +export const ApolloExplorerPage: (props: { title?: string | undefined; subtitle?: string | undefined; endpoints: { diff --git a/plugins/apollo-explorer/src/components/ApolloExplorerPage/ApolloExplorerPage.tsx b/plugins/apollo-explorer/src/components/ApolloExplorerPage/ApolloExplorerPage.tsx index c2c02fc646..f90af9bc17 100644 --- a/plugins/apollo-explorer/src/components/ApolloExplorerPage/ApolloExplorerPage.tsx +++ b/plugins/apollo-explorer/src/components/ApolloExplorerPage/ApolloExplorerPage.tsx @@ -41,7 +41,8 @@ type Props = { endpoints: EndpointProps[]; }; -export const ApolloExplorerPage = ({ title, subtitle, endpoints }: Props) => { +export const ApolloExplorerPage = (props: Props) => { + const { title, subtitle, endpoints } = props; return (
diff --git a/plugins/azure-devops-backend/api-report.md b/plugins/azure-devops-backend/api-report.md index 712a433920..5918195827 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -77,10 +77,7 @@ export class AzureDevOpsApi { top: number, ): Promise; // (undocumented) - getTeamMembers({ - projectId, - teamId, - }: { + getTeamMembers(options: { projectId: string; teamId: string; }): Promise; diff --git a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts index 13edd7419d..3bffa925f5 100644 --- a/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts +++ b/plugins/azure-devops-backend/src/api/AzureDevOpsApi.ts @@ -296,13 +296,11 @@ export class AzureDevOpsApi { ); } - public async getTeamMembers({ - projectId, - teamId, - }: { + public async getTeamMembers(options: { projectId: string; teamId: string; }): Promise { + const { projectId, teamId } = options; this.logger?.debug(`Getting team member ids for team '${teamId}'.`); const client = await this.webApi.getCoreApi(); diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md index 0660d23fdb..0ecf41ee85 100644 --- a/plugins/badges-backend/api-report.md +++ b/plugins/badges-backend/api-report.md @@ -9,8 +9,6 @@ import { Entity } from '@backstage/catalog-model'; import express from 'express'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; -// Warning: (ae-missing-release-tag) "Badge" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface Badge { color?: string; @@ -23,8 +21,6 @@ export interface Badge { style?: BadgeStyle; } -// Warning: (ae-missing-release-tag) "BADGE_STYLES" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const BADGE_STYLES: readonly [ 'plastic', @@ -34,8 +30,6 @@ export const BADGE_STYLES: readonly [ 'social', ]; -// Warning: (ae-missing-release-tag) "BadgeBuilder" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BadgeBuilder = { getBadges(): Promise; @@ -43,8 +37,6 @@ export type BadgeBuilder = { createBadgeSvg(options: BadgeOptions): Promise; }; -// Warning: (ae-missing-release-tag) "BadgeContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface BadgeContext { // (undocumented) @@ -55,39 +47,29 @@ export interface BadgeContext { entity?: Entity; } -// Warning: (ae-missing-release-tag) "BadgeFactories" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface BadgeFactories { // (undocumented) [id: string]: BadgeFactory; } -// Warning: (ae-missing-release-tag) "BadgeFactory" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface BadgeFactory { // (undocumented) createBadge(context: BadgeContext): Badge; } -// Warning: (ae-missing-release-tag) "BadgeInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BadgeInfo = { id: string; }; -// Warning: (ae-missing-release-tag) "BadgeOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BadgeOptions = { badgeInfo: BadgeInfo; context: BadgeContext; }; -// Warning: (ae-missing-release-tag) "BadgeSpec" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BadgeSpec = { id: string; @@ -96,23 +78,15 @@ export type BadgeSpec = { markdown: string; }; -// Warning: (ae-missing-release-tag) "BadgeStyle" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export type BadgeStyle = typeof BADGE_STYLES[number]; -// Warning: (ae-missing-release-tag) "createDefaultBadgeFactories" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const createDefaultBadgeFactories: () => BadgeFactories; -// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export function createRouter(options: RouterOptions): Promise; -// Warning: (ae-missing-release-tag) "DefaultBadgeBuilder" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export class DefaultBadgeBuilder implements BadgeBuilder { constructor(factories: BadgeFactories); @@ -126,8 +100,6 @@ export class DefaultBadgeBuilder implements BadgeBuilder { protected getMarkdownCode(params: Badge, badgeUrl: string): string; } -// Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export interface RouterOptions { // (undocumented) diff --git a/plugins/badges-backend/src/badges.ts b/plugins/badges-backend/src/badges.ts index 78108de080..9167116d95 100644 --- a/plugins/badges-backend/src/badges.ts +++ b/plugins/badges-backend/src/badges.ts @@ -31,6 +31,7 @@ function entityUrl(context: BadgeContext): string { return `${catalogUrl}/${entityUri}`.toLowerCase(); } +/** @public */ export const createDefaultBadgeFactories = (): BadgeFactories => ({ pingback: { createBadge: (context: BadgeContext): Badge => { diff --git a/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts b/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts index 78e34351a0..efe58078f7 100644 --- a/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts +++ b/plugins/badges-backend/src/lib/BadgeBuilder/DefaultBadgeBuilder.ts @@ -19,6 +19,7 @@ import { makeBadge, Format } from 'badge-maker'; import { BadgeBuilder, BadgeInfo, BadgeOptions, BadgeSpec } from './types'; import { Badge, BadgeFactories } from '../../types'; +/** @public */ export class DefaultBadgeBuilder implements BadgeBuilder { constructor(private readonly factories: BadgeFactories) {} diff --git a/plugins/badges-backend/src/lib/BadgeBuilder/types.ts b/plugins/badges-backend/src/lib/BadgeBuilder/types.ts index e2be17a7db..fa1dd4a5ad 100644 --- a/plugins/badges-backend/src/lib/BadgeBuilder/types.ts +++ b/plugins/badges-backend/src/lib/BadgeBuilder/types.ts @@ -16,15 +16,18 @@ import { Badge, BadgeContext } from '../../types'; +/** @public */ export type BadgeInfo = { id: string; }; +/** @public */ export type BadgeOptions = { badgeInfo: BadgeInfo; context: BadgeContext; }; +/** @public */ export type BadgeSpec = { /** Badge id */ id: string; @@ -39,6 +42,7 @@ export type BadgeSpec = { markdown: string; }; +/** @public */ export type BadgeBuilder = { getBadges(): Promise; createBadgeJson(options: BadgeOptions): Promise; diff --git a/plugins/badges-backend/src/service/router.ts b/plugins/badges-backend/src/service/router.ts index b7211a0aad..2006b45dc4 100644 --- a/plugins/badges-backend/src/service/router.ts +++ b/plugins/badges-backend/src/service/router.ts @@ -26,6 +26,7 @@ import { NotFoundError } from '@backstage/errors'; import { BadgeBuilder, DefaultBadgeBuilder } from '../lib/BadgeBuilder'; import { BadgeContext, BadgeFactories } from '../types'; +/** @public */ export interface RouterOptions { badgeBuilder?: BadgeBuilder; badgeFactories?: BadgeFactories; @@ -34,6 +35,7 @@ export interface RouterOptions { discovery: PluginEndpointDiscovery; } +/** @public */ export async function createRouter( options: RouterOptions, ): Promise { diff --git a/plugins/badges-backend/src/types.ts b/plugins/badges-backend/src/types.ts index 0467b18155..eec7063f88 100644 --- a/plugins/badges-backend/src/types.ts +++ b/plugins/badges-backend/src/types.ts @@ -17,6 +17,7 @@ import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; +/** @public */ export const BADGE_STYLES = [ 'plastic', 'flat', @@ -24,8 +25,11 @@ export const BADGE_STYLES = [ 'for-the-badge', 'social', ] as const; + +/** @public */ export type BadgeStyle = typeof BADGE_STYLES[number]; +/** @public */ export interface Badge { /** Badge message background color. */ color?: string; @@ -48,16 +52,19 @@ export interface Badge { style?: BadgeStyle; } +/** @public */ export interface BadgeContext { badgeUrl: string; config: Config; entity?: Entity; // for entity badges } +/** @public */ export interface BadgeFactory { createBadge(context: BadgeContext): Badge; } +/** @public */ export interface BadgeFactories { [id: string]: BadgeFactory; } diff --git a/plugins/badges/api-report.md b/plugins/badges/api-report.md index e3af0857a4..b051bbb452 100644 --- a/plugins/badges/api-report.md +++ b/plugins/badges/api-report.md @@ -7,18 +7,11 @@ import { BackstagePlugin } from '@backstage/core-plugin-api'; -// Warning: (ae-missing-release-tag) "badgesPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) export const badgesPlugin: BackstagePlugin<{}, {}, {}>; -// Warning: (ae-missing-release-tag) "EntityBadgesDialog" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const EntityBadgesDialog: ({ - open, - onClose, -}: { +export const EntityBadgesDialog: (props: { open: boolean; onClose?: (() => any) | undefined; }) => JSX.Element; diff --git a/plugins/badges/src/components/EntityBadgesDialog.tsx b/plugins/badges/src/components/EntityBadgesDialog.tsx index 422dbc96a3..097bba5581 100644 --- a/plugins/badges/src/components/EntityBadgesDialog.tsx +++ b/plugins/badges/src/components/EntityBadgesDialog.tsx @@ -37,12 +37,11 @@ import { } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; -type Props = { +export const EntityBadgesDialog = (props: { open: boolean; onClose?: () => any; -}; - -export const EntityBadgesDialog = ({ open, onClose }: Props) => { +}) => { + const { open, onClose } = props; const theme = useTheme(); const { entity } = useAsyncEntity(); const fullScreen = useMediaQuery(theme.breakpoints.down('sm')); diff --git a/plugins/badges/src/plugin.ts b/plugins/badges/src/plugin.ts index ee88fb31e0..7ef3025458 100644 --- a/plugins/badges/src/plugin.ts +++ b/plugins/badges/src/plugin.ts @@ -22,6 +22,7 @@ import { identityApiRef, } from '@backstage/core-plugin-api'; +/** @public */ export const badgesPlugin = createPlugin({ id: 'badges', apis: [ @@ -34,6 +35,7 @@ export const badgesPlugin = createPlugin({ ], }); +/** @public */ export const EntityBadgesDialog = badgesPlugin.provide( createComponentExtension({ name: 'EntityBadgesDialog', diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index 5232c49150..6e0ba235b7 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -109,20 +109,13 @@ export const columnFactories: Readonly<{ createEntityRefColumn(options: { defaultKind?: string; }): TableColumn; - createEntityRelationColumn({ - title, - relation, - defaultKind, - filter: entityFilter, - }: { + createEntityRelationColumn(options: { title: string; relation: string; - defaultKind?: string | undefined; - filter?: - | { - kind: string; - } - | undefined; + defaultKind?: string; + filter?: { + kind: string; + }; }): TableColumn; createOwnerColumn(): TableColumn; createDomainColumn(): TableColumn; @@ -324,12 +317,7 @@ export const EntityTable: { createEntityRefColumn(options: { defaultKind?: string | undefined; }): TableColumn; - createEntityRelationColumn({ - title, - relation, - defaultKind, - filter: entityFilter, - }: { + createEntityRelationColumn(options: { title: string; relation: string; defaultKind?: string | undefined; diff --git a/plugins/catalog-react/src/components/EntityTable/columns.tsx b/plugins/catalog-react/src/components/EntityTable/columns.tsx index 72b6931e94..292235c78c 100644 --- a/plugins/catalog-react/src/components/EntityTable/columns.tsx +++ b/plugins/catalog-react/src/components/EntityTable/columns.tsx @@ -70,17 +70,14 @@ export const columnFactories = Object.freeze({ ), }; }, - createEntityRelationColumn({ - title, - relation, - defaultKind, - filter: entityFilter, - }: { + createEntityRelationColumn(options: { title: string; relation: string; defaultKind?: string; filter?: { kind: string }; }): TableColumn { + const { title, relation, defaultKind, filter: entityFilter } = options; + function getRelations(entity: T): CompoundEntityRef[] { return getEntityRelations(entity, relation, entityFilter); } diff --git a/plugins/circleci/api-report.md b/plugins/circleci/api-report.md index e8640ec78b..034cfae3ee 100644 --- a/plugins/circleci/api-report.md +++ b/plugins/circleci/api-report.md @@ -44,10 +44,7 @@ export class CircleCIApi { ): Promise; // (undocumented) getBuilds( - { - limit, - offset, - }: { + pagination: { limit: number; offset: number; }, diff --git a/plugins/circleci/src/api/CircleCIApi.ts b/plugins/circleci/src/api/CircleCIApi.ts index 78b8b378d6..931feec4d5 100644 --- a/plugins/circleci/src/api/CircleCIApi.ts +++ b/plugins/circleci/src/api/CircleCIApi.ts @@ -62,9 +62,10 @@ export class CircleCIApi { } async getBuilds( - { limit = 10, offset = 0 }: { limit: number; offset: number }, + pagination: { limit: number; offset: number }, options: Partial, ) { + const { limit = 10, offset = 0 } = pagination; return getBuildSummaries('', { options: { limit, diff --git a/plugins/cloudbuild/api-report.md b/plugins/cloudbuild/api-report.md index 5d2dc325e4..34b50b54d8 100644 --- a/plugins/cloudbuild/api-report.md +++ b/plugins/cloudbuild/api-report.md @@ -128,18 +128,14 @@ export const EntityCloudbuildContent: () => JSX.Element; // Warning: (ae-missing-release-tag) "EntityLatestCloudbuildRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const EntityLatestCloudbuildRunCard: ({ - branch, -}: { +export const EntityLatestCloudbuildRunCard: (props: { branch: string; }) => JSX.Element; // Warning: (ae-missing-release-tag) "EntityLatestCloudbuildsForBranchCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const EntityLatestCloudbuildsForBranchCard: ({ - branch, -}: { +export const EntityLatestCloudbuildsForBranchCard: (props: { branch: string; }) => JSX.Element; @@ -163,18 +159,12 @@ export { isCloudbuildAvailable as isPluginApplicableToEntity }; // Warning: (ae-missing-release-tag) "LatestWorkflowRunCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const LatestWorkflowRunCard: ({ - branch, -}: { - branch: string; -}) => JSX.Element; +export const LatestWorkflowRunCard: (props: { branch: string }) => JSX.Element; // Warning: (ae-missing-release-tag) "LatestWorkflowsForBranchCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export const LatestWorkflowsForBranchCard: ({ - branch, -}: { +export const LatestWorkflowsForBranchCard: (props: { branch: string; }) => JSX.Element; diff --git a/plugins/cloudbuild/src/components/Cards/Cards.tsx b/plugins/cloudbuild/src/components/Cards/Cards.tsx index 82e0eb1b88..75c9ee432b 100644 --- a/plugins/cloudbuild/src/components/Cards/Cards.tsx +++ b/plugins/cloudbuild/src/components/Cards/Cards.tsx @@ -72,11 +72,8 @@ const WidgetContent = ({ ); }; -export const LatestWorkflowRunCard = ({ - branch = 'master', -}: { - branch: string; -}) => { +export const LatestWorkflowRunCard = (props: { branch: string }) => { + const { branch = 'master' } = props; const { entity } = useEntity(); const errorApi = useApi(errorApiRef); const projectId = entity?.metadata.annotations?.[CLOUDBUILD_ANNOTATION] || ''; @@ -103,11 +100,8 @@ export const LatestWorkflowRunCard = ({ ); }; -export const LatestWorkflowsForBranchCard = ({ - branch = 'master', -}: { - branch: string; -}) => { +export const LatestWorkflowsForBranchCard = (props: { branch: string }) => { + const { branch = 'master' } = props; const { entity } = useEntity(); return ( diff --git a/plugins/cloudbuild/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx b/plugins/cloudbuild/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx index a6a63770ca..0e532178e1 100644 --- a/plugins/cloudbuild/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx +++ b/plugins/cloudbuild/src/components/WorkflowRunDetails/WorkflowRunDetails.tsx @@ -61,8 +61,8 @@ const useStyles = makeStyles(theme => ({ }, })); -export const WorkflowRunDetails = ({ entity }: { entity: Entity }) => { - const { value: projectName, loading, error } = useProjectName(entity); +export const WorkflowRunDetails = (props: { entity: Entity }) => { + const { value: projectName, loading, error } = useProjectName(props.entity); const [projectId] = (projectName ?? '/').split('/'); const details = useWorkflowRunsDetails(projectId); diff --git a/plugins/cloudbuild/src/components/WorkflowRunStatus/WorkflowRunStatus.tsx b/plugins/cloudbuild/src/components/WorkflowRunStatus/WorkflowRunStatus.tsx index 3f43d84ce4..fce8566dc0 100644 --- a/plugins/cloudbuild/src/components/WorkflowRunStatus/WorkflowRunStatus.tsx +++ b/plugins/cloudbuild/src/components/WorkflowRunStatus/WorkflowRunStatus.tsx @@ -23,11 +23,8 @@ import { StatusError, } from '@backstage/core-components'; -export const WorkflowRunStatus = ({ - status, -}: { - status: string | undefined; -}) => { +export const WorkflowRunStatus = (props: { status: string | undefined }) => { + const { status } = props; if (status === undefined) return null; switch (status.toLocaleLowerCase('en-US')) { case 'queued': diff --git a/plugins/cloudbuild/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx b/plugins/cloudbuild/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx index d79d481cd4..a8e2a12ea8 100644 --- a/plugins/cloudbuild/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx +++ b/plugins/cloudbuild/src/components/WorkflowRunsTable/WorkflowRunsTable.tsx @@ -164,8 +164,8 @@ export const WorkflowRunsTableView = ({ ); }; -export const WorkflowRunsTable = ({ entity }: { entity: Entity }) => { - const { value: projectName, loading } = useProjectName(entity); +export const WorkflowRunsTable = (props: { entity: Entity }) => { + const { value: projectName, loading } = useProjectName(props.entity); const [projectId] = (projectName ?? '/').split('/'); const [tableProps, { retry, setPage, setPageSize }] = useWorkflowRuns({ diff --git a/plugins/cloudbuild/src/components/useWorkflowRuns.ts b/plugins/cloudbuild/src/components/useWorkflowRuns.ts index f2e107ea3f..424f08e38d 100644 --- a/plugins/cloudbuild/src/components/useWorkflowRuns.ts +++ b/plugins/cloudbuild/src/components/useWorkflowRuns.ts @@ -33,7 +33,8 @@ export type WorkflowRun = { rerun: () => void; }; -export function useWorkflowRuns({ projectId }: { projectId: string }) { +export function useWorkflowRuns(options: { projectId: string }) { + const { projectId } = options; const api = useApi(cloudbuildApiRef); const errorApi = useApi(errorApiRef); diff --git a/plugins/kubernetes/api-report.md b/plugins/kubernetes/api-report.md index ccb4dcae8d..5cf1c3ed34 100644 --- a/plugins/kubernetes/api-report.md +++ b/plugins/kubernetes/api-report.md @@ -208,16 +208,10 @@ export interface GroupedResponses extends DeploymentResources { // @public (undocumented) export const GroupedResponsesContext: React_2.Context; -// Warning: (ae-missing-release-tag) "HorizontalPodAutoscalerDrawer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const HorizontalPodAutoscalerDrawer: ({ - hpa, - expanded, - children, -}: { +export const HorizontalPodAutoscalerDrawer: (props: { hpa: V1HorizontalPodAutoscaler; - expanded?: boolean | undefined; + expanded?: boolean; children?: React_2.ReactNode; }) => JSX.Element; @@ -361,15 +355,10 @@ const kubernetesPlugin: BackstagePlugin< export { kubernetesPlugin }; export { kubernetesPlugin as plugin }; -// Warning: (ae-missing-release-tag) "PodDrawer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// // @public (undocumented) -export const PodDrawer: ({ - pod, - expanded, -}: { +export const PodDrawer: (props: { pod: V1Pod; - expanded?: boolean | undefined; + expanded?: boolean; }) => JSX.Element; // Warning: (ae-missing-release-tag) "PodNamesWithErrorsContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/kubernetes/src/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.tsx b/plugins/kubernetes/src/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.tsx index 504a4f26bc..ca7abe07aa 100644 --- a/plugins/kubernetes/src/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.tsx +++ b/plugins/kubernetes/src/components/HorizontalPodAutoscalers/HorizontalPodAutoscalerDrawer.tsx @@ -18,15 +18,14 @@ import React from 'react'; import { V1HorizontalPodAutoscaler } from '@kubernetes/client-node'; import { KubernetesDrawer } from '../KubernetesDrawer/KubernetesDrawer'; -export const HorizontalPodAutoscalerDrawer = ({ - hpa, - expanded, - children, -}: { +/** @public */ +export const HorizontalPodAutoscalerDrawer = (props: { hpa: V1HorizontalPodAutoscaler; expanded?: boolean; children?: React.ReactNode; }) => { + const { hpa, expanded, children } = props; + return ( { +/** @public */ +export const PodDrawer = (props: { pod: V1Pod; expanded?: boolean }) => { + const { pod, expanded } = props; + return ( ; // (undocumented) - completeTask({ - taskId, - status, - eventBody, - }: { + completeTask(options: { taskId: string; status: TaskStatus; eventBody: JsonObject; @@ -488,11 +484,11 @@ export class DatabaseTaskStore implements TaskStore { tasks: SerializedTask[]; }>; // (undocumented) - listEvents({ taskId, after }: TaskStoreListEventsOptions): Promise<{ + listEvents(options: TaskStoreListEventsOptions): Promise<{ events: SerializedTaskEvent[]; }>; // (undocumented) - listStaleTasks({ timeoutS }: { timeoutS: number }): Promise<{ + listStaleTasks(options: { timeoutS: number }): Promise<{ tasks: { taskId: string; }[]; @@ -508,13 +504,7 @@ export type DatabaseTaskStoreOptions = { export const executeShellCommand: (options: RunCommandOptions) => Promise; // @public -export function fetchContents({ - reader, - integrations, - baseUrl, - fetchUrl, - outputPath, -}: { +export function fetchContents(options: { reader: UrlReader; integrations: ScmIntegrations; baseUrl?: string; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts index a01fcee6f7..4b82595cfd 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.ts @@ -26,19 +26,15 @@ import path from 'path'; * * @public */ -export async function fetchContents({ - reader, - integrations, - baseUrl, - fetchUrl = '.', - outputPath, -}: { +export async function fetchContents(options: { reader: UrlReader; integrations: ScmIntegrations; baseUrl?: string; fetchUrl?: string; outputPath: string; }) { + const { reader, integrations, baseUrl, fetchUrl = '.', outputPath } = options; + let fetchUrlIsAbsolute = false; try { // eslint-disable-next-line no-new diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index d62e59744f..978affb864 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -211,9 +211,11 @@ export class DatabaseTaskStore implements TaskStore { } } - async listStaleTasks({ timeoutS }: { timeoutS: number }): Promise<{ + async listStaleTasks(options: { timeoutS: number }): Promise<{ tasks: { taskId: string }[]; }> { + const { timeoutS } = options; + const rawRows = await this.db('tasks') .where('status', 'processing') .andWhere( @@ -232,15 +234,13 @@ export class DatabaseTaskStore implements TaskStore { return { tasks }; } - async completeTask({ - taskId, - status, - eventBody, - }: { + async completeTask(options: { taskId: string; status: TaskStatus; eventBody: JsonObject; }): Promise { + const { taskId, status, eventBody } = options; + let oldStatus: string; if (status === 'failed' || status === 'completed') { oldStatus = 'processing'; @@ -301,10 +301,10 @@ export class DatabaseTaskStore implements TaskStore { }); } - async listEvents({ - taskId, - after, - }: TaskStoreListEventsOptions): Promise<{ events: SerializedTaskEvent[] }> { + async listEvents( + options: TaskStoreListEventsOptions, + ): Promise<{ events: SerializedTaskEvent[] }> { + const { taskId, after } = options; const rawEvents = await this.db('task_events') .where({ task_id: taskId, diff --git a/plugins/search-backend-module-elasticsearch/api-report.md b/plugins/search-backend-module-elasticsearch/api-report.md index 5a951948c2..be54fe9d4a 100644 --- a/plugins/search-backend-module-elasticsearch/api-report.md +++ b/plugins/search-backend-module-elasticsearch/api-report.md @@ -132,17 +132,13 @@ export class ElasticSearchClientWrapper { refreshOnCompletion?: string | boolean; }): BulkHelper; // (undocumented) - createIndex({ - index, - }: { + createIndex(options: { index: string; }): | TransportRequestPromise, unknown>> | TransportRequestPromise_2, unknown>>; // (undocumented) - deleteIndex({ - index, - }: { + deleteIndex(options: { index: string | string[]; }): | TransportRequestPromise, unknown>> @@ -152,17 +148,13 @@ export class ElasticSearchClientWrapper { options: ElasticSearchClientOptions, ): ElasticSearchClientWrapper; // (undocumented) - getAliases({ - aliases, - }: { + getAliases(options: { aliases: string[]; }): | TransportRequestPromise, unknown>> | TransportRequestPromise_2, unknown>>; // (undocumented) - indexExists({ - index, - }: { + indexExists(options: { index: string | string[]; }): | TransportRequestPromise> @@ -174,19 +166,14 @@ export class ElasticSearchClientWrapper { | TransportRequestPromise, unknown>> | TransportRequestPromise_2, unknown>>; // (undocumented) - search({ - index, - body, - }: { + search(options: { index: string | string[]; body: Object; }): | TransportRequestPromise, unknown>> | TransportRequestPromise_2, unknown>>; // (undocumented) - updateAliases({ - actions, - }: { + updateAliases(options: { actions: ElasticSearchAliasAction[]; }): | TransportRequestPromise, unknown>> diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchClientWrapper.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchClientWrapper.ts index bcf67e091c..395f861223 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchClientWrapper.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchClientWrapper.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { Client as ElasticSearchClient } from '@elastic/elasticsearch'; import { Client as OpenSearchClient } from '@opensearch-project/opensearch'; import { Readable } from 'stream'; @@ -69,15 +70,12 @@ export class ElasticSearchClientWrapper { private readonly elasticSearchClient: ElasticSearchClient | undefined; private readonly openSearchClient: OpenSearchClient | undefined; - private constructor({ - openSearchClient, - elasticSearchClient, - }: { + private constructor(options: { openSearchClient?: OpenSearchClient; elasticSearchClient?: ElasticSearchClient; }) { - this.openSearchClient = openSearchClient; - this.elasticSearchClient = elasticSearchClient; + this.openSearchClient = options.openSearchClient; + this.elasticSearchClient = options.elasticSearchClient; } static fromClientOptions(options: ElasticSearchClientOptions) { @@ -92,13 +90,13 @@ export class ElasticSearchClientWrapper { }); } - search({ index, body }: { index: string | string[]; body: Object }) { + search(options: { index: string | string[]; body: Object }) { if (this.openSearchClient) { - return this.openSearchClient.search({ index, body }); + return this.openSearchClient.search(options); } if (this.elasticSearchClient) { - return this.elasticSearchClient.search({ index, body }); + return this.elasticSearchClient.search(options); } throw new Error('No client defined'); @@ -132,43 +130,45 @@ export class ElasticSearchClientWrapper { throw new Error('No client defined'); } - indexExists({ index }: { index: string | string[] }) { + indexExists(options: { index: string | string[] }) { if (this.openSearchClient) { - return this.openSearchClient.indices.exists({ index }); + return this.openSearchClient.indices.exists(options); } if (this.elasticSearchClient) { - return this.elasticSearchClient.indices.exists({ index }); + return this.elasticSearchClient.indices.exists(options); } throw new Error('No client defined'); } - deleteIndex({ index }: { index: string | string[] }) { + deleteIndex(options: { index: string | string[] }) { if (this.openSearchClient) { - return this.openSearchClient.indices.delete({ index }); + return this.openSearchClient.indices.delete(options); } if (this.elasticSearchClient) { - return this.elasticSearchClient.indices.delete({ index }); + return this.elasticSearchClient.indices.delete(options); } throw new Error('No client defined'); } - createIndex({ index }: { index: string }) { + createIndex(options: { index: string }) { if (this.openSearchClient) { - return this.openSearchClient.indices.create({ index }); + return this.openSearchClient.indices.create(options); } if (this.elasticSearchClient) { - return this.elasticSearchClient.indices.create({ index }); + return this.elasticSearchClient.indices.create(options); } throw new Error('No client defined'); } - getAliases({ aliases }: { aliases: string[] }) { + getAliases(options: { aliases: string[] }) { + const { aliases } = options; + if (this.openSearchClient) { return this.openSearchClient.cat.aliases({ format: 'json', @@ -186,8 +186,9 @@ export class ElasticSearchClientWrapper { throw new Error('No client defined'); } - updateAliases({ actions }: { actions: ElasticSearchAliasAction[] }) { - const filteredActions = actions.filter(Boolean); + updateAliases(options: { actions: ElasticSearchAliasAction[] }) { + const filteredActions = options.actions.filter(Boolean); + if (this.openSearchClient) { return this.openSearchClient.indices.updateAliases({ body: { diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md index f4c48cadce..0fbd463cf3 100644 --- a/plugins/sonarqube-backend/api-report.md +++ b/plugins/sonarqube-backend/api-report.md @@ -13,13 +13,10 @@ export function createRouter(options: RouterOptions): Promise; // @public export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { static fromConfig(config: Config): DefaultSonarqubeInfoProvider; - getBaseUrl({ instanceName }?: { instanceName?: string }): { + getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; }; - getFindings({ - componentKey, - instanceName, - }: { + getFindings(options: { componentKey: string; instanceName?: string; }): Promise; @@ -35,9 +32,7 @@ export interface RouterOptions { export class SonarqubeConfig { constructor(instances: SonarqubeInstanceConfig[]); static fromConfig(config: Config): SonarqubeConfig; - getInstanceConfig({ - sonarqubeName, - }?: { + getInstanceConfig(options?: { sonarqubeName?: string; }): SonarqubeInstanceConfig; // (undocumented) @@ -52,13 +47,10 @@ export interface SonarqubeFindings { // @public export interface SonarqubeInfoProvider { - getBaseUrl({ instanceName }?: { instanceName?: string }): { + getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; }; - getFindings({ - componentKey, - instanceName, - }: { + getFindings(options: { componentKey: string; instanceName?: string; }): Promise; diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index 7027738d2c..2b96e6764e 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -30,7 +30,7 @@ export interface SonarqubeInfoProvider { * @param instanceName - Name of the sonarqube instance to get the info from * @returns the url of the instance */ - getBaseUrl({ instanceName }?: { instanceName?: string }): { baseUrl: string }; + getBaseUrl(options?: { instanceName?: string }): { baseUrl: string }; /** * Query the sonarqube instance corresponding to the instanceName to get all @@ -43,10 +43,7 @@ export interface SonarqubeInfoProvider { * @returns All measures with the analysis date. Will return undefined if we * can't provide the full response */ - getFindings({ - componentKey, - instanceName, - }: { + getFindings(options: { componentKey: string; instanceName?: string; }): Promise; @@ -185,9 +182,10 @@ export class SonarqubeConfig { * @returns The requested Sonarqube instance. * @throws Error when no default config could be found or the requested name couldn't be found in config. */ - getInstanceConfig({ - sonarqubeName, - }: { sonarqubeName?: string } = {}): SonarqubeInstanceConfig { + getInstanceConfig( + options: { sonarqubeName?: string } = {}, + ): SonarqubeInstanceConfig { + const { sonarqubeName } = options; const DEFAULT_SONARQUBE_NAME = 'default'; if (!sonarqubeName || sonarqubeName === DEFAULT_SONARQUBE_NAME) { @@ -303,11 +301,11 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { * {@inheritDoc SonarqubeInfoProvider.getBaseUrl} * @throws Error If configuration can't be retrieved. */ - getBaseUrl({ instanceName }: { instanceName?: string } = {}): { + getBaseUrl(options: { instanceName?: string } = {}): { baseUrl: string; } { const instanceConfig = this.config.getInstanceConfig({ - sonarqubeName: instanceName, + sonarqubeName: options.instanceName, }); return { baseUrl: instanceConfig.baseUrl }; } @@ -316,13 +314,11 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { * {@inheritDoc SonarqubeInfoProvider.getFindings} * @throws Error If configuration can't be retrieved. */ - async getFindings({ - componentKey, - instanceName, - }: { + async getFindings(options: { componentKey: string; instanceName?: string; }): Promise { + const { componentKey, instanceName } = options; const { baseUrl, apiKey } = this.config.getInstanceConfig({ sonarqubeName: instanceName, }); diff --git a/plugins/techdocs/api-report.md b/plugins/techdocs/api-report.md index 7922ea992e..b2f0331a9b 100644 --- a/plugins/techdocs/api-report.md +++ b/plugins/techdocs/api-report.md @@ -353,10 +353,8 @@ export type TechDocsReaderPageRenderFunction = (options: { }) => JSX.Element; // @public -export const TechDocsReaderPageSubheader: ({ - toolbarProps, -}: { - toolbarProps?: ToolbarProps<'div', {}> | undefined; +export const TechDocsReaderPageSubheader: (props: { + toolbarProps?: ToolbarProps; }) => JSX.Element | null; // @public diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx index a0013e81ab..0cef4d521f 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.tsx @@ -47,9 +47,7 @@ const useStyles = makeStyles(theme => ({ * Please use the Tech Docs add-ons to customize it * @public */ -export const TechDocsReaderPageSubheader = ({ - toolbarProps, -}: { +export const TechDocsReaderPageSubheader = (props: { toolbarProps?: ToolbarProps; }) => { const classes = useStyles(); @@ -81,7 +79,7 @@ export const TechDocsReaderPageSubheader = ({ if (entityMetadataLoading === false && !entityMetadata) return null; return ( - + Date: Thu, 18 Aug 2022 19:52:18 +0000 Subject: [PATCH 233/239] fix(deps): update dependency aws-sdk to v2.1198.0 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e697cffa41..f743e4738b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8982,9 +8982,9 @@ aws-sdk-mock@^5.2.1: traverse "^0.6.6" aws-sdk@^2.1122.0, aws-sdk@^2.814.0, aws-sdk@^2.840.0, aws-sdk@^2.948.0: - version "2.1197.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1197.0.tgz#d679f52353f03e598ffed5609ed65593cef1f83f" - integrity sha512-BUxYU+gzxCylEM37NeGcS5kWotXVmKrOBG9+/+U+tnOTW7/3yNBrBfhPrs5IgMhm7H38CLWgOqwJaGDlYzwH/Q== + version "2.1198.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1198.0.tgz#9fc8aab80c45e80a21e5e7e88d8e89526ff5c413" + integrity sha512-blFAqK+6N1iKDseAlTwEwpfh3YdCluOwuo/Glv6+A5dvcq78/kqYB+haND8rXL1Esg4BiqVtafHp35FuwQzTTQ== dependencies: buffer "4.9.2" events "1.1.1" From 6f455dff1491c01f419b32f080aa68052f46be84 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 18 Aug 2022 23:04:45 +0200 Subject: [PATCH 234/239] Update lazy-snakes-film.md Signed-off-by: Patrik Oldsberg --- .changeset/lazy-snakes-film.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/lazy-snakes-film.md b/.changeset/lazy-snakes-film.md index ff4097f78f..ffb9c539c8 100644 --- a/.changeset/lazy-snakes-film.md +++ b/.changeset/lazy-snakes-film.md @@ -1,5 +1,5 @@ --- -'@backstage/core-components': minor +'@backstage/core-components': patch --- Adds code to generate ids for headers parsed through the MarkdownContent component. From a3f9d8557dd69f667683d9d910d393607e866f1d Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 19 Aug 2022 09:58:20 +0200 Subject: [PATCH 235/239] chore: enter pre-release Signed-off-by: blam --- .changeset/pre.json | 175 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..172b96d8f6 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,175 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "example-app": "0.2.74", + "@backstage/app-defaults": "1.0.5", + "example-backend": "0.2.74", + "@backstage/backend-app-api": "0.2.0", + "@backstage/backend-common": "0.15.0", + "@backstage/backend-defaults": "0.1.0", + "example-backend-next": "0.0.2", + "@backstage/backend-plugin-api": "0.1.1", + "@backstage/backend-tasks": "0.3.4", + "@backstage/backend-test-utils": "0.1.27", + "@backstage/catalog-client": "1.0.4", + "@backstage/catalog-model": "1.1.0", + "@backstage/cli": "0.18.1", + "@backstage/cli-common": "0.1.9", + "@backstage/codemods": "0.1.38", + "@backstage/config": "1.0.1", + "@backstage/config-loader": "1.1.3", + "@backstage/core-app-api": "1.0.5", + "@backstage/core-components": "0.11.0", + "@backstage/core-plugin-api": "1.0.5", + "@backstage/create-app": "0.4.30", + "@backstage/dev-utils": "1.0.5", + "e2e-test": "0.2.0", + "@backstage/errors": "1.1.0", + "@backstage/integration": "1.3.0", + "@backstage/integration-react": "1.1.3", + "@backstage/release-manifests": "0.0.5", + "@techdocs/cli": "1.2.0", + "techdocs-cli-embedded-app": "0.2.73", + "@backstage/test-utils": "1.1.3", + "@backstage/theme": "0.2.16", + "@backstage/types": "1.0.0", + "@backstage/version-bridge": "1.0.1", + "@backstage/plugin-adr": "0.2.0", + "@backstage/plugin-adr-backend": "0.2.0", + "@backstage/plugin-adr-common": "0.2.0", + "@backstage/plugin-airbrake": "0.3.8", + "@backstage/plugin-airbrake-backend": "0.2.8", + "@backstage/plugin-allure": "0.1.24", + "@backstage/plugin-analytics-module-ga": "0.1.19", + "@backstage/plugin-apache-airflow": "0.2.1", + "@backstage/plugin-api-docs": "0.8.8", + "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0", + "@backstage/plugin-apollo-explorer": "0.1.1", + "@backstage/plugin-app-backend": "0.3.35", + "@backstage/plugin-auth-backend": "0.15.1", + "@backstage/plugin-auth-node": "0.2.4", + "@backstage/plugin-azure-devops": "0.1.24", + "@backstage/plugin-azure-devops-backend": "0.3.14", + "@backstage/plugin-azure-devops-common": "0.2.4", + "@backstage/plugin-badges": "0.2.32", + "@backstage/plugin-badges-backend": "0.1.29", + "@backstage/plugin-bazaar": "0.1.23", + "@backstage/plugin-bazaar-backend": "0.1.19", + "@backstage/plugin-bitbucket-cloud-common": "0.1.2", + "@backstage/plugin-bitrise": "0.1.35", + "@backstage/plugin-catalog": "1.5.0", + "@backstage/plugin-catalog-backend": "1.3.1", + "@backstage/plugin-catalog-backend-module-aws": "0.1.8", + "@backstage/plugin-catalog-backend-module-azure": "0.1.6", + "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.2", + "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.2", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.0", + "@backstage/plugin-catalog-backend-module-gerrit": "0.1.3", + "@backstage/plugin-catalog-backend-module-github": "0.1.6", + "@backstage/plugin-catalog-backend-module-gitlab": "0.1.6", + "@backstage/plugin-catalog-backend-module-ldap": "0.5.2", + "@backstage/plugin-catalog-backend-module-msgraph": "0.4.1", + "@backstage/plugin-catalog-backend-module-openapi": "0.1.1", + "@backstage/plugin-catalog-common": "1.0.5", + "@internal/plugin-catalog-customized": "0.0.1", + "@backstage/plugin-catalog-graph": "0.2.20", + "@backstage/plugin-catalog-graphql": "0.3.12", + "@backstage/plugin-catalog-import": "0.8.11", + "@backstage/plugin-catalog-node": "1.0.1", + "@backstage/plugin-catalog-react": "1.1.3", + "@backstage/plugin-cicd-statistics": "0.1.10", + "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.4", + "@backstage/plugin-circleci": "0.3.8", + "@backstage/plugin-cloudbuild": "0.3.8", + "@backstage/plugin-code-climate": "0.1.8", + "@backstage/plugin-code-coverage": "0.2.1", + "@backstage/plugin-code-coverage-backend": "0.2.1", + "@backstage/plugin-codescene": "0.1.3", + "@backstage/plugin-config-schema": "0.1.31", + "@backstage/plugin-cost-insights": "0.11.30", + "@backstage/plugin-cost-insights-common": "0.1.1", + "@backstage/plugin-dynatrace": "0.1.2", + "@internal/plugin-todo-list": "1.0.4", + "@internal/plugin-todo-list-backend": "1.0.4", + "@internal/plugin-todo-list-common": "1.0.3", + "@backstage/plugin-explore": "0.3.39", + "@backstage/plugin-explore-react": "0.0.20", + "@backstage/plugin-firehydrant": "0.1.25", + "@backstage/plugin-fossa": "0.2.40", + "@backstage/plugin-gcalendar": "0.3.4", + "@backstage/plugin-gcp-projects": "0.3.27", + "@backstage/plugin-git-release-manager": "0.3.21", + "@backstage/plugin-github-actions": "0.5.8", + "@backstage/plugin-github-deployments": "0.1.39", + "@backstage/plugin-github-issues": "0.1.0", + "@backstage/plugin-github-pull-requests-board": "0.1.2", + "@backstage/plugin-gitops-profiles": "0.3.26", + "@backstage/plugin-gocd": "0.1.14", + "@backstage/plugin-graphiql": "0.2.40", + "@backstage/plugin-graphql-backend": "0.1.25", + "@backstage/plugin-home": "0.4.24", + "@backstage/plugin-ilert": "0.1.34", + "@backstage/plugin-jenkins": "0.7.7", + "@backstage/plugin-jenkins-backend": "0.1.25", + "@backstage/plugin-jenkins-common": "0.1.7", + "@backstage/plugin-kafka": "0.3.8", + "@backstage/plugin-kafka-backend": "0.2.28", + "@backstage/plugin-kubernetes": "0.7.1", + "@backstage/plugin-kubernetes-backend": "0.7.1", + "@backstage/plugin-kubernetes-common": "0.4.1", + "@backstage/plugin-lighthouse": "0.3.8", + "@backstage/plugin-newrelic": "0.3.26", + "@backstage/plugin-newrelic-dashboard": "0.2.1", + "@backstage/plugin-org": "0.5.8", + "@backstage/plugin-pagerduty": "0.5.1", + "@backstage/plugin-periskop": "0.1.6", + "@backstage/plugin-periskop-backend": "0.1.6", + "@backstage/plugin-permission-backend": "0.5.10", + "@backstage/plugin-permission-common": "0.6.3", + "@backstage/plugin-permission-node": "0.6.4", + "@backstage/plugin-permission-react": "0.4.4", + "@backstage/plugin-proxy-backend": "0.2.29", + "@backstage/plugin-rollbar": "0.4.8", + "@backstage/plugin-rollbar-backend": "0.1.32", + "@backstage/plugin-scaffolder": "1.5.0", + "@backstage/plugin-scaffolder-backend": "1.5.0", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.10", + "@backstage/plugin-scaffolder-backend-module-rails": "0.4.3", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.8", + "@backstage/plugin-scaffolder-common": "1.1.2", + "@backstage/plugin-search": "1.0.1", + "@backstage/plugin-search-backend": "1.0.1", + "@backstage/plugin-search-backend-module-elasticsearch": "1.0.1", + "@backstage/plugin-search-backend-module-pg": "0.3.6", + "@backstage/plugin-search-backend-node": "1.0.1", + "@backstage/plugin-search-common": "1.0.0", + "@backstage/plugin-search-react": "1.0.1", + "@backstage/plugin-sentry": "0.4.1", + "@backstage/plugin-shortcuts": "0.3.0", + "@backstage/plugin-sonarqube": "0.4.0", + "@backstage/plugin-sonarqube-backend": "0.1.0", + "@backstage/plugin-splunk-on-call": "0.3.32", + "@backstage/plugin-stack-overflow": "0.1.4", + "@backstage/plugin-stack-overflow-backend": "0.1.4", + "@backstage/plugin-tech-insights": "0.2.4", + "@backstage/plugin-tech-insights-backend": "0.5.1", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.19", + "@backstage/plugin-tech-insights-common": "0.2.6", + "@backstage/plugin-tech-insights-node": "0.3.3", + "@backstage/plugin-tech-radar": "0.5.15", + "@backstage/plugin-techdocs": "1.3.1", + "@backstage/plugin-techdocs-addons-test-utils": "1.0.3", + "@backstage/plugin-techdocs-backend": "1.2.1", + "@backstage/plugin-techdocs-module-addons-contrib": "1.0.3", + "@backstage/plugin-techdocs-node": "1.3.0", + "@backstage/plugin-techdocs-react": "1.0.3", + "@backstage/plugin-todo": "0.2.10", + "@backstage/plugin-todo-backend": "0.1.32", + "@backstage/plugin-user-settings": "0.4.7", + "@backstage/plugin-vault": "0.1.2", + "@backstage/plugin-vault-backend": "0.2.1", + "@backstage/plugin-xcmetrics": "0.2.28" + }, + "changesets": [] +} From 64658427a0d54890831d31ff773124368b76ecab Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 19 Aug 2022 10:21:53 +0200 Subject: [PATCH 236/239] chore: fixing tests by wrapping in act Signed-off-by: blam --- .../TemplateWizardPage/Stepper/Stepper.test.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx index 2b091883ae..90901f22c5 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/Stepper.test.tsx @@ -17,7 +17,7 @@ import React from 'react'; import { TemplateParameterSchema } from '../../../types'; import { Stepper } from './Stepper'; import { renderInTestApp } from '@backstage/test-utils'; -import { fireEvent } from '@testing-library/react'; +import { act, fireEvent } from '@testing-library/react'; describe('Stepper', () => { it('should render the step titles for each step of the manifest', async () => { @@ -53,7 +53,9 @@ describe('Stepper', () => { expect(getByText('Next')).toBeInTheDocument(); - await fireEvent.click(getByText('Next')); + await act(async () => { + await fireEvent.click(getByText('Next')); + }); expect(getByText('Review')).toBeInTheDocument(); }); @@ -93,9 +95,13 @@ describe('Stepper', () => { target: { value: 'im a test value' }, }); - await fireEvent.click(getByText('Next')); + await act(async () => { + await fireEvent.click(getByText('Next')); + }); - await fireEvent.click(getByText('Back')); + await act(async () => { + await fireEvent.click(getByText('Back')); + }); expect(getByRole('textbox', { name: 'name' })).toHaveValue( 'im a test value', From ecfb68ab580448109204dcfb00ae4e3c747a2c21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Aug 2022 09:03:20 +0000 Subject: [PATCH 237/239] chore(deps): update dependency @types/lodash to v4.14.184 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 373978dc47..8077418833 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7119,9 +7119,9 @@ "@types/node" "*" "@types/lodash@^4.14.151", "@types/lodash@^4.14.173", "@types/lodash@^4.14.175": - version "4.14.183" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.183.tgz#1173e843e858cff5b997c234df2789a4a54c2374" - integrity sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw== + version "4.14.184" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.184.tgz#23f96cd2a21a28e106dc24d825d4aa966de7a9fe" + integrity sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q== "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" From e69dce2f471de294d940e1a9debeabcfe4acba36 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Aug 2022 09:04:20 +0000 Subject: [PATCH 238/239] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.2.5 Signed-off-by: Renovate Bot --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 373978dc47..7929d444af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5932,9 +5932,9 @@ zustand "3.6.9" "@roadiehq/backstage-plugin-github-pull-requests@^2.0.0": - version "2.2.4" - resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.4.tgz#7df512d6f55cfccf448cf3abc58364e2544e7fab" - integrity sha512-oEJLxZ3L+GnWuVLFmxXNjeRthuJEV7u1EFbLthoW3XfR5vQ5oc81Su/3WF2rO2Atng1QkPpSPa7oXWff2NsJJw== + version "2.2.5" + resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-2.2.5.tgz#280fb55f6c2378cc8eb32e2acf25a0522a2ef110" + integrity sha512-8zK4uw5FhqfOwUF0oOp2cXsh+HQzsmmynN5WsLmir6v5CX6p8LPEZbb9aBDD2Gx2pC/s3776xQO95kCbizeUxg== dependencies: "@backstage/catalog-model" "^1.0.0" "@backstage/core-components" "^0.10.0" From 0da071f1347546078bd3554b0d615c3ec9e9aa8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Aug 2022 09:13:29 +0000 Subject: [PATCH 239/239] fix(deps): update dependency @octokit/webhooks to v10.1.5 Signed-off-by: Renovate Bot --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 373978dc47..69c6628857 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5713,19 +5713,19 @@ resolved "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-3.0.0.tgz#4f4443605233f46abc5f85a857ba105095aa1181" integrity sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA== -"@octokit/webhooks-types@6.3.5": - version "6.3.5" - resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.5.tgz#e0812abc74d27fd7443f28c0cfc527214bb5ee66" - integrity sha512-2QZkDXC3I3TO0mpI/VaqP+aeEvYm//Slkcsve24ezPCNA22HuekBaoEU92HF3WvciFEzWWv0e/E2SMVZcCaBZw== +"@octokit/webhooks-types@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-6.3.6.tgz#b211e42386463175ebc652c86d5c7433675986fc" + integrity sha512-x6yBtWobk20OhOiJ4VWsH3iJ/30IG+VoDWSgS4Tiyidi2KOiBS3bL+AJrNuq4OyNuWOM/FbHQTp6KEZs1oPD/g== "@octokit/webhooks@^10.0.0": - version "10.1.4" - resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.4.tgz#c16803312d6102425f464529ff52bccea03ea034" - integrity sha512-MVu56s7x9Me4gT/YpR1f2pzWDJNciTMdM3subCA5H8qZcvqInIdnssaxwLp1ep/JbeFhvkYWNHfPeLtwdGg3rQ== + version "10.1.5" + resolved "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-10.1.5.tgz#ba79b49ef0047a3cae7885387c5f20d4b341cd41" + integrity sha512-sQkxM6l9HdG1vsHFj2T/o8SnCPDDxovcs0rsSd4UR5jJFNPCPIBRmFNVHfM37nncLKuTwIpmMeePphNf1k6Waw== dependencies: "@octokit/request-error" "^3.0.0" "@octokit/webhooks-methods" "^3.0.0" - "@octokit/webhooks-types" "6.3.5" + "@octokit/webhooks-types" "6.3.6" aggregate-error "^3.1.0" "@open-draft/until@^1.0.3":