[d24f17c] | 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; |
---|