@backstage/plugin-api-docs 0.14.5-next.1 → 0.14.5

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,36 @@
1
1
  # @backstage/plugin-api-docs
2
2
 
3
+ ## 0.14.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 736d84e: Use locale-insensitive Unicode casing for consistent string handling across environments.
8
+ - 4b643e3: Migrate plugin-api-docs to the configSchema API to remove the deprecated config.schema usage.
9
+ - Updated dependencies
10
+ - @backstage/plugin-catalog@2.0.9
11
+ - @backstage/core-components@0.18.14
12
+ - @backstage/plugin-catalog-common@1.2.0
13
+ - @backstage/ui@0.18.0
14
+ - @backstage/catalog-model@1.10.1
15
+ - @backstage/plugin-catalog-react@3.2.3
16
+ - @backstage/frontend-plugin-api@0.18.1
17
+ - @backstage/core-plugin-api@1.12.10
18
+ - @backstage/plugin-permission-react@0.5.5
19
+
20
+ ## 0.14.5-next.2
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies
25
+ - @backstage/plugin-catalog-common@1.2.0-next.0
26
+ - @backstage/plugin-catalog@2.0.9-next.2
27
+ - @backstage/ui@0.18.0-next.2
28
+ - @backstage/plugin-catalog-react@3.2.3-next.2
29
+ - @backstage/core-components@0.18.14-next.2
30
+ - @backstage/core-plugin-api@1.12.10-next.1
31
+ - @backstage/frontend-plugin-api@0.18.1-next.1
32
+ - @backstage/plugin-permission-react@0.5.5-next.1
33
+
3
34
  ## 0.14.5-next.1
4
35
 
5
36
  ### Patch Changes
package/dist/alpha.esm.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import Grid from '@material-ui/core/Grid';
3
3
  import { ApiBlueprint, PageBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
4
+ import { z } from 'zod/v4';
4
5
  import { RELATION_HAS_PART, parseEntityRef } from '@backstage/catalog-model';
5
6
  import '@backstage/plugin-catalog-react';
6
7
  import { AppIcon } from '@backstage/core-components';
@@ -11,7 +12,6 @@ import { apiDocsTranslationRef as apiDocsTranslationRef$1 } from './translation.
11
12
  import { defaultDefinitionWidgets } from './components/ApiDefinitionCard/ApiDefinitionWidget.esm.js';
12
13
  import '@material-ui/core/Typography';
13
14
  import { rootRoute, registerComponentRouteRef } from './routes.esm.js';
14
- import { z } from 'zod';
15
15
  import { EntityCardBlueprint, EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';
16
16
 
17
17
  const apiDocsConfigApi = ApiBlueprint.make({
@@ -59,7 +59,7 @@ const apiDocsHasApisEntityCard = EntityCardBlueprint.make({
59
59
  // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252
60
60
  filter: (entity) => {
61
61
  return entity.kind === "Component" && entity.relations?.some(
62
- ({ type, targetRef }) => type.toLocaleLowerCase("en-US") === RELATION_HAS_PART && parseEntityRef(targetRef).kind === "API"
62
+ ({ type, targetRef }) => type.toLowerCase() === RELATION_HAS_PART && parseEntityRef(targetRef).kind === "API"
63
63
  );
64
64
  },
65
65
  loader: () => import('./components/ApisCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.HasApisCard, {}))
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 Grid from '@material-ui/core/Grid';\n\nimport {\n ApiBlueprint,\n PageBlueprint,\n createFrontendPlugin,\n} from '@backstage/frontend-plugin-api';\n\nimport {\n ApiEntity,\n parseEntityRef,\n RELATION_HAS_PART,\n} from '@backstage/catalog-model';\n\nimport { defaultDefinitionWidgets } from './components/ApiDefinitionCard';\nimport { rootRoute, registerComponentRouteRef } from './routes';\nimport { apiDocsConfigRef } from './config';\nimport { AppIcon } from '@backstage/core-components';\nimport { z } from 'zod';\n\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\n\nconst apiDocsConfigApi = ApiBlueprint.make({\n name: 'config',\n params: defineParams =>\n defineParams({\n api: apiDocsConfigRef,\n deps: {},\n factory: () => {\n const definitionWidgets = defaultDefinitionWidgets();\n return {\n getApiDefinitionWidget: (apiEntity: ApiEntity) => {\n return definitionWidgets.find(d => d.type === apiEntity.spec.type);\n },\n };\n },\n }),\n});\n\nconst apiDocsExplorerPage = PageBlueprint.makeWithOverrides({\n configSchema: {\n // Omitting columns and actions for now as their types are too complex to map to zod\n initiallySelectedFilter: z.enum(['owned', 'starred', 'all']).optional(),\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n path: '/api-docs',\n routeRef: rootRoute,\n title: 'APIs',\n icon: <AppIcon fontSize=\"inherit\" id=\"kind:api\" />,\n loader: () =>\n import('./components/ApiExplorerPage/DefaultApiExplorerPage').then(\n m => (\n <m.NfsApiExplorerPage\n initiallySelectedFilter={config.initiallySelectedFilter}\n />\n ),\n ),\n });\n },\n});\n\nconst apiDocsHasApisEntityCard = EntityCardBlueprint.make({\n name: 'has-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: entity => {\n return (\n entity.kind === 'Component' &&\n entity.relations?.some(\n ({ type, targetRef }) =>\n type.toLocaleLowerCase('en-US') === RELATION_HAS_PART &&\n parseEntityRef(targetRef).kind === 'API',\n )!!\n );\n },\n loader: () => import('./components/ApisCards').then(m => <m.HasApisCard />),\n },\n});\n\nconst apiDocsDefinitionEntityCard = EntityCardBlueprint.make({\n name: 'definition',\n params: {\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ApiDefinitionCard').then(m => (\n <m.ApiDefinitionCard />\n )),\n },\n});\n\nconst apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({\n name: 'consumed-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'component' },\n loader: () =>\n import('./components/ApisCards').then(m => <m.ConsumedApisCard />),\n },\n});\n\nconst apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({\n name: 'provided-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'component' },\n loader: () =>\n import('./components/ApisCards').then(m => <m.ProvidedApisCard />),\n },\n});\n\nconst apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'consuming-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ConsumingComponentsCard />\n )),\n },\n});\n\nconst apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'providing-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ProvidingComponentsCard />\n )),\n },\n});\n\nconst apiDocsDefinitionEntityContent = EntityContentBlueprint.make({\n name: 'definition',\n params: {\n path: '/definition',\n title: 'Definition',\n group: 'documentation',\n filter: { kind: 'api' },\n loader: async () =>\n import('./components/ApiDefinitionCard').then(m => (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <m.ApiDefinitionCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nconst apiDocsApisEntityContent = EntityContentBlueprint.make({\n name: 'apis',\n params: {\n path: '/apis',\n title: 'APIs',\n group: 'development',\n filter: { kind: 'component' },\n loader: async () =>\n import('./components/ApisCards').then(m => (\n <Grid container spacing={3} alignItems=\"stretch\">\n <Grid item xs={12}>\n <m.ProvidedApisCard />\n </Grid>\n <Grid item xs={12}>\n <m.ConsumedApisCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nexport default createFrontendPlugin({\n pluginId: 'api-docs',\n title: 'APIs',\n icon: <AppIcon fontSize=\"inherit\" id=\"kind:api\" />,\n info: { packageJson: () => import('../package.json') },\n routes: {\n root: rootRoute,\n },\n externalRoutes: {\n registerApi: registerComponentRouteRef,\n },\n extensions: [\n apiDocsConfigApi,\n apiDocsExplorerPage,\n apiDocsHasApisEntityCard,\n apiDocsDefinitionEntityCard,\n apiDocsProvidedApisEntityCard,\n apiDocsConsumedApisEntityCard,\n apiDocsConsumingComponentsEntityCard,\n apiDocsProvidingComponentsEntityCard,\n apiDocsDefinitionEntityContent,\n apiDocsApisEntityContent,\n ],\n});\n\nimport { apiDocsTranslationRef as _apiDocsTranslationRef } from './translation';\n\n/**\n * @alpha\n * @deprecated Import from `@backstage/plugin-api-docs` instead.\n */\nexport const apiDocsTranslationRef = _apiDocsTranslationRef;\n"],"names":["_apiDocsTranslationRef"],"mappings":"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"}
1
+ {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 Grid from '@material-ui/core/Grid';\n\nimport {\n ApiBlueprint,\n PageBlueprint,\n createFrontendPlugin,\n} from '@backstage/frontend-plugin-api';\nimport { z } from 'zod/v4';\n\nimport {\n ApiEntity,\n parseEntityRef,\n RELATION_HAS_PART,\n} from '@backstage/catalog-model';\n\nimport { defaultDefinitionWidgets } from './components/ApiDefinitionCard';\nimport { rootRoute, registerComponentRouteRef } from './routes';\nimport { apiDocsConfigRef } from './config';\nimport { AppIcon } from '@backstage/core-components';\n\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\n\nconst apiDocsConfigApi = ApiBlueprint.make({\n name: 'config',\n params: defineParams =>\n defineParams({\n api: apiDocsConfigRef,\n deps: {},\n factory: () => {\n const definitionWidgets = defaultDefinitionWidgets();\n return {\n getApiDefinitionWidget: (apiEntity: ApiEntity) => {\n return definitionWidgets.find(d => d.type === apiEntity.spec.type);\n },\n };\n },\n }),\n});\n\nconst apiDocsExplorerPage = PageBlueprint.makeWithOverrides({\n configSchema: {\n // Omitting columns and actions for now as their types are too complex to map to zod\n initiallySelectedFilter: z.enum(['owned', 'starred', 'all']).optional(),\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n path: '/api-docs',\n routeRef: rootRoute,\n title: 'APIs',\n icon: <AppIcon fontSize=\"inherit\" id=\"kind:api\" />,\n loader: () =>\n import('./components/ApiExplorerPage/DefaultApiExplorerPage').then(\n m => (\n <m.NfsApiExplorerPage\n initiallySelectedFilter={config.initiallySelectedFilter}\n />\n ),\n ),\n });\n },\n});\n\nconst apiDocsHasApisEntityCard = EntityCardBlueprint.make({\n name: 'has-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: entity => {\n return (\n entity.kind === 'Component' &&\n entity.relations?.some(\n ({ type, targetRef }) =>\n type.toLowerCase() === RELATION_HAS_PART &&\n parseEntityRef(targetRef).kind === 'API',\n )!!\n );\n },\n loader: () => import('./components/ApisCards').then(m => <m.HasApisCard />),\n },\n});\n\nconst apiDocsDefinitionEntityCard = EntityCardBlueprint.make({\n name: 'definition',\n params: {\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ApiDefinitionCard').then(m => (\n <m.ApiDefinitionCard />\n )),\n },\n});\n\nconst apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({\n name: 'consumed-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'component' },\n loader: () =>\n import('./components/ApisCards').then(m => <m.ConsumedApisCard />),\n },\n});\n\nconst apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({\n name: 'provided-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'component' },\n loader: () =>\n import('./components/ApisCards').then(m => <m.ProvidedApisCard />),\n },\n});\n\nconst apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'consuming-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ConsumingComponentsCard />\n )),\n },\n});\n\nconst apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'providing-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: { kind: 'api' },\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ProvidingComponentsCard />\n )),\n },\n});\n\nconst apiDocsDefinitionEntityContent = EntityContentBlueprint.make({\n name: 'definition',\n params: {\n path: '/definition',\n title: 'Definition',\n group: 'documentation',\n filter: { kind: 'api' },\n loader: async () =>\n import('./components/ApiDefinitionCard').then(m => (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <m.ApiDefinitionCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nconst apiDocsApisEntityContent = EntityContentBlueprint.make({\n name: 'apis',\n params: {\n path: '/apis',\n title: 'APIs',\n group: 'development',\n filter: { kind: 'component' },\n loader: async () =>\n import('./components/ApisCards').then(m => (\n <Grid container spacing={3} alignItems=\"stretch\">\n <Grid item xs={12}>\n <m.ProvidedApisCard />\n </Grid>\n <Grid item xs={12}>\n <m.ConsumedApisCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nexport default createFrontendPlugin({\n pluginId: 'api-docs',\n title: 'APIs',\n icon: <AppIcon fontSize=\"inherit\" id=\"kind:api\" />,\n info: { packageJson: () => import('../package.json') },\n routes: {\n root: rootRoute,\n },\n externalRoutes: {\n registerApi: registerComponentRouteRef,\n },\n extensions: [\n apiDocsConfigApi,\n apiDocsExplorerPage,\n apiDocsHasApisEntityCard,\n apiDocsDefinitionEntityCard,\n apiDocsProvidedApisEntityCard,\n apiDocsConsumedApisEntityCard,\n apiDocsConsumingComponentsEntityCard,\n apiDocsProvidingComponentsEntityCard,\n apiDocsDefinitionEntityContent,\n apiDocsApisEntityContent,\n ],\n});\n\nimport { apiDocsTranslationRef as _apiDocsTranslationRef } from './translation';\n\n/**\n * @alpha\n * @deprecated Import from `@backstage/plugin-api-docs` instead.\n */\nexport const apiDocsTranslationRef = _apiDocsTranslationRef;\n"],"names":["_apiDocsTranslationRef"],"mappings":"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"}
@@ -43,7 +43,7 @@ function ConsumedApisCardLegacy(props) {
43
43
  variant,
44
44
  emptyContent: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
45
45
  /* @__PURE__ */ jsx(Typography, { variant: "body1", children: t("consumedApisCard.emptyContent.title", {
46
- entity: entity.kind.toLocaleLowerCase("en-US")
46
+ entity: entity.kind.toLowerCase()
47
47
  }) }),
48
48
  /* @__PURE__ */ jsx(Typography, { variant: "body2", children: /* @__PURE__ */ jsx(
49
49
  Link,
@@ -78,7 +78,7 @@ const ConsumedApisCard = (props) => {
78
78
  columnConfig,
79
79
  emptyState: {
80
80
  message: t("consumedApisCard.emptyContent.title", {
81
- entity: entity.kind.toLocaleLowerCase("en-US")
81
+ entity: entity.kind.toLowerCase()
82
82
  }),
83
83
  helpLink: "https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional"
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsumedApisCard.esm.js","sources":["../../../src/components/ApisCards/ConsumedApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_CONSUMES_API } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { getApiEntityColumns, getApiEntityColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface ConsumedApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link ConsumedApisCardProps} instead.\n * @public\n */\nexport interface ConsumedApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: ConsumedApisCardProps | ConsumedApisCardLegacyProps,\n): props is ConsumedApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction ConsumedApisCardLegacy(props: ConsumedApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const {\n variant = 'gridItem',\n title = t('consumedApisCard.title'),\n columns = getApiEntityColumns(t),\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_CONSUMES_API,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('consumedApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('consumedApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link\n to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional\"\n externalLinkIcon\n >\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const ConsumedApisCard = (\n props: ConsumedApisCardProps | ConsumedApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <ConsumedApisCardLegacy {...props} />;\n }\n\n const {\n title = t('consumedApisCard.title'),\n columnConfig = getApiEntityColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n relationType={RELATION_CONSUMES_API}\n columnConfig={columnConfig}\n emptyState={{\n message: t('consumedApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsumedApisCard.esm.js","sources":["../../../src/components/ApisCards/ConsumedApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_CONSUMES_API } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { getApiEntityColumns, getApiEntityColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface ConsumedApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link ConsumedApisCardProps} instead.\n * @public\n */\nexport interface ConsumedApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: ConsumedApisCardProps | ConsumedApisCardLegacyProps,\n): props is ConsumedApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction ConsumedApisCardLegacy(props: ConsumedApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const {\n variant = 'gridItem',\n title = t('consumedApisCard.title'),\n columns = getApiEntityColumns(t),\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_CONSUMES_API,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('consumedApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('consumedApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link\n to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional\"\n externalLinkIcon\n >\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const ConsumedApisCard = (\n props: ConsumedApisCardProps | ConsumedApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <ConsumedApisCardLegacy {...props} />;\n }\n\n const {\n title = t('consumedApisCard.title'),\n columnConfig = getApiEntityColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n relationType={RELATION_CONSUMES_API}\n columnConfig={columnConfig}\n emptyState={{\n message: t('consumedApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ function HasApisCardLegacy(props) {
54
54
  variant,
55
55
  emptyContent: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
56
56
  /* @__PURE__ */ jsx(Typography, { variant: "body1", children: t("hasApisCard.emptyContent.title", {
57
- entity: entity.kind.toLocaleLowerCase("en-US")
57
+ entity: entity.kind.toLowerCase()
58
58
  }) }),
59
59
  /* @__PURE__ */ jsx(Typography, { variant: "body2", children: /* @__PURE__ */ jsx(Link, { to: "https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api", children: t("apisCardHelpLinkTitle") }) })
60
60
  ] }),
@@ -83,7 +83,7 @@ const HasApisCard = (props) => {
83
83
  columnConfig,
84
84
  emptyState: {
85
85
  message: t("hasApisCard.emptyContent.title", {
86
- entity: entity.kind.toLocaleLowerCase("en-US")
86
+ entity: entity.kind.toLowerCase()
87
87
  }),
88
88
  helpLink: "https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api"
89
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HasApisCard.esm.js","sources":["../../../src/components/ApisCards/HasApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_HAS_PART } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { useMemo } from 'react';\nimport { createSpecApiTypeColumn, getHasApisColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface HasApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link HasApisCardProps} instead.\n * @public\n */\nexport interface HasApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: HasApisCardProps | HasApisCardLegacyProps,\n): props is HasApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction HasApisCardLegacy(props: HasApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const presetColumns: TableColumn<ApiEntity>[] = useMemo(() => {\n return [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(t),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n ];\n }, [t]);\n const {\n variant = 'gridItem',\n title = t('hasApisCard.title'),\n columns = presetColumns,\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_HAS_PART,\n kind: 'API',\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('hasApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('hasApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api\">\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const HasApisCard = (\n props: HasApisCardProps | HasApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <HasApisCardLegacy {...props} />;\n }\n\n const {\n title = t('hasApisCard.title'),\n columnConfig = getHasApisColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n entityKind=\"API\"\n relationType={RELATION_HAS_PART}\n columnConfig={columnConfig}\n emptyState={{\n message: t('hasApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasApisCard.esm.js","sources":["../../../src/components/ApisCards/HasApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_HAS_PART } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { useMemo } from 'react';\nimport { createSpecApiTypeColumn, getHasApisColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface HasApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link HasApisCardProps} instead.\n * @public\n */\nexport interface HasApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: HasApisCardProps | HasApisCardLegacyProps,\n): props is HasApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction HasApisCardLegacy(props: HasApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const presetColumns: TableColumn<ApiEntity>[] = useMemo(() => {\n return [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(t),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n ];\n }, [t]);\n const {\n variant = 'gridItem',\n title = t('hasApisCard.title'),\n columns = presetColumns,\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_HAS_PART,\n kind: 'API',\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('hasApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('hasApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api\">\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const HasApisCard = (\n props: HasApisCardProps | HasApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <HasApisCardLegacy {...props} />;\n }\n\n const {\n title = t('hasApisCard.title'),\n columnConfig = getHasApisColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n entityKind=\"API\"\n relationType={RELATION_HAS_PART}\n columnConfig={columnConfig}\n emptyState={{\n message: t('hasApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ function ProvidedApisCardLegacy(props) {
43
43
  variant,
44
44
  emptyContent: /* @__PURE__ */ jsxs("div", { style: { textAlign: "center" }, children: [
45
45
  /* @__PURE__ */ jsx(Typography, { variant: "body1", children: t("providedApisCard.emptyContent.title", {
46
- entity: entity.kind.toLocaleLowerCase("en-US")
46
+ entity: entity.kind.toLowerCase()
47
47
  }) }),
48
48
  /* @__PURE__ */ jsx(Typography, { variant: "body2", children: /* @__PURE__ */ jsx(
49
49
  Link,
@@ -78,7 +78,7 @@ const ProvidedApisCard = (props) => {
78
78
  columnConfig,
79
79
  emptyState: {
80
80
  message: t("providedApisCard.emptyContent.title", {
81
- entity: entity.kind.toLocaleLowerCase("en-US")
81
+ entity: entity.kind.toLowerCase()
82
82
  }),
83
83
  helpLink: "https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional"
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProvidedApisCard.esm.js","sources":["../../../src/components/ApisCards/ProvidedApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_PROVIDES_API } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { getApiEntityColumns, getApiEntityColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface ProvidedApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link ProvidedApisCardProps} instead.\n * @public\n */\nexport interface ProvidedApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: ProvidedApisCardProps | ProvidedApisCardLegacyProps,\n): props is ProvidedApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction ProvidedApisCardLegacy(props: ProvidedApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const {\n variant = 'gridItem',\n title = t('providedApisCard.title'),\n columns = getApiEntityColumns(t),\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_PROVIDES_API,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('providedApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('providedApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link\n to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional\"\n externalLinkIcon\n >\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const ProvidedApisCard = (\n props: ProvidedApisCardProps | ProvidedApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <ProvidedApisCardLegacy {...props} />;\n }\n\n const {\n title = t('providedApisCard.title'),\n columnConfig = getApiEntityColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n relationType={RELATION_PROVIDES_API}\n columnConfig={columnConfig}\n emptyState={{\n message: t('providedApisCard.emptyContent.title', {\n entity: entity.kind.toLocaleLowerCase('en-US'),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProvidedApisCard.esm.js","sources":["../../../src/components/ApisCards/ProvidedApisCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity, RELATION_PROVIDES_API } from '@backstage/catalog-model';\nimport Typography from '@material-ui/core/Typography';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityRelationCard,\n EntityColumnConfig,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { getApiEntityColumns, getApiEntityColumnConfig } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n TableOptions,\n WarningPanel,\n} from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\n/** @public */\nexport interface ProvidedApisCardProps {\n title?: string;\n columnConfig?: EntityColumnConfig[];\n}\n\n/**\n * Props for the legacy MUI-based rendering.\n * @deprecated Use {@link ProvidedApisCardProps} instead.\n * @public\n */\nexport interface ProvidedApisCardLegacyProps {\n title?: string;\n /** @deprecated Use `columnConfig` instead. */\n variant?: InfoCardVariants;\n /** @deprecated Use `columnConfig` instead. */\n columns?: TableColumn<ApiEntity>[];\n /** @deprecated Use `columnConfig` instead. */\n tableOptions?: TableOptions;\n}\n\nfunction isLegacyProps(\n props: ProvidedApisCardProps | ProvidedApisCardLegacyProps,\n): props is ProvidedApisCardLegacyProps {\n return 'variant' in props || 'columns' in props || 'tableOptions' in props;\n}\n\nfunction ProvidedApisCardLegacy(props: ProvidedApisCardLegacyProps) {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const {\n variant = 'gridItem',\n title = t('providedApisCard.title'),\n columns = getApiEntityColumns(t),\n tableOptions = {},\n } = props;\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_PROVIDES_API,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title={title}>\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title={title}>\n <WarningPanel\n severity=\"error\"\n title={t('providedApisCard.error.title')}\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title={title}\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n {t('providedApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n })}\n </Typography>\n <Typography variant=\"body2\">\n <Link\n to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional\"\n externalLinkIcon\n >\n {t('apisCardHelpLinkTitle')}\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n tableOptions={tableOptions}\n entities={entities as ApiEntity[]}\n />\n );\n}\n\n/**\n * @public\n */\nexport const ProvidedApisCard = (\n props: ProvidedApisCardProps | ProvidedApisCardLegacyProps,\n) => {\n const { t } = useTranslationRef(apiDocsTranslationRef);\n const { entity } = useEntity();\n\n if (isLegacyProps(props)) {\n return <ProvidedApisCardLegacy {...props} />;\n }\n\n const {\n title = t('providedApisCard.title'),\n columnConfig = getApiEntityColumnConfig(t),\n } = props;\n\n return (\n <EntityRelationCard\n title={title}\n relationType={RELATION_PROVIDES_API}\n columnConfig={columnConfig}\n emptyState={{\n message: t('providedApisCard.emptyContent.title', {\n entity: entity.kind.toLowerCase(),\n }),\n helpLink:\n 'https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional',\n }}\n />\n );\n};\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const LazyOpenApiDefinition = lazy(
9
9
  );
10
10
  const OpenApiDefinitionWidget = (props) => {
11
11
  const validSubmitMethods = props.supportedSubmitMethods?.map(
12
- (method) => method.toLocaleLowerCase()
12
+ (method) => method.toLowerCase()
13
13
  );
14
14
  return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Progress, {}), children: /* @__PURE__ */ jsx(
15
15
  LazyOpenApiDefinition,
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiDefinitionWidget.esm.js","sources":["../../../src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Progress } from '@backstage/core-components';\nimport { lazy, Suspense } from 'react';\n\n// The swagger-ui component and related CSS has a significant size, only load it\n// if the element is actually used.\nconst LazyOpenApiDefinition = lazy(() =>\n import('./OpenApiDefinition').then(m => ({\n default: m.OpenApiDefinition,\n })),\n);\n\n/** @public */\nexport type OpenApiDefinitionWidgetProps = {\n definition: string;\n requestInterceptor?: (req: any) => any | Promise<any>;\n supportedSubmitMethods?: string[];\n};\n\n/** @public */\nexport const OpenApiDefinitionWidget = (\n props: OpenApiDefinitionWidgetProps,\n) => {\n const validSubmitMethods = props.supportedSubmitMethods?.map(method =>\n method.toLocaleLowerCase(),\n );\n return (\n <Suspense fallback={<Progress />}>\n <LazyOpenApiDefinition\n {...props}\n supportedSubmitMethods={validSubmitMethods as any}\n />\n </Suspense>\n );\n};\n"],"names":[],"mappings":";;;;AAqBA,MAAM,qBAAA,GAAwB,IAAA;AAAA,EAAK,MACjC,OAAO,4BAAqB,CAAA,CAAE,KAAK,CAAA,CAAA,MAAM;AAAA,IACvC,SAAS,CAAA,CAAE;AAAA,GACb,CAAE;AACJ,CAAA;AAUO,MAAM,uBAAA,GAA0B,CACrC,KAAA,KACG;AACH,EAAA,MAAM,kBAAA,GAAqB,MAAM,sBAAA,EAAwB,GAAA;AAAA,IAAI,CAAA,MAAA,KAC3D,OAAO,iBAAA;AAAkB,GAC3B;AACA,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EAAS,QAAA,kBAAU,GAAA,CAAC,YAAS,CAAA,EAC5B,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,sBAAA,EAAwB;AAAA;AAAA,GAC1B,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"OpenApiDefinitionWidget.esm.js","sources":["../../../src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Progress } from '@backstage/core-components';\nimport { lazy, Suspense } from 'react';\n\n// The swagger-ui component and related CSS has a significant size, only load it\n// if the element is actually used.\nconst LazyOpenApiDefinition = lazy(() =>\n import('./OpenApiDefinition').then(m => ({\n default: m.OpenApiDefinition,\n })),\n);\n\n/** @public */\nexport type OpenApiDefinitionWidgetProps = {\n definition: string;\n requestInterceptor?: (req: any) => any | Promise<any>;\n supportedSubmitMethods?: string[];\n};\n\n/** @public */\nexport const OpenApiDefinitionWidget = (\n props: OpenApiDefinitionWidgetProps,\n) => {\n const validSubmitMethods = props.supportedSubmitMethods?.map(method =>\n method.toLowerCase(),\n );\n return (\n <Suspense fallback={<Progress />}>\n <LazyOpenApiDefinition\n {...props}\n supportedSubmitMethods={validSubmitMethods as any}\n />\n </Suspense>\n );\n};\n"],"names":[],"mappings":";;;;AAqBA,MAAM,qBAAA,GAAwB,IAAA;AAAA,EAAK,MACjC,OAAO,4BAAqB,CAAA,CAAE,KAAK,CAAA,CAAA,MAAM;AAAA,IACvC,SAAS,CAAA,CAAE;AAAA,GACb,CAAE;AACJ,CAAA;AAUO,MAAM,uBAAA,GAA0B,CACrC,KAAA,KACG;AACH,EAAA,MAAM,kBAAA,GAAqB,MAAM,sBAAA,EAAwB,GAAA;AAAA,IAAI,CAAA,MAAA,KAC3D,OAAO,WAAA;AAAY,GACrB;AACA,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EAAS,QAAA,kBAAU,GAAA,CAAC,YAAS,CAAA,EAC5B,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,sBAAA,EAAwB;AAAA;AAAA,GAC1B,EACF,CAAA;AAEJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-api-docs";
2
- var version = "0.14.5-next.1";
2
+ var version = "0.14.5";
3
3
  var description = "A Backstage plugin that helps represent API entities in the frontend";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-api-docs",
3
- "version": "0.14.5-next.1",
3
+ "version": "0.14.5",
4
4
  "description": "A Backstage plugin that helps represent API entities in the frontend",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -66,15 +66,15 @@
66
66
  },
67
67
  "dependencies": {
68
68
  "@asyncapi/react-component": "^2.3.3",
69
- "@backstage/catalog-model": "1.10.0",
70
- "@backstage/core-components": "0.18.14-next.1",
71
- "@backstage/core-plugin-api": "1.12.10-next.0",
72
- "@backstage/frontend-plugin-api": "0.18.1-next.0",
73
- "@backstage/plugin-catalog": "2.0.9-next.1",
74
- "@backstage/plugin-catalog-common": "1.1.10",
75
- "@backstage/plugin-catalog-react": "3.2.3-next.1",
76
- "@backstage/plugin-permission-react": "0.5.5-next.0",
77
- "@backstage/ui": "0.18.0-next.1",
69
+ "@backstage/catalog-model": "^1.10.1",
70
+ "@backstage/core-components": "^0.18.14",
71
+ "@backstage/core-plugin-api": "^1.12.10",
72
+ "@backstage/frontend-plugin-api": "^0.18.1",
73
+ "@backstage/plugin-catalog": "^2.0.9",
74
+ "@backstage/plugin-catalog-common": "^1.2.0",
75
+ "@backstage/plugin-catalog-react": "^3.2.3",
76
+ "@backstage/plugin-permission-react": "^0.5.5",
77
+ "@backstage/ui": "^0.18.0",
78
78
  "@graphiql/react": "0.29.0",
79
79
  "@material-ui/core": "^4.12.2",
80
80
  "@material-ui/icons": "^4.9.1",
@@ -87,11 +87,11 @@
87
87
  "zod": "^4.0.0"
88
88
  },
89
89
  "devDependencies": {
90
- "@backstage/cli": "0.36.6-next.0",
91
- "@backstage/core-app-api": "1.20.5-next.1",
92
- "@backstage/dev-utils": "1.1.27-next.1",
93
- "@backstage/frontend-test-utils": "0.6.4-next.1",
94
- "@backstage/test-utils": "1.7.22-next.1",
90
+ "@backstage/cli": "^0.36.6",
91
+ "@backstage/core-app-api": "^1.20.5",
92
+ "@backstage/dev-utils": "^1.1.27",
93
+ "@backstage/frontend-test-utils": "^0.6.4",
94
+ "@backstage/test-utils": "^1.7.22",
95
95
  "@testing-library/dom": "^10.0.0",
96
96
  "@testing-library/jest-dom": "^6.0.0",
97
97
  "@testing-library/react": "^16.0.0",