docusaurus-theme-openapi-docs 0.0.0-1155 → 0.0.0-1156

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.
@@ -121,14 +121,22 @@ function getQualifierMessage(schema) {
121
121
  let lengthQualifier = "";
122
122
  let minLength;
123
123
  let maxLength;
124
+ const charactersMessage = (0, Translate_1.translate)({
125
+ id: translationIds_1.OPENAPI_SCHEMA_ITEM.CHARACTERS,
126
+ message: "characters",
127
+ });
128
+ const nonEmptyMessage = (0, Translate_1.translate)({
129
+ id: translationIds_1.OPENAPI_SCHEMA_ITEM.NON_EMPTY,
130
+ message: "non-empty",
131
+ });
124
132
  if (schema.minLength && schema.minLength > 1) {
125
- minLength = `\`>= ${schema.minLength} characters\``;
133
+ minLength = `\`>= ${schema.minLength} ${charactersMessage}\``;
126
134
  }
127
135
  if (schema.minLength && schema.minLength === 1) {
128
- minLength = `\`non-empty\``;
136
+ minLength = `\`${nonEmptyMessage}\``;
129
137
  }
130
138
  if (schema.maxLength) {
131
- maxLength = `\`<= ${schema.maxLength} characters\``;
139
+ maxLength = `\`<= ${schema.maxLength} ${charactersMessage}\``;
132
140
  }
133
141
  if (minLength && !maxLength) {
134
142
  lengthQualifier += minLength;
@@ -178,7 +186,11 @@ function getQualifierMessage(schema) {
178
186
  qualifierGroups.push(minmaxQualifier);
179
187
  }
180
188
  if (schema.pattern) {
181
- qualifierGroups.push(`Value must match regular expression \`${schema.pattern}\``);
189
+ const expressionMessage = (0, Translate_1.translate)({
190
+ id: translationIds_1.OPENAPI_SCHEMA_ITEM.EXPRESSION,
191
+ message: "Value must match regular expression",
192
+ });
193
+ qualifierGroups.push(`${expressionMessage} \`${schema.pattern}\``);
182
194
  }
183
195
  // Check if discriminator mapping
184
196
  const discriminator = schema;
@@ -27,7 +27,6 @@ const ResponseHeaders = ({ responseHeaders }) => {
27
27
  name: name,
28
28
  collapsible: false,
29
29
  schemaName: (0, schema_1.getSchemaName)(schema),
30
- qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
31
30
  schema: schema,
32
31
  discriminator: false,
33
32
  children: null,
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { SchemaObject } from "docusaurus-plugin-openapi-docs/src/openapi/types";
2
+ import type { SchemaObject } from "../../types.d";
3
3
  interface SchemaProps {
4
4
  schema: SchemaObject;
5
5
  schemaType: "request" | "response";
@@ -84,8 +84,8 @@ const translationIds_1 = require("@theme/translationIds");
84
84
  // eslint-disable-next-line import/no-extraneous-dependencies
85
85
  const allof_merge_1 = require("allof-merge");
86
86
  const clsx_1 = __importDefault(require("clsx"));
87
- const schema_1 = require("docusaurus-plugin-openapi-docs/lib/markdown/schema");
88
87
  const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
88
+ const schema_1 = require("../../markdown/schema");
89
89
  // eslint-disable-next-line import/no-extraneous-dependencies
90
90
  // const jsonSchemaMergeAllOf = require("json-schema-merge-allof");
91
91
  const mergeAllOf = (allOf) => {
@@ -311,9 +311,6 @@ const AnyOneOf = ({ schema, schemaType, schemaPath }) => {
311
311
  collapsible: false,
312
312
  name: undefined,
313
313
  schemaName: computedSchemaName,
314
- qualifierMessage: (0, schema_1.getQualifierMessage)(
315
- anyOneSchema
316
- ),
317
314
  schema: anyOneSchema,
318
315
  discriminator: false,
319
316
  children: null,
@@ -327,9 +324,6 @@ const AnyOneOf = ({ schema, schemaType, schemaPath }) => {
327
324
  collapsible: false,
328
325
  name: undefined,
329
326
  schemaName: computedSchemaName,
330
- qualifierMessage: (0, schema_1.getQualifierMessage)(
331
- anyOneSchema
332
- ),
333
327
  schema: anyOneSchema,
334
328
  discriminator: false,
335
329
  children: null,
@@ -398,7 +392,6 @@ const Properties = ({ schema, schemaType, schemaPath }) => {
398
392
  name: "",
399
393
  required: false,
400
394
  schemaName: "object",
401
- qualifierMessage: undefined,
402
395
  schema: {},
403
396
  });
404
397
  }
@@ -594,7 +587,6 @@ const AdditionalProperties = ({ schema, schemaType }) => {
594
587
  name: "property name*",
595
588
  required: false,
596
589
  schemaName: "any",
597
- qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
598
590
  schema: schema,
599
591
  collapsible: false,
600
592
  discriminator: false,
@@ -635,7 +627,6 @@ const AdditionalProperties = ({ schema, schemaType }) => {
635
627
  name: "property name*",
636
628
  required: false,
637
629
  schemaName: schemaName,
638
- qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
639
630
  schema: additionalProperties,
640
631
  collapsible: false,
641
632
  discriminator: false,
@@ -740,7 +731,6 @@ const Items = ({ schema, schemaType, schemaPath }) => {
740
731
  collapsible: false,
741
732
  name: "", // No name for array items
742
733
  schemaName: (0, schema_1.getSchemaName)(itemsSchema),
743
- qualifierMessage: (0, schema_1.getQualifierMessage)(itemsSchema),
744
734
  schema: itemsSchema,
745
735
  discriminator: false,
746
736
  children: null,
@@ -861,7 +851,6 @@ const SchemaEdge = ({
861
851
  name: name,
862
852
  required: Array.isArray(required) ? required.includes(name) : required,
863
853
  schemaName: schema.allOf[0],
864
- qualifierMessage: undefined,
865
854
  schema: schema.allOf[0],
866
855
  discriminator: false,
867
856
  children: null,
@@ -913,7 +902,6 @@ const SchemaEdge = ({
913
902
  name: name,
914
903
  required: Array.isArray(required) ? required.includes(name) : required,
915
904
  schemaName: mergedSchemaName,
916
- qualifierMessage: (0, schema_1.getQualifierMessage)(mergedSchemas),
917
905
  schema: mergedSchemas,
918
906
  discriminator: false,
919
907
  children: null,
@@ -924,7 +912,6 @@ const SchemaEdge = ({
924
912
  name: name,
925
913
  required: Array.isArray(required) ? required.includes(name) : required,
926
914
  schemaName: schemaName,
927
- qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
928
915
  schema: schema,
929
916
  discriminator: false,
930
917
  children: null,
@@ -1092,7 +1079,6 @@ const SchemaNode = ({ schema, schemaType, schemaPath }) => {
1092
1079
  name: schema.type,
1093
1080
  required: Boolean(schema.required),
1094
1081
  schemaName: schemaName,
1095
- qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
1096
1082
  schema: schema,
1097
1083
  discriminator: false,
1098
1084
  children: null,
@@ -18,6 +18,7 @@ const Example_1 = require("@theme/Example");
18
18
  const Markdown_1 = __importDefault(require("@theme/Markdown"));
19
19
  const translationIds_1 = require("@theme/translationIds");
20
20
  const clsx_1 = __importDefault(require("clsx"));
21
+ const schema_1 = require("../../markdown/schema");
21
22
  const utils_1 = require("../../markdown/utils");
22
23
  const transformEnumDescriptions = (enumDescriptions) => {
23
24
  if (enumDescriptions) {
@@ -127,8 +128,12 @@ function SchemaItem(props) {
127
128
  react_1.default.createElement(Markdown_1.default, null, description)
128
129
  )
129
130
  );
131
+ // Generate qualifierMessage from schema if not provided
132
+ const effectiveQualifierMessage =
133
+ qualifierMessage ??
134
+ (schema ? (0, schema_1.getQualifierMessage)(schema) : undefined);
130
135
  const renderQualifierMessage = (0, utils_1.guard)(
131
- qualifierMessage,
136
+ effectiveQualifierMessage,
132
137
  (message) =>
133
138
  react_1.default.createElement(
134
139
  react_1.default.Fragment,
@@ -60,6 +60,8 @@ export declare const OPENAPI_SCHEMA: {
60
60
  NO_SCHEMA: string;
61
61
  };
62
62
  export declare const OPENAPI_SCHEMA_ITEM: {
63
+ CHARACTERS: string;
64
+ NON_EMPTY: string;
63
65
  REQUIRED: string;
64
66
  DEPRECATED: string;
65
67
  NULLABLE: string;
@@ -71,6 +73,7 @@ export declare const OPENAPI_SCHEMA_ITEM: {
71
73
  ENUM_VALUE: string;
72
74
  ENUM_DESCRIPTION: string;
73
75
  POSSIBLE_VALUES: string;
76
+ EXPRESSION: string;
74
77
  ONE_OF: string;
75
78
  ANY_OF: string;
76
79
  };
@@ -84,6 +84,8 @@ exports.OPENAPI_SCHEMA = {
84
84
  NO_SCHEMA: "theme.openapi.schema.noSchema",
85
85
  };
86
86
  exports.OPENAPI_SCHEMA_ITEM = {
87
+ CHARACTERS: "theme.openapi.schemaItem.characters",
88
+ NON_EMPTY: "theme.openapi.schemaItem.nonEmpty",
87
89
  REQUIRED: "theme.openapi.schemaItem.required",
88
90
  DEPRECATED: "theme.openapi.schemaItem.deprecated",
89
91
  NULLABLE: "theme.openapi.schemaItem.nullable",
@@ -95,6 +97,7 @@ exports.OPENAPI_SCHEMA_ITEM = {
95
97
  ENUM_VALUE: "theme.openapi.schemaItem.enumValue",
96
98
  ENUM_DESCRIPTION: "theme.openapi.schemaItem.enumDescription",
97
99
  POSSIBLE_VALUES: "theme.openapi.schemaItem.possibleValues",
100
+ EXPRESSION: "theme.openapi.schemaItem.expression",
98
101
  ONE_OF: "theme.openapi.schemaItem.oneOf",
99
102
  ANY_OF: "theme.openapi.schemaItem.anyOf",
100
103
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "docusaurus-theme-openapi-docs",
3
3
  "description": "OpenAPI theme for Docusaurus.",
4
- "version": "0.0.0-1155",
4
+ "version": "0.0.0-1156",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "openapi",
@@ -38,7 +38,7 @@
38
38
  "@types/postman-collection": "^3.5.11",
39
39
  "@types/react-modal": "^3.16.3",
40
40
  "concurrently": "^9.2.0",
41
- "docusaurus-plugin-openapi-docs": "0.0.0-1155",
41
+ "docusaurus-plugin-openapi-docs": "0.0.0-1156",
42
42
  "docusaurus-plugin-sass": "^0.2.6",
43
43
  "eslint-plugin-prettier": "^5.5.1"
44
44
  },
@@ -82,5 +82,5 @@
82
82
  "engines": {
83
83
  "node": ">=14"
84
84
  },
85
- "gitHead": "388036c8328b54f841365688b671422a418098bb"
85
+ "gitHead": "15f538e349ea6e12482cb5a53dea9c349fd9157e"
86
86
  }
@@ -140,9 +140,7 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
140
140
  if (schema.items) {
141
141
  const itemsEnum = getEnumFromSchema(schema.items as SchemaObject);
142
142
  if (itemsEnum) {
143
- qualifierGroups.push(
144
- `[${itemsEnum.map((e) => `\`${e}\``).join(", ")}]`
145
- );
143
+ qualifierGroups.push(`[${itemsEnum.map((e) => `\`${e}\``).join(", ")}]`);
146
144
  }
147
145
  }
148
146
 
@@ -150,14 +148,22 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
150
148
  let lengthQualifier = "";
151
149
  let minLength;
152
150
  let maxLength;
151
+ const charactersMessage = translate({
152
+ id: OPENAPI_SCHEMA_ITEM.CHARACTERS,
153
+ message: "characters",
154
+ });
155
+ const nonEmptyMessage = translate({
156
+ id: OPENAPI_SCHEMA_ITEM.NON_EMPTY,
157
+ message: "non-empty",
158
+ });
153
159
  if (schema.minLength && schema.minLength > 1) {
154
- minLength = `\`>= ${schema.minLength} characters\``;
160
+ minLength = `\`>= ${schema.minLength} ${charactersMessage}\``;
155
161
  }
156
162
  if (schema.minLength && schema.minLength === 1) {
157
- minLength = `\`non-empty\``;
163
+ minLength = `\`${nonEmptyMessage}\``;
158
164
  }
159
165
  if (schema.maxLength) {
160
- maxLength = `\`<= ${schema.maxLength} characters\``;
166
+ maxLength = `\`<= ${schema.maxLength} ${charactersMessage}\``;
161
167
  }
162
168
 
163
169
  if (minLength && !maxLength) {
@@ -211,9 +217,11 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
211
217
  }
212
218
 
213
219
  if (schema.pattern) {
214
- qualifierGroups.push(
215
- `Value must match regular expression \`${schema.pattern}\``
216
- );
220
+ const expressionMessage = translate({
221
+ id: OPENAPI_SCHEMA_ITEM.EXPRESSION,
222
+ message: "Value must match regular expression",
223
+ });
224
+ qualifierGroups.push(`${expressionMessage} \`${schema.pattern}\``);
217
225
  }
218
226
 
219
227
  // Check if discriminator mapping
@@ -9,7 +9,7 @@ import React from "react";
9
9
 
10
10
  import SchemaItem from "@theme/SchemaItem";
11
11
 
12
- import { getQualifierMessage, getSchemaName } from "../../markdown/schema";
12
+ import { getSchemaName } from "../../markdown/schema";
13
13
 
14
14
  interface ResponseHeadersProps {
15
15
  description?: string;
@@ -35,7 +35,6 @@ export const ResponseHeaders: React.FC<{
35
35
  name={name}
36
36
  collapsible={false}
37
37
  schemaName={getSchemaName(schema)}
38
- qualifierMessage={getQualifierMessage(schema)}
39
38
  schema={schema}
40
39
  discriminator={false}
41
40
  children={null}
@@ -21,16 +21,11 @@ import { OPENAPI_SCHEMA_ITEM } from "@theme/translationIds";
21
21
  // eslint-disable-next-line import/no-extraneous-dependencies
22
22
  import { merge } from "allof-merge";
23
23
  import clsx from "clsx";
24
- import {
25
- getQualifierMessage,
26
- getSchemaName,
27
- } from "docusaurus-plugin-openapi-docs/lib/markdown/schema";
28
- import type {
29
- SchemaObject,
30
- SchemaType,
31
- } from "docusaurus-plugin-openapi-docs/src/openapi/types";
32
24
  import isEmpty from "lodash/isEmpty";
33
25
 
26
+ import { getQualifierMessage, getSchemaName } from "../../markdown/schema";
27
+ import type { SchemaObject } from "../../types.d";
28
+
34
29
  // eslint-disable-next-line import/no-extraneous-dependencies
35
30
  // const jsonSchemaMergeAllOf = require("json-schema-merge-allof");
36
31
 
@@ -304,7 +299,6 @@ const AnyOneOf: React.FC<SchemaProps> = ({
304
299
  collapsible={false}
305
300
  name={undefined}
306
301
  schemaName={computedSchemaName}
307
- qualifierMessage={getQualifierMessage(anyOneSchema)}
308
302
  schema={anyOneSchema}
309
303
  discriminator={false}
310
304
  children={null}
@@ -321,7 +315,6 @@ const AnyOneOf: React.FC<SchemaProps> = ({
321
315
  collapsible={false}
322
316
  name={undefined}
323
317
  schemaName={computedSchemaName}
324
- qualifierMessage={getQualifierMessage(anyOneSchema)}
325
318
  schema={anyOneSchema}
326
319
  discriminator={false}
327
320
  children={null}
@@ -406,7 +399,6 @@ const Properties: React.FC<SchemaProps> = ({
406
399
  name=""
407
400
  required={false}
408
401
  schemaName="object"
409
- qualifierMessage={undefined}
410
402
  schema={{}}
411
403
  />
412
404
  );
@@ -619,7 +611,6 @@ const AdditionalProperties: React.FC<SchemaProps> = ({
619
611
  name="property name*"
620
612
  required={false}
621
613
  schemaName="any"
622
- qualifierMessage={getQualifierMessage(schema)}
623
614
  schema={schema}
624
615
  collapsible={false}
625
616
  discriminator={false}
@@ -665,7 +656,6 @@ const AdditionalProperties: React.FC<SchemaProps> = ({
665
656
  name="property name*"
666
657
  required={false}
667
658
  schemaName={schemaName}
668
- qualifierMessage={getQualifierMessage(schema)}
669
659
  schema={additionalProperties}
670
660
  collapsible={false}
671
661
  discriminator={false}
@@ -775,7 +765,6 @@ const Items: React.FC<{
775
765
  collapsible={false}
776
766
  name="" // No name for array items
777
767
  schemaName={getSchemaName(itemsSchema)}
778
- qualifierMessage={getQualifierMessage(itemsSchema)}
779
768
  schema={itemsSchema}
780
769
  discriminator={false}
781
770
  children={null}
@@ -935,7 +924,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
935
924
  Array.isArray(required) ? required.includes(name) : required
936
925
  }
937
926
  schemaName={schema.allOf[0]}
938
- qualifierMessage={undefined}
939
927
  schema={schema.allOf[0]}
940
928
  discriminator={false}
941
929
  children={null}
@@ -1007,7 +995,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
1007
995
  name={name}
1008
996
  required={Array.isArray(required) ? required.includes(name) : required}
1009
997
  schemaName={mergedSchemaName}
1010
- qualifierMessage={getQualifierMessage(mergedSchemas)}
1011
998
  schema={mergedSchemas}
1012
999
  discriminator={false}
1013
1000
  children={null}
@@ -1021,7 +1008,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
1021
1008
  name={name}
1022
1009
  required={Array.isArray(required) ? required.includes(name) : required}
1023
1010
  schemaName={schemaName}
1024
- qualifierMessage={getQualifierMessage(schema)}
1025
1011
  schema={schema}
1026
1012
  discriminator={false}
1027
1013
  children={null}
@@ -1225,7 +1211,6 @@ const SchemaNode: React.FC<SchemaProps> = ({
1225
1211
  name={schema.type}
1226
1212
  required={Boolean(schema.required)}
1227
1213
  schemaName={schemaName}
1228
- qualifierMessage={getQualifierMessage(schema)}
1229
1214
  schema={schema}
1230
1215
  discriminator={false}
1231
1216
  children={null}
@@ -1238,7 +1223,9 @@ const SchemaNode: React.FC<SchemaProps> = ({
1238
1223
 
1239
1224
  export default SchemaNode;
1240
1225
 
1241
- type PrimitiveSchemaType = Exclude<SchemaType, "object" | "array">;
1226
+ type PrimitiveSchemaType =
1227
+ | Exclude<NonNullable<SchemaObject["type"]>, "object" | "array">
1228
+ | "null";
1242
1229
 
1243
1230
  const PRIMITIVE_TYPES: Record<PrimitiveSchemaType, true> = {
1244
1231
  string: true,
@@ -13,6 +13,7 @@ import Markdown from "@theme/Markdown";
13
13
  import { OPENAPI_SCHEMA_ITEM } from "@theme/translationIds";
14
14
  import clsx from "clsx";
15
15
 
16
+ import { getQualifierMessage } from "../../markdown/schema";
16
17
  import { guard } from "../../markdown/utils";
17
18
 
18
19
  export interface Props {
@@ -130,7 +131,11 @@ export default function SchemaItem(props: Props) {
130
131
  </>
131
132
  ));
132
133
 
133
- const renderQualifierMessage = guard(qualifierMessage, (message) => (
134
+ // Generate qualifierMessage from schema if not provided
135
+ const effectiveQualifierMessage =
136
+ qualifierMessage ?? (schema ? getQualifierMessage(schema) : undefined);
137
+
138
+ const renderQualifierMessage = guard(effectiveQualifierMessage, (message) => (
134
139
  <>
135
140
  <Markdown>{message}</Markdown>
136
141
  </>
@@ -79,6 +79,8 @@ export const OPENAPI_SCHEMA = {
79
79
  };
80
80
 
81
81
  export const OPENAPI_SCHEMA_ITEM = {
82
+ CHARACTERS: "theme.openapi.schemaItem.characters",
83
+ NON_EMPTY: "theme.openapi.schemaItem.nonEmpty",
82
84
  REQUIRED: "theme.openapi.schemaItem.required",
83
85
  DEPRECATED: "theme.openapi.schemaItem.deprecated",
84
86
  NULLABLE: "theme.openapi.schemaItem.nullable",
@@ -90,6 +92,7 @@ export const OPENAPI_SCHEMA_ITEM = {
90
92
  ENUM_VALUE: "theme.openapi.schemaItem.enumValue",
91
93
  ENUM_DESCRIPTION: "theme.openapi.schemaItem.enumDescription",
92
94
  POSSIBLE_VALUES: "theme.openapi.schemaItem.possibleValues",
95
+ EXPRESSION: "theme.openapi.schemaItem.expression",
93
96
  ONE_OF: "theme.openapi.schemaItem.oneOf",
94
97
  ANY_OF: "theme.openapi.schemaItem.anyOf",
95
98
  };