@speclynx/apidom-ns-openapi-3-1 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 +87 -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 +472 -0
- package/dist/apidom-ns-openapi-3-1.browser.js +36144 -0
- package/dist/apidom-ns-openapi-3-1.browser.min.js +1 -0
- package/package.json +70 -0
- package/src/elements/Callback.cjs +10 -0
- package/src/elements/Callback.mjs +7 -0
- package/src/elements/Components.cjs +17 -0
- package/src/elements/Components.mjs +14 -0
- package/src/elements/Contact.cjs +10 -0
- package/src/elements/Contact.mjs +7 -0
- package/src/elements/Discriminator.cjs +10 -0
- package/src/elements/Discriminator.mjs +7 -0
- package/src/elements/Encoding.cjs +10 -0
- package/src/elements/Encoding.mjs +7 -0
- package/src/elements/Example.cjs +10 -0
- package/src/elements/Example.mjs +7 -0
- package/src/elements/ExternalDocumentation.cjs +10 -0
- package/src/elements/ExternalDocumentation.mjs +7 -0
- package/src/elements/Header.cjs +17 -0
- package/src/elements/Header.mjs +13 -0
- package/src/elements/Info.cjs +23 -0
- package/src/elements/Info.mjs +19 -0
- package/src/elements/JsonSchemaDialect.cjs +16 -0
- package/src/elements/JsonSchemaDialect.mjs +13 -0
- package/src/elements/License.cjs +17 -0
- package/src/elements/License.mjs +14 -0
- package/src/elements/Link.cjs +10 -0
- package/src/elements/Link.mjs +7 -0
- package/src/elements/MediaType.cjs +17 -0
- package/src/elements/MediaType.mjs +13 -0
- package/src/elements/OAuthFlow.cjs +10 -0
- package/src/elements/OAuthFlow.mjs +7 -0
- package/src/elements/OAuthFlows.cjs +10 -0
- package/src/elements/OAuthFlows.mjs +7 -0
- package/src/elements/OpenApi3-1.cjs +77 -0
- package/src/elements/OpenApi3-1.mjs +73 -0
- package/src/elements/Openapi.cjs +10 -0
- package/src/elements/Openapi.mjs +7 -0
- package/src/elements/Operation.cjs +17 -0
- package/src/elements/Operation.mjs +13 -0
- package/src/elements/Parameter.cjs +17 -0
- package/src/elements/Parameter.mjs +13 -0
- package/src/elements/PathItem.cjs +59 -0
- package/src/elements/PathItem.mjs +55 -0
- package/src/elements/Paths.cjs +10 -0
- package/src/elements/Paths.mjs +7 -0
- package/src/elements/Reference.cjs +28 -0
- package/src/elements/Reference.mjs +25 -0
- package/src/elements/RequestBody.cjs +10 -0
- package/src/elements/RequestBody.mjs +7 -0
- package/src/elements/Response.cjs +10 -0
- package/src/elements/Response.mjs +7 -0
- package/src/elements/Responses.cjs +10 -0
- package/src/elements/Responses.mjs +7 -0
- package/src/elements/Schema.cjs +50 -0
- package/src/elements/Schema.mjs +46 -0
- package/src/elements/SecurityRequirement.cjs +10 -0
- package/src/elements/SecurityRequirement.mjs +7 -0
- package/src/elements/SecurityScheme.cjs +10 -0
- package/src/elements/SecurityScheme.mjs +7 -0
- package/src/elements/Server.cjs +10 -0
- package/src/elements/Server.mjs +7 -0
- package/src/elements/ServerVariable.cjs +10 -0
- package/src/elements/ServerVariable.mjs +7 -0
- package/src/elements/Tag.cjs +10 -0
- package/src/elements/Tag.mjs +7 -0
- package/src/elements/Xml.cjs +10 -0
- package/src/elements/Xml.mjs +7 -0
- package/src/elements/nces/ComponentsPathItems.cjs +16 -0
- package/src/elements/nces/ComponentsPathItems.mjs +13 -0
- package/src/elements/nces/Webhooks.cjs +16 -0
- package/src/elements/nces/Webhooks.mjs +13 -0
- package/src/index.cjs +158 -0
- package/src/index.mjs +28 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/namespace.cjs +82 -0
- package/src/namespace.mjs +76 -0
- package/src/predicates.cjs +365 -0
- package/src/predicates.mjs +357 -0
- package/src/refractor/index.cjs +45 -0
- package/src/refractor/index.mjs +39 -0
- package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.cjs +38 -0
- package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.mjs +34 -0
- package/src/refractor/plugins/normalize-header-examples/index.cjs +105 -0
- package/src/refractor/plugins/normalize-header-examples/index.mjs +99 -0
- package/src/refractor/plugins/normalize-operation-ids.cjs +159 -0
- package/src/refractor/plugins/normalize-operation-ids.mjs +154 -0
- package/src/refractor/plugins/normalize-parameter-examples.cjs +105 -0
- package/src/refractor/plugins/normalize-parameter-examples.mjs +99 -0
- package/src/refractor/plugins/normalize-parameters.cjs +103 -0
- package/src/refractor/plugins/normalize-parameters.mjs +97 -0
- package/src/refractor/plugins/normalize-security-requirements.cjs +71 -0
- package/src/refractor/plugins/normalize-security-requirements.mjs +65 -0
- package/src/refractor/plugins/normalize-servers.cjs +118 -0
- package/src/refractor/plugins/normalize-servers.mjs +112 -0
- package/src/refractor/plugins/replace-empty-element.cjs +665 -0
- package/src/refractor/plugins/replace-empty-element.mjs +658 -0
- package/src/refractor/registration.cjs +102 -0
- package/src/refractor/registration.mjs +66 -0
- package/src/refractor/specification.cjs +492 -0
- package/src/refractor/specification.mjs +487 -0
- package/src/refractor/toolbox.cjs +70 -0
- package/src/refractor/toolbox.mjs +60 -0
- package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.cjs +44 -0
- package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.mjs +38 -0
- package/src/refractor/visitors/open-api-3-1/callback/index.cjs +37 -0
- package/src/refractor/visitors/open-api-3-1/callback/index.mjs +32 -0
- package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.cjs +34 -0
- package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-1/components/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/components/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/contact/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/contact/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/distriminator/index.cjs +22 -0
- package/src/refractor/visitors/open-api-3-1/distriminator/index.mjs +17 -0
- package/src/refractor/visitors/open-api-3-1/encoding/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/encoding/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/example/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/example/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/external-documentation/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/external-documentation/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/header/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/header/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/index.cjs +31 -0
- package/src/refractor/visitors/open-api-3-1/index.mjs +25 -0
- package/src/refractor/visitors/open-api-3-1/info/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/info/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/license/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/license/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/link/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/link/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/media-type/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/media-type/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flow/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flow/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flows/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/oauth-flows/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/operation/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/operation/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/parameter/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/parameter/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/path-item/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/path-item/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/paths/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/paths/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/reference/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/reference/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/request-body/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/request-body/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/response/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/response/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/responses/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/responses/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/schema/$defsVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-1/schema/$defsVisitor.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/schema/AllOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/AllOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/AnyOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/AnyOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/DependentSchemasVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/DependentSchemasVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/OneOfVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/OneOfVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PatternPropertiesVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PatternPropertiesVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PrefixItemsVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PrefixItemsVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/PropertiesVisitor.cjs +15 -0
- package/src/refractor/visitors/open-api-3-1/schema/PropertiesVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.cjs +75 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.mjs +69 -0
- package/src/refractor/visitors/open-api-3-1/security-requirement/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/security-requirement/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/security-scheme/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/security-scheme/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/server/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/server/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/server-variable/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/server-variable/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/tag/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/tag/index.mjs +16 -0
- package/src/refractor/visitors/open-api-3-1/xml/index.cjs +21 -0
- package/src/refractor/visitors/open-api-3-1/xml/index.mjs +16 -0
- package/src/traversal/visitor.cjs +57 -0
- package/src/traversal/visitor.mjs +54 -0
- package/types/apidom-ns-openapi-3-1.d.ts +2745 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2020-12");
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
class PatternPropertiesVisitor extends _apidomNsJsonSchema.PatternPropertiesVisitor {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super(options);
|
|
12
|
+
this.passingOptionsNames.push('parent');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
var _default = exports.default = PatternPropertiesVisitor;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PatternPropertiesVisitor as PatternPropertiesJSONSchema202012Visitor } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class PatternPropertiesVisitor extends PatternPropertiesJSONSchema202012Visitor {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.passingOptionsNames.push('parent');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export default PatternPropertiesVisitor;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2020-12");
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
class PrefixItemsVisitor extends _apidomNsJsonSchema.PrefixItemsVisitor {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super(options);
|
|
12
|
+
this.passingOptionsNames.push('parent');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
var _default = exports.default = PrefixItemsVisitor;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PrefixItemsVisitor as PrefixItemsJSONSchema202012Visitor } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class PrefixItemsVisitor extends PrefixItemsJSONSchema202012Visitor {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.passingOptionsNames.push('parent');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export default PrefixItemsVisitor;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2020-12");
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
class PropertiesVisitor extends _apidomNsJsonSchema.PropertiesVisitor {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super(options);
|
|
12
|
+
this.passingOptionsNames.push('parent');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
var _default = exports.default = PropertiesVisitor;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PropertiesVisitor as PropertiesJSONSchema202012Visitor } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class PropertiesVisitor extends PropertiesJSONSchema202012Visitor {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.passingOptionsNames.push('parent');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export default PropertiesVisitor;
|
|
@@ -0,0 +1,75 @@
|
|
|
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 _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
10
|
+
var _apidomNsJsonSchema = require("@speclynx/apidom-ns-json-schema-2020-12");
|
|
11
|
+
var _predicates = require("../../../../predicates.cjs");
|
|
12
|
+
var _Schema = _interopRequireDefault(require("../../../../elements/Schema.cjs"));
|
|
13
|
+
var _JsonSchemaDialect = _interopRequireDefault(require("../../../../elements/JsonSchemaDialect.cjs"));
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
class SchemaVisitor extends (0, _tsMixer.Mixin)(_apidomNsOpenapi.FixedFieldsVisitor, _apidomNsJsonSchema.ParentSchemaAwareVisitor, _apidomNsOpenapi.FallbackVisitor) {
|
|
22
|
+
constructor(options) {
|
|
23
|
+
super(options);
|
|
24
|
+
this.element = new _Schema.default();
|
|
25
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'Schema']);
|
|
26
|
+
this.canSupportSpecificationExtensions = true;
|
|
27
|
+
this.jsonSchemaDefaultDialect = _JsonSchemaDialect.default.default;
|
|
28
|
+
this.passingOptionsNames.push('parent');
|
|
29
|
+
}
|
|
30
|
+
ObjectElement(objectElement) {
|
|
31
|
+
this.handleDialectIdentifier(objectElement);
|
|
32
|
+
this.handleSchemaIdentifier(objectElement);
|
|
33
|
+
|
|
34
|
+
// for further processing consider this Schema Element as parent for all embedded Schema Elements
|
|
35
|
+
this.parent = this.element;
|
|
36
|
+
const result = _apidomNsOpenapi.FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
37
|
+
|
|
38
|
+
// mark this SchemaElement with reference metadata
|
|
39
|
+
if ((0, _apidomCore.isStringElement)(this.element.$ref)) {
|
|
40
|
+
this.element.classes.push('reference-element');
|
|
41
|
+
this.element.setMetaProperty('referenced-element', 'schema');
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
BooleanElement(booleanElement) {
|
|
46
|
+
return _apidomNsJsonSchema.JSONSchemaVisitor.prototype.BooleanElement.call(this, booleanElement);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* This function depends on some external context, so we need to make sure this function
|
|
51
|
+
* works even when no context is provided like when directly refracting generic Object Element
|
|
52
|
+
* into Schema Element: `SchemaElement.refract(new ObjectElement({ type: 'object' });`
|
|
53
|
+
*/
|
|
54
|
+
get defaultDialectIdentifier() {
|
|
55
|
+
let jsonSchemaDialect;
|
|
56
|
+
if (this.openApiSemanticElement !== undefined &&
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
(0, _predicates.isJsonSchemaDialectElement)(this.openApiSemanticElement.jsonSchemaDialect)) {
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
jsonSchemaDialect = (0, _apidomCore.toValue)(this.openApiSemanticElement.jsonSchemaDialect);
|
|
61
|
+
} else if (this.openApiGenericElement !== undefined && (0, _apidomCore.isStringElement)(this.openApiGenericElement.get('jsonSchemaDialect'))) {
|
|
62
|
+
jsonSchemaDialect = (0, _apidomCore.toValue)(this.openApiGenericElement.get('jsonSchemaDialect'));
|
|
63
|
+
} else {
|
|
64
|
+
jsonSchemaDialect = (0, _apidomCore.toValue)(this.jsonSchemaDefaultDialect);
|
|
65
|
+
}
|
|
66
|
+
return jsonSchemaDialect;
|
|
67
|
+
}
|
|
68
|
+
handleDialectIdentifier(objectElement) {
|
|
69
|
+
return _apidomNsJsonSchema.JSONSchemaVisitor.prototype.handleDialectIdentifier.call(this, objectElement);
|
|
70
|
+
}
|
|
71
|
+
handleSchemaIdentifier(objectElement) {
|
|
72
|
+
return _apidomNsJsonSchema.JSONSchemaVisitor.prototype.handleSchemaIdentifier.call(this, objectElement);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
var _default = exports.default = SchemaVisitor;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import { isStringElement, toValue } from '@speclynx/apidom-core';
|
|
4
|
+
import { FallbackVisitor, FixedFieldsVisitor } from '@speclynx/apidom-ns-openapi-3-0';
|
|
5
|
+
import { JSONSchemaVisitor, ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
6
|
+
import { isJsonSchemaDialectElement } from "../../../../predicates.mjs";
|
|
7
|
+
import SchemaElement from "../../../../elements/Schema.mjs";
|
|
8
|
+
import JsonSchemaDialectElement from "../../../../elements/JsonSchemaDialect.mjs";
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class SchemaVisitor extends Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new SchemaElement();
|
|
19
|
+
this.specPath = always(['document', 'objects', 'Schema']);
|
|
20
|
+
this.canSupportSpecificationExtensions = true;
|
|
21
|
+
this.jsonSchemaDefaultDialect = JsonSchemaDialectElement.default;
|
|
22
|
+
this.passingOptionsNames.push('parent');
|
|
23
|
+
}
|
|
24
|
+
ObjectElement(objectElement) {
|
|
25
|
+
this.handleDialectIdentifier(objectElement);
|
|
26
|
+
this.handleSchemaIdentifier(objectElement);
|
|
27
|
+
|
|
28
|
+
// for further processing consider this Schema Element as parent for all embedded Schema Elements
|
|
29
|
+
this.parent = this.element;
|
|
30
|
+
const result = FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
31
|
+
|
|
32
|
+
// mark this SchemaElement with reference metadata
|
|
33
|
+
if (isStringElement(this.element.$ref)) {
|
|
34
|
+
this.element.classes.push('reference-element');
|
|
35
|
+
this.element.setMetaProperty('referenced-element', 'schema');
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
BooleanElement(booleanElement) {
|
|
40
|
+
return JSONSchemaVisitor.prototype.BooleanElement.call(this, booleanElement);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This function depends on some external context, so we need to make sure this function
|
|
45
|
+
* works even when no context is provided like when directly refracting generic Object Element
|
|
46
|
+
* into Schema Element: `SchemaElement.refract(new ObjectElement({ type: 'object' });`
|
|
47
|
+
*/
|
|
48
|
+
get defaultDialectIdentifier() {
|
|
49
|
+
let jsonSchemaDialect;
|
|
50
|
+
if (this.openApiSemanticElement !== undefined &&
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
isJsonSchemaDialectElement(this.openApiSemanticElement.jsonSchemaDialect)) {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
jsonSchemaDialect = toValue(this.openApiSemanticElement.jsonSchemaDialect);
|
|
55
|
+
} else if (this.openApiGenericElement !== undefined && isStringElement(this.openApiGenericElement.get('jsonSchemaDialect'))) {
|
|
56
|
+
jsonSchemaDialect = toValue(this.openApiGenericElement.get('jsonSchemaDialect'));
|
|
57
|
+
} else {
|
|
58
|
+
jsonSchemaDialect = toValue(this.jsonSchemaDefaultDialect);
|
|
59
|
+
}
|
|
60
|
+
return jsonSchemaDialect;
|
|
61
|
+
}
|
|
62
|
+
handleDialectIdentifier(objectElement) {
|
|
63
|
+
return JSONSchemaVisitor.prototype.handleDialectIdentifier.call(this, objectElement);
|
|
64
|
+
}
|
|
65
|
+
handleSchemaIdentifier(objectElement) {
|
|
66
|
+
return JSONSchemaVisitor.prototype.handleSchemaIdentifier.call(this, objectElement);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export default SchemaVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseSecurityRequirementVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _SecurityRequirement = _interopRequireDefault(require("../../../../elements/SecurityRequirement.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseSecurityRequirementVisitor = exports.BaseSecurityRequirementVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.SecurityRequirement.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class SecurityRequirementVisitor extends BaseSecurityRequirementVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _SecurityRequirement.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = SecurityRequirementVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import SecurityRequirementElement from "../../../../elements/SecurityRequirement.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseSecurityRequirementVisitor = OpenApi3_1Specification.visitors.document.objects.SecurityRequirement.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class SecurityRequirementVisitor extends BaseSecurityRequirementVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new SecurityRequirementElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default SecurityRequirementVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseSecuritySchemeVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _SecurityScheme = _interopRequireDefault(require("../../../../elements/SecurityScheme.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseSecuritySchemeVisitor = exports.BaseSecuritySchemeVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.SecurityScheme.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class SecuritySchemeVisitor extends BaseSecuritySchemeVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _SecurityScheme.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = SecuritySchemeVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import SecuritySchemeElement from "../../../../elements/SecurityScheme.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseSecuritySchemeVisitor = OpenApi3_1Specification.visitors.document.objects.SecurityScheme.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class SecuritySchemeVisitor extends BaseSecuritySchemeVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new SecuritySchemeElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default SecuritySchemeVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseServerVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _Server = _interopRequireDefault(require("../../../../elements/Server.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseServerVisitor = exports.BaseServerVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.Server.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class ServerVisitor extends BaseServerVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _Server.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = ServerVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import ServerElement from "../../../../elements/Server.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseServerVisitor = OpenApi3_1Specification.visitors.document.objects.Server.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class ServerVisitor extends BaseServerVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new ServerElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default ServerVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseServerVariableVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _ServerVariable = _interopRequireDefault(require("../../../../elements/ServerVariable.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseServerVariableVisitor = exports.BaseServerVariableVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.ServerVariable.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class ServerVariableVisitor extends BaseServerVariableVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _ServerVariable.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = ServerVariableVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import ServerVariableElement from "../../../../elements/ServerVariable.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseServerVariableVisitor = OpenApi3_1Specification.visitors.document.objects.ServerVariable.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class ServerVariableVisitor extends BaseServerVariableVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new ServerVariableElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default ServerVariableVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseTagVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _Tag = _interopRequireDefault(require("../../../../elements/Tag.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseTagVisitor = exports.BaseTagVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.Tag.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class TagVisitor extends BaseTagVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _Tag.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = TagVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import TagElement from "../../../../elements/Tag.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseTagVisitor = OpenApi3_1Specification.visitors.document.objects.Tag.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class TagVisitor extends BaseTagVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new TagElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default TagVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.BaseXMLVisitor = void 0;
|
|
6
|
+
var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
|
|
7
|
+
var _Xml = _interopRequireDefault(require("../../../../elements/Xml.cjs"));
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
const BaseXMLVisitor = exports.BaseXMLVisitor = _apidomNsOpenapi.specificationObj.visitors.document.objects.XML.$visitor;
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class XmlVisitor extends BaseXMLVisitor {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.element = new _Xml.default();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
var _default = exports.default = XmlVisitor;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { specificationObj as OpenApi3_1Specification } from '@speclynx/apidom-ns-openapi-3-0';
|
|
2
|
+
import XmlElement from "../../../../elements/Xml.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const BaseXMLVisitor = OpenApi3_1Specification.visitors.document.objects.XML.$visitor;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class XmlVisitor extends BaseXMLVisitor {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
super(options);
|
|
13
|
+
this.element = new XmlElement();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default XmlVisitor;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.keyMap = exports.getNodeType = void 0;
|
|
5
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
const getNodeType = element => {
|
|
10
|
+
if (!(0, _apidomCore.isElement)(element)) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return `${element.element.charAt(0).toUpperCase() + element.element.slice(1)}Element`;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* There are unfortunately two `LinkElement` types. One is from base namespace
|
|
18
|
+
* and the other one if from this namespace. `LinkElement` from base namespace
|
|
19
|
+
* is used extremely rarely so it's almost always safe during traversing
|
|
20
|
+
* to assume that `LinkElement` is element from this namespace.
|
|
21
|
+
*
|
|
22
|
+
* To be 100% sure that currently visiting `LinkElement` is from this namespace
|
|
23
|
+
* use `isLinkElement` predicate from this namespace to assert for it.
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
exports.getNodeType = getNodeType;
|
|
27
|
+
const keyMap = exports.keyMap = {
|
|
28
|
+
CallbackElement: ['content'],
|
|
29
|
+
ComponentsElement: ['content'],
|
|
30
|
+
ContactElement: ['content'],
|
|
31
|
+
DiscriminatorElement: ['content'],
|
|
32
|
+
Encoding: ['content'],
|
|
33
|
+
Example: ['content'],
|
|
34
|
+
ExternalDocumentationElement: ['content'],
|
|
35
|
+
HeaderElement: ['content'],
|
|
36
|
+
InfoElement: ['content'],
|
|
37
|
+
LicenseElement: ['content'],
|
|
38
|
+
MediaTypeElement: ['content'],
|
|
39
|
+
OAuthFlowElement: ['content'],
|
|
40
|
+
OAuthFlowsElement: ['content'],
|
|
41
|
+
OpenApi3_1Element: ['content'],
|
|
42
|
+
OperationElement: ['content'],
|
|
43
|
+
ParameterElement: ['content'],
|
|
44
|
+
PathItemElement: ['content'],
|
|
45
|
+
PathsElement: ['content'],
|
|
46
|
+
ReferenceElement: ['content'],
|
|
47
|
+
RequestBodyElement: ['content'],
|
|
48
|
+
ResponseElement: ['content'],
|
|
49
|
+
ResponsesElement: ['content'],
|
|
50
|
+
SchemaElement: ['content'],
|
|
51
|
+
SecurityRequirementElement: ['content'],
|
|
52
|
+
SecuritySchemeElement: ['content'],
|
|
53
|
+
ServerElement: ['content'],
|
|
54
|
+
ServerVariableElement: ['content'],
|
|
55
|
+
TagElement: ['content'],
|
|
56
|
+
..._apidomCore.keyMap
|
|
57
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { keyMap as keyMapBase, isElement } from '@speclynx/apidom-core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export const getNodeType = element => {
|
|
7
|
+
if (!isElement(element)) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return `${element.element.charAt(0).toUpperCase() + element.element.slice(1)}Element`;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* There are unfortunately two `LinkElement` types. One is from base namespace
|
|
15
|
+
* and the other one if from this namespace. `LinkElement` from base namespace
|
|
16
|
+
* is used extremely rarely so it's almost always safe during traversing
|
|
17
|
+
* to assume that `LinkElement` is element from this namespace.
|
|
18
|
+
*
|
|
19
|
+
* To be 100% sure that currently visiting `LinkElement` is from this namespace
|
|
20
|
+
* use `isLinkElement` predicate from this namespace to assert for it.
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
export const keyMap = {
|
|
25
|
+
CallbackElement: ['content'],
|
|
26
|
+
ComponentsElement: ['content'],
|
|
27
|
+
ContactElement: ['content'],
|
|
28
|
+
DiscriminatorElement: ['content'],
|
|
29
|
+
Encoding: ['content'],
|
|
30
|
+
Example: ['content'],
|
|
31
|
+
ExternalDocumentationElement: ['content'],
|
|
32
|
+
HeaderElement: ['content'],
|
|
33
|
+
InfoElement: ['content'],
|
|
34
|
+
LicenseElement: ['content'],
|
|
35
|
+
MediaTypeElement: ['content'],
|
|
36
|
+
OAuthFlowElement: ['content'],
|
|
37
|
+
OAuthFlowsElement: ['content'],
|
|
38
|
+
OpenApi3_1Element: ['content'],
|
|
39
|
+
OperationElement: ['content'],
|
|
40
|
+
ParameterElement: ['content'],
|
|
41
|
+
PathItemElement: ['content'],
|
|
42
|
+
PathsElement: ['content'],
|
|
43
|
+
ReferenceElement: ['content'],
|
|
44
|
+
RequestBodyElement: ['content'],
|
|
45
|
+
ResponseElement: ['content'],
|
|
46
|
+
ResponsesElement: ['content'],
|
|
47
|
+
SchemaElement: ['content'],
|
|
48
|
+
SecurityRequirementElement: ['content'],
|
|
49
|
+
SecuritySchemeElement: ['content'],
|
|
50
|
+
ServerElement: ['content'],
|
|
51
|
+
ServerVariableElement: ['content'],
|
|
52
|
+
TagElement: ['content'],
|
|
53
|
+
...keyMapBase
|
|
54
|
+
};
|