docusaurus-plugin-openapi-docs 1.5.1 → 1.5.2

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.
@@ -0,0 +1,2 @@
1
+ export declare function createOpeningArrayBracket(): string;
2
+ export declare function createClosingArrayBracket(): string;
@@ -0,0 +1,37 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createClosingArrayBracket = exports.createOpeningArrayBracket = void 0;
10
+ const utils_1 = require("./utils");
11
+ function createOpeningArrayBracket() {
12
+ return (0, utils_1.create)("li", {
13
+ children: (0, utils_1.create)("div", {
14
+ style: {
15
+ fontSize: "var(--ifm-code-font-size)",
16
+ opacity: "0.6",
17
+ marginLeft: "-.5rem",
18
+ paddingBottom: ".5rem",
19
+ },
20
+ children: ["Array ["],
21
+ }),
22
+ });
23
+ }
24
+ exports.createOpeningArrayBracket = createOpeningArrayBracket;
25
+ function createClosingArrayBracket() {
26
+ return (0, utils_1.create)("li", {
27
+ children: (0, utils_1.create)("div", {
28
+ style: {
29
+ fontSize: "var(--ifm-code-font-size)",
30
+ opacity: "0.6",
31
+ marginLeft: "-.5rem",
32
+ },
33
+ children: ["]"],
34
+ }),
35
+ });
36
+ }
37
+ exports.createClosingArrayBracket = createClosingArrayBracket;
@@ -7,6 +7,7 @@
7
7
  * ========================================================================== */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.createRequestSchema = exports.mergeAllOf = void 0;
10
+ const createArrayBracket_1 = require("./createArrayBracket");
10
11
  const createDescription_1 = require("./createDescription");
11
12
  const createDetails_1 = require("./createDetails");
12
13
  const createDetailsSummary_1 = require("./createDetailsSummary");
@@ -46,46 +47,55 @@ exports.mergeAllOf = mergeAllOf;
46
47
  */
47
48
  function createAnyOneOf(schema) {
48
49
  const type = schema.oneOf ? "oneOf" : "anyOf";
49
- return (0, utils_1.create)("div", {
50
+ return (0, utils_1.create)("li", {
50
51
  children: [
51
- (0, utils_1.create)("div", {
52
- children: [
53
- (0, utils_1.create)("span", {
54
- className: "badge badge--info",
55
- children: type,
56
- }),
57
- (0, utils_1.create)("SchemaTabs", {
58
- children: schema[type].map((anyOneSchema, index) => {
59
- const label = anyOneSchema.title
60
- ? anyOneSchema.title
61
- : `MOD${index + 1}`;
62
- const anyOneChildren = [];
63
- if (anyOneSchema.properties !== undefined) {
64
- anyOneChildren.push(createProperties(anyOneSchema));
65
- }
66
- if (anyOneSchema.allOf !== undefined) {
67
- anyOneChildren.push(createNodes(anyOneSchema));
68
- }
69
- if (anyOneSchema.items !== undefined) {
70
- anyOneChildren.push(createItems(anyOneSchema));
71
- }
72
- if (anyOneSchema.type === "string" ||
73
- anyOneSchema.type === "number" ||
74
- anyOneSchema.type === "integer" ||
75
- anyOneSchema.type === "boolean") {
76
- anyOneChildren.push(createNodes(anyOneSchema));
77
- }
78
- if (anyOneChildren.length) {
79
- return (0, utils_1.create)("TabItem", {
80
- label: label,
81
- value: `${index}-item-properties`,
82
- children: anyOneChildren,
83
- });
84
- }
85
- return undefined;
86
- }),
87
- }),
88
- ],
52
+ (0, utils_1.create)("span", {
53
+ className: "badge badge--info",
54
+ children: type,
55
+ }),
56
+ (0, utils_1.create)("SchemaTabs", {
57
+ children: schema[type].map((anyOneSchema, index) => {
58
+ const label = anyOneSchema.title
59
+ ? anyOneSchema.title
60
+ : `MOD${index + 1}`;
61
+ const anyOneChildren = [];
62
+ if (anyOneSchema.properties !== undefined) {
63
+ anyOneChildren.push(createProperties(anyOneSchema));
64
+ }
65
+ if (anyOneSchema.allOf !== undefined) {
66
+ anyOneChildren.push(createNodes(anyOneSchema));
67
+ }
68
+ if (anyOneSchema.items !== undefined) {
69
+ anyOneChildren.push(createItems(anyOneSchema));
70
+ }
71
+ if (anyOneSchema.type === "string" ||
72
+ anyOneSchema.type === "number" ||
73
+ anyOneSchema.type === "integer" ||
74
+ anyOneSchema.type === "boolean") {
75
+ anyOneChildren.push(createNodes(anyOneSchema));
76
+ }
77
+ if (anyOneChildren.length) {
78
+ if (schema.type === "array") {
79
+ return (0, utils_1.create)("TabItem", {
80
+ label: label,
81
+ value: `${index}-item-properties`,
82
+ children: [
83
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
84
+ anyOneChildren,
85
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
86
+ ]
87
+ .filter(Boolean)
88
+ .flat(),
89
+ });
90
+ }
91
+ return (0, utils_1.create)("TabItem", {
92
+ label: label,
93
+ value: `${index}-item-properties`,
94
+ children: anyOneChildren.filter(Boolean).flat(),
95
+ });
96
+ }
97
+ return undefined;
98
+ }),
89
99
  }),
90
100
  ],
91
101
  });
@@ -188,15 +198,27 @@ function createAdditionalProperties(schema) {
188
198
  }
189
199
  // TODO: figure out how to handle array of objects
190
200
  function createItems(schema) {
191
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
201
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
192
202
  if (((_a = schema.items) === null || _a === void 0 ? void 0 : _a.properties) !== undefined) {
193
- return createProperties(schema.items);
203
+ return [
204
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
205
+ createProperties(schema.items),
206
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
207
+ ].flat();
194
208
  }
195
209
  if (((_b = schema.items) === null || _b === void 0 ? void 0 : _b.additionalProperties) !== undefined) {
196
- return createAdditionalProperties(schema.items);
210
+ return [
211
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
212
+ createAdditionalProperties(schema.items),
213
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
214
+ ].flat();
197
215
  }
198
216
  if (((_c = schema.items) === null || _c === void 0 ? void 0 : _c.oneOf) !== undefined || ((_d = schema.items) === null || _d === void 0 ? void 0 : _d.anyOf) !== undefined) {
199
- return createAnyOneOf(schema.items);
217
+ return [
218
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
219
+ createAnyOneOf(schema.items),
220
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
221
+ ].flat();
200
222
  }
201
223
  if (((_e = schema.items) === null || _e === void 0 ? void 0 : _e.allOf) !== undefined) {
202
224
  // TODO: figure out if and how we should pass merged required array
@@ -205,41 +227,54 @@ function createItems(schema) {
205
227
  if ((mergedSchemas.oneOf !== undefined ||
206
228
  mergedSchemas.anyOf !== undefined) &&
207
229
  mergedSchemas.properties) {
208
- return (0, utils_1.create)("div", {
209
- children: [
210
- createAnyOneOf(mergedSchemas),
211
- createProperties(mergedSchemas),
212
- ],
213
- });
230
+ return [
231
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
232
+ createAnyOneOf(mergedSchemas),
233
+ createProperties(mergedSchemas),
234
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
235
+ ].flat();
214
236
  }
215
237
  // Handles only anyOf/oneOf
216
238
  if (mergedSchemas.oneOf !== undefined ||
217
239
  mergedSchemas.anyOf !== undefined) {
218
- return (0, utils_1.create)("div", {
219
- children: [createAnyOneOf(mergedSchemas)],
220
- });
240
+ return [
241
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
242
+ createAnyOneOf(mergedSchemas),
243
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
244
+ ].flat();
221
245
  }
222
246
  // Handles properties
223
247
  if (mergedSchemas.properties !== undefined) {
224
- return (0, utils_1.create)("div", {
225
- children: [createProperties(mergedSchemas)],
226
- });
248
+ return [
249
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
250
+ createProperties(mergedSchemas),
251
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
252
+ ].flat();
227
253
  }
228
254
  }
229
255
  if (((_g = schema.items) === null || _g === void 0 ? void 0 : _g.type) === "string" ||
230
256
  ((_h = schema.items) === null || _h === void 0 ? void 0 : _h.type) === "number" ||
231
257
  ((_j = schema.items) === null || _j === void 0 ? void 0 : _j.type) === "integer" ||
232
- ((_k = schema.items) === null || _k === void 0 ? void 0 : _k.type) === "boolean") {
233
- return createNodes(schema.items);
258
+ ((_k = schema.items) === null || _k === void 0 ? void 0 : _k.type) === "boolean" ||
259
+ ((_l = schema.items) === null || _l === void 0 ? void 0 : _l.type) === "object") {
260
+ return [
261
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
262
+ createNodes(schema.items),
263
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
264
+ ].flat();
234
265
  }
235
266
  // TODO: clean this up or eliminate it?
236
- return Object.entries(schema.items).map(([key, val]) => createEdges({
237
- name: key,
238
- schema: val,
239
- required: Array.isArray(schema.required)
240
- ? schema.required.includes(key)
241
- : false,
242
- }));
267
+ return [
268
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
269
+ Object.entries(schema.items).map(([key, val]) => createEdges({
270
+ name: key,
271
+ schema: val,
272
+ required: Array.isArray(schema.required)
273
+ ? schema.required.includes(key)
274
+ : false,
275
+ })),
276
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
277
+ ].flat();
243
278
  }
244
279
  /**
245
280
  * For handling discriminators that do not map to a same-level property
@@ -352,6 +387,15 @@ function createDetailsNode(name, schemaName, schema, required) {
352
387
  style: { opacity: "0.6" },
353
388
  children: ` ${schemaName}`,
354
389
  }),
390
+ (0, utils_1.guard)(schema.nullable && schema.nullable === true, () => [
391
+ (0, utils_1.create)("strong", {
392
+ style: {
393
+ fontSize: "var(--ifm-code-font-size)",
394
+ color: "var(--openapi-nullable)",
395
+ },
396
+ children: " nullable",
397
+ }),
398
+ ]),
355
399
  (0, utils_1.guard)(Array.isArray(required)
356
400
  ? required.includes(name)
357
401
  : required === true, () => [
@@ -480,11 +524,9 @@ function createEdges({ name, schema, required, discriminator, }) {
480
524
  collapsible: false,
481
525
  name,
482
526
  required: Array.isArray(required) ? required.includes(name) : required,
483
- deprecated: mergedSchemas.deprecated,
484
- schemaDescription: mergedSchemas.description,
485
527
  schemaName: schemaName,
486
528
  qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
487
- defaultValue: mergedSchemas.default,
529
+ schema: mergedSchemas,
488
530
  });
489
531
  }
490
532
  if (schema.properties !== undefined) {
@@ -508,39 +550,41 @@ function createEdges({ name, schema, required, discriminator, }) {
508
550
  collapsible: false,
509
551
  name,
510
552
  required: Array.isArray(required) ? required.includes(name) : required,
511
- deprecated: schema.deprecated,
512
- schemaDescription: schema.description,
513
553
  schemaName: schemaName,
514
554
  qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
515
- defaultValue: schema.default,
555
+ schema: schema,
516
556
  });
517
557
  }
518
558
  /**
519
559
  * Creates a hierarchical level of a schema tree. Nodes produce edges that can branch into sub-nodes with edges, recursively.
520
560
  */
521
561
  function createNodes(schema) {
562
+ const nodes = [];
522
563
  // if (schema.discriminator !== undefined) {
523
564
  // return createDiscriminator(schema);
524
565
  // }
525
566
  if (schema.oneOf !== undefined || schema.anyOf !== undefined) {
526
- return createAnyOneOf(schema);
567
+ nodes.push(createAnyOneOf(schema));
527
568
  }
528
569
  if (schema.allOf !== undefined) {
529
570
  const { mergedSchemas } = mergeAllOf(schema.allOf);
530
571
  // allOf seems to always result in properties
531
572
  if (mergedSchemas.properties !== undefined) {
532
- return createProperties(mergedSchemas);
573
+ nodes.push(createProperties(mergedSchemas));
533
574
  }
534
575
  }
535
576
  if (schema.properties !== undefined) {
536
- return createProperties(schema);
577
+ nodes.push(createProperties(schema));
537
578
  }
538
579
  if (schema.additionalProperties !== undefined) {
539
- return createAdditionalProperties(schema);
580
+ nodes.push(createAdditionalProperties(schema));
540
581
  }
541
582
  // TODO: figure out how to handle array of objects
542
583
  if (schema.items !== undefined) {
543
- return createItems(schema);
584
+ nodes.push(createItems(schema));
585
+ }
586
+ if (nodes.length && nodes.length > 0) {
587
+ return nodes.filter(Boolean).flat();
544
588
  }
545
589
  // primitive
546
590
  if (schema.type !== undefined) {
@@ -603,10 +647,6 @@ function createRequestSchema({ title, body, ...rest }) {
603
647
  style: { textAlign: "left" },
604
648
  children: [
605
649
  (0, utils_1.create)("strong", { children: `${title}` }),
606
- (0, utils_1.guard)(firstBody.type === "array", (format) => (0, utils_1.create)("span", {
607
- style: { opacity: "0.6" },
608
- children: ` array`,
609
- })),
610
650
  (0, utils_1.guard)(body.required && body.required === true, () => [
611
651
  (0, utils_1.create)("strong", {
612
652
  style: {
@@ -7,6 +7,7 @@
7
7
  * ========================================================================== */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.createResponseSchema = exports.mergeAllOf = void 0;
10
+ const createArrayBracket_1 = require("./createArrayBracket");
10
11
  const createDescription_1 = require("./createDescription");
11
12
  const createDetails_1 = require("./createDetails");
12
13
  const createDetailsSummary_1 = require("./createDetailsSummary");
@@ -47,46 +48,55 @@ exports.mergeAllOf = mergeAllOf;
47
48
  */
48
49
  function createAnyOneOf(schema) {
49
50
  const type = schema.oneOf ? "oneOf" : "anyOf";
50
- return (0, utils_1.create)("div", {
51
+ return (0, utils_1.create)("li", {
51
52
  children: [
52
- (0, utils_1.create)("div", {
53
- children: [
54
- (0, utils_1.create)("span", {
55
- className: "badge badge--info",
56
- children: type,
57
- }),
58
- (0, utils_1.create)("SchemaTabs", {
59
- children: schema[type].map((anyOneSchema, index) => {
60
- const label = anyOneSchema.title
61
- ? anyOneSchema.title
62
- : `MOD${index + 1}`;
63
- const anyOneChildren = [];
64
- if (anyOneSchema.properties !== undefined) {
65
- anyOneChildren.push(createProperties(anyOneSchema));
66
- }
67
- if (anyOneSchema.allOf !== undefined) {
68
- anyOneChildren.push(createNodes(anyOneSchema));
69
- }
70
- if (anyOneSchema.items !== undefined) {
71
- anyOneChildren.push(createItems(anyOneSchema));
72
- }
73
- if (anyOneSchema.type === "string" ||
74
- anyOneSchema.type === "number" ||
75
- anyOneSchema.type === "integer" ||
76
- anyOneSchema.type === "boolean") {
77
- anyOneChildren.push(createNodes(anyOneSchema));
78
- }
79
- if (anyOneChildren.length) {
80
- return (0, utils_1.create)("TabItem", {
81
- label: label,
82
- value: `${index}-item-properties`,
83
- children: anyOneChildren,
84
- });
85
- }
86
- return undefined;
87
- }),
88
- }),
89
- ],
53
+ (0, utils_1.create)("span", {
54
+ className: "badge badge--info",
55
+ children: type,
56
+ }),
57
+ (0, utils_1.create)("SchemaTabs", {
58
+ children: schema[type].map((anyOneSchema, index) => {
59
+ const label = anyOneSchema.title
60
+ ? anyOneSchema.title
61
+ : `MOD${index + 1}`;
62
+ const anyOneChildren = [];
63
+ if (anyOneSchema.properties !== undefined) {
64
+ anyOneChildren.push(createProperties(anyOneSchema));
65
+ }
66
+ if (anyOneSchema.allOf !== undefined) {
67
+ anyOneChildren.push(createNodes(anyOneSchema));
68
+ }
69
+ if (anyOneSchema.items !== undefined) {
70
+ anyOneChildren.push(createItems(anyOneSchema));
71
+ }
72
+ if (anyOneSchema.type === "string" ||
73
+ anyOneSchema.type === "number" ||
74
+ anyOneSchema.type === "integer" ||
75
+ anyOneSchema.type === "boolean") {
76
+ anyOneChildren.push(createNodes(anyOneSchema));
77
+ }
78
+ if (anyOneChildren.length) {
79
+ if (schema.type === "array") {
80
+ return (0, utils_1.create)("TabItem", {
81
+ label: label,
82
+ value: `${index}-item-properties`,
83
+ children: [
84
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
85
+ anyOneChildren,
86
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
87
+ ]
88
+ .filter(Boolean)
89
+ .flat(),
90
+ });
91
+ }
92
+ return (0, utils_1.create)("TabItem", {
93
+ label: label,
94
+ value: `${index}-item-properties`,
95
+ children: anyOneChildren,
96
+ });
97
+ }
98
+ return undefined;
99
+ }),
90
100
  }),
91
101
  ],
92
102
  });
@@ -189,15 +199,27 @@ function createAdditionalProperties(schema) {
189
199
  }
190
200
  // TODO: figure out how to handle array of objects
191
201
  function createItems(schema) {
192
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
202
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
193
203
  if (((_a = schema.items) === null || _a === void 0 ? void 0 : _a.properties) !== undefined) {
194
- return createProperties(schema.items);
204
+ return [
205
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
206
+ createProperties(schema.items),
207
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
208
+ ].flat();
195
209
  }
196
210
  if (((_b = schema.items) === null || _b === void 0 ? void 0 : _b.additionalProperties) !== undefined) {
197
- return createAdditionalProperties(schema.items);
211
+ return [
212
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
213
+ createAdditionalProperties(schema.items),
214
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
215
+ ].flat();
198
216
  }
199
217
  if (((_c = schema.items) === null || _c === void 0 ? void 0 : _c.oneOf) !== undefined || ((_d = schema.items) === null || _d === void 0 ? void 0 : _d.anyOf) !== undefined) {
200
- return createAnyOneOf(schema.items);
218
+ return [
219
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
220
+ createAnyOneOf(schema.items),
221
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
222
+ ].flat();
201
223
  }
202
224
  if (((_e = schema.items) === null || _e === void 0 ? void 0 : _e.allOf) !== undefined) {
203
225
  // TODO: figure out if and how we should pass merged required array
@@ -206,41 +228,54 @@ function createItems(schema) {
206
228
  if ((mergedSchemas.oneOf !== undefined ||
207
229
  mergedSchemas.anyOf !== undefined) &&
208
230
  mergedSchemas.properties) {
209
- return (0, utils_1.create)("div", {
210
- children: [
211
- createAnyOneOf(mergedSchemas),
212
- createProperties(mergedSchemas),
213
- ],
214
- });
231
+ return [
232
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
233
+ createAnyOneOf(mergedSchemas),
234
+ createProperties(mergedSchemas),
235
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
236
+ ].flat();
215
237
  }
216
238
  // Handles only anyOf/oneOf
217
239
  if (mergedSchemas.oneOf !== undefined ||
218
240
  mergedSchemas.anyOf !== undefined) {
219
- return (0, utils_1.create)("div", {
220
- children: [createAnyOneOf(mergedSchemas)],
221
- });
241
+ return [
242
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
243
+ createAnyOneOf(mergedSchemas),
244
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
245
+ ].flat();
222
246
  }
223
247
  // Handles properties
224
248
  if (mergedSchemas.properties !== undefined) {
225
- return (0, utils_1.create)("div", {
226
- children: [createProperties(mergedSchemas)],
227
- });
249
+ return [
250
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
251
+ createProperties(mergedSchemas),
252
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
253
+ ].flat();
228
254
  }
229
255
  }
230
256
  if (((_g = schema.items) === null || _g === void 0 ? void 0 : _g.type) === "string" ||
231
257
  ((_h = schema.items) === null || _h === void 0 ? void 0 : _h.type) === "number" ||
232
258
  ((_j = schema.items) === null || _j === void 0 ? void 0 : _j.type) === "integer" ||
233
- ((_k = schema.items) === null || _k === void 0 ? void 0 : _k.type) === "boolean") {
234
- return createNodes(schema.items);
259
+ ((_k = schema.items) === null || _k === void 0 ? void 0 : _k.type) === "boolean" ||
260
+ ((_l = schema.items) === null || _l === void 0 ? void 0 : _l.type) === "object") {
261
+ return [
262
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
263
+ createNodes(schema.items),
264
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
265
+ ].flat();
235
266
  }
236
267
  // TODO: clean this up or eliminate it?
237
- return Object.entries(schema.items).map(([key, val]) => createEdges({
238
- name: key,
239
- schema: val,
240
- required: Array.isArray(schema.required)
241
- ? schema.required.includes(key)
242
- : false,
243
- }));
268
+ return [
269
+ (0, createArrayBracket_1.createOpeningArrayBracket)(),
270
+ Object.entries(schema.items).map(([key, val]) => createEdges({
271
+ name: key,
272
+ schema: val,
273
+ required: Array.isArray(schema.required)
274
+ ? schema.required.includes(key)
275
+ : false,
276
+ })),
277
+ (0, createArrayBracket_1.createClosingArrayBracket)(),
278
+ ].flat();
244
279
  }
245
280
  /**
246
281
  * For handling discriminators that do not map to a same-level property
@@ -353,6 +388,15 @@ function createDetailsNode(name, schemaName, schema, required) {
353
388
  style: { opacity: "0.6" },
354
389
  children: ` ${schemaName}`,
355
390
  }),
391
+ (0, utils_1.guard)(schema.nullable && schema.nullable === true, () => [
392
+ (0, utils_1.create)("strong", {
393
+ style: {
394
+ fontSize: "var(--ifm-code-font-size)",
395
+ color: "var(--openapi-nullable)",
396
+ },
397
+ children: " nullable",
398
+ }),
399
+ ]),
356
400
  (0, utils_1.guard)(schema.required && schema.required === true, () => [
357
401
  (0, utils_1.create)("strong", {
358
402
  style: {
@@ -479,11 +523,9 @@ function createEdges({ name, schema, required, discriminator, }) {
479
523
  collapsible: false,
480
524
  name,
481
525
  required: false,
482
- deprecated: mergedSchemas.deprecated,
483
- schemaDescription: mergedSchemas.description,
484
526
  schemaName: schemaName,
485
527
  qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
486
- defaultValue: mergedSchemas.default,
528
+ schema: mergedSchemas,
487
529
  });
488
530
  }
489
531
  if (schema.properties !== undefined) {
@@ -507,40 +549,43 @@ function createEdges({ name, schema, required, discriminator, }) {
507
549
  collapsible: false,
508
550
  name,
509
551
  required: false,
510
- deprecated: schema.deprecated,
511
- schemaDescription: schema.description,
512
552
  schemaName: schemaName,
513
553
  qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
514
- defaultValue: schema.default,
554
+ schema: schema,
515
555
  });
516
556
  }
517
557
  /**
518
558
  * Creates a hierarchical level of a schema tree. Nodes produce edges that can branch into sub-nodes with edges, recursively.
519
559
  */
520
560
  function createNodes(schema) {
561
+ const nodes = [];
521
562
  // if (schema.discriminator !== undefined) {
522
563
  // return createDiscriminator(schema);
523
564
  // }
524
565
  if (schema.oneOf !== undefined || schema.anyOf !== undefined) {
525
- return createAnyOneOf(schema);
566
+ nodes.push(createAnyOneOf(schema));
526
567
  }
527
568
  if (schema.allOf !== undefined) {
528
569
  const { mergedSchemas } = mergeAllOf(schema.allOf);
529
- // allOf seems to always result in properties
530
570
  if (mergedSchemas.properties !== undefined) {
531
- return createProperties(mergedSchemas);
571
+ nodes.push(createProperties(mergedSchemas));
572
+ }
573
+ if (mergedSchemas.items !== undefined) {
574
+ nodes.push(createItems(mergedSchemas));
532
575
  }
533
576
  }
534
577
  if (schema.properties !== undefined) {
535
- return createProperties(schema);
578
+ nodes.push(createProperties(schema));
536
579
  }
537
- // Could be set to false to just check if evals to true
538
- if (schema.additionalProperties) {
539
- return createAdditionalProperties(schema);
580
+ if (schema.additionalProperties !== undefined) {
581
+ nodes.push(createAdditionalProperties(schema));
540
582
  }
541
583
  // TODO: figure out how to handle array of objects
542
584
  if (schema.items !== undefined) {
543
- return createItems(schema);
585
+ nodes.push(createItems(schema));
586
+ }
587
+ if (nodes.length && nodes.length > 0) {
588
+ return nodes.filter(Boolean).flat();
544
589
  }
545
590
  // primitive
546
591
  if (schema.type !== undefined) {
@@ -616,10 +661,6 @@ function createResponseSchema({ title, body, ...rest }) {
616
661
  style: { textAlign: "left" },
617
662
  children: [
618
663
  (0, utils_1.create)("strong", { children: `${title}` }),
619
- (0, utils_1.guard)(firstBody.type === "array", (format) => (0, utils_1.create)("span", {
620
- style: { opacity: "0.6" },
621
- children: ` array`,
622
- })),
623
664
  (0, utils_1.guard)(body.required && body.required === true, () => [
624
665
  (0, utils_1.create)("strong", {
625
666
  style: {