diff --git a/workspaces/github-pull-requests-board/.changeset/plenty-apes-sin.md b/workspaces/github-pull-requests-board/.changeset/plenty-apes-sin.md new file mode 100644 index 0000000000..f2928c279b --- /dev/null +++ b/workspaces/github-pull-requests-board/.changeset/plenty-apes-sin.md @@ -0,0 +1,5 @@ +--- +'@backstage-community/plugin-github-pull-requests-board': minor +--- + +Adds a composable home page component to view pull requests for a team's repositories diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/package.json b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/package.json index 458856591d..1d4ed3b1c1 100644 --- a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/package.json +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/package.json @@ -62,6 +62,8 @@ "@backstage/frontend-plugin-api": "^0.10.0", "@backstage/integration": "^1.16.2", "@backstage/plugin-catalog-react": "^1.16.0", + "@backstage/plugin-home": "^0.8.7", + "@backstage/plugin-home-react": "^0.1.25", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report-alpha.api.md b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report-alpha.api.md index c1bc267cf3..848f0f01e3 100644 --- a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report-alpha.api.md +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report-alpha.api.md @@ -121,9 +121,11 @@ const _default: FrontendPlugin< defaultTitle: string; defaultGroup?: | (string & {}) + | 'overview' | 'documentation' | 'development' | 'deployment' + | 'operation' | 'observability' | undefined; routeRef?: RouteRef | undefined; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report.api.md b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report.api.md index 285e6f381c..dddb83f4f3 100644 --- a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report.api.md +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/report.api.md @@ -5,7 +5,9 @@ ```ts /// +import { CardExtensionProps } from '@backstage/plugin-home-react'; import { JSX as JSX_2 } from 'react'; +import { JSX as JSX_3 } from 'react/jsx-runtime'; // @public (undocumented) export const EntityTeamPullRequestsCard: ( @@ -29,5 +31,10 @@ export interface EntityTeamPullRequestsContentProps { pullRequestLimit?: number; } +// @public (undocumented) +export const HomePageTeamPullRequestsCard: ( + props: CardExtensionProps, +) => JSX_3.Element; + // (No @packageDocumentation comment for this package) ``` diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Content.tsx b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Content.tsx new file mode 100644 index 0000000000..e87ceb33bc --- /dev/null +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Content.tsx @@ -0,0 +1,38 @@ +/* + * Copyright 2025 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 { useTeamPullRequestsContext } from './Context'; +import { EntityTeamPullRequestsCard } from '../EntityTeamPullRequestsCard'; +import Typography from '@material-ui/core/Typography'; +import { EntityProvider } from '@backstage/plugin-catalog-react'; + +export const Content = () => { + const { entity } = useTeamPullRequestsContext(); + + if (!entity) { + return ( + + Please select a team to view pull requests for + + ); + } + + return ( + + + + ); +}; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Context.tsx b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Context.tsx new file mode 100644 index 0000000000..58c3c008cb --- /dev/null +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Context.tsx @@ -0,0 +1,112 @@ +/* + * Copyright 2025 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 type { GroupEntity } from '@backstage/catalog-model'; +import { useApi } from '@backstage/frontend-plugin-api'; +import { + catalogApiRef, + CATALOG_FILTER_EXISTS, +} from '@backstage/plugin-catalog-react'; +import React, { + createContext, + useCallback, + useContext, + useEffect, + useState, +} from 'react'; + +type TeamPullRequestsContextValue = { + loading: boolean; + handleChangeType: Function; + entity: GroupEntity | null; + teams: GroupEntity[]; +}; + +const TEAM_PULL_REQUEST_STORAGE_KEY = '/home/team-pull-requests-card'; + +const Context = createContext( + undefined, +); + +export const ContextProvider = (props: { children: JSX.Element }) => { + const { children } = props; + + const [loading, setLoading] = useState(false); + const [entity, setEntity] = useState(() => { + const stored = localStorage.getItem(TEAM_PULL_REQUEST_STORAGE_KEY); + return stored ? JSON.parse(stored) : null; + }); + const [teams, setTeams] = useState([]); + + const catalogApi = useApi(catalogApiRef); + + const handleChangeType = (group: GroupEntity | null) => { + setEntity(group); + }; + + const fetchTeams = useCallback(async () => { + const { items: githubTeams } = await catalogApi.getEntities({ + filter: { + kind: 'Group', + 'metadata.annotations.github.com/team-slug': CATALOG_FILTER_EXISTS, + }, + }); + setTeams(githubTeams as GroupEntity[]); + }, [catalogApi]); + + useEffect(() => { + setLoading(true); + fetchTeams(); + setLoading(false); + }, [fetchTeams]); + + // Persist entity to localStorage whenever it changes + useEffect(() => { + if (entity) { + localStorage.setItem( + TEAM_PULL_REQUEST_STORAGE_KEY, + JSON.stringify(entity), + ); + } else { + localStorage.removeItem(TEAM_PULL_REQUEST_STORAGE_KEY); + } + }, [entity]); + + return ( + + {children} + + ); +}; + +export const useTeamPullRequestsContext = () => { + const context = useContext(Context); + if (!context) { + throw new Error( + 'useTeamPullRequestsContext must be used within a ContextProvider', + ); + } + return context; +}; + +export default ContextProvider; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Settings.tsx b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Settings.tsx new file mode 100644 index 0000000000..85d153ca79 --- /dev/null +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/Settings.tsx @@ -0,0 +1,45 @@ +/* + * Copyright 2025 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 { useTeamPullRequestsContext } from './Context'; +import FormControl from '@material-ui/core/FormControl'; +import FormLabel from '@material-ui/core/FormLabel'; +import Autocomplete from '@material-ui/lab/Autocomplete'; +import type { GroupEntity } from '@backstage/catalog-model'; +import TextField from '@material-ui/core/TextField'; + +export const Settings = () => { + const { handleChangeType, teams, entity } = useTeamPullRequestsContext(); + + return ( + + + Select Team to view pull requests for + + + `${option.metadata?.annotations?.['github.com/team-slug']}` + } + onChange={(_event, value) => { + handleChangeType(value as GroupEntity); + }} + value={entity} + renderInput={params => } + /> + + ); +}; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/index.ts b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/index.ts new file mode 100644 index 0000000000..a779a027d5 --- /dev/null +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/components/HomePageTeamPullRequestsCard/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2025 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 './Content'; +export * from './Context'; +export * from './Settings'; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/index.ts b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/index.ts index c93c1732b8..dfe8ee8759 100644 --- a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/index.ts +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/index.ts @@ -16,6 +16,7 @@ export { EntityTeamPullRequestsCard, EntityTeamPullRequestsContent, + HomePageTeamPullRequestsCard, } from './plugin'; export type { EntityTeamPullRequestsCardProps } from './components/EntityTeamPullRequestsCard'; export type { EntityTeamPullRequestsContentProps } from './components/EntityTeamPullRequestsContent'; diff --git a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/plugin.ts b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/plugin.ts index 87aea76d31..c8ac5209b8 100644 --- a/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/plugin.ts +++ b/workspaces/github-pull-requests-board/plugins/github-pull-requests-board/src/plugin.ts @@ -19,6 +19,8 @@ import { createRoutableExtension, } from '@backstage/core-plugin-api'; import { rootRouteRef } from './routes'; +import { createCardExtension } from '@backstage/plugin-home-react'; +import { homePlugin } from '@backstage/plugin-home'; const githubPullRequestsBoardPlugin = createPlugin({ id: 'github-pull-requests-board', @@ -52,3 +54,17 @@ export const EntityTeamPullRequestsContent = mountPoint: rootRouteRef, }), ); + +/** @public */ +export const HomePageTeamPullRequestsCard = homePlugin.provide( + createCardExtension({ + name: 'HomePageTeamPullRequestsCard', + title: 'GitHub Team Pull Requests', + components: () => import('./components/HomePageTeamPullRequestsCard'), + description: 'Display GitHub pull requests for a team', + layout: { + height: { minRows: 4 }, + width: { minColumns: 12 }, + }, + }), +); diff --git a/workspaces/github-pull-requests-board/yarn.lock b/workspaces/github-pull-requests-board/yarn.lock index 156a1562ee..5412523c68 100644 --- a/workspaces/github-pull-requests-board/yarn.lock +++ b/workspaces/github-pull-requests-board/yarn.lock @@ -1742,6 +1742,8 @@ __metadata: "@backstage/frontend-test-utils": "npm:^0.3.0" "@backstage/integration": "npm:^1.16.2" "@backstage/plugin-catalog-react": "npm:^1.16.0" + "@backstage/plugin-home": "npm:^0.8.7" + "@backstage/plugin-home-react": "npm:^0.1.25" "@backstage/test-utils": "npm:^1.7.6" "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" @@ -1999,12 +2001,12 @@ __metadata: languageName: node linkType: hard -"@backstage/core-app-api@npm:^1.16.0": - version: 1.16.0 - resolution: "@backstage/core-app-api@npm:1.16.0" +"@backstage/core-app-api@npm:^1.16.1": + version: 1.16.1 + resolution: "@backstage/core-app-api@npm:1.16.1" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/types": "npm:^1.2.1" "@backstage/version-bridge": "npm:^1.0.11" "@types/prop-types": "npm:^15.7.3" @@ -2023,17 +2025,17 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/f1dbba87aabf1cc92bc53a6a50dd92c4a0d50776015d39c0189125d3f818d3e83cb594270a461a80c58fdd07af464c6b4245906febced91d5805aefd73077a4f + checksum: 10/fae37fa5c4598dc1c2a4f82356d4039633cc7323f44f369ad1ca4151e1e27f668b2929f759e7a4843e273979a5aae1b473809e8add23cbd788fc48329bdf51fd languageName: node linkType: hard -"@backstage/core-compat-api@npm:^0.4.0": - version: 0.4.0 - resolution: "@backstage/core-compat-api@npm:0.4.0" +"@backstage/core-compat-api@npm:^0.4.0, @backstage/core-compat-api@npm:^0.4.1": + version: 0.4.1 + resolution: "@backstage/core-compat-api@npm:0.4.1" dependencies: - "@backstage/core-plugin-api": "npm:^1.10.5" - "@backstage/frontend-plugin-api": "npm:^0.10.0" - "@backstage/plugin-catalog-react": "npm:^1.16.0" + "@backstage/core-plugin-api": "npm:^1.10.6" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/plugin-catalog-react": "npm:^1.17.0" "@backstage/version-bridge": "npm:^1.0.11" lodash: "npm:^4.17.21" peerDependencies: @@ -2044,18 +2046,18 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/6b29f14dadc5dd5c055d063cb12ff901e2ff4458eb606489fc917e029afc3bb81b5292cf701227cedf35c3df25dc85ad1c60ca20ef3b8f75aa41d40a7f5580ee + checksum: 10/4c91cc4f4a06d6420a4bed63e540e46a34a7a1ecb831fd503960c9e9ae8817f015a0b6d39d37ac4588233caf2a21a93c9acadbe15d11b59706275166567a4581 languageName: node linkType: hard -"@backstage/core-components@npm:^0.17.0": - version: 0.17.0 - resolution: "@backstage/core-components@npm:0.17.0" +"@backstage/core-components@npm:^0.17.0, @backstage/core-components@npm:^0.17.1": + version: 0.17.1 + resolution: "@backstage/core-components@npm:0.17.1" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/errors": "npm:^1.2.7" - "@backstage/theme": "npm:^0.6.4" + "@backstage/theme": "npm:^0.6.5" "@backstage/version-bridge": "npm:^1.0.11" "@dagrejs/dagre": "npm:^1.1.4" "@date-io/core": "npm:^1.3.13" @@ -2098,13 +2100,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/b48f7a3a6df469f26eb033f2f59da36dcf56bb52ba7298b7dba05d9132c90f8ab5b58dd247a8f9c1b652b91138358fbae482654465550c74780a32fe04bf6e7e + checksum: 10/12e8f0675c2dd6bb871d77ceb833d2078cac41278d4122139669ffaadea09df7b3c8ca53c166e2c664c275e381f9c96f8383a5a1faaeb956ab0f1e4ee72ec1b7 languageName: node linkType: hard -"@backstage/core-plugin-api@npm:^1.10.5": - version: 1.10.5 - resolution: "@backstage/core-plugin-api@npm:1.10.5" +"@backstage/core-plugin-api@npm:^1.10.5, @backstage/core-plugin-api@npm:^1.10.6": + version: 1.10.6 + resolution: "@backstage/core-plugin-api@npm:1.10.6" dependencies: "@backstage/config": "npm:^1.3.2" "@backstage/errors": "npm:^1.2.7" @@ -2119,7 +2121,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/438d0dd80335e1b51842899f3e6bd1039fe29f0ae65e8ee827b8fcfce1599b63a3bdc36e87acce0168c59499f623a6285da7eaf0577567ebbad2900954e2f955 + checksum: 10/1359bb2dc294c6eb0b8de6aa4a0788561c5d43ef2a4464d4f7600c382126398a42724e8ba894925ab02f1d332ef9b87b0eeee31e56a9e9223f8d6504a283d896 languageName: node linkType: hard @@ -2158,16 +2160,16 @@ __metadata: languageName: node linkType: hard -"@backstage/frontend-app-api@npm:^0.11.0": - version: 0.11.0 - resolution: "@backstage/frontend-app-api@npm:0.11.0" +"@backstage/frontend-app-api@npm:^0.11.1": + version: 0.11.1 + resolution: "@backstage/frontend-app-api@npm:0.11.1" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-app-api": "npm:^1.16.0" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-app-api": "npm:^1.16.1" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/errors": "npm:^1.2.7" - "@backstage/frontend-defaults": "npm:^0.2.0" - "@backstage/frontend-plugin-api": "npm:^0.10.0" + "@backstage/frontend-defaults": "npm:^0.2.1" + "@backstage/frontend-plugin-api": "npm:^0.10.1" "@backstage/types": "npm:^1.2.1" "@backstage/version-bridge": "npm:^1.0.11" lodash: "npm:^4.17.21" @@ -2180,19 +2182,19 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/5522ddd487766ea44288d5626f269e42ad7d84902a5a257fd3962d2b2409743cf1b5de135e15915ba568bf2b12ec25c814ece077c87e1436c67e63998b1b9652 + checksum: 10/fdf5b7dddeba9320e8ec54751396a3e81897605c26520af60eb61a76f17dd78b6b786f5cfa9f4bad3beef0d3408868bfe8331f6773b54034d11dc170a35e60e7 languageName: node linkType: hard -"@backstage/frontend-defaults@npm:^0.2.0": - version: 0.2.0 - resolution: "@backstage/frontend-defaults@npm:0.2.0" +"@backstage/frontend-defaults@npm:^0.2.1": + version: 0.2.1 + resolution: "@backstage/frontend-defaults@npm:0.2.1" dependencies: "@backstage/config": "npm:^1.3.2" "@backstage/errors": "npm:^1.2.7" - "@backstage/frontend-app-api": "npm:^0.11.0" - "@backstage/frontend-plugin-api": "npm:^0.10.0" - "@backstage/plugin-app": "npm:^0.1.7" + "@backstage/frontend-app-api": "npm:^0.11.1" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/plugin-app": "npm:^0.1.8" "@react-hookz/web": "npm:^24.0.0" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -2202,16 +2204,16 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/65decef0c603ededc36791db771f82c35f6b8c283a65d6b81ad098175290ce8d125d22127968820d29dcbc69c4241b7e703013c5091a1c433bfaf86eaad482ea + checksum: 10/3bd178ca78db5d467378272025d7a3fa7995a37063f39c2ec2c9a81b2bb6aa4890f888e99f1e5c4abb442614b978a490d8dbcaa09e54a94e47364caab618725c languageName: node linkType: hard -"@backstage/frontend-plugin-api@npm:^0.10.0": - version: 0.10.0 - resolution: "@backstage/frontend-plugin-api@npm:0.10.0" +"@backstage/frontend-plugin-api@npm:^0.10.0, @backstage/frontend-plugin-api@npm:^0.10.1": + version: 0.10.1 + resolution: "@backstage/frontend-plugin-api@npm:0.10.1" dependencies: - "@backstage/core-components": "npm:^0.17.0" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-components": "npm:^0.17.1" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/types": "npm:^1.2.1" "@backstage/version-bridge": "npm:^1.0.11" "@material-ui/core": "npm:^4.12.4" @@ -2226,19 +2228,19 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/9f52031e65d38087da1ad8d3117fdb2c54dbde20326f32c7cfebd755af6d28d881c9e57b5f9c17f4920fb40eea90b3b5b48b4cfc95f7dd2a3359866544ad5411 + checksum: 10/5a1b69d7a1b1db584f4f0c4934ac98dc678f53730c250959da47e20479032b02b1f02785bcb51989af899e8b1166599e23e03ce024469e5efb5b49f8c792e315 languageName: node linkType: hard -"@backstage/frontend-test-utils@npm:^0.3.0": - version: 0.3.0 - resolution: "@backstage/frontend-test-utils@npm:0.3.0" +"@backstage/frontend-test-utils@npm:^0.3.0, @backstage/frontend-test-utils@npm:^0.3.1": + version: 0.3.1 + resolution: "@backstage/frontend-test-utils@npm:0.3.1" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/frontend-app-api": "npm:^0.11.0" - "@backstage/frontend-plugin-api": "npm:^0.10.0" - "@backstage/plugin-app": "npm:^0.1.7" - "@backstage/test-utils": "npm:^1.7.6" + "@backstage/frontend-app-api": "npm:^0.11.1" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/plugin-app": "npm:^0.1.8" + "@backstage/test-utils": "npm:^1.7.7" "@backstage/types": "npm:^1.2.1" "@backstage/version-bridge": "npm:^1.0.11" zod: "npm:^3.22.4" @@ -2251,17 +2253,17 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/d141510fd32dc585677e1e1d7e0962b7656fd3ba7c214ef6341da39771e6fc41f5a1ca593ccfe660017fab15c90e7f7166c501618cb4c21d076ea98f101039dc + checksum: 10/b46c7e660ffbfecae9d0dd9fbc471c0c6324550d768f2749ff5726b4acd737aef4075290f1c2e8b73ce967b664997cc1f47f933254209d41d2fb080799c3dba9 languageName: node linkType: hard -"@backstage/integration-react@npm:^1.2.5": - version: 1.2.5 - resolution: "@backstage/integration-react@npm:1.2.5" +"@backstage/integration-react@npm:^1.2.6": + version: 1.2.6 + resolution: "@backstage/integration-react@npm:1.2.6" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-plugin-api": "npm:^1.10.5" - "@backstage/integration": "npm:^1.16.2" + "@backstage/core-plugin-api": "npm:^1.10.6" + "@backstage/integration": "npm:^1.16.3" "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" peerDependencies: @@ -2272,13 +2274,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/e41677549a09452470f653962faeacb16aa3cc4b5eb2449f8521ea4a630c0468a079e1a91bce22ebed4c7421329a547de3084ff7c3d9f5113659559ba28ae07e + checksum: 10/7a3a13d277e03c5a95131b99a50210e4bd7bdcba133ef5ee1549d625fc373072669a52e9317bc1b29f27f7a3d99eb89d2dc6469ff7bd87de10eb1d19a03a51bb languageName: node linkType: hard -"@backstage/integration@npm:^1.16.2": - version: 1.16.2 - resolution: "@backstage/integration@npm:1.16.2" +"@backstage/integration@npm:^1.16.2, @backstage/integration@npm:^1.16.3": + version: 1.16.3 + resolution: "@backstage/integration@npm:1.16.3" dependencies: "@azure/identity": "npm:^4.0.0" "@azure/storage-blob": "npm:^12.5.0" @@ -2290,20 +2292,20 @@ __metadata: git-url-parse: "npm:^15.0.0" lodash: "npm:^4.17.21" luxon: "npm:^3.0.0" - checksum: 10/fe7733dd24002931449fbe198254f2fd578bd63183141fe9194a8488e8c18dff23f9ada12af76e69e1cfb91fee5b4737fe404dd354eb6f27d1a8dcc601356c52 + checksum: 10/ce27919bee116725b1cd0749388dacace62746eba46772343cdd95d93c0261d673b7feac62ff74a024e6a8b455b33f231ceb987c23ecf34804643eda6bed2821 languageName: node linkType: hard -"@backstage/plugin-app@npm:^0.1.7": - version: 0.1.7 - resolution: "@backstage/plugin-app@npm:0.1.7" - dependencies: - "@backstage/core-components": "npm:^0.17.0" - "@backstage/core-plugin-api": "npm:^1.10.5" - "@backstage/frontend-plugin-api": "npm:^0.10.0" - "@backstage/integration-react": "npm:^1.2.5" - "@backstage/plugin-permission-react": "npm:^0.4.32" - "@backstage/theme": "npm:^0.6.4" +"@backstage/plugin-app@npm:^0.1.8": + version: 0.1.8 + resolution: "@backstage/plugin-app@npm:0.1.8" + dependencies: + "@backstage/core-components": "npm:^0.17.1" + "@backstage/core-plugin-api": "npm:^1.10.6" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/integration-react": "npm:^1.2.6" + "@backstage/plugin-permission-react": "npm:^0.4.33" + "@backstage/theme": "npm:^0.6.5" "@backstage/types": "npm:^1.2.1" "@material-ui/core": "npm:^4.9.13" "@material-ui/icons": "npm:^4.9.1" @@ -2317,7 +2319,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/29819de2c81dbeb787e485d43b8ccb475d42fb4e071ce2eab6e0a814e35f5d6f14deb1266082326dd3b07005136a34b780a14af3aed7efae6f0fff4ae28bc9cb + checksum: 10/3634ce0bb0ac0f86050c45a4d24f728975232dcd04106b48b1ffdaec4e2ce9ef1ad17220afd0351fb75d6e10bfaacd45289064397332b5c08dc1c046d21466cf languageName: node linkType: hard @@ -2355,22 +2357,22 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-react@npm:^1.16.0": - version: 1.16.0 - resolution: "@backstage/plugin-catalog-react@npm:1.16.0" +"@backstage/plugin-catalog-react@npm:^1.16.0, @backstage/plugin-catalog-react@npm:^1.17.0": + version: 1.17.0 + resolution: "@backstage/plugin-catalog-react@npm:1.17.0" dependencies: "@backstage/catalog-client": "npm:^1.9.1" "@backstage/catalog-model": "npm:^1.7.3" - "@backstage/core-compat-api": "npm:^0.4.0" - "@backstage/core-components": "npm:^0.17.0" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-compat-api": "npm:^0.4.1" + "@backstage/core-components": "npm:^0.17.1" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/errors": "npm:^1.2.7" - "@backstage/frontend-plugin-api": "npm:^0.10.0" - "@backstage/frontend-test-utils": "npm:^0.3.0" - "@backstage/integration-react": "npm:^1.2.5" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/frontend-test-utils": "npm:^0.3.1" + "@backstage/integration-react": "npm:^1.2.6" "@backstage/plugin-catalog-common": "npm:^1.1.3" "@backstage/plugin-permission-common": "npm:^0.8.4" - "@backstage/plugin-permission-react": "npm:^0.4.32" + "@backstage/plugin-permission-react": "npm:^0.4.33" "@backstage/types": "npm:^1.2.1" "@backstage/version-bridge": "npm:^1.0.11" "@material-ui/core": "npm:^4.12.2" @@ -2392,7 +2394,68 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/0149b99ede5d563cd81dfa1d657cf332af2cbb3e6ff2e88244c4b3c59e2109264c62e3a6903ee471596a3c709294b81fe2da83513d79690704fb37f6cf67d305 + checksum: 10/025ed43087462b021c13eac7fc762ad7d52d8ebb593da0093130e6379a79ac1b428fa9024eb21ace9bdf1d43ecafcab39226dbbf2b44ba35a6c93a9ddb04f1da + languageName: node + linkType: hard + +"@backstage/plugin-home-react@npm:^0.1.25": + version: 0.1.25 + resolution: "@backstage/plugin-home-react@npm:0.1.25" + dependencies: + "@backstage/core-components": "npm:^0.17.1" + "@backstage/core-plugin-api": "npm:^1.10.6" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@rjsf/utils": "npm:5.23.2" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/5833dc6955266e1a82ea52657518592de2f918b23d54f4bb6132c968da0b42920eef7aa0d21989b3c9f78e47c80236fb18078fdc2fa105cd757bd7f168aea2b4 + languageName: node + linkType: hard + +"@backstage/plugin-home@npm:^0.8.7": + version: 0.8.7 + resolution: "@backstage/plugin-home@npm:0.8.7" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/core-app-api": "npm:^1.16.1" + "@backstage/core-compat-api": "npm:^0.4.1" + "@backstage/core-components": "npm:^0.17.1" + "@backstage/core-plugin-api": "npm:^1.10.6" + "@backstage/frontend-plugin-api": "npm:^0.10.1" + "@backstage/plugin-catalog-react": "npm:^1.17.0" + "@backstage/plugin-home-react": "npm:^0.1.25" + "@backstage/theme": "npm:^0.6.5" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@rjsf/core": "npm:5.23.2" + "@rjsf/material-ui": "npm:5.23.2" + "@rjsf/utils": "npm:5.23.2" + "@rjsf/validator-ajv8": "npm:5.23.2" + lodash: "npm:^4.17.21" + luxon: "npm:^3.4.3" + react-grid-layout: "npm:1.3.4" + react-resizable: "npm:^3.0.4" + react-use: "npm:^17.2.4" + zod: "npm:^3.22.4" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/a3efff2cc57f699feedce259c2238301ddd58701338f55718b169a4d01cec825af536cd9d0bd4c8058e4485fc0bd7b630dc3e0ae037e50bacb076801f046bc51 languageName: node linkType: hard @@ -2429,12 +2492,12 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-react@npm:^0.4.32": - version: 0.4.32 - resolution: "@backstage/plugin-permission-react@npm:0.4.32" +"@backstage/plugin-permission-react@npm:^0.4.33": + version: 0.4.33 + resolution: "@backstage/plugin-permission-react@npm:0.4.33" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/plugin-permission-common": "npm:^0.8.4" swr: "npm:^2.0.0" peerDependencies: @@ -2445,7 +2508,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/c3e145b8a7817962daac1be78a733b943fe530484182ed83201d260af7027dc649222c625d3c8fb5861c64200152afa1b41d57d3b4602ef8d7619d6c740207c7 + checksum: 10/552bba79e3876ec48faf40df1c7f05f5b183130b3b214101b1dd48f519b6846867457ae458daeb20e74b8d8c805f4615c8a1c2d670e2f69f463cb484a408f16b languageName: node linkType: hard @@ -2530,16 +2593,16 @@ __metadata: languageName: node linkType: hard -"@backstage/test-utils@npm:^1.7.6": - version: 1.7.6 - resolution: "@backstage/test-utils@npm:1.7.6" +"@backstage/test-utils@npm:^1.7.6, @backstage/test-utils@npm:^1.7.7": + version: 1.7.7 + resolution: "@backstage/test-utils@npm:1.7.7" dependencies: "@backstage/config": "npm:^1.3.2" - "@backstage/core-app-api": "npm:^1.16.0" - "@backstage/core-plugin-api": "npm:^1.10.5" + "@backstage/core-app-api": "npm:^1.16.1" + "@backstage/core-plugin-api": "npm:^1.10.6" "@backstage/plugin-permission-common": "npm:^0.8.4" - "@backstage/plugin-permission-react": "npm:^0.4.32" - "@backstage/theme": "npm:^0.6.4" + "@backstage/plugin-permission-react": "npm:^0.4.33" + "@backstage/theme": "npm:^0.6.5" "@backstage/types": "npm:^1.2.1" "@material-ui/core": "npm:^4.12.2" "@material-ui/icons": "npm:^4.9.1" @@ -2555,13 +2618,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/527f44b032e526da1c0262835ae9077a1fc96e7f55ba76337583296c9b91fa7ab442399c101720e03f8c939220ff012bee9ecd8048fe25eae1afcee1e7c8abbd + checksum: 10/2ffc4957e84b4c0e1328e43e05c88051026edbf8e2c9fd04f873176ecd636bc11269f36fa72933defc60d0d869986e9a2d46bba1f57e50811671d81c330bf1b1 languageName: node linkType: hard -"@backstage/theme@npm:^0.6.4": - version: 0.6.4 - resolution: "@backstage/theme@npm:0.6.4" +"@backstage/theme@npm:^0.6.5": + version: 0.6.5 + resolution: "@backstage/theme@npm:0.6.5" dependencies: "@emotion/react": "npm:^11.10.5" "@emotion/styled": "npm:^11.10.5" @@ -2575,7 +2638,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/afa4a94a60136b48da5f3e994017e5a65248fa22942034831f83df0dffb4759e80c5aa9690606a8913e35a7d093747a3e50e56b5bdf2a58cb8f77d3d25ff8c70 + checksum: 10/242ccb2af6e2d1c64d4084c568c31d696d6abfdbbbd0ba35b2a9dabaae9c196b4610e2124f2c23fff16de082701901627f85b180f8a3ea2a8bcb865beb982829 languageName: node linkType: hard @@ -5129,6 +5192,64 @@ __metadata: languageName: node linkType: hard +"@rjsf/core@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/core@npm:5.23.2" + dependencies: + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + markdown-to-jsx: "npm:^7.4.1" + nanoid: "npm:^3.3.7" + prop-types: "npm:^15.8.1" + peerDependencies: + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: 10/a49cbd41bb8b499ad2ed521417f53bf3fa65c09bedbf0e02ce0f00a5287a3ae4df774e74f89a8dcb8a24359d382a585ea4d20c3a6e109f4aaad2cd74b7db2b01 + languageName: node + linkType: hard + +"@rjsf/material-ui@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/material-ui@npm:5.23.2" + peerDependencies: + "@material-ui/core": ^4.12.3 + "@material-ui/icons": ^4.11.2 + "@rjsf/core": ^5.23.x + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: 10/0c9ab33d4a2251bc4a3868fd09e6267ccd23e96b226204e1e2b5d9667fec375f64ac9674f3f5c8b013bb6e0b745f31854cab92b859b0c9ff2527338760664d5f + languageName: node + linkType: hard + +"@rjsf/utils@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/utils@npm:5.23.2" + dependencies: + json-schema-merge-allof: "npm:^0.8.1" + jsonpointer: "npm:^5.0.1" + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + react-is: "npm:^18.2.0" + peerDependencies: + react: ^16.14.0 || >=17 + checksum: 10/739a65a40dede96dd1d202ad0c0df96ffe4c75cd3ebcf035da9589eecf2875100c9e28066e135ececa4c188abee436b9ccaa1536992ab5d8417bb6c9e43bd156 + languageName: node + linkType: hard + +"@rjsf/validator-ajv8@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/validator-ajv8@npm:5.23.2" + dependencies: + ajv: "npm:^8.12.0" + ajv-formats: "npm:^2.1.1" + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + peerDependencies: + "@rjsf/utils": ^5.23.x + checksum: 10/568693ef0b93f21000b3b9352a65dd65001b4b85514fd94a1bf7562dc9ab8333f3a077c5335041fd7d250fac9a6c9cb77ea8539d8589a03afa55539898f896e6 + languageName: node + linkType: hard + "@rollup/plugin-commonjs@npm:^26.0.0": version: 26.0.3 resolution: "@rollup/plugin-commonjs@npm:26.0.3" @@ -7464,15 +7585,15 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.6.0, ajv@npm:^8.6.3, ajv@npm:^8.8.2, ajv@npm:^8.9.0, ajv@npm:~8.13.0": - version: 8.13.0 - resolution: "ajv@npm:8.13.0" +"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.12.0, ajv@npm:^8.6.0, ajv@npm:^8.6.3, ajv@npm:^8.8.2, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 10/4ada268c9a6e44be87fd295df0f0a91267a7bae8dbc8a67a2d5799c3cb459232839c99d18b035597bb6e3ffe88af6979f7daece854f590a81ebbbc2dfa80002c + checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33 languageName: node linkType: hard @@ -7488,6 +7609,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:~8.13.0": + version: 8.13.0 + resolution: "ajv@npm:8.13.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.4.1" + checksum: 10/4ada268c9a6e44be87fd295df0f0a91267a7bae8dbc8a67a2d5799c3cb459232839c99d18b035597bb6e3ffe88af6979f7daece854f590a81ebbbc2dfa80002c + languageName: node + linkType: hard + "alphanum-sort@npm:^1.0.2": version: 1.0.2 resolution: "alphanum-sort@npm:1.0.2" @@ -8766,7 +8899,7 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^1.0.2, clsx@npm:^1.0.4": +"clsx@npm:^1.0.2, clsx@npm:^1.0.4, clsx@npm:^1.1.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" checksum: 10/5ded6f61f15f1fa0350e691ccec43a28b12fb8e64c8e94715f2a937bc3722d4c3ed41d6e945c971fc4dcc2a7213a43323beaf2e1c28654af63ba70c9968a8643 @@ -11425,6 +11558,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.6 + resolution: "fast-uri@npm:3.0.6" + checksum: 10/43c87cd03926b072a241590e49eca0e2dfe1d347ddffd4b15307613b42b8eacce00a315cf3c7374736b5f343f27e27ec88726260eb03a758336d507d6fbaba0a + languageName: node + linkType: hard + "fast-xml-parser@npm:^4.4.1": version: 4.5.1 resolution: "fast-xml-parser@npm:4.5.1" @@ -14908,6 +15048,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 10/03f39878ea1e42b3199bd3f478150ab723f93cc8730ad86fec1f2804f4a07c6e30deaac73cad53a88e9c3db33348bb8ceeb274552390e7a75d7849021c02df43 + languageName: node + linkType: hard + "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -14943,7 +15090,7 @@ __metadata: languageName: node linkType: hard -"lodash.isequal@npm:^4.5.0": +"lodash.isequal@npm:^4.0.0, lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" checksum: 10/82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214 @@ -15108,10 +15255,10 @@ __metadata: languageName: node linkType: hard -"luxon@npm:^3.0.0, luxon@npm:^3.2.1": - version: 3.4.4 - resolution: "luxon@npm:3.4.4" - checksum: 10/c14164bc338987349075a08e63ea3ff902866735f7f5553a355b27be22667919765ff96fde4d3413d0e9a0edc4ff9e2e74ebcb8f86eae0ce8b14b27330d87d6e +"luxon@npm:^3.0.0, luxon@npm:^3.2.1, luxon@npm:^3.4.3": + version: 3.6.1 + resolution: "luxon@npm:3.6.1" + checksum: 10/35aad425607708c87af110a52c949190bc35b987770079ec8007ef2365cd29639413db3360d2883777aa01cb3ca5bdb37f42ee3e8e5a0dd277fe22e90cc8a786 languageName: node linkType: hard @@ -15198,6 +15345,15 @@ __metadata: languageName: node linkType: hard +"markdown-to-jsx@npm:^7.4.1": + version: 7.7.6 + resolution: "markdown-to-jsx@npm:7.7.6" + peerDependencies: + react: ">= 0.14.0" + checksum: 10/0bf73f6163c0586059adff5a5a3855a1f6b2ea7081a9c68a65397a5e94b55f88fa11956ce48907da18aae3e7f78f8e4fb1a81d9a8b9db1e0a07ec2219e748c33 + languageName: node + linkType: hard + "matcher@npm:^3.0.0": version: 3.0.0 resolution: "matcher@npm:3.0.0" @@ -17713,7 +17869,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:15.x, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -18022,6 +18178,19 @@ __metadata: languageName: node linkType: hard +"react-draggable@npm:^4.0.0, react-draggable@npm:^4.0.3": + version: 4.4.6 + resolution: "react-draggable@npm:4.4.6" + dependencies: + clsx: "npm:^1.1.1" + prop-types: "npm:^15.8.1" + peerDependencies: + react: ">= 16.3.0" + react-dom: ">= 16.3.0" + checksum: 10/51b9ac7f913797fc1cebc30ae383f346883033c45eb91e9b0b92e9ebd224bb1545b4ae2391825b649b798cc711a38351a5f41be24d949c64c6703ebc24eba661 + languageName: node + linkType: hard + "react-error-overlay@npm:^6.0.11": version: 6.0.11 resolution: "react-error-overlay@npm:6.0.11" @@ -18036,6 +18205,22 @@ __metadata: languageName: node linkType: hard +"react-grid-layout@npm:1.3.4": + version: 1.3.4 + resolution: "react-grid-layout@npm:1.3.4" + dependencies: + clsx: "npm:^1.1.1" + lodash.isequal: "npm:^4.0.0" + prop-types: "npm:^15.8.1" + react-draggable: "npm:^4.0.0" + react-resizable: "npm:^3.0.4" + peerDependencies: + react: ">= 16.3.0" + react-dom: ">= 16.3.0" + checksum: 10/944ab133e59bfaa5633625f57be9f69133b5cec2de0232d9581e2c988e257ebafe010ee9bbbff6c2754f9d7d8bb0053072bac103f20fc232be2a58e15d14fc64 + languageName: node + linkType: hard + "react-helmet@npm:6.1.0": version: 6.1.0 resolution: "react-helmet@npm:6.1.0" @@ -18144,6 +18329,18 @@ __metadata: languageName: node linkType: hard +"react-resizable@npm:^3.0.4": + version: 3.0.5 + resolution: "react-resizable@npm:3.0.5" + dependencies: + prop-types: "npm:15.x" + react-draggable: "npm:^4.0.3" + peerDependencies: + react: ">= 16.3" + checksum: 10/745fad6ac827857b3a80d1d648b8d6723aa72fc17d5410a01707073f3d37b4adf6e0354dfe3cc33dee34d6e546a3fbd5603ef73e385dfc5218a425a39bf96275 + languageName: node + linkType: hard + "react-router-dom@npm:6.0.0-beta.0 || ^6.3.0": version: 6.22.3 resolution: "react-router-dom@npm:6.22.3"