@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,17 @@
|
|
|
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 _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class $RefVisitor extends _FallbackVisitor.default {
|
|
11
|
+
StringElement(stringElement) {
|
|
12
|
+
const result = super.enter(stringElement);
|
|
13
|
+
this.element.classes.push('reference-value');
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
var _default = exports.default = $RefVisitor;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class $RefVisitor extends FallbackVisitor {
|
|
6
|
+
StringElement(stringElement) {
|
|
7
|
+
const result = super.enter(stringElement);
|
|
8
|
+
this.element.classes.push('reference-value');
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export default $RefVisitor;
|
|
@@ -0,0 +1,38 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
8
|
+
var _predicates = require("../../../predicates.cjs");
|
|
9
|
+
var _predicates2 = require("../../../../predicates.cjs");
|
|
10
|
+
var _PathItemParameters = _interopRequireDefault(require("../../../../elements/nces/PathItemParameters.cjs"));
|
|
11
|
+
var _SpecificationVisitor = _interopRequireDefault(require("../../SpecificationVisitor.cjs"));
|
|
12
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
class ParametersVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _FallbackVisitor.default) {
|
|
21
|
+
constructor(options) {
|
|
22
|
+
super(options);
|
|
23
|
+
this.element = new _PathItemParameters.default();
|
|
24
|
+
}
|
|
25
|
+
ArrayElement(arrayElement) {
|
|
26
|
+
arrayElement.forEach(item => {
|
|
27
|
+
const specPath = (0, _predicates.isReferenceLikeElement)(item) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Parameter'];
|
|
28
|
+
const element = this.toRefractedElement(specPath, item);
|
|
29
|
+
if ((0, _predicates2.isReferenceElement)(element)) {
|
|
30
|
+
element.setMetaProperty('referenced-element', 'parameter');
|
|
31
|
+
}
|
|
32
|
+
this.element.push(element);
|
|
33
|
+
});
|
|
34
|
+
this.copyMetaAndAttributes(arrayElement, this.element);
|
|
35
|
+
return _apidomCore.BREAK;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
var _default = exports.default = ParametersVisitor;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { BREAK } from '@speclynx/apidom-core';
|
|
3
|
+
import { isReferenceLikeElement } from "../../../predicates.mjs";
|
|
4
|
+
import { isReferenceElement } from "../../../../predicates.mjs";
|
|
5
|
+
import PathItemParametersElement from "../../../../elements/nces/PathItemParameters.mjs";
|
|
6
|
+
import SpecificationVisitor from "../../SpecificationVisitor.mjs";
|
|
7
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
class ParametersVisitor extends Mixin(SpecificationVisitor, FallbackVisitor) {
|
|
15
|
+
constructor(options) {
|
|
16
|
+
super(options);
|
|
17
|
+
this.element = new PathItemParametersElement();
|
|
18
|
+
}
|
|
19
|
+
ArrayElement(arrayElement) {
|
|
20
|
+
arrayElement.forEach(item => {
|
|
21
|
+
const specPath = isReferenceLikeElement(item) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Parameter'];
|
|
22
|
+
const element = this.toRefractedElement(specPath, item);
|
|
23
|
+
if (isReferenceElement(element)) {
|
|
24
|
+
element.setMetaProperty('referenced-element', 'parameter');
|
|
25
|
+
}
|
|
26
|
+
this.element.push(element);
|
|
27
|
+
});
|
|
28
|
+
this.copyMetaAndAttributes(arrayElement, this.element);
|
|
29
|
+
return BREAK;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export default ParametersVisitor;
|
|
@@ -0,0 +1,45 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
9
|
+
var _PathItem = _interopRequireDefault(require("../../../../elements/PathItem.cjs"));
|
|
10
|
+
var _predicates = require("../../../../predicates.cjs");
|
|
11
|
+
var _FixedFieldsVisitor = _interopRequireDefault(require("../../generics/FixedFieldsVisitor.cjs"));
|
|
12
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
class PathItemVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
21
|
+
constructor(options) {
|
|
22
|
+
super(options);
|
|
23
|
+
this.element = new _PathItem.default();
|
|
24
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'PathItem']);
|
|
25
|
+
}
|
|
26
|
+
ObjectElement(objectElement) {
|
|
27
|
+
const result = _FixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
28
|
+
|
|
29
|
+
// decorate Operation elements with HTTP method
|
|
30
|
+
this.element.filter(_predicates.isOperationElement)
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
.forEach((operationElement, httpMethodElementCI) => {
|
|
33
|
+
const httpMethodElementCS = (0, _apidomCore.cloneDeep)(httpMethodElementCI);
|
|
34
|
+
httpMethodElementCS.content = (0, _apidomCore.toValue)(httpMethodElementCS).toUpperCase();
|
|
35
|
+
operationElement.setMetaProperty('http-method', httpMethodElementCS);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// mark this PathItemElement with reference metadata
|
|
39
|
+
if ((0, _apidomCore.isStringElement)(this.element.$ref)) {
|
|
40
|
+
this.element.classes.push('reference-element');
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
var _default = exports.default = PathItemVisitor;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import { isStringElement, cloneDeep, toValue } from '@speclynx/apidom-core';
|
|
4
|
+
import PathItemElement from "../../../../elements/PathItem.mjs";
|
|
5
|
+
import { isOperationElement } from "../../../../predicates.mjs";
|
|
6
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
7
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
class PathItemVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
15
|
+
constructor(options) {
|
|
16
|
+
super(options);
|
|
17
|
+
this.element = new PathItemElement();
|
|
18
|
+
this.specPath = always(['document', 'objects', 'PathItem']);
|
|
19
|
+
}
|
|
20
|
+
ObjectElement(objectElement) {
|
|
21
|
+
const result = FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
22
|
+
|
|
23
|
+
// decorate Operation elements with HTTP method
|
|
24
|
+
this.element.filter(isOperationElement)
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
.forEach((operationElement, httpMethodElementCI) => {
|
|
27
|
+
const httpMethodElementCS = cloneDeep(httpMethodElementCI);
|
|
28
|
+
httpMethodElementCS.content = toValue(httpMethodElementCS).toUpperCase();
|
|
29
|
+
operationElement.setMetaProperty('http-method', httpMethodElementCS);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// mark this PathItemElement with reference metadata
|
|
33
|
+
if (isStringElement(this.element.$ref)) {
|
|
34
|
+
this.element.classes.push('reference-element');
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export default PathItemVisitor;
|
|
@@ -0,0 +1,43 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
9
|
+
var _Paths = _interopRequireDefault(require("../../../../elements/Paths.cjs"));
|
|
10
|
+
var _PatternedFieldsVisitor = _interopRequireDefault(require("../../generics/PatternedFieldsVisitor.cjs"));
|
|
11
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
12
|
+
var _predicates = require("../../../../predicates.cjs");
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
class PathsVisitor extends (0, _tsMixer.Mixin)(_PatternedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
21
|
+
element;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
super(options);
|
|
24
|
+
this.element = new _Paths.default();
|
|
25
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'PathItem']);
|
|
26
|
+
this.canSupportSpecificationExtensions = true;
|
|
27
|
+
this.fieldPatternPredicate = _ramda.T;
|
|
28
|
+
}
|
|
29
|
+
ObjectElement(objectElement) {
|
|
30
|
+
const result = _PatternedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
31
|
+
|
|
32
|
+
// decorate every PathItemElement with path metadata
|
|
33
|
+
this.element.filter(_predicates.isPathItemElement)
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
.forEach((pathItemElement, key) => {
|
|
36
|
+
key.classes.push('openapi-path-template');
|
|
37
|
+
key.classes.push('path-template');
|
|
38
|
+
pathItemElement.setMetaProperty('path', (0, _apidomCore.cloneDeep)(key));
|
|
39
|
+
});
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var _default = exports.default = PathsVisitor;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { T as stubTrue, always } from 'ramda';
|
|
3
|
+
import { cloneDeep } from '@speclynx/apidom-core';
|
|
4
|
+
import PathsElement from "../../../../elements/Paths.mjs";
|
|
5
|
+
import PatternedFieldsVisitor from "../../generics/PatternedFieldsVisitor.mjs";
|
|
6
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
7
|
+
import { isPathItemElement } from "../../../../predicates.mjs";
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
class PathsVisitor extends Mixin(PatternedFieldsVisitor, FallbackVisitor) {
|
|
15
|
+
element;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new PathsElement();
|
|
19
|
+
this.specPath = always(['document', 'objects', 'PathItem']);
|
|
20
|
+
this.canSupportSpecificationExtensions = true;
|
|
21
|
+
this.fieldPatternPredicate = stubTrue;
|
|
22
|
+
}
|
|
23
|
+
ObjectElement(objectElement) {
|
|
24
|
+
const result = PatternedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
25
|
+
|
|
26
|
+
// decorate every PathItemElement with path metadata
|
|
27
|
+
this.element.filter(isPathItemElement)
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
.forEach((pathItemElement, key) => {
|
|
30
|
+
key.classes.push('openapi-path-template');
|
|
31
|
+
key.classes.push('path-template');
|
|
32
|
+
pathItemElement.setMetaProperty('path', cloneDeep(key));
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default PathsVisitor;
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class $RefVisitor extends _FallbackVisitor.default {
|
|
11
|
+
StringElement(stringElement) {
|
|
12
|
+
const result = super.enter(stringElement);
|
|
13
|
+
this.element.classes.push('reference-value');
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
var _default = exports.default = $RefVisitor;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class $RefVisitor extends FallbackVisitor {
|
|
6
|
+
StringElement(stringElement) {
|
|
7
|
+
const result = super.enter(stringElement);
|
|
8
|
+
this.element.classes.push('reference-value');
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export default $RefVisitor;
|
|
@@ -0,0 +1,36 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
9
|
+
var _Reference = _interopRequireDefault(require("../../../../elements/Reference.cjs"));
|
|
10
|
+
var _FixedFieldsVisitor = _interopRequireDefault(require("../../generics/FixedFieldsVisitor.cjs"));
|
|
11
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
class ReferenceVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.element = new _Reference.default();
|
|
23
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'Reference']);
|
|
24
|
+
this.canSupportSpecificationExtensions = false;
|
|
25
|
+
}
|
|
26
|
+
ObjectElement(objectElement) {
|
|
27
|
+
const result = _FixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
28
|
+
|
|
29
|
+
// mark this ReferenceElement with reference metadata
|
|
30
|
+
if ((0, _apidomCore.isStringElement)(this.element.$ref)) {
|
|
31
|
+
this.element.classes.push('reference-element');
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var _default = exports.default = ReferenceVisitor;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import { isStringElement } from '@speclynx/apidom-core';
|
|
4
|
+
import ReferenceElement from "../../../../elements/Reference.mjs";
|
|
5
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
6
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class ReferenceVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.element = new ReferenceElement();
|
|
17
|
+
this.specPath = always(['document', 'objects', 'Reference']);
|
|
18
|
+
this.canSupportSpecificationExtensions = false;
|
|
19
|
+
}
|
|
20
|
+
ObjectElement(objectElement) {
|
|
21
|
+
const result = FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
22
|
+
|
|
23
|
+
// mark this ReferenceElement with reference metadata
|
|
24
|
+
if (isStringElement(this.element.$ref)) {
|
|
25
|
+
this.element.classes.push('reference-element');
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export default ReferenceVisitor;
|
|
@@ -0,0 +1,26 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _Response = _interopRequireDefault(require("../../../../elements/Response.cjs"));
|
|
9
|
+
var _FixedFieldsVisitor = _interopRequireDefault(require("../../generics/FixedFieldsVisitor.cjs"));
|
|
10
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
class ResponseVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super(options);
|
|
21
|
+
this.element = new _Response.default();
|
|
22
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'Response']);
|
|
23
|
+
this.canSupportSpecificationExtensions = true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
var _default = exports.default = ResponseVisitor;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import ResponseElement from "../../../../elements/Response.mjs";
|
|
4
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
5
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class ResponseVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.element = new ResponseElement();
|
|
16
|
+
this.specPath = always(['document', 'objects', 'Response']);
|
|
17
|
+
this.canSupportSpecificationExtensions = true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export default ResponseVisitor;
|
|
@@ -0,0 +1,42 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _predicates = require("../../../predicates.cjs");
|
|
9
|
+
var _predicates2 = require("../../../../predicates.cjs");
|
|
10
|
+
var _AlternatingVisitor = _interopRequireDefault(require("../../generics/AlternatingVisitor.cjs"));
|
|
11
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
class DefaultVisitor extends (0, _tsMixer.Mixin)(_AlternatingVisitor.default, _FallbackVisitor.default) {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.alternator = [{
|
|
23
|
+
predicate: _predicates.isReferenceLikeElement,
|
|
24
|
+
specPath: ['document', 'objects', 'Reference']
|
|
25
|
+
}, {
|
|
26
|
+
predicate: _ramda.T,
|
|
27
|
+
specPath: ['document', 'objects', 'Response']
|
|
28
|
+
}];
|
|
29
|
+
}
|
|
30
|
+
ObjectElement(objectElement) {
|
|
31
|
+
const result = _AlternatingVisitor.default.prototype.enter.call(this, objectElement);
|
|
32
|
+
|
|
33
|
+
// decorate ReferenceElement with type of referencing element
|
|
34
|
+
if ((0, _predicates2.isReferenceElement)(this.element)) {
|
|
35
|
+
this.element.setMetaProperty('referenced-element', 'response');
|
|
36
|
+
} else if ((0, _predicates2.isResponseElement)(this.element)) {
|
|
37
|
+
this.element.setMetaProperty('http-status-code', 'default');
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
var _default = exports.default = DefaultVisitor;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { T as stubTrue } from 'ramda';
|
|
3
|
+
import { isReferenceLikeElement } from "../../../predicates.mjs";
|
|
4
|
+
import { isReferenceElement, isResponseElement } from "../../../../predicates.mjs";
|
|
5
|
+
import AlternatingVisitor from "../../generics/AlternatingVisitor.mjs";
|
|
6
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class DefaultVisitor extends Mixin(AlternatingVisitor, FallbackVisitor) {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.alternator = [{
|
|
17
|
+
predicate: isReferenceLikeElement,
|
|
18
|
+
specPath: ['document', 'objects', 'Reference']
|
|
19
|
+
}, {
|
|
20
|
+
predicate: stubTrue,
|
|
21
|
+
specPath: ['document', 'objects', 'Response']
|
|
22
|
+
}];
|
|
23
|
+
}
|
|
24
|
+
ObjectElement(objectElement) {
|
|
25
|
+
const result = AlternatingVisitor.prototype.enter.call(this, objectElement);
|
|
26
|
+
|
|
27
|
+
// decorate ReferenceElement with type of referencing element
|
|
28
|
+
if (isReferenceElement(this.element)) {
|
|
29
|
+
this.element.setMetaProperty('referenced-element', 'response');
|
|
30
|
+
} else if (isResponseElement(this.element)) {
|
|
31
|
+
this.element.setMetaProperty('http-status-code', 'default');
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export default DefaultVisitor;
|
|
@@ -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 = void 0;
|
|
6
|
+
var _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
9
|
+
var _Responses = _interopRequireDefault(require("../../../../elements/Responses.cjs"));
|
|
10
|
+
var _MixedFieldsVisitor = _interopRequireDefault(require("../../generics/MixedFieldsVisitor.cjs"));
|
|
11
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
12
|
+
var _predicates = require("../../../predicates.cjs");
|
|
13
|
+
var _predicates2 = require("../../../../predicates.cjs");
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
class ResponsesVisitor extends (0, _tsMixer.Mixin)(_MixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
22
|
+
constructor(options) {
|
|
23
|
+
super(options);
|
|
24
|
+
this.element = new _Responses.default();
|
|
25
|
+
this.specPathFixedFields = (0, _ramda.always)(['document', 'objects', 'Responses']);
|
|
26
|
+
this.canSupportSpecificationExtensions = true;
|
|
27
|
+
this.specPathPatternedFields = element => {
|
|
28
|
+
return (0, _predicates.isReferenceLikeElement)(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Response'];
|
|
29
|
+
};
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
this.fieldPatternPredicate = (0, _ramda.test)(new RegExp(`^(1XX|2XX|3XX|4XX|5XX|${(0, _ramda.range)(100, 600).join('|')})$`));
|
|
32
|
+
}
|
|
33
|
+
ObjectElement(objectElement) {
|
|
34
|
+
const result = _MixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
35
|
+
|
|
36
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
this.element.filter(_predicates2.isReferenceElement).forEach(referenceElement => {
|
|
39
|
+
referenceElement.setMetaProperty('referenced-element', 'response');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// decorate every ResponseElement with metadata about their status code
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
this.element.filter(_predicates2.isResponseElement).forEach((value, key) => {
|
|
45
|
+
const httpStatusCode = (0, _apidomCore.cloneDeep)(key);
|
|
46
|
+
if (!this.fieldPatternPredicate((0, _apidomCore.toValue)(httpStatusCode))) return;
|
|
47
|
+
value.setMetaProperty('http-status-code', httpStatusCode);
|
|
48
|
+
});
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
var _default = exports.default = ResponsesVisitor;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { test, always, range } from 'ramda';
|
|
3
|
+
import { cloneDeep, toValue } from '@speclynx/apidom-core';
|
|
4
|
+
import ResponsesElement from "../../../../elements/Responses.mjs";
|
|
5
|
+
import MixedFieldsVisitor from "../../generics/MixedFieldsVisitor.mjs";
|
|
6
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
7
|
+
import { isReferenceLikeElement } from "../../../predicates.mjs";
|
|
8
|
+
import { isReferenceElement, isResponseElement } from "../../../../predicates.mjs";
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class ResponsesVisitor extends Mixin(MixedFieldsVisitor, FallbackVisitor) {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new ResponsesElement();
|
|
19
|
+
this.specPathFixedFields = always(['document', 'objects', 'Responses']);
|
|
20
|
+
this.canSupportSpecificationExtensions = true;
|
|
21
|
+
this.specPathPatternedFields = element => {
|
|
22
|
+
return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Response'];
|
|
23
|
+
};
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
this.fieldPatternPredicate = test(new RegExp(`^(1XX|2XX|3XX|4XX|5XX|${range(100, 600).join('|')})$`));
|
|
26
|
+
}
|
|
27
|
+
ObjectElement(objectElement) {
|
|
28
|
+
const result = MixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
29
|
+
|
|
30
|
+
// decorate every ReferenceElement with metadata about their referencing type
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
this.element.filter(isReferenceElement).forEach(referenceElement => {
|
|
33
|
+
referenceElement.setMetaProperty('referenced-element', 'response');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// decorate every ResponseElement with metadata about their status code
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
this.element.filter(isResponseElement).forEach((value, key) => {
|
|
39
|
+
const httpStatusCode = cloneDeep(key);
|
|
40
|
+
if (!this.fieldPatternPredicate(toValue(httpStatusCode))) return;
|
|
41
|
+
value.setMetaProperty('http-status-code', httpStatusCode);
|
|
42
|
+
});
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export default ResponsesVisitor;
|
|
@@ -0,0 +1,25 @@
|
|
|
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 _tsMixer = require("ts-mixer");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _ResponsesDefinitions = _interopRequireDefault(require("../../../../elements/ResponsesDefinitions.cjs"));
|
|
9
|
+
var _MapVisitor = _interopRequireDefault(require("../../generics/MapVisitor.cjs"));
|
|
10
|
+
var _FallbackVisitor = _interopRequireDefault(require("../../FallbackVisitor.cjs"));
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
class ResponsesDefinitionsVisitor extends (0, _tsMixer.Mixin)(_MapVisitor.default, _FallbackVisitor.default) {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super(options);
|
|
21
|
+
this.element = new _ResponsesDefinitions.default();
|
|
22
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'Response']);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = exports.default = ResponsesDefinitionsVisitor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import ResponsesDefinitionsElement from "../../../../elements/ResponsesDefinitions.mjs";
|
|
4
|
+
import MapVisitor from "../../generics/MapVisitor.mjs";
|
|
5
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class ResponsesDefinitionsVisitor extends Mixin(MapVisitor, FallbackVisitor) {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.element = new ResponsesDefinitionsElement();
|
|
16
|
+
this.specPath = always(['document', 'objects', 'Response']);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default ResponsesDefinitionsVisitor;
|