@speclynx/apidom-ns-openapi-2 1.12.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 +84 -0
- package/LICENSE +202 -0
- package/LICENSES/AFL-3.0.txt +182 -0
- package/LICENSES/Apache-2.0.txt +202 -0
- package/LICENSES/BSD-3-Clause.txt +26 -0
- package/LICENSES/MIT.txt +9 -0
- package/NOTICE +65 -0
- package/README.md +215 -0
- package/dist/apidom-ns-openapi-2.browser.js +23072 -0
- package/dist/apidom-ns-openapi-2.browser.min.js +1 -0
- package/package.json +65 -0
- package/src/elements/Contact.cjs +33 -0
- package/src/elements/Contact.mjs +30 -0
- package/src/elements/Definitions.cjs +15 -0
- package/src/elements/Definitions.mjs +12 -0
- package/src/elements/Example.cjs +15 -0
- package/src/elements/Example.mjs +12 -0
- package/src/elements/ExternalDocumentation.cjs +27 -0
- package/src/elements/ExternalDocumentation.mjs +24 -0
- package/src/elements/Header.cjs +185 -0
- package/src/elements/Header.mjs +182 -0
- package/src/elements/Headers.cjs +15 -0
- package/src/elements/Headers.mjs +12 -0
- package/src/elements/Info.cjs +52 -0
- package/src/elements/Info.mjs +48 -0
- package/src/elements/Items.cjs +190 -0
- package/src/elements/Items.mjs +187 -0
- package/src/elements/License.cjs +27 -0
- package/src/elements/License.mjs +24 -0
- package/src/elements/Operation.cjs +78 -0
- package/src/elements/Operation.mjs +74 -0
- package/src/elements/Parameter.cjs +230 -0
- package/src/elements/Parameter.mjs +226 -0
- package/src/elements/ParametersDefinitions.cjs +15 -0
- package/src/elements/ParametersDefinitions.mjs +12 -0
- package/src/elements/PathItem.cjs +69 -0
- package/src/elements/PathItem.mjs +65 -0
- package/src/elements/Paths.cjs +15 -0
- package/src/elements/Paths.mjs +12 -0
- package/src/elements/Reference.cjs +22 -0
- package/src/elements/Reference.mjs +19 -0
- package/src/elements/Response.cjs +39 -0
- package/src/elements/Response.mjs +35 -0
- package/src/elements/Responses.cjs +21 -0
- package/src/elements/Responses.mjs +17 -0
- package/src/elements/ResponsesDefinitions.cjs +15 -0
- package/src/elements/ResponsesDefinitions.mjs +12 -0
- package/src/elements/Schema.cjs +116 -0
- package/src/elements/Schema.mjs +113 -0
- package/src/elements/Scopes.cjs +15 -0
- package/src/elements/Scopes.mjs +12 -0
- package/src/elements/SecurityDefinitions.cjs +15 -0
- package/src/elements/SecurityDefinitions.mjs +12 -0
- package/src/elements/SecurityRequirement.cjs +15 -0
- package/src/elements/SecurityRequirement.mjs +12 -0
- package/src/elements/SecurityScheme.cjs +63 -0
- package/src/elements/SecurityScheme.mjs +60 -0
- package/src/elements/Swagger.cjs +106 -0
- package/src/elements/Swagger.mjs +102 -0
- package/src/elements/SwaggerVersion.cjs +17 -0
- package/src/elements/SwaggerVersion.mjs +14 -0
- package/src/elements/Tag.cjs +33 -0
- package/src/elements/Tag.mjs +29 -0
- package/src/elements/Xml.cjs +45 -0
- package/src/elements/Xml.mjs +42 -0
- package/src/elements/nces/OperationConsumes.cjs +16 -0
- package/src/elements/nces/OperationConsumes.mjs +13 -0
- package/src/elements/nces/OperationParameters.cjs +17 -0
- package/src/elements/nces/OperationParameters.mjs +14 -0
- package/src/elements/nces/OperationProduces.cjs +16 -0
- package/src/elements/nces/OperationProduces.mjs +13 -0
- package/src/elements/nces/OperationSchemes.cjs +16 -0
- package/src/elements/nces/OperationSchemes.mjs +13 -0
- package/src/elements/nces/OperationSecurity.cjs +17 -0
- package/src/elements/nces/OperationSecurity.mjs +14 -0
- package/src/elements/nces/OperationTags.cjs +17 -0
- package/src/elements/nces/OperationTags.mjs +14 -0
- package/src/elements/nces/PathItemParameters.cjs +17 -0
- package/src/elements/nces/PathItemParameters.mjs +14 -0
- package/src/elements/nces/SwaggerConsumes.cjs +16 -0
- package/src/elements/nces/SwaggerConsumes.mjs +13 -0
- package/src/elements/nces/SwaggerProduces.cjs +16 -0
- package/src/elements/nces/SwaggerProduces.mjs +13 -0
- package/src/elements/nces/SwaggerSchemes.cjs +16 -0
- package/src/elements/nces/SwaggerSchemes.mjs +13 -0
- package/src/elements/nces/SwaggerSecurity.cjs +17 -0
- package/src/elements/nces/SwaggerSecurity.mjs +14 -0
- package/src/elements/nces/SwaggerTags.cjs +16 -0
- package/src/elements/nces/SwaggerTags.mjs +13 -0
- package/src/index.cjs +135 -0
- package/src/index.mjs +31 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/namespace.cjs +71 -0
- package/src/namespace.mjs +66 -0
- package/src/predicates.cjs +329 -0
- package/src/predicates.mjs +324 -0
- package/src/refractor/index.cjs +52 -0
- package/src/refractor/index.mjs +46 -0
- package/src/refractor/plugins/replace-empty-element.cjs +358 -0
- package/src/refractor/plugins/replace-empty-element.mjs +350 -0
- package/src/refractor/predicates.cjs +25 -0
- package/src/refractor/predicates.mjs +20 -0
- package/src/refractor/registration.cjs +87 -0
- package/src/refractor/registration.mjs +56 -0
- package/src/refractor/specification.cjs +490 -0
- package/src/refractor/specification.mjs +484 -0
- package/src/refractor/toolbox.cjs +23 -0
- package/src/refractor/toolbox.mjs +17 -0
- package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
- package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
- package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
- package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
- package/src/refractor/visitors/Visitor.cjs +31 -0
- package/src/refractor/visitors/Visitor.mjs +28 -0
- package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
- package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
- package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
- package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
- package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +60 -0
- package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +54 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
- package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/HostVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-2/HostVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +26 -0
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +20 -0
- package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-2/contact/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/contact/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/definitions/index.cjs +38 -0
- package/src/refractor/visitors/open-api-2/definitions/index.mjs +32 -0
- package/src/refractor/visitors/open-api-2/example/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/example/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/header/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/header/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/headers/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/headers/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +18 -0
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +13 -0
- package/src/refractor/visitors/open-api-2/info/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/info/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/items/index.cjs +28 -0
- package/src/refractor/visitors/open-api-2/items/index.mjs +22 -0
- package/src/refractor/visitors/open-api-2/license/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/license/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +38 -0
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +32 -0
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +17 -0
- package/src/refractor/visitors/open-api-2/operation/index.cjs +25 -0
- package/src/refractor/visitors/open-api-2/operation/index.mjs +19 -0
- package/src/refractor/visitors/open-api-2/parameter/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/parameter/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +25 -0
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +19 -0
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +38 -0
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +32 -0
- package/src/refractor/visitors/open-api-2/path-item/index.cjs +45 -0
- package/src/refractor/visitors/open-api-2/path-item/index.mjs +39 -0
- package/src/refractor/visitors/open-api-2/paths/index.cjs +43 -0
- package/src/refractor/visitors/open-api-2/paths/index.mjs +37 -0
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-2/reference/index.cjs +36 -0
- package/src/refractor/visitors/open-api-2/reference/index.mjs +30 -0
- package/src/refractor/visitors/open-api-2/response/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/response/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +42 -0
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +36 -0
- package/src/refractor/visitors/open-api-2/responses/index.cjs +52 -0
- package/src/refractor/visitors/open-api-2/responses/index.mjs +46 -0
- package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +25 -0
- package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +19 -0
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +24 -0
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +20 -0
- package/src/refractor/visitors/open-api-2/schema/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/schema/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/scopes/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/scopes/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +25 -0
- package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +19 -0
- package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/tag/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/tag/index.mjs +20 -0
- package/src/refractor/visitors/open-api-2/xml/index.cjs +26 -0
- package/src/refractor/visitors/open-api-2/xml/index.mjs +20 -0
- package/src/traversal/visitor.cjs +56 -0
- package/src/traversal/visitor.mjs +53 -0
- package/types/apidom-ns-openapi-2.d.ts +2485 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.createRefractor = void 0;
|
|
6
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _specification = _interopRequireDefault(require("./specification.cjs"));
|
|
9
|
+
var _visitor = require("../traversal/visitor.cjs");
|
|
10
|
+
var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
const refract = (value, {
|
|
15
|
+
specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
|
|
16
|
+
plugins = []
|
|
17
|
+
} = {}) => {
|
|
18
|
+
const element = (0, _apidomCore.refract)(value);
|
|
19
|
+
const resolvedSpec = (0, _apidomCore.dereference)(_specification.default);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
23
|
+
* We don't allow consumers to hook into this translation.
|
|
24
|
+
* Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
|
25
|
+
*/
|
|
26
|
+
const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
|
|
27
|
+
const rootVisitor = new RootVisitorClass({
|
|
28
|
+
specObj: resolvedSpec
|
|
29
|
+
});
|
|
30
|
+
(0, _apidomCore.visit)(element, rootVisitor);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
34
|
+
*/
|
|
35
|
+
return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
|
|
36
|
+
toolboxCreator: _toolbox.default,
|
|
37
|
+
visitorOptions: {
|
|
38
|
+
keyMap: _visitor.keyMap,
|
|
39
|
+
nodeTypeGetter: _visitor.getNodeType
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
const createRefractor = specPath => (value, options = {}) => refract(value, {
|
|
48
|
+
specPath,
|
|
49
|
+
...options
|
|
50
|
+
});
|
|
51
|
+
exports.createRefractor = createRefractor;
|
|
52
|
+
var _default = exports.default = refract;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { visit, dereference, refract as baseRefract, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { path } from 'ramda';
|
|
3
|
+
import specification from "./specification.mjs";
|
|
4
|
+
import { keyMap, getNodeType } from "../traversal/visitor.mjs";
|
|
5
|
+
import createToolbox from "./toolbox.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
const refract = (value, {
|
|
10
|
+
specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
|
|
11
|
+
plugins = []
|
|
12
|
+
} = {}) => {
|
|
13
|
+
const element = baseRefract(value);
|
|
14
|
+
const resolvedSpec = dereference(specification);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
18
|
+
* We don't allow consumers to hook into this translation.
|
|
19
|
+
* Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
|
20
|
+
*/
|
|
21
|
+
const RootVisitorClass = path(specPath, resolvedSpec);
|
|
22
|
+
const rootVisitor = new RootVisitorClass({
|
|
23
|
+
specObj: resolvedSpec
|
|
24
|
+
});
|
|
25
|
+
visit(element, rootVisitor);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
29
|
+
*/
|
|
30
|
+
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
31
|
+
toolboxCreator: createToolbox,
|
|
32
|
+
visitorOptions: {
|
|
33
|
+
keyMap,
|
|
34
|
+
nodeTypeGetter: getNodeType
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export const createRefractor = specPath => (value, options = {}) => refract(value, {
|
|
43
|
+
specPath,
|
|
44
|
+
...options
|
|
45
|
+
});
|
|
46
|
+
export default refract;
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
|
|
8
|
+
var _Contact = _interopRequireDefault(require("../../elements/Contact.cjs"));
|
|
9
|
+
var _License = _interopRequireDefault(require("../../elements/License.cjs"));
|
|
10
|
+
var _Paths = _interopRequireDefault(require("../../elements/Paths.cjs"));
|
|
11
|
+
var _PathItem = _interopRequireDefault(require("../../elements/PathItem.cjs"));
|
|
12
|
+
var _Operation = _interopRequireDefault(require("../../elements/Operation.cjs"));
|
|
13
|
+
var _ExternalDocumentation = _interopRequireDefault(require("../../elements/ExternalDocumentation.cjs"));
|
|
14
|
+
var _Parameter = _interopRequireDefault(require("../../elements/Parameter.cjs"));
|
|
15
|
+
var _Items = _interopRequireDefault(require("../../elements/Items.cjs"));
|
|
16
|
+
var _Responses = _interopRequireDefault(require("../../elements/Responses.cjs"));
|
|
17
|
+
var _Response = _interopRequireDefault(require("../../elements/Response.cjs"));
|
|
18
|
+
var _Headers = _interopRequireDefault(require("../../elements/Headers.cjs"));
|
|
19
|
+
var _Example = _interopRequireDefault(require("../../elements/Example.cjs"));
|
|
20
|
+
var _Header = _interopRequireDefault(require("../../elements/Header.cjs"));
|
|
21
|
+
var _Tag = _interopRequireDefault(require("../../elements/Tag.cjs"));
|
|
22
|
+
var _Schema = _interopRequireDefault(require("../../elements/Schema.cjs"));
|
|
23
|
+
var _Xml = _interopRequireDefault(require("../../elements/Xml.cjs"));
|
|
24
|
+
var _Definitions = _interopRequireDefault(require("../../elements/Definitions.cjs"));
|
|
25
|
+
var _ParametersDefinitions = _interopRequireDefault(require("../../elements/ParametersDefinitions.cjs"));
|
|
26
|
+
var _ResponsesDefinitions = _interopRequireDefault(require("../../elements/ResponsesDefinitions.cjs"));
|
|
27
|
+
var _SecurityDefinitions = _interopRequireDefault(require("../../elements/SecurityDefinitions.cjs"));
|
|
28
|
+
var _SecurityScheme = _interopRequireDefault(require("../../elements/SecurityScheme.cjs"));
|
|
29
|
+
var _Scopes = _interopRequireDefault(require("../../elements/Scopes.cjs"));
|
|
30
|
+
var _SecurityRequirement = _interopRequireDefault(require("../../elements/SecurityRequirement.cjs"));
|
|
31
|
+
var _OperationConsumes = _interopRequireDefault(require("../../elements/nces/OperationConsumes.cjs"));
|
|
32
|
+
var _OperationParameters = _interopRequireDefault(require("../../elements/nces/OperationParameters.cjs"));
|
|
33
|
+
var _OperationProduces = _interopRequireDefault(require("../../elements/nces/OperationProduces.cjs"));
|
|
34
|
+
var _OperationSchemes = _interopRequireDefault(require("../../elements/nces/OperationSchemes.cjs"));
|
|
35
|
+
var _OperationSecurity = _interopRequireDefault(require("../../elements/nces/OperationSecurity.cjs"));
|
|
36
|
+
var _OperationTags = _interopRequireDefault(require("../../elements/nces/OperationTags.cjs"));
|
|
37
|
+
var _PathItemParameters = _interopRequireDefault(require("../../elements/nces/PathItemParameters.cjs"));
|
|
38
|
+
var _SwaggerSchemes = _interopRequireDefault(require("../../elements/nces/SwaggerSchemes.cjs"));
|
|
39
|
+
var _SwaggerConsumes = _interopRequireDefault(require("../../elements/nces/SwaggerConsumes.cjs"));
|
|
40
|
+
var _SwaggerProduces = _interopRequireDefault(require("../../elements/nces/SwaggerProduces.cjs"));
|
|
41
|
+
var _SwaggerSecurity = _interopRequireDefault(require("../../elements/nces/SwaggerSecurity.cjs"));
|
|
42
|
+
var _SwaggerTags = _interopRequireDefault(require("../../elements/nces/SwaggerTags.cjs"));
|
|
43
|
+
var _visitor = require("../../traversal/visitor.cjs");
|
|
44
|
+
/**
|
|
45
|
+
* OpenAPI 2.0 specification elements.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
// non-concrete Elements (NCEs)
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
|
|
52
|
+
* with empty key, empty value, or both. If the value is not provided in YAML format,
|
|
53
|
+
* this plugin compensates for this missing value with the most appropriate semantic element type.
|
|
54
|
+
*
|
|
55
|
+
* https://yaml.org/spec/1.2.2/#72-empty-nodes
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
*
|
|
59
|
+
* ```yaml
|
|
60
|
+
* swagger: "2.0"
|
|
61
|
+
* info:
|
|
62
|
+
* ```
|
|
63
|
+
* Refracting result without this plugin:
|
|
64
|
+
*
|
|
65
|
+
* (SwaggerElement
|
|
66
|
+
* (MemberElement
|
|
67
|
+
* (StringElement)
|
|
68
|
+
* (SwaggerVersionElement))
|
|
69
|
+
* (MemberElement
|
|
70
|
+
* (StringElement)
|
|
71
|
+
* (StringElement))
|
|
72
|
+
*
|
|
73
|
+
* Refracting result with this plugin:
|
|
74
|
+
*
|
|
75
|
+
* (SwaggerElement
|
|
76
|
+
* (MemberElement
|
|
77
|
+
* (StringElement)
|
|
78
|
+
* (SwaggerVersionElement))
|
|
79
|
+
* (MemberElement
|
|
80
|
+
* (StringElement)
|
|
81
|
+
* (InfoElement))
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
|
|
85
|
+
const schema = {
|
|
86
|
+
// concrete types handling (CTs)
|
|
87
|
+
SwaggerElement: {
|
|
88
|
+
info(...args) {
|
|
89
|
+
return new _Info.default(...args);
|
|
90
|
+
},
|
|
91
|
+
schemes(...args) {
|
|
92
|
+
return new _SwaggerSchemes.default(...args);
|
|
93
|
+
},
|
|
94
|
+
consumes(...args) {
|
|
95
|
+
return new _SwaggerConsumes.default(...args);
|
|
96
|
+
},
|
|
97
|
+
produces(...args) {
|
|
98
|
+
return new _SwaggerProduces.default(...args);
|
|
99
|
+
},
|
|
100
|
+
paths(...args) {
|
|
101
|
+
return new _Paths.default(...args);
|
|
102
|
+
},
|
|
103
|
+
definitions(...args) {
|
|
104
|
+
return new _Definitions.default(...args);
|
|
105
|
+
},
|
|
106
|
+
parameters(...args) {
|
|
107
|
+
return new _ParametersDefinitions.default(...args);
|
|
108
|
+
},
|
|
109
|
+
responses(...args) {
|
|
110
|
+
return new _ResponsesDefinitions.default(...args);
|
|
111
|
+
},
|
|
112
|
+
securityDefinitions(...args) {
|
|
113
|
+
return new _SecurityDefinitions.default(...args);
|
|
114
|
+
},
|
|
115
|
+
security(...args) {
|
|
116
|
+
return new _SwaggerSecurity.default(...args);
|
|
117
|
+
},
|
|
118
|
+
tags(...args) {
|
|
119
|
+
return new _SwaggerTags.default(...args);
|
|
120
|
+
},
|
|
121
|
+
externalDocs(...args) {
|
|
122
|
+
return new _ExternalDocumentation.default(...args);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
InfoElement: {
|
|
126
|
+
contact(...args) {
|
|
127
|
+
return new _Contact.default(...args);
|
|
128
|
+
},
|
|
129
|
+
license(...args) {
|
|
130
|
+
return new _License.default(...args);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
PathsElement: {
|
|
134
|
+
'[key: *]': function key(...args) {
|
|
135
|
+
return new _PathItem.default(...args);
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
PathItemElement: {
|
|
139
|
+
get(...args) {
|
|
140
|
+
return new _Operation.default(...args);
|
|
141
|
+
},
|
|
142
|
+
put(...args) {
|
|
143
|
+
return new _Operation.default(...args);
|
|
144
|
+
},
|
|
145
|
+
post(...args) {
|
|
146
|
+
return new _Operation.default(...args);
|
|
147
|
+
},
|
|
148
|
+
delete(...args) {
|
|
149
|
+
return new _Operation.default(...args);
|
|
150
|
+
},
|
|
151
|
+
options(...args) {
|
|
152
|
+
return new _Operation.default(...args);
|
|
153
|
+
},
|
|
154
|
+
head(...args) {
|
|
155
|
+
return new _Operation.default(...args);
|
|
156
|
+
},
|
|
157
|
+
patch(...args) {
|
|
158
|
+
return new _Operation.default(...args);
|
|
159
|
+
},
|
|
160
|
+
parameters(...args) {
|
|
161
|
+
return new _PathItemParameters.default(...args);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
OperationElement: {
|
|
165
|
+
tags(...args) {
|
|
166
|
+
return new _OperationTags.default(...args);
|
|
167
|
+
},
|
|
168
|
+
externalDocs(...args) {
|
|
169
|
+
return new _ExternalDocumentation.default(...args);
|
|
170
|
+
},
|
|
171
|
+
consumes(...args) {
|
|
172
|
+
return new _OperationConsumes.default(...args);
|
|
173
|
+
},
|
|
174
|
+
produces(...args) {
|
|
175
|
+
return new _OperationProduces.default(...args);
|
|
176
|
+
},
|
|
177
|
+
parameters(...args) {
|
|
178
|
+
return new _OperationParameters.default(...args);
|
|
179
|
+
},
|
|
180
|
+
responses(...args) {
|
|
181
|
+
return new _Responses.default(...args);
|
|
182
|
+
},
|
|
183
|
+
schemes(...args) {
|
|
184
|
+
return new _OperationSchemes.default(...args);
|
|
185
|
+
},
|
|
186
|
+
security(...args) {
|
|
187
|
+
return new _OperationSecurity.default(...args);
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
ParameterElement: {
|
|
191
|
+
schema(...args) {
|
|
192
|
+
return new _Schema.default(...args);
|
|
193
|
+
},
|
|
194
|
+
items(...args) {
|
|
195
|
+
return new _Items.default(...args);
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
ItemsElement: {
|
|
199
|
+
items(...args) {
|
|
200
|
+
return new _Items.default(...args);
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
ResponsesElement: {
|
|
204
|
+
'[key: *]': function key(...args) {
|
|
205
|
+
return new _Response.default(...args);
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
ResponseElement: {
|
|
209
|
+
schema(...args) {
|
|
210
|
+
return new _Schema.default(...args);
|
|
211
|
+
},
|
|
212
|
+
headers(...args) {
|
|
213
|
+
return new _Headers.default(...args);
|
|
214
|
+
},
|
|
215
|
+
examples(...args) {
|
|
216
|
+
return new _Example.default(...args);
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
HeadersElement: {
|
|
220
|
+
'[key: *]': function key(...args) {
|
|
221
|
+
return new _Header.default(...args);
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
HeaderElement: {
|
|
225
|
+
items(...args) {
|
|
226
|
+
return new _Items.default(...args);
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
TagElement: {
|
|
230
|
+
externalDocs(...args) {
|
|
231
|
+
return new _ExternalDocumentation.default(...args);
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
SchemaElement: {
|
|
235
|
+
items(...args) {
|
|
236
|
+
return new _Schema.default(...args);
|
|
237
|
+
},
|
|
238
|
+
allOf(...args) {
|
|
239
|
+
const element = new _apidomCore.ArrayElement(...args);
|
|
240
|
+
element.classes.push('json-schema-allOf');
|
|
241
|
+
return element;
|
|
242
|
+
},
|
|
243
|
+
properties(...args) {
|
|
244
|
+
const element = new _apidomCore.ObjectElement(...args);
|
|
245
|
+
element.classes.push('json-schema-properties');
|
|
246
|
+
return element;
|
|
247
|
+
},
|
|
248
|
+
additionalProperties(...args) {
|
|
249
|
+
return new _Schema.default(...args);
|
|
250
|
+
},
|
|
251
|
+
xml(...args) {
|
|
252
|
+
return new _Xml.default(...args);
|
|
253
|
+
},
|
|
254
|
+
externalDocs(...args) {
|
|
255
|
+
return new _ExternalDocumentation.default(...args);
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
DefinitionsElement: {
|
|
259
|
+
'[key: *]': function key(...args) {
|
|
260
|
+
return new _Schema.default(...args);
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
ParametersDefinitionsElement: {
|
|
264
|
+
'[key: *]': function key(...args) {
|
|
265
|
+
return new _Parameter.default(...args);
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
ResponsesDefinitionsElement: {
|
|
269
|
+
'[key: *]': function key(...args) {
|
|
270
|
+
return new _Response.default(...args);
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
SecurityDefinitionsElement: {
|
|
274
|
+
'[key: *]': function key(...args) {
|
|
275
|
+
return new _SecurityScheme.default(...args);
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
SecuritySchemeElement: {
|
|
279
|
+
scopes(...args) {
|
|
280
|
+
return new _Scopes.default(...args);
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
SecurityRequirementElement: {
|
|
284
|
+
'[key: *]': function key(...args) {
|
|
285
|
+
return new _apidomCore.ArrayElement(...args);
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
// non-concrete types handling (NCEs)
|
|
289
|
+
[_OperationParameters.default.primaryClass]: {
|
|
290
|
+
'<*>': function asterisk(...args) {
|
|
291
|
+
return new _Parameter.default(...args);
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
[_OperationSecurity.default.primaryClass]: {
|
|
295
|
+
'<*>': function asterisk(...args) {
|
|
296
|
+
return new _SecurityRequirement.default(...args);
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
[_PathItemParameters.default.primaryClass]: {
|
|
300
|
+
'<*>': function asterisk(...args) {
|
|
301
|
+
return new _Parameter.default(...args);
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
[_SwaggerSecurity.default.primaryClass]: {
|
|
305
|
+
'<*>': function asterisk(...args) {
|
|
306
|
+
return new _SecurityRequirement.default(...args);
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
[_SwaggerTags.default.primaryClass]: {
|
|
310
|
+
'<*>': function asterisk(...args) {
|
|
311
|
+
return new _Tag.default(...args);
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
'json-schema-properties': {
|
|
315
|
+
'[key: *]': function key(...args) {
|
|
316
|
+
return new _Schema.default(...args);
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
'json-schema-allOf': {
|
|
320
|
+
'<*>': function asterisk(...args) {
|
|
321
|
+
return new _Schema.default(...args);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
const findElementFactory = (ancestor, keyName) => {
|
|
326
|
+
const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
|
|
327
|
+
const keyMapping = schema[elementType] || schema[(0, _apidomCore.toValue)(ancestor.classes.first)];
|
|
328
|
+
return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* @public
|
|
333
|
+
*/
|
|
334
|
+
const plugin = () => () => ({
|
|
335
|
+
visitor: {
|
|
336
|
+
StringElement(element, key, parent, path, ancestors) {
|
|
337
|
+
if (!isEmptyElement(element)) return undefined;
|
|
338
|
+
const lineage = [...ancestors, parent].filter(_apidomCore.isElement);
|
|
339
|
+
const parentElement = lineage.at(-1);
|
|
340
|
+
let elementFactory;
|
|
341
|
+
let context;
|
|
342
|
+
if ((0, _apidomCore.isArrayElement)(parentElement)) {
|
|
343
|
+
context = element;
|
|
344
|
+
elementFactory = findElementFactory(parentElement, '<*>');
|
|
345
|
+
} else if ((0, _apidomCore.isMemberElement)(parentElement)) {
|
|
346
|
+
context = lineage.at(-2);
|
|
347
|
+
elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// no element factory found
|
|
351
|
+
if (typeof elementFactory !== 'function') return undefined;
|
|
352
|
+
return elementFactory.call({
|
|
353
|
+
context
|
|
354
|
+
}, undefined, (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
var _default = exports.default = plugin;
|