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.
Files changed (187) hide show
  1. package/LICENSE +21 -0
  2. package/babel.config.js +35 -0
  3. package/lib/index.js +48 -0
  4. package/lib/markdown/createDescription.js +20 -0
  5. package/lib/markdown/schema.js +121 -0
  6. package/lib/markdown/utils.js +45 -0
  7. package/lib/theme/ApiDemoPanel/Accept/index.js +41 -0
  8. package/lib/theme/ApiDemoPanel/Accept/slice.js +32 -0
  9. package/lib/theme/ApiDemoPanel/Authorization/auth-types.js +32 -0
  10. package/lib/theme/ApiDemoPanel/Authorization/index.js +174 -0
  11. package/lib/theme/ApiDemoPanel/Authorization/slice.js +137 -0
  12. package/lib/theme/ApiDemoPanel/Body/index.js +185 -0
  13. package/lib/theme/ApiDemoPanel/Body/slice.js +105 -0
  14. package/lib/theme/ApiDemoPanel/ContentType/index.js +41 -0
  15. package/lib/theme/ApiDemoPanel/ContentType/slice.js +32 -0
  16. package/lib/theme/ApiDemoPanel/Curl/index.js +236 -0
  17. package/lib/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  18. package/lib/theme/ApiDemoPanel/Execute/index.js +85 -0
  19. package/lib/theme/ApiDemoPanel/Execute/makeRequest.js +202 -0
  20. package/lib/theme/ApiDemoPanel/FloatingButton/index.js +32 -0
  21. package/lib/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  22. package/lib/theme/ApiDemoPanel/FormFileUpload/index.js +97 -0
  23. package/lib/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  24. package/lib/theme/ApiDemoPanel/FormItem/index.js +35 -0
  25. package/lib/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  26. package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +52 -0
  27. package/lib/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  28. package/lib/theme/ApiDemoPanel/FormSelect/index.js +39 -0
  29. package/lib/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  30. package/lib/theme/ApiDemoPanel/FormTextInput/index.js +30 -0
  31. package/lib/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  32. package/lib/theme/ApiDemoPanel/MethodEndpoint/index.js +60 -0
  33. package/lib/theme/ApiDemoPanel/ParamOptions/index.js +248 -0
  34. package/lib/theme/ApiDemoPanel/ParamOptions/slice.js +35 -0
  35. package/lib/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  36. package/lib/theme/ApiDemoPanel/Response/index.js +75 -0
  37. package/lib/theme/ApiDemoPanel/Response/slice.js +37 -0
  38. package/lib/theme/ApiDemoPanel/SecuritySchemes/index.js +51 -0
  39. package/lib/theme/ApiDemoPanel/Server/index.js +109 -0
  40. package/lib/theme/ApiDemoPanel/Server/slice.js +41 -0
  41. package/lib/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  42. package/lib/theme/ApiDemoPanel/VSCode/index.js +252 -0
  43. package/lib/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  44. package/lib/theme/ApiDemoPanel/buildPostmanRequest.js +329 -0
  45. package/lib/theme/ApiDemoPanel/hooks.js +20 -0
  46. package/lib/theme/ApiDemoPanel/index.js +134 -0
  47. package/lib/theme/ApiDemoPanel/persistanceMiddleware.js +44 -0
  48. package/lib/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  49. package/lib/theme/ApiDemoPanel/storage-utils.js +47 -0
  50. package/lib/theme/ApiDemoPanel/store.js +48 -0
  51. package/lib/theme/ApiDemoPanel/styles.module.css +44 -0
  52. package/lib/theme/ApiItem/index.js +160 -0
  53. package/lib/theme/ApiItem/styles.module.css +109 -0
  54. package/lib/theme/ParamsItem/index.js +68 -0
  55. package/lib/theme/ParamsItem/styles.module.css +24 -0
  56. package/lib/theme/SchemaItem/index.js +58 -0
  57. package/lib/theme/SchemaItem/styles.module.css +24 -0
  58. package/lib/theme/Tabs/index.js +258 -0
  59. package/lib/theme/Tabs/styles.module.css +118 -0
  60. package/lib/theme-classic.d.ts +8 -0
  61. package/lib/theme-openapi.d.ts +48 -0
  62. package/lib/theme-translations.d.ts +9 -0
  63. package/lib/types.js +1 -0
  64. package/lib-next/index.js +38 -0
  65. package/lib-next/markdown/createDescription.js +13 -0
  66. package/lib-next/markdown/schema.js +115 -0
  67. package/lib-next/markdown/utils.js +31 -0
  68. package/lib-next/theme/ApiDemoPanel/Accept/index.js +33 -0
  69. package/lib-next/theme/ApiDemoPanel/Accept/slice.js +19 -0
  70. package/lib-next/theme/ApiDemoPanel/Authorization/auth-types.js +22 -0
  71. package/lib-next/theme/ApiDemoPanel/Authorization/index.js +203 -0
  72. package/lib-next/theme/ApiDemoPanel/Authorization/slice.js +101 -0
  73. package/lib-next/theme/ApiDemoPanel/Body/index.js +210 -0
  74. package/lib-next/theme/ApiDemoPanel/Body/slice.js +89 -0
  75. package/lib-next/theme/ApiDemoPanel/ContentType/index.js +33 -0
  76. package/lib-next/theme/ApiDemoPanel/ContentType/slice.js +19 -0
  77. package/lib-next/theme/ApiDemoPanel/Curl/index.js +264 -0
  78. package/lib-next/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  79. package/lib-next/theme/ApiDemoPanel/Execute/index.js +74 -0
  80. package/lib-next/theme/ApiDemoPanel/Execute/makeRequest.js +183 -0
  81. package/lib-next/theme/ApiDemoPanel/FloatingButton/index.js +19 -0
  82. package/lib-next/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  83. package/lib-next/theme/ApiDemoPanel/FormFileUpload/index.js +113 -0
  84. package/lib-next/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  85. package/lib-next/theme/ApiDemoPanel/FormItem/index.js +29 -0
  86. package/lib-next/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  87. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/index.js +49 -0
  88. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  89. package/lib-next/theme/ApiDemoPanel/FormSelect/index.js +28 -0
  90. package/lib-next/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  91. package/lib-next/theme/ApiDemoPanel/FormTextInput/index.js +23 -0
  92. package/lib-next/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  93. package/lib-next/theme/ApiDemoPanel/MethodEndpoint/index.js +53 -0
  94. package/lib-next/theme/ApiDemoPanel/ParamOptions/index.js +284 -0
  95. package/lib-next/theme/ApiDemoPanel/ParamOptions/slice.js +22 -0
  96. package/lib-next/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  97. package/lib-next/theme/ApiDemoPanel/Response/index.js +65 -0
  98. package/lib-next/theme/ApiDemoPanel/Response/slice.js +22 -0
  99. package/lib-next/theme/ApiDemoPanel/SecuritySchemes/index.js +48 -0
  100. package/lib-next/theme/ApiDemoPanel/Server/index.js +114 -0
  101. package/lib-next/theme/ApiDemoPanel/Server/slice.js +25 -0
  102. package/lib-next/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  103. package/lib-next/theme/ApiDemoPanel/VSCode/index.js +265 -0
  104. package/lib-next/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  105. package/lib-next/theme/ApiDemoPanel/buildPostmanRequest.js +310 -0
  106. package/lib-next/theme/ApiDemoPanel/hooks.js +9 -0
  107. package/lib-next/theme/ApiDemoPanel/index.js +110 -0
  108. package/lib-next/theme/ApiDemoPanel/persistanceMiddleware.js +38 -0
  109. package/lib-next/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  110. package/lib-next/theme/ApiDemoPanel/storage-utils.js +35 -0
  111. package/lib-next/theme/ApiDemoPanel/store.js +30 -0
  112. package/lib-next/theme/ApiDemoPanel/styles.module.css +44 -0
  113. package/lib-next/theme/ApiItem/index.js +171 -0
  114. package/lib-next/theme/ApiItem/styles.module.css +109 -0
  115. package/lib-next/theme/ParamsItem/index.js +68 -0
  116. package/lib-next/theme/ParamsItem/styles.module.css +24 -0
  117. package/lib-next/theme/SchemaItem/index.js +58 -0
  118. package/lib-next/theme/SchemaItem/styles.module.css +24 -0
  119. package/lib-next/theme/Tabs/index.js +258 -0
  120. package/lib-next/theme/Tabs/styles.module.css +118 -0
  121. package/lib-next/theme-classic.d.ts +8 -0
  122. package/lib-next/theme-openapi.d.ts +48 -0
  123. package/lib-next/theme-translations.d.ts +9 -0
  124. package/lib-next/types.js +1 -0
  125. package/package.json +68 -0
  126. package/src/index.ts +42 -0
  127. package/src/markdown/createDescription.ts +13 -0
  128. package/src/markdown/schema.ts +115 -0
  129. package/src/markdown/utils.ts +39 -0
  130. package/src/theme/ApiDemoPanel/Accept/index.tsx +35 -0
  131. package/src/theme/ApiDemoPanel/Accept/slice.ts +29 -0
  132. package/src/theme/ApiDemoPanel/Authorization/auth-types.ts +26 -0
  133. package/src/theme/ApiDemoPanel/Authorization/index.tsx +211 -0
  134. package/src/theme/ApiDemoPanel/Authorization/slice.ts +145 -0
  135. package/src/theme/ApiDemoPanel/Body/index.tsx +218 -0
  136. package/src/theme/ApiDemoPanel/Body/slice.ts +133 -0
  137. package/src/theme/ApiDemoPanel/ContentType/index.tsx +35 -0
  138. package/src/theme/ApiDemoPanel/ContentType/slice.ts +29 -0
  139. package/src/theme/ApiDemoPanel/Curl/index.tsx +280 -0
  140. package/src/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  141. package/src/theme/ApiDemoPanel/Execute/index.tsx +88 -0
  142. package/src/theme/ApiDemoPanel/Execute/makeRequest.ts +184 -0
  143. package/src/theme/ApiDemoPanel/FloatingButton/index.tsx +27 -0
  144. package/src/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  145. package/src/theme/ApiDemoPanel/FormFileUpload/index.tsx +116 -0
  146. package/src/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  147. package/src/theme/ApiDemoPanel/FormItem/index.tsx +28 -0
  148. package/src/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  149. package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +54 -0
  150. package/src/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  151. package/src/theme/ApiDemoPanel/FormSelect/index.tsx +36 -0
  152. package/src/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  153. package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +32 -0
  154. package/src/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  155. package/src/theme/ApiDemoPanel/MethodEndpoint/index.tsx +55 -0
  156. package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +316 -0
  157. package/src/theme/ApiDemoPanel/ParamOptions/slice.ts +37 -0
  158. package/src/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  159. package/src/theme/ApiDemoPanel/Response/index.tsx +66 -0
  160. package/src/theme/ApiDemoPanel/Response/slice.ts +31 -0
  161. package/src/theme/ApiDemoPanel/SecuritySchemes/index.tsx +49 -0
  162. package/src/theme/ApiDemoPanel/Server/index.tsx +103 -0
  163. package/src/theme/ApiDemoPanel/Server/slice.ts +40 -0
  164. package/src/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  165. package/src/theme/ApiDemoPanel/VSCode/index.tsx +205 -0
  166. package/src/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  167. package/src/theme/ApiDemoPanel/buildPostmanRequest.ts +307 -0
  168. package/src/theme/ApiDemoPanel/hooks.ts +13 -0
  169. package/src/theme/ApiDemoPanel/index.tsx +118 -0
  170. package/src/theme/ApiDemoPanel/persistanceMiddleware.ts +46 -0
  171. package/src/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  172. package/src/theme/ApiDemoPanel/storage-utils.ts +39 -0
  173. package/src/theme/ApiDemoPanel/store.ts +41 -0
  174. package/src/theme/ApiDemoPanel/styles.module.css +44 -0
  175. package/src/theme/ApiItem/index.tsx +171 -0
  176. package/src/theme/ApiItem/styles.module.css +109 -0
  177. package/src/theme/ParamsItem/index.js +68 -0
  178. package/src/theme/ParamsItem/styles.module.css +24 -0
  179. package/src/theme/SchemaItem/index.js +58 -0
  180. package/src/theme/SchemaItem/styles.module.css +24 -0
  181. package/src/theme/Tabs/index.js +258 -0
  182. package/src/theme/Tabs/styles.module.css +118 -0
  183. package/src/theme-classic.d.ts +8 -0
  184. package/src/theme-openapi.d.ts +48 -0
  185. package/src/theme-translations.d.ts +9 -0
  186. package/src/types.ts +70 -0
  187. 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
+ }