@speclynx/apidom-ns-json-schema-draft-4 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 +82 -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 +189 -0
- package/dist/apidom-ns-json-schema-draft-4.browser.js +1 -0
- package/package.json +64 -0
- package/src/elements/JSONReference.cjs +29 -0
- package/src/elements/JSONReference.mjs +26 -0
- package/src/elements/JSONSchema.cjs +296 -0
- package/src/elements/JSONSchema.mjs +292 -0
- package/src/elements/LinkDescription.cjs +65 -0
- package/src/elements/LinkDescription.mjs +61 -0
- package/src/elements/Media.cjs +29 -0
- package/src/elements/Media.mjs +26 -0
- package/src/index.cjs +66 -0
- package/src/index.mjs +24 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/namespace.cjs +25 -0
- package/src/namespace.mjs +20 -0
- package/src/predicates.cjs +53 -0
- package/src/predicates.mjs +48 -0
- package/src/refractor/index.cjs +53 -0
- package/src/refractor/index.mjs +47 -0
- package/src/refractor/plugins/replace-empty-element.cjs +200 -0
- package/src/refractor/plugins/replace-empty-element.mjs +194 -0
- package/src/refractor/predicates.cjs +16 -0
- package/src/refractor/predicates.mjs +12 -0
- package/src/refractor/registration.cjs +19 -0
- package/src/refractor/registration.mjs +10 -0
- package/src/refractor/specification.cjs +182 -0
- package/src/refractor/specification.mjs +177 -0
- package/src/refractor/toolbox.cjs +21 -0
- package/src/refractor/toolbox.mjs +15 -0
- package/src/refractor/visitors/FallbackVisitor.cjs +25 -0
- package/src/refractor/visitors/FallbackVisitor.mjs +19 -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 +53 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +46 -0
- package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
- package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +53 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +47 -0
- package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +35 -0
- package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +29 -0
- package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +35 -0
- package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +29 -0
- package/src/refractor/visitors/json-schema/DefinitionsVisitor.cjs +27 -0
- package/src/refractor/visitors/json-schema/DefinitionsVisitor.mjs +21 -0
- package/src/refractor/visitors/json-schema/DependenciesVisitor.cjs +27 -0
- package/src/refractor/visitors/json-schema/DependenciesVisitor.mjs +21 -0
- package/src/refractor/visitors/json-schema/EnumVisitor.cjs +17 -0
- package/src/refractor/visitors/json-schema/EnumVisitor.mjs +12 -0
- package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +37 -0
- package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +31 -0
- package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.cjs +24 -0
- package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.mjs +19 -0
- package/src/refractor/visitors/json-schema/LinksVisitor.cjs +33 -0
- package/src/refractor/visitors/json-schema/LinksVisitor.mjs +27 -0
- package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +35 -0
- package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +29 -0
- package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.cjs +20 -0
- package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.mjs +16 -0
- package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +27 -0
- package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +21 -0
- package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +27 -0
- package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +21 -0
- package/src/refractor/visitors/json-schema/RequiredVisitor.cjs +17 -0
- package/src/refractor/visitors/json-schema/RequiredVisitor.mjs +12 -0
- package/src/refractor/visitors/json-schema/TypeVisitor.cjs +22 -0
- package/src/refractor/visitors/json-schema/TypeVisitor.mjs +17 -0
- package/src/refractor/visitors/json-schema/index.cjs +64 -0
- package/src/refractor/visitors/json-schema/index.mjs +58 -0
- package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.cjs +17 -0
- package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.mjs +12 -0
- package/src/refractor/visitors/json-schema/json-reference/index.cjs +35 -0
- package/src/refractor/visitors/json-schema/json-reference/index.mjs +29 -0
- package/src/refractor/visitors/json-schema/link-description/index.cjs +25 -0
- package/src/refractor/visitors/json-schema/link-description/index.mjs +19 -0
- package/src/refractor/visitors/json-schema/media/index.cjs +25 -0
- package/src/refractor/visitors/json-schema/media/index.mjs +19 -0
- package/src/traversal/visitor.cjs +26 -0
- package/src/traversal/visitor.mjs +22 -0
- package/types/apidom-ns-json-schema-draft-4.d.ts +905 -0
|
@@ -0,0 +1,27 @@
|
|
|
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 _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
|
|
9
|
+
var _MapVisitor = _interopRequireDefault(require("../generics/MapVisitor.cjs"));
|
|
10
|
+
var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
|
|
11
|
+
var _predicates = require("../../predicates.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
class PatternPropertiesVisitor extends (0, _tsMixer.Mixin)(_MapVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.element = new _apidomCore.ObjectElement();
|
|
23
|
+
this.element.classes.push('json-schema-patternProperties');
|
|
24
|
+
this.specPath = element => (0, _predicates.isJSONReferenceLikeElement)(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
var _default = exports.default = PatternPropertiesVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { ObjectElement } from '@speclynx/apidom-core';
|
|
3
|
+
import FallbackVisitor from "../FallbackVisitor.mjs";
|
|
4
|
+
import MapVisitor from "../generics/MapVisitor.mjs";
|
|
5
|
+
import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
|
|
6
|
+
import { isJSONReferenceLikeElement } from "../../predicates.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class PatternPropertiesVisitor extends Mixin(MapVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.element = new ObjectElement();
|
|
17
|
+
this.element.classes.push('json-schema-patternProperties');
|
|
18
|
+
this.specPath = element => isJSONReferenceLikeElement(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export default PatternPropertiesVisitor;
|
|
@@ -0,0 +1,27 @@
|
|
|
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 _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
|
|
9
|
+
var _MapVisitor = _interopRequireDefault(require("../generics/MapVisitor.cjs"));
|
|
10
|
+
var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
|
|
11
|
+
var _predicates = require("../../predicates.cjs");
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
class PropertiesVisitor extends (0, _tsMixer.Mixin)(_MapVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.element = new _apidomCore.ObjectElement();
|
|
23
|
+
this.element.classes.push('json-schema-properties');
|
|
24
|
+
this.specPath = element => (0, _predicates.isJSONReferenceLikeElement)(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
var _default = exports.default = PropertiesVisitor;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { ObjectElement } from '@speclynx/apidom-core';
|
|
3
|
+
import FallbackVisitor from "../FallbackVisitor.mjs";
|
|
4
|
+
import MapVisitor from "../generics/MapVisitor.mjs";
|
|
5
|
+
import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
|
|
6
|
+
import { isJSONReferenceLikeElement } from "../../predicates.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class PropertiesVisitor extends Mixin(MapVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.element = new ObjectElement();
|
|
17
|
+
this.element.classes.push('json-schema-properties');
|
|
18
|
+
this.specPath = element => isJSONReferenceLikeElement(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export default PropertiesVisitor;
|
|
@@ -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 RequiredVisitor extends _FallbackVisitor.default {
|
|
11
|
+
ArrayElement(arrayElement) {
|
|
12
|
+
const result = this.enter(arrayElement);
|
|
13
|
+
this.element.classes.push('json-schema-required');
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
var _default = exports.default = RequiredVisitor;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import FallbackVisitor from "../FallbackVisitor.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class RequiredVisitor extends FallbackVisitor {
|
|
6
|
+
ArrayElement(arrayElement) {
|
|
7
|
+
const result = this.enter(arrayElement);
|
|
8
|
+
this.element.classes.push('json-schema-required');
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export default RequiredVisitor;
|
|
@@ -0,0 +1,22 @@
|
|
|
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 TypeVisitor extends _FallbackVisitor.default {
|
|
11
|
+
StringElement(stringElement) {
|
|
12
|
+
const result = this.enter(stringElement);
|
|
13
|
+
this.element.classes.push('json-schema-type');
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
ArrayElement(arrayElement) {
|
|
17
|
+
const result = this.enter(arrayElement);
|
|
18
|
+
this.element.classes.push('json-schema-type');
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
var _default = exports.default = TypeVisitor;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import FallbackVisitor from "../FallbackVisitor.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
class TypeVisitor extends FallbackVisitor {
|
|
6
|
+
StringElement(stringElement) {
|
|
7
|
+
const result = this.enter(stringElement);
|
|
8
|
+
this.element.classes.push('json-schema-type');
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
ArrayElement(arrayElement) {
|
|
12
|
+
const result = this.enter(arrayElement);
|
|
13
|
+
this.element.classes.push('json-schema-type');
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export default TypeVisitor;
|
|
@@ -0,0 +1,64 @@
|
|
|
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 _ramdaAdjunct = require("ramda-adjunct");
|
|
9
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
10
|
+
var _FixedFieldsVisitor = _interopRequireDefault(require("../generics/FixedFieldsVisitor.cjs"));
|
|
11
|
+
var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
|
|
12
|
+
var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
|
|
13
|
+
var _JSONSchema = _interopRequireDefault(require("../../../elements/JSONSchema.cjs"));
|
|
14
|
+
var _predicates = require("../../../predicates.cjs");
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
class JSONSchemaVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
this.element = new _JSONSchema.default();
|
|
26
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'JSONSchema']);
|
|
27
|
+
}
|
|
28
|
+
get defaultDialectIdentifier() {
|
|
29
|
+
return 'http://json-schema.org/draft-04/schema#';
|
|
30
|
+
}
|
|
31
|
+
ObjectElement(objectElement) {
|
|
32
|
+
this.handleDialectIdentifier(objectElement);
|
|
33
|
+
this.handleSchemaIdentifier(objectElement);
|
|
34
|
+
|
|
35
|
+
// for further processing consider this JSONSchema Element as parent for all sub-schemas
|
|
36
|
+
this.parent = this.element;
|
|
37
|
+
return _FixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
38
|
+
}
|
|
39
|
+
handleDialectIdentifier(objectElement) {
|
|
40
|
+
// handle $schema keyword in embedded resources
|
|
41
|
+
if ((0, _ramdaAdjunct.isUndefined)(this.parent) && !(0, _apidomCore.isStringElement)(objectElement.get('$schema'))) {
|
|
42
|
+
// no parent available and no $schema is defined, set default $schema
|
|
43
|
+
this.element.setMetaProperty('inheritedDialectIdentifier', this.defaultDialectIdentifier);
|
|
44
|
+
} else if ((0, _predicates.isJSONSchemaElement)(this.parent) && !(0, _apidomCore.isStringElement)(objectElement.get('$schema'))) {
|
|
45
|
+
// parent is available and no $schema is defined, set parent $schema
|
|
46
|
+
const inheritedDialectIdentifier = (0, _ramda.defaultTo)((0, _apidomCore.toValue)(this.parent.meta.get('inheritedDialectIdentifier')), (0, _apidomCore.toValue)(this.parent.$schema));
|
|
47
|
+
this.element.setMetaProperty('inheritedDialectIdentifier', inheritedDialectIdentifier);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
handleSchemaIdentifier(objectElement, identifierKeyword = 'id') {
|
|
51
|
+
// handle schema identifier in embedded resources
|
|
52
|
+
// fetch parent's ancestorsSchemaIdentifiers
|
|
53
|
+
const ancestorsSchemaIdentifiers = this.parent !== undefined ? (0, _apidomCore.cloneDeep)(this.parent.getMetaProperty('ancestorsSchemaIdentifiers', [])) : new _apidomCore.ArrayElement();
|
|
54
|
+
// get current schema identifier
|
|
55
|
+
const schemaIdentifier = (0, _apidomCore.toValue)(objectElement.get(identifierKeyword));
|
|
56
|
+
|
|
57
|
+
// remember schema identifier if it's a non-empty strings
|
|
58
|
+
if ((0, _ramdaAdjunct.isNonEmptyString)(schemaIdentifier)) {
|
|
59
|
+
ancestorsSchemaIdentifiers.push(schemaIdentifier);
|
|
60
|
+
}
|
|
61
|
+
this.element.setMetaProperty('ancestorsSchemaIdentifiers', ancestorsSchemaIdentifiers);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
var _default = exports.default = JSONSchemaVisitor;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always, defaultTo } from 'ramda';
|
|
3
|
+
import { isNonEmptyString, isUndefined } from 'ramda-adjunct';
|
|
4
|
+
import { ArrayElement, isStringElement, cloneDeep, toValue } from '@speclynx/apidom-core';
|
|
5
|
+
import FixedFieldsVisitor from "../generics/FixedFieldsVisitor.mjs";
|
|
6
|
+
import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
|
|
7
|
+
import FallbackVisitor from "../FallbackVisitor.mjs";
|
|
8
|
+
import JSONSchemaElement from "../../../elements/JSONSchema.mjs";
|
|
9
|
+
import { isJSONSchemaElement } from "../../../predicates.mjs";
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class JSONSchemaVisitor extends Mixin(FixedFieldsVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super(options);
|
|
19
|
+
this.element = new JSONSchemaElement();
|
|
20
|
+
this.specPath = always(['document', 'objects', 'JSONSchema']);
|
|
21
|
+
}
|
|
22
|
+
get defaultDialectIdentifier() {
|
|
23
|
+
return 'http://json-schema.org/draft-04/schema#';
|
|
24
|
+
}
|
|
25
|
+
ObjectElement(objectElement) {
|
|
26
|
+
this.handleDialectIdentifier(objectElement);
|
|
27
|
+
this.handleSchemaIdentifier(objectElement);
|
|
28
|
+
|
|
29
|
+
// for further processing consider this JSONSchema Element as parent for all sub-schemas
|
|
30
|
+
this.parent = this.element;
|
|
31
|
+
return FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
32
|
+
}
|
|
33
|
+
handleDialectIdentifier(objectElement) {
|
|
34
|
+
// handle $schema keyword in embedded resources
|
|
35
|
+
if (isUndefined(this.parent) && !isStringElement(objectElement.get('$schema'))) {
|
|
36
|
+
// no parent available and no $schema is defined, set default $schema
|
|
37
|
+
this.element.setMetaProperty('inheritedDialectIdentifier', this.defaultDialectIdentifier);
|
|
38
|
+
} else if (isJSONSchemaElement(this.parent) && !isStringElement(objectElement.get('$schema'))) {
|
|
39
|
+
// parent is available and no $schema is defined, set parent $schema
|
|
40
|
+
const inheritedDialectIdentifier = defaultTo(toValue(this.parent.meta.get('inheritedDialectIdentifier')), toValue(this.parent.$schema));
|
|
41
|
+
this.element.setMetaProperty('inheritedDialectIdentifier', inheritedDialectIdentifier);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
handleSchemaIdentifier(objectElement, identifierKeyword = 'id') {
|
|
45
|
+
// handle schema identifier in embedded resources
|
|
46
|
+
// fetch parent's ancestorsSchemaIdentifiers
|
|
47
|
+
const ancestorsSchemaIdentifiers = this.parent !== undefined ? cloneDeep(this.parent.getMetaProperty('ancestorsSchemaIdentifiers', [])) : new ArrayElement();
|
|
48
|
+
// get current schema identifier
|
|
49
|
+
const schemaIdentifier = toValue(objectElement.get(identifierKeyword));
|
|
50
|
+
|
|
51
|
+
// remember schema identifier if it's a non-empty strings
|
|
52
|
+
if (isNonEmptyString(schemaIdentifier)) {
|
|
53
|
+
ancestorsSchemaIdentifiers.push(schemaIdentifier);
|
|
54
|
+
}
|
|
55
|
+
this.element.setMetaProperty('ancestorsSchemaIdentifiers', ancestorsSchemaIdentifiers);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export default JSONSchemaVisitor;
|
|
@@ -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 = this.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 = this.enter(stringElement);
|
|
8
|
+
this.element.classes.push('reference-value');
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export default $RefVisitor;
|
|
@@ -0,0 +1,35 @@
|
|
|
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 _JSONReference = _interopRequireDefault(require("../../../../elements/JSONReference.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 JSONReferenceVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this.element = new _JSONReference.default();
|
|
23
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'JSONReference']);
|
|
24
|
+
}
|
|
25
|
+
ObjectElement(objectElement) {
|
|
26
|
+
const result = _FixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
|
|
27
|
+
|
|
28
|
+
// mark this JSONReferenceElement with reference metadata
|
|
29
|
+
if ((0, _apidomCore.isStringElement)(this.element.$ref)) {
|
|
30
|
+
this.element.classes.push('reference-element');
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
var _default = exports.default = JSONReferenceVisitor;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import { isStringElement } from '@speclynx/apidom-core';
|
|
4
|
+
import JSONReferenceElement from "../../../../elements/JSONReference.mjs";
|
|
5
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
6
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
class JSONReferenceVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.element = new JSONReferenceElement();
|
|
17
|
+
this.specPath = always(['document', 'objects', 'JSONReference']);
|
|
18
|
+
}
|
|
19
|
+
ObjectElement(objectElement) {
|
|
20
|
+
const result = FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
|
|
21
|
+
|
|
22
|
+
// mark this JSONReferenceElement with reference metadata
|
|
23
|
+
if (isStringElement(this.element.$ref)) {
|
|
24
|
+
this.element.classes.push('reference-element');
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export default JSONReferenceVisitor;
|
|
@@ -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 _LinkDescription = _interopRequireDefault(require("../../../../elements/LinkDescription.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 LinkDescriptionVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super(options);
|
|
21
|
+
this.element = new _LinkDescription.default();
|
|
22
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'LinkDescription']);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = exports.default = LinkDescriptionVisitor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import LinkDescriptionElement from "../../../../elements/LinkDescription.mjs";
|
|
4
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
5
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class LinkDescriptionVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.element = new LinkDescriptionElement();
|
|
16
|
+
this.specPath = always(['document', 'objects', 'LinkDescription']);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default LinkDescriptionVisitor;
|
|
@@ -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 _Media = _interopRequireDefault(require("../../../../elements/Media.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 MediaVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _FallbackVisitor.default) {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super(options);
|
|
21
|
+
this.element = new _Media.default();
|
|
22
|
+
this.specPath = (0, _ramda.always)(['document', 'objects', 'Media']);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = exports.default = MediaVisitor;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Mixin } from 'ts-mixer';
|
|
2
|
+
import { always } from 'ramda';
|
|
3
|
+
import MediaElement from "../../../../elements/Media.mjs";
|
|
4
|
+
import FixedFieldsVisitor from "../../generics/FixedFieldsVisitor.mjs";
|
|
5
|
+
import FallbackVisitor from "../../FallbackVisitor.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class MediaVisitor extends Mixin(FixedFieldsVisitor, FallbackVisitor) {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super(options);
|
|
15
|
+
this.element = new MediaElement();
|
|
16
|
+
this.specPath = always(['document', 'objects', 'Media']);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default MediaVisitor;
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
exports.getNodeType = getNodeType;
|
|
20
|
+
const keyMap = exports.keyMap = {
|
|
21
|
+
JSONSchemaDraft4Element: ['content'],
|
|
22
|
+
JSONReferenceElement: ['content'],
|
|
23
|
+
MediaElement: ['content'],
|
|
24
|
+
LinkDescriptionElement: ['content'],
|
|
25
|
+
..._apidomCore.keyMap
|
|
26
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export const keyMap = {
|
|
17
|
+
JSONSchemaDraft4Element: ['content'],
|
|
18
|
+
JSONReferenceElement: ['content'],
|
|
19
|
+
MediaElement: ['content'],
|
|
20
|
+
LinkDescriptionElement: ['content'],
|
|
21
|
+
...keyMapBase
|
|
22
|
+
};
|