@backstage/plugin-catalog 1.31.2-next.1 → 1.31.2-next.2

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,30 @@
1
1
  # @backstage/plugin-catalog
2
2
 
3
+ ## 1.31.2-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - e4ddf22: Internal update to align with new blueprint parameter naming in the new frontend system.
8
+ - Updated dependencies
9
+ - @backstage/frontend-plugin-api@0.11.0-next.1
10
+ - @backstage/core-compat-api@0.5.0-next.2
11
+ - @backstage/plugin-search-react@1.9.3-next.1
12
+ - @backstage/plugin-catalog-react@1.20.0-next.2
13
+ - @backstage/core-components@0.17.5-next.1
14
+ - @backstage/catalog-client@1.11.0-next.0
15
+ - @backstage/catalog-model@1.7.5
16
+ - @backstage/core-plugin-api@1.10.9
17
+ - @backstage/errors@1.2.7
18
+ - @backstage/integration-react@1.2.9
19
+ - @backstage/types@1.2.1
20
+ - @backstage/version-bridge@1.0.11
21
+ - @backstage/plugin-catalog-common@1.1.5
22
+ - @backstage/plugin-permission-react@0.4.36
23
+ - @backstage/plugin-scaffolder-common@1.7.0-next.0
24
+ - @backstage/plugin-search-common@1.2.19
25
+ - @backstage/plugin-techdocs-common@0.1.1
26
+ - @backstage/plugin-techdocs-react@1.3.2-next.0
27
+
3
28
  ## 1.31.2-next.1
4
29
 
5
30
  ### Patch Changes
@@ -6,7 +6,7 @@ import { DefaultEntityPresentationApi } from '../apis/EntityPresentationApi/Defa
6
6
  import { DefaultStarredEntitiesApi } from '../apis/StarredEntitiesApi/DefaultStarredEntitiesApi.esm.js';
7
7
 
8
8
  const catalogApi = ApiBlueprint.make({
9
- params: (define) => define({
9
+ params: (defineParams) => defineParams({
10
10
  api: catalogApiRef,
11
11
  deps: {
12
12
  discoveryApi: discoveryApiRef,
@@ -17,7 +17,7 @@ const catalogApi = ApiBlueprint.make({
17
17
  });
18
18
  const catalogStarredEntitiesApi = ApiBlueprint.make({
19
19
  name: "starred-entities",
20
- params: (define) => define({
20
+ params: (defineParams) => defineParams({
21
21
  api: starredEntitiesApiRef,
22
22
  deps: { storageApi: storageApiRef },
23
23
  factory: ({ storageApi }) => new DefaultStarredEntitiesApi({ storageApi })
@@ -25,7 +25,7 @@ const catalogStarredEntitiesApi = ApiBlueprint.make({
25
25
  });
26
26
  const entityPresentationApi = ApiBlueprint.make({
27
27
  name: "entity-presentation",
28
- params: (define) => define({
28
+ params: (defineParams) => defineParams({
29
29
  api: entityPresentationApiRef,
30
30
  deps: { catalogApiImp: catalogApiRef },
31
31
  factory: ({ catalogApiImp }) => DefaultEntityPresentationApi.create({ catalogApi: catalogApiImp })
@@ -1 +1 @@
1
- {"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 discoveryApiRef,\n fetchApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport { CatalogClient } from '@backstage/catalog-client';\nimport { ApiBlueprint } from '@backstage/frontend-plugin-api';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n starredEntitiesApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n DefaultEntityPresentationApi,\n DefaultStarredEntitiesApi,\n} from '../apis';\n\nexport const catalogApi = ApiBlueprint.make({\n params: define =>\n define({\n api: catalogApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CatalogClient({ discoveryApi, fetchApi }),\n }),\n});\n\nexport const catalogStarredEntitiesApi = ApiBlueprint.make({\n name: 'starred-entities',\n params: define =>\n define({\n api: starredEntitiesApiRef,\n deps: { storageApi: storageApiRef },\n factory: ({ storageApi }) =>\n new DefaultStarredEntitiesApi({ storageApi }),\n }),\n});\n\nexport const entityPresentationApi = ApiBlueprint.make({\n name: 'entity-presentation',\n params: define =>\n define({\n api: entityPresentationApiRef,\n deps: { catalogApiImp: catalogApiRef },\n factory: ({ catalogApiImp }) =>\n DefaultEntityPresentationApi.create({ catalogApi: catalogApiImp }),\n }),\n});\n\nexport default [catalogApi, catalogStarredEntitiesApi, entityPresentationApi];\n"],"names":[],"mappings":";;;;;;;AAiCa,MAAA,UAAA,GAAa,aAAa,IAAK,CAAA;AAAA,EAC1C,MAAA,EAAQ,YACN,MAAO,CAAA;AAAA,IACL,GAAK,EAAA,aAAA;AAAA,IACL,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,eAAA;AAAA,MACd,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,OAAA,EAAS,CAAC,EAAE,YAAc,EAAA,QAAA,EACxB,KAAA,IAAI,aAAc,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,yBAAA,GAA4B,aAAa,IAAK,CAAA;AAAA,EACzD,IAAM,EAAA,kBAAA;AAAA,EACN,MAAA,EAAQ,YACN,MAAO,CAAA;AAAA,IACL,GAAK,EAAA,qBAAA;AAAA,IACL,IAAA,EAAM,EAAE,UAAA,EAAY,aAAc,EAAA;AAAA,IAClC,OAAA,EAAS,CAAC,EAAE,UAAA,OACV,IAAI,yBAAA,CAA0B,EAAE,UAAA,EAAY;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,qBAAA,GAAwB,aAAa,IAAK,CAAA;AAAA,EACrD,IAAM,EAAA,qBAAA;AAAA,EACN,MAAA,EAAQ,YACN,MAAO,CAAA;AAAA,IACL,GAAK,EAAA,wBAAA;AAAA,IACL,IAAA,EAAM,EAAE,aAAA,EAAe,aAAc,EAAA;AAAA,IACrC,OAAA,EAAS,CAAC,EAAE,aAAc,EAAA,KACxB,6BAA6B,MAAO,CAAA,EAAE,UAAY,EAAA,aAAA,EAAe;AAAA,GACpE;AACL,CAAC;AAED,WAAe,CAAC,UAAY,EAAA,yBAAA,EAA2B,qBAAqB,CAAA;;;;"}
1
+ {"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 discoveryApiRef,\n fetchApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport { CatalogClient } from '@backstage/catalog-client';\nimport { ApiBlueprint } from '@backstage/frontend-plugin-api';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n starredEntitiesApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n DefaultEntityPresentationApi,\n DefaultStarredEntitiesApi,\n} from '../apis';\n\nexport const catalogApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: catalogApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CatalogClient({ discoveryApi, fetchApi }),\n }),\n});\n\nexport const catalogStarredEntitiesApi = ApiBlueprint.make({\n name: 'starred-entities',\n params: defineParams =>\n defineParams({\n api: starredEntitiesApiRef,\n deps: { storageApi: storageApiRef },\n factory: ({ storageApi }) =>\n new DefaultStarredEntitiesApi({ storageApi }),\n }),\n});\n\nexport const entityPresentationApi = ApiBlueprint.make({\n name: 'entity-presentation',\n params: defineParams =>\n defineParams({\n api: entityPresentationApiRef,\n deps: { catalogApiImp: catalogApiRef },\n factory: ({ catalogApiImp }) =>\n DefaultEntityPresentationApi.create({ catalogApi: catalogApiImp }),\n }),\n});\n\nexport default [catalogApi, catalogStarredEntitiesApi, entityPresentationApi];\n"],"names":[],"mappings":";;;;;;;AAiCa,MAAA,UAAA,GAAa,aAAa,IAAK,CAAA;AAAA,EAC1C,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,aAAA;AAAA,IACL,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,eAAA;AAAA,MACd,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,OAAA,EAAS,CAAC,EAAE,YAAc,EAAA,QAAA,EACxB,KAAA,IAAI,aAAc,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,yBAAA,GAA4B,aAAa,IAAK,CAAA;AAAA,EACzD,IAAM,EAAA,kBAAA;AAAA,EACN,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,qBAAA;AAAA,IACL,IAAA,EAAM,EAAE,UAAA,EAAY,aAAc,EAAA;AAAA,IAClC,OAAA,EAAS,CAAC,EAAE,UAAA,OACV,IAAI,yBAAA,CAA0B,EAAE,UAAA,EAAY;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,qBAAA,GAAwB,aAAa,IAAK,CAAA;AAAA,EACrD,IAAM,EAAA,qBAAA;AAAA,EACN,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,wBAAA;AAAA,IACL,IAAA,EAAM,EAAE,aAAA,EAAe,aAAc,EAAA;AAAA,IACrC,OAAA,EAAS,CAAC,EAAE,aAAc,EAAA,KACxB,6BAA6B,MAAO,CAAA,EAAE,UAAY,EAAA,aAAA,EAAe;AAAA,GACpE;AACL,CAAC;AAED,WAAe,CAAC,UAAY,EAAA,yBAAA,EAA2B,qBAAqB,CAAA;;;;"}
@@ -22,9 +22,9 @@ const catalogOverviewEntityContent = EntityContentBlueprint.makeWithOverrides({
22
22
  },
23
23
  factory: (originalFactory, { node, inputs }) => {
24
24
  return originalFactory({
25
- defaultPath: "/",
26
- defaultTitle: "Overview",
27
- defaultGroup: "overview",
25
+ path: "/",
26
+ title: "Overview",
27
+ group: "overview",
28
28
  loader: async () => {
29
29
  const LazyDefaultLayoutComponent = lazy(
30
30
  () => import('./DefaultEntityContentLayout.esm.js').then((m) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"entityContents.esm.js","sources":["../../src/alpha/entityContents.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { lazy as reactLazy } from 'react';\nimport {\n coreExtensionData,\n createExtensionInput,\n ExtensionBoundary,\n} from '@backstage/frontend-plugin-api';\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n EntityContentLayoutBlueprint,\n EntityContentLayoutProps,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { buildFilterFn } from './filter/FilterWrapper';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nexport const catalogOverviewEntityContent =\n EntityContentBlueprint.makeWithOverrides({\n name: 'overview',\n inputs: {\n layouts: createExtensionInput([\n EntityContentLayoutBlueprint.dataRefs.filterFunction.optional(),\n EntityContentLayoutBlueprint.dataRefs.filterExpression.optional(),\n EntityContentLayoutBlueprint.dataRefs.component,\n ]),\n cards: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityCardBlueprint.dataRefs.type.optional(),\n ]),\n },\n factory: (originalFactory, { node, inputs }) => {\n return originalFactory({\n defaultPath: '/',\n defaultTitle: 'Overview',\n defaultGroup: 'overview',\n loader: async () => {\n const LazyDefaultLayoutComponent = reactLazy(() =>\n import('./DefaultEntityContentLayout').then(m => ({\n default: m.DefaultEntityContentLayout,\n })),\n );\n\n const DefaultLayoutComponent = (props: EntityContentLayoutProps) => {\n return (\n <ExtensionBoundary node={node}>\n <LazyDefaultLayoutComponent {...props} />\n </ExtensionBoundary>\n );\n };\n\n const layouts = [\n ...inputs.layouts.map(layout => ({\n filter: buildFilterFn(\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterFunction,\n ),\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterExpression,\n ),\n ),\n Component: layout.get(\n EntityContentLayoutBlueprint.dataRefs.component,\n ),\n })),\n {\n filter: buildFilterFn(),\n Component: DefaultLayoutComponent,\n },\n ];\n\n const cards = inputs.cards.map(card => ({\n element: card.get(coreExtensionData.reactElement),\n type: card.get(EntityCardBlueprint.dataRefs.type),\n filter: buildFilterFn(\n card.get(EntityContentBlueprint.dataRefs.filterFunction),\n card.get(EntityContentBlueprint.dataRefs.filterExpression),\n ),\n }));\n\n const Component = () => {\n const { entity } = useEntity();\n\n // Use the first layout that matches the entity filter\n const layout = layouts.find(l => l.filter(entity));\n if (!layout) {\n throw new Error('No layout found for entity'); // Shouldn't be able to happen\n }\n\n return (\n <layout.Component\n cards={cards.filter(card => card.filter(entity))}\n />\n );\n };\n\n return <Component />;\n },\n });\n },\n });\n\nexport default [catalogOverviewEntityContent];\n"],"names":["reactLazy"],"mappings":"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"}
1
+ {"version":3,"file":"entityContents.esm.js","sources":["../../src/alpha/entityContents.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { lazy as reactLazy } from 'react';\nimport {\n coreExtensionData,\n createExtensionInput,\n ExtensionBoundary,\n} from '@backstage/frontend-plugin-api';\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n EntityContentLayoutBlueprint,\n EntityContentLayoutProps,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { buildFilterFn } from './filter/FilterWrapper';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nexport const catalogOverviewEntityContent =\n EntityContentBlueprint.makeWithOverrides({\n name: 'overview',\n inputs: {\n layouts: createExtensionInput([\n EntityContentLayoutBlueprint.dataRefs.filterFunction.optional(),\n EntityContentLayoutBlueprint.dataRefs.filterExpression.optional(),\n EntityContentLayoutBlueprint.dataRefs.component,\n ]),\n cards: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityCardBlueprint.dataRefs.type.optional(),\n ]),\n },\n factory: (originalFactory, { node, inputs }) => {\n return originalFactory({\n path: '/',\n title: 'Overview',\n group: 'overview',\n loader: async () => {\n const LazyDefaultLayoutComponent = reactLazy(() =>\n import('./DefaultEntityContentLayout').then(m => ({\n default: m.DefaultEntityContentLayout,\n })),\n );\n\n const DefaultLayoutComponent = (props: EntityContentLayoutProps) => {\n return (\n <ExtensionBoundary node={node}>\n <LazyDefaultLayoutComponent {...props} />\n </ExtensionBoundary>\n );\n };\n\n const layouts = [\n ...inputs.layouts.map(layout => ({\n filter: buildFilterFn(\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterFunction,\n ),\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterExpression,\n ),\n ),\n Component: layout.get(\n EntityContentLayoutBlueprint.dataRefs.component,\n ),\n })),\n {\n filter: buildFilterFn(),\n Component: DefaultLayoutComponent,\n },\n ];\n\n const cards = inputs.cards.map(card => ({\n element: card.get(coreExtensionData.reactElement),\n type: card.get(EntityCardBlueprint.dataRefs.type),\n filter: buildFilterFn(\n card.get(EntityContentBlueprint.dataRefs.filterFunction),\n card.get(EntityContentBlueprint.dataRefs.filterExpression),\n ),\n }));\n\n const Component = () => {\n const { entity } = useEntity();\n\n // Use the first layout that matches the entity filter\n const layout = layouts.find(l => l.filter(entity));\n if (!layout) {\n throw new Error('No layout found for entity'); // Shouldn't be able to happen\n }\n\n return (\n <layout.Component\n cards={cards.filter(card => card.filter(entity))}\n />\n );\n };\n\n return <Component />;\n },\n });\n },\n });\n\nexport default [catalogOverviewEntityContent];\n"],"names":["reactLazy"],"mappings":"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"}
@@ -25,7 +25,7 @@ const catalogPage = PageBlueprint.makeWithOverrides({
25
25
  },
26
26
  factory(originalFactory, { inputs, config }) {
27
27
  return originalFactory({
28
- defaultPath: "/catalog",
28
+ path: "/catalog",
29
29
  routeRef: convertLegacyRouteRef(rootRouteRef),
30
30
  loader: async () => {
31
31
  const { BaseCatalogPage } = await import('../components/CatalogPage/index.esm.js');
@@ -73,7 +73,7 @@ const catalogEntityPage = PageBlueprint.makeWithOverrides({
73
73
  },
74
74
  factory(originalFactory, { config, inputs }) {
75
75
  return originalFactory({
76
- defaultPath: "/catalog/:namespace/:kind/:name",
76
+ path: "/catalog/:namespace/:kind/:name",
77
77
  routeRef: convertLegacyRouteRef(entityRouteRef),
78
78
  loader: async () => {
79
79
  const { EntityLayout } = await import('./components/EntityLayout/index.esm.js');
@@ -1 +1 @@
1
- {"version":3,"file":"pages.esm.js","sources":["../../src/alpha/pages.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n coreExtensionData,\n createExtensionInput,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n AsyncEntityProvider,\n entityRouteRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityHeaderBlueprint,\n EntityContentBlueprint,\n defaultEntityContentGroups,\n EntityContextMenuItemBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\nimport { useEntityFromUrl } from '../components/CatalogEntityPage/useEntityFromUrl';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogPage = PageBlueprint.makeWithOverrides({\n inputs: {\n filters: createExtensionInput([coreExtensionData.reactElement]),\n },\n config: {\n schema: {\n pagination: z =>\n z\n .union([\n z.boolean(),\n z.object({\n mode: z.enum(['cursor', 'offset']),\n limit: z.number().optional(),\n offset: z.number().optional(),\n }),\n ])\n .default(true),\n },\n },\n factory(originalFactory, { inputs, config }) {\n return originalFactory({\n defaultPath: '/catalog',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: async () => {\n const { BaseCatalogPage } = await import('../components/CatalogPage');\n const filters = inputs.filters.map(filter =>\n filter.get(coreExtensionData.reactElement),\n );\n return compatWrapper(\n <BaseCatalogPage\n filters={<>{filters}</>}\n pagination={config.pagination}\n />,\n );\n },\n });\n },\n});\n\nexport const catalogEntityPage = PageBlueprint.makeWithOverrides({\n name: 'entity',\n inputs: {\n headers: createExtensionInput([\n EntityHeaderBlueprint.dataRefs.element.optional(),\n EntityHeaderBlueprint.dataRefs.filterFunction.optional(),\n ]),\n contents: createExtensionInput([\n coreExtensionData.reactElement,\n coreExtensionData.routePath,\n coreExtensionData.routeRef.optional(),\n EntityContentBlueprint.dataRefs.title,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityContentBlueprint.dataRefs.group.optional(),\n ]),\n contextMenuItems: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContextMenuItemBlueprint.dataRefs.filterFunction.optional(),\n ]),\n },\n config: {\n schema: {\n groups: z =>\n z\n .array(z.record(z.string(), z.object({ title: z.string() })))\n .optional(),\n },\n },\n factory(originalFactory, { config, inputs }) {\n return originalFactory({\n defaultPath: '/catalog/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(entityRouteRef),\n loader: async () => {\n const { EntityLayout } = await import('./components/EntityLayout');\n\n const menuItems = inputs.contextMenuItems.map(item => ({\n element: item.get(coreExtensionData.reactElement),\n filter:\n item.get(EntityContextMenuItemBlueprint.dataRefs.filterFunction) ??\n (() => true),\n }));\n\n type Groups = Record<\n string,\n { title: string; items: Array<(typeof inputs.contents)[0]> }\n >;\n\n // Get available headers, sorted by if they have a filter function or not.\n // TODO(blam): we should really have priority or some specificity here which can be used to sort the headers.\n // That can be done with embedding the priority in the dataRef alongside the filter function.\n const headers = inputs.headers\n .map(header => ({\n element: header.get(EntityHeaderBlueprint.dataRefs.element),\n filter: header.get(EntityHeaderBlueprint.dataRefs.filterFunction),\n }))\n .sort((a, b) => {\n if (a.filter && !b.filter) return -1;\n if (!a.filter && b.filter) return 1;\n return 0;\n });\n\n let groups = Object.entries(defaultEntityContentGroups).reduce<Groups>(\n (rest, group) => {\n const [groupId, groupValue] = group;\n return {\n ...rest,\n [groupId]: { title: groupValue, items: [] },\n };\n },\n {},\n );\n\n // config groups override default groups\n if (config.groups) {\n groups = config.groups.reduce<Groups>((rest, group) => {\n const [groupId, groupValue] = Object.entries(group)[0];\n return {\n ...rest,\n [groupId]: { title: groupValue.title, items: [] },\n };\n }, {});\n }\n\n for (const output of inputs.contents) {\n const itemId = output.node.spec.id;\n const itemTitle = output.get(EntityContentBlueprint.dataRefs.title);\n const itemGroup = output.get(EntityContentBlueprint.dataRefs.group);\n const group = itemGroup && groups[itemGroup];\n if (!group) {\n groups[itemId] = { title: itemTitle, items: [output] };\n continue;\n }\n group.items.push(output);\n }\n\n const Component = () => {\n const entityFromUrl = useEntityFromUrl();\n const { entity } = entityFromUrl;\n const filteredMenuItems = entity\n ? menuItems.filter(i => i.filter(entity)).map(i => i.element)\n : [];\n\n const header = headers.find(\n h => !h.filter || h.filter(entity!),\n )?.element;\n\n return (\n <AsyncEntityProvider {...entityFromUrl}>\n <EntityLayout\n header={header}\n contextMenuItems={filteredMenuItems}\n >\n {Object.values(groups).flatMap(({ title, items }) =>\n items.map(output => (\n <EntityLayout.Route\n group={title}\n key={output.get(coreExtensionData.routePath)}\n path={output.get(coreExtensionData.routePath)}\n title={output.get(EntityContentBlueprint.dataRefs.title)}\n if={buildFilterFn(\n output.get(\n EntityContentBlueprint.dataRefs.filterFunction,\n ),\n output.get(\n EntityContentBlueprint.dataRefs.filterExpression,\n ),\n )}\n >\n {output.get(coreExtensionData.reactElement)}\n </EntityLayout.Route>\n )),\n )}\n </EntityLayout>\n </AsyncEntityProvider>\n );\n };\n\n return compatWrapper(<Component />);\n },\n });\n },\n});\n\nexport default [catalogPage, catalogEntityPage];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.esm.js","sources":["../../src/alpha/pages.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n coreExtensionData,\n createExtensionInput,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n AsyncEntityProvider,\n entityRouteRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityHeaderBlueprint,\n EntityContentBlueprint,\n defaultEntityContentGroups,\n EntityContextMenuItemBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\nimport { useEntityFromUrl } from '../components/CatalogEntityPage/useEntityFromUrl';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogPage = PageBlueprint.makeWithOverrides({\n inputs: {\n filters: createExtensionInput([coreExtensionData.reactElement]),\n },\n config: {\n schema: {\n pagination: z =>\n z\n .union([\n z.boolean(),\n z.object({\n mode: z.enum(['cursor', 'offset']),\n limit: z.number().optional(),\n offset: z.number().optional(),\n }),\n ])\n .default(true),\n },\n },\n factory(originalFactory, { inputs, config }) {\n return originalFactory({\n path: '/catalog',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: async () => {\n const { BaseCatalogPage } = await import('../components/CatalogPage');\n const filters = inputs.filters.map(filter =>\n filter.get(coreExtensionData.reactElement),\n );\n return compatWrapper(\n <BaseCatalogPage\n filters={<>{filters}</>}\n pagination={config.pagination}\n />,\n );\n },\n });\n },\n});\n\nexport const catalogEntityPage = PageBlueprint.makeWithOverrides({\n name: 'entity',\n inputs: {\n headers: createExtensionInput([\n EntityHeaderBlueprint.dataRefs.element.optional(),\n EntityHeaderBlueprint.dataRefs.filterFunction.optional(),\n ]),\n contents: createExtensionInput([\n coreExtensionData.reactElement,\n coreExtensionData.routePath,\n coreExtensionData.routeRef.optional(),\n EntityContentBlueprint.dataRefs.title,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityContentBlueprint.dataRefs.group.optional(),\n ]),\n contextMenuItems: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContextMenuItemBlueprint.dataRefs.filterFunction.optional(),\n ]),\n },\n config: {\n schema: {\n groups: z =>\n z\n .array(z.record(z.string(), z.object({ title: z.string() })))\n .optional(),\n },\n },\n factory(originalFactory, { config, inputs }) {\n return originalFactory({\n path: '/catalog/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(entityRouteRef),\n loader: async () => {\n const { EntityLayout } = await import('./components/EntityLayout');\n\n const menuItems = inputs.contextMenuItems.map(item => ({\n element: item.get(coreExtensionData.reactElement),\n filter:\n item.get(EntityContextMenuItemBlueprint.dataRefs.filterFunction) ??\n (() => true),\n }));\n\n type Groups = Record<\n string,\n { title: string; items: Array<(typeof inputs.contents)[0]> }\n >;\n\n // Get available headers, sorted by if they have a filter function or not.\n // TODO(blam): we should really have priority or some specificity here which can be used to sort the headers.\n // That can be done with embedding the priority in the dataRef alongside the filter function.\n const headers = inputs.headers\n .map(header => ({\n element: header.get(EntityHeaderBlueprint.dataRefs.element),\n filter: header.get(EntityHeaderBlueprint.dataRefs.filterFunction),\n }))\n .sort((a, b) => {\n if (a.filter && !b.filter) return -1;\n if (!a.filter && b.filter) return 1;\n return 0;\n });\n\n let groups = Object.entries(defaultEntityContentGroups).reduce<Groups>(\n (rest, group) => {\n const [groupId, groupValue] = group;\n return {\n ...rest,\n [groupId]: { title: groupValue, items: [] },\n };\n },\n {},\n );\n\n // config groups override default groups\n if (config.groups) {\n groups = config.groups.reduce<Groups>((rest, group) => {\n const [groupId, groupValue] = Object.entries(group)[0];\n return {\n ...rest,\n [groupId]: { title: groupValue.title, items: [] },\n };\n }, {});\n }\n\n for (const output of inputs.contents) {\n const itemId = output.node.spec.id;\n const itemTitle = output.get(EntityContentBlueprint.dataRefs.title);\n const itemGroup = output.get(EntityContentBlueprint.dataRefs.group);\n const group = itemGroup && groups[itemGroup];\n if (!group) {\n groups[itemId] = { title: itemTitle, items: [output] };\n continue;\n }\n group.items.push(output);\n }\n\n const Component = () => {\n const entityFromUrl = useEntityFromUrl();\n const { entity } = entityFromUrl;\n const filteredMenuItems = entity\n ? menuItems.filter(i => i.filter(entity)).map(i => i.element)\n : [];\n\n const header = headers.find(\n h => !h.filter || h.filter(entity!),\n )?.element;\n\n return (\n <AsyncEntityProvider {...entityFromUrl}>\n <EntityLayout\n header={header}\n contextMenuItems={filteredMenuItems}\n >\n {Object.values(groups).flatMap(({ title, items }) =>\n items.map(output => (\n <EntityLayout.Route\n group={title}\n key={output.get(coreExtensionData.routePath)}\n path={output.get(coreExtensionData.routePath)}\n title={output.get(EntityContentBlueprint.dataRefs.title)}\n if={buildFilterFn(\n output.get(\n EntityContentBlueprint.dataRefs.filterFunction,\n ),\n output.get(\n EntityContentBlueprint.dataRefs.filterExpression,\n ),\n )}\n >\n {output.get(coreExtensionData.reactElement)}\n </EntityLayout.Route>\n )),\n )}\n </EntityLayout>\n </AsyncEntityProvider>\n );\n };\n\n return compatWrapper(<Component />);\n },\n });\n },\n});\n\nexport default [catalogPage, catalogEntityPage];\n"],"names":[],"mappings":"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"}
package/dist/alpha.d.ts CHANGED
@@ -33,7 +33,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
33
33
  name: undefined;
34
34
  config: {};
35
35
  configInput: {};
36
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
36
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
37
37
  inputs: {};
38
38
  params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
39
39
  }>;
@@ -42,7 +42,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
42
42
  name: "entity-presentation";
43
43
  config: {};
44
44
  configInput: {};
45
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
45
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
46
46
  inputs: {};
47
47
  params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
48
48
  }>;
@@ -51,7 +51,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
51
51
  name: "starred-entities";
52
52
  config: {};
53
53
  configInput: {};
54
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
54
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
55
55
  inputs: {};
56
56
  params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
57
57
  }>;
@@ -62,9 +62,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
62
62
  configInput: {
63
63
  initialFilter?: string | undefined;
64
64
  };
65
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
65
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
66
66
  inputs: {
67
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
67
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
68
68
  optional: boolean;
69
69
  singleton: boolean;
70
70
  }>;
@@ -80,7 +80,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
80
80
  name: "lifecycle";
81
81
  config: {};
82
82
  configInput: {};
83
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
83
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
84
84
  inputs: {};
85
85
  params: {
86
86
  loader: () => Promise<JSX.Element>;
@@ -93,9 +93,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
93
93
  configInput: {
94
94
  initialFilter?: "all" | "owned" | "starred" | undefined;
95
95
  };
96
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
96
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
97
97
  inputs: {
98
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
98
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
99
99
  optional: boolean;
100
100
  singleton: boolean;
101
101
  }>;
@@ -113,9 +113,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
113
113
  configInput: {
114
114
  mode?: "all" | "owners-only" | undefined;
115
115
  };
116
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
116
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
117
117
  inputs: {
118
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
118
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
119
119
  optional: boolean;
120
120
  singleton: boolean;
121
121
  }>;
@@ -131,7 +131,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
131
131
  name: "namespace";
132
132
  config: {};
133
133
  configInput: {};
134
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
134
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
135
135
  inputs: {};
136
136
  params: {
137
137
  loader: () => Promise<JSX.Element>;
@@ -142,7 +142,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
142
142
  name: "processing-status";
143
143
  config: {};
144
144
  configInput: {};
145
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
145
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
146
146
  inputs: {};
147
147
  params: {
148
148
  loader: () => Promise<JSX.Element>;
@@ -153,7 +153,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
153
153
  name: "tag";
154
154
  config: {};
155
155
  configInput: {};
156
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
156
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
157
157
  inputs: {};
158
158
  params: {
159
159
  loader: () => Promise<JSX.Element>;
@@ -164,7 +164,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
164
164
  name: "type";
165
165
  config: {};
166
166
  configInput: {};
167
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
167
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
168
168
  inputs: {};
169
169
  params: {
170
170
  loader: () => Promise<JSX.Element>;
@@ -179,11 +179,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
179
179
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
180
180
  type?: "content" | "summary" | "info" | undefined;
181
181
  };
182
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
182
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
183
183
  optional: true;
184
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
184
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
185
185
  optional: true;
186
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
186
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
187
187
  optional: true;
188
188
  }>;
189
189
  inputs: {
@@ -215,11 +215,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
215
215
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
216
216
  type?: "content" | "summary" | "info" | undefined;
217
217
  };
218
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
218
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
219
219
  optional: true;
220
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
220
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
221
221
  optional: true;
222
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
222
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
223
223
  optional: true;
224
224
  }>;
225
225
  inputs: {};
@@ -240,11 +240,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
240
240
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
241
241
  type?: "content" | "summary" | "info" | undefined;
242
242
  };
243
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
243
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
244
244
  optional: true;
245
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
245
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
246
246
  optional: true;
247
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
247
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
248
248
  optional: true;
249
249
  }>;
250
250
  inputs: {};
@@ -265,11 +265,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
265
265
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
266
266
  type?: "content" | "summary" | "info" | undefined;
267
267
  };
268
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
268
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
269
269
  optional: true;
270
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
270
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
271
271
  optional: true;
272
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
272
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
273
273
  optional: true;
274
274
  }>;
275
275
  inputs: {};
@@ -290,11 +290,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
290
290
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
291
291
  type?: "content" | "summary" | "info" | undefined;
292
292
  };
293
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
293
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
294
294
  optional: true;
295
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
295
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
296
296
  optional: true;
297
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
297
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
298
298
  optional: true;
299
299
  }>;
300
300
  inputs: {};
@@ -315,11 +315,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
315
315
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
316
316
  type?: "content" | "summary" | "info" | undefined;
317
317
  };
318
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
318
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
319
319
  optional: true;
320
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
320
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
321
321
  optional: true;
322
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
322
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
323
323
  optional: true;
324
324
  }>;
325
325
  inputs: {};
@@ -340,11 +340,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
340
340
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
341
341
  type?: "content" | "summary" | "info" | undefined;
342
342
  };
343
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
343
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
344
344
  optional: true;
345
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
345
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
346
346
  optional: true;
347
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
347
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
348
348
  optional: true;
349
349
  }>;
350
350
  inputs: {};
@@ -365,11 +365,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
365
365
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
366
366
  type?: "content" | "summary" | "info" | undefined;
367
367
  };
368
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
368
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
369
369
  optional: true;
370
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
370
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
371
371
  optional: true;
372
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
372
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
373
373
  optional: true;
374
374
  }>;
375
375
  inputs: {};
@@ -390,11 +390,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
390
390
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
391
391
  type?: "content" | "summary" | "info" | undefined;
392
392
  };
393
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
393
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
394
394
  optional: true;
395
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
395
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
396
396
  optional: true;
397
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
397
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
398
398
  optional: true;
399
399
  }>;
400
400
  inputs: {};
@@ -415,11 +415,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
415
415
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
416
416
  type?: "content" | "summary" | "info" | undefined;
417
417
  };
418
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
418
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
419
419
  optional: true;
420
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
420
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
421
421
  optional: true;
422
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
422
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
423
423
  optional: true;
424
424
  }>;
425
425
  inputs: {};
@@ -442,13 +442,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
442
442
  path?: string | undefined;
443
443
  group?: string | false | undefined;
444
444
  };
445
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
445
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
446
446
  optional: true;
447
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
447
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
448
448
  optional: true;
449
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
449
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
450
450
  optional: true;
451
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-content-group", {
451
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-group", {
452
452
  optional: true;
453
453
  }>;
454
454
  inputs: {
@@ -474,10 +474,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
474
474
  kind: "entity-content";
475
475
  name: "overview";
476
476
  params: {
477
+ defaultPath?: [Error: `Use the 'path' param instead`];
478
+ path: string;
479
+ defaultTitle?: [Error: `Use the 'title' param instead`];
480
+ title: string;
481
+ defaultGroup?: [Error: `Use the 'group' param instead`];
482
+ group?: keyof typeof _backstage_plugin_catalog_react_alpha.defaultEntityContentGroups | (string & {});
477
483
  loader: () => Promise<JSX.Element>;
478
- defaultPath: string;
479
- defaultTitle: string;
480
- defaultGroup?: keyof typeof _backstage_plugin_catalog_react_alpha.defaultEntityContentGroups | (string & {});
481
484
  routeRef?: _backstage_frontend_plugin_api.RouteRef;
482
485
  filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model.Entity) => boolean);
483
486
  };
@@ -491,7 +494,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
491
494
  configInput: {
492
495
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
493
496
  };
494
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
497
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
495
498
  optional: true;
496
499
  }>;
497
500
  inputs: {};
@@ -506,7 +509,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
506
509
  configInput: {
507
510
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
508
511
  };
509
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
512
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
510
513
  optional: true;
511
514
  }>;
512
515
  inputs: {};
@@ -521,7 +524,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
521
524
  configInput: {
522
525
  filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
523
526
  };
524
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
527
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
525
528
  optional: true;
526
529
  }>;
527
530
  inputs: {};
@@ -540,11 +543,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
540
543
  label?: string | undefined;
541
544
  title?: string | undefined;
542
545
  };
543
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
546
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
544
547
  optional: true;
545
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
548
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
546
549
  optional: true;
547
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => _backstage_core_components.IconLinkVerticalProps, "entity-icon-link-props", {}>;
550
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<() => _backstage_core_components.IconLinkVerticalProps, "entity-icon-link-props", {}>;
548
551
  inputs: {};
549
552
  params: {
550
553
  useProps: () => Omit<_backstage_core_components.IconLinkVerticalProps, "color">;
@@ -556,7 +559,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
556
559
  name: undefined;
557
560
  config: {};
558
561
  configInput: {};
559
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
562
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<{
560
563
  title: string;
561
564
  icon: _backstage_core_plugin_api.IconComponent;
562
565
  routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
@@ -587,7 +590,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
587
590
  } & {
588
591
  path?: string | undefined;
589
592
  };
590
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
593
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
591
594
  optional: true;
592
595
  }>;
593
596
  inputs: {
@@ -599,7 +602,8 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
599
602
  kind: "page";
600
603
  name: undefined;
601
604
  params: {
602
- defaultPath: string;
605
+ defaultPath?: [Error: `Use the 'path' param instead`];
606
+ path: string;
603
607
  loader: () => Promise<JSX.Element>;
604
608
  routeRef?: _backstage_frontend_plugin_api.RouteRef;
605
609
  };
@@ -619,7 +623,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
619
623
  } & {
620
624
  path?: string | undefined;
621
625
  };
622
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
626
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
623
627
  optional: true;
624
628
  }>;
625
629
  inputs: {
@@ -653,7 +657,8 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
653
657
  kind: "page";
654
658
  name: "entity";
655
659
  params: {
656
- defaultPath: string;
660
+ defaultPath?: [Error: `Use the 'path' param instead`];
661
+ path: string;
657
662
  loader: () => Promise<JSX.Element>;
658
663
  routeRef?: _backstage_frontend_plugin_api.RouteRef;
659
664
  };
@@ -667,7 +672,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
667
672
  configInput: {
668
673
  noTrack?: boolean | undefined;
669
674
  };
670
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
675
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<{
671
676
  predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate;
672
677
  component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
673
678
  }, "search.search-result-list-item.item", {}>;
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-catalog";
2
- var version = "1.31.2-next.1";
2
+ var version = "1.31.2-next.2";
3
3
  var description = "The Backstage plugin for browsing the Backstage catalog";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-catalog",
3
- "version": "1.31.2-next.1",
3
+ "version": "1.31.2-next.2",
4
4
  "description": "The Backstage plugin for browsing the Backstage catalog",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -72,18 +72,18 @@
72
72
  "dependencies": {
73
73
  "@backstage/catalog-client": "1.11.0-next.0",
74
74
  "@backstage/catalog-model": "1.7.5",
75
- "@backstage/core-compat-api": "0.4.5-next.1",
76
- "@backstage/core-components": "0.17.5-next.0",
75
+ "@backstage/core-compat-api": "0.5.0-next.2",
76
+ "@backstage/core-components": "0.17.5-next.1",
77
77
  "@backstage/core-plugin-api": "1.10.9",
78
78
  "@backstage/errors": "1.2.7",
79
- "@backstage/frontend-plugin-api": "0.11.0-next.0",
79
+ "@backstage/frontend-plugin-api": "0.11.0-next.1",
80
80
  "@backstage/integration-react": "1.2.9",
81
81
  "@backstage/plugin-catalog-common": "1.1.5",
82
- "@backstage/plugin-catalog-react": "1.20.0-next.1",
82
+ "@backstage/plugin-catalog-react": "1.20.0-next.2",
83
83
  "@backstage/plugin-permission-react": "0.4.36",
84
84
  "@backstage/plugin-scaffolder-common": "1.7.0-next.0",
85
85
  "@backstage/plugin-search-common": "1.2.19",
86
- "@backstage/plugin-search-react": "1.9.3-next.0",
86
+ "@backstage/plugin-search-react": "1.9.3-next.1",
87
87
  "@backstage/plugin-techdocs-common": "0.1.1",
88
88
  "@backstage/plugin-techdocs-react": "1.3.2-next.0",
89
89
  "@backstage/types": "1.2.1",
@@ -102,10 +102,10 @@
102
102
  "zen-observable": "^0.10.0"
103
103
  },
104
104
  "devDependencies": {
105
- "@backstage/cli": "0.33.2-next.0",
105
+ "@backstage/cli": "0.34.0-next.1",
106
106
  "@backstage/core-app-api": "1.18.0",
107
107
  "@backstage/dev-utils": "1.1.13-next.1",
108
- "@backstage/frontend-test-utils": "0.3.5-next.1",
108
+ "@backstage/frontend-test-utils": "0.3.5-next.2",
109
109
  "@backstage/plugin-permission-common": "0.9.1",
110
110
  "@backstage/test-utils": "1.7.11-next.0",
111
111
  "@testing-library/dom": "^10.0.0",