docusaurus-theme-openapi-docs 0.0.0-345

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 (194) 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/postman-code-generators.d.ts +9 -0
  8. package/lib/react-magic-dropzone.d.ts +9 -0
  9. package/lib/theme/ApiDemoPanel/Accept/index.js +41 -0
  10. package/lib/theme/ApiDemoPanel/Accept/slice.js +32 -0
  11. package/lib/theme/ApiDemoPanel/Authorization/auth-types.js +32 -0
  12. package/lib/theme/ApiDemoPanel/Authorization/index.js +174 -0
  13. package/lib/theme/ApiDemoPanel/Authorization/slice.js +137 -0
  14. package/lib/theme/ApiDemoPanel/Body/index.js +185 -0
  15. package/lib/theme/ApiDemoPanel/Body/slice.js +105 -0
  16. package/lib/theme/ApiDemoPanel/ContentType/index.js +41 -0
  17. package/lib/theme/ApiDemoPanel/ContentType/slice.js +32 -0
  18. package/lib/theme/ApiDemoPanel/Curl/index.js +235 -0
  19. package/lib/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  20. package/lib/theme/ApiDemoPanel/Execute/index.js +85 -0
  21. package/lib/theme/ApiDemoPanel/Execute/makeRequest.js +200 -0
  22. package/lib/theme/ApiDemoPanel/FloatingButton/index.js +32 -0
  23. package/lib/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  24. package/lib/theme/ApiDemoPanel/FormFileUpload/index.js +96 -0
  25. package/lib/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  26. package/lib/theme/ApiDemoPanel/FormItem/index.js +35 -0
  27. package/lib/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  28. package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +52 -0
  29. package/lib/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  30. package/lib/theme/ApiDemoPanel/FormSelect/index.js +39 -0
  31. package/lib/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  32. package/lib/theme/ApiDemoPanel/FormTextInput/index.js +30 -0
  33. package/lib/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  34. package/lib/theme/ApiDemoPanel/MethodEndpoint/index.js +60 -0
  35. package/lib/theme/ApiDemoPanel/ParamOptions/index.js +248 -0
  36. package/lib/theme/ApiDemoPanel/ParamOptions/slice.js +35 -0
  37. package/lib/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  38. package/lib/theme/ApiDemoPanel/Response/index.js +75 -0
  39. package/lib/theme/ApiDemoPanel/Response/slice.js +37 -0
  40. package/lib/theme/ApiDemoPanel/SecuritySchemes/index.js +51 -0
  41. package/lib/theme/ApiDemoPanel/Server/index.js +109 -0
  42. package/lib/theme/ApiDemoPanel/Server/slice.js +41 -0
  43. package/lib/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  44. package/lib/theme/ApiDemoPanel/VSCode/index.js +252 -0
  45. package/lib/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  46. package/lib/theme/ApiDemoPanel/buildPostmanRequest.js +328 -0
  47. package/lib/theme/ApiDemoPanel/hooks.js +20 -0
  48. package/lib/theme/ApiDemoPanel/index.js +132 -0
  49. package/lib/theme/ApiDemoPanel/persistanceMiddleware.js +44 -0
  50. package/lib/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  51. package/lib/theme/ApiDemoPanel/storage-utils.js +47 -0
  52. package/lib/theme/ApiDemoPanel/store.js +48 -0
  53. package/lib/theme/ApiDemoPanel/styles.module.css +44 -0
  54. package/lib/theme/ApiItem/index.js +160 -0
  55. package/lib/theme/ApiItem/styles.module.css +109 -0
  56. package/lib/theme/ApiTabs/index.js +258 -0
  57. package/lib/theme/ApiTabs/styles.module.css +118 -0
  58. package/lib/theme/ParamsItem/index.js +68 -0
  59. package/lib/theme/ParamsItem/styles.module.css +24 -0
  60. package/lib/theme/SchemaItem/index.js +58 -0
  61. package/lib/theme/SchemaItem/styles.module.css +24 -0
  62. package/lib/theme-classic.d.ts +8 -0
  63. package/lib/theme-openapi.d.ts +48 -0
  64. package/lib/theme-translations.d.ts +9 -0
  65. package/lib/types.js +1 -0
  66. package/lib-next/index.js +38 -0
  67. package/lib-next/markdown/createDescription.js +13 -0
  68. package/lib-next/markdown/schema.js +115 -0
  69. package/lib-next/markdown/utils.js +31 -0
  70. package/lib-next/postman-code-generators.d.ts +9 -0
  71. package/lib-next/react-magic-dropzone.d.ts +9 -0
  72. package/lib-next/theme/ApiDemoPanel/Accept/index.js +33 -0
  73. package/lib-next/theme/ApiDemoPanel/Accept/slice.js +19 -0
  74. package/lib-next/theme/ApiDemoPanel/Authorization/auth-types.js +22 -0
  75. package/lib-next/theme/ApiDemoPanel/Authorization/index.js +203 -0
  76. package/lib-next/theme/ApiDemoPanel/Authorization/slice.js +101 -0
  77. package/lib-next/theme/ApiDemoPanel/Body/index.js +210 -0
  78. package/lib-next/theme/ApiDemoPanel/Body/slice.js +89 -0
  79. package/lib-next/theme/ApiDemoPanel/ContentType/index.js +33 -0
  80. package/lib-next/theme/ApiDemoPanel/ContentType/slice.js +19 -0
  81. package/lib-next/theme/ApiDemoPanel/Curl/index.js +262 -0
  82. package/lib-next/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  83. package/lib-next/theme/ApiDemoPanel/Execute/index.js +73 -0
  84. package/lib-next/theme/ApiDemoPanel/Execute/makeRequest.js +181 -0
  85. package/lib-next/theme/ApiDemoPanel/FloatingButton/index.js +19 -0
  86. package/lib-next/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  87. package/lib-next/theme/ApiDemoPanel/FormFileUpload/index.js +112 -0
  88. package/lib-next/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  89. package/lib-next/theme/ApiDemoPanel/FormItem/index.js +29 -0
  90. package/lib-next/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  91. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/index.js +49 -0
  92. package/lib-next/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  93. package/lib-next/theme/ApiDemoPanel/FormSelect/index.js +28 -0
  94. package/lib-next/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  95. package/lib-next/theme/ApiDemoPanel/FormTextInput/index.js +23 -0
  96. package/lib-next/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  97. package/lib-next/theme/ApiDemoPanel/MethodEndpoint/index.js +53 -0
  98. package/lib-next/theme/ApiDemoPanel/ParamOptions/index.js +284 -0
  99. package/lib-next/theme/ApiDemoPanel/ParamOptions/slice.js +22 -0
  100. package/lib-next/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  101. package/lib-next/theme/ApiDemoPanel/Response/index.js +65 -0
  102. package/lib-next/theme/ApiDemoPanel/Response/slice.js +22 -0
  103. package/lib-next/theme/ApiDemoPanel/SecuritySchemes/index.js +48 -0
  104. package/lib-next/theme/ApiDemoPanel/Server/index.js +114 -0
  105. package/lib-next/theme/ApiDemoPanel/Server/slice.js +25 -0
  106. package/lib-next/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  107. package/lib-next/theme/ApiDemoPanel/VSCode/index.js +265 -0
  108. package/lib-next/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  109. package/lib-next/theme/ApiDemoPanel/buildPostmanRequest.js +309 -0
  110. package/lib-next/theme/ApiDemoPanel/hooks.js +9 -0
  111. package/lib-next/theme/ApiDemoPanel/index.js +108 -0
  112. package/lib-next/theme/ApiDemoPanel/persistanceMiddleware.js +38 -0
  113. package/lib-next/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  114. package/lib-next/theme/ApiDemoPanel/storage-utils.js +35 -0
  115. package/lib-next/theme/ApiDemoPanel/store.js +30 -0
  116. package/lib-next/theme/ApiDemoPanel/styles.module.css +44 -0
  117. package/lib-next/theme/ApiItem/index.js +171 -0
  118. package/lib-next/theme/ApiItem/styles.module.css +109 -0
  119. package/lib-next/theme/ApiTabs/index.js +258 -0
  120. package/lib-next/theme/ApiTabs/styles.module.css +118 -0
  121. package/lib-next/theme/ParamsItem/index.js +68 -0
  122. package/lib-next/theme/ParamsItem/styles.module.css +24 -0
  123. package/lib-next/theme/SchemaItem/index.js +58 -0
  124. package/lib-next/theme/SchemaItem/styles.module.css +24 -0
  125. package/lib-next/theme-classic.d.ts +8 -0
  126. package/lib-next/theme-openapi.d.ts +48 -0
  127. package/lib-next/theme-translations.d.ts +9 -0
  128. package/lib-next/types.js +1 -0
  129. package/package.json +74 -0
  130. package/src/index.ts +42 -0
  131. package/src/markdown/createDescription.ts +13 -0
  132. package/src/markdown/schema.ts +115 -0
  133. package/src/markdown/utils.ts +39 -0
  134. package/src/postman-code-generators.d.ts +9 -0
  135. package/src/react-magic-dropzone.d.ts +9 -0
  136. package/src/theme/ApiDemoPanel/Accept/index.tsx +35 -0
  137. package/src/theme/ApiDemoPanel/Accept/slice.ts +29 -0
  138. package/src/theme/ApiDemoPanel/Authorization/auth-types.ts +26 -0
  139. package/src/theme/ApiDemoPanel/Authorization/index.tsx +211 -0
  140. package/src/theme/ApiDemoPanel/Authorization/slice.ts +145 -0
  141. package/src/theme/ApiDemoPanel/Body/index.tsx +218 -0
  142. package/src/theme/ApiDemoPanel/Body/slice.ts +133 -0
  143. package/src/theme/ApiDemoPanel/ContentType/index.tsx +35 -0
  144. package/src/theme/ApiDemoPanel/ContentType/slice.ts +29 -0
  145. package/src/theme/ApiDemoPanel/Curl/index.tsx +278 -0
  146. package/src/theme/ApiDemoPanel/Curl/styles.module.css +84 -0
  147. package/src/theme/ApiDemoPanel/Execute/index.tsx +87 -0
  148. package/src/theme/ApiDemoPanel/Execute/makeRequest.ts +182 -0
  149. package/src/theme/ApiDemoPanel/FloatingButton/index.tsx +27 -0
  150. package/src/theme/ApiDemoPanel/FloatingButton/styles.module.css +26 -0
  151. package/src/theme/ApiDemoPanel/FormFileUpload/index.tsx +115 -0
  152. package/src/theme/ApiDemoPanel/FormFileUpload/styles.module.css +75 -0
  153. package/src/theme/ApiDemoPanel/FormItem/index.tsx +28 -0
  154. package/src/theme/ApiDemoPanel/FormItem/styles.module.css +7 -0
  155. package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +54 -0
  156. package/src/theme/ApiDemoPanel/FormMultiSelect/styles.module.css +38 -0
  157. package/src/theme/ApiDemoPanel/FormSelect/index.tsx +36 -0
  158. package/src/theme/ApiDemoPanel/FormSelect/styles.module.css +51 -0
  159. package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +32 -0
  160. package/src/theme/ApiDemoPanel/FormTextInput/styles.module.css +21 -0
  161. package/src/theme/ApiDemoPanel/MethodEndpoint/index.tsx +55 -0
  162. package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +316 -0
  163. package/src/theme/ApiDemoPanel/ParamOptions/slice.ts +37 -0
  164. package/src/theme/ApiDemoPanel/ParamOptions/styles.module.css +180 -0
  165. package/src/theme/ApiDemoPanel/Response/index.tsx +66 -0
  166. package/src/theme/ApiDemoPanel/Response/slice.ts +31 -0
  167. package/src/theme/ApiDemoPanel/SecuritySchemes/index.tsx +49 -0
  168. package/src/theme/ApiDemoPanel/Server/index.tsx +103 -0
  169. package/src/theme/ApiDemoPanel/Server/slice.ts +40 -0
  170. package/src/theme/ApiDemoPanel/Server/styles.module.css +61 -0
  171. package/src/theme/ApiDemoPanel/VSCode/index.tsx +205 -0
  172. package/src/theme/ApiDemoPanel/VSCode/styles.module.css +19 -0
  173. package/src/theme/ApiDemoPanel/buildPostmanRequest.ts +305 -0
  174. package/src/theme/ApiDemoPanel/hooks.ts +13 -0
  175. package/src/theme/ApiDemoPanel/index.tsx +117 -0
  176. package/src/theme/ApiDemoPanel/persistanceMiddleware.ts +46 -0
  177. package/src/theme/ApiDemoPanel/postman-collection.d.ts +10 -0
  178. package/src/theme/ApiDemoPanel/storage-utils.ts +39 -0
  179. package/src/theme/ApiDemoPanel/store.ts +41 -0
  180. package/src/theme/ApiDemoPanel/styles.module.css +44 -0
  181. package/src/theme/ApiItem/index.tsx +171 -0
  182. package/src/theme/ApiItem/styles.module.css +109 -0
  183. package/src/theme/ApiTabs/index.js +258 -0
  184. package/src/theme/ApiTabs/styles.module.css +118 -0
  185. package/src/theme/ParamsItem/index.js +68 -0
  186. package/src/theme/ParamsItem/styles.module.css +24 -0
  187. package/src/theme/SchemaItem/index.js +58 -0
  188. package/src/theme/SchemaItem/styles.module.css +24 -0
  189. package/src/theme-classic.d.ts +8 -0
  190. package/src/theme-openapi.d.ts +48 -0
  191. package/src/theme-translations.d.ts +9 -0
  192. package/src/types.ts +70 -0
  193. package/tsconfig.json +10 -0
  194. package/yarn-error.log +15035 -0
@@ -0,0 +1,328 @@
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
+ function setQueryParams(postman, queryParams) {
21
+ postman.url.query.clear();
22
+ const qp = queryParams.map(param => {
23
+ if (!param.value) {
24
+ return undefined;
25
+ }
26
+
27
+ if (Array.isArray(param.value)) {
28
+ return new _postmanCollection.default.QueryParam({
29
+ key: param.name,
30
+ value: param.value.join(",")
31
+ });
32
+ } // Parameter allows empty value: "/hello?extended"
33
+
34
+
35
+ if (param.allowEmptyValue) {
36
+ if (param.value === "true") {
37
+ return new _postmanCollection.default.QueryParam({
38
+ key: param.name,
39
+ value: null
40
+ });
41
+ }
42
+
43
+ return undefined;
44
+ }
45
+
46
+ return new _postmanCollection.default.QueryParam({
47
+ key: param.name,
48
+ value: param.value
49
+ });
50
+ }).filter(item => item !== undefined);
51
+
52
+ if (qp.length > 0) {
53
+ postman.addQueryParams(qp);
54
+ }
55
+ }
56
+
57
+ function setPathParams(postman, queryParams) {
58
+ const source = queryParams.map(param => {
59
+ return new _postmanCollection.default.Variable({
60
+ key: param.name,
61
+ value: param.value || `:${param.name}`
62
+ });
63
+ });
64
+ postman.url.variables.assimilate(source, false);
65
+ }
66
+
67
+ function buildCookie(cookieParams) {
68
+ const cookies = cookieParams.map(param => {
69
+ if (param.value && !Array.isArray(param.value)) {
70
+ return new _postmanCollection.default.Cookie({
71
+ // TODO: Is this right?
72
+ path: "",
73
+ domain: "",
74
+ key: param.name,
75
+ value: param.value
76
+ });
77
+ }
78
+
79
+ return undefined;
80
+ }).filter(item => item !== undefined);
81
+ const list = new _postmanCollection.default.CookieList(null, cookies);
82
+ return list.toString();
83
+ }
84
+
85
+ function setHeaders(postman, contentType, accept, cookie, headerParams, other) {
86
+ postman.headers.clear();
87
+
88
+ if (contentType) {
89
+ postman.addHeader({
90
+ key: "Content-Type",
91
+ value: contentType
92
+ });
93
+ }
94
+
95
+ if (accept) {
96
+ postman.addHeader({
97
+ key: "Accept",
98
+ value: accept
99
+ });
100
+ }
101
+
102
+ headerParams.forEach(param => {
103
+ if (param.value && !Array.isArray(param.value)) {
104
+ postman.addHeader({
105
+ key: param.name,
106
+ value: param.value
107
+ });
108
+ }
109
+ });
110
+ other.forEach(header => {
111
+ postman.addHeader(header);
112
+ });
113
+
114
+ if (cookie) {
115
+ postman.addHeader({
116
+ key: "Cookie",
117
+ value: cookie
118
+ });
119
+ }
120
+ } // TODO: this is all a bit hacky
121
+
122
+
123
+ function setBody(clonedPostman, body) {
124
+ var _body$content;
125
+
126
+ if (clonedPostman.body === undefined) {
127
+ return;
128
+ }
129
+
130
+ if (body.type === "empty") {
131
+ clonedPostman.body = undefined;
132
+ return;
133
+ }
134
+
135
+ if (body.type === "raw" && ((_body$content = body.content) === null || _body$content === void 0 ? void 0 : _body$content.type) === "file") {
136
+ // treat it like file.
137
+ clonedPostman.body.mode = "file";
138
+ clonedPostman.body.file = {
139
+ src: body.content.value.src
140
+ };
141
+ return;
142
+ }
143
+
144
+ switch (clonedPostman.body.mode) {
145
+ case "raw":
146
+ {
147
+ var _body$content2, _body$content$value, _body$content3;
148
+
149
+ // check file even though it should already be set from above
150
+ if (body.type !== "raw" || ((_body$content2 = body.content) === null || _body$content2 === void 0 ? void 0 : _body$content2.type) === "file") {
151
+ clonedPostman.body = undefined;
152
+ return;
153
+ }
154
+
155
+ 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 : "";
156
+ return;
157
+ }
158
+
159
+ case "formdata":
160
+ {
161
+ var _clonedPostman$body$f, _clonedPostman$body$f2;
162
+
163
+ (_clonedPostman$body$f = clonedPostman.body.formdata) === null || _clonedPostman$body$f === void 0 ? void 0 : _clonedPostman$body$f.clear();
164
+
165
+ if (body.type !== "form") {
166
+ var _body$content4;
167
+
168
+ // treat it like raw.
169
+ clonedPostman.body.mode = "raw";
170
+ clonedPostman.body.raw = `${(_body$content4 = body.content) === null || _body$content4 === void 0 ? void 0 : _body$content4.value}`;
171
+ return;
172
+ }
173
+
174
+ const params = Object.entries(body.content).filter(entry => !!entry[1]).map(([key, content]) => {
175
+ if (content.type === "file") {
176
+ return new _postmanCollection.default.FormParam({
177
+ key: key,
178
+ ...content
179
+ });
180
+ }
181
+
182
+ return new _postmanCollection.default.FormParam({
183
+ key: key,
184
+ value: content.value
185
+ });
186
+ });
187
+ (_clonedPostman$body$f2 = clonedPostman.body.formdata) === null || _clonedPostman$body$f2 === void 0 ? void 0 : _clonedPostman$body$f2.assimilate(params, false);
188
+ return;
189
+ }
190
+
191
+ case "urlencoded":
192
+ {
193
+ var _clonedPostman$body$u, _clonedPostman$body$u2;
194
+
195
+ (_clonedPostman$body$u = clonedPostman.body.urlencoded) === null || _clonedPostman$body$u === void 0 ? void 0 : _clonedPostman$body$u.clear();
196
+
197
+ if (body.type !== "form") {
198
+ var _body$content5;
199
+
200
+ // treat it like raw.
201
+ clonedPostman.body.mode = "raw";
202
+ clonedPostman.body.raw = `${(_body$content5 = body.content) === null || _body$content5 === void 0 ? void 0 : _body$content5.value}`;
203
+ return;
204
+ }
205
+
206
+ const params = Object.entries(body.content).filter(entry => !!entry[1]).map(([key, content]) => {
207
+ if (content.type !== "file" && content.value) {
208
+ return new _postmanCollection.default.QueryParam({
209
+ key: key,
210
+ value: content.value
211
+ });
212
+ }
213
+
214
+ return undefined;
215
+ }).filter(item => item !== undefined);
216
+ (_clonedPostman$body$u2 = clonedPostman.body.urlencoded) === null || _clonedPostman$body$u2 === void 0 ? void 0 : _clonedPostman$body$u2.assimilate(params, false);
217
+ return;
218
+ }
219
+
220
+ default:
221
+ return;
222
+ }
223
+ } // TODO: finish these types
224
+
225
+
226
+ function buildPostmanRequest(postman, {
227
+ queryParams,
228
+ pathParams,
229
+ cookieParams,
230
+ contentType,
231
+ accept,
232
+ headerParams,
233
+ body,
234
+ server,
235
+ auth
236
+ }) {
237
+ const clonedPostman = (0, _cloneDeep.default)(postman);
238
+ clonedPostman.url.protocol = undefined;
239
+ clonedPostman.url.host = [window.location.origin];
240
+
241
+ if (server) {
242
+ let url = server.url.replace(/\/$/, "");
243
+ const variables = server.variables;
244
+
245
+ if (variables) {
246
+ Object.keys(variables).forEach(variable => {
247
+ url = url.replace(`{${variable}}`, variables[variable].default);
248
+ });
249
+ }
250
+
251
+ clonedPostman.url.host = [url];
252
+ }
253
+
254
+ setQueryParams(clonedPostman, queryParams);
255
+ setPathParams(clonedPostman, pathParams);
256
+ const cookie = buildCookie(cookieParams);
257
+ let otherHeaders = [];
258
+ let selectedAuth = [];
259
+
260
+ if (auth.selected !== undefined) {
261
+ selectedAuth = auth.options[auth.selected];
262
+ }
263
+
264
+ for (const a of selectedAuth) {
265
+ // Bearer Auth
266
+ if (a.type === "http" && a.scheme === "bearer") {
267
+ const {
268
+ token
269
+ } = auth.data[a.key];
270
+
271
+ if (token === undefined) {
272
+ continue;
273
+ }
274
+
275
+ otherHeaders.push({
276
+ key: "Authorization",
277
+ value: `Bearer ${token}`
278
+ });
279
+ continue;
280
+ } // Basic Auth
281
+
282
+
283
+ if (a.type === "http" && a.scheme === "basic") {
284
+ const {
285
+ username,
286
+ password
287
+ } = auth.data[a.key];
288
+
289
+ if (username === undefined || password === undefined) {
290
+ continue;
291
+ }
292
+
293
+ otherHeaders.push({
294
+ key: "Authorization",
295
+ value: `Basic ${window.btoa(`${username}:${password}`)}`
296
+ });
297
+ continue;
298
+ } // API Key
299
+
300
+
301
+ if (a.type === "apiKey" && a.in === "header") {
302
+ const {
303
+ apikey
304
+ } = auth.data[a.key];
305
+
306
+ if (apikey === undefined) {
307
+ otherHeaders.push({
308
+ key: a.name,
309
+ value: "API_KEY_VALUE"
310
+ });
311
+ continue;
312
+ }
313
+
314
+ otherHeaders.push({
315
+ key: a.name,
316
+ value: apikey
317
+ });
318
+ continue;
319
+ }
320
+ }
321
+
322
+ setHeaders(clonedPostman, contentType, accept, cookie, headerParams, otherHeaders);
323
+ setBody(clonedPostman, body);
324
+ return clonedPostman;
325
+ }
326
+
327
+ var _default = buildPostmanRequest;
328
+ 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,132 @@
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
+ function ApiDemoPanel({
49
+ item
50
+ }) {
51
+ var _item$responses, _item$requestBody$con, _item$requestBody, _item$servers, _item$parameters, _xCodeSamples;
52
+
53
+ const {
54
+ siteConfig
55
+ } = (0, _useDocusaurusContext.default)();
56
+ const themeConfig = siteConfig.themeConfig;
57
+ const options = themeConfig.api;
58
+ const postman = new _postmanCollection.default.Request(item.postman);
59
+ const acceptArray = Array.from(new Set(Object.values((_item$responses = item.responses) !== null && _item$responses !== void 0 ? _item$responses : {}).map(response => {
60
+ var _response$content;
61
+
62
+ return Object.keys((_response$content = response.content) !== null && _response$content !== void 0 ? _response$content : {});
63
+ }).flat()));
64
+ 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 : {};
65
+ const contentTypeArray = Object.keys(content);
66
+ const servers = (_item$servers = item.servers) !== null && _item$servers !== void 0 ? _item$servers : [];
67
+ const params = {
68
+ path: [],
69
+ query: [],
70
+ header: [],
71
+ cookie: []
72
+ };
73
+ (_item$parameters = item.parameters) === null || _item$parameters === void 0 ? void 0 : _item$parameters.forEach(param => {
74
+ const paramType = param.in;
75
+ const paramsArray = params[paramType];
76
+ paramsArray.push(param);
77
+ });
78
+ const auth = (0, _slice.createAuth)({
79
+ security: item.security,
80
+ securitySchemes: item.securitySchemes,
81
+ options
82
+ });
83
+ const persistanceMiddleware = (0, _persistanceMiddleware.createPersistanceMiddleware)(options);
84
+ const store2 = (0, _store.createStoreWithState)({
85
+ accept: {
86
+ value: acceptArray[0],
87
+ options: acceptArray
88
+ },
89
+ contentType: {
90
+ value: contentTypeArray[0],
91
+ options: contentTypeArray
92
+ },
93
+ server: {
94
+ value: servers[0],
95
+ options: servers
96
+ },
97
+ response: {
98
+ value: undefined
99
+ },
100
+ body: {
101
+ type: "empty"
102
+ },
103
+ params,
104
+ auth
105
+ }, [persistanceMiddleware]);
106
+ const {
107
+ path,
108
+ method
109
+ } = item;
110
+ return <_reactRedux.Provider store={store2}>
111
+ <div className={_stylesModule.default.apiDemoPanelContainer}>
112
+ <_MethodEndpoint.default method={method} path={path} />
113
+
114
+ <_SecuritySchemes.default />
115
+
116
+ <div className={_stylesModule.default.optionsPanel}>
117
+ <_ParamOptions.default />
118
+ <_Body.default jsonRequestBodyExample={item.jsonRequestBodyExample} requestBodyMetadata={item.requestBody} />
119
+ <_Accept.default />
120
+ </div>
121
+
122
+ <_Server.default />
123
+
124
+ <_Curl.default postman={postman} codeSamples={(_xCodeSamples = item["x-code-samples"]) !== null && _xCodeSamples !== void 0 ? _xCodeSamples : []} />
125
+
126
+ <_Response.default />
127
+ </div>
128
+ </_reactRedux.Provider>;
129
+ }
130
+
131
+ var _default = ApiDemoPanel;
132
+ 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
+ }