@backstage/plugin-home 0.8.6-next.1 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # @backstage/plugin-home
2
2
 
3
+ ## 0.8.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 2d11521: The starred entities component uses the entity title or display name if it exists
8
+ - Updated dependencies
9
+ - @backstage/core-components@0.17.0
10
+ - @backstage/core-plugin-api@1.10.5
11
+ - @backstage/frontend-plugin-api@0.10.0
12
+ - @backstage/core-app-api@1.16.0
13
+ - @backstage/plugin-catalog-react@1.16.0
14
+ - @backstage/core-compat-api@0.4.0
15
+ - @backstage/plugin-home-react@0.1.24
16
+ - @backstage/catalog-client@1.9.1
17
+ - @backstage/catalog-model@1.7.3
18
+ - @backstage/config@1.3.2
19
+ - @backstage/theme@0.6.4
20
+
21
+ ## 0.8.6-next.2
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies
26
+ - @backstage/frontend-plugin-api@0.10.0-next.2
27
+ - @backstage/core-app-api@1.16.0-next.0
28
+ - @backstage/plugin-catalog-react@1.16.0-next.2
29
+ - @backstage/core-compat-api@0.4.0-next.2
30
+ - @backstage/core-components@0.16.5-next.1
31
+ - @backstage/catalog-client@1.9.1
32
+ - @backstage/catalog-model@1.7.3
33
+ - @backstage/config@1.3.2
34
+ - @backstage/core-plugin-api@1.10.4
35
+ - @backstage/theme@0.6.4
36
+ - @backstage/plugin-home-react@0.1.24-next.1
37
+
3
38
  ## 0.8.6-next.1
4
39
 
5
40
  ### Patch Changes
package/dist/alpha.d.ts CHANGED
@@ -34,7 +34,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{}, {}, {
34
34
  params: {
35
35
  defaultPath: string;
36
36
  loader: () => Promise<JSX.Element>;
37
- routeRef?: _backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams> | undefined;
37
+ routeRef?: _backstage_frontend_plugin_api.RouteRef;
38
38
  };
39
39
  }>;
40
40
  }>;
@@ -34,7 +34,14 @@ const Content = ({
34
34
  }
35
35
  return (await catalogApi.getEntitiesByRefs({
36
36
  entityRefs: [...starredEntities],
37
- fields: ["kind", "metadata.namespace", "metadata.name", "spec.type"]
37
+ fields: [
38
+ "kind",
39
+ "metadata.namespace",
40
+ "metadata.name",
41
+ "spec.type",
42
+ "metadata.title",
43
+ "spec.profile.displayName"
44
+ ]
38
45
  })).items.filter((e) => !!e);
39
46
  }, [catalogApi, starredEntities]);
40
47
  if (starredEntities.size === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"Content.esm.js","sources":["../../../src/homePageComponents/StarredEntities/Content.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n catalogApiRef,\n useStarredEntities,\n} from '@backstage/plugin-catalog-react';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { Progress, ResponseErrorPanel } from '@backstage/core-components';\nimport List from '@material-ui/core/List';\nimport Typography from '@material-ui/core/Typography';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport React from 'react';\nimport useAsync from 'react-use/esm/useAsync';\nimport { StarredEntityListItem } from '../../components/StarredEntityListItem/StarredEntityListItem';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n tabs: {\n marginBottom: theme.spacing(1),\n },\n list: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n}));\n\n/**\n * Props for the StarredEntities component\n *\n * @public\n */\nexport type StarredEntitiesProps = {\n noStarredEntitiesMessage?: React.ReactNode | undefined;\n groupByKind?: boolean;\n};\n\n/**\n * A component to display a list of starred entities for the user.\n *\n * @public\n */\nexport const Content = ({\n noStarredEntitiesMessage,\n groupByKind,\n}: StarredEntitiesProps) => {\n const classes = useStyles();\n const catalogApi = useApi(catalogApiRef);\n const { starredEntities, toggleStarredEntity } = useStarredEntities();\n const [activeTab, setActiveTab] = React.useState(0);\n\n // Grab starred entities from catalog to ensure they still exist and also retrieve display titles\n const entities = useAsync(async () => {\n if (!starredEntities.size) {\n return [];\n }\n\n return (\n await catalogApi.getEntitiesByRefs({\n entityRefs: [...starredEntities],\n fields: ['kind', 'metadata.namespace', 'metadata.name', 'spec.type'],\n })\n ).items.filter((e): e is Entity => !!e);\n }, [catalogApi, starredEntities]);\n\n if (starredEntities.size === 0)\n return (\n <Typography variant=\"body1\">\n {noStarredEntitiesMessage ||\n 'Click the star beside an entity name to add it to this list!'}\n </Typography>\n );\n\n if (entities.loading) {\n return <Progress />;\n }\n\n const groupedEntities: { [kind: string]: Entity[] } = {};\n entities.value?.forEach(entity => {\n const kind = entity.kind;\n if (!groupedEntities[kind]) {\n groupedEntities[kind] = [];\n }\n groupedEntities[kind].push(entity);\n });\n\n const groupByKindEntries = Object.entries(groupedEntities);\n\n return entities.error ? (\n <ResponseErrorPanel error={entities.error} />\n ) : (\n <div>\n {!groupByKind && (\n <List className={classes.list}>\n {entities.value\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n showKind\n />\n ))}\n </List>\n )}\n\n {groupByKind && (\n <Tabs\n className={classes.tabs}\n value={activeTab}\n onChange={(_, newValue) => setActiveTab(newValue)}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"entity-tabs\"\n >\n {groupByKindEntries.map(([kind]) => (\n <Tab key={kind} label={kind} />\n ))}\n </Tabs>\n )}\n\n {groupByKind &&\n groupByKindEntries.map(([kind, entitiesByKind], index) => (\n <div key={kind} hidden={groupByKind && activeTab !== index}>\n <List className={classes.list}>\n {entitiesByKind\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n showKind={false}\n />\n ))}\n </List>\n </div>\n ))}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Content.esm.js","sources":["../../../src/homePageComponents/StarredEntities/Content.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n catalogApiRef,\n useStarredEntities,\n} from '@backstage/plugin-catalog-react';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { Progress, ResponseErrorPanel } from '@backstage/core-components';\nimport List from '@material-ui/core/List';\nimport Typography from '@material-ui/core/Typography';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport React from 'react';\nimport useAsync from 'react-use/esm/useAsync';\nimport { StarredEntityListItem } from '../../components/StarredEntityListItem/StarredEntityListItem';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(theme => ({\n tabs: {\n marginBottom: theme.spacing(1),\n },\n list: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n}));\n\n/**\n * Props for the StarredEntities component\n *\n * @public\n */\nexport type StarredEntitiesProps = {\n noStarredEntitiesMessage?: React.ReactNode | undefined;\n groupByKind?: boolean;\n};\n\n/**\n * A component to display a list of starred entities for the user.\n *\n * @public\n */\nexport const Content = ({\n noStarredEntitiesMessage,\n groupByKind,\n}: StarredEntitiesProps) => {\n const classes = useStyles();\n const catalogApi = useApi(catalogApiRef);\n const { starredEntities, toggleStarredEntity } = useStarredEntities();\n const [activeTab, setActiveTab] = React.useState(0);\n\n // Grab starred entities from catalog to ensure they still exist and also retrieve display titles\n const entities = useAsync(async () => {\n if (!starredEntities.size) {\n return [];\n }\n\n return (\n await catalogApi.getEntitiesByRefs({\n entityRefs: [...starredEntities],\n fields: [\n 'kind',\n 'metadata.namespace',\n 'metadata.name',\n 'spec.type',\n 'metadata.title',\n 'spec.profile.displayName',\n ],\n })\n ).items.filter((e): e is Entity => !!e);\n }, [catalogApi, starredEntities]);\n\n if (starredEntities.size === 0)\n return (\n <Typography variant=\"body1\">\n {noStarredEntitiesMessage ||\n 'Click the star beside an entity name to add it to this list!'}\n </Typography>\n );\n\n if (entities.loading) {\n return <Progress />;\n }\n\n const groupedEntities: { [kind: string]: Entity[] } = {};\n entities.value?.forEach(entity => {\n const kind = entity.kind;\n if (!groupedEntities[kind]) {\n groupedEntities[kind] = [];\n }\n groupedEntities[kind].push(entity);\n });\n\n const groupByKindEntries = Object.entries(groupedEntities);\n\n return entities.error ? (\n <ResponseErrorPanel error={entities.error} />\n ) : (\n <div>\n {!groupByKind && (\n <List className={classes.list}>\n {entities.value\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n showKind\n />\n ))}\n </List>\n )}\n\n {groupByKind && (\n <Tabs\n className={classes.tabs}\n value={activeTab}\n onChange={(_, newValue) => setActiveTab(newValue)}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"entity-tabs\"\n >\n {groupByKindEntries.map(([kind]) => (\n <Tab key={kind} label={kind} />\n ))}\n </Tabs>\n )}\n\n {groupByKind &&\n groupByKindEntries.map(([kind, entitiesByKind], index) => (\n <div key={kind} hidden={groupByKind && activeTab !== index}>\n <List className={classes.list}>\n {entitiesByKind\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n showKind={false}\n />\n ))}\n </List>\n </div>\n ))}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  import * as _backstage_plugin_home_react from '@backstage/plugin-home-react';
3
2
  import { createCardExtension as createCardExtension$1, CardExtensionProps as CardExtensionProps$1, CardLayout as CardLayout$1, CardSettings as CardSettings$1, CardConfig as CardConfig$1, ComponentParts as ComponentParts$1, ComponentRenderer as ComponentRenderer$1, RendererProps as RendererProps$1 } from '@backstage/plugin-home-react';
4
- import * as React from 'react';
3
+ import * as React$1 from 'react';
5
4
  import React__default, { ReactNode, ReactElement } from 'react';
6
5
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
7
6
  import { StorageApi, IdentityApi, ErrorApi } from '@backstage/core-plugin-api';
@@ -255,18 +254,20 @@ declare const homePlugin: _backstage_core_plugin_api.BackstagePlugin<{
255
254
  }, {}>;
256
255
  /** @public */
257
256
  declare const HomepageCompositionRoot: (props: {
258
- title?: string | undefined;
259
- children?: React.ReactNode;
260
- }) => React.JSX.Element;
257
+ title?: string;
258
+ children?: React$1.ReactNode;
259
+ }) => React$1.JSX.Element;
261
260
  /** @public */
262
261
  declare const ComponentAccordion: (props: {
263
- title?: string | undefined;
264
- expanded?: boolean | undefined;
262
+ title?: string;
263
+ expanded?: boolean;
265
264
  Content: () => JSX.Element;
266
- Actions?: (() => JSX.Element) | undefined;
267
- Settings?: (() => JSX.Element) | undefined;
268
- ContextProvider?: ((props: any) => JSX.Element) | undefined;
269
- }) => React.JSX.Element;
265
+ Actions?: () => JSX.Element;
266
+ Settings?: () => JSX.
267
+ /** @public */
268
+ Element;
269
+ ContextProvider?: (props: any) => JSX.Element;
270
+ }) => React$1.JSX.Element;
270
271
  /** @public */
271
272
  declare const ComponentTabs: (props: {
272
273
  title: string;
@@ -274,19 +275,19 @@ declare const ComponentTabs: (props: {
274
275
  label: string;
275
276
  Component: () => JSX.Element;
276
277
  }[];
277
- }) => React.JSX.Element;
278
+ }) => React$1.JSX.Element;
278
279
  /** @public */
279
280
  declare const ComponentTab: (props: {
280
281
  title: string;
281
282
  Content: () => JSX.Element;
282
- ContextProvider?: ((props: any) => JSX.Element) | undefined;
283
- }) => React.JSX.Element;
283
+ ContextProvider?: (props: any) => JSX.Element;
284
+ }) => React$1.JSX.Element;
284
285
  /**
285
286
  * A component to display a playful greeting for the user.
286
287
  *
287
288
  * @public
288
289
  */
289
- declare const WelcomeTitle: ({ language }: WelcomeTitleLanguageProps) => React.JSX.Element;
290
+ declare const WelcomeTitle: ({ language }: WelcomeTitleLanguageProps) => React$1.JSX.Element;
290
291
  /**
291
292
  * A component to display a company logo for the user.
292
293
  *
@@ -294,24 +295,24 @@ declare const WelcomeTitle: ({ language }: WelcomeTitleLanguageProps) => React.J
294
295
  */
295
296
  declare const HomePageCompanyLogo: (props: {
296
297
  logo?: React.ReactNode;
297
- className?: string | undefined;
298
- }) => React.JSX.Element;
298
+ className?: string;
299
+ }) => React$1.JSX.Element;
299
300
  /** @public */
300
301
  declare const HomePageRandomJoke: (props: _backstage_plugin_home_react.CardExtensionProps<{
301
- defaultCategory?: "any" | "programming" | undefined;
302
- }>) => React.JSX.Element;
302
+ defaultCategory?: "any" | "programming";
303
+ }>) => React$1.JSX.Element;
303
304
  /**
304
305
  * A component to display a list of tools for the user.
305
306
  *
306
307
  * @public
307
308
  */
308
- declare const HomePageToolkit: (props: _backstage_plugin_home_react.CardExtensionProps<ToolkitContentProps>) => React.JSX.Element;
309
+ declare const HomePageToolkit: (props: _backstage_plugin_home_react.CardExtensionProps<ToolkitContentProps>) => React$1.JSX.Element;
309
310
  /**
310
311
  * A component to display a list of starred entities for the user.
311
312
  *
312
313
  * @public
313
314
  */
314
- declare const HomePageStarredEntities: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<StarredEntitiesProps>>) => React.JSX.Element;
315
+ declare const HomePageStarredEntities: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<StarredEntitiesProps>>) => React$1.JSX.Element;
315
316
  /**
316
317
  * A component to display a configurable list of clocks for various time zones.
317
318
  *
@@ -319,30 +320,30 @@ declare const HomePageStarredEntities: (props: _backstage_plugin_home_react.Card
319
320
  */
320
321
  declare const HeaderWorldClock: (props: {
321
322
  clockConfigs: ClockConfig[];
322
- customTimeFormat?: Intl.DateTimeFormatOptions | undefined;
323
- }) => React.JSX.Element | null;
323
+ customTimeFormat?: Intl.DateTimeFormatOptions;
324
+ }) => React$1.JSX.Element | null;
324
325
  /**
325
326
  * Display top visited pages for the homepage
326
327
  * @public
327
328
  */
328
- declare const HomePageTopVisited: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<VisitedByTypeProps>>) => React.JSX.Element;
329
+ declare const HomePageTopVisited: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<VisitedByTypeProps>>) => React$1.JSX.Element;
329
330
  /**
330
331
  * Display recently visited pages for the homepage
331
332
  * @public
332
333
  */
333
- declare const HomePageRecentlyVisited: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<VisitedByTypeProps>>) => React.JSX.Element;
334
+ declare const HomePageRecentlyVisited: (props: _backstage_plugin_home_react.CardExtensionProps<Partial<VisitedByTypeProps>>) => React$1.JSX.Element;
334
335
  /**
335
336
  * A component to display specific Featured Docs.
336
337
  *
337
338
  * @public
338
339
  */
339
- declare const FeaturedDocsCard: (props: _backstage_plugin_home_react.CardExtensionProps<FeaturedDocsCardProps>) => React.JSX.Element;
340
+ declare const FeaturedDocsCard: (props: _backstage_plugin_home_react.CardExtensionProps<FeaturedDocsCardProps>) => React$1.JSX.Element;
340
341
  /**
341
342
  * A component to display Quick Start information.
342
343
  *
343
344
  * @public
344
345
  */
345
- declare const QuickStartCard: (props: _backstage_plugin_home_react.CardExtensionProps<QuickStartCardProps>) => React.JSX.Element;
346
+ declare const QuickStartCard: (props: _backstage_plugin_home_react.CardExtensionProps<QuickStartCardProps>) => React$1.JSX.Element;
346
347
 
347
348
  /**
348
349
  * Breakpoint options for <CustomHomepageGridProps/>
@@ -448,12 +449,12 @@ declare const CustomHomepageGrid: (props: CustomHomepageGridProps) => React__def
448
449
  */
449
450
  declare const VisitListener: ({ children, toEntityRef, visitName, }: {
450
451
  children?: React__default.ReactNode;
451
- toEntityRef?: (({ pathname }: {
452
+ toEntityRef?: ({ pathname }: {
452
453
  pathname: string;
453
- }) => string | undefined) | undefined;
454
- visitName?: (({ pathname }: {
454
+ }) => string | undefined;
455
+ visitName?: ({ pathname }: {
455
456
  pathname: string;
456
- }) => string) | undefined;
457
+ }) => string;
457
458
  }) => JSX.Element;
458
459
 
459
460
  /** @public */
@@ -514,8 +515,8 @@ type RendererProps = RendererProps$1;
514
515
  declare const SettingsModal: (props: {
515
516
  open: boolean;
516
517
  close: Function;
517
- componentName?: string | undefined;
518
+ componentName?: string;
518
519
  children: JSX.Element;
519
- }) => React.JSX.Element;
520
+ }) => React$1.JSX.Element;
520
521
 
521
522
  export { type Breakpoint, type CardConfig, type CardExtensionProps, type CardLayout, type CardSettings, type ClockConfig, ComponentAccordion, type ComponentParts, type ComponentRenderer, ComponentTab, ComponentTabs, CustomHomepageGrid, type CustomHomepageGridProps, FeaturedDocsCard, type FeaturedDocsCardProps, HeaderWorldClock, HomePageCompanyLogo, HomePageRandomJoke, HomePageRecentlyVisited, HomePageStarredEntities, HomePageToolkit, HomePageTopVisited, HomepageCompositionRoot, type LayoutConfiguration, type Operators, QuickStartCard, type QuickStartCardProps, type RendererProps, SettingsModal, type StarredEntitiesProps, TemplateBackstageLogo, TemplateBackstageLogoIcon, type Tool, type ToolkitContentProps, type Visit, VisitListener, type VisitedByTypeKind, type VisitedByTypeProps, type VisitsApi, type VisitsApiQueryParams, type VisitsApiSaveParams, VisitsStorageApi, type VisitsStorageApiOptions, VisitsWebStorageApi, type VisitsWebStorageApiOptions, WelcomeTitle, type WelcomeTitleLanguageProps, createCardExtension, homePlugin, isOperator, visitsApiRef };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-home",
3
- "version": "0.8.6-next.1",
3
+ "version": "0.8.6",
4
4
  "description": "A Backstage plugin that helps you build a home page",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -46,7 +46,7 @@
46
46
  "types": "./dist/index.d.ts",
47
47
  "typesVersions": {
48
48
  "*": {
49
- "index": [
49
+ "*": [
50
50
  "dist/index.d.ts"
51
51
  ],
52
52
  "alpha": [
@@ -68,17 +68,17 @@
68
68
  "test": "backstage-cli package test"
69
69
  },
70
70
  "dependencies": {
71
- "@backstage/catalog-client": "1.9.1",
72
- "@backstage/catalog-model": "1.7.3",
73
- "@backstage/config": "1.3.2",
74
- "@backstage/core-app-api": "1.15.5",
75
- "@backstage/core-compat-api": "0.3.7-next.1",
76
- "@backstage/core-components": "0.16.5-next.0",
77
- "@backstage/core-plugin-api": "1.10.4",
78
- "@backstage/frontend-plugin-api": "0.9.6-next.1",
79
- "@backstage/plugin-catalog-react": "1.16.0-next.1",
80
- "@backstage/plugin-home-react": "0.1.24-next.0",
81
- "@backstage/theme": "0.6.4",
71
+ "@backstage/catalog-client": "^1.9.1",
72
+ "@backstage/catalog-model": "^1.7.3",
73
+ "@backstage/config": "^1.3.2",
74
+ "@backstage/core-app-api": "^1.16.0",
75
+ "@backstage/core-compat-api": "^0.4.0",
76
+ "@backstage/core-components": "^0.17.0",
77
+ "@backstage/core-plugin-api": "^1.10.5",
78
+ "@backstage/frontend-plugin-api": "^0.10.0",
79
+ "@backstage/plugin-catalog-react": "^1.16.0",
80
+ "@backstage/plugin-home-react": "^0.1.24",
81
+ "@backstage/theme": "^0.6.4",
82
82
  "@material-ui/core": "^4.12.2",
83
83
  "@material-ui/icons": "^4.9.1",
84
84
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -94,9 +94,9 @@
94
94
  "zod": "^3.22.4"
95
95
  },
96
96
  "devDependencies": {
97
- "@backstage/cli": "0.30.1-next.0",
98
- "@backstage/dev-utils": "1.1.8-next.1",
99
- "@backstage/test-utils": "1.7.5",
97
+ "@backstage/cli": "^0.31.0",
98
+ "@backstage/dev-utils": "^1.1.8",
99
+ "@backstage/test-utils": "^1.7.6",
100
100
  "@testing-library/dom": "^10.0.0",
101
101
  "@testing-library/jest-dom": "^6.0.0",
102
102
  "@testing-library/react": "^16.0.0",