@redocly/openapi-core 0.0.0-snapshot.1769415576 → 0.0.0-snapshot.1769418409

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 (59) hide show
  1. package/lib/config/config.d.ts +5 -2
  2. package/lib/config/config.d.ts.map +1 -1
  3. package/lib/config/config.js +34 -1
  4. package/lib/config/config.js.map +1 -1
  5. package/lib/config/load.d.ts +4 -2
  6. package/lib/config/load.d.ts.map +1 -1
  7. package/lib/config/load.js +41 -2
  8. package/lib/config/load.js.map +1 -1
  9. package/lib/config/types.d.ts +5 -0
  10. package/lib/config/types.d.ts.map +1 -1
  11. package/lib/index.d.ts +3 -3
  12. package/lib/index.d.ts.map +1 -1
  13. package/lib/index.js +2 -2
  14. package/lib/index.js.map +1 -1
  15. package/lib/oas-types.d.ts +0 -190
  16. package/lib/oas-types.d.ts.map +1 -1
  17. package/lib/ref-utils.d.ts +2 -0
  18. package/lib/ref-utils.d.ts.map +1 -1
  19. package/lib/ref-utils.js +16 -1
  20. package/lib/ref-utils.js.map +1 -1
  21. package/lib/types/arazzo.d.ts.map +1 -1
  22. package/lib/types/arazzo.js +44 -210
  23. package/lib/types/arazzo.js.map +1 -1
  24. package/lib/types/asyncapi2.d.ts.map +1 -1
  25. package/lib/types/asyncapi2.js +57 -385
  26. package/lib/types/asyncapi2.js.map +1 -1
  27. package/lib/types/asyncapi3.d.ts.map +1 -1
  28. package/lib/types/asyncapi3.js +47 -228
  29. package/lib/types/asyncapi3.js.map +1 -1
  30. package/lib/types/index.d.ts +2 -18
  31. package/lib/types/index.d.ts.map +1 -1
  32. package/lib/types/index.js +2 -4
  33. package/lib/types/index.js.map +1 -1
  34. package/lib/types/oas2.d.ts +0 -22
  35. package/lib/types/oas2.d.ts.map +1 -1
  36. package/lib/types/oas3.d.ts +0 -44
  37. package/lib/types/oas3.d.ts.map +1 -1
  38. package/lib/types/oas3.js +70 -345
  39. package/lib/types/oas3.js.map +1 -1
  40. package/lib/types/oas3_1.d.ts +0 -46
  41. package/lib/types/oas3_1.d.ts.map +1 -1
  42. package/lib/types/oas3_1.js +29 -38
  43. package/lib/types/oas3_1.js.map +1 -1
  44. package/lib/types/oas3_2.d.ts +0 -46
  45. package/lib/types/oas3_2.d.ts.map +1 -1
  46. package/lib/types/oas3_2.js +23 -101
  47. package/lib/types/oas3_2.js.map +1 -1
  48. package/lib/types/openrpc.d.ts +0 -32
  49. package/lib/types/openrpc.d.ts.map +1 -1
  50. package/lib/types/openrpc.js +46 -215
  51. package/lib/types/openrpc.js.map +1 -1
  52. package/lib/types/overlay.d.ts.map +1 -1
  53. package/lib/types/overlay.js +7 -34
  54. package/lib/types/overlay.js.map +1 -1
  55. package/lib/types/redocly-yaml.d.ts +1 -1
  56. package/lib/types/redocly-yaml.d.ts.map +1 -1
  57. package/lib/types/redocly-yaml.js +38 -150
  58. package/lib/types/redocly-yaml.js.map +1 -1
  59. package/package.json +1 -1
package/lib/types/oas3.js CHANGED
@@ -17,129 +17,70 @@ const Root = {
17
17
  },
18
18
  required: ['openapi', 'paths', 'info'],
19
19
  extensionsPrefix: 'x-',
20
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/openapi#openapi',
21
- description: 'REQUIRED. This string MUST be the semantic version number of the OpenAPI Specification version that the OpenAPI document uses. The openapi field SHOULD be used by tooling specifications and clients to interpret the OpenAPI document. This is not related to the API info.version string.',
22
20
  };
23
21
  const Tag = {
24
22
  properties: {
25
- name: {
26
- type: 'string',
27
- description: 'REQUIRED. The name of the tag.',
28
- },
29
- description: {
30
- type: 'string',
31
- description: 'A description for the tag.',
32
- },
23
+ name: { type: 'string' },
24
+ description: { type: 'string' },
33
25
  externalDocs: 'ExternalDocs',
34
26
  'x-traitTag': { type: 'boolean' },
35
27
  'x-displayName': { type: 'string' },
36
28
  },
37
29
  required: ['name'],
38
30
  extensionsPrefix: 'x-',
39
- description: `The Tag Object represents a tag used by the OAS. It is not mandatory to have a tag object per tag used by the OAS but each tag object can contain additional metadata.`,
40
- documentationLink: `https://spec.openapis.org/oas/v3.1.0#tag-object`,
41
31
  };
42
32
  const TagGroup = {
43
33
  properties: {
44
- name: {
45
- type: 'string',
46
- description: 'The display name for the tag, used in the navigation bar and as a section heading.',
47
- },
48
- tags: {
49
- type: 'array',
50
- description: 'List of tags to include in this group.',
51
- items: { type: 'string' },
52
- },
34
+ name: { type: 'string' },
35
+ tags: { type: 'array', items: { type: 'string' } },
53
36
  },
54
37
  extensionsPrefix: 'x-',
55
- description: 'The x-tagGroups extension is used at the top level of an OpenAPI description.',
56
- documentationLink: 'https://redocly.com/docs/realm/content/api-docs/openapi-extensions/x-tag-groups#taggroup-object',
57
38
  };
58
39
  const ExternalDocs = {
59
40
  properties: {
60
- description: {
61
- type: 'string',
62
- description: 'A description of the target documentation. Used as the link anchor text in Redocly. If not provided, the url is used as the link anchor text.',
63
- },
64
- url: {
65
- type: 'string',
66
- description: 'REQUIRED. The URL for the target documentation.',
67
- },
41
+ description: { type: 'string' },
42
+ url: { type: 'string' },
68
43
  },
69
44
  required: ['url'],
70
45
  extensionsPrefix: 'x-',
71
- description: 'Additional external documentation for this operation.',
72
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/external-docs',
73
46
  };
74
47
  const Server = {
75
48
  properties: {
76
- url: {
77
- type: 'string',
78
- description: 'REQUIRED. A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the OpenAPI document is being served. Variable substitutions are made when a variable is named in { curly braces }.',
79
- },
80
- description: {
81
- type: 'string',
82
- description: 'An optional string describing the host designated by the URL.',
83
- },
49
+ url: { type: 'string' },
50
+ description: { type: 'string' },
84
51
  variables: 'ServerVariablesMap',
85
52
  },
86
53
  required: ['url'],
87
54
  extensionsPrefix: 'x-',
88
- description: 'A server object to be used by the target operation.',
89
55
  };
90
56
  const ServerVariable = {
91
57
  properties: {
92
58
  enum: {
93
59
  type: 'array',
94
60
  items: { type: 'string' },
95
- description: 'An enumeration of string values to be used if the substitution options are from a limited set. The array MUST NOT be empty. If defined, the array MUST contain the default value.',
96
- },
97
- default: {
98
- type: 'string',
99
- description: `REQUIRED. The default value to use for substitution, which SHALL be sent if an alternate value is not supplied. Note this behavior is different than the Schema Object's treatment of default values, because in those cases parameter values are optional. If the enum is defined, the value MUST exist in the enum's values.`,
100
- },
101
- description: {
102
- type: 'string',
103
- description: 'An optional description for the server variable.',
104
61
  },
62
+ default: { type: 'string' },
63
+ description: { type: 'string' },
105
64
  },
106
65
  required: ['default'],
107
66
  extensionsPrefix: 'x-',
108
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/server-variables#server-variables',
109
- description: 'Server variables are used when you need to make a substitution into the server URL such as when the subdomain is unique per tenant.',
110
67
  };
111
68
  const SecurityRequirement = {
112
69
  properties: {},
113
70
  additionalProperties: { type: 'array', items: { type: 'string' } },
114
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/security#security-requirement-object',
115
- description: 'A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition. To make security optional, an empty security requirement ({}) can be included in the array.',
116
71
  };
117
72
  const Info = {
118
73
  properties: {
119
- title: {
120
- type: 'string',
121
- description: 'REQUIRED. The title of the API.',
122
- },
123
- version: {
124
- type: 'string',
125
- description: 'REQUIRED. The version of the OpenAPI document (which is distinct from the OpenAPI Specification version or the API implementation version).',
126
- },
127
- description: {
128
- type: 'string',
129
- description: 'RECOMMENDED. A description of the API (Markdown may be used).',
130
- },
131
- termsOfService: {
132
- type: 'string',
133
- description: 'A URL to the Terms of Service for the API.',
134
- },
74
+ title: { type: 'string' },
75
+ version: { type: 'string' },
76
+ description: { type: 'string' },
77
+ termsOfService: { type: 'string' },
135
78
  contact: 'Contact',
136
79
  license: 'License',
137
80
  'x-logo': 'Logo',
138
81
  },
139
82
  required: ['title', 'version'],
140
83
  extensionsPrefix: 'x-',
141
- description: 'REQUIRED. Provides metadata about the API. The metadata MAY be used by tooling as required.',
142
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/info#info',
143
84
  };
144
85
  const Logo = {
145
86
  properties: {
@@ -148,72 +89,38 @@ const Logo = {
148
89
  backgroundColor: { type: 'string' },
149
90
  href: { type: 'string' },
150
91
  },
151
- documentationLink: 'https://redocly.com/docs-legacy/api-reference-docs/specification-extensions/x-logo#x-logo',
152
- description: 'A commonly used specification extension containing the information about the API logo.',
153
92
  };
154
93
  const Contact = {
155
94
  properties: {
156
- name: {
157
- type: 'string',
158
- description: 'The identifying name of the contact person or organization.',
159
- },
160
- url: {
161
- type: 'string',
162
- description: 'The URL pointing to the contact information.',
163
- },
164
- email: {
165
- type: 'string',
166
- description: 'The email address of the contact person or organization.',
167
- },
95
+ name: { type: 'string' },
96
+ url: { type: 'string' },
97
+ email: { type: 'string' },
168
98
  },
169
99
  extensionsPrefix: 'x-',
170
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/contact',
171
- description: 'The contact information for the exposed API.',
172
100
  };
173
101
  const License = {
174
102
  properties: {
175
- name: {
176
- type: 'string',
177
- description: 'REQUIRED. The license name used for the API.',
178
- },
179
- url: {
180
- type: 'string',
181
- description: 'The URL pointing to the contact information.',
182
- },
103
+ name: { type: 'string' },
104
+ url: { type: 'string' },
183
105
  },
184
106
  required: ['name'],
185
107
  extensionsPrefix: 'x-',
186
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/license#license',
187
- description: 'The license information for the exposed API.',
188
108
  };
189
109
  const Paths = {
190
110
  properties: {},
191
111
  additionalProperties: (_value, key) => key.startsWith('/') ? 'PathItem' : undefined,
192
- description: 'The Paths Object is a map of a paths to the path item object. A path starts with a /.',
193
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/paths#paths-object',
194
112
  };
195
113
  const WebhooksMap = {
196
114
  properties: {},
197
115
  additionalProperties: () => 'PathItem',
198
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/webhooks#types',
199
116
  };
200
117
  const PathItem = {
201
118
  properties: {
202
- $ref: {
203
- type: 'string',
204
- description: 'Allows for a referenced definition of this path item. The referenced structure MUST be in the form of a Path Item Object. In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is undefined. See the rules for resolving Relative References.',
205
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/reference',
206
- }, // TODO: verify special $ref handling for Path Item
119
+ $ref: { type: 'string' }, // TODO: verify special $ref handling for Path Item
207
120
  servers: 'ServerList',
208
121
  parameters: 'ParameterList',
209
- summary: {
210
- type: 'string',
211
- description: 'An optional, string summary, intended to apply to all operations in this path.',
212
- },
213
- description: {
214
- type: 'string',
215
- description: 'An optional, string description, intended to apply to all operations in this path.',
216
- },
122
+ summary: { type: 'string' },
123
+ description: { type: 'string' },
217
124
  get: 'Operation',
218
125
  put: 'Operation',
219
126
  post: 'Operation',
@@ -225,47 +132,20 @@ const PathItem = {
225
132
  'x-query': 'Operation',
226
133
  },
227
134
  extensionsPrefix: 'x-',
228
- description: 'Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.',
229
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/path-item#path-item-object',
230
135
  };
231
136
  const Parameter = {
232
137
  properties: {
233
- name: {
234
- type: 'string',
235
- description: 'REQUIRED. The name of the parameter. Parameter names are case sensitive.',
236
- },
237
- in: {
238
- enum: ['query', 'header', 'path', 'cookie'],
239
- description: 'REQUIRED. The location of the parameter. Possible values are "query", "header", "path", or "cookie".',
240
- },
241
- description: {
242
- type: 'string',
243
- description: 'A brief description of the parameter. This could contain examples of use.',
244
- },
245
- required: {
246
- type: 'boolean',
247
- description: 'Determines whether this parameter is mandatory. If the parameter location is "path", this property is REQUIRED and its value MUST be true. Otherwise, the property MAY be included and its default value is false.',
248
- },
249
- deprecated: {
250
- type: 'boolean',
251
- description: 'Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.',
252
- },
253
- allowEmptyValue: {
254
- type: 'boolean',
255
- description: 'Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is false. If style is used, and if behavior is n/a (cannot be serialized), the value of allowEmptyValue SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision.',
256
- },
138
+ name: { type: 'string' },
139
+ in: { enum: ['query', 'header', 'path', 'cookie'] },
140
+ description: { type: 'string' },
141
+ required: { type: 'boolean' },
142
+ deprecated: { type: 'boolean' },
143
+ allowEmptyValue: { type: 'boolean' },
257
144
  style: {
258
145
  enum: ['form', 'simple', 'label', 'matrix', 'spaceDelimited', 'pipeDelimited', 'deepObject'],
259
- description: 'Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form.',
260
- },
261
- explode: {
262
- type: 'boolean',
263
- description: 'When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.',
264
- },
265
- allowReserved: {
266
- type: 'boolean',
267
- description: `Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false.`,
268
146
  },
147
+ explode: { type: 'boolean' },
148
+ allowReserved: { type: 'boolean' },
269
149
  schema: 'Schema',
270
150
  example: { isExample: true },
271
151
  examples: 'ExamplesMap',
@@ -274,32 +154,17 @@ const Parameter = {
274
154
  required: ['name', 'in'],
275
155
  requiredOneOf: ['schema', 'content'],
276
156
  extensionsPrefix: 'x-',
277
- description: 'Describes a request parameter, which excludes the request body. A unique parameter is defined by a unique combination of the name and in values.',
278
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/parameter',
279
157
  };
280
158
  const Operation = {
281
159
  properties: {
282
160
  tags: {
283
161
  type: 'array',
284
162
  items: { type: 'string' },
285
- description: 'A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.',
286
- },
287
- summary: {
288
- type: 'string',
289
- description: 'A short summary of what the operation does.',
290
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/operation#summary',
291
- },
292
- description: {
293
- type: 'string',
294
- description: 'A verbose explanation of the operation behavior.',
295
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/operation#description',
296
163
  },
164
+ summary: { type: 'string' },
165
+ description: { type: 'string' },
297
166
  externalDocs: 'ExternalDocs',
298
- operationId: {
299
- type: 'string',
300
- description: 'The operationId is path segment or path fragment in deep links to a specific operation.',
301
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/operation#operationid',
302
- },
167
+ operationId: { type: 'string' },
303
168
  parameters: 'ParameterList',
304
169
  security: 'SecurityRequirementList',
305
170
  servers: 'ServerList',
@@ -313,8 +178,6 @@ const Operation = {
313
178
  },
314
179
  required: ['responses'],
315
180
  extensionsPrefix: 'x-',
316
- description: `The Operation Object describes a single API operation on a path, including its parameters, responses, and request body (if applicable). Each path can support more than one operation, but those operations must be unique. A unique operation is a combination of a path and an HTTP method, so two GET or two POST methods for the same path are not allowed.`,
317
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/operation',
318
181
  };
319
182
  const XCodeSample = {
320
183
  properties: {
@@ -322,130 +185,76 @@ const XCodeSample = {
322
185
  label: { type: 'string' },
323
186
  source: { type: 'string' },
324
187
  },
325
- documentationLink: 'https://redocly.com/docs/realm/content/api-docs/openapi-extensions/x-code-samples',
326
- description: 'Code samples are snippets of code shown alongside API operations in reference documentation, giving users a quick way to start to interact with an API from their own code. The x-codeSamples addition to OpenAPI allows you to add or override any existing code samples for a particular language or endpoint.',
327
188
  };
328
189
  const RequestBody = {
329
190
  properties: {
330
- description: {
331
- type: 'string',
332
- description: 'A brief description of the request body. This could contain examples of use.',
333
- },
334
- required: {
335
- type: 'boolean',
336
- description: 'Determines if the request body is required in the request. Defaults to false.',
337
- },
191
+ description: { type: 'string' },
192
+ required: { type: 'boolean' },
338
193
  content: 'MediaTypesMap',
339
194
  },
340
195
  required: ['content'],
341
196
  extensionsPrefix: 'x-',
342
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/request-body',
343
- description: 'The request body is defined inside of operations (including paths and webhooks). The request body can also be defined inside of the named requestBodies object in components.',
344
197
  };
345
198
  const MediaTypesMap = {
346
199
  properties: {},
347
200
  additionalProperties: 'MediaType',
348
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/media-type#types',
349
201
  };
350
202
  const MediaType = {
351
203
  properties: {
352
204
  schema: 'Schema',
353
- example: {
354
- isExample: true,
355
- description: 'Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema.',
356
- },
205
+ example: { isExample: true },
357
206
  examples: 'ExamplesMap',
358
207
  encoding: 'EncodingMap',
359
208
  },
360
209
  extensionsPrefix: 'x-',
361
- description: 'The Media Type Object is one of the important building blocks of OpenAPI.',
362
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/media-type',
363
210
  };
364
211
  const Example = {
365
212
  properties: {
366
- value: {
367
- resolvable: false,
368
- description: 'Embedded literal example. The value field and externalValue field are mutually exclusive. To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary.',
369
- },
213
+ value: { resolvable: false },
370
214
  summary: { type: 'string' },
371
- description: { type: 'string', description: 'Long description for the example.' },
372
- externalValue: {
373
- type: 'string',
374
- description: 'A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents. The value field and externalValue field are mutually exclusive.',
375
- },
215
+ description: { type: 'string' },
216
+ externalValue: { type: 'string' },
376
217
  },
377
218
  extensionsPrefix: 'x-',
378
- description: 'Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the schema.',
379
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/example',
380
219
  };
381
220
  const Encoding = {
382
221
  properties: {
383
- contentType: {
384
- type: 'string',
385
- description: `The Content-Type for encoding a specific property. Default value depends on the property type: for string with format being binary – application/octet-stream; for other primitive types – text/plain; for object - application/json; for array – the default is defined based on the inner type. The value can be a specific media type (e.g. application/json), a wildcard media type (e.g. image/*), or a comma-separated list of the two types.`,
386
- },
222
+ contentType: { type: 'string' },
387
223
  headers: 'HeadersMap',
388
224
  style: {
389
225
  enum: ['form', 'simple', 'label', 'matrix', 'spaceDelimited', 'pipeDelimited', 'deepObject'],
390
- description: 'Describes how a specific property value will be serialized depending on its type. See Parameter Object for details on the style property. The behavior follows the same values as query parameters, including default values. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded.',
391
- },
392
- explode: {
393
- type: 'boolean',
394
- description: 'When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When style is form, the default value is true. For all other styles, the default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded.',
395
- },
396
- allowReserved: {
397
- type: 'boolean',
398
- description: `Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986] Section 2.2 :/?#[]@!$&'()*+,;= to be included without percent-encoding. The default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded.`,
399
226
  },
227
+ explode: { type: 'boolean' },
228
+ allowReserved: { type: 'boolean' },
400
229
  },
401
230
  extensionsPrefix: 'x-',
402
- description: 'A single encoding definition applied to a single schema property.',
403
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/encoding#types',
404
231
  };
405
232
  const EnumDescriptions = {
406
233
  properties: {},
407
234
  additionalProperties: { type: 'string' },
408
- description: 'The enum (short for "enumeration") fields in OpenAPI allow you to restrict the value of a field to a list of allowed values. These values need to be short and machine-readable, but that can make them harder for humans to parse and work with.',
409
- documentationLink: 'https://redocly.com/docs/realm/content/api-docs/openapi-extensions/x-enum-descriptions',
410
235
  };
411
236
  const Header = {
412
237
  properties: {
413
- description: {
414
- type: 'string',
415
- description: 'A brief description of the parameter. This could contain examples of use. CommonMark syntax MAY be used for rich text representation.',
416
- },
417
- required: {
418
- type: 'boolean',
419
- description: 'Determines whether this parameter is mandatory. Its default value is false.',
420
- },
238
+ description: { type: 'string' },
239
+ required: { type: 'boolean' },
421
240
  deprecated: { type: 'boolean' },
422
- allowEmptyValue: {
423
- type: 'boolean',
424
- description: 'Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is false.',
425
- },
241
+ allowEmptyValue: { type: 'boolean' },
426
242
  style: {
427
243
  enum: ['form', 'simple', 'label', 'matrix', 'spaceDelimited', 'pipeDelimited', 'deepObject'],
428
244
  },
429
245
  explode: { type: 'boolean' },
430
246
  allowReserved: { type: 'boolean' },
431
247
  schema: 'Schema',
432
- example: {
433
- isExample: true,
434
- description: `Example of the header's potential value. The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the example value SHALL override the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.`,
435
- },
248
+ example: { isExample: true },
436
249
  examples: 'ExamplesMap',
437
250
  content: 'MediaTypesMap',
438
251
  },
439
252
  requiredOneOf: ['schema', 'content'],
440
253
  extensionsPrefix: 'x-',
441
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/header#header-object',
442
- description: 'The header object is used to describe a response header in the headers map.',
443
254
  };
444
255
  const Responses = {
445
256
  properties: { default: 'Response' },
446
257
  additionalProperties: (_v, key) => responseCodeRegexp.test(key) ? 'Response' : undefined,
447
- description: 'The list of possible responses as they are returned from executing this operation.',
448
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/named-responses',
449
258
  };
450
259
  const Response = {
451
260
  properties: {
@@ -453,45 +262,28 @@ const Response = {
453
262
  headers: 'HeadersMap',
454
263
  content: 'MediaTypesMap',
455
264
  links: 'LinksMap',
456
- 'x-summary': {
457
- type: 'string',
458
- documentationLink: 'https://redocly.com/docs/realm/content/api-docs/openapi-extensions/x-summary#openapi-extension-x-summary',
459
- description: 'Use x-summary to add a short custom text to describe the response in the API documentation.',
460
- },
265
+ 'x-summary': { type: 'string' },
461
266
  },
462
267
  required: ['description'],
463
268
  extensionsPrefix: 'x-',
464
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/response',
465
- description: 'The response object describes a single response in the Responses Map.',
466
269
  };
467
270
  const Link = {
468
271
  properties: {
469
- operationRef: {
470
- type: 'string',
471
- description: 'A relative or absolute reference to an OAS operation. This field is mutually exclusive of the operationId field, and MUST point to an Operation Object. Relative operationRef values MAY be used to locate an existing Operation Object in the OpenAPI definition.',
472
- },
473
- operationId: {
474
- type: 'string',
475
- description: 'The name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive of the operationRef field.',
476
- },
272
+ operationRef: { type: 'string' },
273
+ operationId: { type: 'string' },
477
274
  parameters: null, // TODO: figure out how to describe/validate this
478
275
  requestBody: null, // TODO: figure out how to describe/validate this
479
- description: { type: 'string', description: 'A description of the link.' },
276
+ description: { type: 'string' },
480
277
  server: 'Server',
481
278
  },
482
279
  extensionsPrefix: 'x-',
483
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/links',
484
- description: 'The Link object represents a possible design-time link for a response. The presence of a link does not guarantee the caller’s ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.',
485
280
  };
486
281
  // draft-00
487
282
  const Schema = {
488
283
  properties: {
489
284
  externalDocs: 'ExternalDocs',
490
285
  discriminator: 'Discriminator',
491
- title: {
492
- type: 'string',
493
- description: 'Value MUST be a string. Multiple types via an array are not supported.',
494
- },
286
+ title: { type: 'string' },
495
287
  multipleOf: { type: 'number', minimum: 0 },
496
288
  maximum: { type: 'number' },
497
289
  minimum: { type: 'number' },
@@ -499,10 +291,7 @@ const Schema = {
499
291
  exclusiveMinimum: { type: 'boolean' },
500
292
  maxLength: { type: 'integer', minimum: 0 },
501
293
  minLength: { type: 'integer', minimum: 0 },
502
- pattern: {
503
- type: 'string',
504
- description: '(This string SHOULD be a valid regular expression, according to the Ecma-262 Edition 5.1 regular expression dialect)',
505
- },
294
+ pattern: { type: 'string' },
506
295
  maxItems: { type: 'integer', minimum: 0 },
507
296
  minItems: { type: 'integer', minimum: 0 },
508
297
  uniqueItems: { type: 'boolean' },
@@ -512,17 +301,10 @@ const Schema = {
512
301
  enum: { type: 'array' },
513
302
  type: {
514
303
  enum: ['object', 'array', 'string', 'number', 'integer', 'boolean'],
515
- description: 'Value MUST be a string. Multiple types via an array are not supported.',
516
304
  },
517
- allOf: listOf('Schema', {
518
- description: 'Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.',
519
- }),
520
- anyOf: listOf('Schema', {
521
- description: 'Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.',
522
- }),
523
- oneOf: listOf('Schema', {
524
- description: 'Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.',
525
- }),
305
+ allOf: listOf('Schema'),
306
+ anyOf: listOf('Schema'),
307
+ oneOf: listOf('Schema'),
526
308
  not: 'Schema',
527
309
  properties: 'SchemaProperties',
528
310
  items: (value) => {
@@ -541,14 +323,8 @@ const Schema = {
541
323
  return 'Schema';
542
324
  }
543
325
  },
544
- description: {
545
- type: 'string',
546
- description: 'CommonMark syntax MAY be used for rich text representation.',
547
- },
548
- format: {
549
- type: 'string',
550
- description: `See Data Type Formats for further details. While relying on JSON Schema's defined formats, the OAS offers a few additional predefined formats.`,
551
- },
326
+ description: { type: 'string' },
327
+ format: { type: 'string' },
552
328
  default: null,
553
329
  nullable: { type: 'boolean' },
554
330
  readOnly: { type: 'boolean' },
@@ -561,8 +337,6 @@ const Schema = {
561
337
  'x-explicitMappingOnly': { type: 'boolean' },
562
338
  },
563
339
  extensionsPrefix: 'x-',
564
- description: 'The schema defining the content of the request, response, or parameter.',
565
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/schemas',
566
340
  };
567
341
  const Xml = {
568
342
  properties: {
@@ -573,7 +347,6 @@ const Xml = {
573
347
  wrapped: { type: 'boolean' },
574
348
  },
575
349
  extensionsPrefix: 'x-',
576
- description: 'This MAY be used only on properties schemas. It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property.',
577
350
  };
578
351
  const SchemaProperties = {
579
352
  properties: {},
@@ -589,20 +362,14 @@ const DiscriminatorMapping = {
589
362
  return { type: 'string' };
590
363
  }
591
364
  },
592
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/discriminator#types',
593
365
  };
594
366
  const Discriminator = {
595
367
  properties: {
596
- propertyName: {
597
- type: 'string',
598
- description: 'REQUIRED. The name of the property in the payload that will hold the discriminator value.',
599
- },
368
+ propertyName: { type: 'string' },
600
369
  mapping: 'DiscriminatorMapping',
601
370
  },
602
371
  required: ['propertyName'],
603
372
  extensionsPrefix: 'x-',
604
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/discriminator#discriminator-object',
605
- description: 'When request bodies or response payloads may be one of a number of different schemas, a discriminator object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object in a schema which is used to inform the consumer of the document of an alternative schema based on the value associated with it.',
606
373
  };
607
374
  const Components = {
608
375
  properties: {
@@ -617,7 +384,6 @@ const Components = {
617
384
  callbacks: 'NamedCallbacks',
618
385
  },
619
386
  extensionsPrefix: 'x-',
620
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/components#components',
621
387
  };
622
388
  const ImplicitFlow = {
623
389
  properties: {
@@ -627,7 +393,6 @@ const ImplicitFlow = {
627
393
  },
628
394
  required: ['authorizationUrl', 'scopes'],
629
395
  extensionsPrefix: 'x-',
630
- description: 'Configuration for the OAuth Implicit flow.',
631
396
  };
632
397
  const PasswordFlow = {
633
398
  properties: {
@@ -637,7 +402,6 @@ const PasswordFlow = {
637
402
  },
638
403
  required: ['tokenUrl', 'scopes'],
639
404
  extensionsPrefix: 'x-',
640
- description: 'Object Configuration for the OAuth Resource Owner Password flow.',
641
405
  };
642
406
  const ClientCredentials = {
643
407
  properties: {
@@ -647,7 +411,6 @@ const ClientCredentials = {
647
411
  },
648
412
  required: ['tokenUrl', 'scopes'],
649
413
  extensionsPrefix: 'x-',
650
- description: 'Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.',
651
414
  };
652
415
  const AuthorizationCode = {
653
416
  properties: {
@@ -666,7 +429,6 @@ const AuthorizationCode = {
666
429
  },
667
430
  required: ['authorizationUrl', 'tokenUrl', 'scopes'],
668
431
  extensionsPrefix: 'x-',
669
- description: 'Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.',
670
432
  };
671
433
  const OAuth2Flows = {
672
434
  properties: {
@@ -676,40 +438,17 @@ const OAuth2Flows = {
676
438
  authorizationCode: 'AuthorizationCode',
677
439
  },
678
440
  extensionsPrefix: 'x-',
679
- description: 'Configuration details for a supported OAuth Flow.',
680
441
  };
681
442
  const SecurityScheme = {
682
443
  properties: {
683
- type: {
684
- enum: ['apiKey', 'http', 'oauth2', 'openIdConnect'],
685
- description: 'REQUIRED. The type of the security scheme. Valid values are "apiKey", "http", "oauth2", "openIdConnect".',
686
- },
687
- description: {
688
- type: 'string',
689
- description: 'A short description for security scheme.',
690
- },
691
- name: {
692
- type: 'string',
693
- description: 'REQUIRED. The name of the header, query or cookie parameter to be used.',
694
- },
695
- in: {
696
- type: 'string',
697
- enum: ['query', 'header', 'cookie'],
698
- description: 'REQUIRED. The location of the API key. Valid values are "query", "header" or "cookie".',
699
- },
700
- scheme: {
701
- type: 'string',
702
- description: 'A short description for security scheme.',
703
- },
704
- bearerFormat: {
705
- type: 'string',
706
- description: 'A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.',
707
- },
444
+ type: { enum: ['apiKey', 'http', 'oauth2', 'openIdConnect'] },
445
+ description: { type: 'string' },
446
+ name: { type: 'string' },
447
+ in: { type: 'string', enum: ['query', 'header', 'cookie'] },
448
+ scheme: { type: 'string' },
449
+ bearerFormat: { type: 'string' },
708
450
  flows: 'OAuth2Flows',
709
- openIdConnectUrl: {
710
- type: 'string',
711
- description: 'REQUIRED. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL.',
712
- },
451
+ openIdConnectUrl: { type: 'string' },
713
452
  'x-defaultClientId': { type: 'string' },
714
453
  },
715
454
  required(value) {
@@ -747,28 +486,18 @@ const XUsePkce = {
747
486
  disableManualConfiguration: { type: 'boolean' },
748
487
  hideClientSecretInput: { type: 'boolean' },
749
488
  },
750
- description: 'The x-usePkce allows you to enable Proof Key for Code Exchange (PKCE) for the Oauth2 or OpenID Connect authorization code flow in the Replay.',
751
- documentationLink: 'https://redocly.com/docs/realm/content/api-docs/openapi-extensions/x-use-pkce#openapi-extension-x-usepkce',
752
489
  };
753
490
  export const Oas3Types = {
754
491
  Root,
755
492
  Tag,
756
- TagList: listOf('Tag', {
757
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/tags',
758
- description: `A list of tags used by the document with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique.`,
759
- }),
493
+ TagList: listOf('Tag'),
760
494
  TagGroups: listOf('TagGroup'),
761
495
  TagGroup,
762
496
  ExternalDocs,
763
497
  Server,
764
- ServerList: listOf('Server', {
765
- description: 'A list of servers available to the API.',
766
- documentationLink: 'https://redocly.com/learn/openapi/openapi-visual-reference/servers#servers',
767
- }),
498
+ ServerList: listOf('Server'),
768
499
  ServerVariable,
769
- ServerVariablesMap: mapOf('ServerVariable', {
770
- description: `A map between a variable name and its value. The value is used for substitution in the server's URL template.`,
771
- }),
500
+ ServerVariablesMap: mapOf('ServerVariable'),
772
501
  SecurityRequirement,
773
502
  SecurityRequirementList: listOf('SecurityRequirement'),
774
503
  Info,
@@ -777,13 +506,9 @@ export const Oas3Types = {
777
506
  Paths,
778
507
  PathItem,
779
508
  Parameter,
780
- ParameterList: listOf('Parameter', {
781
- description: 'A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object’s components/parameters.',
782
- }),
509
+ ParameterList: listOf('Parameter'),
783
510
  Operation,
784
- Callback: mapOf('PathItem', {
785
- description: 'https://redocly.com/learn/openapi/openapi-visual-reference/callbacks#callback-object',
786
- }),
511
+ Callback: mapOf('PathItem'),
787
512
  CallbacksMap: mapOf('Callback'),
788
513
  RequestBody,
789
514
  MediaTypesMap,