Skip to content

Commit 1bf1e84

Browse files
authored
chore(release-1.9): add patches to fix breaking changes caused by qs update (#4062)
Signed-off-by: Jessica He <jhe@redhat.com>
1 parent 2adcd86 commit 1bf1e84

File tree

4 files changed

+507
-1
lines changed

4 files changed

+507
-1
lines changed

.yarn/patches/@backstage-plugin-catalog-graph-npm-0.5.3-761764c7c3.patch

Lines changed: 328 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
diff --git a/dist/alpha.d.ts b/dist/alpha.d.ts
2+
index b939c98bf499fc42ce68dc074cac8eb641ed7462..83e93f40f32bd4d021dd12b7844d393648ce1804 100644
3+
--- a/dist/alpha.d.ts
4+
+++ b/dist/alpha.d.ts
5+
@@ -18,7 +18,7 @@ declare const searchTranslationRef: _backstage_core_plugin_api_alpha.Translation
6+
}>;
7+
8+
/** @alpha */
9+
-declare const searchApi: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
10+
+declare const searchApi: _backstage_frontend_plugin_api.ExtensionDefinition<{
11+
kind: "api";
12+
name: undefined;
13+
config: {};
14+
@@ -28,7 +28,7 @@ declare const searchApi: _backstage_frontend_plugin_api.OverridableExtensionDefi
15+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_core_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_core_plugin_api.AnyApiFactory>;
16+
}>;
17+
/** @alpha */
18+
-declare const searchPage: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
19+
+declare const searchPage: _backstage_frontend_plugin_api.ExtensionDefinition<{
20+
config: {
21+
noTrack: boolean;
22+
} & {
23+
@@ -46,7 +46,6 @@ declare const searchPage: _backstage_frontend_plugin_api.OverridableExtensionDef
24+
items: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
25+
predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate;
26+
component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
27+
- icon?: react.JSX.Element;
28+
}, "search.search-result-list-item.item", {}>, {
29+
singleton: false;
30+
optional: false;
31+
@@ -54,7 +53,7 @@ declare const searchPage: _backstage_frontend_plugin_api.OverridableExtensionDef
32+
resultTypes: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
33+
value: string;
34+
name: string;
35+
- icon: react.JSX.Element;
36+
+ icon: JSX.Element;
37+
}, "search.filters.result-types.type", {}>, {
38+
singleton: false;
39+
optional: false;
40+
@@ -76,7 +75,7 @@ declare const searchPage: _backstage_frontend_plugin_api.OverridableExtensionDef
41+
};
42+
}>;
43+
/** @alpha */
44+
-declare const searchNavItem: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
45+
+declare const searchNavItem: _backstage_frontend_plugin_api.ExtensionDefinition<{
46+
kind: "nav-item";
47+
name: undefined;
48+
config: {};
49+
@@ -97,7 +96,7 @@ declare const searchNavItem: _backstage_frontend_plugin_api.OverridableExtension
50+
declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{
51+
root: _backstage_frontend_plugin_api.RouteRef<undefined>;
52+
}, {}, {
53+
- "api:search": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
54+
+ "api:search": _backstage_frontend_plugin_api.ExtensionDefinition<{
55+
kind: "api";
56+
name: undefined;
57+
config: {};
58+
@@ -106,7 +105,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
59+
inputs: {};
60+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_core_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_core_plugin_api.AnyApiFactory>;
61+
}>;
62+
- "nav-item:search": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
63+
+ "nav-item:search": _backstage_frontend_plugin_api.ExtensionDefinition<{
64+
kind: "nav-item";
65+
name: undefined;
66+
config: {};
67+
@@ -123,7 +122,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
68+
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
69+
};
70+
}>;
71+
- "page:search": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
72+
+ "page:search": _backstage_frontend_plugin_api.ExtensionDefinition<{
73+
config: {
74+
noTrack: boolean;
75+
} & {
76+
@@ -141,7 +140,6 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
77+
items: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
78+
predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate;
79+
component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
80+
- icon?: react.JSX.Element;
81+
}, "search.search-result-list-item.item", {}>, {
82+
singleton: false;
83+
optional: false;
84+
@@ -149,7 +147,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
85+
resultTypes: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
86+
value: string;
87+
name: string;
88+
- icon: react.JSX.Element;
89+
+ icon: JSX.Element;
90+
}, "search.filters.result-types.type", {}>, {
91+
singleton: false;
92+
optional: false;
93+
diff --git a/dist/components/SearchPage/SearchPage.esm.js b/dist/components/SearchPage/SearchPage.esm.js
94+
index cac9c3a6f3dcb7b2777586c076d8ccf7e62b37da..27129f72edb65b535dbbdad8c897280fdc1c9eb0 100644
95+
--- a/dist/components/SearchPage/SearchPage.esm.js
96+
+++ b/dist/components/SearchPage/SearchPage.esm.js
97+
@@ -22,7 +22,7 @@ const UrlUpdater = () => {
98+
if (location.search === prevQueryParams) {
99+
return;
100+
}
101+
- const query = qs.parse(location.search.substring(1), { arrayLimit: 0 }) || {};
102+
+ const query = qs.parse(location.search.substring(1), { arrayLimit: 1e4 }) || {};
103+
if (query.filters) {
104+
setFilters(query.filters);
105+
}
106+
diff --git a/dist/components/SearchPage/SearchPage.esm.js.map b/dist/components/SearchPage/SearchPage.esm.js.map
107+
index 590d6ed3f78412f698a41509d75002806b564d9b..7c7ec20dacd8767208ae5258b1f6f069abba7816 100644
108+
--- a/dist/components/SearchPage/SearchPage.esm.js.map
109+
+++ b/dist/components/SearchPage/SearchPage.esm.js.map
110+
@@ -1 +1 @@
111+
-{"version":3,"file":"SearchPage.esm.js","sources":["../../../src/components/SearchPage/SearchPage.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from 'react';\nimport usePrevious from 'react-use/esm/usePrevious';\nimport qs from 'qs';\nimport { useLocation, useOutlet } from 'react-router-dom';\nimport {\n SearchContextProvider,\n useSearch,\n} from '@backstage/plugin-search-react';\nimport { JsonObject } from '@backstage/types';\n\nexport const UrlUpdater = () => {\n const location = useLocation();\n const {\n term,\n setTerm,\n types,\n setTypes,\n pageCursor,\n setPageCursor,\n filters,\n setFilters,\n } = useSearch();\n\n const prevQueryParams = usePrevious(location.search);\n useEffect(() => {\n // Only respond to changes to url query params\n if (location.search === prevQueryParams) {\n return;\n }\n\n const query =\n qs.parse(location.search.substring(1), { arrayLimit: 0 }) || {};\n\n if (query.filters) {\n setFilters(query.filters as JsonObject);\n }\n\n if (query.query) {\n setTerm(query.query as string);\n }\n\n if (query.pageCursor) {\n setPageCursor(query.pageCursor as string);\n }\n\n if (query.types) {\n setTypes(query.types as string[]);\n }\n }, [prevQueryParams, location, setTerm, setTypes, setPageCursor, setFilters]);\n\n useEffect(() => {\n const newParams = qs.stringify(\n {\n query: term,\n types,\n pageCursor,\n filters,\n },\n { arrayFormat: 'brackets' },\n );\n const newUrl = `${window.location.pathname}?${newParams}`;\n\n // We directly manipulate window history here in order to not re-render\n // infinitely (state => location => state => etc). The intention of this\n // code is just to ensure the right query/filters are loaded when a user\n // clicks the \"back\" button after clicking a result.\n window.history.replaceState(null, document.title, newUrl);\n }, [term, types, pageCursor, filters]);\n\n return null;\n};\n\n/**\n * @public\n */\nexport const SearchPage = () => {\n const outlet = useOutlet();\n\n return (\n <SearchContextProvider>\n <UrlUpdater />\n {outlet}\n </SearchContextProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;AA0BO,MAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,MACE,SAAA,EAAU;AAEd,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,QAAA,CAAS,MAAM,CAAA;AACnD,EAAA,SAAA,CAAU,MAAM;AAEd,IAAA,IAAI,QAAA,CAAS,WAAW,eAAA,EAAiB;AACvC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,KAAA,GACJ,EAAA,CAAG,KAAA,CAAM,QAAA,CAAS,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,EAAG,EAAE,UAAA,EAAY,CAAA,EAAG,KAAK,EAAC;AAEhE,IAAA,IAAI,MAAM,OAAA,EAAS;AACjB,MAAA,UAAA,CAAW,MAAM,OAAqB,CAAA;AAAA,IACxC;AAEA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,OAAA,CAAQ,MAAM,KAAe,CAAA;AAAA,IAC/B;AAEA,IAAA,IAAI,MAAM,UAAA,EAAY;AACpB,MAAA,aAAA,CAAc,MAAM,UAAoB,CAAA;AAAA,IAC1C;AAEA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,QAAA,CAAS,MAAM,KAAiB,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,QAAA,EAAU,SAAS,QAAA,EAAU,aAAA,EAAe,UAAU,CAAC,CAAA;AAE5E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,YAAY,EAAA,CAAG,SAAA;AAAA,MACnB;AAAA,QACE,KAAA,EAAO,IAAA;AAAA,QACP,KAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,EAAE,aAAa,UAAA;AAAW,KAC5B;AACA,IAAA,MAAM,SAAS,CAAA,EAAG,MAAA,CAAO,QAAA,CAAS,QAAQ,IAAI,SAAS,CAAA,CAAA;AAMvD,IAAA,MAAA,CAAO,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,QAAA,CAAS,OAAO,MAAM,CAAA;AAAA,EAC1D,GAAG,CAAC,IAAA,EAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAC,CAAA;AAErC,EAAA,OAAO,IAAA;AACT;AAKO,MAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,4BACG,qBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA;AAAA,IACX;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
112+
\ No newline at end of file
113+
+{"version":3,"file":"SearchPage.esm.js","sources":["../../../src/components/SearchPage/SearchPage.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from 'react';\nimport usePrevious from 'react-use/esm/usePrevious';\nimport qs from 'qs';\nimport { useLocation, useOutlet } from 'react-router-dom';\nimport {\n SearchContextProvider,\n useSearch,\n} from '@backstage/plugin-search-react';\nimport { JsonObject } from '@backstage/types';\n\nexport const UrlUpdater = () => {\n const location = useLocation();\n const {\n term,\n setTerm,\n types,\n setTypes,\n pageCursor,\n setPageCursor,\n filters,\n setFilters,\n } = useSearch();\n\n const prevQueryParams = usePrevious(location.search);\n useEffect(() => {\n // Only respond to changes to url query params\n if (location.search === prevQueryParams) {\n return;\n }\n\n const query =\n qs.parse(location.search.substring(1), { arrayLimit: 10000 }) || {};\n\n if (query.filters) {\n setFilters(query.filters as JsonObject);\n }\n\n if (query.query) {\n setTerm(query.query as string);\n }\n\n if (query.pageCursor) {\n setPageCursor(query.pageCursor as string);\n }\n\n if (query.types) {\n setTypes(query.types as string[]);\n }\n }, [prevQueryParams, location, setTerm, setTypes, setPageCursor, setFilters]);\n\n useEffect(() => {\n const newParams = qs.stringify(\n {\n query: term,\n types,\n pageCursor,\n filters,\n },\n { arrayFormat: 'brackets' },\n );\n const newUrl = `${window.location.pathname}?${newParams}`;\n\n // We directly manipulate window history here in order to not re-render\n // infinitely (state => location => state => etc). The intention of this\n // code is just to ensure the right query/filters are loaded when a user\n // clicks the \"back\" button after clicking a result.\n window.history.replaceState(null, document.title, newUrl);\n }, [term, types, pageCursor, filters]);\n\n return null;\n};\n\n/**\n * @public\n */\nexport const SearchPage = () => {\n const outlet = useOutlet();\n\n return (\n <SearchContextProvider>\n <UrlUpdater />\n {outlet}\n </SearchContextProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;AA0BO,MAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,MACE,SAAA,EAAU;AAEd,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,QAAA,CAAS,MAAM,CAAA;AACnD,EAAA,SAAA,CAAU,MAAM;AAEd,IAAA,IAAI,QAAA,CAAS,WAAW,eAAA,EAAiB;AACvC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,KAAA,GACJ,EAAA,CAAG,KAAA,CAAM,QAAA,CAAS,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,EAAG,EAAE,UAAA,EAAY,GAAA,EAAO,KAAK,EAAC;AAEpE,IAAA,IAAI,MAAM,OAAA,EAAS;AACjB,MAAA,UAAA,CAAW,MAAM,OAAqB,CAAA;AAAA,IACxC;AAEA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,OAAA,CAAQ,MAAM,KAAe,CAAA;AAAA,IAC/B;AAEA,IAAA,IAAI,MAAM,UAAA,EAAY;AACpB,MAAA,aAAA,CAAc,MAAM,UAAoB,CAAA;AAAA,IAC1C;AAEA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,QAAA,CAAS,MAAM,KAAiB,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,QAAA,EAAU,SAAS,QAAA,EAAU,aAAA,EAAe,UAAU,CAAC,CAAA;AAE5E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,YAAY,EAAA,CAAG,SAAA;AAAA,MACnB;AAAA,QACE,KAAA,EAAO,IAAA;AAAA,QACP,KAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,EAAE,aAAa,UAAA;AAAW,KAC5B;AACA,IAAA,MAAM,SAAS,CAAA,EAAG,MAAA,CAAO,QAAA,CAAS,QAAQ,IAAI,SAAS,CAAA,CAAA;AAMvD,IAAA,MAAA,CAAO,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,QAAA,CAAS,OAAO,MAAM,CAAA;AAAA,EAC1D,GAAG,CAAC,IAAA,EAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAC,CAAA;AAErC,EAAA,OAAO,IAAA;AACT;AAKO,MAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,4BACG,qBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA;AAAA,IACX;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
114+
\ No newline at end of file

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@
6262
"@backstage/plugin-catalog-react": "1.21.3",
6363
"refractor@npm:3.6.0/prismjs": "^1.30.0",
6464
"@backstage/plugin-auth-node": "0.6.10",
65-
"@backstage/backend-plugin-api": "1.5.0"
65+
"@backstage/backend-plugin-api": "1.5.0",
66+
"@backstage/plugin-catalog-graph@0.5.3": "patch:@backstage/plugin-catalog-graph@npm%3A0.5.3#./.yarn/patches/@backstage-plugin-catalog-graph-npm-0.5.3-761764c7c3.patch",
67+
"@backstage/plugin-search@1.5.0": "patch:@backstage/plugin-search@npm%3A1.5.0#./.yarn/patches/@backstage-plugin-search-npm-1.5.0-111cd7d8ed.patch"
6668
},
6769
"jest": {
6870
"testTimeout": 20000

yarn.lock

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4743,6 +4743,38 @@ __metadata:
47434743
languageName: node
47444744
linkType: hard
47454745

4746+
"@backstage/plugin-catalog-graph@patch:@backstage/plugin-catalog-graph@npm%3A0.5.3#./.yarn/patches/@backstage-plugin-catalog-graph-npm-0.5.3-761764c7c3.patch::locator=root%40workspace%3A.":
4747+
version: 0.5.3
4748+
resolution: "@backstage/plugin-catalog-graph@patch:@backstage/plugin-catalog-graph@npm%3A0.5.3#./.yarn/patches/@backstage-plugin-catalog-graph-npm-0.5.3-761764c7c3.patch::version=0.5.3&hash=b2877f&locator=root%40workspace%3A."
4749+
dependencies:
4750+
"@backstage/catalog-client": ^1.12.1
4751+
"@backstage/catalog-model": ^1.7.6
4752+
"@backstage/core-compat-api": ^0.5.4
4753+
"@backstage/core-components": ^0.18.3
4754+
"@backstage/core-plugin-api": ^1.12.0
4755+
"@backstage/frontend-plugin-api": ^0.13.0
4756+
"@backstage/plugin-catalog-react": ^1.21.3
4757+
"@backstage/types": ^1.2.2
4758+
"@material-ui/core": ^4.12.2
4759+
"@material-ui/icons": ^4.9.1
4760+
"@material-ui/lab": 4.0.0-alpha.61
4761+
classnames: ^2.3.1
4762+
lodash: ^4.17.15
4763+
p-limit: ^3.1.0
4764+
qs: ^6.9.4
4765+
react-use: ^17.2.4
4766+
peerDependencies:
4767+
"@types/react": ^17.0.0 || ^18.0.0
4768+
react: ^17.0.0 || ^18.0.0
4769+
react-dom: ^17.0.0 || ^18.0.0
4770+
react-router-dom: ^6.3.0
4771+
peerDependenciesMeta:
4772+
"@types/react":
4773+
optional: true
4774+
checksum: 171348bd773820c30ebf36ef2d062caa6ee6014d3af6a44805fc2a10510ab05a130c7f69031aaaa746d2a8f91469c0ab3b4d7ca0cc23004de702d726122186af
4775+
languageName: node
4776+
linkType: hard
4777+
47464778
"@backstage/plugin-catalog-import@npm:0.13.7":
47474779
version: 0.13.7
47484780
resolution: "@backstage/plugin-catalog-import@npm:0.13.7"
@@ -5664,6 +5696,36 @@ __metadata:
56645696
languageName: node
56655697
linkType: hard
56665698

5699+
"@backstage/plugin-search@patch:@backstage/plugin-search@npm%3A1.5.0#./.yarn/patches/@backstage-plugin-search-npm-1.5.0-111cd7d8ed.patch::locator=root%40workspace%3A.":
5700+
version: 1.5.0
5701+
resolution: "@backstage/plugin-search@patch:@backstage/plugin-search@npm%3A1.5.0#./.yarn/patches/@backstage-plugin-search-npm-1.5.0-111cd7d8ed.patch::version=1.5.0&hash=0b3561&locator=root%40workspace%3A."
5702+
dependencies:
5703+
"@backstage/core-compat-api": ^0.5.4
5704+
"@backstage/core-components": ^0.18.3
5705+
"@backstage/core-plugin-api": ^1.12.0
5706+
"@backstage/errors": ^1.2.7
5707+
"@backstage/frontend-plugin-api": ^0.13.0
5708+
"@backstage/plugin-catalog-react": ^1.21.3
5709+
"@backstage/plugin-search-common": ^1.2.21
5710+
"@backstage/plugin-search-react": ^1.10.0
5711+
"@backstage/types": ^1.2.2
5712+
"@backstage/version-bridge": ^1.0.11
5713+
"@material-ui/core": ^4.12.2
5714+
"@material-ui/icons": ^4.9.1
5715+
qs: ^6.9.4
5716+
react-use: ^17.2.4
5717+
peerDependencies:
5718+
"@types/react": ^17.0.0 || ^18.0.0
5719+
react: ^17.0.0 || ^18.0.0
5720+
react-dom: ^17.0.0 || ^18.0.0
5721+
react-router-dom: ^6.3.0
5722+
peerDependenciesMeta:
5723+
"@types/react":
5724+
optional: true
5725+
checksum: 13a38f038b47344b5e20057a36d814eea4eca9367a05119f3d2c399fd0da347d51adae6a37893332a906d5d547f9a25888a50918538d9057a6e03211084ef235
5726+
languageName: node
5727+
linkType: hard
5728+
56675729
"@backstage/plugin-signals-node@npm:^0.1.26":
56685730
version: 0.1.26
56695731
resolution: "@backstage/plugin-signals-node@npm:0.1.26"

0 commit comments

Comments
 (0)