@backstage/plugin-api-docs 0.8.8 → 0.8.9-next.0
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 +13 -0
- package/dist/esm/{index-91a7d3af.esm.js → index-5bc4fdc7.esm.js} +1 -1
- package/dist/esm/index-5bc4fdc7.esm.js.map +1 -0
- package/dist/esm/{index-f826bec4.esm.js → index-9e8e4d8c.esm.js} +1 -1
- package/dist/esm/index-9e8e4d8c.esm.js.map +1 -0
- package/dist/esm/{index-8ac7548d.esm.js → index-dfba78dd.esm.js} +1 -1
- package/dist/esm/index-dfba78dd.esm.js.map +1 -0
- package/dist/esm/{index-bafd8906.esm.js → index-f33becda.esm.js} +1 -1
- package/dist/esm/index-f33becda.esm.js.map +1 -0
- package/dist/index.d.ts +55 -23
- package/dist/index.esm.js +21 -18
- package/dist/index.esm.js.map +1 -1
- package/package.json +11 -11
- package/dist/esm/index-8ac7548d.esm.js.map +0 -1
- package/dist/esm/index-91a7d3af.esm.js.map +0 -1
- package/dist/esm/index-bafd8906.esm.js.map +0 -1
- package/dist/esm/index-f826bec4.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @backstage/plugin-api-docs
|
|
2
2
|
|
|
3
|
+
## 0.8.9-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bf5e9030eb: Updated dependency `msw` to `^0.45.0`.
|
|
8
|
+
- ef9ab322de: Minor API signatures cleanup
|
|
9
|
+
- c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @backstage/core-plugin-api@1.0.6-next.0
|
|
12
|
+
- @backstage/core-components@0.11.1-next.0
|
|
13
|
+
- @backstage/plugin-catalog-react@1.1.4-next.0
|
|
14
|
+
- @backstage/plugin-catalog@1.5.1-next.0
|
|
15
|
+
|
|
3
16
|
## 0.8.8
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-5bc4fdc7.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-9e8e4d8c.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-dfba78dd.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-f33becda.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ declare type DefaultApiExplorerPageProps = {
|
|
|
20
20
|
* DefaultApiExplorerPage
|
|
21
21
|
* @public
|
|
22
22
|
*/
|
|
23
|
-
declare const DefaultApiExplorerPage: (
|
|
23
|
+
declare const DefaultApiExplorerPage: (props: DefaultApiExplorerPageProps) => JSX.Element;
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* ApiExplorerPage
|
|
@@ -28,92 +28,124 @@ declare const DefaultApiExplorerPage: ({ initiallySelectedFilter, columns, actio
|
|
|
28
28
|
*/
|
|
29
29
|
declare const ApiExplorerPage$1: (props: DefaultApiExplorerPageProps) => JSX.Element;
|
|
30
30
|
|
|
31
|
+
/** @public */
|
|
31
32
|
declare const ApiDefinitionCard: () => JSX.Element;
|
|
32
33
|
|
|
34
|
+
/** @public */
|
|
33
35
|
declare type ApiDefinitionWidget = {
|
|
34
36
|
type: string;
|
|
35
37
|
title: string;
|
|
36
38
|
component: (definition: string) => React.ReactElement;
|
|
37
39
|
rawLanguage?: string;
|
|
38
40
|
};
|
|
41
|
+
/** @public */
|
|
39
42
|
declare function defaultDefinitionWidgets(): ApiDefinitionWidget[];
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
/**
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
declare const ApiTypeTitle: (props: {
|
|
42
48
|
apiEntity: ApiEntity;
|
|
43
49
|
}) => JSX.Element;
|
|
44
50
|
|
|
45
|
-
|
|
51
|
+
/**
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
declare const ConsumedApisCard: (props: {
|
|
46
55
|
variant?: InfoCardVariants;
|
|
47
|
-
};
|
|
48
|
-
declare const ConsumedApisCard: ({ variant }: Props$4) => JSX.Element;
|
|
56
|
+
}) => JSX.Element;
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
/**
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
declare const HasApisCard: (props: {
|
|
51
62
|
variant?: InfoCardVariants;
|
|
52
|
-
};
|
|
53
|
-
declare const HasApisCard: ({ variant }: Props$3) => JSX.Element;
|
|
63
|
+
}) => JSX.Element;
|
|
54
64
|
|
|
55
|
-
|
|
65
|
+
/**
|
|
66
|
+
* @public
|
|
67
|
+
*/
|
|
68
|
+
declare const ProvidedApisCard: (props: {
|
|
56
69
|
variant?: InfoCardVariants;
|
|
57
|
-
};
|
|
58
|
-
declare const ProvidedApisCard: ({ variant }: Props$2) => JSX.Element;
|
|
70
|
+
}) => JSX.Element;
|
|
59
71
|
|
|
72
|
+
/** @public */
|
|
60
73
|
declare type AsyncApiDefinitionWidgetProps = {
|
|
61
74
|
definition: string;
|
|
62
75
|
};
|
|
76
|
+
/** @public */
|
|
63
77
|
declare const AsyncApiDefinitionWidget: (props: AsyncApiDefinitionWidgetProps) => JSX.Element;
|
|
64
78
|
|
|
65
|
-
|
|
79
|
+
/**
|
|
80
|
+
* @public
|
|
81
|
+
*/
|
|
82
|
+
declare const ConsumingComponentsCard: (props: {
|
|
66
83
|
variant?: InfoCardVariants;
|
|
67
|
-
};
|
|
68
|
-
declare const ConsumingComponentsCard: ({ variant }: Props$1) => JSX.Element;
|
|
84
|
+
}) => JSX.Element;
|
|
69
85
|
|
|
70
|
-
|
|
86
|
+
/** @public */
|
|
87
|
+
declare const ProvidingComponentsCard: (props: {
|
|
71
88
|
variant?: InfoCardVariants;
|
|
72
|
-
};
|
|
73
|
-
declare const ProvidingComponentsCard: ({ variant }: Props) => JSX.Element;
|
|
89
|
+
}) => JSX.Element;
|
|
74
90
|
|
|
91
|
+
/** @public */
|
|
75
92
|
declare type GraphQlDefinitionWidgetProps = {
|
|
76
93
|
definition: string;
|
|
77
94
|
};
|
|
95
|
+
/** @public */
|
|
78
96
|
declare const GraphQlDefinitionWidget: (props: GraphQlDefinitionWidgetProps) => JSX.Element;
|
|
79
97
|
|
|
98
|
+
/** @public */
|
|
80
99
|
declare type OpenApiDefinitionWidgetProps = {
|
|
81
100
|
definition: string;
|
|
82
101
|
};
|
|
102
|
+
/** @public */
|
|
83
103
|
declare const OpenApiDefinitionWidget: (props: OpenApiDefinitionWidgetProps) => JSX.Element;
|
|
84
104
|
|
|
105
|
+
/** @public */
|
|
85
106
|
declare type PlainApiDefinitionWidgetProps = {
|
|
86
107
|
definition: any;
|
|
87
108
|
language: string;
|
|
88
109
|
};
|
|
110
|
+
/** @public */
|
|
89
111
|
declare const PlainApiDefinitionWidget: (props: PlainApiDefinitionWidgetProps) => JSX.Element;
|
|
90
112
|
|
|
113
|
+
/** @public */
|
|
91
114
|
declare const apiDocsConfigRef: _backstage_core_plugin_api.ApiRef<ApiDocsConfig>;
|
|
115
|
+
/** @public */
|
|
92
116
|
interface ApiDocsConfig {
|
|
93
117
|
getApiDefinitionWidget: (apiEntity: ApiEntity) => ApiDefinitionWidget | undefined;
|
|
94
118
|
}
|
|
95
119
|
|
|
120
|
+
/** @public */
|
|
96
121
|
declare const apiDocsPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
97
122
|
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
98
123
|
}, {
|
|
99
124
|
registerApi: _backstage_core_plugin_api.ExternalRouteRef<undefined, true>;
|
|
100
125
|
}, {}>;
|
|
126
|
+
/** @public */
|
|
101
127
|
declare const ApiExplorerPage: (props: DefaultApiExplorerPageProps) => JSX.Element;
|
|
128
|
+
/** @public */
|
|
102
129
|
declare const EntityApiDefinitionCard: () => JSX.Element;
|
|
103
|
-
|
|
130
|
+
/** @public */
|
|
131
|
+
declare const EntityConsumedApisCard: (props: {
|
|
104
132
|
variant?: _backstage_core_components.InfoCardVariants | undefined;
|
|
105
133
|
}) => JSX.Element;
|
|
106
|
-
|
|
134
|
+
/** @public */
|
|
135
|
+
declare const EntityConsumingComponentsCard: (props: {
|
|
107
136
|
variant?: _backstage_core_components.InfoCardVariants | undefined;
|
|
108
137
|
}) => JSX.Element;
|
|
109
|
-
|
|
138
|
+
/** @public */
|
|
139
|
+
declare const EntityProvidedApisCard: (props: {
|
|
110
140
|
variant?: _backstage_core_components.InfoCardVariants | undefined;
|
|
111
141
|
}) => JSX.Element;
|
|
112
|
-
|
|
142
|
+
/** @public */
|
|
143
|
+
declare const EntityProvidingComponentsCard: (props: {
|
|
113
144
|
variant?: _backstage_core_components.InfoCardVariants | undefined;
|
|
114
145
|
}) => JSX.Element;
|
|
115
|
-
|
|
146
|
+
/** @public */
|
|
147
|
+
declare const EntityHasApisCard: (props: {
|
|
116
148
|
variant?: _backstage_core_components.InfoCardVariants | undefined;
|
|
117
149
|
}) => JSX.Element;
|
|
118
150
|
|
|
119
|
-
export { ApiDefinitionCard, ApiDefinitionWidget, ApiExplorerPage$1 as ApiExplorerIndexPage, ApiExplorerPage, ApiTypeTitle, AsyncApiDefinitionWidget, AsyncApiDefinitionWidgetProps, ConsumedApisCard, ConsumingComponentsCard, DefaultApiExplorerPage, DefaultApiExplorerPageProps, EntityApiDefinitionCard, EntityConsumedApisCard, EntityConsumingComponentsCard, EntityHasApisCard, EntityProvidedApisCard, EntityProvidingComponentsCard, GraphQlDefinitionWidget, GraphQlDefinitionWidgetProps, HasApisCard, OpenApiDefinitionWidget, OpenApiDefinitionWidgetProps, PlainApiDefinitionWidget, PlainApiDefinitionWidgetProps, ProvidedApisCard, ProvidingComponentsCard, apiDocsConfigRef, apiDocsPlugin, defaultDefinitionWidgets, apiDocsPlugin as plugin };
|
|
151
|
+
export { ApiDefinitionCard, ApiDefinitionWidget, ApiDocsConfig, ApiExplorerPage$1 as ApiExplorerIndexPage, ApiExplorerPage, ApiTypeTitle, AsyncApiDefinitionWidget, AsyncApiDefinitionWidgetProps, ConsumedApisCard, ConsumingComponentsCard, DefaultApiExplorerPage, DefaultApiExplorerPageProps, EntityApiDefinitionCard, EntityConsumedApisCard, EntityConsumingComponentsCard, EntityHasApisCard, EntityProvidedApisCard, EntityProvidingComponentsCard, GraphQlDefinitionWidget, GraphQlDefinitionWidgetProps, HasApisCard, OpenApiDefinitionWidget, OpenApiDefinitionWidgetProps, PlainApiDefinitionWidget, PlainApiDefinitionWidgetProps, ProvidedApisCard, ProvidingComponentsCard, apiDocsConfigRef, apiDocsPlugin, defaultDefinitionWidgets, apiDocsPlugin as plugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -27,12 +27,9 @@ const defaultColumns = [
|
|
|
27
27
|
CatalogTable.columns.createMetadataDescriptionColumn(),
|
|
28
28
|
CatalogTable.columns.createTagsColumn()
|
|
29
29
|
];
|
|
30
|
-
const DefaultApiExplorerPage = ({
|
|
31
|
-
initiallySelectedFilter = "all",
|
|
32
|
-
columns,
|
|
33
|
-
actions
|
|
34
|
-
}) => {
|
|
30
|
+
const DefaultApiExplorerPage = (props) => {
|
|
35
31
|
var _a;
|
|
32
|
+
const { initiallySelectedFilter = "all", columns, actions } = props;
|
|
36
33
|
const configApi = useApi(configApiRef);
|
|
37
34
|
const generatedSubtitle = `${(_a = configApi.getOptionalString("organization.name")) != null ? _a : "Backstage"} API Explorer`;
|
|
38
35
|
const registerComponentLink = useRouteRef(registerComponentRouteRef);
|
|
@@ -201,7 +198,8 @@ function defaultDefinitionWidgets() {
|
|
|
201
198
|
];
|
|
202
199
|
}
|
|
203
200
|
|
|
204
|
-
const ApiTypeTitle = (
|
|
201
|
+
const ApiTypeTitle = (props) => {
|
|
202
|
+
const { apiEntity } = props;
|
|
205
203
|
const config = useApi(apiDocsConfigRef);
|
|
206
204
|
const definition = config.getApiDefinitionWidget(apiEntity);
|
|
207
205
|
const type = definition ? definition.title : apiEntity.spec.type;
|
|
@@ -226,7 +224,8 @@ const apiEntityColumns = [
|
|
|
226
224
|
EntityTable.columns.createMetadataDescriptionColumn()
|
|
227
225
|
];
|
|
228
226
|
|
|
229
|
-
const ConsumedApisCard = (
|
|
227
|
+
const ConsumedApisCard = (props) => {
|
|
228
|
+
const { variant = "gridItem" } = props;
|
|
230
229
|
const { entity } = useEntity();
|
|
231
230
|
const { entities, loading, error } = useRelatedEntities(entity, {
|
|
232
231
|
type: RELATION_CONSUMES_API
|
|
@@ -274,7 +273,8 @@ const columns = [
|
|
|
274
273
|
EntityTable.columns.createSpecLifecycleColumn(),
|
|
275
274
|
EntityTable.columns.createMetadataDescriptionColumn()
|
|
276
275
|
];
|
|
277
|
-
const HasApisCard = (
|
|
276
|
+
const HasApisCard = (props) => {
|
|
277
|
+
const { variant = "gridItem" } = props;
|
|
278
278
|
const { entity } = useEntity();
|
|
279
279
|
const { entities, loading, error } = useRelatedEntities(entity, {
|
|
280
280
|
type: RELATION_HAS_PART,
|
|
@@ -316,7 +316,8 @@ const HasApisCard = ({ variant = "gridItem" }) => {
|
|
|
316
316
|
});
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
-
const ProvidedApisCard = (
|
|
319
|
+
const ProvidedApisCard = (props) => {
|
|
320
|
+
const { variant = "gridItem" } = props;
|
|
320
321
|
const { entity } = useEntity();
|
|
321
322
|
const { entities, loading, error } = useRelatedEntities(entity, {
|
|
322
323
|
type: RELATION_PROVIDES_API
|
|
@@ -357,7 +358,8 @@ const ProvidedApisCard = ({ variant = "gridItem" }) => {
|
|
|
357
358
|
});
|
|
358
359
|
};
|
|
359
360
|
|
|
360
|
-
const ConsumingComponentsCard = (
|
|
361
|
+
const ConsumingComponentsCard = (props) => {
|
|
362
|
+
const { variant = "gridItem" } = props;
|
|
361
363
|
const { entity } = useEntity();
|
|
362
364
|
const { entities, loading, error } = useRelatedEntities(entity, {
|
|
363
365
|
type: RELATION_API_CONSUMED_BY
|
|
@@ -398,7 +400,8 @@ const ConsumingComponentsCard = ({ variant = "gridItem" }) => {
|
|
|
398
400
|
});
|
|
399
401
|
};
|
|
400
402
|
|
|
401
|
-
const ProvidingComponentsCard = (
|
|
403
|
+
const ProvidingComponentsCard = (props) => {
|
|
404
|
+
const { variant = "gridItem" } = props;
|
|
402
405
|
const { entity } = useEntity();
|
|
403
406
|
const { entities, loading, error } = useRelatedEntities(entity, {
|
|
404
407
|
type: RELATION_API_PROVIDED_BY
|
|
@@ -465,7 +468,7 @@ const apiDocsPlugin = createPlugin({
|
|
|
465
468
|
const ApiExplorerPage = apiDocsPlugin.provide(
|
|
466
469
|
createRoutableExtension({
|
|
467
470
|
name: "ApiExplorerPage",
|
|
468
|
-
component: () => import('./esm/index-
|
|
471
|
+
component: () => import('./esm/index-5bc4fdc7.esm.js').then((m) => m.ApiExplorerIndexPage),
|
|
469
472
|
mountPoint: rootRoute
|
|
470
473
|
})
|
|
471
474
|
);
|
|
@@ -473,7 +476,7 @@ const EntityApiDefinitionCard = apiDocsPlugin.provide(
|
|
|
473
476
|
createComponentExtension({
|
|
474
477
|
name: "EntityApiDefinitionCard",
|
|
475
478
|
component: {
|
|
476
|
-
lazy: () => import('./esm/index-
|
|
479
|
+
lazy: () => import('./esm/index-9e8e4d8c.esm.js').then((m) => m.ApiDefinitionCard)
|
|
477
480
|
}
|
|
478
481
|
})
|
|
479
482
|
);
|
|
@@ -481,7 +484,7 @@ const EntityConsumedApisCard = apiDocsPlugin.provide(
|
|
|
481
484
|
createComponentExtension({
|
|
482
485
|
name: "EntityConsumedApisCard",
|
|
483
486
|
component: {
|
|
484
|
-
lazy: () => import('./esm/index-
|
|
487
|
+
lazy: () => import('./esm/index-f33becda.esm.js').then((m) => m.ConsumedApisCard)
|
|
485
488
|
}
|
|
486
489
|
})
|
|
487
490
|
);
|
|
@@ -489,7 +492,7 @@ const EntityConsumingComponentsCard = apiDocsPlugin.provide(
|
|
|
489
492
|
createComponentExtension({
|
|
490
493
|
name: "EntityConsumingComponentsCard",
|
|
491
494
|
component: {
|
|
492
|
-
lazy: () => import('./esm/index-
|
|
495
|
+
lazy: () => import('./esm/index-dfba78dd.esm.js').then(
|
|
493
496
|
(m) => m.ConsumingComponentsCard
|
|
494
497
|
)
|
|
495
498
|
}
|
|
@@ -499,7 +502,7 @@ const EntityProvidedApisCard = apiDocsPlugin.provide(
|
|
|
499
502
|
createComponentExtension({
|
|
500
503
|
name: "EntityProvidedApisCard",
|
|
501
504
|
component: {
|
|
502
|
-
lazy: () => import('./esm/index-
|
|
505
|
+
lazy: () => import('./esm/index-f33becda.esm.js').then((m) => m.ProvidedApisCard)
|
|
503
506
|
}
|
|
504
507
|
})
|
|
505
508
|
);
|
|
@@ -507,7 +510,7 @@ const EntityProvidingComponentsCard = apiDocsPlugin.provide(
|
|
|
507
510
|
createComponentExtension({
|
|
508
511
|
name: "EntityProvidingComponentsCard",
|
|
509
512
|
component: {
|
|
510
|
-
lazy: () => import('./esm/index-
|
|
513
|
+
lazy: () => import('./esm/index-dfba78dd.esm.js').then(
|
|
511
514
|
(m) => m.ProvidingComponentsCard
|
|
512
515
|
)
|
|
513
516
|
}
|
|
@@ -517,7 +520,7 @@ const EntityHasApisCard = apiDocsPlugin.provide(
|
|
|
517
520
|
createComponentExtension({
|
|
518
521
|
name: "EntityHasApisCard",
|
|
519
522
|
component: {
|
|
520
|
-
lazy: () => import('./esm/index-
|
|
523
|
+
lazy: () => import('./esm/index-f33becda.esm.js').then((m) => m.HasApisCard)
|
|
521
524
|
}
|
|
522
525
|
})
|
|
523
526
|
);
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.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 registerComponentRouteRef = createExternalRouteRef({\n id: 'register-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 { CatalogTable, CatalogTableRow } from '@backstage/plugin-catalog';\nimport {\n EntityKindPicker,\n EntityLifecyclePicker,\n EntityListProvider,\n EntityOwnerPicker,\n EntityTagPicker,\n EntityTypePicker,\n UserListFilterKind,\n UserListPicker,\n CatalogFilterLayout,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { registerComponentRouteRef } from '../../routes';\n\nconst defaultColumns: TableColumn<CatalogTableRow>[] = [\n CatalogTable.columns.createTitleColumn({ hidden: true }),\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 registerComponentLink = useRouteRef(registerComponentRouteRef);\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={registerComponentLink?.()}\n />\n <SupportButton>All your APIs</SupportButton>\n </ContentHeader>\n <EntityListProvider>\n <CatalogFilterLayout>\n <CatalogFilterLayout.Filters>\n <EntityKindPicker initialFilter=\"api\" hidden />\n <EntityTypePicker />\n <UserListPicker initialFilter={initiallySelectedFilter} />\n <EntityOwnerPicker />\n <EntityLifecyclePicker />\n <EntityTagPicker />\n </CatalogFilterLayout.Filters>\n <CatalogFilterLayout.Content>\n <CatalogTable\n columns={columns || defaultColumns}\n actions={actions}\n />\n </CatalogFilterLayout.Content>\n </CatalogFilterLayout>\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\nexport const ApiDefinitionCard = () => {\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 */\n\nimport React from 'react';\nimport { CodeSnippet } from '@backstage/core-components';\nimport { useTheme } from '@material-ui/core/styles';\nimport { BackstageTheme } from '@backstage/theme';\n\nexport type GrpcApiDefinitionWidgetProps = {\n definition: string;\n};\n\nexport const GrpcApiDefinitionWidget = (\n props: GrpcApiDefinitionWidgetProps,\n) => {\n const theme = useTheme<BackstageTheme>();\n return (\n <CodeSnippet\n customStyle={{ backgroundColor: theme.palette.background.default }}\n text={props.definition}\n language=\"protobuf\"\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 */\nimport React from 'react';\nimport { AsyncApiDefinitionWidget } from '../AsyncApiDefinitionWidget';\nimport { GraphQlDefinitionWidget } from '../GraphQlDefinitionWidget';\nimport { OpenApiDefinitionWidget } from '../OpenApiDefinitionWidget';\nimport { GrpcApiDefinitionWidget } from '../GrpcApiDefinitionWidget';\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 type: 'grpc',\n title: 'gRPC',\n component: definition => (\n <GrpcApiDefinitionWidget 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 { ApiEntity, RELATION_CONSUMES_API } 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: InfoCardVariants;\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 InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: InfoCardVariants;\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 { ApiEntity, RELATION_PROVIDES_API } 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: InfoCardVariants;\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 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: InfoCardVariants;\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 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\ntype Props = {\n variant?: InfoCardVariants;\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 { registerComponentRouteRef, 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 registerApi: registerComponentRouteRef,\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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"}
|
|
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/GrpcApiDefinitionWidget/GrpcApiDefinitionWidget.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 registerComponentRouteRef = createExternalRouteRef({\n id: 'register-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 { CatalogTable, CatalogTableRow } from '@backstage/plugin-catalog';\nimport {\n EntityKindPicker,\n EntityLifecyclePicker,\n EntityListProvider,\n EntityOwnerPicker,\n EntityTagPicker,\n EntityTypePicker,\n UserListFilterKind,\n UserListPicker,\n CatalogFilterLayout,\n} from '@backstage/plugin-catalog-react';\nimport React from 'react';\nimport { registerComponentRouteRef } from '../../routes';\n\nconst defaultColumns: TableColumn<CatalogTableRow>[] = [\n CatalogTable.columns.createTitleColumn({ hidden: true }),\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 = (props: DefaultApiExplorerPageProps) => {\n const { initiallySelectedFilter = 'all', columns, actions } = props;\n\n const configApi = useApi(configApiRef);\n const generatedSubtitle = `${\n configApi.getOptionalString('organization.name') ?? 'Backstage'\n } API Explorer`;\n const registerComponentLink = useRouteRef(registerComponentRouteRef);\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={registerComponentLink?.()}\n />\n <SupportButton>All your APIs</SupportButton>\n </ContentHeader>\n <EntityListProvider>\n <CatalogFilterLayout>\n <CatalogFilterLayout.Filters>\n <EntityKindPicker initialFilter=\"api\" hidden />\n <EntityTypePicker />\n <UserListPicker initialFilter={initiallySelectedFilter} />\n <EntityOwnerPicker />\n <EntityLifecyclePicker />\n <EntityTagPicker />\n </CatalogFilterLayout.Filters>\n <CatalogFilterLayout.Content>\n <CatalogTable\n columns={columns || defaultColumns}\n actions={actions}\n />\n </CatalogFilterLayout.Content>\n </CatalogFilterLayout>\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\n/** @public */\nexport const apiDocsConfigRef = createApiRef<ApiDocsConfig>({\n id: 'plugin.api-docs.config',\n});\n\n/** @public */\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\n/** @public */\nexport type PlainApiDefinitionWidgetProps = {\n definition: any;\n language: string;\n};\n\n/** @public */\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\n/** @public */\nexport const ApiDefinitionCard = () => {\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\n/** @public */\nexport type AsyncApiDefinitionWidgetProps = {\n definition: string;\n};\n\n/** @public */\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\n/** @public */\nexport type GraphQlDefinitionWidgetProps = {\n definition: string;\n};\n\n/** @public */\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\n/** @public */\nexport type OpenApiDefinitionWidgetProps = {\n definition: string;\n};\n\n/** @public */\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 */\n\nimport React from 'react';\nimport { CodeSnippet } from '@backstage/core-components';\nimport { useTheme } from '@material-ui/core/styles';\nimport { BackstageTheme } from '@backstage/theme';\n\n/** @public */\nexport type GrpcApiDefinitionWidgetProps = {\n definition: string;\n};\n\n/** @public */\nexport const GrpcApiDefinitionWidget = (\n props: GrpcApiDefinitionWidgetProps,\n) => {\n const theme = useTheme<BackstageTheme>();\n return (\n <CodeSnippet\n customStyle={{ backgroundColor: theme.palette.background.default }}\n text={props.definition}\n language=\"protobuf\"\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 */\nimport React from 'react';\nimport { AsyncApiDefinitionWidget } from '../AsyncApiDefinitionWidget';\nimport { GraphQlDefinitionWidget } from '../GraphQlDefinitionWidget';\nimport { OpenApiDefinitionWidget } from '../OpenApiDefinitionWidget';\nimport { GrpcApiDefinitionWidget } from '../GrpcApiDefinitionWidget';\n\n/** @public */\nexport type ApiDefinitionWidget = {\n type: string;\n title: string;\n component: (definition: string) => React.ReactElement;\n rawLanguage?: string;\n};\n\n/** @public */\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 type: 'grpc',\n title: 'gRPC',\n component: definition => (\n <GrpcApiDefinitionWidget 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\n/**\n * @public\n */\nexport const ApiTypeTitle = (props: { apiEntity: ApiEntity }) => {\n const { apiEntity } = props;\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 { ApiEntity, RELATION_CONSUMES_API } 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\n/**\n * @public\n */\nexport const ConsumedApisCard = (props: { variant?: InfoCardVariants }) => {\n const { 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 InfoCardVariants,\n Link,\n Progress,\n TableColumn,\n WarningPanel,\n} from '@backstage/core-components';\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\n/**\n * @public\n */\nexport const HasApisCard = (props: { variant?: InfoCardVariants }) => {\n const { 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 { ApiEntity, RELATION_PROVIDES_API } 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\n/**\n * @public\n */\nexport const ProvidedApisCard = (props: { variant?: InfoCardVariants }) => {\n const { 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 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\n/**\n * @public\n */\nexport const ConsumingComponentsCard = (props: {\n variant?: InfoCardVariants;\n}) => {\n const { 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 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 InfoCardVariants,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\n\n/** @public */\nexport const ProvidingComponentsCard = (props: {\n variant?: InfoCardVariants;\n}) => {\n const { 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 { registerComponentRouteRef, rootRoute } from './routes';\nimport {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\n\n/** @public */\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 registerApi: registerComponentRouteRef,\n },\n});\n\n/** @public */\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\n/** @public */\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\n/** @public */\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\n/** @public */\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\n/** @public */\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\n/** @public */\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\n/** @public */\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.8.
|
|
4
|
+
"version": "0.8.9-next.0",
|
|
5
5
|
"main": "dist/index.esm.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@asyncapi/react-component": "1.0.0-next.40",
|
|
37
37
|
"@backstage/catalog-model": "^1.1.0",
|
|
38
|
-
"@backstage/core-components": "^0.11.0",
|
|
39
|
-
"@backstage/core-plugin-api": "^1.0.
|
|
40
|
-
"@backstage/plugin-catalog": "^1.5.0",
|
|
41
|
-
"@backstage/plugin-catalog-react": "^1.1.
|
|
38
|
+
"@backstage/core-components": "^0.11.1-next.0",
|
|
39
|
+
"@backstage/core-plugin-api": "^1.0.6-next.0",
|
|
40
|
+
"@backstage/plugin-catalog": "^1.5.1-next.0",
|
|
41
|
+
"@backstage/plugin-catalog-react": "^1.1.4-next.0",
|
|
42
42
|
"@backstage/theme": "^0.2.16",
|
|
43
43
|
"@material-ui/core": "^4.12.2",
|
|
44
44
|
"@material-ui/icons": "^4.9.1",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"react": "^16.13.1 || ^17.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@backstage/cli": "^0.18.
|
|
61
|
-
"@backstage/core-app-api": "^1.0.
|
|
62
|
-
"@backstage/dev-utils": "^1.0.
|
|
63
|
-
"@backstage/test-utils": "^1.1.
|
|
60
|
+
"@backstage/cli": "^0.18.2-next.0",
|
|
61
|
+
"@backstage/core-app-api": "^1.0.6-next.0",
|
|
62
|
+
"@backstage/dev-utils": "^1.0.6-next.0",
|
|
63
|
+
"@backstage/test-utils": "^1.1.4-next.0",
|
|
64
64
|
"@testing-library/jest-dom": "^5.10.1",
|
|
65
65
|
"@testing-library/react": "^12.1.3",
|
|
66
66
|
"@testing-library/user-event": "^14.0.0",
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
"@types/node": "^16.11.26",
|
|
69
69
|
"@types/swagger-ui-react": "^4.1.1",
|
|
70
70
|
"cross-fetch": "^3.1.5",
|
|
71
|
-
"msw": "^0.
|
|
71
|
+
"msw": "^0.45.0"
|
|
72
72
|
},
|
|
73
73
|
"files": [
|
|
74
74
|
"dist"
|
|
75
75
|
],
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "c6c0b1978a7ab4d29d813996c56beb7e6b48a268"
|
|
77
77
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-8ac7548d.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-91a7d3af.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-bafd8906.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-f826bec4.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|