@backstage/plugin-api-docs 0.6.17 → 0.6.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/routes.ts","../src/components/ApiExplorerPage/DefaultApiExplorerPage.tsx","../src/components/ApiExplorerPage/ApiExplorerPage.tsx","../src/config.ts","../src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.tsx","../src/components/ApiDefinitionCard/ApiDefinitionCard.tsx","../src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.tsx","../src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.tsx","../src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.tsx","../src/components/ApiDefinitionCard/ApiDefinitionWidget.tsx","../src/components/ApiDefinitionCard/ApiTypeTitle.tsx","../src/components/ApisCards/presets.tsx","../src/components/ApisCards/ConsumedApisCard.tsx","../src/components/ApisCards/HasApisCard.tsx","../src/components/ApisCards/ProvidedApisCard.tsx","../src/components/ComponentsCards/ConsumingComponentsCard.tsx","../src/components/ComponentsCards/ProvidingComponentsCard.tsx","../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 {\n createExternalRouteRef,\n createRouteRef,\n} from '@backstage/core-plugin-api';\n\nexport const rootRoute = createRouteRef({\n id: 'api-docs',\n});\n\nexport const createComponentRouteRef = createExternalRouteRef({\n id: 'create-component',\n optional: true,\n});\n","/*\n * Copyright 2021 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 Content,\n ContentHeader,\n CreateButton,\n PageWithHeader,\n SupportButton,\n TableColumn,\n TableProps,\n} from '@backstage/core-components';\nimport { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport {\n CatalogTable,\n CatalogTableRow,\n FilteredEntityLayout,\n EntityListContainer,\n FilterContainer,\n} from '@backstage/plugin-catalog';\nimport {\n EntityKindPicker,\n EntityLifecyclePicker,\n EntityListProvider,\n EntityOwnerPicker,\n EntityTagPicker,\n EntityTypePicker,\n UserListFilterKind,\n UserListPicker,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { createComponentRouteRef } from '../../routes';\n\nconst defaultColumns: TableColumn<CatalogTableRow>[] = [\n CatalogTable.columns.createNameColumn({ defaultKind: 'API' }),\n CatalogTable.columns.createSystemColumn(),\n CatalogTable.columns.createOwnerColumn(),\n CatalogTable.columns.createSpecTypeColumn(),\n CatalogTable.columns.createSpecLifecycleColumn(),\n CatalogTable.columns.createMetadataDescriptionColumn(),\n CatalogTable.columns.createTagsColumn(),\n];\n\n/**\n * DefaultApiExplorerPageProps\n * @public\n */\nexport type DefaultApiExplorerPageProps = {\n initiallySelectedFilter?: UserListFilterKind;\n columns?: TableColumn<CatalogTableRow>[];\n actions?: TableProps<CatalogTableRow>['actions'];\n};\n\n/**\n * DefaultApiExplorerPage\n * @public\n */\nexport const DefaultApiExplorerPage = ({\n initiallySelectedFilter = 'all',\n columns,\n actions,\n}: DefaultApiExplorerPageProps) => {\n const configApi = useApi(configApiRef);\n const generatedSubtitle = `${\n configApi.getOptionalString('organization.name') ?? 'Backstage'\n } API Explorer`;\n const createComponentLink = useRouteRef(createComponentRouteRef);\n\n return (\n <PageWithHeader\n themeId=\"apis\"\n title=\"APIs\"\n subtitle={generatedSubtitle}\n pageTitleOverride=\"APIs\"\n >\n <Content>\n <ContentHeader title=\"\">\n <CreateButton\n title=\"Register Existing API\"\n to={createComponentLink?.()}\n />\n <SupportButton>All your APIs</SupportButton>\n </ContentHeader>\n <EntityListProvider>\n <FilteredEntityLayout>\n <FilterContainer>\n <EntityKindPicker initialFilter=\"api\" hidden />\n <EntityTypePicker />\n <UserListPicker initialFilter={initiallySelectedFilter} />\n <EntityOwnerPicker />\n <EntityLifecyclePicker />\n <EntityTagPicker />\n </FilterContainer>\n <EntityListContainer>\n <CatalogTable\n columns={columns || defaultColumns}\n actions={actions}\n />\n </EntityListContainer>\n </FilteredEntityLayout>\n </EntityListProvider>\n </Content>\n </PageWithHeader>\n );\n};\n","/*\n * Copyright 2021 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 React from 'react';\nimport { useOutlet } from 'react-router';\nimport {\n DefaultApiExplorerPage,\n DefaultApiExplorerPageProps,\n} from './DefaultApiExplorerPage';\n\n/**\n * ApiExplorerPage\n * @public\n */\nexport const ApiExplorerPage = (props: DefaultApiExplorerPageProps) => {\n const outlet = useOutlet();\n\n return outlet || <DefaultApiExplorerPage {...props} />;\n};\n","/*\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 } from '@backstage/catalog-model';\nimport { ApiDefinitionWidget } from './components/ApiDefinitionCard/ApiDefinitionWidget';\nimport { createApiRef } from '@backstage/core-plugin-api';\n\nexport const apiDocsConfigRef = createApiRef<ApiDocsConfig>({\n id: 'plugin.api-docs.config',\n});\n\nexport interface ApiDocsConfig {\n getApiDefinitionWidget: (\n apiEntity: ApiEntity,\n ) => ApiDefinitionWidget | undefined;\n}\n","/*\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 React from 'react';\nimport { CodeSnippet } from '@backstage/core-components';\n\nexport type PlainApiDefinitionWidgetProps = {\n definition: any;\n language: string;\n};\n\nexport const PlainApiDefinitionWidget = (\n props: PlainApiDefinitionWidgetProps,\n) => {\n return (\n <CodeSnippet\n text={props.definition}\n language={props.language}\n showCopyCodeButton\n />\n );\n};\n","/*\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 } from '@backstage/catalog-model';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { Alert } from '@material-ui/lab';\nimport React from 'react';\nimport { apiDocsConfigRef } from '../../config';\nimport { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget';\n\nimport { CardTab, TabbedCard } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\ntype Props = {\n /** @deprecated The entity is now grabbed from context instead */\n apiEntity?: ApiEntity;\n};\n\nexport const ApiDefinitionCard = (_: Props) => {\n const { entity } = useEntity<ApiEntity>();\n const config = useApi(apiDocsConfigRef);\n const { getApiDefinitionWidget } = config;\n\n if (!entity) {\n return <Alert severity=\"error\">Could not fetch the API</Alert>;\n }\n\n const definitionWidget = getApiDefinitionWidget(entity);\n const entityTitle = entity.metadata.title ?? entity.metadata.name;\n\n if (definitionWidget) {\n return (\n <TabbedCard title={entityTitle}>\n <CardTab label={definitionWidget.title} key=\"widget\">\n {definitionWidget.component(entity.spec.definition)}\n </CardTab>\n <CardTab label=\"Raw\" key=\"raw\">\n <PlainApiDefinitionWidget\n definition={entity.spec.definition}\n language={definitionWidget.rawLanguage || entity.spec.type}\n />\n </CardTab>\n </TabbedCard>\n );\n }\n\n return (\n <TabbedCard\n title={entityTitle}\n children={[\n // Has to be an array, otherwise typescript doesn't like that this has only a single child\n <CardTab label={entity.spec.type} key=\"raw\">\n <PlainApiDefinitionWidget\n definition={entity.spec.definition}\n language={entity.spec.type}\n />\n </CardTab>,\n ]}\n />\n );\n};\n","/*\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 React, { Suspense } from 'react';\n\n// The asyncapi component and related CSS has a significant size, only load it\n// if the element is actually used.\nconst LazyAsyncApiDefinition = React.lazy(() =>\n import('./AsyncApiDefinition').then(m => ({\n default: m.AsyncApiDefinition,\n })),\n);\n\nexport type AsyncApiDefinitionWidgetProps = {\n definition: string;\n};\n\nexport const AsyncApiDefinitionWidget = (\n props: AsyncApiDefinitionWidgetProps,\n) => {\n return (\n <Suspense fallback={<Progress />}>\n <LazyAsyncApiDefinition {...props} />\n </Suspense>\n );\n};\n","/*\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 React, { Suspense } from 'react';\n\n// The graphql component, graphql and related CSS has a significant size, only\n// load it if the element is actually used.\nconst LazyGraphQlDefinition = React.lazy(() =>\n import('./GraphQlDefinition').then(m => ({\n default: m.GraphQlDefinition,\n })),\n);\n\nexport type GraphQlDefinitionWidgetProps = {\n definition: string;\n};\n\nexport const GraphQlDefinitionWidget = (\n props: GraphQlDefinitionWidgetProps,\n) => {\n return (\n <Suspense fallback={<Progress />}>\n <LazyGraphQlDefinition {...props} />\n </Suspense>\n );\n};\n","/*\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 React, { 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 = React.lazy(() =>\n import('./OpenApiDefinition').then(m => ({\n default: m.OpenApiDefinition,\n })),\n);\n\nexport type OpenApiDefinitionWidgetProps = {\n definition: string;\n};\n\nexport const OpenApiDefinitionWidget = (\n props: OpenApiDefinitionWidgetProps,\n) => {\n return (\n <Suspense fallback={<Progress />}>\n <LazyOpenApiDefinition {...props} />\n </Suspense>\n );\n};\n","/*\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 */\nimport React from 'react';\nimport { AsyncApiDefinitionWidget } from '../AsyncApiDefinitionWidget';\nimport { GraphQlDefinitionWidget } from '../GraphQlDefinitionWidget';\nimport { OpenApiDefinitionWidget } from '../OpenApiDefinitionWidget';\n\nexport type ApiDefinitionWidget = {\n type: string;\n title: string;\n component: (definition: string) => React.ReactElement;\n rawLanguage?: string;\n};\n\nexport function defaultDefinitionWidgets(): ApiDefinitionWidget[] {\n return [\n {\n type: 'openapi',\n title: 'OpenAPI',\n rawLanguage: 'yaml',\n component: definition => (\n <OpenApiDefinitionWidget definition={definition} />\n ),\n },\n {\n type: 'asyncapi',\n title: 'AsyncAPI',\n rawLanguage: 'yaml',\n component: definition => (\n <AsyncApiDefinitionWidget definition={definition} />\n ),\n },\n {\n type: 'graphql',\n title: 'GraphQL',\n rawLanguage: 'graphql',\n component: definition => (\n <GraphQlDefinitionWidget definition={definition} />\n ),\n },\n ];\n}\n","/*\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 } from '@backstage/catalog-model';\nimport React from 'react';\nimport { apiDocsConfigRef } from '../../config';\nimport { useApi } from '@backstage/core-plugin-api';\n\nexport const ApiTypeTitle = ({ apiEntity }: { apiEntity: ApiEntity }) => {\n const config = useApi(apiDocsConfigRef);\n const definition = config.getApiDefinitionWidget(apiEntity);\n const type = definition ? definition.title : apiEntity.spec.type;\n\n return <span>{type}</span>;\n};\n","/*\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 } from '@backstage/catalog-model';\nimport { EntityTable } from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { ApiTypeTitle } from '../ApiDefinitionCard';\nimport { TableColumn } from '@backstage/core-components';\n\nexport function createSpecApiTypeColumn(): TableColumn<ApiEntity> {\n return {\n title: 'Type',\n field: 'spec.type',\n render: entity => <ApiTypeTitle apiEntity={entity} />,\n };\n}\n\n// TODO: This could be moved to plugin-catalog-react if we wouldn't have a\n// special createSpecApiTypeColumn. But this is required to use ApiTypeTitle to\n// resolve the display name of an entity. Is the display name really worth it?\n\nexport const apiEntityColumns: TableColumn<ApiEntity>[] = [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createSystemColumn(),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n];\n","/*\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 {\n ApiEntity,\n Entity,\n RELATION_CONSUMES_API,\n} from '@backstage/catalog-model';\nimport { Typography } from '@material-ui/core';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { apiEntityColumns } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n /** @deprecated The entity is now grabbed from context instead */\n entity?: Entity;\n variant?: 'gridItem';\n};\n\nexport const ConsumedApisCard = ({ variant = 'gridItem' }: 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=\"Consumed APIs\">\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title=\"Consumed APIs\">\n <WarningPanel\n severity=\"error\"\n title=\"Could not load APIs\"\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title=\"Consumed APIs\"\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n This {entity.kind.toLocaleLowerCase('en-US')} does not consume any\n APIs.\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional\">\n Learn how to change this.\n </Link>\n </Typography>\n </div>\n }\n columns={apiEntityColumns}\n entities={entities as ApiEntity[]}\n />\n );\n};\n","/*\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';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { createSpecApiTypeColumn } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n Link,\n Progress,\n TableColumn,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: 'gridItem';\n};\n\nconst columns: TableColumn<ApiEntity>[] = [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n];\n\nexport const HasApisCard = ({ variant = 'gridItem' }: 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=\"APIs\">\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title=\"APIs\">\n <WarningPanel\n severity=\"error\"\n title=\"Could not load APIs\"\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title=\"APIs\"\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n This {entity.kind.toLocaleLowerCase('en-US')} does not contain any\n APIs.\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api\">\n Learn how to change this.\n </Link>\n </Typography>\n </div>\n }\n columns={columns}\n entities={entities as ApiEntity[]}\n />\n );\n};\n","/*\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 {\n ApiEntity,\n Entity,\n RELATION_PROVIDES_API,\n} from '@backstage/catalog-model';\nimport { Typography } from '@material-ui/core';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { apiEntityColumns } from './presets';\nimport {\n CodeSnippet,\n InfoCard,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n /** @deprecated The entity is now grabbed from context instead */\n entity?: Entity;\n variant?: 'gridItem';\n};\n\nexport const ProvidedApisCard = ({ variant = 'gridItem' }: 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=\"Provided APIs\">\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title=\"Provided APIs\">\n <WarningPanel\n severity=\"error\"\n title=\"Could not load APIs\"\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title=\"Provided APIs\"\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n This {entity.kind.toLocaleLowerCase('en-US')} does not provide any\n APIs.\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional\">\n Learn how to change this.\n </Link>\n </Typography>\n </div>\n }\n columns={apiEntityColumns}\n entities={entities as ApiEntity[]}\n />\n );\n};\n","/*\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 {\n ComponentEntity,\n Entity,\n RELATION_API_CONSUMED_BY,\n} from '@backstage/catalog-model';\nimport { Typography } from '@material-ui/core';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport {\n CodeSnippet,\n InfoCard,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n /** @deprecated The entity is now grabbed from context instead */\n entity?: Entity;\n variant?: 'gridItem';\n};\n\nexport const ConsumingComponentsCard = ({ variant = 'gridItem' }: Props) => {\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_API_CONSUMED_BY,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title=\"Consumers\">\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title=\"Consumers\">\n <WarningPanel\n severity=\"error\"\n title=\"Could not load components\"\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title=\"Consumers\"\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n No component consumes this API.\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional\">\n Learn how to change this.\n </Link>\n </Typography>\n </div>\n }\n columns={EntityTable.componentEntityColumns}\n entities={entities as ComponentEntity[]}\n />\n );\n};\n","/*\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 {\n ComponentEntity,\n Entity,\n RELATION_API_PROVIDED_BY,\n} from '@backstage/catalog-model';\nimport { Typography } from '@material-ui/core';\nimport {\n EntityTable,\n useEntity,\n useRelatedEntities,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport {\n CodeSnippet,\n InfoCard,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n /** @deprecated The entity is now grabbed from context instead */\n entity?: Entity;\n variant?: 'gridItem';\n};\n\nexport const ProvidingComponentsCard = ({ variant = 'gridItem' }: Props) => {\n const { entity } = useEntity();\n const { entities, loading, error } = useRelatedEntities(entity, {\n type: RELATION_API_PROVIDED_BY,\n });\n\n if (loading) {\n return (\n <InfoCard variant={variant} title=\"Providers\">\n <Progress />\n </InfoCard>\n );\n }\n\n if (error || !entities) {\n return (\n <InfoCard variant={variant} title=\"Providers\">\n <WarningPanel\n severity=\"error\"\n title=\"Could not load components\"\n message={<CodeSnippet text={`${error}`} language=\"text\" />}\n />\n </InfoCard>\n );\n }\n\n return (\n <EntityTable\n title=\"Providers\"\n variant={variant}\n emptyContent={\n <div style={{ textAlign: 'center' }}>\n <Typography variant=\"body1\">\n No component provides this API.\n </Typography>\n <Typography variant=\"body2\">\n <Link to=\"https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional\">\n Learn how to change this.\n </Link>\n </Typography>\n </div>\n }\n columns={EntityTable.componentEntityColumns}\n entities={entities as ComponentEntity[]}\n />\n );\n};\n","/*\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 } from '@backstage/catalog-model';\nimport { defaultDefinitionWidgets } from './components/ApiDefinitionCard';\nimport { apiDocsConfigRef } from './config';\nimport { createComponentRouteRef, rootRoute } from './routes';\nimport {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\n\nexport const apiDocsPlugin = createPlugin({\n id: 'api-docs',\n routes: {\n root: rootRoute,\n },\n apis: [\n createApiFactory({\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 externalRoutes: {\n createComponent: createComponentRouteRef,\n },\n});\n\nexport const ApiExplorerPage = apiDocsPlugin.provide(\n createRoutableExtension({\n name: 'ApiExplorerPage',\n component: () =>\n import('./components/ApiExplorerPage').then(m => m.ApiExplorerIndexPage),\n mountPoint: rootRoute,\n }),\n);\n\nexport const EntityApiDefinitionCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityApiDefinitionCard',\n component: {\n lazy: () =>\n import('./components/ApiDefinitionCard').then(m => m.ApiDefinitionCard),\n },\n }),\n);\n\nexport const EntityConsumedApisCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityConsumedApisCard',\n component: {\n lazy: () =>\n import('./components/ApisCards').then(m => m.ConsumedApisCard),\n },\n }),\n);\n\nexport const EntityConsumingComponentsCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityConsumingComponentsCard',\n component: {\n lazy: () =>\n import('./components/ComponentsCards').then(\n m => m.ConsumingComponentsCard,\n ),\n },\n }),\n);\n\nexport const EntityProvidedApisCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityProvidedApisCard',\n component: {\n lazy: () =>\n import('./components/ApisCards').then(m => m.ProvidedApisCard),\n },\n }),\n);\n\nexport const EntityProvidingComponentsCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityProvidingComponentsCard',\n component: {\n lazy: () =>\n import('./components/ComponentsCards').then(\n m => m.ProvidingComponentsCard,\n ),\n },\n }),\n);\n\nexport const EntityHasApisCard = apiDocsPlugin.provide(\n createComponentExtension({\n name: 'EntityHasApisCard',\n component: {\n lazy: () => import('./components/ApisCards').then(m => m.HasApisCard),\n },\n }),\n);\n"],"names":["ApiExplorerPage"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@backstage/plugin-api-docs",
3
3
  "description": "A Backstage plugin that helps represent API entities in the frontend",
4
- "version": "0.6.17",
4
+ "version": "0.6.21",
5
5
  "main": "dist/index.esm.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "Apache-2.0",
@@ -32,31 +32,32 @@
32
32
  "dependencies": {
33
33
  "@asyncapi/react-component": "^1.0.0-next.25",
34
34
  "@backstage/catalog-model": "^0.9.7",
35
- "@backstage/core-components": "^0.7.6",
36
- "@backstage/core-plugin-api": "^0.2.2",
37
- "@backstage/plugin-catalog": "^0.7.3",
38
- "@backstage/plugin-catalog-react": "^0.6.4",
35
+ "@backstage/core-components": "^0.8.3",
36
+ "@backstage/core-plugin-api": "^0.4.1",
37
+ "@backstage/plugin-catalog": "^0.7.7",
38
+ "@backstage/plugin-catalog-react": "^0.6.10",
39
39
  "@backstage/theme": "^0.2.14",
40
40
  "@material-ui/core": "^4.12.2",
41
41
  "@material-ui/icons": "^4.9.1",
42
42
  "@material-ui/lab": "4.0.0-alpha.57",
43
- "@types/react": "*",
44
43
  "graphiql": "^1.5.12",
45
44
  "graphql": "^16.0.0",
46
45
  "isomorphic-form-data": "^2.0.0",
47
- "react": "^16.13.1",
48
- "react-dom": "^16.13.1",
49
46
  "react-router": "6.0.0-beta.0",
50
47
  "react-router-dom": "6.0.0-beta.0",
51
48
  "react-use": "^17.2.4",
52
49
  "swagger-client": "3.16.1",
53
50
  "swagger-ui-react": "^4.0.0-rc.3"
54
51
  },
52
+ "peerDependencies": {
53
+ "@types/react": "^16.13.1 || ^17.0.0",
54
+ "react": "^16.13.1 || ^17.0.0"
55
+ },
55
56
  "devDependencies": {
56
- "@backstage/cli": "^0.10.0",
57
- "@backstage/core-app-api": "^0.1.24",
58
- "@backstage/dev-utils": "^0.2.13",
59
- "@backstage/test-utils": "^0.1.23",
57
+ "@backstage/cli": "^0.10.5",
58
+ "@backstage/core-app-api": "^0.3.1",
59
+ "@backstage/dev-utils": "^0.2.16",
60
+ "@backstage/test-utils": "^0.2.1",
60
61
  "@testing-library/jest-dom": "^5.10.1",
61
62
  "@testing-library/react": "^11.2.5",
62
63
  "@testing-library/user-event": "^13.1.8",
@@ -69,5 +70,5 @@
69
70
  "files": [
70
71
  "dist"
71
72
  ],
72
- "gitHead": "c4f1509370697427f3035eb05440a99cc09daee3"
73
+ "gitHead": "ffdb98aa2973366d48ff1774a7f892bc0c926e7e"
73
74
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-00ee1634.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,434 +0,0 @@
1
- import { useEntity, EntityTable, useRelatedEntities } from '@backstage/plugin-catalog-react';
2
- import { Alert } from '@material-ui/lab';
3
- import React, { Suspense } from 'react';
4
- import { createApiRef, useApi, createRouteRef, createExternalRouteRef, createPlugin, createApiFactory, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
5
- import { CodeSnippet, TabbedCard, CardTab, Progress, InfoCard, WarningPanel, Link } from '@backstage/core-components';
6
- import { RELATION_CONSUMES_API, RELATION_HAS_PART, RELATION_PROVIDES_API, RELATION_API_CONSUMED_BY, RELATION_API_PROVIDED_BY } from '@backstage/catalog-model';
7
- import { Typography } from '@material-ui/core';
8
-
9
- const apiDocsConfigRef = createApiRef({
10
- id: "plugin.api-docs.config",
11
- description: "Used to configure api-docs widgets"
12
- });
13
-
14
- const PlainApiDefinitionWidget = (props) => {
15
- return /* @__PURE__ */ React.createElement(CodeSnippet, {
16
- text: props.definition,
17
- language: props.language,
18
- showCopyCodeButton: true
19
- });
20
- };
21
-
22
- const ApiDefinitionCard = (_) => {
23
- const { entity } = useEntity();
24
- const config = useApi(apiDocsConfigRef);
25
- const { getApiDefinitionWidget } = config;
26
- if (!entity) {
27
- return /* @__PURE__ */ React.createElement(Alert, {
28
- severity: "error"
29
- }, "Could not fetch the API");
30
- }
31
- const definitionWidget = getApiDefinitionWidget(entity);
32
- if (definitionWidget) {
33
- return /* @__PURE__ */ React.createElement(TabbedCard, {
34
- title: entity.metadata.name
35
- }, /* @__PURE__ */ React.createElement(CardTab, {
36
- label: definitionWidget.title,
37
- key: "widget"
38
- }, definitionWidget.component(entity.spec.definition)), /* @__PURE__ */ React.createElement(CardTab, {
39
- label: "Raw",
40
- key: "raw"
41
- }, /* @__PURE__ */ React.createElement(PlainApiDefinitionWidget, {
42
- definition: entity.spec.definition,
43
- language: definitionWidget.rawLanguage || entity.spec.type
44
- })));
45
- }
46
- return /* @__PURE__ */ React.createElement(TabbedCard, {
47
- title: entity.metadata.name,
48
- children: [
49
- /* @__PURE__ */ React.createElement(CardTab, {
50
- label: entity.spec.type,
51
- key: "raw"
52
- }, /* @__PURE__ */ React.createElement(PlainApiDefinitionWidget, {
53
- definition: entity.spec.definition,
54
- language: entity.spec.type
55
- }))
56
- ]
57
- });
58
- };
59
-
60
- const LazyAsyncApiDefinition = React.lazy(() => import('./AsyncApiDefinition-c39ae15d.esm.js').then((m) => ({
61
- default: m.AsyncApiDefinition
62
- })));
63
- const AsyncApiDefinitionWidget = (props) => {
64
- return /* @__PURE__ */ React.createElement(Suspense, {
65
- fallback: /* @__PURE__ */ React.createElement(Progress, null)
66
- }, /* @__PURE__ */ React.createElement(LazyAsyncApiDefinition, {
67
- ...props
68
- }));
69
- };
70
-
71
- const LazyGraphQlDefinition = React.lazy(() => import('./GraphQlDefinition-fa85d425.esm.js').then((m) => ({
72
- default: m.GraphQlDefinition
73
- })));
74
- const GraphQlDefinitionWidget = (props) => {
75
- return /* @__PURE__ */ React.createElement(Suspense, {
76
- fallback: /* @__PURE__ */ React.createElement(Progress, null)
77
- }, /* @__PURE__ */ React.createElement(LazyGraphQlDefinition, {
78
- ...props
79
- }));
80
- };
81
-
82
- const LazyOpenApiDefinition = React.lazy(() => import('./OpenApiDefinition-48ae3040.esm.js').then((m) => ({
83
- default: m.OpenApiDefinition
84
- })));
85
- const OpenApiDefinitionWidget = (props) => {
86
- return /* @__PURE__ */ React.createElement(Suspense, {
87
- fallback: /* @__PURE__ */ React.createElement(Progress, null)
88
- }, /* @__PURE__ */ React.createElement(LazyOpenApiDefinition, {
89
- ...props
90
- }));
91
- };
92
-
93
- function defaultDefinitionWidgets() {
94
- return [
95
- {
96
- type: "openapi",
97
- title: "OpenAPI",
98
- rawLanguage: "yaml",
99
- component: (definition) => /* @__PURE__ */ React.createElement(OpenApiDefinitionWidget, {
100
- definition
101
- })
102
- },
103
- {
104
- type: "asyncapi",
105
- title: "AsyncAPI",
106
- rawLanguage: "yaml",
107
- component: (definition) => /* @__PURE__ */ React.createElement(AsyncApiDefinitionWidget, {
108
- definition
109
- })
110
- },
111
- {
112
- type: "graphql",
113
- title: "GraphQL",
114
- rawLanguage: "graphql",
115
- component: (definition) => /* @__PURE__ */ React.createElement(GraphQlDefinitionWidget, {
116
- definition
117
- })
118
- }
119
- ];
120
- }
121
-
122
- const ApiTypeTitle = ({ apiEntity }) => {
123
- const config = useApi(apiDocsConfigRef);
124
- const definition = config.getApiDefinitionWidget(apiEntity);
125
- const type = definition ? definition.title : apiEntity.spec.type;
126
- return /* @__PURE__ */ React.createElement("span", null, type);
127
- };
128
-
129
- function createSpecApiTypeColumn() {
130
- return {
131
- title: "Type",
132
- field: "spec.type",
133
- render: (entity) => /* @__PURE__ */ React.createElement(ApiTypeTitle, {
134
- apiEntity: entity
135
- })
136
- };
137
- }
138
- const apiEntityColumns = [
139
- EntityTable.columns.createEntityRefColumn({ defaultKind: "API" }),
140
- EntityTable.columns.createSystemColumn(),
141
- EntityTable.columns.createOwnerColumn(),
142
- createSpecApiTypeColumn(),
143
- EntityTable.columns.createSpecLifecycleColumn(),
144
- EntityTable.columns.createMetadataDescriptionColumn()
145
- ];
146
-
147
- const ConsumedApisCard = ({ variant = "gridItem" }) => {
148
- const { entity } = useEntity();
149
- const { entities, loading, error } = useRelatedEntities(entity, {
150
- type: RELATION_CONSUMES_API
151
- });
152
- if (loading) {
153
- return /* @__PURE__ */ React.createElement(InfoCard, {
154
- variant,
155
- title: "Consumed APIs"
156
- }, /* @__PURE__ */ React.createElement(Progress, null));
157
- }
158
- if (error || !entities) {
159
- return /* @__PURE__ */ React.createElement(InfoCard, {
160
- variant,
161
- title: "Consumed APIs"
162
- }, /* @__PURE__ */ React.createElement(WarningPanel, {
163
- severity: "error",
164
- title: "Could not load APIs",
165
- message: /* @__PURE__ */ React.createElement(CodeSnippet, {
166
- text: `${error}`,
167
- language: "text"
168
- })
169
- }));
170
- }
171
- return /* @__PURE__ */ React.createElement(EntityTable, {
172
- title: "Consumed APIs",
173
- variant,
174
- emptyContent: /* @__PURE__ */ React.createElement("div", {
175
- style: { textAlign: "center" }
176
- }, /* @__PURE__ */ React.createElement(Typography, {
177
- variant: "body1"
178
- }, "This ", entity.kind.toLocaleLowerCase("en-US"), " does not consume any APIs."), /* @__PURE__ */ React.createElement(Typography, {
179
- variant: "body2"
180
- }, /* @__PURE__ */ React.createElement(Link, {
181
- to: "https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional"
182
- }, "Learn how to change this."))),
183
- columns: apiEntityColumns,
184
- entities
185
- });
186
- };
187
-
188
- const columns = [
189
- EntityTable.columns.createEntityRefColumn({ defaultKind: "API" }),
190
- EntityTable.columns.createOwnerColumn(),
191
- createSpecApiTypeColumn(),
192
- EntityTable.columns.createSpecLifecycleColumn(),
193
- EntityTable.columns.createMetadataDescriptionColumn()
194
- ];
195
- const HasApisCard = ({ variant = "gridItem" }) => {
196
- const { entity } = useEntity();
197
- const { entities, loading, error } = useRelatedEntities(entity, {
198
- type: RELATION_HAS_PART,
199
- kind: "API"
200
- });
201
- if (loading) {
202
- return /* @__PURE__ */ React.createElement(InfoCard, {
203
- variant,
204
- title: "APIs"
205
- }, /* @__PURE__ */ React.createElement(Progress, null));
206
- }
207
- if (error || !entities) {
208
- return /* @__PURE__ */ React.createElement(InfoCard, {
209
- variant,
210
- title: "APIs"
211
- }, /* @__PURE__ */ React.createElement(WarningPanel, {
212
- severity: "error",
213
- title: "Could not load APIs",
214
- message: /* @__PURE__ */ React.createElement(CodeSnippet, {
215
- text: `${error}`,
216
- language: "text"
217
- })
218
- }));
219
- }
220
- return /* @__PURE__ */ React.createElement(EntityTable, {
221
- title: "APIs",
222
- variant,
223
- emptyContent: /* @__PURE__ */ React.createElement("div", {
224
- style: { textAlign: "center" }
225
- }, /* @__PURE__ */ React.createElement(Typography, {
226
- variant: "body1"
227
- }, "This ", entity.kind.toLocaleLowerCase("en-US"), " does not contain any APIs."), /* @__PURE__ */ React.createElement(Typography, {
228
- variant: "body2"
229
- }, /* @__PURE__ */ React.createElement(Link, {
230
- to: "https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api"
231
- }, "Learn how to change this."))),
232
- columns,
233
- entities
234
- });
235
- };
236
-
237
- const ProvidedApisCard = ({ variant = "gridItem" }) => {
238
- const { entity } = useEntity();
239
- const { entities, loading, error } = useRelatedEntities(entity, {
240
- type: RELATION_PROVIDES_API
241
- });
242
- if (loading) {
243
- return /* @__PURE__ */ React.createElement(InfoCard, {
244
- variant,
245
- title: "Provided APIs"
246
- }, /* @__PURE__ */ React.createElement(Progress, null));
247
- }
248
- if (error || !entities) {
249
- return /* @__PURE__ */ React.createElement(InfoCard, {
250
- variant,
251
- title: "Provided APIs"
252
- }, /* @__PURE__ */ React.createElement(WarningPanel, {
253
- severity: "error",
254
- title: "Could not load APIs",
255
- message: /* @__PURE__ */ React.createElement(CodeSnippet, {
256
- text: `${error}`,
257
- language: "text"
258
- })
259
- }));
260
- }
261
- return /* @__PURE__ */ React.createElement(EntityTable, {
262
- title: "Provided APIs",
263
- variant,
264
- emptyContent: /* @__PURE__ */ React.createElement("div", {
265
- style: { textAlign: "center" }
266
- }, /* @__PURE__ */ React.createElement(Typography, {
267
- variant: "body1"
268
- }, "This ", entity.kind.toLocaleLowerCase("en-US"), " does not provide any APIs."), /* @__PURE__ */ React.createElement(Typography, {
269
- variant: "body2"
270
- }, /* @__PURE__ */ React.createElement(Link, {
271
- to: "https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional"
272
- }, "Learn how to change this."))),
273
- columns: apiEntityColumns,
274
- entities
275
- });
276
- };
277
-
278
- const ConsumingComponentsCard = ({ variant = "gridItem" }) => {
279
- const { entity } = useEntity();
280
- const { entities, loading, error } = useRelatedEntities(entity, {
281
- type: RELATION_API_CONSUMED_BY
282
- });
283
- if (loading) {
284
- return /* @__PURE__ */ React.createElement(InfoCard, {
285
- variant,
286
- title: "Consumers"
287
- }, /* @__PURE__ */ React.createElement(Progress, null));
288
- }
289
- if (error || !entities) {
290
- return /* @__PURE__ */ React.createElement(InfoCard, {
291
- variant,
292
- title: "Consumers"
293
- }, /* @__PURE__ */ React.createElement(WarningPanel, {
294
- severity: "error",
295
- title: "Could not load components",
296
- message: /* @__PURE__ */ React.createElement(CodeSnippet, {
297
- text: `${error}`,
298
- language: "text"
299
- })
300
- }));
301
- }
302
- return /* @__PURE__ */ React.createElement(EntityTable, {
303
- title: "Consumers",
304
- variant,
305
- emptyContent: /* @__PURE__ */ React.createElement("div", {
306
- style: { textAlign: "center" }
307
- }, /* @__PURE__ */ React.createElement(Typography, {
308
- variant: "body1"
309
- }, "No component consumes this API."), /* @__PURE__ */ React.createElement(Typography, {
310
- variant: "body2"
311
- }, /* @__PURE__ */ React.createElement(Link, {
312
- to: "https://backstage.io/docs/features/software-catalog/descriptor-format#specconsumesapis-optional"
313
- }, "Learn how to change this."))),
314
- columns: EntityTable.componentEntityColumns,
315
- entities
316
- });
317
- };
318
-
319
- const ProvidingComponentsCard = ({ variant = "gridItem" }) => {
320
- const { entity } = useEntity();
321
- const { entities, loading, error } = useRelatedEntities(entity, {
322
- type: RELATION_API_PROVIDED_BY
323
- });
324
- if (loading) {
325
- return /* @__PURE__ */ React.createElement(InfoCard, {
326
- variant,
327
- title: "Providers"
328
- }, /* @__PURE__ */ React.createElement(Progress, null));
329
- }
330
- if (error || !entities) {
331
- return /* @__PURE__ */ React.createElement(InfoCard, {
332
- variant,
333
- title: "Providers"
334
- }, /* @__PURE__ */ React.createElement(WarningPanel, {
335
- severity: "error",
336
- title: "Could not load components",
337
- message: /* @__PURE__ */ React.createElement(CodeSnippet, {
338
- text: `${error}`,
339
- language: "text"
340
- })
341
- }));
342
- }
343
- return /* @__PURE__ */ React.createElement(EntityTable, {
344
- title: "Providers",
345
- variant,
346
- emptyContent: /* @__PURE__ */ React.createElement("div", {
347
- style: { textAlign: "center" }
348
- }, /* @__PURE__ */ React.createElement(Typography, {
349
- variant: "body1"
350
- }, "No component provides this API."), /* @__PURE__ */ React.createElement(Typography, {
351
- variant: "body2"
352
- }, /* @__PURE__ */ React.createElement(Link, {
353
- to: "https://backstage.io/docs/features/software-catalog/descriptor-format#specprovidesapis-optional"
354
- }, "Learn how to change this."))),
355
- columns: EntityTable.componentEntityColumns,
356
- entities
357
- });
358
- };
359
-
360
- const rootRoute = createRouteRef({
361
- id: "api-docs"
362
- });
363
- const createComponentRouteRef = createExternalRouteRef({
364
- id: "create-component",
365
- optional: true
366
- });
367
-
368
- const apiDocsPlugin = createPlugin({
369
- id: "api-docs",
370
- routes: {
371
- root: rootRoute
372
- },
373
- apis: [
374
- createApiFactory({
375
- api: apiDocsConfigRef,
376
- deps: {},
377
- factory: () => {
378
- const definitionWidgets = defaultDefinitionWidgets();
379
- return {
380
- getApiDefinitionWidget: (apiEntity) => {
381
- return definitionWidgets.find((d) => d.type === apiEntity.spec.type);
382
- }
383
- };
384
- }
385
- })
386
- ],
387
- externalRoutes: {
388
- createComponent: createComponentRouteRef
389
- }
390
- });
391
- const ApiExplorerPage = apiDocsPlugin.provide(createRoutableExtension({
392
- name: "ApiExplorerPage",
393
- component: () => import('./index-81066cec.esm.js').then((m) => m.ApiExplorerPage),
394
- mountPoint: rootRoute
395
- }));
396
- const EntityApiDefinitionCard = apiDocsPlugin.provide(createComponentExtension({
397
- name: "EntityApiDefinitionCard",
398
- component: {
399
- lazy: () => import('./index-f559083e.esm.js').then((m) => m.ApiDefinitionCard)
400
- }
401
- }));
402
- const EntityConsumedApisCard = apiDocsPlugin.provide(createComponentExtension({
403
- name: "EntityConsumedApisCard",
404
- component: {
405
- lazy: () => import('./index-75e11fdf.esm.js').then((m) => m.ConsumedApisCard)
406
- }
407
- }));
408
- const EntityConsumingComponentsCard = apiDocsPlugin.provide(createComponentExtension({
409
- name: "EntityConsumingComponentsCard",
410
- component: {
411
- lazy: () => import('./index-00ee1634.esm.js').then((m) => m.ConsumingComponentsCard)
412
- }
413
- }));
414
- const EntityProvidedApisCard = apiDocsPlugin.provide(createComponentExtension({
415
- name: "EntityProvidedApisCard",
416
- component: {
417
- lazy: () => import('./index-75e11fdf.esm.js').then((m) => m.ProvidedApisCard)
418
- }
419
- }));
420
- const EntityProvidingComponentsCard = apiDocsPlugin.provide(createComponentExtension({
421
- name: "EntityProvidingComponentsCard",
422
- component: {
423
- lazy: () => import('./index-00ee1634.esm.js').then((m) => m.ProvidingComponentsCard)
424
- }
425
- }));
426
- const EntityHasApisCard = apiDocsPlugin.provide(createComponentExtension({
427
- name: "EntityHasApisCard",
428
- component: {
429
- lazy: () => import('./index-75e11fdf.esm.js').then((m) => m.HasApisCard)
430
- }
431
- }));
432
-
433
- export { ApiDefinitionCard as A, ConsumedApisCard as C, EntityApiDefinitionCard as E, HasApisCard as H, OpenApiDefinitionWidget as O, ProvidedApisCard as P, ApiTypeTitle as a, ConsumingComponentsCard as b, createComponentRouteRef as c, defaultDefinitionWidgets as d, ProvidingComponentsCard as e, apiDocsConfigRef as f, apiDocsPlugin as g, ApiExplorerPage as h, EntityConsumedApisCard as i, EntityConsumingComponentsCard as j, EntityHasApisCard as k, EntityProvidedApisCard as l, EntityProvidingComponentsCard as m, AsyncApiDefinitionWidget as n, PlainApiDefinitionWidget as o };
434
- //# sourceMappingURL=index-2caea1c7.esm.js.map