docusaurus-theme-openapi-docs 1.0.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/LICENSE +21 -0
- package/babel.config.js +35 -0
- package/lib/index.js +48 -0
- package/lib/markdown/createDescription.js +20 -0
- package/lib/markdown/schema.js +121 -0
- package/lib/markdown/utils.js +45 -0
- package/lib/theme/ApiDemoPanel/Accept/index.js +41 -0
- package/lib/theme/ApiDemoPanel/Accept/slice.js +32 -0
- package/lib/theme/ApiDemoPanel/Authorization/auth-types.js +32 -0
- package/lib/theme/ApiDemoPanel/Authorization/index.js +174 -0
- package/lib/theme/ApiDemoPanel/Authorization/slice.js +137 -0
- package/lib/theme/ApiDemoPanel/Body/index.js +185 -0
- package/lib/theme/ApiDemoPanel/Body/slice.js +105 -0
- package/lib/theme/ApiDemoPanel/ContentType/index.js +41 -0
- package/lib/theme/ApiDemoPanel/ContentType/slice.js +32 -0
- package/lib/theme/ApiDemoPanel/Curl/index.js +236 -0
- package/lib/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
- package/lib/theme/ApiDemoPanel/Execute/index.js +85 -0
- package/lib/theme/ApiDemoPanel/Execute/makeRequest.js +202 -0
- package/lib/theme/ApiDemoPanel/FloatingButton/index.js +32 -0
- package/lib/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
- package/lib/theme/ApiDemoPanel/FormFileUpload/index.js +97 -0
- package/lib/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
- package/lib/theme/ApiDemoPanel/FormItem/index.js +35 -0
- package/lib/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
- package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +52 -0
- package/lib/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
- package/lib/theme/ApiDemoPanel/FormSelect/index.js +39 -0
- package/lib/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
- package/lib/theme/ApiDemoPanel/FormTextInput/index.js +30 -0
- package/lib/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
- package/lib/theme/ApiDemoPanel/MethodEndpoint/index.js +60 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/index.js +248 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/slice.js +35 -0
- package/lib/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
- package/lib/theme/ApiDemoPanel/Response/index.js +75 -0
- package/lib/theme/ApiDemoPanel/Response/slice.js +37 -0
- package/lib/theme/ApiDemoPanel/SecuritySchemes/index.js +51 -0
- package/lib/theme/ApiDemoPanel/Server/index.js +109 -0
- package/lib/theme/ApiDemoPanel/Server/slice.js +41 -0
- package/lib/theme/ApiDemoPanel/Server/styles.module.css +61 -0
- package/lib/theme/ApiDemoPanel/VSCode/index.js +252 -0
- package/lib/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
- package/lib/theme/ApiDemoPanel/buildPostmanRequest.js +329 -0
- package/lib/theme/ApiDemoPanel/hooks.js +20 -0
- package/lib/theme/ApiDemoPanel/index.js +134 -0
- package/lib/theme/ApiDemoPanel/persistanceMiddleware.js +44 -0
- package/lib/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
- package/lib/theme/ApiDemoPanel/storage-utils.js +47 -0
- package/lib/theme/ApiDemoPanel/store.js +48 -0
- package/lib/theme/ApiDemoPanel/styles.module.css +44 -0
- package/lib/theme/ApiItem/index.js +160 -0
- package/lib/theme/ApiItem/styles.module.css +109 -0
- package/lib/theme/ParamsItem/index.js +68 -0
- package/lib/theme/ParamsItem/styles.module.css +24 -0
- package/lib/theme/SchemaItem/index.js +58 -0
- package/lib/theme/SchemaItem/styles.module.css +24 -0
- package/lib/theme/Tabs/index.js +258 -0
- package/lib/theme/Tabs/styles.module.css +118 -0
- package/lib/theme-classic.d.ts +8 -0
- package/lib/theme-openapi.d.ts +48 -0
- package/lib/theme-translations.d.ts +9 -0
- package/lib/types.js +1 -0
- package/lib-next/index.js +38 -0
- package/lib-next/markdown/createDescription.js +13 -0
- package/lib-next/markdown/schema.js +115 -0
- package/lib-next/markdown/utils.js +31 -0
- package/lib-next/theme/ApiDemoPanel/Accept/index.js +33 -0
- package/lib-next/theme/ApiDemoPanel/Accept/slice.js +19 -0
- package/lib-next/theme/ApiDemoPanel/Authorization/auth-types.js +22 -0
- package/lib-next/theme/ApiDemoPanel/Authorization/index.js +203 -0
- package/lib-next/theme/ApiDemoPanel/Authorization/slice.js +101 -0
- package/lib-next/theme/ApiDemoPanel/Body/index.js +210 -0
- package/lib-next/theme/ApiDemoPanel/Body/slice.js +89 -0
- package/lib-next/theme/ApiDemoPanel/ContentType/index.js +33 -0
- package/lib-next/theme/ApiDemoPanel/ContentType/slice.js +19 -0
- package/lib-next/theme/ApiDemoPanel/Curl/index.js +264 -0
- package/lib-next/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
- package/lib-next/theme/ApiDemoPanel/Execute/index.js +74 -0
- package/lib-next/theme/ApiDemoPanel/Execute/makeRequest.js +183 -0
- package/lib-next/theme/ApiDemoPanel/FloatingButton/index.js +19 -0
- package/lib-next/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
- package/lib-next/theme/ApiDemoPanel/FormFileUpload/index.js +113 -0
- package/lib-next/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
- package/lib-next/theme/ApiDemoPanel/FormItem/index.js +29 -0
- package/lib-next/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
- package/lib-next/theme/ApiDemoPanel/FormMultiSelect/index.js +49 -0
- package/lib-next/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
- package/lib-next/theme/ApiDemoPanel/FormSelect/index.js +28 -0
- package/lib-next/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
- package/lib-next/theme/ApiDemoPanel/FormTextInput/index.js +23 -0
- package/lib-next/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
- package/lib-next/theme/ApiDemoPanel/MethodEndpoint/index.js +53 -0
- package/lib-next/theme/ApiDemoPanel/ParamOptions/index.js +284 -0
- package/lib-next/theme/ApiDemoPanel/ParamOptions/slice.js +22 -0
- package/lib-next/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
- package/lib-next/theme/ApiDemoPanel/Response/index.js +65 -0
- package/lib-next/theme/ApiDemoPanel/Response/slice.js +22 -0
- package/lib-next/theme/ApiDemoPanel/SecuritySchemes/index.js +48 -0
- package/lib-next/theme/ApiDemoPanel/Server/index.js +114 -0
- package/lib-next/theme/ApiDemoPanel/Server/slice.js +25 -0
- package/lib-next/theme/ApiDemoPanel/Server/styles.module.css +61 -0
- package/lib-next/theme/ApiDemoPanel/VSCode/index.js +265 -0
- package/lib-next/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
- package/lib-next/theme/ApiDemoPanel/buildPostmanRequest.js +310 -0
- package/lib-next/theme/ApiDemoPanel/hooks.js +9 -0
- package/lib-next/theme/ApiDemoPanel/index.js +110 -0
- package/lib-next/theme/ApiDemoPanel/persistanceMiddleware.js +38 -0
- package/lib-next/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
- package/lib-next/theme/ApiDemoPanel/storage-utils.js +35 -0
- package/lib-next/theme/ApiDemoPanel/store.js +30 -0
- package/lib-next/theme/ApiDemoPanel/styles.module.css +44 -0
- package/lib-next/theme/ApiItem/index.js +171 -0
- package/lib-next/theme/ApiItem/styles.module.css +109 -0
- package/lib-next/theme/ParamsItem/index.js +68 -0
- package/lib-next/theme/ParamsItem/styles.module.css +24 -0
- package/lib-next/theme/SchemaItem/index.js +58 -0
- package/lib-next/theme/SchemaItem/styles.module.css +24 -0
- package/lib-next/theme/Tabs/index.js +258 -0
- package/lib-next/theme/Tabs/styles.module.css +118 -0
- package/lib-next/theme-classic.d.ts +8 -0
- package/lib-next/theme-openapi.d.ts +48 -0
- package/lib-next/theme-translations.d.ts +9 -0
- package/lib-next/types.js +1 -0
- package/package.json +68 -0
- package/src/index.ts +42 -0
- package/src/markdown/createDescription.ts +13 -0
- package/src/markdown/schema.ts +115 -0
- package/src/markdown/utils.ts +39 -0
- package/src/theme/ApiDemoPanel/Accept/index.tsx +35 -0
- package/src/theme/ApiDemoPanel/Accept/slice.ts +29 -0
- package/src/theme/ApiDemoPanel/Authorization/auth-types.ts +26 -0
- package/src/theme/ApiDemoPanel/Authorization/index.tsx +211 -0
- package/src/theme/ApiDemoPanel/Authorization/slice.ts +145 -0
- package/src/theme/ApiDemoPanel/Body/index.tsx +218 -0
- package/src/theme/ApiDemoPanel/Body/slice.ts +133 -0
- package/src/theme/ApiDemoPanel/ContentType/index.tsx +35 -0
- package/src/theme/ApiDemoPanel/ContentType/slice.ts +29 -0
- package/src/theme/ApiDemoPanel/Curl/index.tsx +280 -0
- package/src/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
- package/src/theme/ApiDemoPanel/Execute/index.tsx +88 -0
- package/src/theme/ApiDemoPanel/Execute/makeRequest.ts +184 -0
- package/src/theme/ApiDemoPanel/FloatingButton/index.tsx +27 -0
- package/src/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
- package/src/theme/ApiDemoPanel/FormFileUpload/index.tsx +116 -0
- package/src/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
- package/src/theme/ApiDemoPanel/FormItem/index.tsx +28 -0
- package/src/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
- package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +54 -0
- package/src/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
- package/src/theme/ApiDemoPanel/FormSelect/index.tsx +36 -0
- package/src/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
- package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +32 -0
- package/src/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
- package/src/theme/ApiDemoPanel/MethodEndpoint/index.tsx +55 -0
- package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +316 -0
- package/src/theme/ApiDemoPanel/ParamOptions/slice.ts +37 -0
- package/src/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
- package/src/theme/ApiDemoPanel/Response/index.tsx +66 -0
- package/src/theme/ApiDemoPanel/Response/slice.ts +31 -0
- package/src/theme/ApiDemoPanel/SecuritySchemes/index.tsx +49 -0
- package/src/theme/ApiDemoPanel/Server/index.tsx +103 -0
- package/src/theme/ApiDemoPanel/Server/slice.ts +40 -0
- package/src/theme/ApiDemoPanel/Server/styles.module.css +61 -0
- package/src/theme/ApiDemoPanel/VSCode/index.tsx +205 -0
- package/src/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
- package/src/theme/ApiDemoPanel/buildPostmanRequest.ts +307 -0
- package/src/theme/ApiDemoPanel/hooks.ts +13 -0
- package/src/theme/ApiDemoPanel/index.tsx +118 -0
- package/src/theme/ApiDemoPanel/persistanceMiddleware.ts +46 -0
- package/src/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
- package/src/theme/ApiDemoPanel/storage-utils.ts +39 -0
- package/src/theme/ApiDemoPanel/store.ts +41 -0
- package/src/theme/ApiDemoPanel/styles.module.css +44 -0
- package/src/theme/ApiItem/index.tsx +171 -0
- package/src/theme/ApiItem/styles.module.css +109 -0
- package/src/theme/ParamsItem/index.js +68 -0
- package/src/theme/ParamsItem/styles.module.css +24 -0
- package/src/theme/SchemaItem/index.js +58 -0
- package/src/theme/SchemaItem/styles.module.css +24 -0
- package/src/theme/Tabs/index.js +258 -0
- package/src/theme/Tabs/styles.module.css +118 -0
- package/src/theme-classic.d.ts +8 -0
- package/src/theme-openapi.d.ts +48 -0
- package/src/theme-translations.d.ts +9 -0
- package/src/types.ts +70 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _postmanCollection = _interopRequireDefault(require("@paloaltonetworks/postman-collection"));
|
|
9
|
+
|
|
10
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
/* ============================================================================
|
|
15
|
+
* Copyright (c) Palo Alto Networks
|
|
16
|
+
*
|
|
17
|
+
* This source code is licensed under the MIT license found in the
|
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
|
19
|
+
* ========================================================================== */
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
function setQueryParams(postman, queryParams) {
|
|
22
|
+
postman.url.query.clear();
|
|
23
|
+
const qp = queryParams.map(param => {
|
|
24
|
+
if (!param.value) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (Array.isArray(param.value)) {
|
|
29
|
+
return new _postmanCollection.default.QueryParam({
|
|
30
|
+
key: param.name,
|
|
31
|
+
value: param.value.join(",")
|
|
32
|
+
});
|
|
33
|
+
} // Parameter allows empty value: "/hello?extended"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
if (param.allowEmptyValue) {
|
|
37
|
+
if (param.value === "true") {
|
|
38
|
+
return new _postmanCollection.default.QueryParam({
|
|
39
|
+
key: param.name,
|
|
40
|
+
value: null
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return new _postmanCollection.default.QueryParam({
|
|
48
|
+
key: param.name,
|
|
49
|
+
value: param.value
|
|
50
|
+
});
|
|
51
|
+
}).filter(item => item !== undefined);
|
|
52
|
+
|
|
53
|
+
if (qp.length > 0) {
|
|
54
|
+
postman.addQueryParams(qp);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function setPathParams(postman, queryParams) {
|
|
59
|
+
const source = queryParams.map(param => {
|
|
60
|
+
return new _postmanCollection.default.Variable({
|
|
61
|
+
key: param.name,
|
|
62
|
+
value: param.value || `:${param.name}`
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
postman.url.variables.assimilate(source, false);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function buildCookie(cookieParams) {
|
|
69
|
+
const cookies = cookieParams.map(param => {
|
|
70
|
+
if (param.value && !Array.isArray(param.value)) {
|
|
71
|
+
return new _postmanCollection.default.Cookie({
|
|
72
|
+
// TODO: Is this right?
|
|
73
|
+
path: "",
|
|
74
|
+
domain: "",
|
|
75
|
+
key: param.name,
|
|
76
|
+
value: param.value
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return undefined;
|
|
81
|
+
}).filter(item => item !== undefined);
|
|
82
|
+
const list = new _postmanCollection.default.CookieList(null, cookies);
|
|
83
|
+
return list.toString();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function setHeaders(postman, contentType, accept, cookie, headerParams, other) {
|
|
87
|
+
postman.headers.clear();
|
|
88
|
+
|
|
89
|
+
if (contentType) {
|
|
90
|
+
postman.addHeader({
|
|
91
|
+
key: "Content-Type",
|
|
92
|
+
value: contentType
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (accept) {
|
|
97
|
+
postman.addHeader({
|
|
98
|
+
key: "Accept",
|
|
99
|
+
value: accept
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
headerParams.forEach(param => {
|
|
104
|
+
if (param.value && !Array.isArray(param.value)) {
|
|
105
|
+
postman.addHeader({
|
|
106
|
+
key: param.name,
|
|
107
|
+
value: param.value
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
other.forEach(header => {
|
|
112
|
+
postman.addHeader(header);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (cookie) {
|
|
116
|
+
postman.addHeader({
|
|
117
|
+
key: "Cookie",
|
|
118
|
+
value: cookie
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
} // TODO: this is all a bit hacky
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
function setBody(clonedPostman, body) {
|
|
125
|
+
var _body$content;
|
|
126
|
+
|
|
127
|
+
if (clonedPostman.body === undefined) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (body.type === "empty") {
|
|
132
|
+
clonedPostman.body = undefined;
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (body.type === "raw" && ((_body$content = body.content) === null || _body$content === void 0 ? void 0 : _body$content.type) === "file") {
|
|
137
|
+
// treat it like file.
|
|
138
|
+
clonedPostman.body.mode = "file";
|
|
139
|
+
clonedPostman.body.file = {
|
|
140
|
+
src: body.content.value.src
|
|
141
|
+
};
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
switch (clonedPostman.body.mode) {
|
|
146
|
+
case "raw":
|
|
147
|
+
{
|
|
148
|
+
var _body$content2, _body$content$value, _body$content3;
|
|
149
|
+
|
|
150
|
+
// check file even though it should already be set from above
|
|
151
|
+
if (body.type !== "raw" || ((_body$content2 = body.content) === null || _body$content2 === void 0 ? void 0 : _body$content2.type) === "file") {
|
|
152
|
+
clonedPostman.body = undefined;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
clonedPostman.body.raw = (_body$content$value = (_body$content3 = body.content) === null || _body$content3 === void 0 ? void 0 : _body$content3.value) !== null && _body$content$value !== void 0 ? _body$content$value : "";
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
case "formdata":
|
|
161
|
+
{
|
|
162
|
+
var _clonedPostman$body$f, _clonedPostman$body$f2;
|
|
163
|
+
|
|
164
|
+
(_clonedPostman$body$f = clonedPostman.body.formdata) === null || _clonedPostman$body$f === void 0 ? void 0 : _clonedPostman$body$f.clear();
|
|
165
|
+
|
|
166
|
+
if (body.type !== "form") {
|
|
167
|
+
var _body$content4;
|
|
168
|
+
|
|
169
|
+
// treat it like raw.
|
|
170
|
+
clonedPostman.body.mode = "raw";
|
|
171
|
+
clonedPostman.body.raw = `${(_body$content4 = body.content) === null || _body$content4 === void 0 ? void 0 : _body$content4.value}`;
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const params = Object.entries(body.content).filter(entry => !!entry[1]).map(([key, content]) => {
|
|
176
|
+
if (content.type === "file") {
|
|
177
|
+
return new _postmanCollection.default.FormParam({
|
|
178
|
+
key: key,
|
|
179
|
+
...content
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return new _postmanCollection.default.FormParam({
|
|
184
|
+
key: key,
|
|
185
|
+
value: content.value
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
(_clonedPostman$body$f2 = clonedPostman.body.formdata) === null || _clonedPostman$body$f2 === void 0 ? void 0 : _clonedPostman$body$f2.assimilate(params, false);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
case "urlencoded":
|
|
193
|
+
{
|
|
194
|
+
var _clonedPostman$body$u, _clonedPostman$body$u2;
|
|
195
|
+
|
|
196
|
+
(_clonedPostman$body$u = clonedPostman.body.urlencoded) === null || _clonedPostman$body$u === void 0 ? void 0 : _clonedPostman$body$u.clear();
|
|
197
|
+
|
|
198
|
+
if (body.type !== "form") {
|
|
199
|
+
var _body$content5;
|
|
200
|
+
|
|
201
|
+
// treat it like raw.
|
|
202
|
+
clonedPostman.body.mode = "raw";
|
|
203
|
+
clonedPostman.body.raw = `${(_body$content5 = body.content) === null || _body$content5 === void 0 ? void 0 : _body$content5.value}`;
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const params = Object.entries(body.content).filter(entry => !!entry[1]).map(([key, content]) => {
|
|
208
|
+
if (content.type !== "file" && content.value) {
|
|
209
|
+
return new _postmanCollection.default.QueryParam({
|
|
210
|
+
key: key,
|
|
211
|
+
value: content.value
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return undefined;
|
|
216
|
+
}).filter(item => item !== undefined);
|
|
217
|
+
(_clonedPostman$body$u2 = clonedPostman.body.urlencoded) === null || _clonedPostman$body$u2 === void 0 ? void 0 : _clonedPostman$body$u2.assimilate(params, false);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
default:
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
} // TODO: finish these types
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
function buildPostmanRequest(postman, {
|
|
228
|
+
queryParams,
|
|
229
|
+
pathParams,
|
|
230
|
+
cookieParams,
|
|
231
|
+
contentType,
|
|
232
|
+
accept,
|
|
233
|
+
headerParams,
|
|
234
|
+
body,
|
|
235
|
+
server,
|
|
236
|
+
auth
|
|
237
|
+
}) {
|
|
238
|
+
const clonedPostman = (0, _cloneDeep.default)(postman);
|
|
239
|
+
clonedPostman.url.protocol = undefined;
|
|
240
|
+
clonedPostman.url.host = [window.location.origin];
|
|
241
|
+
|
|
242
|
+
if (server) {
|
|
243
|
+
let url = server.url.replace(/\/$/, "");
|
|
244
|
+
const variables = server.variables;
|
|
245
|
+
|
|
246
|
+
if (variables) {
|
|
247
|
+
Object.keys(variables).forEach(variable => {
|
|
248
|
+
url = url.replace(`{${variable}}`, variables[variable].default);
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
clonedPostman.url.host = [url];
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
setQueryParams(clonedPostman, queryParams);
|
|
256
|
+
setPathParams(clonedPostman, pathParams);
|
|
257
|
+
const cookie = buildCookie(cookieParams);
|
|
258
|
+
let otherHeaders = [];
|
|
259
|
+
let selectedAuth = [];
|
|
260
|
+
|
|
261
|
+
if (auth.selected !== undefined) {
|
|
262
|
+
selectedAuth = auth.options[auth.selected];
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
for (const a of selectedAuth) {
|
|
266
|
+
// Bearer Auth
|
|
267
|
+
if (a.type === "http" && a.scheme === "bearer") {
|
|
268
|
+
const {
|
|
269
|
+
token
|
|
270
|
+
} = auth.data[a.key];
|
|
271
|
+
|
|
272
|
+
if (token === undefined) {
|
|
273
|
+
continue;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
otherHeaders.push({
|
|
277
|
+
key: "Authorization",
|
|
278
|
+
value: `Bearer ${token}`
|
|
279
|
+
});
|
|
280
|
+
continue;
|
|
281
|
+
} // Basic Auth
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
if (a.type === "http" && a.scheme === "basic") {
|
|
285
|
+
const {
|
|
286
|
+
username,
|
|
287
|
+
password
|
|
288
|
+
} = auth.data[a.key];
|
|
289
|
+
|
|
290
|
+
if (username === undefined || password === undefined) {
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
otherHeaders.push({
|
|
295
|
+
key: "Authorization",
|
|
296
|
+
value: `Basic ${window.btoa(`${username}:${password}`)}`
|
|
297
|
+
});
|
|
298
|
+
continue;
|
|
299
|
+
} // API Key
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
if (a.type === "apiKey" && a.in === "header") {
|
|
303
|
+
const {
|
|
304
|
+
apikey
|
|
305
|
+
} = auth.data[a.key];
|
|
306
|
+
|
|
307
|
+
if (apikey === undefined) {
|
|
308
|
+
otherHeaders.push({
|
|
309
|
+
key: a.name,
|
|
310
|
+
value: "API_KEY_VALUE"
|
|
311
|
+
});
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
otherHeaders.push({
|
|
316
|
+
key: a.name,
|
|
317
|
+
value: apikey
|
|
318
|
+
});
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
setHeaders(clonedPostman, contentType, accept, cookie, headerParams, otherHeaders);
|
|
324
|
+
setBody(clonedPostman, body);
|
|
325
|
+
return clonedPostman;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
var _default = buildPostmanRequest;
|
|
329
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTypedSelector = exports.useTypedDispatch = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactRedux = require("react-redux");
|
|
9
|
+
|
|
10
|
+
/* ============================================================================
|
|
11
|
+
* Copyright (c) Palo Alto Networks
|
|
12
|
+
*
|
|
13
|
+
* This source code is licensed under the MIT license found in the
|
|
14
|
+
* LICENSE file in the root directory of this source tree.
|
|
15
|
+
* ========================================================================== */
|
|
16
|
+
const useTypedDispatch = () => (0, _reactRedux.useDispatch)();
|
|
17
|
+
|
|
18
|
+
exports.useTypedDispatch = useTypedDispatch;
|
|
19
|
+
const useTypedSelector = _reactRedux.useSelector;
|
|
20
|
+
exports.useTypedSelector = useTypedSelector;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext"));
|
|
11
|
+
|
|
12
|
+
var _postmanCollection = _interopRequireDefault(require("@paloaltonetworks/postman-collection"));
|
|
13
|
+
|
|
14
|
+
var _reactRedux = require("react-redux");
|
|
15
|
+
|
|
16
|
+
var _Accept = _interopRequireDefault(require("./Accept"));
|
|
17
|
+
|
|
18
|
+
var _slice = require("./Authorization/slice");
|
|
19
|
+
|
|
20
|
+
var _Body = _interopRequireDefault(require("./Body"));
|
|
21
|
+
|
|
22
|
+
var _Curl = _interopRequireDefault(require("./Curl"));
|
|
23
|
+
|
|
24
|
+
var _MethodEndpoint = _interopRequireDefault(require("./MethodEndpoint"));
|
|
25
|
+
|
|
26
|
+
var _ParamOptions = _interopRequireDefault(require("./ParamOptions"));
|
|
27
|
+
|
|
28
|
+
var _persistanceMiddleware = require("./persistanceMiddleware");
|
|
29
|
+
|
|
30
|
+
var _Response = _interopRequireDefault(require("./Response"));
|
|
31
|
+
|
|
32
|
+
var _SecuritySchemes = _interopRequireDefault(require("./SecuritySchemes"));
|
|
33
|
+
|
|
34
|
+
var _Server = _interopRequireDefault(require("./Server"));
|
|
35
|
+
|
|
36
|
+
var _store = require("./store");
|
|
37
|
+
|
|
38
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
39
|
+
|
|
40
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
41
|
+
|
|
42
|
+
/* ============================================================================
|
|
43
|
+
* Copyright (c) Palo Alto Networks
|
|
44
|
+
*
|
|
45
|
+
* This source code is licensed under the MIT license found in the
|
|
46
|
+
* LICENSE file in the root directory of this source tree.
|
|
47
|
+
* ========================================================================== */
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
function ApiDemoPanel({
|
|
51
|
+
item
|
|
52
|
+
}) {
|
|
53
|
+
var _item$responses, _item$requestBody$con, _item$requestBody, _item$servers, _item$parameters, _xCodeSamples;
|
|
54
|
+
|
|
55
|
+
const {
|
|
56
|
+
siteConfig
|
|
57
|
+
} = (0, _useDocusaurusContext.default)();
|
|
58
|
+
const themeConfig = siteConfig.themeConfig;
|
|
59
|
+
const options = themeConfig.api;
|
|
60
|
+
const postman = new _postmanCollection.default.Request(item.postman);
|
|
61
|
+
const acceptArray = Array.from(new Set(Object.values((_item$responses = item.responses) !== null && _item$responses !== void 0 ? _item$responses : {}) // @ts-ignore
|
|
62
|
+
.map(response => {
|
|
63
|
+
var _response$content;
|
|
64
|
+
|
|
65
|
+
return Object.keys((_response$content = response.content) !== null && _response$content !== void 0 ? _response$content : {});
|
|
66
|
+
}).flat()));
|
|
67
|
+
const content = (_item$requestBody$con = (_item$requestBody = item.requestBody) === null || _item$requestBody === void 0 ? void 0 : _item$requestBody.content) !== null && _item$requestBody$con !== void 0 ? _item$requestBody$con : {};
|
|
68
|
+
const contentTypeArray = Object.keys(content);
|
|
69
|
+
const servers = (_item$servers = item.servers) !== null && _item$servers !== void 0 ? _item$servers : [];
|
|
70
|
+
const params = {
|
|
71
|
+
path: [],
|
|
72
|
+
query: [],
|
|
73
|
+
header: [],
|
|
74
|
+
cookie: []
|
|
75
|
+
};
|
|
76
|
+
(_item$parameters = item.parameters) === null || _item$parameters === void 0 ? void 0 : _item$parameters.forEach(param => {
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
params[param.in].push(param);
|
|
79
|
+
});
|
|
80
|
+
const auth = (0, _slice.createAuth)({
|
|
81
|
+
security: item.security,
|
|
82
|
+
securitySchemes: item.securitySchemes,
|
|
83
|
+
options
|
|
84
|
+
});
|
|
85
|
+
const persistanceMiddleware = (0, _persistanceMiddleware.createPersistanceMiddleware)(options);
|
|
86
|
+
const store2 = (0, _store.createStoreWithState)({
|
|
87
|
+
accept: {
|
|
88
|
+
value: acceptArray[0],
|
|
89
|
+
options: acceptArray
|
|
90
|
+
},
|
|
91
|
+
contentType: {
|
|
92
|
+
value: contentTypeArray[0],
|
|
93
|
+
options: contentTypeArray
|
|
94
|
+
},
|
|
95
|
+
server: {
|
|
96
|
+
value: servers[0],
|
|
97
|
+
options: servers
|
|
98
|
+
},
|
|
99
|
+
response: {
|
|
100
|
+
value: undefined
|
|
101
|
+
},
|
|
102
|
+
body: {
|
|
103
|
+
type: "empty"
|
|
104
|
+
},
|
|
105
|
+
params,
|
|
106
|
+
auth
|
|
107
|
+
}, [persistanceMiddleware]);
|
|
108
|
+
const {
|
|
109
|
+
path,
|
|
110
|
+
method
|
|
111
|
+
} = item;
|
|
112
|
+
return <_reactRedux.Provider store={store2}>
|
|
113
|
+
<div className={_stylesModule.default.apiDemoPanelContainer}>
|
|
114
|
+
<_MethodEndpoint.default method={method} path={path} />
|
|
115
|
+
|
|
116
|
+
<_SecuritySchemes.default />
|
|
117
|
+
|
|
118
|
+
<div className={_stylesModule.default.optionsPanel}>
|
|
119
|
+
<_ParamOptions.default />
|
|
120
|
+
<_Body.default jsonRequestBodyExample={item.jsonRequestBodyExample} requestBodyMetadata={item.requestBody} />
|
|
121
|
+
<_Accept.default />
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<_Server.default />
|
|
125
|
+
|
|
126
|
+
<_Curl.default postman={postman} codeSamples={(_xCodeSamples = item["x-code-samples"]) !== null && _xCodeSamples !== void 0 ? _xCodeSamples : []} />
|
|
127
|
+
|
|
128
|
+
<_Response.default />
|
|
129
|
+
</div>
|
|
130
|
+
</_reactRedux.Provider>;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
var _default = ApiDemoPanel;
|
|
134
|
+
exports.default = _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPersistanceMiddleware = createPersistanceMiddleware;
|
|
7
|
+
|
|
8
|
+
var _slice = require("./Authorization/slice");
|
|
9
|
+
|
|
10
|
+
var _storageUtils = require("./storage-utils");
|
|
11
|
+
|
|
12
|
+
/* ============================================================================
|
|
13
|
+
* Copyright (c) Palo Alto Networks
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
* ========================================================================== */
|
|
18
|
+
function createPersistanceMiddleware(options) {
|
|
19
|
+
const persistanceMiddleware = storeAPI => next => action => {
|
|
20
|
+
const result = next(action);
|
|
21
|
+
const state = storeAPI.getState();
|
|
22
|
+
const storage = (0, _storageUtils.createStorage)(options === null || options === void 0 ? void 0 : options.authPersistance);
|
|
23
|
+
|
|
24
|
+
if (action.type === _slice.setAuthData.type) {
|
|
25
|
+
for (const [key, value] of Object.entries(state.auth.data)) {
|
|
26
|
+
if (Object.values(value).filter(Boolean).length > 0) {
|
|
27
|
+
storage.setItem(key, JSON.stringify(value));
|
|
28
|
+
} else {
|
|
29
|
+
storage.removeItem(key);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (action.type === _slice.setSelectedAuth.type) {
|
|
35
|
+
if (state.auth.selected) {
|
|
36
|
+
storage.setItem((0, _storageUtils.hashArray)(Object.keys(state.auth.options)), state.auth.selected);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
return persistanceMiddleware;
|
|
44
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
* Copyright (c) Palo Alto Networks
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
* ========================================================================== */
|
|
7
|
+
|
|
8
|
+
declare module "@paloaltonetworks/postman-collection" {
|
|
9
|
+
export = Request.sdk;
|
|
10
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createStorage = createStorage;
|
|
7
|
+
exports.hashArray = hashArray;
|
|
8
|
+
|
|
9
|
+
var _cryptoJs = _interopRequireDefault(require("crypto-js"));
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
/* ============================================================================
|
|
14
|
+
* Copyright (c) Palo Alto Networks
|
|
15
|
+
*
|
|
16
|
+
* This source code is licensed under the MIT license found in the
|
|
17
|
+
* LICENSE file in the root directory of this source tree.
|
|
18
|
+
* ========================================================================== */
|
|
19
|
+
function hashArray(arr) {
|
|
20
|
+
function hash(message) {
|
|
21
|
+
return _cryptoJs.default.SHA1(message).toString();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const hashed = arr.map(item => hash(item));
|
|
25
|
+
hashed.sort();
|
|
26
|
+
const res = hashed.join();
|
|
27
|
+
return hash(res);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function createStorage(persistance) {
|
|
31
|
+
if (persistance === false) {
|
|
32
|
+
return {
|
|
33
|
+
getItem: () => null,
|
|
34
|
+
setItem: () => {},
|
|
35
|
+
clear: () => {},
|
|
36
|
+
key: () => null,
|
|
37
|
+
removeItem: () => {},
|
|
38
|
+
length: 0
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (persistance === "sessionStorage") {
|
|
43
|
+
return sessionStorage;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return localStorage;
|
|
47
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createStoreWithState = void 0;
|
|
7
|
+
|
|
8
|
+
var _toolkit = require("@reduxjs/toolkit");
|
|
9
|
+
|
|
10
|
+
var _slice = _interopRequireDefault(require("./Accept/slice"));
|
|
11
|
+
|
|
12
|
+
var _slice2 = _interopRequireDefault(require("./Authorization/slice"));
|
|
13
|
+
|
|
14
|
+
var _slice3 = _interopRequireDefault(require("./Body/slice"));
|
|
15
|
+
|
|
16
|
+
var _slice4 = _interopRequireDefault(require("./ContentType/slice"));
|
|
17
|
+
|
|
18
|
+
var _slice5 = _interopRequireDefault(require("./ParamOptions/slice"));
|
|
19
|
+
|
|
20
|
+
var _slice6 = _interopRequireDefault(require("./Response/slice"));
|
|
21
|
+
|
|
22
|
+
var _slice7 = _interopRequireDefault(require("./Server/slice"));
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
/* ============================================================================
|
|
27
|
+
* Copyright (c) Palo Alto Networks
|
|
28
|
+
*
|
|
29
|
+
* This source code is licensed under the MIT license found in the
|
|
30
|
+
* LICENSE file in the root directory of this source tree.
|
|
31
|
+
* ========================================================================== */
|
|
32
|
+
const rootReducer = (0, _toolkit.combineReducers)({
|
|
33
|
+
accept: _slice.default,
|
|
34
|
+
contentType: _slice4.default,
|
|
35
|
+
response: _slice6.default,
|
|
36
|
+
server: _slice7.default,
|
|
37
|
+
body: _slice3.default,
|
|
38
|
+
params: _slice5.default,
|
|
39
|
+
auth: _slice2.default
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const createStoreWithState = (preloadedState, middlewares) => (0, _toolkit.configureStore)({
|
|
43
|
+
reducer: rootReducer,
|
|
44
|
+
preloadedState,
|
|
45
|
+
middleware: getDefaultMiddleware => getDefaultMiddleware().concat(...middlewares)
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
exports.createStoreWithState = createStoreWithState;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/* VS Dark mode */
|
|
3
|
+
--openapi-monaco-background-color-dark: var(--ifm-color-gray-900);
|
|
4
|
+
--openapi-code-bright-dark: var(--ifm-color-secondary-lighter);
|
|
5
|
+
--openapi-code-dim-dark: var(--ifm-color-secondary-dark);
|
|
6
|
+
--openapi-code-blue-dark: var(--ifm-color-primary);
|
|
7
|
+
--openapi-code-green-dark: var(--ifm-color-success);
|
|
8
|
+
--openapi-code-select-dark: var(--ifm-color-secondary-lightest);
|
|
9
|
+
|
|
10
|
+
/* VS Light mode */
|
|
11
|
+
--openapi-monaco-background-color-light: var(--ifm-color-gray-100);
|
|
12
|
+
--openapi-code-bright-light: var(--ifm-color-black);
|
|
13
|
+
--openapi-code-dim-light: var(--ifm-color-black);
|
|
14
|
+
--openapi-code-blue-light: var(--ifm-color-primary);
|
|
15
|
+
--openapi-code-green-light: var(--ifm-color-success);
|
|
16
|
+
--openapi-code-select-light: var(--ifm-color-secondary-light);
|
|
17
|
+
|
|
18
|
+
--openapi-card-background-color: var(--ifm-color-gray-100);
|
|
19
|
+
--openapi-card-border-radius: var(--ifm-pre-border-radius);
|
|
20
|
+
--openapi-monaco-border-color: var(--openapi-card-background-color);
|
|
21
|
+
--openapi-input-border: var(--ifm-color-primary);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-theme="dark"] {
|
|
25
|
+
--openapi-card-background-color: var(--ifm-color-gray-900) !important;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.optionsPanel:empty {
|
|
29
|
+
display: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.optionsPanel {
|
|
33
|
+
background: var(--openapi-card-background-color);
|
|
34
|
+
border-radius: var(--openapi-card-border-radius);
|
|
35
|
+
color: var(--ifm-pre-color);
|
|
36
|
+
line-height: var(--ifm-pre-line-height);
|
|
37
|
+
margin-bottom: var(--ifm-spacing-vertical);
|
|
38
|
+
margin-top: 0;
|
|
39
|
+
overflow: auto;
|
|
40
|
+
padding: var(--ifm-pre-padding);
|
|
41
|
+
|
|
42
|
+
/* hack for view calculation when monaco is hidden */
|
|
43
|
+
position: relative;
|
|
44
|
+
}
|