1 | import FallbackVisitor from "./visitors/FallbackVisitor.mjs";
|
---|
2 | import JSONSchemaVisitor from "./visitors/json-schema/index.mjs";
|
---|
3 | import JSONSchemaIdVisitor from "./visitors/json-schema/IdVisitor.mjs";
|
---|
4 | import JSONSchema$schemaVisitor from "./visitors/json-schema/$schemaVisitor.mjs";
|
---|
5 | import JSONSchemaMultipleOfVisitor from "./visitors/json-schema/MultipleOfVisitor.mjs";
|
---|
6 | import JSONSchemaMaximumVisitor from "./visitors/json-schema/MaximumVisitor.mjs";
|
---|
7 | import JSONSchemaExclusiveMaximumVisitor from "./visitors/json-schema/ExclusiveMaximumVisitor.mjs";
|
---|
8 | import JSONSchemaMinimumVisitor from "./visitors/json-schema/MinimumVisitor.mjs";
|
---|
9 | import JSONSchemaExclusiveMinimumVisitor from "./visitors/json-schema/ExclusiveMinimumVisitor.mjs";
|
---|
10 | import JSONSchemaMaxLengthVisitor from "./visitors/json-schema/MaxLengthVisitor.mjs";
|
---|
11 | import JSONSchemaMinLengthVisitor from "./visitors/json-schema/MinLengthVisitor.mjs";
|
---|
12 | import JSONSchemaPatternVisitor from "./visitors/json-schema/PatternVisitor.mjs";
|
---|
13 | import JSONSchemaItemsVisitor from "./visitors/json-schema/ItemsVisitor.mjs";
|
---|
14 | import JSONSchemaMaxItemsVisitor from "./visitors/json-schema/MaxItemsVisitor.mjs";
|
---|
15 | import JSONSchemaMinItemsVisitor from "./visitors/json-schema/MinItemsVisitor.mjs";
|
---|
16 | import JSONSchemaUniqueItemsVisitor from "./visitors/json-schema/UniqueItemsVisitor.mjs";
|
---|
17 | import JSONSchemaMaxPropertiesVisitor from "./visitors/json-schema/MaxPropertiesVisitor.mjs";
|
---|
18 | import JSONSchemaMinPropertiesVisitor from "./visitors/json-schema/MinPropertiesVisitor.mjs";
|
---|
19 | import JSONSchemaRequiredVisitor from "./visitors/json-schema/RequiredVisitor.mjs";
|
---|
20 | import JSONSchemaPropertiesVisitor from "./visitors/json-schema/PropertiesVisitor.mjs";
|
---|
21 | import JSONSchemaPatternPropertiesVisitor from "./visitors/json-schema/PatternPropertiesVisitor.mjs";
|
---|
22 | import JSONSchemaDependenciesVisitor from "./visitors/json-schema/DependenciesVisitor.mjs";
|
---|
23 | import JSONSchemaEnumVisitor from "./visitors/json-schema/EnumVisitor.mjs";
|
---|
24 | import JSONSchemaTypeVisitor from "./visitors/json-schema/TypeVisitor.mjs";
|
---|
25 | import JSONSchemaAllOfVisitor from "./visitors/json-schema/AllOfVisitor.mjs";
|
---|
26 | import JSONSchemaAnyOfVisitor from "./visitors/json-schema/AnyOfVisitor.mjs";
|
---|
27 | import JSONSchemaOneOfVisitor from "./visitors/json-schema/OneOfVisitor.mjs";
|
---|
28 | import JSONSchemaDefinitionsVisitor from "./visitors/json-schema/DefinitionsVisitor.mjs";
|
---|
29 | import JSONSchemaTitleVisitor from "./visitors/json-schema/TitleVisitor.mjs";
|
---|
30 | import JSONSchemaDescriptionVisitor from "./visitors/json-schema/DescriptionVisitor.mjs";
|
---|
31 | import JSONSchemaDefaultVisitor from "./visitors/json-schema/DefaultVisitor.mjs";
|
---|
32 | import JSONSchemaFormatVisitor from "./visitors/json-schema/FormatVisitor.mjs";
|
---|
33 | import JSONSchemaBaseVisitor from "./visitors/json-schema/BaseVisitor.mjs";
|
---|
34 | import JSONSchemaLinksVisitor from "./visitors/json-schema/LinksVisitor.mjs";
|
---|
35 | import JSONSchemaReadOnlyVisitor from "./visitors/json-schema/ReadOnlyVisitor.mjs";
|
---|
36 | import JSONReferenceVisitor from "./visitors/json-schema/json-reference/index.mjs";
|
---|
37 | import JSONReference$RefVisitor from "./visitors/json-schema/json-reference/$RefVisitor.mjs";
|
---|
38 | import JSONSchemaOrJSONReferenceVisitor from "./visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.mjs";
|
---|
39 | import MediaVisitor from "./visitors/json-schema/media/index.mjs";
|
---|
40 | import MediaBinaryEncodingVisitor from "./visitors/json-schema/media/BinaryEncodingVisitor.mjs";
|
---|
41 | import MediaTypeVisitor from "./visitors/json-schema/media/TypeVisitor.mjs";
|
---|
42 | import LinkDescriptionVisitor from "./visitors/json-schema/link-description/index.mjs";
|
---|
43 | import LinkDescriptionHrefVisitor from "./visitors/json-schema/link-description/HrefVisitor.mjs";
|
---|
44 | import LinkDescriptionRelVisitor from "./visitors/json-schema/link-description/RelVisitor.mjs";
|
---|
45 | import LinkDescriptionTitleVisitor from "./visitors/json-schema/link-description/TitleVisitor.mjs";
|
---|
46 | import LinkDescriptionMediaTypeVisitor from "./visitors/json-schema/link-description/MediaTypeVisitor.mjs";
|
---|
47 | import LinkDescriptionMethodVisitor from "./visitors/json-schema/link-description/MethodVisitor.mjs";
|
---|
48 | import LinkDescriptionEncTypeVisitor from "./visitors/json-schema/link-description/EncTypeVisitor.mjs";
|
---|
49 | /**
|
---|
50 | * Specification object allows us to have complete control over visitors
|
---|
51 | * when traversing the ApiDOM.
|
---|
52 | * Specification also allows us to create amended refractors from
|
---|
53 | * existing ones by manipulating it.
|
---|
54 | *
|
---|
55 | * Note: Specification object allows to use absolute internal JSON pointers.
|
---|
56 | */
|
---|
57 | const specification = {
|
---|
58 | visitors: {
|
---|
59 | value: FallbackVisitor,
|
---|
60 | JSONSchemaOrJSONReferenceVisitor,
|
---|
61 | document: {
|
---|
62 | objects: {
|
---|
63 | JSONSchema: {
|
---|
64 | $visitor: JSONSchemaVisitor,
|
---|
65 | fixedFields: {
|
---|
66 | // core vocabulary
|
---|
67 | id: JSONSchemaIdVisitor,
|
---|
68 | $schema: JSONSchema$schemaVisitor,
|
---|
69 | // validation vocabulary
|
---|
70 | // validation keywords for numeric instances (number and integer)
|
---|
71 | multipleOf: JSONSchemaMultipleOfVisitor,
|
---|
72 | maximum: JSONSchemaMaximumVisitor,
|
---|
73 | exclusiveMaximum: JSONSchemaExclusiveMaximumVisitor,
|
---|
74 | minimum: JSONSchemaMinimumVisitor,
|
---|
75 | exclusiveMinimum: JSONSchemaExclusiveMinimumVisitor,
|
---|
76 | // validation keywords for strings
|
---|
77 | maxLength: JSONSchemaMaxLengthVisitor,
|
---|
78 | minLength: JSONSchemaMinLengthVisitor,
|
---|
79 | pattern: JSONSchemaPatternVisitor,
|
---|
80 | // validation keywords for arrays
|
---|
81 | additionalItems: JSONSchemaOrJSONReferenceVisitor,
|
---|
82 | items: JSONSchemaItemsVisitor,
|
---|
83 | maxItems: JSONSchemaMaxItemsVisitor,
|
---|
84 | minItems: JSONSchemaMinItemsVisitor,
|
---|
85 | uniqueItems: JSONSchemaUniqueItemsVisitor,
|
---|
86 | // validation keywords for objects
|
---|
87 | maxProperties: JSONSchemaMaxPropertiesVisitor,
|
---|
88 | minProperties: JSONSchemaMinPropertiesVisitor,
|
---|
89 | required: JSONSchemaRequiredVisitor,
|
---|
90 | properties: JSONSchemaPropertiesVisitor,
|
---|
91 | additionalProperties: JSONSchemaOrJSONReferenceVisitor,
|
---|
92 | patternProperties: JSONSchemaPatternPropertiesVisitor,
|
---|
93 | dependencies: JSONSchemaDependenciesVisitor,
|
---|
94 | // validation keywords for any instance type
|
---|
95 | enum: JSONSchemaEnumVisitor,
|
---|
96 | type: JSONSchemaTypeVisitor,
|
---|
97 | allOf: JSONSchemaAllOfVisitor,
|
---|
98 | anyOf: JSONSchemaAnyOfVisitor,
|
---|
99 | oneOf: JSONSchemaOneOfVisitor,
|
---|
100 | not: JSONSchemaOrJSONReferenceVisitor,
|
---|
101 | definitions: JSONSchemaDefinitionsVisitor,
|
---|
102 | // metadata keywords
|
---|
103 | title: JSONSchemaTitleVisitor,
|
---|
104 | description: JSONSchemaDescriptionVisitor,
|
---|
105 | default: JSONSchemaDefaultVisitor,
|
---|
106 | // semantic validation with "format"
|
---|
107 | format: JSONSchemaFormatVisitor,
|
---|
108 | // JSON Hyper-Schema
|
---|
109 | base: JSONSchemaBaseVisitor,
|
---|
110 | links: JSONSchemaLinksVisitor,
|
---|
111 | media: {
|
---|
112 | $ref: '#/visitors/document/objects/Media'
|
---|
113 | },
|
---|
114 | readOnly: JSONSchemaReadOnlyVisitor
|
---|
115 | }
|
---|
116 | },
|
---|
117 | JSONReference: {
|
---|
118 | $visitor: JSONReferenceVisitor,
|
---|
119 | fixedFields: {
|
---|
120 | $ref: JSONReference$RefVisitor
|
---|
121 | }
|
---|
122 | },
|
---|
123 | Media: {
|
---|
124 | $visitor: MediaVisitor,
|
---|
125 | fixedFields: {
|
---|
126 | binaryEncoding: MediaBinaryEncodingVisitor,
|
---|
127 | type: MediaTypeVisitor
|
---|
128 | }
|
---|
129 | },
|
---|
130 | LinkDescription: {
|
---|
131 | $visitor: LinkDescriptionVisitor,
|
---|
132 | fixedFields: {
|
---|
133 | href: LinkDescriptionHrefVisitor,
|
---|
134 | rel: LinkDescriptionRelVisitor,
|
---|
135 | title: LinkDescriptionTitleVisitor,
|
---|
136 | targetSchema: JSONSchemaOrJSONReferenceVisitor,
|
---|
137 | mediaType: LinkDescriptionMediaTypeVisitor,
|
---|
138 | method: LinkDescriptionMethodVisitor,
|
---|
139 | encType: LinkDescriptionEncTypeVisitor,
|
---|
140 | schema: JSONSchemaOrJSONReferenceVisitor
|
---|
141 | }
|
---|
142 | }
|
---|
143 | }
|
---|
144 | }
|
---|
145 | }
|
---|
146 | };
|
---|
147 | export default specification; |
---|