docusaurus-theme-openapi-docs 4.1.0 → 4.2.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/lib/theme/ApiExplorer/CodeSnippets/index.js +2 -1
- package/lib/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +50 -0
- package/lib/theme/ApiItem/Layout/index.js +6 -2
- package/lib/theme/ApiItem/index.js +15 -4
- package/lib/theme/ApiTabs/_ApiTabs.scss +0 -1
- package/lib/theme/ArrayBrackets/index.d.ts +3 -0
- package/lib/theme/ArrayBrackets/index.js +50 -0
- package/lib/theme/ParamsDetails/index.d.ts +6 -0
- package/lib/theme/ParamsDetails/index.js +134 -0
- package/lib/theme/ParamsItem/index.d.ts +1 -0
- package/lib/theme/ParamsItem/index.js +10 -6
- package/lib/theme/RequestSchema/index.d.ts +15 -0
- package/lib/theme/RequestSchema/index.js +235 -0
- package/lib/theme/ResponseExamples/index.d.ts +48 -0
- package/lib/theme/ResponseExamples/index.js +290 -0
- package/lib/theme/ResponseSchema/index.d.ts +15 -0
- package/lib/theme/ResponseSchema/index.js +206 -0
- package/lib/theme/Schema/index.d.ts +8 -0
- package/lib/theme/Schema/index.js +879 -0
- package/lib/theme/SchemaItem/index.d.ts +8 -8
- package/lib/theme/SchemaItem/index.js +9 -5
- package/lib/theme/SkeletonLoader/index.d.ts +6 -0
- package/lib/theme/SkeletonLoader/index.js +20 -0
- package/lib/theme/StatusCodes/index.d.ts +9 -0
- package/lib/theme/StatusCodes/index.js +78 -0
- package/lib/theme/styles.scss +56 -9
- package/package.json +6 -5
- package/src/theme/ApiExplorer/CodeSnippets/index.tsx +2 -1
- package/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +50 -0
- package/src/theme/ApiItem/Layout/index.tsx +5 -2
- package/src/theme/ApiItem/index.tsx +14 -2
- package/src/theme/ApiTabs/_ApiTabs.scss +0 -1
- package/src/theme/ArrayBrackets/index.tsx +37 -0
- package/src/theme/ParamsDetails/index.tsx +88 -0
- package/src/theme/ParamsItem/index.tsx +10 -7
- package/src/theme/RequestSchema/index.tsx +164 -0
- package/src/theme/ResponseExamples/index.tsx +290 -0
- package/src/theme/ResponseSchema/index.tsx +151 -0
- package/src/theme/Schema/index.tsx +928 -0
- package/src/theme/SchemaItem/index.tsx +15 -13
- package/src/theme/SkeletonLoader/index.tsx +18 -0
- package/src/theme/StatusCodes/index.tsx +72 -0
- package/src/theme/styles.scss +56 -9
|
@@ -224,7 +224,7 @@ function CodeSnippets({ postman, codeSamples }) {
|
|
|
224
224
|
]);
|
|
225
225
|
// no dependencies was intentionlly set for this particular hook. it's safe as long as if conditions are set
|
|
226
226
|
(0, react_1.useEffect)(function onSelectedVariantUpdate() {
|
|
227
|
-
if (selectedVariant && selectedVariant !== language
|
|
227
|
+
if (selectedVariant && selectedVariant !== language?.variant) {
|
|
228
228
|
const postmanRequest = (0, buildPostmanRequest_1.default)(postman, {
|
|
229
229
|
queryParams,
|
|
230
230
|
pathParams,
|
|
@@ -254,6 +254,7 @@ function CodeSnippets({ postman, codeSamples }) {
|
|
|
254
254
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
255
255
|
(0, react_1.useEffect)(function onSelectedSampleUpdate() {
|
|
256
256
|
if (
|
|
257
|
+
language &&
|
|
257
258
|
language.samples &&
|
|
258
259
|
language.samplesSources &&
|
|
259
260
|
selectedSample &&
|
|
@@ -436,6 +436,56 @@ body[class="ReactModal__Body--open"] {
|
|
|
436
436
|
}
|
|
437
437
|
}
|
|
438
438
|
|
|
439
|
+
.openapi-tabs__code-item--http {
|
|
440
|
+
color: var(--ifm-color-gray-500);
|
|
441
|
+
display: flex;
|
|
442
|
+
align-items: center;
|
|
443
|
+
justify-content: center;
|
|
444
|
+
position: relative;
|
|
445
|
+
|
|
446
|
+
&::after {
|
|
447
|
+
content: "";
|
|
448
|
+
display: inline-block;
|
|
449
|
+
width: 32px; /* Explicitly setting width to 32 pixels */
|
|
450
|
+
height: 32px; /* Explicitly setting height to 32 pixels */
|
|
451
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIyTDggMTZMMTIgMTBNMjAgMjJMMjQgMTZMIDIwIDEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=");
|
|
452
|
+
background-size: contain;
|
|
453
|
+
background-repeat: no-repeat;
|
|
454
|
+
background-position: center; /* Center the SVG */
|
|
455
|
+
margin-top: 0.5rem;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
&.active {
|
|
459
|
+
box-shadow: 0 0 0 3px var(--opeanpi-code-tab-shadow-color-http);
|
|
460
|
+
border-color: var(--openapi-code-tab-border-color-http);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
.openapi-tabs__code-item--shell {
|
|
465
|
+
color: var(--ifm-color-gray-500);
|
|
466
|
+
display: flex;
|
|
467
|
+
align-items: center;
|
|
468
|
+
justify-content: center;
|
|
469
|
+
position: relative;
|
|
470
|
+
|
|
471
|
+
&::after {
|
|
472
|
+
content: "";
|
|
473
|
+
display: inline-block;
|
|
474
|
+
width: 32px; /* Explicitly setting width to 32 pixels */
|
|
475
|
+
height: 32px; /* Explicitly setting height to 32 pixels */
|
|
476
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIyTDggMTZMMTIgMTBNMjAgMjJMMjQgMTZMIDIwIDEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=");
|
|
477
|
+
background-size: contain;
|
|
478
|
+
background-repeat: no-repeat;
|
|
479
|
+
background-position: center; /* Center the SVG */
|
|
480
|
+
margin-top: 0.5rem;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
&.active {
|
|
484
|
+
box-shadow: 0 0 0 3px var(--opeanpi-code-tab-shadow-color-shell);
|
|
485
|
+
border-color: var(--openapi-code-tab-border-color-shell);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
439
489
|
@media only screen and (min-width: 768px) and (max-width: 996px) {
|
|
440
490
|
.openapi-tabs__code-list {
|
|
441
491
|
justify-content: space-around;
|
|
@@ -53,6 +53,7 @@ function DocItemLayout({ children }) {
|
|
|
53
53
|
const { metadata } = (0, client_1.useDoc)();
|
|
54
54
|
const { frontMatter } = (0, client_1.useDoc)();
|
|
55
55
|
const api = frontMatter.api;
|
|
56
|
+
const schema = frontMatter.schema;
|
|
56
57
|
return react_1.default.createElement(
|
|
57
58
|
"div",
|
|
58
59
|
{ className: "row" },
|
|
@@ -86,7 +87,7 @@ function DocItemLayout({ children }) {
|
|
|
86
87
|
{
|
|
87
88
|
className: (0, clsx_1.default)(
|
|
88
89
|
"col",
|
|
89
|
-
api ? "col--7" : "col--12"
|
|
90
|
+
api || schema ? "col--7" : "col--12"
|
|
90
91
|
),
|
|
91
92
|
},
|
|
92
93
|
react_1.default.createElement(Footer_1.default, null)
|
|
@@ -99,7 +100,10 @@ function DocItemLayout({ children }) {
|
|
|
99
100
|
react_1.default.createElement(
|
|
100
101
|
"div",
|
|
101
102
|
{
|
|
102
|
-
className: (0, clsx_1.default)(
|
|
103
|
+
className: (0, clsx_1.default)(
|
|
104
|
+
"col",
|
|
105
|
+
api || schema ? "col--7" : "col--12"
|
|
106
|
+
),
|
|
103
107
|
},
|
|
104
108
|
react_1.default.createElement(Paginator_1.default, null)
|
|
105
109
|
)
|
|
@@ -26,7 +26,9 @@ const useIsBrowser_1 = __importDefault(require("@docusaurus/useIsBrowser"));
|
|
|
26
26
|
const slice_1 = require("@theme/ApiExplorer/Authorization/slice");
|
|
27
27
|
const persistanceMiddleware_1 = require("@theme/ApiExplorer/persistanceMiddleware");
|
|
28
28
|
const Layout_1 = __importDefault(require("@theme/ApiItem/Layout"));
|
|
29
|
+
const CodeBlock_1 = __importDefault(require("@theme/CodeBlock"));
|
|
29
30
|
const Metadata_1 = __importDefault(require("@theme/DocItem/Metadata"));
|
|
31
|
+
const SkeletonLoader_1 = __importDefault(require("@theme/SkeletonLoader"));
|
|
30
32
|
const clsx_1 = __importDefault(require("clsx"));
|
|
31
33
|
const react_redux_1 = require("react-redux");
|
|
32
34
|
const store_1 = require("./store");
|
|
@@ -42,6 +44,7 @@ function ApiItem(props) {
|
|
|
42
44
|
const { info_path: infoPath } = frontMatter;
|
|
43
45
|
let { api } = frontMatter;
|
|
44
46
|
const { schema } = frontMatter;
|
|
47
|
+
const { sample } = frontMatter;
|
|
45
48
|
// decompress and parse
|
|
46
49
|
if (api) {
|
|
47
50
|
try {
|
|
@@ -149,9 +152,8 @@ function ApiItem(props) {
|
|
|
149
152
|
BrowserOnly_1.default,
|
|
150
153
|
{
|
|
151
154
|
fallback: react_1.default.createElement(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"Loading..."
|
|
155
|
+
SkeletonLoader_1.default,
|
|
156
|
+
{ size: "lg" }
|
|
155
157
|
),
|
|
156
158
|
},
|
|
157
159
|
() => {
|
|
@@ -183,8 +185,17 @@ function ApiItem(props) {
|
|
|
183
185
|
{ className: (0, clsx_1.default)("row", "theme-api-markdown") },
|
|
184
186
|
react_1.default.createElement(
|
|
185
187
|
"div",
|
|
186
|
-
{ className: "col col--
|
|
188
|
+
{ className: "col col--7 openapi-left-panel__container schema" },
|
|
187
189
|
react_1.default.createElement(MDXComponent, null)
|
|
190
|
+
),
|
|
191
|
+
react_1.default.createElement(
|
|
192
|
+
"div",
|
|
193
|
+
{ className: "col col--5 openapi-right-panel__container" },
|
|
194
|
+
react_1.default.createElement(
|
|
195
|
+
CodeBlock_1.default,
|
|
196
|
+
{ language: "json", title: `${frontMatter.title}` },
|
|
197
|
+
JSON.stringify(sample, null, 2)
|
|
198
|
+
)
|
|
188
199
|
)
|
|
189
200
|
)
|
|
190
201
|
)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __importDefault =
|
|
9
|
+
(this && this.__importDefault) ||
|
|
10
|
+
function (mod) {
|
|
11
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ClosingArrayBracket = exports.OpeningArrayBracket = void 0;
|
|
15
|
+
const react_1 = __importDefault(require("react"));
|
|
16
|
+
const OpeningArrayBracket = () =>
|
|
17
|
+
react_1.default.createElement(
|
|
18
|
+
"li",
|
|
19
|
+
null,
|
|
20
|
+
react_1.default.createElement(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
style: {
|
|
24
|
+
fontSize: "var(--ifm-code-font-size)",
|
|
25
|
+
opacity: 0.6,
|
|
26
|
+
marginLeft: "-.5rem",
|
|
27
|
+
paddingBottom: ".5rem",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
"Array ["
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
exports.OpeningArrayBracket = OpeningArrayBracket;
|
|
34
|
+
const ClosingArrayBracket = () =>
|
|
35
|
+
react_1.default.createElement(
|
|
36
|
+
"li",
|
|
37
|
+
null,
|
|
38
|
+
react_1.default.createElement(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
style: {
|
|
42
|
+
fontSize: "var(--ifm-code-font-size)",
|
|
43
|
+
opacity: 0.6,
|
|
44
|
+
marginLeft: "-.5rem",
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
"]"
|
|
48
|
+
)
|
|
49
|
+
);
|
|
50
|
+
exports.ClosingArrayBracket = ClosingArrayBracket;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __createBinding =
|
|
9
|
+
(this && this.__createBinding) ||
|
|
10
|
+
(Object.create
|
|
11
|
+
? function (o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (
|
|
15
|
+
!desc ||
|
|
16
|
+
("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
|
|
17
|
+
) {
|
|
18
|
+
desc = {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return m[k];
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}
|
|
27
|
+
: function (o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
});
|
|
31
|
+
var __setModuleDefault =
|
|
32
|
+
(this && this.__setModuleDefault) ||
|
|
33
|
+
(Object.create
|
|
34
|
+
? function (o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}
|
|
37
|
+
: function (o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar =
|
|
41
|
+
(this && this.__importStar) ||
|
|
42
|
+
function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null)
|
|
46
|
+
for (var k in mod)
|
|
47
|
+
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
48
|
+
__createBinding(result, mod, k);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
var __importDefault =
|
|
53
|
+
(this && this.__importDefault) ||
|
|
54
|
+
function (mod) {
|
|
55
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
56
|
+
};
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
const react_1 = __importStar(require("react"));
|
|
59
|
+
const BrowserOnly_1 = __importDefault(require("@docusaurus/BrowserOnly"));
|
|
60
|
+
const Details_1 = __importDefault(require("@theme/Details"));
|
|
61
|
+
const ParamsItem_1 = __importDefault(require("@theme/ParamsItem"));
|
|
62
|
+
const SkeletonLoader_1 = __importDefault(require("@theme/SkeletonLoader"));
|
|
63
|
+
const ParamsDetailsComponent = ({ parameters }) => {
|
|
64
|
+
const types = ["path", "query", "header", "cookie"];
|
|
65
|
+
return react_1.default.createElement(
|
|
66
|
+
react_1.default.Fragment,
|
|
67
|
+
null,
|
|
68
|
+
types.map((type) => {
|
|
69
|
+
const params = parameters?.filter((param) => param?.in === type);
|
|
70
|
+
if (!params || params.length === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const summaryElement = react_1.default.createElement(
|
|
74
|
+
"summary",
|
|
75
|
+
null,
|
|
76
|
+
react_1.default.createElement(
|
|
77
|
+
"h3",
|
|
78
|
+
{ className: "openapi-markdown__details-summary-header-params" },
|
|
79
|
+
`${type.charAt(0).toUpperCase() + type.slice(1)} Parameters`
|
|
80
|
+
)
|
|
81
|
+
);
|
|
82
|
+
return react_1.default.createElement(
|
|
83
|
+
Details_1.default,
|
|
84
|
+
{
|
|
85
|
+
key: type,
|
|
86
|
+
className: "openapi-markdown__details",
|
|
87
|
+
style: { marginBottom: "1rem" },
|
|
88
|
+
"data-collapsed": false,
|
|
89
|
+
open: true,
|
|
90
|
+
summary: summaryElement,
|
|
91
|
+
},
|
|
92
|
+
react_1.default.createElement(
|
|
93
|
+
"ul",
|
|
94
|
+
null,
|
|
95
|
+
params.map((param, index) =>
|
|
96
|
+
react_1.default.createElement(ParamsItem_1.default, {
|
|
97
|
+
key: index,
|
|
98
|
+
className: "paramsItem",
|
|
99
|
+
param: {
|
|
100
|
+
...param,
|
|
101
|
+
enumDescriptions: Object.entries(
|
|
102
|
+
param?.schema?.["x-enumDescriptions"] ??
|
|
103
|
+
param?.schema?.items?.["x-enumDescriptions"] ??
|
|
104
|
+
{}
|
|
105
|
+
),
|
|
106
|
+
},
|
|
107
|
+
})
|
|
108
|
+
)
|
|
109
|
+
)
|
|
110
|
+
);
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
};
|
|
114
|
+
const ParamsDetails = (props) => {
|
|
115
|
+
return react_1.default.createElement(
|
|
116
|
+
BrowserOnly_1.default,
|
|
117
|
+
{
|
|
118
|
+
fallback: react_1.default.createElement(SkeletonLoader_1.default, {
|
|
119
|
+
size: "sm",
|
|
120
|
+
}),
|
|
121
|
+
},
|
|
122
|
+
() => {
|
|
123
|
+
const LazyComponent = react_1.default.lazy(() =>
|
|
124
|
+
Promise.resolve({ default: ParamsDetailsComponent })
|
|
125
|
+
);
|
|
126
|
+
return react_1.default.createElement(
|
|
127
|
+
react_1.Suspense,
|
|
128
|
+
{ fallback: null },
|
|
129
|
+
react_1.default.createElement(LazyComponent, { ...props })
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
exports.default = ParamsDetails;
|
|
@@ -94,7 +94,7 @@ function ParamsItem({ param, ...rest }) {
|
|
|
94
94
|
);
|
|
95
95
|
const renderDescription = (0, utils_1.guard)(description, (description) =>
|
|
96
96
|
react_1.default.createElement(
|
|
97
|
-
|
|
97
|
+
react_1.default.Fragment,
|
|
98
98
|
null,
|
|
99
99
|
react_1.default.createElement(react_markdown_1.default, {
|
|
100
100
|
children: (0, createDescription_1.createDescription)(description),
|
|
@@ -124,11 +124,15 @@ function ParamsItem({ param, ...rest }) {
|
|
|
124
124
|
const renderEnumDescriptions = (0, utils_1.guard)(
|
|
125
125
|
getEnumDescriptionMarkdown(enumDescriptions),
|
|
126
126
|
(value) => {
|
|
127
|
-
return react_1.default.createElement(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
return react_1.default.createElement(
|
|
128
|
+
"div",
|
|
129
|
+
{ style: { marginTop: ".5rem" } },
|
|
130
|
+
react_1.default.createElement(react_markdown_1.default, {
|
|
131
|
+
rehypePlugins: [rehype_raw_1.default],
|
|
132
|
+
remarkPlugins: [remark_gfm_1.default],
|
|
133
|
+
children: value,
|
|
134
|
+
})
|
|
135
|
+
);
|
|
132
136
|
}
|
|
133
137
|
);
|
|
134
138
|
function renderDefaultValue() {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { MediaTypeObject } from "docusaurus-plugin-openapi-docs/lib/openapi/types";
|
|
3
|
+
interface Props {
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
title: string;
|
|
6
|
+
body: {
|
|
7
|
+
content?: {
|
|
8
|
+
[key: string]: MediaTypeObject;
|
|
9
|
+
};
|
|
10
|
+
description?: string;
|
|
11
|
+
required?: string[] | boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare const RequestSchema: React.FC<Props>;
|
|
15
|
+
export default RequestSchema;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* ============================================================================
|
|
3
|
+
* Copyright (c) Palo Alto Networks
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
* ========================================================================== */
|
|
8
|
+
var __createBinding =
|
|
9
|
+
(this && this.__createBinding) ||
|
|
10
|
+
(Object.create
|
|
11
|
+
? function (o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (
|
|
15
|
+
!desc ||
|
|
16
|
+
("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
|
|
17
|
+
) {
|
|
18
|
+
desc = {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return m[k];
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}
|
|
27
|
+
: function (o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
});
|
|
31
|
+
var __setModuleDefault =
|
|
32
|
+
(this && this.__setModuleDefault) ||
|
|
33
|
+
(Object.create
|
|
34
|
+
? function (o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}
|
|
37
|
+
: function (o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar =
|
|
41
|
+
(this && this.__importStar) ||
|
|
42
|
+
function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null)
|
|
46
|
+
for (var k in mod)
|
|
47
|
+
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
48
|
+
__createBinding(result, mod, k);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
var __importDefault =
|
|
53
|
+
(this && this.__importDefault) ||
|
|
54
|
+
function (mod) {
|
|
55
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
56
|
+
};
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
const react_1 = __importStar(require("react"));
|
|
59
|
+
const BrowserOnly_1 = __importDefault(require("@docusaurus/BrowserOnly"));
|
|
60
|
+
const Details_1 = __importDefault(require("@theme/Details"));
|
|
61
|
+
const MimeTabs_1 = __importDefault(require("@theme/MimeTabs")); // Assume these components exist
|
|
62
|
+
const Schema_1 = __importDefault(require("@theme/Schema"));
|
|
63
|
+
const SkeletonLoader_1 = __importDefault(require("@theme/SkeletonLoader"));
|
|
64
|
+
const TabItem_1 = __importDefault(require("@theme/TabItem"));
|
|
65
|
+
const createDescription_1 = require("docusaurus-plugin-openapi-docs/lib/markdown/createDescription");
|
|
66
|
+
const RequestSchemaComponent = ({ title, body, style }) => {
|
|
67
|
+
if (
|
|
68
|
+
body === undefined ||
|
|
69
|
+
body.content === undefined ||
|
|
70
|
+
Object.keys(body).length === 0 ||
|
|
71
|
+
Object.keys(body.content).length === 0
|
|
72
|
+
) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const mimeTypes = Object.keys(body.content);
|
|
76
|
+
if (mimeTypes.length > 1) {
|
|
77
|
+
return react_1.default.createElement(
|
|
78
|
+
MimeTabs_1.default,
|
|
79
|
+
{ className: "openapi-tabs__mime", schemaType: "request" },
|
|
80
|
+
mimeTypes.map((mimeType) => {
|
|
81
|
+
const firstBody = body.content[mimeType].schema;
|
|
82
|
+
if (
|
|
83
|
+
firstBody === undefined ||
|
|
84
|
+
(firstBody.properties &&
|
|
85
|
+
Object.keys(firstBody.properties).length === 0)
|
|
86
|
+
) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return (
|
|
90
|
+
// @ts-ignore
|
|
91
|
+
react_1.default.createElement(
|
|
92
|
+
TabItem_1.default,
|
|
93
|
+
{ key: mimeType, label: mimeType, value: mimeType },
|
|
94
|
+
react_1.default.createElement(
|
|
95
|
+
Details_1.default,
|
|
96
|
+
{
|
|
97
|
+
className: "openapi-markdown__details mime",
|
|
98
|
+
"data-collapsed": false,
|
|
99
|
+
open: true,
|
|
100
|
+
style: style,
|
|
101
|
+
summary: react_1.default.createElement(
|
|
102
|
+
react_1.default.Fragment,
|
|
103
|
+
null,
|
|
104
|
+
react_1.default.createElement(
|
|
105
|
+
"summary",
|
|
106
|
+
null,
|
|
107
|
+
react_1.default.createElement(
|
|
108
|
+
"h3",
|
|
109
|
+
{
|
|
110
|
+
className:
|
|
111
|
+
"openapi-markdown__details-summary-header-body",
|
|
112
|
+
},
|
|
113
|
+
title,
|
|
114
|
+
body.required === true &&
|
|
115
|
+
react_1.default.createElement(
|
|
116
|
+
"span",
|
|
117
|
+
{ className: "openapi-schema__required" },
|
|
118
|
+
"required"
|
|
119
|
+
)
|
|
120
|
+
)
|
|
121
|
+
)
|
|
122
|
+
),
|
|
123
|
+
},
|
|
124
|
+
react_1.default.createElement(
|
|
125
|
+
"div",
|
|
126
|
+
{ style: { textAlign: "left", marginLeft: "1rem" } },
|
|
127
|
+
body.description &&
|
|
128
|
+
react_1.default.createElement(
|
|
129
|
+
"div",
|
|
130
|
+
{ style: { marginTop: "1rem", marginBottom: "1rem" } },
|
|
131
|
+
(0, createDescription_1.createDescription)(body.description)
|
|
132
|
+
)
|
|
133
|
+
),
|
|
134
|
+
react_1.default.createElement(
|
|
135
|
+
"ul",
|
|
136
|
+
{ style: { marginLeft: "1rem" } },
|
|
137
|
+
react_1.default.createElement(Schema_1.default, {
|
|
138
|
+
schema: firstBody,
|
|
139
|
+
schemaType: "request",
|
|
140
|
+
})
|
|
141
|
+
)
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
);
|
|
145
|
+
})
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
const randomFirstKey = mimeTypes[0];
|
|
149
|
+
const firstBody =
|
|
150
|
+
body.content[randomFirstKey].schema ?? body.content[randomFirstKey];
|
|
151
|
+
if (firstBody === undefined) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return react_1.default.createElement(
|
|
155
|
+
MimeTabs_1.default,
|
|
156
|
+
{ className: "openapi-tabs__mime", schemaType: "request" },
|
|
157
|
+
react_1.default.createElement(
|
|
158
|
+
TabItem_1.default,
|
|
159
|
+
{ label: randomFirstKey, value: `${randomFirstKey}-schema` },
|
|
160
|
+
react_1.default.createElement(
|
|
161
|
+
Details_1.default,
|
|
162
|
+
{
|
|
163
|
+
className: "openapi-markdown__details mime",
|
|
164
|
+
"data-collapsed": false,
|
|
165
|
+
open: true,
|
|
166
|
+
style: style,
|
|
167
|
+
summary: react_1.default.createElement(
|
|
168
|
+
react_1.default.Fragment,
|
|
169
|
+
null,
|
|
170
|
+
react_1.default.createElement(
|
|
171
|
+
"summary",
|
|
172
|
+
null,
|
|
173
|
+
react_1.default.createElement(
|
|
174
|
+
"h3",
|
|
175
|
+
{ className: "openapi-markdown__details-summary-header-body" },
|
|
176
|
+
title,
|
|
177
|
+
firstBody.type === "array" &&
|
|
178
|
+
react_1.default.createElement(
|
|
179
|
+
"span",
|
|
180
|
+
{ style: { opacity: "0.6" } },
|
|
181
|
+
" array"
|
|
182
|
+
),
|
|
183
|
+
body.required &&
|
|
184
|
+
react_1.default.createElement(
|
|
185
|
+
"strong",
|
|
186
|
+
{ className: "openapi-schema__required" },
|
|
187
|
+
"required"
|
|
188
|
+
)
|
|
189
|
+
)
|
|
190
|
+
)
|
|
191
|
+
),
|
|
192
|
+
},
|
|
193
|
+
react_1.default.createElement(
|
|
194
|
+
"div",
|
|
195
|
+
{ style: { textAlign: "left", marginLeft: "1rem" } },
|
|
196
|
+
body.description &&
|
|
197
|
+
react_1.default.createElement(
|
|
198
|
+
"div",
|
|
199
|
+
{ style: { marginTop: "1rem", marginBottom: "1rem" } },
|
|
200
|
+
(0, createDescription_1.createDescription)(body.description)
|
|
201
|
+
)
|
|
202
|
+
),
|
|
203
|
+
react_1.default.createElement(
|
|
204
|
+
"ul",
|
|
205
|
+
{ style: { marginLeft: "1rem" } },
|
|
206
|
+
react_1.default.createElement(Schema_1.default, {
|
|
207
|
+
schema: firstBody,
|
|
208
|
+
schemaType: "request",
|
|
209
|
+
})
|
|
210
|
+
)
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
);
|
|
214
|
+
};
|
|
215
|
+
const RequestSchema = (props) => {
|
|
216
|
+
return react_1.default.createElement(
|
|
217
|
+
BrowserOnly_1.default,
|
|
218
|
+
{
|
|
219
|
+
fallback: react_1.default.createElement(SkeletonLoader_1.default, {
|
|
220
|
+
size: "sm",
|
|
221
|
+
}),
|
|
222
|
+
},
|
|
223
|
+
() => {
|
|
224
|
+
const LazyComponent = react_1.default.lazy(() =>
|
|
225
|
+
Promise.resolve({ default: RequestSchemaComponent })
|
|
226
|
+
);
|
|
227
|
+
return react_1.default.createElement(
|
|
228
|
+
react_1.Suspense,
|
|
229
|
+
{ fallback: null },
|
|
230
|
+
react_1.default.createElement(LazyComponent, { ...props })
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
};
|
|
235
|
+
exports.default = RequestSchema;
|