@backstage/plugin-catalog-react 0.0.0-nightly-20220223022848 → 0.0.0-nightly-20220224022833

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,6 +1,6 @@
1
1
  # @backstage/plugin-catalog-react
2
2
 
3
- ## 0.0.0-nightly-20220223022848
3
+ ## 0.0.0-nightly-20220224022833
4
4
 
5
5
  ### Minor Changes
6
6
 
@@ -9,17 +9,24 @@
9
9
 
10
10
  **BREAKING**: The individual table column factories (e.g. `createEntityRefColumn`) are now no longer available directly, but only through `EntityTable.columns`.
11
11
 
12
+ - c4276915c0: **BREAKING**: Deleted the deprecated `loadIdentityOwnerRefs` function which is replaced by `ownershipEntityRefs` from `identityApi.getBackstageIdentity()`.
13
+
14
+ Deprecated the `loadCatalogOwnerRefs` hook as membership references should be added as `ent` inside `claims` sections of the `SignInResolver` when issuing tokens. See https://backstage.io/docs/auth/identity-resolver for more details on how to prepare your `SignInResolver` if not done already. Usage of the `loadCatalogOwnerRefs` hook should be replaced by `ownershipEntityRefs` from `identityApi.getBackstageIdentity()` instead.
15
+
12
16
  ### Patch Changes
13
17
 
14
18
  - a8331830f1: Deprecated the `useEntityKinds` hook due to low usage and utility value.
15
19
  - 6e1cbc12a6: Updated according to the new `getEntityFacets` catalog API method
16
20
  - b776ce5aab: Deprecated the `useEntityListProvider` hook which is now renamed to `useEntityList`
17
21
  - 2d339b5f2c: Deprecated `useEntityFromUrl` and the `useEntityCompoundName` hooks as these have very low utility value.
18
- - Updated dependencies
19
- - @backstage/core-components@0.0.0-nightly-20220223022848
20
- - @backstage/catalog-model@0.0.0-nightly-20220223022848
21
- - @backstage/integration@0.0.0-nightly-20220223022848
22
- - @backstage/catalog-client@0.0.0-nightly-20220223022848
22
+ - d4f67fa728: Deprecated the `useOwnedEntities` hook which is replaced by the IdentityAPI.
23
+ Deprecated the `useOwnUser` hook due to low external value.
24
+ - 919cf2f836: Minor updates to match the new `targetRef` field of relations, and to stop consuming the `target` field
25
+ - Updated dependencies
26
+ - @backstage/core-components@0.0.0-nightly-20220224022833
27
+ - @backstage/catalog-model@0.0.0-nightly-20220224022833
28
+ - @backstage/catalog-client@0.0.0-nightly-20220224022833
29
+ - @backstage/integration@0.0.0-nightly-20220224022833
23
30
 
24
31
  ## 0.6.15
25
32
 
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import { CatalogApi, GetEntitiesResponse } from '@backstage/catalog-client';
3
3
  export { CATALOG_FILTER_EXISTS, CatalogApi } from '@backstage/catalog-client';
4
4
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
5
- import { ApiRef, StorageApi, IdentityApi } from '@backstage/core-plugin-api';
5
+ import { ApiRef, StorageApi } from '@backstage/core-plugin-api';
6
6
  import { Observable } from '@backstage/types';
7
7
  import * as _backstage_catalog_model from '@backstage/catalog-model';
8
8
  import { Entity, EntityName, UserEntity } from '@backstage/catalog-model';
@@ -92,7 +92,7 @@ declare const EntityOwnerPicker: () => JSX.Element | null;
92
92
  * @public
93
93
  */
94
94
  declare type EntityRefLinkProps = {
95
- entityRef: Entity | EntityName;
95
+ entityRef: Entity | EntityName | string;
96
96
  defaultKind?: string;
97
97
  title?: string;
98
98
  children?: React.ReactNode;
@@ -513,11 +513,12 @@ declare function useEntityKinds(): {
513
513
  /**
514
514
  * Get the catalog User entity (if any) that matches the logged-in user.
515
515
  * @public
516
+ * @deprecated due to low external usage.
516
517
  */
517
518
  declare function useOwnUser(): AsyncState<UserEntity | undefined>;
518
519
 
519
520
  /** @public */
520
- declare function useRelatedEntities(entity: Entity, { type, kind }: {
521
+ declare function useRelatedEntities(entity: Entity, relationFilter: {
521
522
  type?: string;
522
523
  kind?: string;
523
524
  }): {
@@ -539,18 +540,6 @@ declare function useStarredEntity(entityOrRef: Entity | EntityName | string): {
539
540
  isStarredEntity: boolean;
540
541
  };
541
542
 
542
- /**
543
- * Takes the relevant parts of the Backstage identity, and translates them into
544
- * a list of entity refs on string form that represent the user's ownership
545
- * connections.
546
- *
547
- * @public
548
- * @deprecated Use `ownershipEntityRefs` from `identityApi.getBackstageIdentity()` instead.
549
- *
550
- * @param identityApi - The IdentityApi implementation
551
- * @returns IdentityOwner refs as a string array
552
- */
553
- declare function loadIdentityOwnerRefs(identityApi: IdentityApi): Promise<string[]>;
554
543
  /**
555
544
  * Takes the relevant parts of the User entity corresponding to the Backstage
556
545
  * identity, and translates them into a list of entity refs on string form that
@@ -561,6 +550,7 @@ declare function loadIdentityOwnerRefs(identityApi: IdentityApi): Promise<string
561
550
  * @param catalogApi - The Catalog API implementation
562
551
  * @param identityOwnerRefs - List of identity owner refs as strings
563
552
  * @returns OwnerRefs as a string array
553
+ * @deprecated Use `ownershipEntityRefs` from `identityApi.getBackstageIdentity()` instead.
564
554
  */
565
555
  declare function loadCatalogOwnerRefs(catalogApi: CatalogApi, identityOwnerRefs: string[]): Promise<string[]>;
566
556
  /**
@@ -586,6 +576,7 @@ declare function useEntityOwnership(): {
586
576
  * @public
587
577
  *
588
578
  * @param allowedKinds - Array of allowed kinds to filter the entities
579
+ * @deprecated Use `ownershipEntityRefs` from `identityApi.getBackstageIdentity()` instead.
589
580
  */
590
581
  declare function useOwnedEntities(allowedKinds?: string[]): {
591
582
  loading: boolean;
@@ -670,6 +661,7 @@ declare function getEntityMetadataEditUrl(entity: Entity): string | undefined;
670
661
 
671
662
  /**
672
663
  * Get the related entity references.
664
+ *
673
665
  * @public
674
666
  */
675
667
  declare function getEntityRelations(entity: Entity | undefined, relationType: string, filter?: {
@@ -703,4 +695,4 @@ declare type BackstageOverrides = Overrides & {
703
695
  [Name in keyof CatalogReactComponentsNameToClassKey]?: Partial<StyleRules<CatalogReactComponentsNameToClassKey[Name]>>;
704
696
  };
705
697
 
706
- export { AsyncEntityProvider, AsyncEntityProviderProps, BackstageOverrides, CatalogReactComponentsNameToClassKey, CatalogReactEntityLifecyclePickerClassKey, CatalogReactEntityOwnerPickerClassKey, CatalogReactEntitySearchBarClassKey, CatalogReactEntityTagPickerClassKey, CatalogReactUserListPickerClassKey, DefaultEntityFilters, DefaultStarredEntitiesApi, EntityFilter, EntityKindFilter, EntityKindPicker, EntityKindPickerProps, EntityLifecycleFilter, EntityLifecyclePicker, EntityListContext, EntityListContextProps, EntityListProvider, EntityLoadingStatus, EntityOwnerFilter, EntityOwnerPicker, EntityProvider, EntityProviderProps, EntityRefLink, EntityRefLinkProps, EntityRefLinks, EntityRefLinksProps, EntitySearchBar, EntitySourceLocation, EntityTable, EntityTableProps, EntityTagFilter, EntityTagPicker, EntityTextFilter, EntityTypeFilter, EntityTypePicker, EntityTypePickerProps, EntityTypeReturn, FavoriteEntity, FavoriteEntityProps, InspectEntityDialog, MockEntityListContextProvider, StarredEntitiesApi, UnregisterEntityDialog, UnregisterEntityDialogProps, UserListFilter, UserListFilterKind, UserListPicker, UserListPickerProps, catalogApiRef, catalogRouteRef, columnFactories, entityRoute, entityRouteParams, entityRouteRef, favoriteEntityIcon, favoriteEntityTooltip, formatEntityRefTitle, getEntityMetadataEditUrl, getEntityMetadataViewUrl, getEntityRelations, getEntitySourceLocation, isOwnerOf, loadCatalogOwnerRefs, loadIdentityOwnerRefs, reduceCatalogFilters, reduceEntityFilters, rootRoute, starredEntitiesApiRef, useEntity, useEntityCompoundName, useEntityFromUrl, useEntityKinds, useEntityList, useEntityListProvider, useEntityOwnership, useEntityPermission, useEntityTypeFilter, useOwnUser, useOwnedEntities, useRelatedEntities, useStarredEntities, useStarredEntity };
698
+ export { AsyncEntityProvider, AsyncEntityProviderProps, BackstageOverrides, CatalogReactComponentsNameToClassKey, CatalogReactEntityLifecyclePickerClassKey, CatalogReactEntityOwnerPickerClassKey, CatalogReactEntitySearchBarClassKey, CatalogReactEntityTagPickerClassKey, CatalogReactUserListPickerClassKey, DefaultEntityFilters, DefaultStarredEntitiesApi, EntityFilter, EntityKindFilter, EntityKindPicker, EntityKindPickerProps, EntityLifecycleFilter, EntityLifecyclePicker, EntityListContext, EntityListContextProps, EntityListProvider, EntityLoadingStatus, EntityOwnerFilter, EntityOwnerPicker, EntityProvider, EntityProviderProps, EntityRefLink, EntityRefLinkProps, EntityRefLinks, EntityRefLinksProps, EntitySearchBar, EntitySourceLocation, EntityTable, EntityTableProps, EntityTagFilter, EntityTagPicker, EntityTextFilter, EntityTypeFilter, EntityTypePicker, EntityTypePickerProps, EntityTypeReturn, FavoriteEntity, FavoriteEntityProps, InspectEntityDialog, MockEntityListContextProvider, StarredEntitiesApi, UnregisterEntityDialog, UnregisterEntityDialogProps, UserListFilter, UserListFilterKind, UserListPicker, UserListPickerProps, catalogApiRef, catalogRouteRef, columnFactories, entityRoute, entityRouteParams, entityRouteRef, favoriteEntityIcon, favoriteEntityTooltip, formatEntityRefTitle, getEntityMetadataEditUrl, getEntityMetadataViewUrl, getEntityRelations, getEntitySourceLocation, isOwnerOf, loadCatalogOwnerRefs, reduceCatalogFilters, reduceEntityFilters, rootRoute, starredEntitiesApiRef, useEntity, useEntityCompoundName, useEntityFromUrl, useEntityKinds, useEntityList, useEntityListProvider, useEntityOwnership, useEntityPermission, useEntityTypeFilter, useOwnUser, useOwnedEntities, useRelatedEntities, useStarredEntities, useStarredEntity };
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client';
2
2
  import { createApiRef, createRouteRef, useRouteRefParams, useApi, errorApiRef, useRouteRef, identityApiRef, alertApiRef, useApp, configApiRef } from '@backstage/core-plugin-api';
3
3
  import ObservableImpl from 'zen-observable';
4
- import { stringifyEntityRef, DEFAULT_NAMESPACE, ANNOTATION_VIEW_URL, ANNOTATION_EDIT_URL, ANNOTATION_SOURCE_LOCATION, parseLocationRef, RELATION_MEMBER_OF, getEntityName, RELATION_OWNED_BY, parseEntityRef, RELATION_PART_OF, ANNOTATION_LOCATION, ANNOTATION_ORIGIN_LOCATION } from '@backstage/catalog-model';
4
+ import { stringifyEntityRef, DEFAULT_NAMESPACE, ANNOTATION_VIEW_URL, ANNOTATION_EDIT_URL, parseEntityRef, ANNOTATION_SOURCE_LOCATION, parseLocationRef, RELATION_MEMBER_OF, getEntityName, RELATION_OWNED_BY, RELATION_PART_OF, ANNOTATION_LOCATION, ANNOTATION_ORIGIN_LOCATION } from '@backstage/catalog-model';
5
5
  import { isArray, isString, compact, isEqual, groupBy, chunk } from 'lodash';
6
6
  import React, { useEffect, createContext, useState, useMemo, useCallback, useContext, forwardRef, useRef, useLayoutEffect, Fragment } from 'react';
7
7
  import { Alert, Autocomplete } from '@material-ui/lab';
@@ -207,10 +207,10 @@ function getEntityMetadataEditUrl(entity) {
207
207
  }
208
208
 
209
209
  function getEntityRelations(entity, relationType, filter) {
210
- var _a, _b;
211
- let entityNames = ((_b = (_a = entity == null ? void 0 : entity.relations) == null ? void 0 : _a.filter((r) => r.type === relationType)) == null ? void 0 : _b.map((r) => r.target)) || [];
210
+ var _a;
211
+ let entityNames = ((_a = entity == null ? void 0 : entity.relations) == null ? void 0 : _a.filter((r) => r.type === relationType).map((r) => parseEntityRef(r.targetRef))) || [];
212
212
  if (filter == null ? void 0 : filter.kind) {
213
- entityNames = entityNames == null ? void 0 : entityNames.filter((e) => e.kind.toLocaleLowerCase("en-US") === filter.kind.toLocaleLowerCase("en-US"));
213
+ entityNames = entityNames.filter((e) => e.kind.toLocaleLowerCase("en-US") === filter.kind.toLocaleLowerCase("en-US"));
214
214
  }
215
215
  return entityNames;
216
216
  }
@@ -368,7 +368,12 @@ const EntityRefLink = forwardRef((props, ref) => {
368
368
  let kind;
369
369
  let namespace;
370
370
  let name;
371
- if ("metadata" in entityRef) {
371
+ if (typeof entityRef === "string") {
372
+ const parsed = parseEntityRef(entityRef);
373
+ kind = parsed.kind;
374
+ namespace = parsed.namespace;
375
+ name = parsed.name;
376
+ } else if ("metadata" in entityRef) {
372
377
  kind = entityRef.kind;
373
378
  namespace = entityRef.metadata.namespace;
374
379
  name = entityRef.metadata.name;
@@ -378,14 +383,9 @@ const EntityRefLink = forwardRef((props, ref) => {
378
383
  name = entityRef.name;
379
384
  }
380
385
  kind = kind.toLocaleLowerCase("en-US");
381
- const routeParams = {
382
- kind,
383
- namespace: (_a = namespace == null ? void 0 : namespace.toLocaleLowerCase("en-US")) != null ? _a : DEFAULT_NAMESPACE,
384
- name
385
- };
386
- const formattedEntityRefTitle = formatEntityRefTitle(entityRef, {
387
- defaultKind
388
- });
386
+ namespace = (_a = namespace == null ? void 0 : namespace.toLocaleLowerCase("en-US")) != null ? _a : DEFAULT_NAMESPACE;
387
+ const routeParams = { kind, namespace, name };
388
+ const formattedEntityRefTitle = formatEntityRefTitle({ kind, namespace, name }, { defaultKind });
389
389
  const link = /* @__PURE__ */ React.createElement(Link, {
390
390
  ...linkProps,
391
391
  ref,
@@ -590,14 +590,18 @@ function useOwnUser() {
590
590
  }
591
591
 
592
592
  const BATCH_SIZE = 20;
593
- function useRelatedEntities(entity, { type, kind }) {
593
+ function useRelatedEntities(entity, relationFilter) {
594
+ var _a, _b;
595
+ const filterByTypeLower = (_a = relationFilter == null ? void 0 : relationFilter.type) == null ? void 0 : _a.toLocaleLowerCase("en-US");
596
+ const filterByKindLower = (_b = relationFilter == null ? void 0 : relationFilter.kind) == null ? void 0 : _b.toLocaleLowerCase("en-US");
594
597
  const catalogApi = useApi(catalogApiRef);
595
598
  const {
596
599
  loading,
597
600
  value: entities,
598
601
  error
599
602
  } = useAsync(async () => {
600
- const relations = entity.relations && entity.relations.filter((r) => (!type || r.type.toLocaleLowerCase("en-US") === type.toLocaleLowerCase("en-US")) && (!kind || r.target.kind.toLocaleLowerCase("en-US") === kind.toLocaleLowerCase("en-US")));
603
+ var _a2;
604
+ const relations = (_a2 = entity.relations) == null ? void 0 : _a2.map((r) => ({ type: r.type, target: parseEntityRef(r.targetRef) })).filter((r) => (!filterByTypeLower || r.type.toLocaleLowerCase("en-US") === filterByTypeLower) && (!filterByKindLower || r.target.kind === filterByKindLower));
601
605
  if (!relations) {
602
606
  return [];
603
607
  }
@@ -624,7 +628,7 @@ function useRelatedEntities(entity, { type, kind }) {
624
628
  });
625
629
  }));
626
630
  return results.flatMap((r) => r.items);
627
- }, [entity, type]);
631
+ }, [entity, filterByTypeLower, filterByKindLower]);
628
632
  return {
629
633
  entities,
630
634
  loading,
@@ -670,10 +674,6 @@ function useStarredEntity(entityOrRef) {
670
674
  };
671
675
  }
672
676
 
673
- async function loadIdentityOwnerRefs(identityApi) {
674
- const identity = await identityApi.getBackstageIdentity();
675
- return identity.ownershipEntityRefs;
676
- }
677
677
  async function loadCatalogOwnerRefs(catalogApi, identityOwnerRefs) {
678
678
  const result = new Array();
679
679
  const primaryUserRef = identityOwnerRefs.find((ref) => ref.startsWith("user:"));
@@ -717,7 +717,8 @@ function useOwnedEntities(allowedKinds) {
717
717
  const identityApi = useApi(identityApiRef);
718
718
  const catalogApi = useApi(catalogApiRef);
719
719
  const { loading, value: refs } = useAsync(async () => {
720
- const identityRefs = await loadIdentityOwnerRefs(identityApi);
720
+ const identity = await identityApi.getBackstageIdentity();
721
+ const identityRefs = identity.ownershipEntityRefs;
721
722
  const catalogRefs = await loadCatalogOwnerRefs(catalogApi, identityRefs);
722
723
  const catalogs = await catalogApi.getEntities(allowedKinds ? {
723
724
  filter: {
@@ -1225,11 +1226,32 @@ const FavoriteEntity = (props) => {
1225
1226
  }, favoriteEntityIcon(isStarredEntity)));
1226
1227
  };
1227
1228
 
1228
- function EntityKindIcon(props) {
1229
- var _a;
1229
+ const DEFAULT_ICON = WorkIcon;
1230
+ function getKind(kind, entityRef) {
1231
+ if (kind) {
1232
+ return kind.toLocaleLowerCase("en-US");
1233
+ }
1234
+ if (entityRef) {
1235
+ try {
1236
+ return parseEntityRef(entityRef).kind.toLocaleLowerCase("en-US");
1237
+ } catch {
1238
+ return void 0;
1239
+ }
1240
+ }
1241
+ return void 0;
1242
+ }
1243
+ function useIcon(kind, entityRef) {
1230
1244
  const app = useApp();
1231
- const { kind, ...otherProps } = props;
1232
- const Icon = (_a = app.getSystemIcon(`kind:${kind.toLocaleLowerCase("en-US")}`)) != null ? _a : WorkIcon;
1245
+ const actualKind = getKind(kind, entityRef);
1246
+ if (!actualKind) {
1247
+ return DEFAULT_ICON;
1248
+ }
1249
+ const icon = app.getSystemIcon(`kind:${actualKind}`);
1250
+ return icon || DEFAULT_ICON;
1251
+ }
1252
+ function EntityKindIcon(props) {
1253
+ const { kind, entityRef, ...otherProps } = props;
1254
+ const Icon = useIcon(kind, entityRef);
1233
1255
  return /* @__PURE__ */ React.createElement(Icon, {
1234
1256
  ...otherProps
1235
1257
  });
@@ -1567,7 +1589,7 @@ function OverviewPage(props) {
1567
1589
  relations = [],
1568
1590
  status = {}
1569
1591
  } = props.entity;
1570
- const groupedRelations = groupBy$1(sortBy(relations, (r) => stringifyEntityRef(r.target)), "type");
1592
+ const groupedRelations = groupBy$1(sortBy(relations, (r) => r.targetRef), "type");
1571
1593
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DialogContentText, {
1572
1594
  variant: "h2"
1573
1595
  }, "Overview"), /* @__PURE__ */ React.createElement("div", {
@@ -1627,12 +1649,12 @@ function OverviewPage(props) {
1627
1649
  dense: true,
1628
1650
  subheader: /* @__PURE__ */ React.createElement(ListSubheader, null, type)
1629
1651
  }, groupRelations.map((group) => /* @__PURE__ */ React.createElement(ListItem, {
1630
- key: stringifyEntityRef(group.target)
1652
+ key: group.targetRef
1631
1653
  }, /* @__PURE__ */ React.createElement(ListItemIcon, null, /* @__PURE__ */ React.createElement(EntityKindIcon, {
1632
- kind: group.target.kind
1654
+ entityRef: group.targetRef
1633
1655
  })), /* @__PURE__ */ React.createElement(ListItemText, {
1634
1656
  primary: /* @__PURE__ */ React.createElement(EntityRefLink, {
1635
- entityRef: group.target
1657
+ entityRef: group.targetRef
1636
1658
  })
1637
1659
  }))))))), !!((_b = status.items) == null ? void 0 : _b.length) && /* @__PURE__ */ React.createElement(Container, {
1638
1660
  title: "Status",
@@ -2130,5 +2152,5 @@ const MockEntityListContextProvider = ({
2130
2152
  }, children);
2131
2153
  };
2132
2154
 
2133
- export { AsyncEntityProvider, DefaultStarredEntitiesApi, EntityKindFilter, EntityKindPicker, EntityLifecycleFilter, EntityLifecyclePicker, EntityListContext, EntityListProvider, EntityOwnerFilter, EntityOwnerPicker, EntityProvider, EntityRefLink, EntityRefLinks, EntitySearchBar, EntityTable, EntityTagFilter, EntityTagPicker, EntityTextFilter, EntityTypeFilter, EntityTypePicker, FavoriteEntity, InspectEntityDialog, MockEntityListContextProvider, UnregisterEntityDialog, UserListFilter, UserListPicker, catalogApiRef, catalogRouteRef, columnFactories, entityRoute, entityRouteParams, entityRouteRef, favoriteEntityIcon, favoriteEntityTooltip, formatEntityRefTitle, getEntityMetadataEditUrl, getEntityMetadataViewUrl, getEntityRelations, getEntitySourceLocation, isOwnerOf, loadCatalogOwnerRefs, loadIdentityOwnerRefs, reduceCatalogFilters, reduceEntityFilters, rootRoute, starredEntitiesApiRef, useEntity, useEntityCompoundName, useEntityFromUrl, useEntityKinds, useEntityList, useEntityListProvider, useEntityOwnership, useEntityPermission, useEntityTypeFilter, useOwnUser, useOwnedEntities, useRelatedEntities, useStarredEntities, useStarredEntity };
2155
+ export { AsyncEntityProvider, DefaultStarredEntitiesApi, EntityKindFilter, EntityKindPicker, EntityLifecycleFilter, EntityLifecyclePicker, EntityListContext, EntityListProvider, EntityOwnerFilter, EntityOwnerPicker, EntityProvider, EntityRefLink, EntityRefLinks, EntitySearchBar, EntityTable, EntityTagFilter, EntityTagPicker, EntityTextFilter, EntityTypeFilter, EntityTypePicker, FavoriteEntity, InspectEntityDialog, MockEntityListContextProvider, UnregisterEntityDialog, UserListFilter, UserListPicker, catalogApiRef, catalogRouteRef, columnFactories, entityRoute, entityRouteParams, entityRouteRef, favoriteEntityIcon, favoriteEntityTooltip, formatEntityRefTitle, getEntityMetadataEditUrl, getEntityMetadataViewUrl, getEntityRelations, getEntitySourceLocation, isOwnerOf, loadCatalogOwnerRefs, reduceCatalogFilters, reduceEntityFilters, rootRoute, starredEntitiesApiRef, useEntity, useEntityCompoundName, useEntityFromUrl, useEntityKinds, useEntityList, useEntityListProvider, useEntityOwnership, useEntityPermission, useEntityTypeFilter, useOwnUser, useOwnedEntities, useRelatedEntities, useStarredEntities, useStarredEntity };
2134
2156
  //# sourceMappingURL=index.esm.js.map