source: node_modules/@swagger-api/apidom-ns-openapi-3-0/es/refractor/specification.mjs@ d24f17c

main
Last change on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 22.9 KB
Line 
1import { specificationObj as JSONSchemaDraft4Specification } from '@swagger-api/apidom-ns-json-schema-draft-4';
2import OpenApi3_0Visitor from "./visitors/open-api-3-0/index.mjs";
3import OpenapiVisitor from "./visitors/open-api-3-0/OpenapiVisitor.mjs";
4import SpecificationExtensionVisitor from "./visitors/SpecificationExtensionVisitor.mjs";
5import InfoVisitor from "./visitors/open-api-3-0/info/index.mjs";
6import InfoVersionVisitor from "./visitors/open-api-3-0/info/VersionVisitor.mjs";
7import ContactVisitor from "./visitors/open-api-3-0/contact/index.mjs";
8import LicenseVisitor from "./visitors/open-api-3-0/license/index.mjs";
9import LinkVisitor from "./visitors/open-api-3-0/link/index.mjs";
10import LinkOperationRefVisitor from "./visitors/open-api-3-0/link/OperationRefVisitor.mjs";
11import LinkOperationIdVisitor from "./visitors/open-api-3-0/link/OperationIdVisitor.mjs";
12import LinkParametersVisitor from "./visitors/open-api-3-0/link/ParametersVisitor.mjs";
13import ServerVisitor from "./visitors/open-api-3-0/server/index.mjs";
14import ServerUrlVisitor from "./visitors/open-api-3-0/server/UrlVisitor.mjs";
15import ServersVisitor from "./visitors/open-api-3-0/ServersVisitor.mjs";
16import ServerVariableVisitor from "./visitors/open-api-3-0/server-variable/index.mjs";
17import ServerVariablesVisitor from "./visitors/open-api-3-0/server/VariablesVisitor.mjs";
18import FallbackVisitor from "./visitors/FallbackVisitor.mjs";
19import MediaTypeVisitor from "./visitors/open-api-3-0/media-type/index.mjs";
20import MediaTypeSchemaVisitor from "./visitors/open-api-3-0/media-type/SchemaVisitor.mjs";
21import MediaTypeExamplesVisitor from "./visitors/open-api-3-0/media-type/ExamplesVisitor.mjs";
22import MediaTypeEncodingVisitor from "./visitors/open-api-3-0/media-type/EncodingVisitor.mjs";
23import SecurityRequirementVisitor from "./visitors/open-api-3-0/security-requirement/index.mjs";
24import SecurityVisitor from "./visitors/open-api-3-0/SecurityVisitor.mjs";
25import ComponentsVisitor from "./visitors/open-api-3-0/components/index.mjs";
26import TagVisitor from "./visitors/open-api-3-0/tag/index.mjs";
27import ReferenceVisitor from "./visitors/open-api-3-0/reference/index.mjs";
28import Reference$RefVisitor from "./visitors/open-api-3-0/reference/$RefVisitor.mjs";
29import ParameterVisitor from "./visitors/open-api-3-0/parameter/index.mjs";
30import ParameterSchemaVisitor from "./visitors/open-api-3-0/parameter/SchemaVisitor.mjs";
31import HeaderVisitor from "./visitors/open-api-3-0/header/index.mjs";
32import HeaderSchemaVisitor from "./visitors/open-api-3-0/header/SchemaVisitor.mjs";
33import HeaderExamplesVisitor from "./visitors/open-api-3-0/header/ExamplesVisitor.mjs";
34import HeaderContentVisitor from "./visitors/open-api-3-0/header/ContentVisitor.mjs";
35import SchemaVisitor from "./visitors/open-api-3-0/schema/index.mjs";
36import SchemaAllOfVisitor from "./visitors/open-api-3-0/schema/AllOfVisitor.mjs";
37import SchemaAnyOfVisitor from "./visitors/open-api-3-0/schema/AnyOfVisitor.mjs";
38import SchemaOneOfVisitor from "./visitors/open-api-3-0/schema/OneOfVisitor.mjs";
39import SchemaItemsVisitor from "./visitors/open-api-3-0/schema/ItemsVisitor.mjs";
40import SchemaPropertiesVisitor from "./visitors/open-api-3-0/schema/PropertiesVisitor.mjs";
41import SchemaTypeVisitor from "./visitors/open-api-3-0/schema/TypeVisitor.mjs";
42import SchemaOrReferenceVisitor from "./visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.mjs";
43import DiscriminatorVisitor from "./visitors/open-api-3-0/distriminator/index.mjs";
44import DiscriminatorMappingVisitor from "./visitors/open-api-3-0/distriminator/MappingVisitor.mjs";
45import XmlVisitor from "./visitors/open-api-3-0/xml/index.mjs";
46import ParameterExamplesVisitor from "./visitors/open-api-3-0/parameter/ExamplesVisitor.mjs";
47import ParameterContentVisitor from "./visitors/open-api-3-0/parameter/ContentVisitor.mjs";
48import ComponentsSchemasVisitor from "./visitors/open-api-3-0/components/SchemasVisitor.mjs";
49import ComponentsResponsesVisitor from "./visitors/open-api-3-0/components/ResponsesVisitor.mjs";
50import ComponentsParametersVisitor from "./visitors/open-api-3-0/components/ParametersVisitor.mjs";
51import ComponentsExamplesVisitor from "./visitors/open-api-3-0/components/ExamplesVisitor.mjs";
52import ComponentsRequestBodiesVisitor from "./visitors/open-api-3-0/components/RequestBodiesVisitor.mjs";
53import ComponentsHeadersVisitor from "./visitors/open-api-3-0/components/HeadersVisitor.mjs";
54import ComponentsSecuritySchemesVisitor from "./visitors/open-api-3-0/components/SecuritySchemesVisitor.mjs";
55import ComponentsLinksVisitor from "./visitors/open-api-3-0/components/LinksVisitor.mjs";
56import ComponentsCallbacksVisitor from "./visitors/open-api-3-0/components/CallbacksVisitor.mjs";
57import ExampleVisitor from "./visitors/open-api-3-0/example/index.mjs";
58import ExampleExternalValueVisitor from "./visitors/open-api-3-0/example/ExternalValueVisitor.mjs";
59import ExternalDocumentationVisitor from "./visitors/open-api-3-0/external-documentation/index.mjs";
60import EncodingVisitor from "./visitors/open-api-3-0/encoding/index.mjs";
61import EncodingHeadersVisitor from "./visitors/open-api-3-0/encoding/HeadersVisitor.mjs";
62import PathsVisitor from "./visitors/open-api-3-0/paths/index.mjs";
63import RequestBodyVisitor from "./visitors/open-api-3-0/request-body/index.mjs";
64import RequestBodyContentVisitor from "./visitors/open-api-3-0/request-body/ContentVisitor.mjs";
65import CallbackVisitor from "./visitors/open-api-3-0/callback/index.mjs";
66import ResponseVisitor from "./visitors/open-api-3-0/response/index.mjs";
67import ResponseHeadersVisitor from "./visitors/open-api-3-0/response/HeadersVisitor.mjs";
68import ResponseContentVisitor from "./visitors/open-api-3-0/response/ContentVisitor.mjs";
69import ResponseLinksVisitor from "./visitors/open-api-3-0/response/LinksVisitor.mjs";
70import ResponsesVisitor from "./visitors/open-api-3-0/responses/index.mjs";
71import ResponsesDefaultVisitor from "./visitors/open-api-3-0/responses/DefaultVisitor.mjs";
72import OperationVisitor from "./visitors/open-api-3-0/operation/index.mjs";
73import OperationTagsVisitor from "./visitors/open-api-3-0/operation/TagsVisitor.mjs";
74import OperationParametersVisitor from "./visitors/open-api-3-0/operation/ParametersVisitor.mjs";
75import OperationRequestBodyVisitor from "./visitors/open-api-3-0/operation/RequestBodyVisitor.mjs";
76import OperationCallbacksVisitor from "./visitors/open-api-3-0/operation/CallbacksVisitor.mjs";
77import OperationSecurityVisitor from "./visitors/open-api-3-0/operation/SecurityVisitor.mjs";
78import OperationServersVisitor from "./visitors/open-api-3-0/operation/ServersVisitor.mjs";
79import PathItemVisitor from "./visitors/open-api-3-0/path-item/index.mjs";
80import PathItem$RefVisitor from "./visitors/open-api-3-0/path-item/$RefVisitor.mjs";
81import PathItemServersVisitor from "./visitors/open-api-3-0/path-item/ServersVisitor.mjs";
82import PathItemParametersVisitor from "./visitors/open-api-3-0/path-item/ParametersVisitor.mjs";
83import SecuritySchemeVisitor from "./visitors/open-api-3-0/security-scheme/index.mjs";
84import OAuthFlowsVisitor from "./visitors/open-api-3-0/oauth-flows/index.mjs";
85import OAuthFlowVisitor from "./visitors/open-api-3-0/oauth-flow/index.mjs";
86import OAuthFlowScopesVisitor from "./visitors/open-api-3-0/oauth-flow/ScopesVisitor.mjs";
87import TagsVisitor from "./visitors/open-api-3-0/TagsVisitor.mjs";
88/**
89 * Specification object allows us to have complete control over visitors
90 * when traversing the ApiDOM.
91 * Specification also allows us to create amended refractors from
92 * existing ones by manipulating it.
93 *
94 * Note: Specification object allows to use absolute internal JSON pointers.
95 */
96const {
97 fixedFields: jsonSchemaFixedFields
98} = JSONSchemaDraft4Specification.visitors.document.objects.JSONSchema;
99const specification = {
100 visitors: {
101 value: FallbackVisitor,
102 document: {
103 objects: {
104 OpenApi: {
105 $visitor: OpenApi3_0Visitor,
106 fixedFields: {
107 openapi: OpenapiVisitor,
108 info: {
109 $ref: '#/visitors/document/objects/Info'
110 },
111 servers: ServersVisitor,
112 paths: {
113 $ref: '#/visitors/document/objects/Paths'
114 },
115 components: {
116 $ref: '#/visitors/document/objects/Components'
117 },
118 security: SecurityVisitor,
119 tags: TagsVisitor,
120 externalDocs: {
121 $ref: '#/visitors/document/objects/ExternalDocumentation'
122 }
123 }
124 },
125 Info: {
126 $visitor: InfoVisitor,
127 fixedFields: {
128 title: {
129 $ref: '#/visitors/value'
130 },
131 description: {
132 $ref: '#/visitors/value'
133 },
134 termsOfService: {
135 $ref: '#/visitors/value'
136 },
137 contact: {
138 $ref: '#/visitors/document/objects/Contact'
139 },
140 license: {
141 $ref: '#/visitors/document/objects/License'
142 },
143 version: InfoVersionVisitor
144 }
145 },
146 Contact: {
147 $visitor: ContactVisitor,
148 fixedFields: {
149 name: {
150 $ref: '#/visitors/value'
151 },
152 url: {
153 $ref: '#/visitors/value'
154 },
155 email: {
156 $ref: '#/visitors/value'
157 }
158 }
159 },
160 License: {
161 $visitor: LicenseVisitor,
162 fixedFields: {
163 name: {
164 $ref: '#/visitors/value'
165 },
166 url: {
167 $ref: '#/visitors/value'
168 }
169 }
170 },
171 Server: {
172 $visitor: ServerVisitor,
173 fixedFields: {
174 url: ServerUrlVisitor,
175 description: {
176 $ref: '#/visitors/value'
177 },
178 variables: ServerVariablesVisitor
179 }
180 },
181 ServerVariable: {
182 $visitor: ServerVariableVisitor,
183 fixedFields: {
184 enum: {
185 $ref: '#/visitors/value'
186 },
187 default: {
188 $ref: '#/visitors/value'
189 },
190 description: {
191 $ref: '#/visitors/value'
192 }
193 }
194 },
195 Components: {
196 $visitor: ComponentsVisitor,
197 fixedFields: {
198 schemas: ComponentsSchemasVisitor,
199 responses: ComponentsResponsesVisitor,
200 parameters: ComponentsParametersVisitor,
201 examples: ComponentsExamplesVisitor,
202 requestBodies: ComponentsRequestBodiesVisitor,
203 headers: ComponentsHeadersVisitor,
204 securitySchemes: ComponentsSecuritySchemesVisitor,
205 links: ComponentsLinksVisitor,
206 callbacks: ComponentsCallbacksVisitor
207 }
208 },
209 Paths: {
210 $visitor: PathsVisitor
211 },
212 PathItem: {
213 $visitor: PathItemVisitor,
214 fixedFields: {
215 $ref: PathItem$RefVisitor,
216 summary: {
217 $ref: '#/visitors/value'
218 },
219 description: {
220 $ref: '#/visitors/value'
221 },
222 get: {
223 $ref: '#/visitors/document/objects/Operation'
224 },
225 put: {
226 $ref: '#/visitors/document/objects/Operation'
227 },
228 post: {
229 $ref: '#/visitors/document/objects/Operation'
230 },
231 delete: {
232 $ref: '#/visitors/document/objects/Operation'
233 },
234 options: {
235 $ref: '#/visitors/document/objects/Operation'
236 },
237 head: {
238 $ref: '#/visitors/document/objects/Operation'
239 },
240 patch: {
241 $ref: '#/visitors/document/objects/Operation'
242 },
243 trace: {
244 $ref: '#/visitors/document/objects/Operation'
245 },
246 servers: PathItemServersVisitor,
247 parameters: PathItemParametersVisitor
248 }
249 },
250 Operation: {
251 $visitor: OperationVisitor,
252 fixedFields: {
253 tags: OperationTagsVisitor,
254 summary: {
255 $ref: '#/visitors/value'
256 },
257 description: {
258 $ref: '#/visitors/value'
259 },
260 externalDocs: {
261 $ref: '#/visitors/document/objects/ExternalDocumentation'
262 },
263 operationId: {
264 $ref: '#/visitors/value'
265 },
266 parameters: OperationParametersVisitor,
267 requestBody: OperationRequestBodyVisitor,
268 responses: {
269 $ref: '#/visitors/document/objects/Responses'
270 },
271 callbacks: OperationCallbacksVisitor,
272 deprecated: {
273 $ref: '#/visitors/value'
274 },
275 security: OperationSecurityVisitor,
276 servers: OperationServersVisitor
277 }
278 },
279 ExternalDocumentation: {
280 $visitor: ExternalDocumentationVisitor,
281 fixedFields: {
282 description: {
283 $ref: '#/visitors/value'
284 },
285 url: {
286 $ref: '#/visitors/value'
287 }
288 }
289 },
290 Parameter: {
291 $visitor: ParameterVisitor,
292 fixedFields: {
293 name: {
294 $ref: '#/visitors/value'
295 },
296 in: {
297 $ref: '#/visitors/value'
298 },
299 description: {
300 $ref: '#/visitors/value'
301 },
302 required: {
303 $ref: '#/visitors/value'
304 },
305 deprecated: {
306 $ref: '#/visitors/value'
307 },
308 allowEmptyValue: {
309 $ref: '#/visitors/value'
310 },
311 style: {
312 $ref: '#/visitors/value'
313 },
314 explode: {
315 $ref: '#/visitors/value'
316 },
317 allowReserved: {
318 $ref: '#/visitors/value'
319 },
320 schema: ParameterSchemaVisitor,
321 example: {
322 $ref: '#/visitors/value'
323 },
324 examples: ParameterExamplesVisitor,
325 content: ParameterContentVisitor
326 }
327 },
328 RequestBody: {
329 $visitor: RequestBodyVisitor,
330 fixedFields: {
331 description: {
332 $ref: '#/visitors/value'
333 },
334 content: RequestBodyContentVisitor,
335 required: {
336 $ref: '#/visitors/value'
337 }
338 }
339 },
340 MediaType: {
341 $visitor: MediaTypeVisitor,
342 fixedFields: {
343 schema: MediaTypeSchemaVisitor,
344 example: {
345 $ref: '#/visitors/value'
346 },
347 examples: MediaTypeExamplesVisitor,
348 encoding: MediaTypeEncodingVisitor
349 }
350 },
351 Encoding: {
352 $visitor: EncodingVisitor,
353 fixedFields: {
354 contentType: {
355 $ref: '#/visitors/value'
356 },
357 headers: EncodingHeadersVisitor,
358 style: {
359 $ref: '#/visitors/value'
360 },
361 explode: {
362 $ref: '#/visitors/value'
363 },
364 allowReserved: {
365 $ref: '#/visitors/value'
366 }
367 }
368 },
369 Responses: {
370 $visitor: ResponsesVisitor,
371 fixedFields: {
372 default: ResponsesDefaultVisitor
373 }
374 },
375 Response: {
376 $visitor: ResponseVisitor,
377 fixedFields: {
378 description: {
379 $ref: '#/visitors/value'
380 },
381 headers: ResponseHeadersVisitor,
382 content: ResponseContentVisitor,
383 links: ResponseLinksVisitor
384 }
385 },
386 Callback: {
387 $visitor: CallbackVisitor
388 },
389 Example: {
390 $visitor: ExampleVisitor,
391 fixedFields: {
392 summary: {
393 $ref: '#/visitors/value'
394 },
395 description: {
396 $ref: '#/visitors/value'
397 },
398 value: {
399 $ref: '#/visitors/value'
400 },
401 externalValue: ExampleExternalValueVisitor
402 }
403 },
404 Link: {
405 $visitor: LinkVisitor,
406 fixedFields: {
407 operationRef: LinkOperationRefVisitor,
408 operationId: LinkOperationIdVisitor,
409 parameters: LinkParametersVisitor,
410 requestBody: {
411 $ref: '#/visitors/value'
412 },
413 description: {
414 $ref: '#/visitors/value'
415 },
416 server: {
417 $ref: '#/visitors/document/objects/Server'
418 }
419 }
420 },
421 Header: {
422 $visitor: HeaderVisitor,
423 fixedFields: {
424 description: {
425 $ref: '#/visitors/value'
426 },
427 required: {
428 $ref: '#/visitors/value'
429 },
430 deprecated: {
431 $ref: '#/visitors/value'
432 },
433 allowEmptyValue: {
434 $ref: '#/visitors/value'
435 },
436 style: {
437 $ref: '#/visitors/value'
438 },
439 explode: {
440 $ref: '#/visitors/value'
441 },
442 allowReserved: {
443 $ref: '#/visitors/value'
444 },
445 schema: HeaderSchemaVisitor,
446 example: {
447 $ref: '#/visitors/value'
448 },
449 examples: HeaderExamplesVisitor,
450 content: HeaderContentVisitor
451 }
452 },
453 Tag: {
454 $visitor: TagVisitor,
455 fixedFields: {
456 name: {
457 $ref: '#/visitors/value'
458 },
459 description: {
460 $ref: '#/visitors/value'
461 },
462 externalDocs: {
463 $ref: '#/visitors/document/objects/ExternalDocumentation'
464 }
465 }
466 },
467 Reference: {
468 $visitor: ReferenceVisitor,
469 fixedFields: {
470 $ref: Reference$RefVisitor
471 }
472 },
473 JSONSchema: {
474 $ref: '#/visitors/document/objects/Schema'
475 },
476 JSONReference: {
477 $ref: '#/visitors/document/objects/Reference'
478 },
479 Schema: {
480 $visitor: SchemaVisitor,
481 fixedFields: {
482 // the following properties are taken directly from the JSON Schema definition and follow the same specifications
483 title: jsonSchemaFixedFields.title,
484 multipleOf: jsonSchemaFixedFields.multipleOf,
485 maximum: jsonSchemaFixedFields.maximum,
486 exclusiveMaximum: jsonSchemaFixedFields.exclusiveMaximum,
487 minimum: jsonSchemaFixedFields.minimum,
488 exclusiveMinimum: jsonSchemaFixedFields.exclusiveMinimum,
489 maxLength: jsonSchemaFixedFields.maxLength,
490 minLength: jsonSchemaFixedFields.minLength,
491 pattern: jsonSchemaFixedFields.pattern,
492 maxItems: jsonSchemaFixedFields.maxItems,
493 minItems: jsonSchemaFixedFields.minItems,
494 uniqueItems: jsonSchemaFixedFields.uniqueItems,
495 maxProperties: jsonSchemaFixedFields.maxProperties,
496 minProperties: jsonSchemaFixedFields.minProperties,
497 required: jsonSchemaFixedFields.required,
498 enum: jsonSchemaFixedFields.enum,
499 // the following properties are taken from the JSON Schema definition but their definitions were adjusted to the OpenAPI Specification
500 type: SchemaTypeVisitor,
501 allOf: SchemaAllOfVisitor,
502 anyOf: SchemaAnyOfVisitor,
503 oneOf: SchemaOneOfVisitor,
504 not: SchemaOrReferenceVisitor,
505 items: SchemaItemsVisitor,
506 properties: SchemaPropertiesVisitor,
507 additionalProperties: SchemaOrReferenceVisitor,
508 description: jsonSchemaFixedFields.description,
509 format: jsonSchemaFixedFields.format,
510 default: jsonSchemaFixedFields.default,
511 // OpenAPI vocabulary
512 nullable: {
513 $ref: '#/visitors/value'
514 },
515 discriminator: {
516 $ref: '#/visitors/document/objects/Discriminator'
517 },
518 writeOnly: {
519 $ref: '#/visitors/value'
520 },
521 xml: {
522 $ref: '#/visitors/document/objects/XML'
523 },
524 externalDocs: {
525 $ref: '#/visitors/document/objects/ExternalDocumentation'
526 },
527 example: {
528 $ref: '#/visitors/value'
529 },
530 deprecated: {
531 $ref: '#/visitors/value'
532 }
533 }
534 },
535 Discriminator: {
536 $visitor: DiscriminatorVisitor,
537 fixedFields: {
538 propertyName: {
539 $ref: '#/visitors/value'
540 },
541 mapping: DiscriminatorMappingVisitor
542 }
543 },
544 XML: {
545 $visitor: XmlVisitor,
546 fixedFields: {
547 name: {
548 $ref: '#/visitors/value'
549 },
550 namespace: {
551 $ref: '#/visitors/value'
552 },
553 prefix: {
554 $ref: '#/visitors/value'
555 },
556 attribute: {
557 $ref: '#/visitors/value'
558 },
559 wrapped: {
560 $ref: '#/visitors/value'
561 }
562 }
563 },
564 SecurityScheme: {
565 $visitor: SecuritySchemeVisitor,
566 fixedFields: {
567 type: {
568 $ref: '#/visitors/value'
569 },
570 description: {
571 $ref: '#/visitors/value'
572 },
573 name: {
574 $ref: '#/visitors/value'
575 },
576 in: {
577 $ref: '#/visitors/value'
578 },
579 scheme: {
580 $ref: '#/visitors/value'
581 },
582 bearerFormat: {
583 $ref: '#/visitors/value'
584 },
585 flows: {
586 $ref: '#/visitors/document/objects/OAuthFlows'
587 },
588 openIdConnectUrl: {
589 $ref: '#/visitors/value'
590 }
591 }
592 },
593 OAuthFlows: {
594 $visitor: OAuthFlowsVisitor,
595 fixedFields: {
596 implicit: {
597 $ref: '#/visitors/document/objects/OAuthFlow'
598 },
599 password: {
600 $ref: '#/visitors/document/objects/OAuthFlow'
601 },
602 clientCredentials: {
603 $ref: '#/visitors/document/objects/OAuthFlow'
604 },
605 authorizationCode: {
606 $ref: '#/visitors/document/objects/OAuthFlow'
607 }
608 }
609 },
610 OAuthFlow: {
611 $visitor: OAuthFlowVisitor,
612 fixedFields: {
613 authorizationUrl: {
614 $ref: '#/visitors/value'
615 },
616 tokenUrl: {
617 $ref: '#/visitors/value'
618 },
619 refreshUrl: {
620 $ref: '#/visitors/value'
621 },
622 scopes: OAuthFlowScopesVisitor
623 }
624 },
625 SecurityRequirement: {
626 $visitor: SecurityRequirementVisitor
627 }
628 },
629 extension: {
630 $visitor: SpecificationExtensionVisitor
631 }
632 }
633 }
634};
635export default specification;
Note: See TracBrowser for help on using the repository browser.