@backstage/plugin-api-docs 0.13.1-next.1 → 0.13.2-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 +31 -0
- package/dist/alpha.d.ts +19 -16
- package/dist/alpha.esm.js +25 -50
- package/dist/alpha.esm.js.map +1 -1
- package/dist/components/ApiDefinitionCard/ApiDefinitionCard.esm.js +7 -4
- package/dist/components/ApiDefinitionCard/ApiDefinitionCard.esm.js.map +1 -1
- package/dist/components/ApiDefinitionDialog/ApiDefinitionDialog.esm.js +10 -3
- package/dist/components/ApiDefinitionDialog/ApiDefinitionDialog.esm.js.map +1 -1
- package/dist/components/ApisCards/presets.esm.js +4 -3
- package/dist/components/ApisCards/presets.esm.js.map +1 -1
- package/dist/package.json.esm.js +1 -2
- package/dist/package.json.esm.js.map +1 -1
- package/dist/plugin.esm.js +4 -2
- package/dist/plugin.esm.js.map +1 -1
- package/dist/translation.esm.js +8 -1
- package/dist/translation.esm.js.map +1 -1
- package/package.json +13 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @backstage/plugin-api-docs
|
|
2
2
|
|
|
3
|
+
## 0.13.2-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d02db50: Remove unnecessary use of `compatWrapper` and `convertLegacyRouteRef`(s) for the new frontend system.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/frontend-plugin-api@0.13.2-next.0
|
|
10
|
+
- @backstage/core-plugin-api@1.12.1-next.0
|
|
11
|
+
- @backstage/plugin-catalog-react@1.21.4-next.0
|
|
12
|
+
- @backstage/plugin-catalog@1.32.1-next.0
|
|
13
|
+
- @backstage/core-components@0.18.4-next.0
|
|
14
|
+
- @backstage/plugin-permission-react@0.4.39-next.0
|
|
15
|
+
- @backstage/catalog-model@1.7.6
|
|
16
|
+
- @backstage/plugin-catalog-common@1.1.7
|
|
17
|
+
|
|
18
|
+
## 0.13.1
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 7c281a5: Add i18n support for Raw tab title and an error message
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
- @backstage/frontend-plugin-api@0.13.0
|
|
25
|
+
- @backstage/core-compat-api@0.5.4
|
|
26
|
+
- @backstage/plugin-catalog@1.32.0
|
|
27
|
+
- @backstage/plugin-catalog-react@1.21.3
|
|
28
|
+
- @backstage/core-components@0.18.3
|
|
29
|
+
- @backstage/core-plugin-api@1.12.0
|
|
30
|
+
- @backstage/plugin-permission-react@0.4.38
|
|
31
|
+
- @backstage/catalog-model@1.7.6
|
|
32
|
+
- @backstage/plugin-catalog-common@1.1.7
|
|
33
|
+
|
|
3
34
|
## 0.13.1-next.1
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/dist/alpha.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
2
1
|
import * as _backstage_catalog_model from '@backstage/catalog-model';
|
|
3
2
|
import * as react from 'react';
|
|
4
3
|
import * as _backstage_plugin_catalog_react_alpha from '@backstage/plugin-catalog-react/alpha';
|
|
5
4
|
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
5
|
+
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @alpha
|
|
9
9
|
*/
|
|
10
10
|
declare const apiDocsTranslationRef: _backstage_frontend_plugin_api.TranslationRef<"api-docs", {
|
|
11
|
+
readonly "apiDefinitionCard.error.title": "Could not fetch the API";
|
|
12
|
+
readonly "apiDefinitionCard.rawButtonTitle": "Raw";
|
|
11
13
|
readonly "apiDefinitionDialog.closeButtonTitle": "Close";
|
|
12
14
|
readonly "apiDefinitionDialog.tabsAriaLabel": "API definition options";
|
|
15
|
+
readonly "apiDefinitionDialog.rawButtonTitle": "Raw";
|
|
13
16
|
readonly "apiDefinitionDialog.toggleButtonAriaLabel": "Toggle API Definition Dialog";
|
|
14
17
|
readonly "defaultApiExplorerPage.title": "APIs";
|
|
15
18
|
readonly "defaultApiExplorerPage.subtitle": "{{orgName}} API Explorer";
|
|
@@ -37,11 +40,11 @@ declare const apiDocsTranslationRef: _backstage_frontend_plugin_api.TranslationR
|
|
|
37
40
|
}>;
|
|
38
41
|
|
|
39
42
|
declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{
|
|
40
|
-
root:
|
|
43
|
+
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
41
44
|
}, {
|
|
42
|
-
registerApi:
|
|
45
|
+
registerApi: _backstage_core_plugin_api.ExternalRouteRef<undefined, true>;
|
|
43
46
|
}, {
|
|
44
|
-
"api:api-docs/config": _backstage_frontend_plugin_api.
|
|
47
|
+
"api:api-docs/config": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
45
48
|
kind: "api";
|
|
46
49
|
name: "config";
|
|
47
50
|
config: {};
|
|
@@ -50,7 +53,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
50
53
|
inputs: {};
|
|
51
54
|
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
52
55
|
}>;
|
|
53
|
-
"entity-card:api-docs/consumed-apis": _backstage_frontend_plugin_api.
|
|
56
|
+
"entity-card:api-docs/consumed-apis": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
54
57
|
kind: "entity-card";
|
|
55
58
|
name: "consumed-apis";
|
|
56
59
|
config: {
|
|
@@ -75,7 +78,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
75
78
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
76
79
|
};
|
|
77
80
|
}>;
|
|
78
|
-
"entity-card:api-docs/consuming-components": _backstage_frontend_plugin_api.
|
|
81
|
+
"entity-card:api-docs/consuming-components": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
79
82
|
kind: "entity-card";
|
|
80
83
|
name: "consuming-components";
|
|
81
84
|
config: {
|
|
@@ -100,7 +103,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
100
103
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
101
104
|
};
|
|
102
105
|
}>;
|
|
103
|
-
"entity-card:api-docs/definition": _backstage_frontend_plugin_api.
|
|
106
|
+
"entity-card:api-docs/definition": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
104
107
|
kind: "entity-card";
|
|
105
108
|
name: "definition";
|
|
106
109
|
config: {
|
|
@@ -125,7 +128,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
125
128
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
126
129
|
};
|
|
127
130
|
}>;
|
|
128
|
-
"entity-card:api-docs/has-apis": _backstage_frontend_plugin_api.
|
|
131
|
+
"entity-card:api-docs/has-apis": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
129
132
|
kind: "entity-card";
|
|
130
133
|
name: "has-apis";
|
|
131
134
|
config: {
|
|
@@ -150,7 +153,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
150
153
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
151
154
|
};
|
|
152
155
|
}>;
|
|
153
|
-
"entity-card:api-docs/provided-apis": _backstage_frontend_plugin_api.
|
|
156
|
+
"entity-card:api-docs/provided-apis": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
154
157
|
kind: "entity-card";
|
|
155
158
|
name: "provided-apis";
|
|
156
159
|
config: {
|
|
@@ -175,7 +178,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
175
178
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
176
179
|
};
|
|
177
180
|
}>;
|
|
178
|
-
"entity-card:api-docs/providing-components": _backstage_frontend_plugin_api.
|
|
181
|
+
"entity-card:api-docs/providing-components": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
179
182
|
kind: "entity-card";
|
|
180
183
|
name: "providing-components";
|
|
181
184
|
config: {
|
|
@@ -200,7 +203,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
200
203
|
type?: _backstage_plugin_catalog_react_alpha.EntityCardType;
|
|
201
204
|
};
|
|
202
205
|
}>;
|
|
203
|
-
"entity-content:api-docs/apis": _backstage_frontend_plugin_api.
|
|
206
|
+
"entity-content:api-docs/apis": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
204
207
|
kind: "entity-content";
|
|
205
208
|
name: "apis";
|
|
206
209
|
config: {
|
|
@@ -237,7 +240,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
237
240
|
filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model.Entity) => boolean);
|
|
238
241
|
};
|
|
239
242
|
}>;
|
|
240
|
-
"entity-content:api-docs/definition": _backstage_frontend_plugin_api.
|
|
243
|
+
"entity-content:api-docs/definition": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
241
244
|
kind: "entity-content";
|
|
242
245
|
name: "definition";
|
|
243
246
|
config: {
|
|
@@ -274,24 +277,24 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
274
277
|
filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model.Entity) => boolean);
|
|
275
278
|
};
|
|
276
279
|
}>;
|
|
277
|
-
"nav-item:api-docs": _backstage_frontend_plugin_api.
|
|
280
|
+
"nav-item:api-docs": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
278
281
|
kind: "nav-item";
|
|
279
282
|
name: undefined;
|
|
280
283
|
config: {};
|
|
281
284
|
configInput: {};
|
|
282
285
|
output: _backstage_frontend_plugin_api.ExtensionDataRef<{
|
|
283
286
|
title: string;
|
|
284
|
-
icon:
|
|
287
|
+
icon: _backstage_frontend_plugin_api.IconComponent;
|
|
285
288
|
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
286
289
|
}, "core.nav-item.target", {}>;
|
|
287
290
|
inputs: {};
|
|
288
291
|
params: {
|
|
289
292
|
title: string;
|
|
290
|
-
icon:
|
|
293
|
+
icon: _backstage_frontend_plugin_api.IconComponent;
|
|
291
294
|
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
292
295
|
};
|
|
293
296
|
}>;
|
|
294
|
-
"page:api-docs": _backstage_frontend_plugin_api.
|
|
297
|
+
"page:api-docs": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
295
298
|
config: {
|
|
296
299
|
initiallySelectedFilter: "all" | "owned" | "starred" | undefined;
|
|
297
300
|
} & {
|
package/dist/alpha.esm.js
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import Grid from '@material-ui/core/Grid';
|
|
3
3
|
import { NavItemBlueprint, ApiBlueprint, PageBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
4
|
-
import { compatWrapper, convertLegacyRouteRef } from '@backstage/core-compat-api';
|
|
5
4
|
import { RELATION_HAS_PART, parseEntityRef } from '@backstage/catalog-model';
|
|
6
5
|
import '@backstage/plugin-catalog-react';
|
|
7
|
-
import '@material-ui/lab/Alert';
|
|
8
|
-
import { apiDocsConfigRef } from './config.esm.js';
|
|
9
6
|
import { AppIcon } from '@backstage/core-components';
|
|
10
7
|
import '@backstage/core-plugin-api';
|
|
8
|
+
import '@material-ui/lab/Alert';
|
|
9
|
+
import { apiDocsConfigRef } from './config.esm.js';
|
|
10
|
+
export { apiDocsTranslationRef } from './translation.esm.js';
|
|
11
11
|
import { defaultDefinitionWidgets } from './components/ApiDefinitionCard/ApiDefinitionWidget.esm.js';
|
|
12
12
|
import '@material-ui/core/Typography';
|
|
13
13
|
import { rootRoute, registerComponentRouteRef } from './routes.esm.js';
|
|
14
14
|
import { EntityCardBlueprint, EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';
|
|
15
|
-
export { apiDocsTranslationRef } from './translation.esm.js';
|
|
16
15
|
|
|
17
16
|
const apiDocsNavItem = NavItemBlueprint.make({
|
|
18
17
|
params: {
|
|
19
18
|
title: "APIs",
|
|
20
|
-
routeRef:
|
|
21
|
-
icon: () =>
|
|
19
|
+
routeRef: rootRoute,
|
|
20
|
+
icon: () => /* @__PURE__ */ jsx(AppIcon, { id: "kind:api" })
|
|
22
21
|
}
|
|
23
22
|
});
|
|
24
23
|
const apiDocsConfigApi = ApiBlueprint.make({
|
|
@@ -46,17 +45,13 @@ const apiDocsExplorerPage = PageBlueprint.makeWithOverrides({
|
|
|
46
45
|
factory(originalFactory, { config }) {
|
|
47
46
|
return originalFactory({
|
|
48
47
|
path: "/api-docs",
|
|
49
|
-
routeRef:
|
|
50
|
-
loader: () => import('./components/ApiExplorerPage/index.esm.js').then(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
)
|
|
58
|
-
)
|
|
59
|
-
)
|
|
48
|
+
routeRef: rootRoute,
|
|
49
|
+
loader: () => import('./components/ApiExplorerPage/index.esm.js').then((m) => /* @__PURE__ */ jsx(
|
|
50
|
+
m.ApiExplorerIndexPage,
|
|
51
|
+
{
|
|
52
|
+
initiallySelectedFilter: config.initiallySelectedFilter
|
|
53
|
+
}
|
|
54
|
+
))
|
|
60
55
|
});
|
|
61
56
|
}
|
|
62
57
|
});
|
|
@@ -71,18 +66,14 @@ const apiDocsHasApisEntityCard = EntityCardBlueprint.make({
|
|
|
71
66
|
({ type, targetRef }) => type.toLocaleLowerCase("en-US") === RELATION_HAS_PART && parseEntityRef(targetRef).kind === "API"
|
|
72
67
|
);
|
|
73
68
|
},
|
|
74
|
-
loader: () => import('./components/ApisCards/index.esm.js').then(
|
|
75
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasApisCard, {}))
|
|
76
|
-
)
|
|
69
|
+
loader: () => import('./components/ApisCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.HasApisCard, {}))
|
|
77
70
|
}
|
|
78
71
|
});
|
|
79
72
|
const apiDocsDefinitionEntityCard = EntityCardBlueprint.make({
|
|
80
73
|
name: "definition",
|
|
81
74
|
params: {
|
|
82
75
|
filter: "kind:api",
|
|
83
|
-
loader: () => import('./components/ApiDefinitionCard/index.esm.js').then(
|
|
84
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.ApiDefinitionCard, {}))
|
|
85
|
-
)
|
|
76
|
+
loader: () => import('./components/ApiDefinitionCard/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.ApiDefinitionCard, {}))
|
|
86
77
|
}
|
|
87
78
|
});
|
|
88
79
|
const apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({
|
|
@@ -92,9 +83,7 @@ const apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({
|
|
|
92
83
|
// We are skipping variants and columns are too complex to map to zod
|
|
93
84
|
// See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252
|
|
94
85
|
filter: "kind:component",
|
|
95
|
-
loader: () => import('./components/ApisCards/index.esm.js').then(
|
|
96
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.ConsumedApisCard, {}))
|
|
97
|
-
)
|
|
86
|
+
loader: () => import('./components/ApisCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.ConsumedApisCard, {}))
|
|
98
87
|
}
|
|
99
88
|
});
|
|
100
89
|
const apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({
|
|
@@ -104,9 +93,7 @@ const apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({
|
|
|
104
93
|
// We are skipping variants and columns are too complex to map to zod
|
|
105
94
|
// See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252
|
|
106
95
|
filter: "kind:component",
|
|
107
|
-
loader: () => import('./components/ApisCards/index.esm.js').then(
|
|
108
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.ProvidedApisCard, {}))
|
|
109
|
-
)
|
|
96
|
+
loader: () => import('./components/ApisCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.ProvidedApisCard, {}))
|
|
110
97
|
}
|
|
111
98
|
});
|
|
112
99
|
const apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({
|
|
@@ -116,9 +103,7 @@ const apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({
|
|
|
116
103
|
// We are skipping variants
|
|
117
104
|
// See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252
|
|
118
105
|
filter: "kind:api",
|
|
119
|
-
loader: () => import('./components/ComponentsCards/index.esm.js').then(
|
|
120
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.ConsumingComponentsCard, {}))
|
|
121
|
-
)
|
|
106
|
+
loader: () => import('./components/ComponentsCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.ConsumingComponentsCard, {}))
|
|
122
107
|
}
|
|
123
108
|
});
|
|
124
109
|
const apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({
|
|
@@ -128,9 +113,7 @@ const apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({
|
|
|
128
113
|
// We are skipping variants
|
|
129
114
|
// See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252
|
|
130
115
|
filter: "kind:api",
|
|
131
|
-
loader: () => import('./components/ComponentsCards/index.esm.js').then(
|
|
132
|
-
(m) => compatWrapper(/* @__PURE__ */ jsx(m.ProvidingComponentsCard, {}))
|
|
133
|
-
)
|
|
116
|
+
loader: () => import('./components/ComponentsCards/index.esm.js').then((m) => /* @__PURE__ */ jsx(m.ProvidingComponentsCard, {}))
|
|
134
117
|
}
|
|
135
118
|
});
|
|
136
119
|
const apiDocsDefinitionEntityContent = EntityContentBlueprint.make({
|
|
@@ -139,11 +122,7 @@ const apiDocsDefinitionEntityContent = EntityContentBlueprint.make({
|
|
|
139
122
|
path: "/definition",
|
|
140
123
|
title: "Definition",
|
|
141
124
|
filter: "kind:api",
|
|
142
|
-
loader: async () => import('./components/ApiDefinitionCard/index.esm.js').then(
|
|
143
|
-
(m) => compatWrapper(
|
|
144
|
-
/* @__PURE__ */ jsx(Grid, { container: true, spacing: 3, children: /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(m.ApiDefinitionCard, {}) }) })
|
|
145
|
-
)
|
|
146
|
-
)
|
|
125
|
+
loader: async () => import('./components/ApiDefinitionCard/index.esm.js').then((m) => /* @__PURE__ */ jsx(Grid, { container: true, spacing: 3, children: /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(m.ApiDefinitionCard, {}) }) }))
|
|
147
126
|
}
|
|
148
127
|
});
|
|
149
128
|
const apiDocsApisEntityContent = EntityContentBlueprint.make({
|
|
@@ -152,24 +131,20 @@ const apiDocsApisEntityContent = EntityContentBlueprint.make({
|
|
|
152
131
|
path: "/apis",
|
|
153
132
|
title: "APIs",
|
|
154
133
|
filter: "kind:component",
|
|
155
|
-
loader: async () => import('./components/ApisCards/index.esm.js').then(
|
|
156
|
-
(m)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
/* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(m.ConsumedApisCard, {}) })
|
|
160
|
-
] })
|
|
161
|
-
)
|
|
162
|
-
)
|
|
134
|
+
loader: async () => import('./components/ApisCards/index.esm.js').then((m) => /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 3, alignItems: "stretch", children: [
|
|
135
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(m.ProvidedApisCard, {}) }),
|
|
136
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 12, children: /* @__PURE__ */ jsx(m.ConsumedApisCard, {}) })
|
|
137
|
+
] }))
|
|
163
138
|
}
|
|
164
139
|
});
|
|
165
140
|
var alpha = createFrontendPlugin({
|
|
166
141
|
pluginId: "api-docs",
|
|
167
142
|
info: { packageJson: () => import('./package.json.esm.js') },
|
|
168
143
|
routes: {
|
|
169
|
-
root:
|
|
144
|
+
root: rootRoute
|
|
170
145
|
},
|
|
171
146
|
externalRoutes: {
|
|
172
|
-
registerApi:
|
|
147
|
+
registerApi: registerComponentRouteRef
|
|
173
148
|
},
|
|
174
149
|
extensions: [
|
|
175
150
|
apiDocsNavItem,
|
package/dist/alpha.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Grid from '@material-ui/core/Grid';\n\nimport {\n ApiBlueprint,\n NavItemBlueprint,\n PageBlueprint,\n createFrontendPlugin,\n} from '@backstage/frontend-plugin-api';\n\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\n\nimport {\n ApiEntity,\n parseEntityRef,\n RELATION_HAS_PART,\n} from '@backstage/catalog-model';\n\nimport { defaultDefinitionWidgets } from './components/ApiDefinitionCard';\nimport { rootRoute, registerComponentRouteRef } from './routes';\nimport { apiDocsConfigRef } from './config';\nimport { AppIcon } from '@backstage/core-components';\n\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\n\nconst apiDocsNavItem = NavItemBlueprint.make({\n params: {\n title: 'APIs',\n routeRef: convertLegacyRouteRef(rootRoute),\n icon: () => compatWrapper(<AppIcon id=\"kind:api\" />),\n },\n});\n\nconst apiDocsConfigApi = ApiBlueprint.make({\n name: 'config',\n params: defineParams =>\n defineParams({\n api: apiDocsConfigRef,\n deps: {},\n factory: () => {\n const definitionWidgets = defaultDefinitionWidgets();\n return {\n getApiDefinitionWidget: (apiEntity: ApiEntity) => {\n return definitionWidgets.find(d => d.type === apiEntity.spec.type);\n },\n };\n },\n }),\n});\n\nconst apiDocsExplorerPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n // Omitting columns and actions for now as their types are too complex to map to zod\n initiallySelectedFilter: z =>\n z.enum(['owned', 'starred', 'all']).optional(),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n path: '/api-docs',\n routeRef: convertLegacyRouteRef(rootRoute),\n loader: () =>\n import('./components/ApiExplorerPage').then(m =>\n compatWrapper(\n <m.ApiExplorerIndexPage\n initiallySelectedFilter={config.initiallySelectedFilter}\n />,\n ),\n ),\n });\n },\n});\n\nconst apiDocsHasApisEntityCard = EntityCardBlueprint.make({\n name: 'has-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: entity => {\n return (\n entity.kind === 'Component' &&\n entity.relations?.some(\n ({ type, targetRef }) =>\n type.toLocaleLowerCase('en-US') === RELATION_HAS_PART &&\n parseEntityRef(targetRef).kind === 'API',\n )!!\n );\n },\n loader: () =>\n import('./components/ApisCards').then(m =>\n compatWrapper(<m.HasApisCard />),\n ),\n },\n});\n\nconst apiDocsDefinitionEntityCard = EntityCardBlueprint.make({\n name: 'definition',\n params: {\n filter: 'kind:api',\n loader: () =>\n import('./components/ApiDefinitionCard').then(m =>\n compatWrapper(<m.ApiDefinitionCard />),\n ),\n },\n});\n\nconst apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({\n name: 'consumed-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:component',\n loader: () =>\n import('./components/ApisCards').then(m =>\n compatWrapper(<m.ConsumedApisCard />),\n ),\n },\n});\n\nconst apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({\n name: 'provided-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:component',\n loader: () =>\n import('./components/ApisCards').then(m =>\n compatWrapper(<m.ProvidedApisCard />),\n ),\n },\n});\n\nconst apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'consuming-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:api',\n loader: () =>\n import('./components/ComponentsCards').then(m =>\n compatWrapper(<m.ConsumingComponentsCard />),\n ),\n },\n});\n\nconst apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'providing-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:api',\n loader: () =>\n import('./components/ComponentsCards').then(m =>\n compatWrapper(<m.ProvidingComponentsCard />),\n ),\n },\n});\n\nconst apiDocsDefinitionEntityContent = EntityContentBlueprint.make({\n name: 'definition',\n params: {\n path: '/definition',\n title: 'Definition',\n filter: 'kind:api',\n loader: async () =>\n import('./components/ApiDefinitionCard').then(m =>\n compatWrapper(\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <m.ApiDefinitionCard />\n </Grid>\n </Grid>,\n ),\n ),\n },\n});\n\nconst apiDocsApisEntityContent = EntityContentBlueprint.make({\n name: 'apis',\n params: {\n path: '/apis',\n title: 'APIs',\n filter: 'kind:component',\n loader: async () =>\n import('./components/ApisCards').then(m =>\n compatWrapper(\n <Grid container spacing={3} alignItems=\"stretch\">\n <Grid item xs={12}>\n <m.ProvidedApisCard />\n </Grid>\n <Grid item xs={12}>\n <m.ConsumedApisCard />\n </Grid>\n </Grid>,\n ),\n ),\n },\n});\n\nexport default createFrontendPlugin({\n pluginId: 'api-docs',\n info: { packageJson: () => import('../package.json') },\n routes: {\n root: convertLegacyRouteRef(rootRoute),\n },\n externalRoutes: {\n registerApi: convertLegacyRouteRef(registerComponentRouteRef),\n },\n extensions: [\n apiDocsNavItem,\n apiDocsConfigApi,\n apiDocsExplorerPage,\n apiDocsHasApisEntityCard,\n apiDocsDefinitionEntityCard,\n apiDocsProvidedApisEntityCard,\n apiDocsConsumedApisEntityCard,\n apiDocsConsumingComponentsEntityCard,\n apiDocsProvidingComponentsEntityCard,\n apiDocsDefinitionEntityContent,\n apiDocsApisEntityContent,\n ],\n});\n\nexport { apiDocsTranslationRef } from './translation';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Grid from '@material-ui/core/Grid';\n\nimport {\n ApiBlueprint,\n NavItemBlueprint,\n PageBlueprint,\n createFrontendPlugin,\n} from '@backstage/frontend-plugin-api';\n\nimport {\n ApiEntity,\n parseEntityRef,\n RELATION_HAS_PART,\n} from '@backstage/catalog-model';\n\nimport { defaultDefinitionWidgets } from './components/ApiDefinitionCard';\nimport { rootRoute, registerComponentRouteRef } from './routes';\nimport { apiDocsConfigRef } from './config';\nimport { AppIcon } from '@backstage/core-components';\n\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\n\nconst apiDocsNavItem = NavItemBlueprint.make({\n params: {\n title: 'APIs',\n routeRef: rootRoute,\n icon: () => <AppIcon id=\"kind:api\" />,\n },\n});\n\nconst apiDocsConfigApi = ApiBlueprint.make({\n name: 'config',\n params: defineParams =>\n defineParams({\n api: apiDocsConfigRef,\n deps: {},\n factory: () => {\n const definitionWidgets = defaultDefinitionWidgets();\n return {\n getApiDefinitionWidget: (apiEntity: ApiEntity) => {\n return definitionWidgets.find(d => d.type === apiEntity.spec.type);\n },\n };\n },\n }),\n});\n\nconst apiDocsExplorerPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n // Omitting columns and actions for now as their types are too complex to map to zod\n initiallySelectedFilter: z =>\n z.enum(['owned', 'starred', 'all']).optional(),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n path: '/api-docs',\n routeRef: rootRoute,\n loader: () =>\n import('./components/ApiExplorerPage').then(m => (\n <m.ApiExplorerIndexPage\n initiallySelectedFilter={config.initiallySelectedFilter}\n />\n )),\n });\n },\n});\n\nconst apiDocsHasApisEntityCard = EntityCardBlueprint.make({\n name: 'has-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: entity => {\n return (\n entity.kind === 'Component' &&\n entity.relations?.some(\n ({ type, targetRef }) =>\n type.toLocaleLowerCase('en-US') === RELATION_HAS_PART &&\n parseEntityRef(targetRef).kind === 'API',\n )!!\n );\n },\n loader: () => import('./components/ApisCards').then(m => <m.HasApisCard />),\n },\n});\n\nconst apiDocsDefinitionEntityCard = EntityCardBlueprint.make({\n name: 'definition',\n params: {\n filter: 'kind:api',\n loader: () =>\n import('./components/ApiDefinitionCard').then(m => (\n <m.ApiDefinitionCard />\n )),\n },\n});\n\nconst apiDocsConsumedApisEntityCard = EntityCardBlueprint.make({\n name: 'consumed-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:component',\n loader: () =>\n import('./components/ApisCards').then(m => <m.ConsumedApisCard />),\n },\n});\n\nconst apiDocsProvidedApisEntityCard = EntityCardBlueprint.make({\n name: 'provided-apis',\n params: {\n // Omitting configSchema for now\n // We are skipping variants and columns are too complex to map to zod\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:component',\n loader: () =>\n import('./components/ApisCards').then(m => <m.ProvidedApisCard />),\n },\n});\n\nconst apiDocsConsumingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'consuming-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:api',\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ConsumingComponentsCard />\n )),\n },\n});\n\nconst apiDocsProvidingComponentsEntityCard = EntityCardBlueprint.make({\n name: 'providing-components',\n params: {\n // Omitting configSchema for now\n // We are skipping variants\n // See: https://github.com/backstage/backstage/pull/22619#discussion_r1477333252\n filter: 'kind:api',\n loader: () =>\n import('./components/ComponentsCards').then(m => (\n <m.ProvidingComponentsCard />\n )),\n },\n});\n\nconst apiDocsDefinitionEntityContent = EntityContentBlueprint.make({\n name: 'definition',\n params: {\n path: '/definition',\n title: 'Definition',\n filter: 'kind:api',\n loader: async () =>\n import('./components/ApiDefinitionCard').then(m => (\n <Grid container spacing={3}>\n <Grid item xs={12}>\n <m.ApiDefinitionCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nconst apiDocsApisEntityContent = EntityContentBlueprint.make({\n name: 'apis',\n params: {\n path: '/apis',\n title: 'APIs',\n filter: 'kind:component',\n loader: async () =>\n import('./components/ApisCards').then(m => (\n <Grid container spacing={3} alignItems=\"stretch\">\n <Grid item xs={12}>\n <m.ProvidedApisCard />\n </Grid>\n <Grid item xs={12}>\n <m.ConsumedApisCard />\n </Grid>\n </Grid>\n )),\n },\n});\n\nexport default createFrontendPlugin({\n pluginId: 'api-docs',\n info: { packageJson: () => import('../package.json') },\n routes: {\n root: rootRoute,\n },\n externalRoutes: {\n registerApi: registerComponentRouteRef,\n },\n extensions: [\n apiDocsNavItem,\n apiDocsConfigApi,\n apiDocsExplorerPage,\n apiDocsHasApisEntityCard,\n apiDocsDefinitionEntityCard,\n apiDocsProvidedApisEntityCard,\n apiDocsConsumedApisEntityCard,\n apiDocsConsumingComponentsEntityCard,\n apiDocsProvidingComponentsEntityCard,\n apiDocsDefinitionEntityContent,\n apiDocsApisEntityContent,\n ],\n});\n\nexport { apiDocsTranslationRef } from './translation';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyCA,MAAM,cAAA,GAAiB,iBAAiB,IAAA,CAAK;AAAA,EAC3C,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,QAAA,EAAU,SAAA;AAAA,IACV,IAAA,EAAM,sBAAM,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAG,UAAA,EAAW;AAAA;AAEvC,CAAC,CAAA;AAED,MAAM,gBAAA,GAAmB,aAAa,IAAA,CAAK;AAAA,EACzC,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ,kBACN,YAAA,CAAa;AAAA,IACX,GAAA,EAAK,gBAAA;AAAA,IACL,MAAM,EAAC;AAAA,IACP,SAAS,MAAM;AACb,MAAA,MAAM,oBAAoB,wBAAA,EAAyB;AACnD,MAAA,OAAO;AAAA,QACL,sBAAA,EAAwB,CAAC,SAAA,KAAyB;AAChD,UAAA,OAAO,kBAAkB,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,IAAA,KAAS,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,QACnE;AAAA,OACF;AAAA,IACF;AAAA,GACD;AACL,CAAC,CAAA;AAED,MAAM,mBAAA,GAAsB,cAAc,iBAAA,CAAkB;AAAA,EAC1D,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ;AAAA;AAAA,MAEN,uBAAA,EAAyB,CAAA,CAAA,KACvB,CAAA,CAAE,IAAA,CAAK,CAAC,SAAS,SAAA,EAAW,KAAK,CAAC,CAAA,CAAE,QAAA;AAAS;AACjD,GACF;AAAA,EACA,OAAA,CAAQ,eAAA,EAAiB,EAAE,MAAA,EAAO,EAAG;AACnC,IAAA,OAAO,eAAA,CAAgB;AAAA,MACrB,IAAA,EAAM,WAAA;AAAA,MACN,QAAA,EAAU,SAAA;AAAA,MACV,QAAQ,MACN,OAAO,2CAA8B,CAAA,CAAE,KAAK,CAAA,CAAA,qBAC1C,GAAA;AAAA,QAAC,CAAA,CAAE,oBAAA;AAAA,QAAF;AAAA,UACC,yBAAyB,MAAA,CAAO;AAAA;AAAA,OAEnC;AAAA,KACJ,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAED,MAAM,wBAAA,GAA2B,oBAAoB,IAAA,CAAK;AAAA,EACxD,IAAA,EAAM,UAAA;AAAA,EACN,MAAA,EAAQ;AAAA;AAAA;AAAA;AAAA,IAIN,QAAQ,CAAA,MAAA,KAAU;AAChB,MAAA,OACE,MAAA,CAAO,IAAA,KAAS,WAAA,IAChB,MAAA,CAAO,SAAA,EAAW,IAAA;AAAA,QAChB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAU,KACjB,IAAA,CAAK,iBAAA,CAAkB,OAAO,CAAA,KAAM,iBAAA,IACpC,cAAA,CAAe,SAAS,EAAE,IAAA,KAAS;AAAA,OACvC;AAAA,IAEJ,CAAA;AAAA,IACA,MAAA,EAAQ,MAAM,OAAO,qCAAwB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,WAAA,EAAF,EAAc,CAAE;AAAA;AAE9E,CAAC,CAAA;AAED,MAAM,2BAAA,GAA8B,oBAAoB,IAAA,CAAK;AAAA,EAC3D,IAAA,EAAM,YAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ,UAAA;AAAA,IACR,MAAA,EAAQ,MACN,OAAO,6CAAgC,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAC5C,GAAA,CAAC,CAAA,CAAE,iBAAA,EAAF,EAAoB,CACtB;AAAA;AAEP,CAAC,CAAA;AAED,MAAM,6BAAA,GAAgC,oBAAoB,IAAA,CAAK;AAAA,EAC7D,IAAA,EAAM,eAAA;AAAA,EACN,MAAA,EAAQ;AAAA;AAAA;AAAA;AAAA,IAIN,MAAA,EAAQ,gBAAA;AAAA,IACR,MAAA,EAAQ,MACN,OAAO,qCAAwB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,gBAAA,EAAF,EAAmB,CAAE;AAAA;AAEvE,CAAC,CAAA;AAED,MAAM,6BAAA,GAAgC,oBAAoB,IAAA,CAAK;AAAA,EAC7D,IAAA,EAAM,eAAA;AAAA,EACN,MAAA,EAAQ;AAAA;AAAA;AAAA;AAAA,IAIN,MAAA,EAAQ,gBAAA;AAAA,IACR,MAAA,EAAQ,MACN,OAAO,qCAAwB,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAAK,GAAA,CAAC,CAAA,CAAE,gBAAA,EAAF,EAAmB,CAAE;AAAA;AAEvE,CAAC,CAAA;AAED,MAAM,oCAAA,GAAuC,oBAAoB,IAAA,CAAK;AAAA,EACpE,IAAA,EAAM,sBAAA;AAAA,EACN,MAAA,EAAQ;AAAA;AAAA;AAAA;AAAA,IAIN,MAAA,EAAQ,UAAA;AAAA,IACR,MAAA,EAAQ,MACN,OAAO,2CAA8B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAC1C,GAAA,CAAC,CAAA,CAAE,uBAAA,EAAF,EAA0B,CAC5B;AAAA;AAEP,CAAC,CAAA;AAED,MAAM,oCAAA,GAAuC,oBAAoB,IAAA,CAAK;AAAA,EACpE,IAAA,EAAM,sBAAA;AAAA,EACN,MAAA,EAAQ;AAAA;AAAA;AAAA;AAAA,IAIN,MAAA,EAAQ,UAAA;AAAA,IACR,MAAA,EAAQ,MACN,OAAO,2CAA8B,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,qBAC1C,GAAA,CAAC,CAAA,CAAE,uBAAA,EAAF,EAA0B,CAC5B;AAAA;AAEP,CAAC,CAAA;AAED,MAAM,8BAAA,GAAiC,uBAAuB,IAAA,CAAK;AAAA,EACjE,IAAA,EAAM,YAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,aAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,MAAA,EAAQ,UAAA;AAAA,IACR,MAAA,EAAQ,YACN,OAAO,6CAAgC,CAAA,CAAE,KAAK,CAAA,CAAA,qBAC5C,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,OAAA,EAAS,GACvB,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,EAAA,EACb,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,iBAAA,EAAF,EAAoB,CAAA,EACvB,CAAA,EACF,CACD;AAAA;AAEP,CAAC,CAAA;AAED,MAAM,wBAAA,GAA2B,uBAAuB,IAAA,CAAK;AAAA,EAC3D,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,gBAAA;AAAA,IACR,MAAA,EAAQ,YACN,OAAO,qCAAwB,EAAE,IAAA,CAAK,CAAA,CAAA,qBACpC,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAS,IAAA,EAAC,OAAA,EAAS,CAAA,EAAG,YAAW,SAAA,EACrC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAI,IAAA,EAAC,EAAA,EAAI,IACb,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,gBAAA,EAAF,EAAmB,CAAA,EACtB,CAAA;AAAA,sBACA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAI,IACb,QAAA,kBAAA,GAAA,CAAC,CAAA,CAAE,gBAAA,EAAF,EAAmB,CAAA,EACtB;AAAA,KAAA,EACF,CACD;AAAA;AAEP,CAAC,CAAA;AAED,YAAe,oBAAA,CAAqB;AAAA,EAClC,QAAA,EAAU,UAAA;AAAA,EACV,MAAM,EAAE,WAAA,EAAa,MAAM,OAAO,uBAAiB,CAAA,EAAE;AAAA,EACrD,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,WAAA,EAAa;AAAA,GACf;AAAA,EACA,UAAA,EAAY;AAAA,IACV,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,mBAAA;AAAA,IACA,wBAAA;AAAA,IACA,2BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA,oCAAA;AAAA,IACA,oCAAA;AAAA,IACA,8BAAA;AAAA,IACA;AAAA;AAEJ,CAAC,CAAA;;;;"}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useEntity } from '@backstage/plugin-catalog-react';
|
|
3
|
+
import { TabbedCard, CardTab } from '@backstage/core-components';
|
|
4
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
5
|
+
import { useTranslationRef } from '@backstage/frontend-plugin-api';
|
|
3
6
|
import Alert from '@material-ui/lab/Alert';
|
|
4
7
|
import { apiDocsConfigRef } from '../../config.esm.js';
|
|
8
|
+
import { apiDocsTranslationRef } from '../../translation.esm.js';
|
|
5
9
|
import { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget/PlainApiDefinitionWidget.esm.js';
|
|
6
|
-
import { TabbedCard, CardTab } from '@backstage/core-components';
|
|
7
|
-
import { useApi } from '@backstage/core-plugin-api';
|
|
8
10
|
|
|
9
11
|
const ApiDefinitionCard = () => {
|
|
10
12
|
const { entity } = useEntity();
|
|
11
13
|
const config = useApi(apiDocsConfigRef);
|
|
12
14
|
const { getApiDefinitionWidget } = config;
|
|
15
|
+
const { t } = useTranslationRef(apiDocsTranslationRef);
|
|
13
16
|
if (!entity) {
|
|
14
|
-
return /* @__PURE__ */ jsx(Alert, { severity: "error", children: "
|
|
17
|
+
return /* @__PURE__ */ jsx(Alert, { severity: "error", children: t("apiDefinitionCard.error.title") });
|
|
15
18
|
}
|
|
16
19
|
const definitionWidget = getApiDefinitionWidget(entity);
|
|
17
20
|
const entityTitle = entity.metadata.title ?? entity.metadata.name;
|
|
18
21
|
if (definitionWidget) {
|
|
19
22
|
return /* @__PURE__ */ jsxs(TabbedCard, { title: entityTitle, children: [
|
|
20
23
|
/* @__PURE__ */ jsx(CardTab, { label: definitionWidget.title, children: definitionWidget.component(entity.spec.definition) }, "widget"),
|
|
21
|
-
/* @__PURE__ */ jsx(CardTab, { label: "
|
|
24
|
+
/* @__PURE__ */ jsx(CardTab, { label: t("apiDefinitionCard.rawButtonTitle"), children: /* @__PURE__ */ jsx(
|
|
22
25
|
PlainApiDefinitionWidget,
|
|
23
26
|
{
|
|
24
27
|
definition: entity.spec.definition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiDefinitionCard.esm.js","sources":["../../../src/components/ApiDefinitionCard/ApiDefinitionCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity } from '@backstage/catalog-model';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport
|
|
1
|
+
{"version":3,"file":"ApiDefinitionCard.esm.js","sources":["../../../src/components/ApiDefinitionCard/ApiDefinitionCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity } from '@backstage/catalog-model';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { CardTab, TabbedCard } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport Alert from '@material-ui/lab/Alert';\nimport { apiDocsConfigRef } from '../../config';\nimport { apiDocsTranslationRef } from '../../translation';\nimport { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget';\n\n/** @public */\nexport const ApiDefinitionCard = () => {\n const { entity } = useEntity<ApiEntity>();\n const config = useApi(apiDocsConfigRef);\n const { getApiDefinitionWidget } = config;\n const { t } = useTranslationRef(apiDocsTranslationRef);\n\n if (!entity) {\n return <Alert severity=\"error\">{t('apiDefinitionCard.error.title')}</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={t('apiDefinitionCard.rawButtonTitle')} 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"],"names":[],"mappings":";;;;;;;;;;AA2BO,MAAM,oBAAoB,MAAM;AACrC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,SAAA,EAAqB;AACxC,EAAA,MAAM,MAAA,GAAS,OAAO,gBAAgB,CAAA;AACtC,EAAA,MAAM,EAAE,wBAAuB,GAAI,MAAA;AACnC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,qBAAqB,CAAA;AAErD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,2BAAQ,KAAA,EAAA,EAAM,QAAA,EAAS,OAAA,EAAS,QAAA,EAAA,CAAA,CAAE,+BAA+B,CAAA,EAAE,CAAA;AAAA,EACrE;AAEA,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,MAAM,CAAA;AACtD,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,QAAA,CAAS,KAAA,IAAS,OAAO,QAAA,CAAS,IAAA;AAE7D,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,uBACE,IAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAO,WAAA,EACjB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,gBAAA,CAAiB,KAAA,EAC9B,QAAA,EAAA,gBAAA,CAAiB,UAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,EAAA,EADR,QAE5C,CAAA;AAAA,sBACA,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,kCAAkC,CAAA,EAClD,QAAA,kBAAA,GAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAY,OAAO,IAAA,CAAK,UAAA;AAAA,UACxB,QAAA,EAAU,gBAAA,CAAiB,WAAA,IAAe,MAAA,CAAO,IAAA,CAAK;AAAA;AAAA,WAHC,KAK3D;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,WAAA;AAAA,MACP,QAAA,EAAU;AAAA;AAAA,wBAER,GAAA,CAAC,OAAA,EAAA,EAAQ,KAAA,EAAO,MAAA,CAAO,KAAK,IAAA,EAC1B,QAAA,kBAAA,GAAA;AAAA,UAAC,wBAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAY,OAAO,IAAA,CAAK,UAAA;AAAA,YACxB,QAAA,EAAU,OAAO,IAAA,CAAK;AAAA;AAAA,aAHY,KAKtC;AAAA;AACF;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -94,8 +94,9 @@ function ApiDefinitionDialog(props) {
|
|
|
94
94
|
children: [
|
|
95
95
|
/* @__PURE__ */ jsxs(DialogTitle, { id: "api-definition-dialog-title", disableTypography: true, children: [
|
|
96
96
|
/* @__PURE__ */ jsxs(Typography, { className: classes.type, children: [
|
|
97
|
-
"API -
|
|
98
|
-
|
|
97
|
+
"API -",
|
|
98
|
+
" ",
|
|
99
|
+
definitionWidget?.title ?? t("apiDefinitionDialog.rawButtonTitle")
|
|
99
100
|
] }),
|
|
100
101
|
/* @__PURE__ */ jsx(Typography, { className: classes.title, variant: "h1", children: entity.metadata.title ?? entity.metadata.name })
|
|
101
102
|
] }),
|
|
@@ -111,7 +112,13 @@ function ApiDefinitionDialog(props) {
|
|
|
111
112
|
className: classes.tabs,
|
|
112
113
|
children: [
|
|
113
114
|
definitionWidget ? /* @__PURE__ */ jsx(Tab, { label: definitionWidget.title, ...a11yProps(tabIndex++) }) : null,
|
|
114
|
-
/* @__PURE__ */ jsx(
|
|
115
|
+
/* @__PURE__ */ jsx(
|
|
116
|
+
Tab,
|
|
117
|
+
{
|
|
118
|
+
label: t("apiDefinitionDialog.rawButtonTitle"),
|
|
119
|
+
...a11yProps(tabIndex++)
|
|
120
|
+
}
|
|
121
|
+
)
|
|
115
122
|
]
|
|
116
123
|
}
|
|
117
124
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiDefinitionDialog.esm.js","sources":["../../../src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { useApi } from '@backstage/core-plugin-api';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReactNode, useState, useEffect } from 'react';\nimport { apiDocsConfigRef } from '../../config';\nimport { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\nconst useStyles = makeStyles(theme => ({\n fullHeightDialog: {\n height: 'calc(100% - 64px)',\n },\n root: {\n display: 'flex',\n flexGrow: 1,\n width: '100%',\n height: '100%',\n },\n tabs: {\n borderRight: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n },\n tabContents: {\n flexGrow: 1,\n overflowX: 'auto',\n },\n title: {\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n fontSize: theme.typography.h3.fontSize,\n marginBottom: 0,\n },\n type: {\n textTransform: 'uppercase',\n fontSize: 11,\n opacity: 0.8,\n marginBottom: theme.spacing(1),\n color: theme.palette.text.primary,\n },\n}));\n\nfunction TabPanel(props: {\n children?: ReactNode;\n index: number;\n value: number;\n}) {\n const { children, value, index, ...other } = props;\n const classes = useStyles();\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`vertical-tabpanel-${index}`}\n aria-labelledby={`vertical-tab-${index}`}\n className={classes.tabContents}\n {...other}\n >\n {value === index && (\n <Box pl={3} pr={3}>\n {children}\n </Box>\n )}\n </div>\n );\n}\n\nfunction a11yProps(index: number) {\n return {\n id: `vertical-tab-${index}`,\n 'aria-controls': `vertical-tabpanel-${index}`,\n };\n}\n\n/**\n * A dialog that lets users inspect the API definition.\n *\n * @public\n */\nexport function ApiDefinitionDialog(props: {\n open: boolean;\n entity: ApiEntity;\n onClose: () => void;\n}) {\n const { open, entity, onClose } = props;\n const [activeTab, setActiveTab] = useState(0);\n const classes = useStyles();\n const { t } = useTranslationRef(apiDocsTranslationRef);\n\n useEffect(() => {\n setActiveTab(0);\n }, [open]);\n\n const config = useApi(apiDocsConfigRef);\n const definitionWidget = config.getApiDefinitionWidget(entity);\n\n let tabIndex = 0;\n let tabPanelIndex = 0;\n\n return (\n <Dialog\n fullWidth\n maxWidth=\"xl\"\n open={open}\n onClose={onClose}\n aria-labelledby=\"api-definition-dialog-title\"\n PaperProps={{ className: classes.fullHeightDialog }}\n >\n <DialogTitle id=\"api-definition-dialog-title\" disableTypography>\n <Typography className={classes.type}>\n API - {definitionWidget?.title ?? '
|
|
1
|
+
{"version":3,"file":"ApiDefinitionDialog.esm.js","sources":["../../../src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { useApi } from '@backstage/core-plugin-api';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Tab from '@material-ui/core/Tab';\nimport Tabs from '@material-ui/core/Tabs';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ReactNode, useState, useEffect } from 'react';\nimport { apiDocsConfigRef } from '../../config';\nimport { PlainApiDefinitionWidget } from '../PlainApiDefinitionWidget';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { apiDocsTranslationRef } from '../../translation';\n\nconst useStyles = makeStyles(theme => ({\n fullHeightDialog: {\n height: 'calc(100% - 64px)',\n },\n root: {\n display: 'flex',\n flexGrow: 1,\n width: '100%',\n height: '100%',\n },\n tabs: {\n borderRight: `1px solid ${theme.palette.divider}`,\n flexShrink: 0,\n },\n tabContents: {\n flexGrow: 1,\n overflowX: 'auto',\n },\n title: {\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n fontSize: theme.typography.h3.fontSize,\n marginBottom: 0,\n },\n type: {\n textTransform: 'uppercase',\n fontSize: 11,\n opacity: 0.8,\n marginBottom: theme.spacing(1),\n color: theme.palette.text.primary,\n },\n}));\n\nfunction TabPanel(props: {\n children?: ReactNode;\n index: number;\n value: number;\n}) {\n const { children, value, index, ...other } = props;\n const classes = useStyles();\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`vertical-tabpanel-${index}`}\n aria-labelledby={`vertical-tab-${index}`}\n className={classes.tabContents}\n {...other}\n >\n {value === index && (\n <Box pl={3} pr={3}>\n {children}\n </Box>\n )}\n </div>\n );\n}\n\nfunction a11yProps(index: number) {\n return {\n id: `vertical-tab-${index}`,\n 'aria-controls': `vertical-tabpanel-${index}`,\n };\n}\n\n/**\n * A dialog that lets users inspect the API definition.\n *\n * @public\n */\nexport function ApiDefinitionDialog(props: {\n open: boolean;\n entity: ApiEntity;\n onClose: () => void;\n}) {\n const { open, entity, onClose } = props;\n const [activeTab, setActiveTab] = useState(0);\n const classes = useStyles();\n const { t } = useTranslationRef(apiDocsTranslationRef);\n\n useEffect(() => {\n setActiveTab(0);\n }, [open]);\n\n const config = useApi(apiDocsConfigRef);\n const definitionWidget = config.getApiDefinitionWidget(entity);\n\n let tabIndex = 0;\n let tabPanelIndex = 0;\n\n return (\n <Dialog\n fullWidth\n maxWidth=\"xl\"\n open={open}\n onClose={onClose}\n aria-labelledby=\"api-definition-dialog-title\"\n PaperProps={{ className: classes.fullHeightDialog }}\n >\n <DialogTitle id=\"api-definition-dialog-title\" disableTypography>\n <Typography className={classes.type}>\n API -{' '}\n {definitionWidget?.title ?? t('apiDefinitionDialog.rawButtonTitle')}\n </Typography>\n <Typography className={classes.title} variant=\"h1\">\n {entity.metadata.title ?? entity.metadata.name}\n </Typography>\n </DialogTitle>\n <DialogContent dividers className={classes.root}>\n <Tabs\n orientation=\"vertical\"\n variant=\"scrollable\"\n value={activeTab}\n onChange={(_, newValue) => setActiveTab(newValue)}\n aria-label={t('apiDefinitionDialog.tabsAriaLabel')}\n className={classes.tabs}\n >\n {definitionWidget ? (\n <Tab label={definitionWidget.title} {...a11yProps(tabIndex++)} />\n ) : null}\n <Tab\n label={t('apiDefinitionDialog.rawButtonTitle')}\n {...a11yProps(tabIndex++)}\n />\n </Tabs>\n\n {definitionWidget ? (\n <TabPanel value={activeTab} index={tabPanelIndex++}>\n {definitionWidget.component(entity.spec.definition)}\n </TabPanel>\n ) : null}\n <TabPanel value={activeTab} index={tabPanelIndex++}>\n <PlainApiDefinitionWidget\n definition={entity.spec.definition}\n language={definitionWidget?.rawLanguage ?? entity.spec.type}\n />\n </TabPanel>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} color=\"primary\">\n {t('apiDefinitionDialog.closeButtonTitle')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@ import { EntityTable } from '@backstage/plugin-catalog-react';
|
|
|
3
3
|
import ExtensionIcon from '@material-ui/icons/Extension';
|
|
4
4
|
import ToggleButton from '@material-ui/lab/ToggleButton';
|
|
5
5
|
import { useState } from 'react';
|
|
6
|
-
import '@material-ui/lab/Alert';
|
|
7
|
-
import '../../config.esm.js';
|
|
8
6
|
import '@backstage/core-components';
|
|
9
7
|
import '@backstage/core-plugin-api';
|
|
8
|
+
import '@backstage/frontend-plugin-api';
|
|
9
|
+
import '@material-ui/lab/Alert';
|
|
10
|
+
import '../../config.esm.js';
|
|
11
|
+
import { apiDocsTranslationRef } from '../../translation.esm.js';
|
|
10
12
|
import '../AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.esm.js';
|
|
11
13
|
import '../GraphQlDefinitionWidget/GraphQlDefinitionWidget.esm.js';
|
|
12
14
|
import '../OpenApiDefinitionWidget/OpenApiDefinitionWidget.esm.js';
|
|
@@ -14,7 +16,6 @@ import '@material-ui/core/styles';
|
|
|
14
16
|
import { ApiTypeTitle } from '../ApiDefinitionCard/ApiTypeTitle.esm.js';
|
|
15
17
|
import { ApiDefinitionDialog } from '../ApiDefinitionDialog/ApiDefinitionDialog.esm.js';
|
|
16
18
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
17
|
-
import { apiDocsTranslationRef } from '../../translation.esm.js';
|
|
18
19
|
|
|
19
20
|
function createSpecApiTypeColumn(t) {
|
|
20
21
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.esm.js","sources":["../../../src/components/ApisCards/presets.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity } from '@backstage/catalog-model';\nimport { TableColumn } from '@backstage/core-components';\nimport { EntityTable } from '@backstage/plugin-catalog-react';\nimport ExtensionIcon from '@material-ui/icons/Extension';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport { useState } from 'react';\nimport { ApiTypeTitle } from '../ApiDefinitionCard';\nimport { ApiDefinitionDialog } from '../ApiDefinitionDialog';\nimport {\n TranslationFunction,\n useTranslationRef,\n} from '@backstage/core-plugin-api/alpha';\nimport { apiDocsTranslationRef } from '../../translation';\n\nexport function createSpecApiTypeColumn(\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity> {\n return {\n title: t('apiEntityColumns.typeTitle'),\n field: 'spec.type',\n render: entity => <ApiTypeTitle apiEntity={entity} />,\n };\n}\n\nconst ApiDefinitionButton = ({ apiEntity }: { apiEntity: ApiEntity }) => {\n const [dialogOpen, setDialogOpen] = useState(false);\n const { t } = useTranslationRef(apiDocsTranslationRef);\n return (\n <>\n <ToggleButton\n aria-label={t('apiDefinitionDialog.toggleButtonAriaLabel')}\n onClick={() => setDialogOpen(!dialogOpen)}\n value={dialogOpen}\n >\n <ExtensionIcon />\n </ToggleButton>\n <ApiDefinitionDialog\n entity={apiEntity}\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n />\n </>\n );\n};\n\nfunction createApiDefinitionColumn(\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity> {\n return {\n title: t('apiEntityColumns.apiDefinitionTitle'),\n render: entity => <ApiDefinitionButton apiEntity={entity} />,\n };\n}\n\nexport const getApiEntityColumns = (\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity>[] => {\n return [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createSystemColumn(),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(t),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n createApiDefinitionColumn(t),\n ];\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"presets.esm.js","sources":["../../../src/components/ApisCards/presets.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiEntity } from '@backstage/catalog-model';\nimport { TableColumn } from '@backstage/core-components';\nimport { EntityTable } from '@backstage/plugin-catalog-react';\nimport ExtensionIcon from '@material-ui/icons/Extension';\nimport ToggleButton from '@material-ui/lab/ToggleButton';\nimport { useState } from 'react';\nimport { ApiTypeTitle } from '../ApiDefinitionCard';\nimport { ApiDefinitionDialog } from '../ApiDefinitionDialog';\nimport {\n TranslationFunction,\n useTranslationRef,\n} from '@backstage/core-plugin-api/alpha';\nimport { apiDocsTranslationRef } from '../../translation';\n\nexport function createSpecApiTypeColumn(\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity> {\n return {\n title: t('apiEntityColumns.typeTitle'),\n field: 'spec.type',\n render: entity => <ApiTypeTitle apiEntity={entity} />,\n };\n}\n\nconst ApiDefinitionButton = ({ apiEntity }: { apiEntity: ApiEntity }) => {\n const [dialogOpen, setDialogOpen] = useState(false);\n const { t } = useTranslationRef(apiDocsTranslationRef);\n return (\n <>\n <ToggleButton\n aria-label={t('apiDefinitionDialog.toggleButtonAriaLabel')}\n onClick={() => setDialogOpen(!dialogOpen)}\n value={dialogOpen}\n >\n <ExtensionIcon />\n </ToggleButton>\n <ApiDefinitionDialog\n entity={apiEntity}\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n />\n </>\n );\n};\n\nfunction createApiDefinitionColumn(\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity> {\n return {\n title: t('apiEntityColumns.apiDefinitionTitle'),\n render: entity => <ApiDefinitionButton apiEntity={entity} />,\n };\n}\n\nexport const getApiEntityColumns = (\n t: TranslationFunction<typeof apiDocsTranslationRef.T>,\n): TableColumn<ApiEntity>[] => {\n return [\n EntityTable.columns.createEntityRefColumn({ defaultKind: 'API' }),\n EntityTable.columns.createSystemColumn(),\n EntityTable.columns.createOwnerColumn(),\n createSpecApiTypeColumn(t),\n EntityTable.columns.createSpecLifecycleColumn(),\n EntityTable.columns.createMetadataDescriptionColumn(),\n createApiDefinitionColumn(t),\n ];\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA8BO,SAAS,wBACd,CAAA,EACwB;AACxB,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,EAAE,4BAA4B,CAAA;AAAA,IACrC,KAAA,EAAO,WAAA;AAAA,IACP,MAAA,EAAQ,CAAA,MAAA,qBAAU,GAAA,CAAC,YAAA,EAAA,EAAa,WAAW,MAAA,EAAQ;AAAA,GACrD;AACF;AAEA,MAAM,mBAAA,GAAsB,CAAC,EAAE,SAAA,EAAU,KAAgC;AACvE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAClD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,qBAAqB,CAAA;AACrD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAY,EAAE,2CAA2C,CAAA;AAAA,QACzD,OAAA,EAAS,MAAM,aAAA,CAAc,CAAC,UAAU,CAAA;AAAA,QACxC,KAAA,EAAO,UAAA;AAAA,QAEP,8BAAC,aAAA,EAAA,EAAc;AAAA;AAAA,KACjB;AAAA,oBACA,GAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,SAAA;AAAA,QACR,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,MAAM,aAAA,CAAc,KAAK;AAAA;AAAA;AACpC,GAAA,EACF,CAAA;AAEJ,CAAA;AAEA,SAAS,0BACP,CAAA,EACwB;AACxB,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,EAAE,qCAAqC,CAAA;AAAA,IAC9C,MAAA,EAAQ,CAAA,MAAA,qBAAU,GAAA,CAAC,mBAAA,EAAA,EAAoB,WAAW,MAAA,EAAQ;AAAA,GAC5D;AACF;AAEO,MAAM,mBAAA,GAAsB,CACjC,CAAA,KAC6B;AAC7B,EAAA,OAAO;AAAA,IACL,YAAY,OAAA,CAAQ,qBAAA,CAAsB,EAAE,WAAA,EAAa,OAAO,CAAA;AAAA,IAChE,WAAA,CAAY,QAAQ,kBAAA,EAAmB;AAAA,IACvC,WAAA,CAAY,QAAQ,iBAAA,EAAkB;AAAA,IACtC,wBAAwB,CAAC,CAAA;AAAA,IACzB,WAAA,CAAY,QAAQ,yBAAA,EAA0B;AAAA,IAC9C,WAAA,CAAY,QAAQ,+BAAA,EAAgC;AAAA,IACpD,0BAA0B,CAAC;AAAA,GAC7B;AACF;;;;"}
|
package/dist/package.json.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@backstage/plugin-api-docs";
|
|
2
|
-
var version = "0.13.
|
|
2
|
+
var version = "0.13.2-next.0";
|
|
3
3
|
var description = "A Backstage plugin that helps represent API entities in the frontend";
|
|
4
4
|
var backstage = {
|
|
5
5
|
role: "frontend-plugin",
|
|
@@ -54,7 +54,6 @@ var scripts = {
|
|
|
54
54
|
var dependencies = {
|
|
55
55
|
"@asyncapi/react-component": "^2.3.3",
|
|
56
56
|
"@backstage/catalog-model": "workspace:^",
|
|
57
|
-
"@backstage/core-compat-api": "workspace:^",
|
|
58
57
|
"@backstage/core-components": "workspace:^",
|
|
59
58
|
"@backstage/core-plugin-api": "workspace:^",
|
|
60
59
|
"@backstage/frontend-plugin-api": "workspace:^",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/plugin.esm.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import 'react/jsx-runtime';
|
|
2
2
|
import '@backstage/plugin-catalog-react';
|
|
3
|
-
import '@material-ui/lab/Alert';
|
|
4
|
-
import { apiDocsConfigRef } from './config.esm.js';
|
|
5
3
|
import '@backstage/core-components';
|
|
6
4
|
import { createPlugin, createApiFactory, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
|
|
5
|
+
import '@backstage/frontend-plugin-api';
|
|
6
|
+
import '@material-ui/lab/Alert';
|
|
7
|
+
import { apiDocsConfigRef } from './config.esm.js';
|
|
8
|
+
import './translation.esm.js';
|
|
7
9
|
import { defaultDefinitionWidgets } from './components/ApiDefinitionCard/ApiDefinitionWidget.esm.js';
|
|
8
10
|
import '@material-ui/core/Typography';
|
|
9
11
|
import { registerComponentRouteRef, rootRoute } from './routes.esm.js';
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { 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":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { 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":[],"mappings":";;;;;;;;;;;;AA4BO,MAAM,gBAAgB,YAAA,CAAa;AAAA,EACxC,EAAA,EAAI,UAAA;AAAA,EACJ,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,gBAAA;AAAA,MACL,MAAM,EAAC;AAAA,MACP,SAAS,MAAM;AACb,QAAA,MAAM,oBAAoB,wBAAA,EAAyB;AACnD,QAAA,OAAO;AAAA,UACL,sBAAA,EAAwB,CAAC,SAAA,KAAyB;AAChD,YAAA,OAAO,kBAAkB,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,IAAA,KAAS,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,UACnE;AAAA,SACF;AAAA,MACF;AAAA,KACD;AAAA,GACH;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,WAAA,EAAa;AAAA;AAEjB,CAAC;AAGM,MAAM,kBAAkB,aAAA,CAAc,OAAA;AAAA,EAC3C,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,iBAAA;AAAA,IACN,SAAA,EAAW,MACT,OAAO,2CAA8B,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,oBAAoB,CAAA;AAAA,IACzE,UAAA,EAAY;AAAA,GACb;AACH;AAGO,MAAM,0BAA0B,aAAA,CAAc,OAAA;AAAA,EACnD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,yBAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,6CAAgC,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,iBAAiB;AAAA;AAC1E,GACD;AACH;AAGO,MAAM,yBAAyB,aAAA,CAAc,OAAA;AAAA,EAClD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,wBAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,qCAAwB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,gBAAgB;AAAA;AACjE,GACD;AACH;AAGO,MAAM,gCAAgC,aAAA,CAAc,OAAA;AAAA,EACzD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,+BAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,2CAA8B,CAAA,CAAE,IAAA;AAAA,QACrC,OAAK,CAAA,CAAE;AAAA;AACT;AACJ,GACD;AACH;AAGO,MAAM,yBAAyB,aAAA,CAAc,OAAA;AAAA,EAClD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,wBAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,qCAAwB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,gBAAgB;AAAA;AACjE,GACD;AACH;AAGO,MAAM,gCAAgC,aAAA,CAAc,OAAA;AAAA,EACzD,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,+BAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,2CAA8B,CAAA,CAAE,IAAA;AAAA,QACrC,OAAK,CAAA,CAAE;AAAA;AACT;AACJ,GACD;AACH;AAGO,MAAM,oBAAoB,aAAA,CAAc,OAAA;AAAA,EAC7C,wBAAA,CAAyB;AAAA,IACvB,IAAA,EAAM,mBAAA;AAAA,IACN,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,MAAM,OAAO,qCAAwB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,WAAW;AAAA;AACtE,GACD;AACH;;;;"}
|
package/dist/translation.esm.js
CHANGED
|
@@ -3,10 +3,17 @@ import { createTranslationRef } from '@backstage/frontend-plugin-api';
|
|
|
3
3
|
const apiDocsTranslationRef = createTranslationRef({
|
|
4
4
|
id: "api-docs",
|
|
5
5
|
messages: {
|
|
6
|
+
apiDefinitionCard: {
|
|
7
|
+
error: {
|
|
8
|
+
title: "Could not fetch the API"
|
|
9
|
+
},
|
|
10
|
+
rawButtonTitle: "Raw"
|
|
11
|
+
},
|
|
6
12
|
apiDefinitionDialog: {
|
|
7
13
|
closeButtonTitle: "Close",
|
|
8
14
|
tabsAriaLabel: "API definition options",
|
|
9
|
-
toggleButtonAriaLabel: "Toggle API Definition Dialog"
|
|
15
|
+
toggleButtonAriaLabel: "Toggle API Definition Dialog",
|
|
16
|
+
rawButtonTitle: "Raw"
|
|
10
17
|
},
|
|
11
18
|
defaultApiExplorerPage: {
|
|
12
19
|
title: "APIs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { createTranslationRef } from '@backstage/frontend-plugin-api';\n\n/**\n * @alpha\n */\nexport const apiDocsTranslationRef = createTranslationRef({\n id: 'api-docs',\n messages: {\n apiDefinitionDialog: {\n closeButtonTitle: 'Close',\n tabsAriaLabel: 'API definition options',\n toggleButtonAriaLabel: 'Toggle API Definition Dialog',\n },\n defaultApiExplorerPage: {\n title: 'APIs',\n subtitle: '{{orgName}} API Explorer',\n pageTitleOverride: 'APIs',\n createButtonTitle: 'Register Existing API',\n supportButtonTitle: 'All your APIs',\n },\n consumedApisCard: {\n title: 'Consumed APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not consume any APIs.',\n },\n },\n hasApisCard: {\n title: 'APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not contain any APIs.',\n },\n },\n providedApisCard: {\n title: 'Provided APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not provide any APIs.',\n },\n },\n apiEntityColumns: {\n typeTitle: 'Type',\n apiDefinitionTitle: 'API Definition',\n },\n consumingComponentsCard: {\n title: 'Consumers',\n error: {\n title: 'Could not load components',\n },\n emptyContent: {\n title: 'No component consumes this API.',\n },\n },\n providingComponentsCard: {\n title: 'Providers',\n error: {\n title: 'Could not load components',\n },\n emptyContent: {\n title: 'No component provides this API.',\n },\n },\n apisCardHelpLinkTitle: 'Learn how to change this',\n },\n});\n"],"names":[],"mappings":";;AAqBO,MAAM,wBAAwB,oBAAA,CAAqB;AAAA,EACxD,EAAA,EAAI,UAAA;AAAA,EACJ,QAAA,EAAU;AAAA,IACR,mBAAA,EAAqB;AAAA,MACnB,gBAAA,EAAkB,OAAA;AAAA,MAClB,aAAA,EAAe,wBAAA;AAAA,MACf,qBAAA,EAAuB;AAAA,
|
|
1
|
+
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2025 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 { createTranslationRef } from '@backstage/frontend-plugin-api';\n\n/**\n * @alpha\n */\nexport const apiDocsTranslationRef = createTranslationRef({\n id: 'api-docs',\n messages: {\n apiDefinitionCard: {\n error: {\n title: 'Could not fetch the API',\n },\n rawButtonTitle: 'Raw',\n },\n apiDefinitionDialog: {\n closeButtonTitle: 'Close',\n tabsAriaLabel: 'API definition options',\n toggleButtonAriaLabel: 'Toggle API Definition Dialog',\n rawButtonTitle: 'Raw',\n },\n defaultApiExplorerPage: {\n title: 'APIs',\n subtitle: '{{orgName}} API Explorer',\n pageTitleOverride: 'APIs',\n createButtonTitle: 'Register Existing API',\n supportButtonTitle: 'All your APIs',\n },\n consumedApisCard: {\n title: 'Consumed APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not consume any APIs.',\n },\n },\n hasApisCard: {\n title: 'APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not contain any APIs.',\n },\n },\n providedApisCard: {\n title: 'Provided APIs',\n error: {\n title: 'Could not load APIs',\n },\n emptyContent: {\n title: 'This {{entity}} does not provide any APIs.',\n },\n },\n apiEntityColumns: {\n typeTitle: 'Type',\n apiDefinitionTitle: 'API Definition',\n },\n consumingComponentsCard: {\n title: 'Consumers',\n error: {\n title: 'Could not load components',\n },\n emptyContent: {\n title: 'No component consumes this API.',\n },\n },\n providingComponentsCard: {\n title: 'Providers',\n error: {\n title: 'Could not load components',\n },\n emptyContent: {\n title: 'No component provides this API.',\n },\n },\n apisCardHelpLinkTitle: 'Learn how to change this',\n },\n});\n"],"names":[],"mappings":";;AAqBO,MAAM,wBAAwB,oBAAA,CAAqB;AAAA,EACxD,EAAA,EAAI,UAAA;AAAA,EACJ,QAAA,EAAU;AAAA,IACR,iBAAA,EAAmB;AAAA,MACjB,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,mBAAA,EAAqB;AAAA,MACnB,gBAAA,EAAkB,OAAA;AAAA,MAClB,aAAA,EAAe,wBAAA;AAAA,MACf,qBAAA,EAAuB,8BAAA;AAAA,MACvB,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,sBAAA,EAAwB;AAAA,MACtB,KAAA,EAAO,MAAA;AAAA,MACP,QAAA,EAAU,0BAAA;AAAA,MACV,iBAAA,EAAmB,MAAA;AAAA,MACnB,iBAAA,EAAmB,uBAAA;AAAA,MACnB,kBAAA,EAAoB;AAAA,KACtB;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,WAAA,EAAa;AAAA,MACX,KAAA,EAAO,MAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,KAAA,EAAO,eAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB,SAAA,EAAW,MAAA;AAAA,MACX,kBAAA,EAAoB;AAAA,KACtB;AAAA,IACA,uBAAA,EAAyB;AAAA,MACvB,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,uBAAA,EAAyB;AAAA,MACvB,KAAA,EAAO,WAAA;AAAA,MACP,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,qBAAA,EAAuB;AAAA;AAE3B,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-api-docs",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2-next.0",
|
|
4
4
|
"description": "A Backstage plugin that helps represent API entities in the frontend",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -66,15 +66,14 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@asyncapi/react-component": "^2.3.3",
|
|
69
|
-
"@backstage/catalog-model": "1.7.6
|
|
70
|
-
"@backstage/core-
|
|
71
|
-
"@backstage/core-
|
|
72
|
-
"@backstage/
|
|
73
|
-
"@backstage/
|
|
74
|
-
"@backstage/plugin-catalog": "1.
|
|
75
|
-
"@backstage/plugin-catalog-
|
|
76
|
-
"@backstage/plugin-
|
|
77
|
-
"@backstage/plugin-permission-react": "0.4.38-next.0",
|
|
69
|
+
"@backstage/catalog-model": "1.7.6",
|
|
70
|
+
"@backstage/core-components": "0.18.4-next.0",
|
|
71
|
+
"@backstage/core-plugin-api": "1.12.1-next.0",
|
|
72
|
+
"@backstage/frontend-plugin-api": "0.13.2-next.0",
|
|
73
|
+
"@backstage/plugin-catalog": "1.32.1-next.0",
|
|
74
|
+
"@backstage/plugin-catalog-common": "1.1.7",
|
|
75
|
+
"@backstage/plugin-catalog-react": "1.21.4-next.0",
|
|
76
|
+
"@backstage/plugin-permission-react": "0.4.39-next.0",
|
|
78
77
|
"@graphiql/react": "^0.23.0",
|
|
79
78
|
"@material-ui/core": "^4.12.2",
|
|
80
79
|
"@material-ui/icons": "^4.9.1",
|
|
@@ -86,10 +85,10 @@
|
|
|
86
85
|
"swagger-ui-react": "^5.27.1"
|
|
87
86
|
},
|
|
88
87
|
"devDependencies": {
|
|
89
|
-
"@backstage/cli": "0.34.
|
|
90
|
-
"@backstage/core-app-api": "1.19.
|
|
91
|
-
"@backstage/dev-utils": "1.1.
|
|
92
|
-
"@backstage/test-utils": "1.7.
|
|
88
|
+
"@backstage/cli": "0.34.6-next.0",
|
|
89
|
+
"@backstage/core-app-api": "1.19.3-next.0",
|
|
90
|
+
"@backstage/dev-utils": "1.1.18-next.0",
|
|
91
|
+
"@backstage/test-utils": "1.7.14-next.0",
|
|
93
92
|
"@testing-library/dom": "^10.0.0",
|
|
94
93
|
"@testing-library/jest-dom": "^6.0.0",
|
|
95
94
|
"@testing-library/react": "^16.0.0",
|