@speclynx/apidom-ns-openapi-2 1.12.1 → 2.0.1
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.
- package/CHANGELOG.md +23 -0
- package/NOTICE +16 -7
- package/README.md +18 -13
- package/dist/apidom-ns-openapi-2.browser.js +9354 -13260
- package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
- package/package.json +10 -9
- package/src/elements/Contact.cjs +2 -2
- package/src/elements/Contact.mjs +1 -1
- package/src/elements/Definitions.cjs +2 -2
- package/src/elements/Definitions.mjs +1 -1
- package/src/elements/Example.cjs +2 -2
- package/src/elements/Example.mjs +1 -1
- package/src/elements/ExternalDocumentation.cjs +2 -2
- package/src/elements/ExternalDocumentation.mjs +1 -1
- package/src/elements/Header.cjs +10 -10
- package/src/elements/Header.mjs +10 -10
- package/src/elements/Headers.cjs +2 -2
- package/src/elements/Headers.mjs +1 -1
- package/src/elements/Info.cjs +2 -2
- package/src/elements/Info.mjs +1 -1
- package/src/elements/Items.cjs +10 -10
- package/src/elements/Items.mjs +10 -10
- package/src/elements/License.cjs +2 -2
- package/src/elements/License.mjs +1 -1
- package/src/elements/Operation.cjs +3 -3
- package/src/elements/Operation.mjs +1 -1
- package/src/elements/Parameter.cjs +11 -11
- package/src/elements/Parameter.mjs +11 -11
- package/src/elements/ParametersDefinitions.cjs +2 -2
- package/src/elements/ParametersDefinitions.mjs +1 -1
- package/src/elements/PathItem.cjs +23 -23
- package/src/elements/PathItem.mjs +22 -22
- package/src/elements/Paths.cjs +2 -2
- package/src/elements/Paths.mjs +1 -1
- package/src/elements/Reference.cjs +2 -2
- package/src/elements/Reference.mjs +1 -1
- package/src/elements/Response.cjs +2 -2
- package/src/elements/Response.mjs +1 -1
- package/src/elements/Responses.cjs +2 -2
- package/src/elements/Responses.mjs +1 -1
- package/src/elements/ResponsesDefinitions.cjs +2 -2
- package/src/elements/ResponsesDefinitions.mjs +1 -1
- package/src/elements/Schema.cjs +43 -8
- package/src/elements/Schema.mjs +43 -9
- package/src/elements/Scopes.cjs +2 -2
- package/src/elements/Scopes.mjs +1 -1
- package/src/elements/SecurityDefinitions.cjs +2 -2
- package/src/elements/SecurityDefinitions.mjs +1 -1
- package/src/elements/SecurityRequirement.cjs +2 -2
- package/src/elements/SecurityRequirement.mjs +1 -1
- package/src/elements/SecurityScheme.cjs +2 -2
- package/src/elements/SecurityScheme.mjs +1 -1
- package/src/elements/Swagger.cjs +2 -2
- package/src/elements/Swagger.mjs +1 -1
- package/src/elements/SwaggerVersion.cjs +2 -2
- package/src/elements/SwaggerVersion.mjs +1 -1
- package/src/elements/Tag.cjs +2 -2
- package/src/elements/Tag.mjs +1 -1
- package/src/elements/Xml.cjs +2 -2
- package/src/elements/Xml.mjs +1 -1
- package/src/elements/nces/OperationConsumes.cjs +2 -2
- package/src/elements/nces/OperationConsumes.mjs +1 -1
- package/src/elements/nces/OperationParameters.cjs +2 -2
- package/src/elements/nces/OperationParameters.mjs +1 -1
- package/src/elements/nces/OperationProduces.cjs +2 -2
- package/src/elements/nces/OperationProduces.mjs +1 -1
- package/src/elements/nces/OperationSchemes.cjs +2 -2
- package/src/elements/nces/OperationSchemes.mjs +1 -1
- package/src/elements/nces/OperationSecurity.cjs +2 -2
- package/src/elements/nces/OperationSecurity.mjs +1 -1
- package/src/elements/nces/OperationTags.cjs +2 -2
- package/src/elements/nces/OperationTags.mjs +1 -1
- package/src/elements/nces/PathItemParameters.cjs +2 -2
- package/src/elements/nces/PathItemParameters.mjs +1 -1
- package/src/elements/nces/SwaggerConsumes.cjs +2 -2
- package/src/elements/nces/SwaggerConsumes.mjs +1 -1
- package/src/elements/nces/SwaggerProduces.cjs +2 -2
- package/src/elements/nces/SwaggerProduces.mjs +1 -1
- package/src/elements/nces/SwaggerSchemes.cjs +2 -2
- package/src/elements/nces/SwaggerSchemes.mjs +1 -1
- package/src/elements/nces/SwaggerSecurity.cjs +2 -2
- package/src/elements/nces/SwaggerSecurity.mjs +1 -1
- package/src/elements/nces/SwaggerTags.cjs +2 -2
- package/src/elements/nces/SwaggerTags.mjs +1 -1
- package/src/index.cjs +65 -45
- package/src/index.mjs +6 -5
- package/src/namespace.mjs +2 -2
- package/src/predicates.cjs +54 -190
- package/src/predicates.mjs +27 -190
- package/src/refractor/index.cjs +279 -17
- package/src/refractor/index.mjs +251 -16
- package/src/refractor/inspect.cjs +157 -0
- package/src/refractor/inspect.mjs +126 -0
- package/src/refractor/plugins/replace-empty-element.cjs +20 -14
- package/src/refractor/plugins/replace-empty-element.mjs +14 -8
- package/src/refractor/predicates.cjs +3 -2
- package/src/refractor/predicates.mjs +2 -1
- package/src/refractor/specification.cjs +41 -12
- package/src/refractor/specification.mjs +41 -12
- package/src/refractor/toolbox.cjs +8 -3
- package/src/refractor/toolbox.mjs +6 -2
- package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
- package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
- package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +4 -4
- package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -4
- package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
- package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
- package/src/refractor/visitors/Visitor.cjs +10 -8
- package/src/refractor/visitors/Visitor.mjs +11 -9
- package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
- package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
- package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +13 -6
- package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +13 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
- package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/HostVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/HostVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +5 -10
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +6 -10
- package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
- package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
- package/src/refractor/visitors/open-api-2/contact/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/contact/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/definitions/index.cjs +5 -12
- package/src/refractor/visitors/open-api-2/definitions/index.mjs +5 -11
- package/src/refractor/visitors/open-api-2/example/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/example/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/header/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/header/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/headers/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/headers/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/info/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/info/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/items/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/items/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/license/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/license/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/operation/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/parameter/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/parameter/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/path-item/index.cjs +8 -14
- package/src/refractor/visitors/open-api-2/path-item/index.mjs +7 -12
- package/src/refractor/visitors/open-api-2/paths/index.cjs +6 -13
- package/src/refractor/visitors/open-api-2/paths/index.mjs +6 -12
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/reference/index.cjs +6 -13
- package/src/refractor/visitors/open-api-2/reference/index.mjs +5 -11
- package/src/refractor/visitors/open-api-2/response/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/response/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/responses/index.cjs +8 -14
- package/src/refractor/visitors/open-api-2/responses/index.mjs +8 -13
- package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +9 -15
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +8 -13
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/schema/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/scopes/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/scopes/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/tag/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/tag/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/xml/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/xml/index.mjs +2 -7
- package/types/apidom-ns-openapi-2.d.ts +541 -565
- package/src/refractor/registration.cjs +0 -87
- package/src/refractor/registration.mjs +0 -56
- package/src/traversal/visitor.cjs +0 -56
- package/src/traversal/visitor.mjs +0 -53
package/src/refractor/index.mjs
CHANGED
|
@@ -1,46 +1,281 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { refract as baseRefract } from '@speclynx/apidom-datamodel';
|
|
3
|
+
import { traverse } from '@speclynx/apidom-traverse';
|
|
2
4
|
import { path } from 'ramda';
|
|
3
5
|
import specification from "./specification.mjs";
|
|
4
|
-
import { keyMap, getNodeType } from "../traversal/visitor.mjs";
|
|
5
6
|
import createToolbox from "./toolbox.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
6
13
|
/**
|
|
7
14
|
* @public
|
|
8
15
|
*/
|
|
9
16
|
const refract = (value, {
|
|
10
|
-
|
|
11
|
-
plugins = []
|
|
17
|
+
element = 'swagger',
|
|
18
|
+
plugins = [],
|
|
19
|
+
specificationObj = specification
|
|
12
20
|
} = {}) => {
|
|
13
|
-
const
|
|
14
|
-
const resolvedSpec =
|
|
21
|
+
const genericElement = baseRefract(value);
|
|
22
|
+
const resolvedSpec = resolveSpecification(specificationObj);
|
|
23
|
+
const elementMap = resolvedSpec.elementMap;
|
|
24
|
+
const specPath = elementMap[element];
|
|
25
|
+
if (!specPath) {
|
|
26
|
+
throw new Error(`Unknown element type: "${element}"`);
|
|
27
|
+
}
|
|
15
28
|
|
|
16
29
|
/**
|
|
17
30
|
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
18
31
|
* We don't allow consumers to hook into this translation.
|
|
19
|
-
* Though we allow consumers to define their
|
|
32
|
+
* Though we allow consumers to define their own plugins on already transformed ApiDOM.
|
|
20
33
|
*/
|
|
21
34
|
const RootVisitorClass = path(specPath, resolvedSpec);
|
|
22
35
|
const rootVisitor = new RootVisitorClass({
|
|
23
36
|
specObj: resolvedSpec
|
|
24
37
|
});
|
|
25
|
-
|
|
38
|
+
traverse(genericElement, rootVisitor);
|
|
26
39
|
|
|
27
40
|
/**
|
|
28
41
|
* Running plugins visitors means extra single traversal === performance hit.
|
|
29
42
|
*/
|
|
30
43
|
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
31
|
-
toolboxCreator: createToolbox
|
|
32
|
-
visitorOptions: {
|
|
33
|
-
keyMap,
|
|
34
|
-
nodeTypeGetter: getNodeType
|
|
35
|
-
}
|
|
44
|
+
toolboxCreator: createToolbox
|
|
36
45
|
});
|
|
37
46
|
};
|
|
38
47
|
|
|
39
48
|
/**
|
|
49
|
+
* Refracts a value into a SwaggerElement.
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export const refractSwagger = (value, options = {}) => refract(value, {
|
|
53
|
+
...options,
|
|
54
|
+
element: 'swagger'
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Refracts a value into an InfoElement.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export const refractInfo = (value, options = {}) => refract(value, {
|
|
62
|
+
...options,
|
|
63
|
+
element: 'info'
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Refracts a value into a ContactElement.
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
export const refractContact = (value, options = {}) => refract(value, {
|
|
71
|
+
...options,
|
|
72
|
+
element: 'contact'
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Refracts a value into a LicenseElement.
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
export const refractLicense = (value, options = {}) => refract(value, {
|
|
80
|
+
...options,
|
|
81
|
+
element: 'license'
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Refracts a value into a PathsElement.
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
export const refractPaths = (value, options = {}) => refract(value, {
|
|
89
|
+
...options,
|
|
90
|
+
element: 'paths'
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Refracts a value into a PathItemElement.
|
|
95
|
+
* @public
|
|
96
|
+
*/
|
|
97
|
+
export const refractPathItem = (value, options = {}) => refract(value, {
|
|
98
|
+
...options,
|
|
99
|
+
element: 'pathItem'
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Refracts a value into an OperationElement.
|
|
104
|
+
* @public
|
|
105
|
+
*/
|
|
106
|
+
export const refractOperation = (value, options = {}) => refract(value, {
|
|
107
|
+
...options,
|
|
108
|
+
element: 'operation'
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Refracts a value into an ExternalDocumentationElement.
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
export const refractExternalDocumentation = (value, options = {}) => refract(value, {
|
|
116
|
+
...options,
|
|
117
|
+
element: 'externalDocumentation'
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Refracts a value into a ParameterElement.
|
|
122
|
+
* @public
|
|
123
|
+
*/
|
|
124
|
+
export const refractParameter = (value, options = {}) => refract(value, {
|
|
125
|
+
...options,
|
|
126
|
+
element: 'parameter'
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Refracts a value into an ItemsElement.
|
|
131
|
+
* @public
|
|
132
|
+
*/
|
|
133
|
+
export const refractItems = (value, options = {}) => refract(value, {
|
|
134
|
+
...options,
|
|
135
|
+
element: 'items'
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Refracts a value into a ResponsesElement.
|
|
140
|
+
* @public
|
|
141
|
+
*/
|
|
142
|
+
export const refractResponses = (value, options = {}) => refract(value, {
|
|
143
|
+
...options,
|
|
144
|
+
element: 'responses'
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Refracts a value into a ResponseElement.
|
|
149
|
+
* @public
|
|
150
|
+
*/
|
|
151
|
+
export const refractResponse = (value, options = {}) => refract(value, {
|
|
152
|
+
...options,
|
|
153
|
+
element: 'response'
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Refracts a value into a HeadersElement.
|
|
158
|
+
* @public
|
|
159
|
+
*/
|
|
160
|
+
export const refractHeaders = (value, options = {}) => refract(value, {
|
|
161
|
+
...options,
|
|
162
|
+
element: 'headers'
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Refracts a value into an ExampleElement.
|
|
167
|
+
* @public
|
|
168
|
+
*/
|
|
169
|
+
export const refractExample = (value, options = {}) => refract(value, {
|
|
170
|
+
...options,
|
|
171
|
+
element: 'example'
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Refracts a value into a HeaderElement.
|
|
176
|
+
* @public
|
|
177
|
+
*/
|
|
178
|
+
export const refractHeader = (value, options = {}) => refract(value, {
|
|
179
|
+
...options,
|
|
180
|
+
element: 'header'
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Refracts a value into a TagElement.
|
|
185
|
+
* @public
|
|
186
|
+
*/
|
|
187
|
+
export const refractTag = (value, options = {}) => refract(value, {
|
|
188
|
+
...options,
|
|
189
|
+
element: 'tag'
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Refracts a value into a ReferenceElement.
|
|
194
|
+
* @public
|
|
195
|
+
*/
|
|
196
|
+
export const refractReference = (value, options = {}) => refract(value, {
|
|
197
|
+
...options,
|
|
198
|
+
element: 'reference'
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Refracts a value into a SchemaElement.
|
|
203
|
+
* @public
|
|
204
|
+
*/
|
|
205
|
+
export const refractSchema = (value, options = {}) => refract(value, {
|
|
206
|
+
...options,
|
|
207
|
+
element: 'schema'
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Refracts a value into an XmlElement.
|
|
212
|
+
* @public
|
|
213
|
+
*/
|
|
214
|
+
export const refractXml = (value, options = {}) => refract(value, {
|
|
215
|
+
...options,
|
|
216
|
+
element: 'xml'
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Refracts a value into a DefinitionsElement.
|
|
221
|
+
* @public
|
|
222
|
+
*/
|
|
223
|
+
export const refractDefinitions = (value, options = {}) => refract(value, {
|
|
224
|
+
...options,
|
|
225
|
+
element: 'definitions'
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Refracts a value into a ParametersDefinitionsElement.
|
|
230
|
+
* @public
|
|
231
|
+
*/
|
|
232
|
+
export const refractParametersDefinitions = (value, options = {}) => refract(value, {
|
|
233
|
+
...options,
|
|
234
|
+
element: 'parametersDefinitions'
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Refracts a value into a ResponsesDefinitionsElement.
|
|
239
|
+
* @public
|
|
240
|
+
*/
|
|
241
|
+
export const refractResponsesDefinitions = (value, options = {}) => refract(value, {
|
|
242
|
+
...options,
|
|
243
|
+
element: 'responsesDefinitions'
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Refracts a value into a SecurityDefinitionsElement.
|
|
248
|
+
* @public
|
|
249
|
+
*/
|
|
250
|
+
export const refractSecurityDefinitions = (value, options = {}) => refract(value, {
|
|
251
|
+
...options,
|
|
252
|
+
element: 'securityDefinitions'
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Refracts a value into a SecuritySchemeElement.
|
|
257
|
+
* @public
|
|
258
|
+
*/
|
|
259
|
+
export const refractSecurityScheme = (value, options = {}) => refract(value, {
|
|
260
|
+
...options,
|
|
261
|
+
element: 'securityScheme'
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Refracts a value into a ScopesElement.
|
|
266
|
+
* @public
|
|
267
|
+
*/
|
|
268
|
+
export const refractScopes = (value, options = {}) => refract(value, {
|
|
269
|
+
...options,
|
|
270
|
+
element: 'scopes'
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Refracts a value into a SecurityRequirementElement.
|
|
40
275
|
* @public
|
|
41
276
|
*/
|
|
42
|
-
export const
|
|
43
|
-
|
|
44
|
-
|
|
277
|
+
export const refractSecurityRequirement = (value, options = {}) => refract(value, {
|
|
278
|
+
...options,
|
|
279
|
+
element: 'securityRequirement'
|
|
45
280
|
});
|
|
46
281
|
export default refract;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
6
|
+
var _ramdaAdjunct = require("ramda-adjunct");
|
|
7
|
+
var _Swagger = _interopRequireDefault(require("../elements/Swagger.cjs"));
|
|
8
|
+
exports.SwaggerElement = _Swagger.default;
|
|
9
|
+
var _SwaggerVersion = _interopRequireDefault(require("../elements/SwaggerVersion.cjs"));
|
|
10
|
+
exports.SwaggerVersionElement = _SwaggerVersion.default;
|
|
11
|
+
var _Info = _interopRequireDefault(require("../elements/Info.cjs"));
|
|
12
|
+
exports.InfoElement = _Info.default;
|
|
13
|
+
var _Contact = _interopRequireDefault(require("../elements/Contact.cjs"));
|
|
14
|
+
exports.ContactElement = _Contact.default;
|
|
15
|
+
var _License = _interopRequireDefault(require("../elements/License.cjs"));
|
|
16
|
+
exports.LicenseElement = _License.default;
|
|
17
|
+
var _Paths = _interopRequireDefault(require("../elements/Paths.cjs"));
|
|
18
|
+
exports.PathsElement = _Paths.default;
|
|
19
|
+
var _PathItem = _interopRequireDefault(require("../elements/PathItem.cjs"));
|
|
20
|
+
exports.PathItemElement = _PathItem.default;
|
|
21
|
+
var _Operation = _interopRequireDefault(require("../elements/Operation.cjs"));
|
|
22
|
+
exports.OperationElement = _Operation.default;
|
|
23
|
+
var _ExternalDocumentation = _interopRequireDefault(require("../elements/ExternalDocumentation.cjs"));
|
|
24
|
+
exports.ExternalDocumentationElement = _ExternalDocumentation.default;
|
|
25
|
+
var _Parameter = _interopRequireDefault(require("../elements/Parameter.cjs"));
|
|
26
|
+
exports.ParameterElement = _Parameter.default;
|
|
27
|
+
var _Items = _interopRequireDefault(require("../elements/Items.cjs"));
|
|
28
|
+
exports.ItemsElement = _Items.default;
|
|
29
|
+
var _Responses = _interopRequireDefault(require("../elements/Responses.cjs"));
|
|
30
|
+
exports.ResponsesElement = _Responses.default;
|
|
31
|
+
var _Response = _interopRequireDefault(require("../elements/Response.cjs"));
|
|
32
|
+
exports.ResponseElement = _Response.default;
|
|
33
|
+
var _Headers = _interopRequireDefault(require("../elements/Headers.cjs"));
|
|
34
|
+
exports.HeadersElement = _Headers.default;
|
|
35
|
+
var _Example = _interopRequireDefault(require("../elements/Example.cjs"));
|
|
36
|
+
exports.ExampleElement = _Example.default;
|
|
37
|
+
var _Header = _interopRequireDefault(require("../elements/Header.cjs"));
|
|
38
|
+
exports.HeaderElement = _Header.default;
|
|
39
|
+
var _Tag = _interopRequireDefault(require("../elements/Tag.cjs"));
|
|
40
|
+
exports.TagElement = _Tag.default;
|
|
41
|
+
var _Reference = _interopRequireDefault(require("../elements/Reference.cjs"));
|
|
42
|
+
exports.ReferenceElement = _Reference.default;
|
|
43
|
+
var _Schema = _interopRequireDefault(require("../elements/Schema.cjs"));
|
|
44
|
+
exports.SchemaElement = _Schema.default;
|
|
45
|
+
var _Xml = _interopRequireDefault(require("../elements/Xml.cjs"));
|
|
46
|
+
exports.XmlElement = _Xml.default;
|
|
47
|
+
var _Definitions = _interopRequireDefault(require("../elements/Definitions.cjs"));
|
|
48
|
+
exports.DefinitionsElement = _Definitions.default;
|
|
49
|
+
var _ParametersDefinitions = _interopRequireDefault(require("../elements/ParametersDefinitions.cjs"));
|
|
50
|
+
exports.ParametersDefinitionsElement = _ParametersDefinitions.default;
|
|
51
|
+
var _ResponsesDefinitions = _interopRequireDefault(require("../elements/ResponsesDefinitions.cjs"));
|
|
52
|
+
exports.ResponsesDefinitionsElement = _ResponsesDefinitions.default;
|
|
53
|
+
var _SecurityDefinitions = _interopRequireDefault(require("../elements/SecurityDefinitions.cjs"));
|
|
54
|
+
exports.SecurityDefinitionsElement = _SecurityDefinitions.default;
|
|
55
|
+
var _SecurityScheme = _interopRequireDefault(require("../elements/SecurityScheme.cjs"));
|
|
56
|
+
exports.SecuritySchemeElement = _SecurityScheme.default;
|
|
57
|
+
var _Scopes = _interopRequireDefault(require("../elements/Scopes.cjs"));
|
|
58
|
+
exports.ScopesElement = _Scopes.default;
|
|
59
|
+
var _SecurityRequirement = _interopRequireDefault(require("../elements/SecurityRequirement.cjs"));
|
|
60
|
+
exports.SecurityRequirementElement = _SecurityRequirement.default;
|
|
61
|
+
var _specification = _interopRequireDefault(require("./specification.cjs"));
|
|
62
|
+
/**
|
|
63
|
+
* OpenAPI 2.0 specification elements.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
// Resolve specification to dereference $ref pointers
|
|
71
|
+
const resolvedSpec = (0, _apidomCore.resolveSpecification)(_specification.default);
|
|
72
|
+
|
|
73
|
+
// Extract fixed fields as list of { name, alias?, $visitor }
|
|
74
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
75
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
76
|
+
if ((0, _ramdaAdjunct.isPlainObject)(fieldSpec)) {
|
|
77
|
+
return {
|
|
78
|
+
name,
|
|
79
|
+
...fieldSpec
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
name,
|
|
84
|
+
$visitor: fieldSpec
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// OpenAPI 2.0 specification elements
|
|
90
|
+
Object.defineProperty(_Swagger.default, 'fixedFields', {
|
|
91
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
|
|
92
|
+
enumerable: true
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(_Info.default, 'fixedFields', {
|
|
95
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
96
|
+
enumerable: true
|
|
97
|
+
});
|
|
98
|
+
Object.defineProperty(_Contact.default, 'fixedFields', {
|
|
99
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
|
|
100
|
+
enumerable: true
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(_License.default, 'fixedFields', {
|
|
103
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
|
|
104
|
+
enumerable: true
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(_PathItem.default, 'fixedFields', {
|
|
107
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
|
|
108
|
+
enumerable: true
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(_Operation.default, 'fixedFields', {
|
|
111
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
|
|
112
|
+
enumerable: true
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(_ExternalDocumentation.default, 'fixedFields', {
|
|
115
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
|
|
116
|
+
enumerable: true
|
|
117
|
+
});
|
|
118
|
+
Object.defineProperty(_Parameter.default, 'fixedFields', {
|
|
119
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
120
|
+
enumerable: true
|
|
121
|
+
});
|
|
122
|
+
Object.defineProperty(_Items.default, 'fixedFields', {
|
|
123
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
|
|
124
|
+
enumerable: true
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(_Responses.default, 'fixedFields', {
|
|
127
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
|
|
128
|
+
enumerable: true
|
|
129
|
+
});
|
|
130
|
+
Object.defineProperty(_Response.default, 'fixedFields', {
|
|
131
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
|
|
132
|
+
enumerable: true
|
|
133
|
+
});
|
|
134
|
+
Object.defineProperty(_Header.default, 'fixedFields', {
|
|
135
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
|
|
136
|
+
enumerable: true
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(_Tag.default, 'fixedFields', {
|
|
139
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
|
|
140
|
+
enumerable: true
|
|
141
|
+
});
|
|
142
|
+
Object.defineProperty(_Reference.default, 'fixedFields', {
|
|
143
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
|
|
144
|
+
enumerable: true
|
|
145
|
+
});
|
|
146
|
+
Object.defineProperty(_Schema.default, 'fixedFields', {
|
|
147
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
|
|
148
|
+
enumerable: true
|
|
149
|
+
});
|
|
150
|
+
Object.defineProperty(_Xml.default, 'fixedFields', {
|
|
151
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
|
|
152
|
+
enumerable: true
|
|
153
|
+
});
|
|
154
|
+
Object.defineProperty(_SecurityScheme.default, 'fixedFields', {
|
|
155
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
|
|
156
|
+
enumerable: true
|
|
157
|
+
});
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { resolveSpecification } from '@speclynx/apidom-core';
|
|
2
|
+
import { isPlainObject } from 'ramda-adjunct';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* OpenAPI 2.0 specification elements.
|
|
6
|
+
*/
|
|
7
|
+
import SwaggerElement from "../elements/Swagger.mjs";
|
|
8
|
+
import SwaggerVersionElement from "../elements/SwaggerVersion.mjs";
|
|
9
|
+
import InfoElement from "../elements/Info.mjs";
|
|
10
|
+
import ContactElement from "../elements/Contact.mjs";
|
|
11
|
+
import LicenseElement from "../elements/License.mjs";
|
|
12
|
+
import PathsElement from "../elements/Paths.mjs";
|
|
13
|
+
import PathItemElement from "../elements/PathItem.mjs";
|
|
14
|
+
import OperationElement from "../elements/Operation.mjs";
|
|
15
|
+
import ExternalDocumentationElement from "../elements/ExternalDocumentation.mjs";
|
|
16
|
+
import ParameterElement from "../elements/Parameter.mjs";
|
|
17
|
+
import ItemsElement from "../elements/Items.mjs";
|
|
18
|
+
import ResponsesElement from "../elements/Responses.mjs";
|
|
19
|
+
import ResponseElement from "../elements/Response.mjs";
|
|
20
|
+
import HeadersElement from "../elements/Headers.mjs";
|
|
21
|
+
import ExampleElement from "../elements/Example.mjs";
|
|
22
|
+
import HeaderElement from "../elements/Header.mjs";
|
|
23
|
+
import TagElement from "../elements/Tag.mjs";
|
|
24
|
+
import ReferenceElement from "../elements/Reference.mjs";
|
|
25
|
+
import SchemaElement from "../elements/Schema.mjs";
|
|
26
|
+
import XmlElement from "../elements/Xml.mjs";
|
|
27
|
+
import DefinitionsElement from "../elements/Definitions.mjs";
|
|
28
|
+
import ParametersDefinitionsElement from "../elements/ParametersDefinitions.mjs";
|
|
29
|
+
import ResponsesDefinitionsElement from "../elements/ResponsesDefinitions.mjs";
|
|
30
|
+
import SecurityDefinitionsElement from "../elements/SecurityDefinitions.mjs";
|
|
31
|
+
import SecuritySchemeElement from "../elements/SecurityScheme.mjs";
|
|
32
|
+
import ScopesElement from "../elements/Scopes.mjs";
|
|
33
|
+
import SecurityRequirementElement from "../elements/SecurityRequirement.mjs";
|
|
34
|
+
import specification from "./specification.mjs";
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
// Resolve specification to dereference $ref pointers
|
|
39
|
+
const resolvedSpec = resolveSpecification(specification);
|
|
40
|
+
|
|
41
|
+
// Extract fixed fields as list of { name, alias?, $visitor }
|
|
42
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
43
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
44
|
+
if (isPlainObject(fieldSpec)) {
|
|
45
|
+
return {
|
|
46
|
+
name,
|
|
47
|
+
...fieldSpec
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
name,
|
|
52
|
+
$visitor: fieldSpec
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// OpenAPI 2.0 specification elements
|
|
58
|
+
Object.defineProperty(SwaggerElement, 'fixedFields', {
|
|
59
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
|
|
60
|
+
enumerable: true
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(InfoElement, 'fixedFields', {
|
|
63
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
64
|
+
enumerable: true
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(ContactElement, 'fixedFields', {
|
|
67
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
|
|
68
|
+
enumerable: true
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(LicenseElement, 'fixedFields', {
|
|
71
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
|
|
72
|
+
enumerable: true
|
|
73
|
+
});
|
|
74
|
+
Object.defineProperty(PathItemElement, 'fixedFields', {
|
|
75
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
|
|
76
|
+
enumerable: true
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(OperationElement, 'fixedFields', {
|
|
79
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
|
|
80
|
+
enumerable: true
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(ExternalDocumentationElement, 'fixedFields', {
|
|
83
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
|
|
84
|
+
enumerable: true
|
|
85
|
+
});
|
|
86
|
+
Object.defineProperty(ParameterElement, 'fixedFields', {
|
|
87
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
88
|
+
enumerable: true
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(ItemsElement, 'fixedFields', {
|
|
91
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
|
|
92
|
+
enumerable: true
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(ResponsesElement, 'fixedFields', {
|
|
95
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
|
|
96
|
+
enumerable: true
|
|
97
|
+
});
|
|
98
|
+
Object.defineProperty(ResponseElement, 'fixedFields', {
|
|
99
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
|
|
100
|
+
enumerable: true
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(HeaderElement, 'fixedFields', {
|
|
103
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
|
|
104
|
+
enumerable: true
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(TagElement, 'fixedFields', {
|
|
107
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
|
|
108
|
+
enumerable: true
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(ReferenceElement, 'fixedFields', {
|
|
111
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
|
|
112
|
+
enumerable: true
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(SchemaElement, 'fixedFields', {
|
|
115
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
|
|
116
|
+
enumerable: true
|
|
117
|
+
});
|
|
118
|
+
Object.defineProperty(XmlElement, 'fixedFields', {
|
|
119
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
|
|
120
|
+
enumerable: true
|
|
121
|
+
});
|
|
122
|
+
Object.defineProperty(SecuritySchemeElement, 'fixedFields', {
|
|
123
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
|
|
124
|
+
enumerable: true
|
|
125
|
+
});
|
|
126
|
+
export { SwaggerElement, SwaggerVersionElement, InfoElement, ContactElement, LicenseElement, PathsElement, PathItemElement, OperationElement, ExternalDocumentationElement, ParameterElement, ItemsElement, ResponsesElement, ResponseElement, HeadersElement, ExampleElement, HeaderElement, TagElement, ReferenceElement, SchemaElement, XmlElement, DefinitionsElement, ParametersDefinitionsElement, ResponsesDefinitionsElement, SecurityDefinitionsElement, SecuritySchemeElement, ScopesElement, SecurityRequirementElement };
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports.default = void 0;
|
|
6
|
+
var _apidomDatamodel = require("@speclynx/apidom-datamodel");
|
|
6
7
|
var _apidomCore = require("@speclynx/apidom-core");
|
|
8
|
+
var _apidomTraverse = require("@speclynx/apidom-traverse");
|
|
7
9
|
var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
|
|
8
10
|
var _Contact = _interopRequireDefault(require("../../elements/Contact.cjs"));
|
|
9
11
|
var _License = _interopRequireDefault(require("../../elements/License.cjs"));
|
|
@@ -40,7 +42,6 @@ var _SwaggerConsumes = _interopRequireDefault(require("../../elements/nces/Swagg
|
|
|
40
42
|
var _SwaggerProduces = _interopRequireDefault(require("../../elements/nces/SwaggerProduces.cjs"));
|
|
41
43
|
var _SwaggerSecurity = _interopRequireDefault(require("../../elements/nces/SwaggerSecurity.cjs"));
|
|
42
44
|
var _SwaggerTags = _interopRequireDefault(require("../../elements/nces/SwaggerTags.cjs"));
|
|
43
|
-
var _visitor = require("../../traversal/visitor.cjs");
|
|
44
45
|
/**
|
|
45
46
|
* OpenAPI 2.0 specification elements.
|
|
46
47
|
*/
|
|
@@ -81,7 +82,7 @@ var _visitor = require("../../traversal/visitor.cjs");
|
|
|
81
82
|
* (InfoElement))
|
|
82
83
|
*/
|
|
83
84
|
|
|
84
|
-
const isEmptyElement = element => (0,
|
|
85
|
+
const isEmptyElement = element => (0, _apidomDatamodel.isStringElement)(element) && (0, _apidomDatamodel.includesClasses)(element, ['yaml-e-node', 'yaml-e-scalar']);
|
|
85
86
|
const schema = {
|
|
86
87
|
// concrete types handling (CTs)
|
|
87
88
|
SwaggerElement: {
|
|
@@ -236,12 +237,12 @@ const schema = {
|
|
|
236
237
|
return new _Schema.default(...args);
|
|
237
238
|
},
|
|
238
239
|
allOf(...args) {
|
|
239
|
-
const element = new
|
|
240
|
+
const element = new _apidomDatamodel.ArrayElement(...args);
|
|
240
241
|
element.classes.push('json-schema-allOf');
|
|
241
242
|
return element;
|
|
242
243
|
},
|
|
243
244
|
properties(...args) {
|
|
244
|
-
const element = new
|
|
245
|
+
const element = new _apidomDatamodel.ObjectElement(...args);
|
|
245
246
|
element.classes.push('json-schema-properties');
|
|
246
247
|
return element;
|
|
247
248
|
},
|
|
@@ -282,7 +283,7 @@ const schema = {
|
|
|
282
283
|
},
|
|
283
284
|
SecurityRequirementElement: {
|
|
284
285
|
'[key: *]': function key(...args) {
|
|
285
|
-
return new
|
|
286
|
+
return new _apidomDatamodel.ArrayElement(...args);
|
|
286
287
|
}
|
|
287
288
|
},
|
|
288
289
|
// non-concrete types handling (NCEs)
|
|
@@ -323,7 +324,7 @@ const schema = {
|
|
|
323
324
|
}
|
|
324
325
|
};
|
|
325
326
|
const findElementFactory = (ancestor, keyName) => {
|
|
326
|
-
const elementType = (0,
|
|
327
|
+
const elementType = (0, _apidomTraverse.getNodeType)(ancestor); // @ts-ignore
|
|
327
328
|
const keyMapping = schema[elementType] || schema[(0, _apidomCore.toValue)(ancestor.classes.first)];
|
|
328
329
|
return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
|
|
329
330
|
};
|
|
@@ -333,25 +334,30 @@ const findElementFactory = (ancestor, keyName) => {
|
|
|
333
334
|
*/
|
|
334
335
|
const plugin = () => () => ({
|
|
335
336
|
visitor: {
|
|
336
|
-
StringElement(
|
|
337
|
-
|
|
338
|
-
|
|
337
|
+
StringElement(path) {
|
|
338
|
+
const element = path.node;
|
|
339
|
+
if (!isEmptyElement(element)) return;
|
|
340
|
+
|
|
341
|
+
// getAncestorNodes() returns [parent, grandparent, ..., root], so reverse to get [root, ..., parent]
|
|
342
|
+
const lineage = path.getAncestorNodes().reverse().filter(_apidomDatamodel.isElement);
|
|
339
343
|
const parentElement = lineage.at(-1);
|
|
340
344
|
let elementFactory;
|
|
341
345
|
let context;
|
|
342
|
-
if ((0,
|
|
346
|
+
if ((0, _apidomDatamodel.isArrayElement)(parentElement)) {
|
|
343
347
|
context = element;
|
|
344
348
|
elementFactory = findElementFactory(parentElement, '<*>');
|
|
345
|
-
} else if ((0,
|
|
349
|
+
} else if ((0, _apidomDatamodel.isMemberElement)(parentElement)) {
|
|
346
350
|
context = lineage.at(-2);
|
|
347
351
|
elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
|
|
348
352
|
}
|
|
349
353
|
|
|
350
354
|
// no element factory found
|
|
351
|
-
if (typeof elementFactory !== 'function') return
|
|
352
|
-
|
|
355
|
+
if (typeof elementFactory !== 'function') return;
|
|
356
|
+
const replacement = elementFactory.call({
|
|
353
357
|
context
|
|
354
|
-
}, undefined, (0,
|
|
358
|
+
}, undefined, (0, _apidomDatamodel.cloneDeep)(element.meta), (0, _apidomDatamodel.cloneDeep)(element.attributes));
|
|
359
|
+
_apidomDatamodel.SourceMapElement.transfer(element, replacement);
|
|
360
|
+
path.replaceWith(replacement);
|
|
355
361
|
}
|
|
356
362
|
}
|
|
357
363
|
});
|