@backstage/plugin-catalog 2.0.9-next.1 → 2.0.9-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,26 @@
1
1
  # @backstage/plugin-catalog
2
2
 
3
+ ## 2.0.9-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 4611178: Add support for legacy props in catalog entity card exports by widening the public TypeScript prop types. This ensures compatibility for consumers still using legacy properties such as `variant` and `columns`.
8
+ - acc6666: Fixed entity context menus to report errors from contributed items without disrupting the menu.
9
+ - Updated dependencies
10
+ - @backstage/plugin-catalog-common@1.2.0-next.0
11
+ - @backstage/ui@0.18.0-next.2
12
+ - @backstage/catalog-client@1.16.2-next.1
13
+ - @backstage/plugin-catalog-react@3.2.3-next.2
14
+ - @backstage/core-components@0.18.14-next.2
15
+ - @backstage/core-plugin-api@1.12.10-next.1
16
+ - @backstage/frontend-plugin-api@0.18.1-next.1
17
+ - @backstage/integration-react@1.2.22-next.1
18
+ - @backstage/plugin-permission-react@0.5.5-next.1
19
+ - @backstage/plugin-techdocs-react@1.3.15-next.2
20
+ - @backstage/plugin-scaffolder-common@2.3.0-next.2
21
+ - @backstage/plugin-search-common@1.2.25-next.0
22
+ - @backstage/plugin-search-react@1.11.8-next.2
23
+
3
24
  ## 2.0.9-next.1
4
25
 
5
26
  ### Patch Changes
@@ -29,7 +29,7 @@ function EntityContextMenuItemContent(props) {
29
29
  return /* @__PURE__ */ jsx(MenuItem, { iconStart: icon, onAction, isDisabled: disabled, children: title });
30
30
  }
31
31
  function EntityContextMenuItem(props) {
32
- return /* @__PURE__ */ jsx(ExtensionBoundary, { node: props.item.node, children: /* @__PURE__ */ jsx(EntityContextMenuItemContent, { data: props.item.data }) });
32
+ return /* @__PURE__ */ jsx(ExtensionBoundary, { node: props.item.node, errorPresentation: "error-api", children: /* @__PURE__ */ jsx(EntityContextMenuItemContent, { data: props.item.data }) });
33
33
  }
34
34
  function EntityContextMenu(props) {
35
35
  const { UNSTABLE_extraContextMenuItems, contextMenuItems } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityContextMenu.esm.js","sources":["../../../../src/alpha/components/EntityContextMenu/EntityContextMenu.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 type AppNode,\n ExtensionBoundary,\n IconComponent,\n useTranslationRef,\n} from '@backstage/frontend-plugin-api';\nimport type { EntityContextMenuItemData } from '@backstage/plugin-catalog-react/alpha';\nimport {\n ButtonIcon,\n Menu,\n MenuItem,\n MenuSeparator,\n MenuTrigger,\n} from '@backstage/ui';\nimport { RiMore2Line } from '@remixicon/react';\nimport { catalogTranslationRef } from '../../translation';\n\nexport type EntityContextMenuItemDataWithNode = {\n data: EntityContextMenuItemData;\n node: AppNode;\n};\n\nfunction EntityContextMenuItemContent(props: {\n data: EntityContextMenuItemData;\n}) {\n const { icon, useProps } = props.data;\n const { title, disabled, onClick, ...menuItemProps } = useProps();\n const onAction = onClick\n ? () => {\n const result = onClick();\n if (result) {\n // Prevent rejected async actions from becoming unhandled rejections.\n void result.catch(() => {});\n }\n }\n : undefined;\n\n if ('href' in menuItemProps) {\n return (\n <MenuItem\n iconStart={icon}\n href={menuItemProps.href}\n onAction={onAction}\n isDisabled={disabled}\n >\n {title}\n </MenuItem>\n );\n }\n\n return (\n <MenuItem iconStart={icon} onAction={onAction} isDisabled={disabled}>\n {title}\n </MenuItem>\n );\n}\n\nfunction EntityContextMenuItem(props: {\n item: EntityContextMenuItemDataWithNode;\n}) {\n return (\n <ExtensionBoundary node={props.item.node}>\n <EntityContextMenuItemContent data={props.item.data} />\n </ExtensionBoundary>\n );\n}\n\n/** @alpha */\nexport function EntityContextMenu(props: {\n UNSTABLE_extraContextMenuItems?: {\n title: string;\n Icon: IconComponent;\n onClick: () => void;\n }[];\n contextMenuItems?: EntityContextMenuItemDataWithNode[];\n}) {\n const { UNSTABLE_extraContextMenuItems, contextMenuItems } = props;\n const { t } = useTranslationRef(catalogTranslationRef);\n\n return (\n <MenuTrigger>\n <ButtonIcon\n variant=\"secondary\"\n icon={<RiMore2Line />}\n aria-label={t('entityContextMenu.moreButtonAriaLabel')}\n />\n <Menu placement=\"bottom end\">\n {UNSTABLE_extraContextMenuItems?.map((item, index) => (\n <MenuItem\n key={`${item.title}-${index}`}\n iconStart={<item.Icon />}\n onAction={() => item.onClick()}\n >\n {item.title}\n </MenuItem>\n ))}\n {UNSTABLE_extraContextMenuItems?.length && contextMenuItems?.length ? (\n <MenuSeparator />\n ) : null}\n {contextMenuItems?.map(item => (\n <EntityContextMenuItem key={item.node.spec.id} item={item} />\n ))}\n </Menu>\n </MenuTrigger>\n );\n}\n"],"names":[],"mappings":";;;;;;AAsCA,SAAS,6BAA6B,KAAA,EAEnC;AACD,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,KAAA,CAAM,IAAA;AACjC,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,GAAG,aAAA,KAAkB,QAAA,EAAS;AAChE,EAAA,MAAM,QAAA,GAAW,UACb,MAAM;AACJ,IAAA,MAAM,SAAS,OAAA,EAAQ;AACvB,IAAA,IAAI,MAAA,EAAQ;AAEV,MAAA,KAAK,MAAA,CAAO,MAAM,MAAM;AAAA,MAAC,CAAC,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,GACA,MAAA;AAEJ,EAAA,IAAI,UAAU,aAAA,EAAe;AAC3B,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,QACX,MAAM,aAAA,CAAc,IAAA;AAAA,QACpB,QAAA;AAAA,QACA,UAAA,EAAY,QAAA;AAAA,QAEX,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,2BACG,QAAA,EAAA,EAAS,SAAA,EAAW,MAAM,QAAA,EAAoB,UAAA,EAAY,UACxD,QAAA,EAAA,KAAA,EACH,CAAA;AAEJ;AAEA,SAAS,sBAAsB,KAAA,EAE5B;AACD,EAAA,uBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,IAAA,EAClC,QAAA,kBAAA,GAAA,CAAC,4BAAA,EAAA,EAA6B,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,IAAA,EAAM,CAAA,EACvD,CAAA;AAEJ;AAGO,SAAS,kBAAkB,KAAA,EAO/B;AACD,EAAA,MAAM,EAAE,8BAAA,EAAgC,gBAAA,EAAiB,GAAI,KAAA;AAC7D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,qBAAqB,CAAA;AAErD,EAAA,4BACG,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,sBAAO,WAAA,EAAA,EAAY,CAAA;AAAA,QACnB,YAAA,EAAY,EAAE,uCAAuC;AAAA;AAAA,KACvD;AAAA,oBACA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,YAAA,EACb,QAAA,EAAA;AAAA,MAAA,8BAAA,EAAgC,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAC1C,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,SAAA,kBAAW,GAAA,CAAC,IAAA,CAAK,IAAA,EAAL,EAAU,CAAA;AAAA,UACtB,QAAA,EAAU,MAAM,IAAA,CAAK,OAAA,EAAQ;AAAA,UAE5B,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QAJD,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,OAM9B,CAAA;AAAA,MACA,gCAAgC,MAAA,IAAU,gBAAA,EAAkB,MAAA,mBAC3D,GAAA,CAAC,iBAAc,CAAA,GACb,IAAA;AAAA,MACH,gBAAA,EAAkB,GAAA,CAAI,CAAA,IAAA,qBACrB,GAAA,CAAC,qBAAA,EAAA,EAA8C,QAAnB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,EAAgB,CAC5D;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"EntityContextMenu.esm.js","sources":["../../../../src/alpha/components/EntityContextMenu/EntityContextMenu.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 type AppNode,\n ExtensionBoundary,\n IconComponent,\n useTranslationRef,\n} from '@backstage/frontend-plugin-api';\nimport type { EntityContextMenuItemData } from '@backstage/plugin-catalog-react/alpha';\nimport {\n ButtonIcon,\n Menu,\n MenuItem,\n MenuSeparator,\n MenuTrigger,\n} from '@backstage/ui';\nimport { RiMore2Line } from '@remixicon/react';\nimport { catalogTranslationRef } from '../../translation';\n\nexport type EntityContextMenuItemDataWithNode = {\n data: EntityContextMenuItemData;\n node: AppNode;\n};\n\nfunction EntityContextMenuItemContent(props: {\n data: EntityContextMenuItemData;\n}) {\n const { icon, useProps } = props.data;\n const { title, disabled, onClick, ...menuItemProps } = useProps();\n const onAction = onClick\n ? () => {\n const result = onClick();\n if (result) {\n // Prevent rejected async actions from becoming unhandled rejections.\n void result.catch(() => {});\n }\n }\n : undefined;\n\n if ('href' in menuItemProps) {\n return (\n <MenuItem\n iconStart={icon}\n href={menuItemProps.href}\n onAction={onAction}\n isDisabled={disabled}\n >\n {title}\n </MenuItem>\n );\n }\n\n return (\n <MenuItem iconStart={icon} onAction={onAction} isDisabled={disabled}>\n {title}\n </MenuItem>\n );\n}\n\nfunction EntityContextMenuItem(props: {\n item: EntityContextMenuItemDataWithNode;\n}) {\n return (\n <ExtensionBoundary node={props.item.node} errorPresentation=\"error-api\">\n <EntityContextMenuItemContent data={props.item.data} />\n </ExtensionBoundary>\n );\n}\n\n/** @alpha */\nexport function EntityContextMenu(props: {\n UNSTABLE_extraContextMenuItems?: {\n title: string;\n Icon: IconComponent;\n onClick: () => void;\n }[];\n contextMenuItems?: EntityContextMenuItemDataWithNode[];\n}) {\n const { UNSTABLE_extraContextMenuItems, contextMenuItems } = props;\n const { t } = useTranslationRef(catalogTranslationRef);\n\n return (\n <MenuTrigger>\n <ButtonIcon\n variant=\"secondary\"\n icon={<RiMore2Line />}\n aria-label={t('entityContextMenu.moreButtonAriaLabel')}\n />\n <Menu placement=\"bottom end\">\n {UNSTABLE_extraContextMenuItems?.map((item, index) => (\n <MenuItem\n key={`${item.title}-${index}`}\n iconStart={<item.Icon />}\n onAction={() => item.onClick()}\n >\n {item.title}\n </MenuItem>\n ))}\n {UNSTABLE_extraContextMenuItems?.length && contextMenuItems?.length ? (\n <MenuSeparator />\n ) : null}\n {contextMenuItems?.map(item => (\n <EntityContextMenuItem key={item.node.spec.id} item={item} />\n ))}\n </Menu>\n </MenuTrigger>\n );\n}\n"],"names":[],"mappings":";;;;;;AAsCA,SAAS,6BAA6B,KAAA,EAEnC;AACD,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,KAAA,CAAM,IAAA;AACjC,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,GAAG,aAAA,KAAkB,QAAA,EAAS;AAChE,EAAA,MAAM,QAAA,GAAW,UACb,MAAM;AACJ,IAAA,MAAM,SAAS,OAAA,EAAQ;AACvB,IAAA,IAAI,MAAA,EAAQ;AAEV,MAAA,KAAK,MAAA,CAAO,MAAM,MAAM;AAAA,MAAC,CAAC,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA,GACA,MAAA;AAEJ,EAAA,IAAI,UAAU,aAAA,EAAe;AAC3B,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,QACX,MAAM,aAAA,CAAc,IAAA;AAAA,QACpB,QAAA;AAAA,QACA,UAAA,EAAY,QAAA;AAAA,QAEX,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,2BACG,QAAA,EAAA,EAAS,SAAA,EAAW,MAAM,QAAA,EAAoB,UAAA,EAAY,UACxD,QAAA,EAAA,KAAA,EACH,CAAA;AAEJ;AAEA,SAAS,sBAAsB,KAAA,EAE5B;AACD,EAAA,uBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,KAAA,CAAM,KAAK,IAAA,EAAM,iBAAA,EAAkB,WAAA,EAC1D,QAAA,kBAAA,GAAA,CAAC,4BAAA,EAAA,EAA6B,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,MAAM,CAAA,EACvD,CAAA;AAEJ;AAGO,SAAS,kBAAkB,KAAA,EAO/B;AACD,EAAA,MAAM,EAAE,8BAAA,EAAgC,gBAAA,EAAiB,GAAI,KAAA;AAC7D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,qBAAqB,CAAA;AAErD,EAAA,4BACG,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,WAAA;AAAA,QACR,IAAA,sBAAO,WAAA,EAAA,EAAY,CAAA;AAAA,QACnB,YAAA,EAAY,EAAE,uCAAuC;AAAA;AAAA,KACvD;AAAA,oBACA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,YAAA,EACb,QAAA,EAAA;AAAA,MAAA,8BAAA,EAAgC,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAC1C,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,SAAA,kBAAW,GAAA,CAAC,IAAA,CAAK,IAAA,EAAL,EAAU,CAAA;AAAA,UACtB,QAAA,EAAU,MAAM,IAAA,CAAK,OAAA,EAAQ;AAAA,UAE5B,QAAA,EAAA,IAAA,CAAK;AAAA,SAAA;AAAA,QAJD,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,OAM9B,CAAA;AAAA,MACA,gCAAgC,MAAA,IAAU,gBAAA,EAAkB,MAAA,mBAC3D,GAAA,CAAC,iBAAc,CAAA,GACb,IAAA;AAAA,MACH,gBAAA,EAAkB,GAAA,CAAI,CAAA,IAAA,qBACrB,GAAA,CAAC,qBAAA,EAAA,EAA8C,QAAnB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,EAAgB,CAC5D;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -732,21 +732,21 @@ declare const EntityLinksCard: (props: EntityLinksCardProps) => react_jsx_runtim
732
732
  /** @public */
733
733
  declare const EntityLabelsCard: (props: EntityLabelsCardProps) => react_jsx_runtime.JSX.Element;
734
734
  /** @public */
735
- declare const EntityHasSystemsCard: (props: HasSystemsCardProps) => JSX.Element;
735
+ declare const EntityHasSystemsCard: (props: HasSystemsCardProps | HasSystemsCardLegacyProps) => JSX.Element;
736
736
  /** @public */
737
- declare const EntityHasComponentsCard: (props: HasComponentsCardProps) => JSX.Element;
737
+ declare const EntityHasComponentsCard: (props: HasComponentsCardProps | HasComponentsCardLegacyProps) => JSX.Element;
738
738
  /** @public */
739
- declare const EntityHasSubcomponentsCard: (props: HasSubcomponentsCardProps) => JSX.Element;
739
+ declare const EntityHasSubcomponentsCard: (props: HasSubcomponentsCardProps | HasSubcomponentsCardLegacyProps) => JSX.Element;
740
740
  /** @public */
741
- declare const EntityHasSubdomainsCard: (props: HasSubdomainsCardProps) => JSX.Element;
741
+ declare const EntityHasSubdomainsCard: (props: HasSubdomainsCardProps | HasSubdomainsCardLegacyProps) => JSX.Element;
742
742
  /** @public */
743
- declare const EntityHasResourcesCard: (props: HasResourcesCardProps) => JSX.Element;
743
+ declare const EntityHasResourcesCard: (props: HasResourcesCardProps | HasResourcesCardLegacyProps) => JSX.Element;
744
744
  /** @public */
745
- declare const EntityDependsOnComponentsCard: (props: DependsOnComponentsCardProps) => JSX.Element;
745
+ declare const EntityDependsOnComponentsCard: (props: DependsOnComponentsCardProps | DependsOnComponentsCardLegacyProps) => JSX.Element;
746
746
  /** @public */
747
- declare const EntityDependencyOfComponentsCard: (props: DependencyOfComponentsCardProps) => JSX.Element;
747
+ declare const EntityDependencyOfComponentsCard: (props: DependencyOfComponentsCardProps | DependencyOfComponentsCardLegacyProps) => JSX.Element;
748
748
  /** @public */
749
- declare const EntityDependsOnResourcesCard: (props: DependsOnResourcesCardProps) => JSX.Element;
749
+ declare const EntityDependsOnResourcesCard: (props: DependsOnResourcesCardProps | DependsOnResourcesCardLegacyProps) => JSX.Element;
750
750
  /** @public */
751
751
  declare const RelatedEntitiesCard: <T extends Entity>(props: RelatedEntitiesCardProps<T>) => JSX.Element;
752
752
  /** @public */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"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 { CatalogClient } from '@backstage/catalog-client';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n entityRouteRef,\n starredEntitiesApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n createComponentRouteRef,\n createFromTemplateRouteRef,\n unregisterRedirectRouteRef,\n viewTechDocRouteRef,\n rootRouteRef,\n} from './routes';\nimport {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { DefaultStarredEntitiesApi } from './apis';\nimport { DefaultCatalogPageProps } from './components/CatalogPage';\nimport { DependencyOfComponentsCardProps } from './components/DependencyOfComponentsCard';\nimport { DependsOnComponentsCardProps } from './components/DependsOnComponentsCard';\nimport { DependsOnResourcesCardProps } from './components/DependsOnResourcesCard';\nimport { HasComponentsCardProps } from './components/HasComponentsCard';\nimport { HasResourcesCardProps } from './components/HasResourcesCard';\nimport { HasSubcomponentsCardProps } from './components/HasSubcomponentsCard';\nimport { HasSubdomainsCardProps } from './components/HasSubdomainsCard';\nimport { HasSystemsCardProps } from './components/HasSystemsCard';\nimport { RelatedEntitiesCardProps } from './components/RelatedEntitiesCard';\nimport { CatalogSearchResultListItemProps } from './components/CatalogSearchResultListItem';\nimport { DefaultEntityPresentationApi } from './apis/EntityPresentationApi';\n\n/** @public */\nexport const catalogPlugin = createPlugin({\n id: 'catalog',\n apis: [\n createApiFactory({\n api: catalogApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CatalogClient({ discoveryApi, fetchApi }),\n }),\n createApiFactory({\n api: starredEntitiesApiRef,\n deps: { storageApi: storageApiRef },\n factory: ({ storageApi }) =>\n new DefaultStarredEntitiesApi({ storageApi }),\n }),\n createApiFactory({\n api: entityPresentationApiRef,\n deps: { catalogApi: catalogApiRef },\n factory: ({ catalogApi }) =>\n DefaultEntityPresentationApi.create({ catalogApi }),\n }),\n ],\n routes: {\n catalogIndex: rootRouteRef,\n catalogEntity: entityRouteRef,\n },\n externalRoutes: {\n createComponent: createComponentRouteRef,\n viewTechDoc: viewTechDocRouteRef,\n createFromTemplate: createFromTemplateRouteRef,\n unregisterRedirect: unregisterRedirectRouteRef,\n },\n});\n\n/** @public */\nexport const CatalogIndexPage: (props: DefaultCatalogPageProps) => JSX.Element =\n catalogPlugin.provide(\n createRoutableExtension({\n name: 'CatalogIndexPage',\n component: () =>\n import('./components/CatalogPage').then(m => m.CatalogPage),\n mountPoint: rootRouteRef,\n }),\n );\n\n/** @public */\nexport const CatalogEntityPage: () => JSX.Element = catalogPlugin.provide(\n createRoutableExtension({\n name: 'CatalogEntityPage',\n component: () =>\n import('./components/CatalogEntityPage').then(m => m.CatalogEntityPage),\n mountPoint: entityRouteRef,\n }),\n);\n\n/**\n * An example About card to show at the top of entity pages.\n *\n * @public\n * @remarks\n *\n * This card collects some high level information about the entity, but is just\n * an example component. Many organizations will want to replace it with a\n * custom card that is more tailored to their specific needs. The card itself is\n * not extremely customizable; feel free to make a copy of it as a starting\n * point if you like.\n */\nexport const EntityAboutCard: () => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityAboutCard',\n component: {\n lazy: () => import('./components/AboutCard').then(m => m.AboutCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityLinksCard = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityLinksCard',\n component: {\n lazy: () =>\n import('./components/EntityLinksCard').then(m => m.EntityLinksCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityLabelsCard = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityLabelsCard',\n component: {\n lazy: () =>\n import('./components/EntityLabelsCard').then(m => m.EntityLabelsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSystemsCard: (props: HasSystemsCardProps) => JSX.Element =\n catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSystemsCard',\n component: {\n lazy: () =>\n import('./components/HasSystemsCard').then(m => m.HasSystemsCard),\n },\n }),\n );\n\n/** @public */\nexport const EntityHasComponentsCard: (\n props: HasComponentsCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasComponentsCard',\n component: {\n lazy: () =>\n import('./components/HasComponentsCard').then(m => m.HasComponentsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSubcomponentsCard: (\n props: HasSubcomponentsCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSubcomponentsCard',\n component: {\n lazy: () =>\n import('./components/HasSubcomponentsCard').then(\n m => m.HasSubcomponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSubdomainsCard: (\n props: HasSubdomainsCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSubdomainsCard',\n component: {\n lazy: () =>\n import('./components/HasSubdomainsCard').then(m => m.HasSubdomainsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasResourcesCard: (\n props: HasResourcesCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasResourcesCard',\n component: {\n lazy: () =>\n import('./components/HasResourcesCard').then(m => m.HasResourcesCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependsOnComponentsCard: (\n props: DependsOnComponentsCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependsOnComponentsCard',\n component: {\n lazy: () =>\n import('./components/DependsOnComponentsCard').then(\n m => m.DependsOnComponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependencyOfComponentsCard: (\n props: DependencyOfComponentsCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependencyOfComponentsCard',\n component: {\n lazy: () =>\n import('./components/DependencyOfComponentsCard').then(\n m => m.DependencyOfComponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependsOnResourcesCard: (\n props: DependsOnResourcesCardProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependsOnResourcesCard',\n component: {\n lazy: () =>\n import('./components/DependsOnResourcesCard').then(\n m => m.DependsOnResourcesCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const RelatedEntitiesCard: <T extends Entity>(\n props: RelatedEntitiesCardProps<T>,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'RelatedEntitiesCard',\n component: {\n lazy: () =>\n import('./components/RelatedEntitiesCard').then(\n m => m.RelatedEntitiesCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const CatalogSearchResultListItem: (\n props: SearchResultListItemExtensionProps<CatalogSearchResultListItemProps>,\n) => JSX.Element | null = catalogPlugin.provide(\n createSearchResultListItemExtension({\n name: 'CatalogSearchResultListItem',\n component: () =>\n import('./components/CatalogSearchResultListItem').then(\n m => m.CatalogSearchResultListItem,\n ),\n predicate: result => result.type === 'software-catalog',\n }),\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"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 { CatalogClient } from '@backstage/catalog-client';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n entityRouteRef,\n starredEntitiesApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n createComponentRouteRef,\n createFromTemplateRouteRef,\n unregisterRedirectRouteRef,\n viewTechDocRouteRef,\n rootRouteRef,\n} from './routes';\nimport {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { DefaultStarredEntitiesApi } from './apis';\nimport { DefaultCatalogPageProps } from './components/CatalogPage';\nimport {\n DependencyOfComponentsCardLegacyProps,\n DependencyOfComponentsCardProps,\n} from './components/DependencyOfComponentsCard';\nimport {\n DependsOnComponentsCardLegacyProps,\n DependsOnComponentsCardProps,\n} from './components/DependsOnComponentsCard';\nimport {\n DependsOnResourcesCardLegacyProps,\n DependsOnResourcesCardProps,\n} from './components/DependsOnResourcesCard';\nimport {\n HasComponentsCardLegacyProps,\n HasComponentsCardProps,\n} from './components/HasComponentsCard';\nimport {\n HasResourcesCardLegacyProps,\n HasResourcesCardProps,\n} from './components/HasResourcesCard';\nimport {\n HasSubcomponentsCardLegacyProps,\n HasSubcomponentsCardProps,\n} from './components/HasSubcomponentsCard';\nimport {\n HasSubdomainsCardLegacyProps,\n HasSubdomainsCardProps,\n} from './components/HasSubdomainsCard';\nimport {\n HasSystemsCardLegacyProps,\n HasSystemsCardProps,\n} from './components/HasSystemsCard';\nimport { RelatedEntitiesCardProps } from './components/RelatedEntitiesCard';\nimport { CatalogSearchResultListItemProps } from './components/CatalogSearchResultListItem';\nimport { DefaultEntityPresentationApi } from './apis/EntityPresentationApi';\n\n/** @public */\nexport const catalogPlugin = createPlugin({\n id: 'catalog',\n apis: [\n createApiFactory({\n api: catalogApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CatalogClient({ discoveryApi, fetchApi }),\n }),\n createApiFactory({\n api: starredEntitiesApiRef,\n deps: { storageApi: storageApiRef },\n factory: ({ storageApi }) =>\n new DefaultStarredEntitiesApi({ storageApi }),\n }),\n createApiFactory({\n api: entityPresentationApiRef,\n deps: { catalogApi: catalogApiRef },\n factory: ({ catalogApi }) =>\n DefaultEntityPresentationApi.create({ catalogApi }),\n }),\n ],\n routes: {\n catalogIndex: rootRouteRef,\n catalogEntity: entityRouteRef,\n },\n externalRoutes: {\n createComponent: createComponentRouteRef,\n viewTechDoc: viewTechDocRouteRef,\n createFromTemplate: createFromTemplateRouteRef,\n unregisterRedirect: unregisterRedirectRouteRef,\n },\n});\n\n/** @public */\nexport const CatalogIndexPage: (props: DefaultCatalogPageProps) => JSX.Element =\n catalogPlugin.provide(\n createRoutableExtension({\n name: 'CatalogIndexPage',\n component: () =>\n import('./components/CatalogPage').then(m => m.CatalogPage),\n mountPoint: rootRouteRef,\n }),\n );\n\n/** @public */\nexport const CatalogEntityPage: () => JSX.Element = catalogPlugin.provide(\n createRoutableExtension({\n name: 'CatalogEntityPage',\n component: () =>\n import('./components/CatalogEntityPage').then(m => m.CatalogEntityPage),\n mountPoint: entityRouteRef,\n }),\n);\n\n/**\n * An example About card to show at the top of entity pages.\n *\n * @public\n * @remarks\n *\n * This card collects some high level information about the entity, but is just\n * an example component. Many organizations will want to replace it with a\n * custom card that is more tailored to their specific needs. The card itself is\n * not extremely customizable; feel free to make a copy of it as a starting\n * point if you like.\n */\nexport const EntityAboutCard: () => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityAboutCard',\n component: {\n lazy: () => import('./components/AboutCard').then(m => m.AboutCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityLinksCard = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityLinksCard',\n component: {\n lazy: () =>\n import('./components/EntityLinksCard').then(m => m.EntityLinksCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityLabelsCard = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityLabelsCard',\n component: {\n lazy: () =>\n import('./components/EntityLabelsCard').then(m => m.EntityLabelsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSystemsCard: (\n props: HasSystemsCardProps | HasSystemsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSystemsCard',\n component: {\n lazy: () =>\n import('./components/HasSystemsCard').then(m => m.HasSystemsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasComponentsCard: (\n props: HasComponentsCardProps | HasComponentsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasComponentsCard',\n component: {\n lazy: () =>\n import('./components/HasComponentsCard').then(m => m.HasComponentsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSubcomponentsCard: (\n props: HasSubcomponentsCardProps | HasSubcomponentsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSubcomponentsCard',\n component: {\n lazy: () =>\n import('./components/HasSubcomponentsCard').then(\n m => m.HasSubcomponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasSubdomainsCard: (\n props: HasSubdomainsCardProps | HasSubdomainsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasSubdomainsCard',\n component: {\n lazy: () =>\n import('./components/HasSubdomainsCard').then(m => m.HasSubdomainsCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityHasResourcesCard: (\n props: HasResourcesCardProps | HasResourcesCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityHasResourcesCard',\n component: {\n lazy: () =>\n import('./components/HasResourcesCard').then(m => m.HasResourcesCard),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependsOnComponentsCard: (\n props: DependsOnComponentsCardProps | DependsOnComponentsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependsOnComponentsCard',\n component: {\n lazy: () =>\n import('./components/DependsOnComponentsCard').then(\n m => m.DependsOnComponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependencyOfComponentsCard: (\n props:\n | DependencyOfComponentsCardProps\n | DependencyOfComponentsCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependencyOfComponentsCard',\n component: {\n lazy: () =>\n import('./components/DependencyOfComponentsCard').then(\n m => m.DependencyOfComponentsCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const EntityDependsOnResourcesCard: (\n props: DependsOnResourcesCardProps | DependsOnResourcesCardLegacyProps,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'EntityDependsOnResourcesCard',\n component: {\n lazy: () =>\n import('./components/DependsOnResourcesCard').then(\n m => m.DependsOnResourcesCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const RelatedEntitiesCard: <T extends Entity>(\n props: RelatedEntitiesCardProps<T>,\n) => JSX.Element = catalogPlugin.provide(\n createComponentExtension({\n name: 'RelatedEntitiesCard',\n component: {\n lazy: () =>\n import('./components/RelatedEntitiesCard').then(\n m => m.RelatedEntitiesCard,\n ),\n },\n }),\n);\n\n/** @public */\nexport const CatalogSearchResultListItem: (\n props: SearchResultListItemExtensionProps<CatalogSearchResultListItemProps>,\n) => JSX.Element | null = catalogPlugin.provide(\n createSearchResultListItemExtension({\n name: 'CatalogSearchResultListItem',\n component: () =>\n import('./components/CatalogSearchResultListItem').then(\n m => m.CatalogSearchResultListItem,\n ),\n predicate: result => result.type === 'software-catalog',\n }),\n);\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-catalog";
2
- var version = "2.0.9-next.1";
2
+ var version = "2.0.9-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": "2.0.9-next.1",
3
+ "version": "2.0.9-next.2",
4
4
  "description": "The Backstage plugin for browsing the Backstage catalog",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -70,24 +70,24 @@
70
70
  "test": "backstage-cli package test"
71
71
  },
72
72
  "dependencies": {
73
- "@backstage/catalog-client": "1.16.2-next.0",
73
+ "@backstage/catalog-client": "1.16.2-next.1",
74
74
  "@backstage/catalog-model": "1.10.0",
75
75
  "@backstage/core-compat-api": "0.5.15-next.1",
76
- "@backstage/core-components": "0.18.14-next.1",
77
- "@backstage/core-plugin-api": "1.12.10-next.0",
76
+ "@backstage/core-components": "0.18.14-next.2",
77
+ "@backstage/core-plugin-api": "1.12.10-next.1",
78
78
  "@backstage/errors": "1.3.1",
79
- "@backstage/frontend-plugin-api": "0.18.1-next.0",
80
- "@backstage/integration-react": "1.2.22-next.0",
81
- "@backstage/plugin-catalog-common": "1.1.10",
82
- "@backstage/plugin-catalog-react": "3.2.3-next.1",
83
- "@backstage/plugin-permission-react": "0.5.5-next.0",
84
- "@backstage/plugin-scaffolder-common": "2.3.0-next.1",
85
- "@backstage/plugin-search-common": "1.2.24",
86
- "@backstage/plugin-search-react": "1.11.8-next.1",
79
+ "@backstage/frontend-plugin-api": "0.18.1-next.1",
80
+ "@backstage/integration-react": "1.2.22-next.1",
81
+ "@backstage/plugin-catalog-common": "1.2.0-next.0",
82
+ "@backstage/plugin-catalog-react": "3.2.3-next.2",
83
+ "@backstage/plugin-permission-react": "0.5.5-next.1",
84
+ "@backstage/plugin-scaffolder-common": "2.3.0-next.2",
85
+ "@backstage/plugin-search-common": "1.2.25-next.0",
86
+ "@backstage/plugin-search-react": "1.11.8-next.2",
87
87
  "@backstage/plugin-techdocs-common": "0.1.1",
88
- "@backstage/plugin-techdocs-react": "1.3.15-next.1",
88
+ "@backstage/plugin-techdocs-react": "1.3.15-next.2",
89
89
  "@backstage/types": "1.2.2",
90
- "@backstage/ui": "0.18.0-next.1",
90
+ "@backstage/ui": "0.18.0-next.2",
91
91
  "@backstage/version-bridge": "1.0.12",
92
92
  "@material-ui/core": "^4.12.2",
93
93
  "@material-ui/icons": "^4.9.1",
@@ -105,12 +105,12 @@
105
105
  "zod": "^4.0.0"
106
106
  },
107
107
  "devDependencies": {
108
- "@backstage/cli": "0.36.6-next.0",
109
- "@backstage/core-app-api": "1.20.5-next.1",
108
+ "@backstage/cli": "0.36.6-next.1",
109
+ "@backstage/core-app-api": "1.20.5-next.2",
110
110
  "@backstage/dev-utils": "1.1.27-next.1",
111
- "@backstage/frontend-test-utils": "0.6.4-next.1",
112
- "@backstage/plugin-permission-common": "0.9.10",
113
- "@backstage/test-utils": "1.7.22-next.1",
111
+ "@backstage/frontend-test-utils": "0.6.4-next.2",
112
+ "@backstage/plugin-permission-common": "0.9.11-next.0",
113
+ "@backstage/test-utils": "1.7.22-next.2",
114
114
  "@testing-library/dom": "^10.0.0",
115
115
  "@testing-library/jest-dom": "^6.0.0",
116
116
  "@testing-library/react": "^16.0.0",