@nospt/backstage-plugin-apigee 1.1.1
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/README.md +98 -0
- package/config.d.ts +30 -0
- package/dist/components/ApiCard.esm.js +105 -0
- package/dist/components/ApiCard.esm.js.map +1 -0
- package/dist/components/ApiCard.module.css.esm.js +8 -0
- package/dist/components/ApiCard.module.css.esm.js.map +1 -0
- package/dist/components/ApiCardGrid.esm.js +14 -0
- package/dist/components/ApiCardGrid.esm.js.map +1 -0
- package/dist/components/ApiDetailsDrawer.esm.js +709 -0
- package/dist/components/ApiDetailsDrawer.esm.js.map +1 -0
- package/dist/components/ApiDetailsDrawer.module.css.esm.js +8 -0
- package/dist/components/ApiDetailsDrawer.module.css.esm.js.map +1 -0
- package/dist/components/ApiTable.esm.js +184 -0
- package/dist/components/ApiTable.esm.js.map +1 -0
- package/dist/components/ApiTable.module.css.esm.js +8 -0
- package/dist/components/ApiTable.module.css.esm.js.map +1 -0
- package/dist/components/ApigeeApiCatalogPage.esm.js +245 -0
- package/dist/components/ApigeeApiCatalogPage.esm.js.map +1 -0
- package/dist/components/ApigeeHomePage.esm.js +190 -0
- package/dist/components/ApigeeHomePage.esm.js.map +1 -0
- package/dist/components/ApigeeHomePage.module.css.esm.js +8 -0
- package/dist/components/ApigeeHomePage.module.css.esm.js.map +1 -0
- package/dist/components/ApigeeNavContent.esm.js +28 -0
- package/dist/components/ApigeeNavContent.esm.js.map +1 -0
- package/dist/components/CountCards.esm.js +120 -0
- package/dist/components/CountCards.esm.js.map +1 -0
- package/dist/components/CountCards.module.css.esm.js +8 -0
- package/dist/components/CountCards.module.css.esm.js.map +1 -0
- package/dist/components/FilterToolbar.esm.js +131 -0
- package/dist/components/FilterToolbar.esm.js.map +1 -0
- package/dist/components/FilterToolbar.module.css.esm.js +8 -0
- package/dist/components/FilterToolbar.module.css.esm.js.map +1 -0
- package/dist/components/SearchBar.esm.js +20 -0
- package/dist/components/SearchBar.esm.js.map +1 -0
- package/dist/components/apiCardViewModel.esm.js +57 -0
- package/dist/components/apiCardViewModel.esm.js.map +1 -0
- package/dist/components/apiDetailViewModel.esm.js +98 -0
- package/dist/components/apiDetailViewModel.esm.js.map +1 -0
- package/dist/components/apiOperations.esm.js +196 -0
- package/dist/components/apiOperations.esm.js.map +1 -0
- package/dist/components/apigeeFacetFilters.esm.js +62 -0
- package/dist/components/apigeeFacetFilters.esm.js.map +1 -0
- package/dist/components/apigeeOrgFilter.esm.js +11 -0
- package/dist/components/apigeeOrgFilter.esm.js.map +1 -0
- package/dist/components/apigeeSearchParams.esm.js +55 -0
- package/dist/components/apigeeSearchParams.esm.js.map +1 -0
- package/dist/components/brandIcons.esm.js +36 -0
- package/dist/components/brandIcons.esm.js.map +1 -0
- package/dist/components/codeHighlight.esm.js +71 -0
- package/dist/components/codeHighlight.esm.js.map +1 -0
- package/dist/components/codeSnippet.esm.js +128 -0
- package/dist/components/codeSnippet.esm.js.map +1 -0
- package/dist/components/facetModel.esm.js +86 -0
- package/dist/components/facetModel.esm.js.map +1 -0
- package/dist/components/grouping.esm.js +6 -0
- package/dist/components/grouping.esm.js.map +1 -0
- package/dist/components/states.esm.js +65 -0
- package/dist/components/states.esm.js.map +1 -0
- package/dist/components/useApigeeFilters.esm.js +191 -0
- package/dist/components/useApigeeFilters.esm.js.map +1 -0
- package/dist/components/useDebouncedValue.esm.js +13 -0
- package/dist/components/useDebouncedValue.esm.js.map +1 -0
- package/dist/constants.esm.js +9 -0
- package/dist/constants.esm.js.map +1 -0
- package/dist/index.d.ts +203 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +29 -0
- package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +1 -0
- package/dist/plugin.esm.js +59 -0
- package/dist/plugin.esm.js.map +1 -0
- package/dist/routes.esm.js +8 -0
- package/dist/routes.esm.js.map +1 -0
- package/package.json +95 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
3
|
+
|
|
4
|
+
declare const apigeePage: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
5
|
+
kind: "page";
|
|
6
|
+
name: undefined;
|
|
7
|
+
config: {
|
|
8
|
+
path: string | undefined;
|
|
9
|
+
title: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
configInput: {
|
|
12
|
+
path?: string | undefined;
|
|
13
|
+
title?: string | undefined;
|
|
14
|
+
};
|
|
15
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
16
|
+
optional: true;
|
|
17
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
18
|
+
optional: true;
|
|
19
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
20
|
+
optional: true;
|
|
21
|
+
}>;
|
|
22
|
+
inputs: {
|
|
23
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
24
|
+
optional: true;
|
|
25
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
26
|
+
optional: true;
|
|
27
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
28
|
+
optional: true;
|
|
29
|
+
}>, {
|
|
30
|
+
singleton: false;
|
|
31
|
+
optional: false;
|
|
32
|
+
internal: false;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
params: {
|
|
36
|
+
path: string;
|
|
37
|
+
title?: string;
|
|
38
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
39
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
40
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
41
|
+
noHeader?: boolean;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
declare const apigeeHomeSubPage: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
45
|
+
kind: "sub-page";
|
|
46
|
+
name: "home";
|
|
47
|
+
config: {
|
|
48
|
+
path: string | undefined;
|
|
49
|
+
title: string | undefined;
|
|
50
|
+
};
|
|
51
|
+
configInput: {
|
|
52
|
+
path?: string | undefined;
|
|
53
|
+
title?: string | undefined;
|
|
54
|
+
};
|
|
55
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
56
|
+
optional: true;
|
|
57
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
58
|
+
optional: true;
|
|
59
|
+
}>;
|
|
60
|
+
inputs: {};
|
|
61
|
+
params: {
|
|
62
|
+
path: string;
|
|
63
|
+
title: string;
|
|
64
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
65
|
+
loader: () => Promise<JSX.Element>;
|
|
66
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
67
|
+
};
|
|
68
|
+
}>;
|
|
69
|
+
declare const apigeeCatalogSubPage: _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
70
|
+
kind: "sub-page";
|
|
71
|
+
name: "catalog";
|
|
72
|
+
config: {
|
|
73
|
+
path: string | undefined;
|
|
74
|
+
title: string | undefined;
|
|
75
|
+
};
|
|
76
|
+
configInput: {
|
|
77
|
+
path?: string | undefined;
|
|
78
|
+
title?: string | undefined;
|
|
79
|
+
};
|
|
80
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
81
|
+
optional: true;
|
|
82
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
83
|
+
optional: true;
|
|
84
|
+
}>;
|
|
85
|
+
inputs: {};
|
|
86
|
+
params: {
|
|
87
|
+
path: string;
|
|
88
|
+
title: string;
|
|
89
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
90
|
+
loader: () => Promise<JSX.Element>;
|
|
91
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
92
|
+
};
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Frontend module that overrides the app nav bar to show an expandable
|
|
96
|
+
* "API Hub" group containing all apigee plugin pages as sub-items.
|
|
97
|
+
*
|
|
98
|
+
* Add this to your app's `createApp({ features })` to activate the grouped nav.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* createApp({ features: [apigeePlugin, apigeeNavModule] });
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
declare const apigeeNavModule: _backstage_frontend_plugin_api.FrontendModule;
|
|
106
|
+
declare const apigeePlugin: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{
|
|
107
|
+
root: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
108
|
+
home: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
109
|
+
catalog: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
110
|
+
}, {}, {
|
|
111
|
+
"page:apigee": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
112
|
+
kind: "page";
|
|
113
|
+
name: undefined;
|
|
114
|
+
config: {
|
|
115
|
+
path: string | undefined;
|
|
116
|
+
title: string | undefined;
|
|
117
|
+
};
|
|
118
|
+
configInput: {
|
|
119
|
+
path?: string | undefined;
|
|
120
|
+
title?: string | undefined;
|
|
121
|
+
};
|
|
122
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
123
|
+
optional: true;
|
|
124
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
|
|
125
|
+
optional: true;
|
|
126
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
127
|
+
optional: true;
|
|
128
|
+
}>;
|
|
129
|
+
inputs: {
|
|
130
|
+
pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
131
|
+
optional: true;
|
|
132
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
|
|
133
|
+
optional: true;
|
|
134
|
+
}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
135
|
+
optional: true;
|
|
136
|
+
}>, {
|
|
137
|
+
singleton: false;
|
|
138
|
+
optional: false;
|
|
139
|
+
internal: false;
|
|
140
|
+
}>;
|
|
141
|
+
};
|
|
142
|
+
params: {
|
|
143
|
+
path: string;
|
|
144
|
+
title?: string;
|
|
145
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
146
|
+
loader?: () => Promise<react.JSX.Element>;
|
|
147
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
148
|
+
noHeader?: boolean;
|
|
149
|
+
};
|
|
150
|
+
}>;
|
|
151
|
+
"sub-page:apigee/catalog": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
152
|
+
kind: "sub-page";
|
|
153
|
+
name: "catalog";
|
|
154
|
+
config: {
|
|
155
|
+
path: string | undefined;
|
|
156
|
+
title: string | undefined;
|
|
157
|
+
};
|
|
158
|
+
configInput: {
|
|
159
|
+
path?: string | undefined;
|
|
160
|
+
title?: string | undefined;
|
|
161
|
+
};
|
|
162
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
163
|
+
optional: true;
|
|
164
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
165
|
+
optional: true;
|
|
166
|
+
}>;
|
|
167
|
+
inputs: {};
|
|
168
|
+
params: {
|
|
169
|
+
path: string;
|
|
170
|
+
title: string;
|
|
171
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
172
|
+
loader: () => Promise<JSX.Element>;
|
|
173
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
174
|
+
};
|
|
175
|
+
}>;
|
|
176
|
+
"sub-page:apigee/home": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
177
|
+
kind: "sub-page";
|
|
178
|
+
name: "home";
|
|
179
|
+
config: {
|
|
180
|
+
path: string | undefined;
|
|
181
|
+
title: string | undefined;
|
|
182
|
+
};
|
|
183
|
+
configInput: {
|
|
184
|
+
path?: string | undefined;
|
|
185
|
+
title?: string | undefined;
|
|
186
|
+
};
|
|
187
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
188
|
+
optional: true;
|
|
189
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
|
|
190
|
+
optional: true;
|
|
191
|
+
}>;
|
|
192
|
+
inputs: {};
|
|
193
|
+
params: {
|
|
194
|
+
path: string;
|
|
195
|
+
title: string;
|
|
196
|
+
icon?: _backstage_frontend_plugin_api.IconElement;
|
|
197
|
+
loader: () => Promise<JSX.Element>;
|
|
198
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
199
|
+
};
|
|
200
|
+
}>;
|
|
201
|
+
}>;
|
|
202
|
+
|
|
203
|
+
export { apigeeCatalogSubPage, apigeeHomeSubPage, apigeeNavModule, apigeePage, apigeePlugin, apigeePlugin as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function styleInject(css, ref) {
|
|
2
|
+
if ( ref === void 0 ) ref = {};
|
|
3
|
+
var insertAt = ref.insertAt;
|
|
4
|
+
|
|
5
|
+
if (!css || typeof document === 'undefined') { return; }
|
|
6
|
+
|
|
7
|
+
var head = document.head || document.getElementsByTagName('head')[0];
|
|
8
|
+
var style = document.createElement('style');
|
|
9
|
+
style.type = 'text/css';
|
|
10
|
+
|
|
11
|
+
if (insertAt === 'top') {
|
|
12
|
+
if (head.firstChild) {
|
|
13
|
+
head.insertBefore(style, head.firstChild);
|
|
14
|
+
} else {
|
|
15
|
+
head.appendChild(style);
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
head.appendChild(style);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (style.styleSheet) {
|
|
22
|
+
style.styleSheet.cssText = css;
|
|
23
|
+
} else {
|
|
24
|
+
style.appendChild(document.createTextNode(css));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { styleInject as default };
|
|
29
|
+
//# sourceMappingURL=style-inject.es.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-inject.es.esm.js","sources":["../../../../../../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;AAChC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;;AAE7B,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,CAAC;;AAEzD,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU;;AAEzB,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AAC/C,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7B,IAAI;AACJ,EAAE,CAAC,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B,EAAE;;AAEF,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;AAClC,EAAE,CAAC,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE;AACF;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { PageBlueprint, SubPageBlueprint, createFrontendModule, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
3
|
+
import { NavContentBlueprint } from '@backstage/plugin-app-react';
|
|
4
|
+
import { RiStackLine } from '@remixicon/react';
|
|
5
|
+
import { rootRouteRef, homeRouteRef, catalogRouteRef } from './routes.esm.js';
|
|
6
|
+
import { ApigeeNavContent } from './components/ApigeeNavContent.esm.js';
|
|
7
|
+
|
|
8
|
+
const apigeePage = PageBlueprint.make({
|
|
9
|
+
params: {
|
|
10
|
+
title: "API Hub",
|
|
11
|
+
icon: /* @__PURE__ */ jsx(RiStackLine, {}),
|
|
12
|
+
routeRef: rootRouteRef,
|
|
13
|
+
path: "/api-hub"
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const apigeeHomeSubPage = SubPageBlueprint.make({
|
|
17
|
+
name: "home",
|
|
18
|
+
params: {
|
|
19
|
+
path: "",
|
|
20
|
+
title: "Home",
|
|
21
|
+
routeRef: homeRouteRef,
|
|
22
|
+
loader: () => import('./components/ApigeeHomePage.esm.js').then(({ ApigeeHomePage }) => /* @__PURE__ */ jsx(ApigeeHomePage, {}))
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const apigeeCatalogSubPage = SubPageBlueprint.make({
|
|
26
|
+
name: "catalog",
|
|
27
|
+
params: {
|
|
28
|
+
path: "catalog",
|
|
29
|
+
title: "API catalog",
|
|
30
|
+
routeRef: catalogRouteRef,
|
|
31
|
+
loader: () => import('./components/ApigeeApiCatalogPage.esm.js').then(
|
|
32
|
+
({ ApigeeApiCatalogPage }) => /* @__PURE__ */ jsx(ApigeeApiCatalogPage, {})
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const apigeeNavModule = createFrontendModule({
|
|
37
|
+
pluginId: "app",
|
|
38
|
+
extensions: [
|
|
39
|
+
NavContentBlueprint.make({
|
|
40
|
+
params: {
|
|
41
|
+
component: ApigeeNavContent
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
const apigeePlugin = createFrontendPlugin({
|
|
47
|
+
pluginId: "apigee",
|
|
48
|
+
title: "API Hub",
|
|
49
|
+
icon: /* @__PURE__ */ jsx(RiStackLine, {}),
|
|
50
|
+
extensions: [apigeePage, apigeeHomeSubPage, apigeeCatalogSubPage],
|
|
51
|
+
routes: {
|
|
52
|
+
root: rootRouteRef,
|
|
53
|
+
home: homeRouteRef,
|
|
54
|
+
catalog: catalogRouteRef
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export { apigeeCatalogSubPage, apigeeHomeSubPage, apigeeNavModule, apigeePage, apigeePlugin };
|
|
59
|
+
//# sourceMappingURL=plugin.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.tsx"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport {\n createFrontendModule,\n createFrontendPlugin,\n PageBlueprint,\n SubPageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport { NavContentBlueprint } from '@backstage/plugin-app-react';\nimport { RiStackLine } from '@remixicon/react';\nimport { catalogRouteRef, homeRouteRef, rootRouteRef } from './routes';\nimport { ApigeeNavContent } from './components/ApigeeNavContent';\n\n// Container page: owns `/api-hub`, the \"API Hub\" header (title + icon), and the tab bar\n// rendered from its sub-pages. Content lives in the sub-pages, so it has no `loader`.\nexport const apigeePage = PageBlueprint.make({\n params: {\n title: 'API Hub',\n icon: <RiStackLine />,\n routeRef: rootRouteRef,\n path: '/api-hub',\n },\n});\n\n// The \"Home\" tab — the index sub-page of API Hub, mounted at `/api-hub`. A landing\n// dashboard (plugin overview + quick links); basic for now.\nexport const apigeeHomeSubPage = SubPageBlueprint.make({\n name: 'home',\n params: {\n path: '',\n title: 'Home',\n routeRef: homeRouteRef,\n loader: () =>\n import('./components/ApigeeHomePage').then(({ ApigeeHomePage }) => (\n <ApigeeHomePage />\n )),\n },\n});\n\n// The \"API catalog\" tab, mounted at `/api-hub/catalog`.\nexport const apigeeCatalogSubPage = SubPageBlueprint.make({\n name: 'catalog',\n params: {\n path: 'catalog',\n title: 'API catalog',\n routeRef: catalogRouteRef,\n loader: () =>\n import('./components/ApigeeApiCatalogPage').then(\n ({ ApigeeApiCatalogPage }) => <ApigeeApiCatalogPage />,\n ),\n },\n});\n\n/**\n * Frontend module that overrides the app nav bar to show an expandable\n * \"API Hub\" group containing all apigee plugin pages as sub-items.\n *\n * Add this to your app's `createApp({ features })` to activate the grouped nav.\n *\n * @example\n * ```ts\n * createApp({ features: [apigeePlugin, apigeeNavModule] });\n * ```\n */\nexport const apigeeNavModule = createFrontendModule({\n pluginId: 'app',\n extensions: [\n NavContentBlueprint.make({\n params: {\n component: ApigeeNavContent,\n },\n }),\n ],\n});\n\nexport const apigeePlugin = createFrontendPlugin({\n pluginId: 'apigee',\n title: 'API Hub',\n icon: <RiStackLine />,\n extensions: [apigeePage, apigeeHomeSubPage, apigeeCatalogSubPage],\n routes: {\n root: rootRouteRef,\n home: homeRouteRef,\n catalog: catalogRouteRef,\n },\n});\n"],"names":[],"mappings":";;;;;;;AAcO,MAAM,UAAA,GAAa,cAAc,IAAA,CAAK;AAAA,EAC3C,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO,SAAA;AAAA,IACP,IAAA,sBAAO,WAAA,EAAA,EAAY,CAAA;AAAA,IACnB,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM;AAAA;AAEV,CAAC;AAIM,MAAM,iBAAA,GAAoB,iBAAiB,IAAA,CAAK;AAAA,EACrD,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,EAAA;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,QAAA,EAAU,YAAA;AAAA,IACV,MAAA,EAAQ,MACN,OAAO,oCAA6B,CAAA,CAAE,IAAA,CAAK,CAAC,EAAE,cAAA,EAAe,qBAC3D,GAAA,CAAC,cAAA,EAAA,EAAe,CACjB;AAAA;AAEP,CAAC;AAGM,MAAM,oBAAA,GAAuB,iBAAiB,IAAA,CAAK;AAAA,EACxD,IAAA,EAAM,SAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,aAAA;AAAA,IACP,QAAA,EAAU,eAAA;AAAA,IACV,MAAA,EAAQ,MACN,OAAO,0CAAmC,CAAA,CAAE,IAAA;AAAA,MAC1C,CAAC,EAAE,oBAAA,EAAqB,yBAAO,oBAAA,EAAA,EAAqB;AAAA;AACtD;AAEN,CAAC;AAaM,MAAM,kBAAkB,oBAAA,CAAqB;AAAA,EAClD,QAAA,EAAU,KAAA;AAAA,EACV,UAAA,EAAY;AAAA,IACV,oBAAoB,IAAA,CAAK;AAAA,MACvB,MAAA,EAAQ;AAAA,QACN,SAAA,EAAW;AAAA;AACb,KACD;AAAA;AAEL,CAAC;AAEM,MAAM,eAAe,oBAAA,CAAqB;AAAA,EAC/C,QAAA,EAAU,QAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,sBAAO,WAAA,EAAA,EAAY,CAAA;AAAA,EACnB,UAAA,EAAY,CAAC,UAAA,EAAY,iBAAA,EAAmB,oBAAoB,CAAA;AAAA,EAChE,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,YAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb,CAAC;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRouteRef } from '@backstage/frontend-plugin-api';
|
|
2
|
+
|
|
3
|
+
const rootRouteRef = createRouteRef();
|
|
4
|
+
const homeRouteRef = createRouteRef();
|
|
5
|
+
const catalogRouteRef = createRouteRef();
|
|
6
|
+
|
|
7
|
+
export { catalogRouteRef, homeRouteRef, rootRouteRef };
|
|
8
|
+
//# sourceMappingURL=routes.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport { createRouteRef } from '@backstage/frontend-plugin-api';\n\nexport const rootRouteRef = createRouteRef();\nexport const homeRouteRef = createRouteRef();\nexport const catalogRouteRef = createRouteRef();\n"],"names":[],"mappings":";;AAGO,MAAM,eAAe,cAAA;AACrB,MAAM,eAAe,cAAA;AACrB,MAAM,kBAAkB,cAAA;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nospt/backstage-plugin-apigee",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"description": "Backstage frontend plugin bootstrap for Apigee integration",
|
|
6
|
+
"author": "NOS SGPS, S.A.",
|
|
7
|
+
"homepage": "https://github.com/nosportugal/backstage-plugin-apigee#readme",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"backstage",
|
|
10
|
+
"backstage-plugin",
|
|
11
|
+
"apigee"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/nosportugal/backstage-plugin-apigee",
|
|
16
|
+
"directory": "plugins/apigee"
|
|
17
|
+
},
|
|
18
|
+
"main": "dist/index.esm.js",
|
|
19
|
+
"types": "dist/index.d.ts",
|
|
20
|
+
"configSchema": "config.d.ts",
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public",
|
|
23
|
+
"main": "dist/index.esm.js",
|
|
24
|
+
"types": "dist/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"backstage": {
|
|
27
|
+
"role": "frontend-plugin",
|
|
28
|
+
"pluginId": "apigee",
|
|
29
|
+
"pluginPackages": [
|
|
30
|
+
"@nospt/backstage-plugin-apigee",
|
|
31
|
+
"@nospt/backstage-plugin-apigee-backend",
|
|
32
|
+
"@nospt/backstage-plugin-apigee-common"
|
|
33
|
+
],
|
|
34
|
+
"features": {
|
|
35
|
+
".": "@backstage/FrontendPlugin"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"sideEffects": false,
|
|
39
|
+
"scripts": {
|
|
40
|
+
"start": "backstage-cli package start",
|
|
41
|
+
"build": "backstage-cli package build",
|
|
42
|
+
"lint": "backstage-cli package lint",
|
|
43
|
+
"test": "backstage-cli package test",
|
|
44
|
+
"test:e2e": "playwright test",
|
|
45
|
+
"clean": "backstage-cli package clean",
|
|
46
|
+
"prepack": "backstage-cli package prepack",
|
|
47
|
+
"postpack": "backstage-cli package postpack"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@backstage/catalog-model": "^1.9.0",
|
|
51
|
+
"@backstage/core-components": "^0.18.10",
|
|
52
|
+
"@backstage/core-plugin-api": "^1.12.6",
|
|
53
|
+
"@backstage/frontend-plugin-api": "^0.17.0",
|
|
54
|
+
"@backstage/plugin-app-react": "^0.2.2",
|
|
55
|
+
"@backstage/plugin-catalog-react": "^3.0.0",
|
|
56
|
+
"@backstage/ui": "^0.15.0",
|
|
57
|
+
"@nospt/backstage-plugin-apigee-common": "^1.1.1",
|
|
58
|
+
"@remixicon/react": "^4.6.0",
|
|
59
|
+
"yaml": "^2.9.0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"react": "^18.0.0",
|
|
63
|
+
"react-dom": "^18.0.0",
|
|
64
|
+
"react-router-dom": "^6.30.6"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@backstage/cli": "^0.36.0",
|
|
68
|
+
"@backstage/config": "^1.3.7",
|
|
69
|
+
"@backstage/frontend-defaults": "^0.5.0",
|
|
70
|
+
"@backstage/frontend-test-utils": "^0.6.0",
|
|
71
|
+
"@backstage/plugin-catalog": "^2.0.1",
|
|
72
|
+
"@playwright/test": "^1.49.0",
|
|
73
|
+
"@testing-library/dom": "^10.0.0",
|
|
74
|
+
"@testing-library/jest-dom": "^6.0.0",
|
|
75
|
+
"@testing-library/react": "^16.0.0",
|
|
76
|
+
"@types/react": "^18",
|
|
77
|
+
"@types/react-dom": "^18",
|
|
78
|
+
"react": "^18.0.0",
|
|
79
|
+
"react-dom": "^18.0.0",
|
|
80
|
+
"react-router-dom": "^6.30.6"
|
|
81
|
+
},
|
|
82
|
+
"files": [
|
|
83
|
+
"dist",
|
|
84
|
+
"config.d.ts",
|
|
85
|
+
"README.md"
|
|
86
|
+
],
|
|
87
|
+
"typesVersions": {
|
|
88
|
+
"*": {
|
|
89
|
+
"package.json": [
|
|
90
|
+
"package.json"
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"module": "./dist/index.esm.js"
|
|
95
|
+
}
|