@swagger-api/apidom-ns-openapi-2 0.79.0
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 +24 -0
- package/LICENSES/Apache-2.0.txt +202 -0
- package/LICENSES/MIT.txt +9 -0
- package/NOTICE +57 -0
- package/README.md +215 -0
- package/cjs/elements/Contact.cjs +30 -0
- package/cjs/elements/Definitions.cjs +12 -0
- package/cjs/elements/Example.cjs +12 -0
- package/cjs/elements/ExternalDocumentation.cjs +24 -0
- package/cjs/elements/Header.cjs +184 -0
- package/cjs/elements/Headers.cjs +12 -0
- package/cjs/elements/Info.cjs +49 -0
- package/cjs/elements/Items.cjs +189 -0
- package/cjs/elements/License.cjs +24 -0
- package/cjs/elements/Operation.cjs +75 -0
- package/cjs/elements/Parameter.cjs +229 -0
- package/cjs/elements/ParametersDefinitions.cjs +12 -0
- package/cjs/elements/PathItem.cjs +66 -0
- package/cjs/elements/Paths.cjs +12 -0
- package/cjs/elements/Reference.cjs +19 -0
- package/cjs/elements/Response.cjs +36 -0
- package/cjs/elements/Responses.cjs +18 -0
- package/cjs/elements/ResponsesDefinitions.cjs +12 -0
- package/cjs/elements/Schema.cjs +115 -0
- package/cjs/elements/Scopes.cjs +12 -0
- package/cjs/elements/SecurityDefinitions.cjs +12 -0
- package/cjs/elements/SecurityRequirement.cjs +12 -0
- package/cjs/elements/SecurityScheme.cjs +60 -0
- package/cjs/elements/Swagger.cjs +103 -0
- package/cjs/elements/SwaggerVersion.cjs +14 -0
- package/cjs/elements/Tag.cjs +30 -0
- package/cjs/elements/Xml.cjs +42 -0
- package/cjs/elements/nces/OperationConsumes.cjs +13 -0
- package/cjs/elements/nces/OperationParameters.cjs +14 -0
- package/cjs/elements/nces/OperationProduces.cjs +13 -0
- package/cjs/elements/nces/OperationSchemes.cjs +13 -0
- package/cjs/elements/nces/OperationSecurity.cjs +14 -0
- package/cjs/elements/nces/OperationTags.cjs +13 -0
- package/cjs/elements/nces/PathItemParameters.cjs +14 -0
- package/cjs/elements/nces/SwaggerConsumes.cjs +13 -0
- package/cjs/elements/nces/SwaggerProduces.cjs +13 -0
- package/cjs/elements/nces/SwaggerSchemes.cjs +13 -0
- package/cjs/elements/nces/SwaggerSecurity.cjs +14 -0
- package/cjs/elements/nces/SwaggerTags.cjs +13 -0
- package/cjs/index.cjs +134 -0
- package/cjs/media-types.cjs +23 -0
- package/cjs/namespace.cjs +68 -0
- package/cjs/predicates.cjs +222 -0
- package/cjs/refractor/index.cjs +47 -0
- package/cjs/refractor/plugins/replace-empty-element.cjs +365 -0
- package/cjs/refractor/predicates.cjs +14 -0
- package/cjs/refractor/registration.cjs +87 -0
- package/cjs/refractor/specification.cjs +488 -0
- package/cjs/refractor/toolbox.cjs +23 -0
- package/cjs/refractor/visitors/FallbackVisitor.cjs +23 -0
- package/cjs/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
- package/cjs/refractor/visitors/SpecificationVisitor.cjs +87 -0
- package/cjs/refractor/visitors/Visitor.cjs +22 -0
- package/cjs/refractor/visitors/generics/AlternatingVisitor.cjs +27 -0
- package/cjs/refractor/visitors/generics/FixedFieldsVisitor.cjs +56 -0
- package/cjs/refractor/visitors/generics/MapVisitor.cjs +14 -0
- package/cjs/refractor/visitors/generics/MixedFieldsVisitor.cjs +42 -0
- package/cjs/refractor/visitors/generics/PatternedFieldsVisitor.cjs +58 -0
- package/cjs/refractor/visitors/open-api-2/ConsumesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/ProducesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/SchemesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/SecurityVisitor.cjs +27 -0
- package/cjs/refractor/visitors/open-api-2/SwaggerVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/TagsVisitor.cjs +27 -0
- package/cjs/refractor/visitors/open-api-2/contact/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/definitions/index.cjs +33 -0
- package/cjs/refractor/visitors/open-api-2/example/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/external-documentation/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/header/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/headers/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/info/VersionVisitor.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/info/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/items/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/license/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +32 -0
- package/cjs/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +27 -0
- package/cjs/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +21 -0
- package/cjs/refractor/visitors/open-api-2/operation/index.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/parameter/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/parameters-definitions/index.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +18 -0
- package/cjs/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +32 -0
- package/cjs/refractor/visitors/open-api-2/path-item/index.cjs +40 -0
- package/cjs/refractor/visitors/open-api-2/paths/index.cjs +35 -0
- package/cjs/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +18 -0
- package/cjs/refractor/visitors/open-api-2/reference/index.cjs +33 -0
- package/cjs/refractor/visitors/open-api-2/response/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +37 -0
- package/cjs/refractor/visitors/open-api-2/responses/index.cjs +46 -0
- package/cjs/refractor/visitors/open-api-2/responses-definitions/index.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +23 -0
- package/cjs/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +31 -0
- package/cjs/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +23 -0
- package/cjs/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +23 -0
- package/cjs/refractor/visitors/open-api-2/schema/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/scopes/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/security-definitions/index.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/security-requirement/index.cjs +19 -0
- package/cjs/refractor/visitors/open-api-2/security-scheme/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/tag/index.cjs +20 -0
- package/cjs/refractor/visitors/open-api-2/xml/index.cjs +20 -0
- package/cjs/traversal/visitor.cjs +53 -0
- package/dist/apidom-ns-openapi-2.browser.js +25296 -0
- package/dist/apidom-ns-openapi-2.browser.min.js +1 -0
- package/es/elements/Contact.mjs +26 -0
- package/es/elements/Definitions.mjs +8 -0
- package/es/elements/Example.mjs +8 -0
- package/es/elements/ExternalDocumentation.mjs +20 -0
- package/es/elements/Header.mjs +182 -0
- package/es/elements/Headers.mjs +8 -0
- package/es/elements/Info.mjs +45 -0
- package/es/elements/Items.mjs +187 -0
- package/es/elements/License.mjs +20 -0
- package/es/elements/Operation.mjs +71 -0
- package/es/elements/Parameter.mjs +226 -0
- package/es/elements/ParametersDefinitions.mjs +8 -0
- package/es/elements/PathItem.mjs +62 -0
- package/es/elements/Paths.mjs +8 -0
- package/es/elements/Reference.mjs +15 -0
- package/es/elements/Response.mjs +32 -0
- package/es/elements/Responses.mjs +14 -0
- package/es/elements/ResponsesDefinitions.mjs +8 -0
- package/es/elements/Schema.mjs +113 -0
- package/es/elements/Scopes.mjs +8 -0
- package/es/elements/SecurityDefinitions.mjs +8 -0
- package/es/elements/SecurityRequirement.mjs +8 -0
- package/es/elements/SecurityScheme.mjs +56 -0
- package/es/elements/Swagger.mjs +99 -0
- package/es/elements/SwaggerVersion.mjs +10 -0
- package/es/elements/Tag.mjs +26 -0
- package/es/elements/Xml.mjs +38 -0
- package/es/elements/nces/OperationConsumes.mjs +9 -0
- package/es/elements/nces/OperationParameters.mjs +10 -0
- package/es/elements/nces/OperationProduces.mjs +9 -0
- package/es/elements/nces/OperationSchemes.mjs +9 -0
- package/es/elements/nces/OperationSecurity.mjs +10 -0
- package/es/elements/nces/OperationTags.mjs +9 -0
- package/es/elements/nces/PathItemParameters.mjs +10 -0
- package/es/elements/nces/SwaggerConsumes.mjs +9 -0
- package/es/elements/nces/SwaggerProduces.mjs +9 -0
- package/es/elements/nces/SwaggerSchemes.mjs +9 -0
- package/es/elements/nces/SwaggerSecurity.mjs +10 -0
- package/es/elements/nces/SwaggerTags.mjs +9 -0
- package/es/index.mjs +31 -0
- package/es/media-types.mjs +18 -0
- package/es/namespace.mjs +63 -0
- package/es/predicates.mjs +217 -0
- package/es/refractor/index.mjs +41 -0
- package/es/refractor/plugins/replace-empty-element.mjs +357 -0
- package/es/refractor/predicates.mjs +8 -0
- package/es/refractor/registration.mjs +56 -0
- package/es/refractor/specification.mjs +482 -0
- package/es/refractor/toolbox.mjs +17 -0
- package/es/refractor/visitors/FallbackVisitor.mjs +18 -0
- package/es/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
- package/es/refractor/visitors/SpecificationVisitor.mjs +82 -0
- package/es/refractor/visitors/Visitor.mjs +17 -0
- package/es/refractor/visitors/generics/AlternatingVisitor.mjs +22 -0
- package/es/refractor/visitors/generics/FixedFieldsVisitor.mjs +51 -0
- package/es/refractor/visitors/generics/MapVisitor.mjs +9 -0
- package/es/refractor/visitors/generics/MixedFieldsVisitor.mjs +37 -0
- package/es/refractor/visitors/generics/PatternedFieldsVisitor.mjs +53 -0
- package/es/refractor/visitors/open-api-2/ConsumesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/ProducesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/SchemesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/SecurityVisitor.mjs +22 -0
- package/es/refractor/visitors/open-api-2/SwaggerVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/TagsVisitor.mjs +22 -0
- package/es/refractor/visitors/open-api-2/contact/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/definitions/index.mjs +28 -0
- package/es/refractor/visitors/open-api-2/example/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/external-documentation/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/header/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/headers/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/info/VersionVisitor.mjs +14 -0
- package/es/refractor/visitors/open-api-2/info/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/items/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/license/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +27 -0
- package/es/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +22 -0
- package/es/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +16 -0
- package/es/refractor/visitors/open-api-2/operation/index.mjs +14 -0
- package/es/refractor/visitors/open-api-2/parameter/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/parameters-definitions/index.mjs +14 -0
- package/es/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +13 -0
- package/es/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +27 -0
- package/es/refractor/visitors/open-api-2/path-item/index.mjs +35 -0
- package/es/refractor/visitors/open-api-2/paths/index.mjs +30 -0
- package/es/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +13 -0
- package/es/refractor/visitors/open-api-2/reference/index.mjs +28 -0
- package/es/refractor/visitors/open-api-2/response/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +32 -0
- package/es/refractor/visitors/open-api-2/responses/index.mjs +41 -0
- package/es/refractor/visitors/open-api-2/responses-definitions/index.mjs +14 -0
- package/es/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +18 -0
- package/es/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +26 -0
- package/es/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +18 -0
- package/es/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +18 -0
- package/es/refractor/visitors/open-api-2/schema/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/scopes/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/security-definitions/index.mjs +14 -0
- package/es/refractor/visitors/open-api-2/security-requirement/index.mjs +14 -0
- package/es/refractor/visitors/open-api-2/security-scheme/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/tag/index.mjs +15 -0
- package/es/refractor/visitors/open-api-2/xml/index.mjs +15 -0
- package/es/traversal/visitor.mjs +50 -0
- package/package.json +64 -0
- package/types/dist.d.ts +1143 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ObjectElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class Tag extends ObjectElement {
|
|
3
|
+
constructor(content, meta, attributes) {
|
|
4
|
+
super(content, meta, attributes);
|
|
5
|
+
this.element = 'tag';
|
|
6
|
+
}
|
|
7
|
+
get name() {
|
|
8
|
+
return this.get('name');
|
|
9
|
+
}
|
|
10
|
+
set name(name) {
|
|
11
|
+
this.set('name', name);
|
|
12
|
+
}
|
|
13
|
+
get description() {
|
|
14
|
+
return this.get('description');
|
|
15
|
+
}
|
|
16
|
+
set description(description) {
|
|
17
|
+
this.set('description', description);
|
|
18
|
+
}
|
|
19
|
+
get externalDocs() {
|
|
20
|
+
return this.get('externalDocs');
|
|
21
|
+
}
|
|
22
|
+
set externalDocs(externalDocs) {
|
|
23
|
+
this.set('externalDocs', externalDocs);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export default Tag;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ObjectElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class Xml extends ObjectElement {
|
|
3
|
+
constructor(content, meta, attributes) {
|
|
4
|
+
super(content, meta, attributes);
|
|
5
|
+
this.element = 'xml';
|
|
6
|
+
}
|
|
7
|
+
get name() {
|
|
8
|
+
return this.get('name');
|
|
9
|
+
}
|
|
10
|
+
set name(name) {
|
|
11
|
+
this.set('name', name);
|
|
12
|
+
}
|
|
13
|
+
get namespace() {
|
|
14
|
+
return this.get('namespace');
|
|
15
|
+
}
|
|
16
|
+
set namespace(namespace) {
|
|
17
|
+
this.set('namespace', namespace);
|
|
18
|
+
}
|
|
19
|
+
get prefix() {
|
|
20
|
+
return this.get('prefix');
|
|
21
|
+
}
|
|
22
|
+
set prefix(prefix) {
|
|
23
|
+
this.set('prefix', prefix);
|
|
24
|
+
}
|
|
25
|
+
get attribute() {
|
|
26
|
+
return this.get('attribute');
|
|
27
|
+
}
|
|
28
|
+
set attribute(attribute) {
|
|
29
|
+
this.set('attribute', attribute);
|
|
30
|
+
}
|
|
31
|
+
get wrapped() {
|
|
32
|
+
return this.get('wrapped');
|
|
33
|
+
}
|
|
34
|
+
set wrapped(wrapped) {
|
|
35
|
+
this.set('wrapped', wrapped);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export default Xml;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationConsumes extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-consumes';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationConsumes.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default OperationConsumes;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationParameters extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-parameters';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationParameters.primaryClass);
|
|
7
|
+
this.classes.push('parameters');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export default OperationParameters;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationProduces extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-produces';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationProduces.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default OperationProduces;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationSchemes extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-schemes';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationSchemes.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default OperationSchemes;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationSecurity extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-security';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationSecurity.primaryClass);
|
|
7
|
+
this.classes.push('security');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export default OperationSecurity;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class OperationTags extends ArrayElement {
|
|
3
|
+
static primaryClass = 'operation-tags';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(OperationTags.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default OperationTags;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class PathItemParameters extends ArrayElement {
|
|
3
|
+
static primaryClass = 'path-item-parameters';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(PathItemParameters.primaryClass);
|
|
7
|
+
this.classes.push('parameters');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export default PathItemParameters;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class SwaggerConsumes extends ArrayElement {
|
|
3
|
+
static primaryClass = 'swagger-consumes';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(SwaggerConsumes.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default SwaggerConsumes;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class SwaggerProduces extends ArrayElement {
|
|
3
|
+
static primaryClass = 'swagger-produces';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(SwaggerProduces.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default SwaggerProduces;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class SwaggerSchemes extends ArrayElement {
|
|
3
|
+
static primaryClass = 'swagger-schemes';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(SwaggerSchemes.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default SwaggerSchemes;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class SwaggerSecurity extends ArrayElement {
|
|
3
|
+
static primaryClass = 'swagger-security';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(SwaggerSecurity.primaryClass);
|
|
7
|
+
this.classes.push('security');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export default SwaggerSecurity;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayElement } from '@swagger-api/apidom-core';
|
|
2
|
+
class SwaggerTags extends ArrayElement {
|
|
3
|
+
static primaryClass = 'swagger-tags';
|
|
4
|
+
constructor(content, meta, attributes) {
|
|
5
|
+
super(content, meta, attributes);
|
|
6
|
+
this.classes.push(SwaggerTags.primaryClass);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default SwaggerTags;
|
package/es/index.mjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export { isRefElement, isLinkElement as isLinkPrimitiveElement, isMemberElement, isObjectElement, isArrayElement, isBooleanElement, isNullElement, isElement, isNumberElement, isStringElement } from '@swagger-api/apidom-core';
|
|
2
|
+
export { isJSONReferenceElement, JSONReferenceElement } from '@swagger-api/apidom-ns-json-schema-draft-4';
|
|
3
|
+
export { default as mediaTypes, OpenAPIMediaTypes } from "./media-types.mjs"; // eslint-disable-next-line no-restricted-exports
|
|
4
|
+
export { default } from "./namespace.mjs";
|
|
5
|
+
export { default as refractorPluginReplaceEmptyElement } from "./refractor/plugins/replace-empty-element.mjs";
|
|
6
|
+
export { default as refract, createRefractor } from "./refractor/index.mjs";
|
|
7
|
+
export { default as specificationObj } from "./refractor/specification.mjs";
|
|
8
|
+
export { isSwaggerElement, isSwaggerVersionElement, isInfoElement, isContactElement, isLicenseElement, isPathsElement, isPathItemElement, isOperationElement, isExternalDocumentationElement, isParameterElement, isItemsElement, isResponsesElement, isResponseElement, isHeadersElement, isExampleElement, isHeaderElement, isTagElement, isReferenceElement, isSchemaElement, isXmlElement, isDefinitionsElement, isParametersDefinitionsElement, isResponsesDefinitionsElement, isSecurityDefinitionsElement, isSecuritySchemeElement, isScopesElement, isSecurityRequirementElement } from "./predicates.mjs";
|
|
9
|
+
export { isReferenceLikeElement, isSwaggerExtension } from "./refractor/predicates.mjs";
|
|
10
|
+
export { default as AlternatingVisitor } from "./refractor/visitors/generics/AlternatingVisitor.mjs";
|
|
11
|
+
export { default as FixedFieldsVisitor } from "./refractor/visitors/generics/FixedFieldsVisitor.mjs";
|
|
12
|
+
export { default as MapVisitor } from "./refractor/visitors/generics/MapVisitor.mjs";
|
|
13
|
+
export { default as MixedFieldsVisitor } from "./refractor/visitors/generics/MixedFieldsVisitor.mjs";
|
|
14
|
+
export { default as PatternedFieldsVisitor } from "./refractor/visitors/generics/PatternedFieldsVisitor.mjs";
|
|
15
|
+
export { default as FallbackVisitor } from "./refractor/visitors/FallbackVisitor.mjs";
|
|
16
|
+
export { default as SpecificationVisitor } from "./refractor/visitors/SpecificationVisitor.mjs";
|
|
17
|
+
export { default as Visitor } from "./refractor/visitors/Visitor.mjs";
|
|
18
|
+
export { keyMap, getNodeType } from "./traversal/visitor.mjs"; // OpenAPI 2.0 elements
|
|
19
|
+
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 } from "./refractor/registration.mjs"; // NCE types
|
|
20
|
+
export { default as OperationConsumesElement } from "./elements/nces/OperationConsumes.mjs";
|
|
21
|
+
export { default as OperationParametersElement } from "./elements/nces/OperationParameters.mjs";
|
|
22
|
+
export { default as OperationProducesElement } from "./elements/nces/OperationProduces.mjs";
|
|
23
|
+
export { default as OperationSchemesElement } from "./elements/nces/OperationSchemes.mjs";
|
|
24
|
+
export { default as OperationSecurityElement } from "./elements/nces/OperationSecurity.mjs";
|
|
25
|
+
export { default as OperationTagsElement } from "./elements/nces/OperationTags.mjs";
|
|
26
|
+
export { default as PathItemParametersElement } from "./elements/nces/PathItemParameters.mjs";
|
|
27
|
+
export { default as SwaggerSchemesElement } from "./elements/nces/SwaggerSchemes.mjs";
|
|
28
|
+
export { default as SwaggerConsumesElement } from "./elements/nces/SwaggerConsumes.mjs";
|
|
29
|
+
export { default as SwaggerProducesElement } from "./elements/nces/SwaggerProduces.mjs";
|
|
30
|
+
export { default as SwaggerSecurityElement } from "./elements/nces/SwaggerSecurity.mjs";
|
|
31
|
+
export { default as SwaggerTagsElement } from "./elements/nces/SwaggerTags.mjs";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { last } from 'ramda';
|
|
2
|
+
import { MediaTypes } from '@swagger-api/apidom-core';
|
|
3
|
+
export class OpenAPIMediaTypes extends MediaTypes {
|
|
4
|
+
filterByFormat(format = 'generic') {
|
|
5
|
+
const effectiveFormat = format === 'generic' ? 'openapi;version' : format;
|
|
6
|
+
return this.filter(mediaType => mediaType.includes(effectiveFormat));
|
|
7
|
+
}
|
|
8
|
+
findBy(version = '2.0', format = 'generic') {
|
|
9
|
+
const search = format === 'generic' ? `vnd.oai.openapi;version=${version}` : `vnd.oai.openapi+${format};version=${version}`;
|
|
10
|
+
const found = this.find(mediaType => mediaType.includes(search));
|
|
11
|
+
return found || this.unknownMediaType;
|
|
12
|
+
}
|
|
13
|
+
latest(format = 'generic') {
|
|
14
|
+
return last(this.filterByFormat(format));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const mediaTypes = new OpenAPIMediaTypes('application/vnd.oai.openapi;version=2.0', 'application/vnd.oai.openapi+json;version=2.0', 'application/vnd.oai.openapi+yaml;version=2.0');
|
|
18
|
+
export default mediaTypes;
|
package/es/namespace.mjs
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import SwaggerElement from "./elements/Swagger.mjs";
|
|
2
|
+
import SwaggerVersionElement from "./elements/SwaggerVersion.mjs";
|
|
3
|
+
import InfoElement from "./elements/Info.mjs";
|
|
4
|
+
import ContactElement from "./elements/Contact.mjs";
|
|
5
|
+
import LicenseElement from "./elements/License.mjs";
|
|
6
|
+
import PathsElement from "./elements/Paths.mjs";
|
|
7
|
+
import PathItemElement from "./elements/PathItem.mjs";
|
|
8
|
+
import OperationElement from "./elements/Operation.mjs";
|
|
9
|
+
import ExternalDocumentation from "./elements/ExternalDocumentation.mjs";
|
|
10
|
+
import ParameterElement from "./elements/Parameter.mjs";
|
|
11
|
+
import ItemsElement from "./elements/Items.mjs";
|
|
12
|
+
import ExampleElement from "./elements/Example.mjs";
|
|
13
|
+
import ResponsesElement from "./elements/Responses.mjs";
|
|
14
|
+
import ResponseElement from "./elements/Response.mjs";
|
|
15
|
+
import HeadersElement from "./elements/Headers.mjs";
|
|
16
|
+
import HeaderElement from "./elements/Header.mjs";
|
|
17
|
+
import TagElement from "./elements/Tag.mjs";
|
|
18
|
+
import SchemaElement from "./elements/Schema.mjs";
|
|
19
|
+
import XmlElement from "./elements/Xml.mjs";
|
|
20
|
+
import ReferenceElement from "./elements/Reference.mjs";
|
|
21
|
+
import DefinitionsElement from "./elements/Definitions.mjs";
|
|
22
|
+
import ParametersDefinitionsElement from "./elements/ParametersDefinitions.mjs";
|
|
23
|
+
import ResponsesDefinitionsElement from "./elements/ResponsesDefinitions.mjs";
|
|
24
|
+
import SecurityDefinitionsElement from "./elements/SecurityDefinitions.mjs";
|
|
25
|
+
import SecuritySchemeElement from "./elements/SecurityScheme.mjs";
|
|
26
|
+
import ScopesElement from "./elements/Scopes.mjs";
|
|
27
|
+
import SecurityRequirementElement from "./elements/SecurityRequirement.mjs";
|
|
28
|
+
const openApi2 = {
|
|
29
|
+
namespace: options => {
|
|
30
|
+
const {
|
|
31
|
+
base
|
|
32
|
+
} = options;
|
|
33
|
+
base.register('swagger', SwaggerElement);
|
|
34
|
+
base.register('swaggerVersion', SwaggerVersionElement);
|
|
35
|
+
base.register('info', InfoElement);
|
|
36
|
+
base.register('contact', ContactElement);
|
|
37
|
+
base.register('license', LicenseElement);
|
|
38
|
+
base.register('paths', PathsElement);
|
|
39
|
+
base.register('pathItem', PathItemElement);
|
|
40
|
+
base.register('operation', OperationElement);
|
|
41
|
+
base.register('externalDocumentation', ExternalDocumentation);
|
|
42
|
+
base.register('parameter', ParameterElement);
|
|
43
|
+
base.register('items', ItemsElement);
|
|
44
|
+
base.register('responses', ResponsesElement);
|
|
45
|
+
base.register('response', ResponseElement);
|
|
46
|
+
base.register('headers', HeadersElement);
|
|
47
|
+
base.register('example', ExampleElement);
|
|
48
|
+
base.register('header', HeaderElement);
|
|
49
|
+
base.register('tag', TagElement);
|
|
50
|
+
base.register('reference', ReferenceElement);
|
|
51
|
+
base.register('schema', SchemaElement);
|
|
52
|
+
base.register('xml', XmlElement);
|
|
53
|
+
base.register('definitions', DefinitionsElement);
|
|
54
|
+
base.register('parametersDefinitions', ParametersDefinitionsElement);
|
|
55
|
+
base.register('responsesDefinitions', ResponsesDefinitionsElement);
|
|
56
|
+
base.register('securityDefinitions', SecurityDefinitionsElement);
|
|
57
|
+
base.register('securityScheme', SecuritySchemeElement);
|
|
58
|
+
base.register('scopes', ScopesElement);
|
|
59
|
+
base.register('securityRequirement', SecurityRequirementElement);
|
|
60
|
+
return base;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
export default openApi2;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { createPredicate } from '@swagger-api/apidom-core';
|
|
2
|
+
import SwaggerElement from "./elements/Swagger.mjs";
|
|
3
|
+
import SwaggerVersionElement from "./elements/SwaggerVersion.mjs";
|
|
4
|
+
import InfoElement from "./elements/Info.mjs";
|
|
5
|
+
import ContactElement from "./elements/Contact.mjs";
|
|
6
|
+
import LicenseElement from "./elements/License.mjs";
|
|
7
|
+
import PathsElement from "./elements/Paths.mjs";
|
|
8
|
+
import PathItemElement from "./elements/PathItem.mjs";
|
|
9
|
+
import OperationElement from "./elements/Operation.mjs";
|
|
10
|
+
import ExternalDocumentationElement from "./elements/ExternalDocumentation.mjs";
|
|
11
|
+
import ParameterElement from "./elements/Parameter.mjs";
|
|
12
|
+
import ItemsElement from "./elements/Items.mjs";
|
|
13
|
+
import ExampleElement from "./elements/Example.mjs";
|
|
14
|
+
import ResponsesElement from "./elements/Responses.mjs";
|
|
15
|
+
import ResponseElement from "./elements/Response.mjs";
|
|
16
|
+
import HeadersElement from "./elements/Headers.mjs";
|
|
17
|
+
import HeaderElement from "./elements/Header.mjs";
|
|
18
|
+
import TagElement from "./elements/Tag.mjs";
|
|
19
|
+
import ReferenceElement from "./elements/Reference.mjs";
|
|
20
|
+
import SchemaElement from "./elements/Schema.mjs";
|
|
21
|
+
import XmlElement from "./elements/Xml.mjs";
|
|
22
|
+
import DefinitionsElement from "./elements/Definitions.mjs";
|
|
23
|
+
import ParametersDefinitionsElement from "./elements/ParametersDefinitions.mjs";
|
|
24
|
+
import ResponsesDefinitionsElement from "./elements/ResponsesDefinitions.mjs";
|
|
25
|
+
import SecurityDefinitionsElement from "./elements/SecurityDefinitions.mjs";
|
|
26
|
+
import SecuritySchemeElement from "./elements/SecurityScheme.mjs";
|
|
27
|
+
import SecurityRequirementElement from "./elements/SecurityRequirement.mjs";
|
|
28
|
+
import ScopesElement from "./elements/Scopes.mjs";
|
|
29
|
+
export const isSwaggerElement = createPredicate(({
|
|
30
|
+
hasBasicElementProps,
|
|
31
|
+
isElementType,
|
|
32
|
+
primitiveEq
|
|
33
|
+
}) => {
|
|
34
|
+
return element => element instanceof SwaggerElement || hasBasicElementProps(element) && isElementType('swagger', element) && primitiveEq('object', element);
|
|
35
|
+
});
|
|
36
|
+
export const isSwaggerVersionElement = createPredicate(({
|
|
37
|
+
hasBasicElementProps,
|
|
38
|
+
isElementType,
|
|
39
|
+
primitiveEq
|
|
40
|
+
}) => {
|
|
41
|
+
return element => element instanceof SwaggerVersionElement || hasBasicElementProps(element) && isElementType('swaggerVersion', element) && primitiveEq('string', element);
|
|
42
|
+
});
|
|
43
|
+
export const isInfoElement = createPredicate(({
|
|
44
|
+
hasBasicElementProps,
|
|
45
|
+
isElementType,
|
|
46
|
+
primitiveEq
|
|
47
|
+
}) => {
|
|
48
|
+
return element => element instanceof InfoElement || hasBasicElementProps(element) && isElementType('info', element) && primitiveEq('object', element);
|
|
49
|
+
});
|
|
50
|
+
export const isLicenseElement = createPredicate(({
|
|
51
|
+
hasBasicElementProps,
|
|
52
|
+
isElementType,
|
|
53
|
+
primitiveEq
|
|
54
|
+
}) => {
|
|
55
|
+
return element => element instanceof LicenseElement || hasBasicElementProps(element) && isElementType('license', element) && primitiveEq('object', element);
|
|
56
|
+
});
|
|
57
|
+
export const isContactElement = createPredicate(({
|
|
58
|
+
hasBasicElementProps,
|
|
59
|
+
isElementType,
|
|
60
|
+
primitiveEq
|
|
61
|
+
}) => {
|
|
62
|
+
return element => element instanceof ContactElement || hasBasicElementProps(element) && isElementType('contact', element) && primitiveEq('object', element);
|
|
63
|
+
});
|
|
64
|
+
export const isPathsElement = createPredicate(({
|
|
65
|
+
hasBasicElementProps,
|
|
66
|
+
isElementType,
|
|
67
|
+
primitiveEq
|
|
68
|
+
}) => {
|
|
69
|
+
return element => element instanceof PathsElement || hasBasicElementProps(element) && isElementType('paths', element) && primitiveEq('object', element);
|
|
70
|
+
});
|
|
71
|
+
export const isPathItemElement = createPredicate(({
|
|
72
|
+
hasBasicElementProps,
|
|
73
|
+
isElementType,
|
|
74
|
+
primitiveEq
|
|
75
|
+
}) => {
|
|
76
|
+
return element => element instanceof PathItemElement || hasBasicElementProps(element) && isElementType('pathItem', element) && primitiveEq('object', element);
|
|
77
|
+
});
|
|
78
|
+
export const isOperationElement = createPredicate(({
|
|
79
|
+
hasBasicElementProps,
|
|
80
|
+
isElementType,
|
|
81
|
+
primitiveEq
|
|
82
|
+
}) => {
|
|
83
|
+
return element => element instanceof OperationElement || hasBasicElementProps(element) && isElementType('operation', element) && primitiveEq('object', element);
|
|
84
|
+
});
|
|
85
|
+
export const isExternalDocumentationElement = createPredicate(({
|
|
86
|
+
hasBasicElementProps,
|
|
87
|
+
isElementType,
|
|
88
|
+
primitiveEq
|
|
89
|
+
}) => {
|
|
90
|
+
return element => element instanceof ExternalDocumentationElement || hasBasicElementProps(element) && isElementType('externalDocumentation', element) && primitiveEq('object', element);
|
|
91
|
+
});
|
|
92
|
+
export const isParameterElement = createPredicate(({
|
|
93
|
+
hasBasicElementProps,
|
|
94
|
+
isElementType,
|
|
95
|
+
primitiveEq
|
|
96
|
+
}) => {
|
|
97
|
+
return element => element instanceof ParameterElement || hasBasicElementProps(element) && isElementType('parameter', element) && primitiveEq('object', element);
|
|
98
|
+
});
|
|
99
|
+
export const isItemsElement = createPredicate(({
|
|
100
|
+
hasBasicElementProps,
|
|
101
|
+
isElementType,
|
|
102
|
+
primitiveEq
|
|
103
|
+
}) => {
|
|
104
|
+
return element => element instanceof ItemsElement || hasBasicElementProps(element) && isElementType('items', element) && primitiveEq('object', element);
|
|
105
|
+
});
|
|
106
|
+
export const isResponsesElement = createPredicate(({
|
|
107
|
+
hasBasicElementProps,
|
|
108
|
+
isElementType,
|
|
109
|
+
primitiveEq
|
|
110
|
+
}) => {
|
|
111
|
+
return element => element instanceof ResponsesElement || hasBasicElementProps(element) && isElementType('responses', element) && primitiveEq('object', element);
|
|
112
|
+
});
|
|
113
|
+
export const isResponseElement = createPredicate(({
|
|
114
|
+
hasBasicElementProps,
|
|
115
|
+
isElementType,
|
|
116
|
+
primitiveEq
|
|
117
|
+
}) => {
|
|
118
|
+
return element => element instanceof ResponseElement || hasBasicElementProps(element) && isElementType('response', element) && primitiveEq('object', element);
|
|
119
|
+
});
|
|
120
|
+
export const isHeadersElement = createPredicate(({
|
|
121
|
+
hasBasicElementProps,
|
|
122
|
+
isElementType,
|
|
123
|
+
primitiveEq
|
|
124
|
+
}) => {
|
|
125
|
+
return element => element instanceof HeadersElement || hasBasicElementProps(element) && isElementType('headers', element) && primitiveEq('object', element);
|
|
126
|
+
});
|
|
127
|
+
export const isExampleElement = createPredicate(({
|
|
128
|
+
hasBasicElementProps,
|
|
129
|
+
isElementType,
|
|
130
|
+
primitiveEq
|
|
131
|
+
}) => {
|
|
132
|
+
return element => element instanceof ExampleElement || hasBasicElementProps(element) && isElementType('example', element) && primitiveEq('object', element);
|
|
133
|
+
});
|
|
134
|
+
export const isHeaderElement = createPredicate(({
|
|
135
|
+
hasBasicElementProps,
|
|
136
|
+
isElementType,
|
|
137
|
+
primitiveEq
|
|
138
|
+
}) => {
|
|
139
|
+
return element => element instanceof HeaderElement || hasBasicElementProps(element) && isElementType('header', element) && primitiveEq('object', element);
|
|
140
|
+
});
|
|
141
|
+
export const isTagElement = createPredicate(({
|
|
142
|
+
hasBasicElementProps,
|
|
143
|
+
isElementType,
|
|
144
|
+
primitiveEq
|
|
145
|
+
}) => {
|
|
146
|
+
return element => element instanceof TagElement || hasBasicElementProps(element) && isElementType('tag', element) && primitiveEq('object', element);
|
|
147
|
+
});
|
|
148
|
+
export const isReferenceElement = createPredicate(({
|
|
149
|
+
hasBasicElementProps,
|
|
150
|
+
isElementType,
|
|
151
|
+
primitiveEq
|
|
152
|
+
}) => {
|
|
153
|
+
return element => element instanceof ReferenceElement || hasBasicElementProps(element) && isElementType('reference', element) && primitiveEq('object', element);
|
|
154
|
+
});
|
|
155
|
+
export const isSchemaElement = createPredicate(({
|
|
156
|
+
hasBasicElementProps,
|
|
157
|
+
isElementType,
|
|
158
|
+
primitiveEq
|
|
159
|
+
}) => {
|
|
160
|
+
return element => element instanceof SchemaElement || hasBasicElementProps(element) && isElementType('schema', element) && primitiveEq('object', element);
|
|
161
|
+
});
|
|
162
|
+
export const isXmlElement = createPredicate(({
|
|
163
|
+
hasBasicElementProps,
|
|
164
|
+
isElementType,
|
|
165
|
+
primitiveEq
|
|
166
|
+
}) => {
|
|
167
|
+
return element => element instanceof XmlElement || hasBasicElementProps(element) && isElementType('xml', element) && primitiveEq('object', element);
|
|
168
|
+
});
|
|
169
|
+
export const isResponsesDefinitionsElement = createPredicate(({
|
|
170
|
+
hasBasicElementProps,
|
|
171
|
+
isElementType,
|
|
172
|
+
primitiveEq
|
|
173
|
+
}) => {
|
|
174
|
+
return element => element instanceof ResponsesDefinitionsElement || hasBasicElementProps(element) && isElementType('responsesDefinitions', element) && primitiveEq('object', element);
|
|
175
|
+
});
|
|
176
|
+
export const isSecurityDefinitionsElement = createPredicate(({
|
|
177
|
+
hasBasicElementProps,
|
|
178
|
+
isElementType,
|
|
179
|
+
primitiveEq
|
|
180
|
+
}) => {
|
|
181
|
+
return element => element instanceof SecurityDefinitionsElement || hasBasicElementProps(element) && isElementType('securityDefinitions', element) && primitiveEq('object', element);
|
|
182
|
+
});
|
|
183
|
+
export const isDefinitionsElement = createPredicate(({
|
|
184
|
+
hasBasicElementProps,
|
|
185
|
+
isElementType,
|
|
186
|
+
primitiveEq
|
|
187
|
+
}) => {
|
|
188
|
+
return element => element instanceof DefinitionsElement || hasBasicElementProps(element) && isElementType('definitions', element) && primitiveEq('object', element);
|
|
189
|
+
});
|
|
190
|
+
export const isParametersDefinitionsElement = createPredicate(({
|
|
191
|
+
hasBasicElementProps,
|
|
192
|
+
isElementType,
|
|
193
|
+
primitiveEq
|
|
194
|
+
}) => {
|
|
195
|
+
return element => element instanceof ParametersDefinitionsElement || hasBasicElementProps(element) && isElementType('parametersDefinitions', element) && primitiveEq('object', element);
|
|
196
|
+
});
|
|
197
|
+
export const isSecuritySchemeElement = createPredicate(({
|
|
198
|
+
hasBasicElementProps,
|
|
199
|
+
isElementType,
|
|
200
|
+
primitiveEq
|
|
201
|
+
}) => {
|
|
202
|
+
return element => element instanceof SecuritySchemeElement || hasBasicElementProps(element) && isElementType('securityScheme', element) && primitiveEq('object', element);
|
|
203
|
+
});
|
|
204
|
+
export const isScopesElement = createPredicate(({
|
|
205
|
+
hasBasicElementProps,
|
|
206
|
+
isElementType,
|
|
207
|
+
primitiveEq
|
|
208
|
+
}) => {
|
|
209
|
+
return element => element instanceof ScopesElement || hasBasicElementProps(element) && isElementType('scopes', element) && primitiveEq('object', element);
|
|
210
|
+
});
|
|
211
|
+
export const isSecurityRequirementElement = createPredicate(({
|
|
212
|
+
hasBasicElementProps,
|
|
213
|
+
isElementType,
|
|
214
|
+
primitiveEq
|
|
215
|
+
}) => {
|
|
216
|
+
return element => element instanceof SecurityRequirementElement || hasBasicElementProps(element) && isElementType('securityRequirement', element) && primitiveEq('object', element);
|
|
217
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { invokeArgs } from 'ramda-adjunct';
|
|
2
|
+
import { visit, dereference, refract as baseRefract, dispatchRefractorPlugins } from '@swagger-api/apidom-core';
|
|
3
|
+
import specification from "./specification.mjs";
|
|
4
|
+
import { keyMap, getNodeType } from "../traversal/visitor.mjs";
|
|
5
|
+
import createToolbox from "./toolbox.mjs";
|
|
6
|
+
const refract = (value, {
|
|
7
|
+
specPath = ['visitors', 'document', 'objects', 'Swagger', '$visitor'],
|
|
8
|
+
plugins = []
|
|
9
|
+
} = {}) => {
|
|
10
|
+
const element = baseRefract(value);
|
|
11
|
+
const resolvedSpec = dereference(specification);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
15
|
+
* We don't allow consumers to hook into this translation.
|
|
16
|
+
* Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
|
17
|
+
*/
|
|
18
|
+
const rootVisitor = invokeArgs(specPath, [], resolvedSpec);
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
visit(element, rootVisitor, {
|
|
21
|
+
state: {
|
|
22
|
+
specObj: resolvedSpec
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
28
|
+
*/
|
|
29
|
+
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
30
|
+
toolboxCreator: createToolbox,
|
|
31
|
+
visitorOptions: {
|
|
32
|
+
keyMap,
|
|
33
|
+
nodeTypeGetter: getNodeType
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
export const createRefractor = specPath => (value, options = {}) => refract(value, {
|
|
38
|
+
specPath,
|
|
39
|
+
...options
|
|
40
|
+
});
|
|
41
|
+
export default refract;
|