@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.
Files changed (93) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +202 -0
  3. package/LICENSES/AFL-3.0.txt +182 -0
  4. package/LICENSES/Apache-2.0.txt +202 -0
  5. package/LICENSES/BSD-3-Clause.txt +26 -0
  6. package/LICENSES/MIT.txt +9 -0
  7. package/NOTICE +65 -0
  8. package/README.md +189 -0
  9. package/dist/apidom-ns-json-schema-draft-4.browser.js +1 -0
  10. package/package.json +64 -0
  11. package/src/elements/JSONReference.cjs +29 -0
  12. package/src/elements/JSONReference.mjs +26 -0
  13. package/src/elements/JSONSchema.cjs +296 -0
  14. package/src/elements/JSONSchema.mjs +292 -0
  15. package/src/elements/LinkDescription.cjs +65 -0
  16. package/src/elements/LinkDescription.mjs +61 -0
  17. package/src/elements/Media.cjs +29 -0
  18. package/src/elements/Media.mjs +26 -0
  19. package/src/index.cjs +66 -0
  20. package/src/index.mjs +24 -0
  21. package/src/media-types.cjs +34 -0
  22. package/src/media-types.mjs +30 -0
  23. package/src/namespace.cjs +25 -0
  24. package/src/namespace.mjs +20 -0
  25. package/src/predicates.cjs +53 -0
  26. package/src/predicates.mjs +48 -0
  27. package/src/refractor/index.cjs +53 -0
  28. package/src/refractor/index.mjs +47 -0
  29. package/src/refractor/plugins/replace-empty-element.cjs +200 -0
  30. package/src/refractor/plugins/replace-empty-element.mjs +194 -0
  31. package/src/refractor/predicates.cjs +16 -0
  32. package/src/refractor/predicates.mjs +12 -0
  33. package/src/refractor/registration.cjs +19 -0
  34. package/src/refractor/registration.mjs +10 -0
  35. package/src/refractor/specification.cjs +182 -0
  36. package/src/refractor/specification.mjs +177 -0
  37. package/src/refractor/toolbox.cjs +21 -0
  38. package/src/refractor/toolbox.mjs +15 -0
  39. package/src/refractor/visitors/FallbackVisitor.cjs +25 -0
  40. package/src/refractor/visitors/FallbackVisitor.mjs +19 -0
  41. package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
  42. package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
  43. package/src/refractor/visitors/Visitor.cjs +31 -0
  44. package/src/refractor/visitors/Visitor.mjs +28 -0
  45. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  46. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  47. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +53 -0
  48. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +46 -0
  49. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  50. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  51. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +53 -0
  52. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +47 -0
  53. package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +35 -0
  54. package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +29 -0
  55. package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +35 -0
  56. package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +29 -0
  57. package/src/refractor/visitors/json-schema/DefinitionsVisitor.cjs +27 -0
  58. package/src/refractor/visitors/json-schema/DefinitionsVisitor.mjs +21 -0
  59. package/src/refractor/visitors/json-schema/DependenciesVisitor.cjs +27 -0
  60. package/src/refractor/visitors/json-schema/DependenciesVisitor.mjs +21 -0
  61. package/src/refractor/visitors/json-schema/EnumVisitor.cjs +17 -0
  62. package/src/refractor/visitors/json-schema/EnumVisitor.mjs +12 -0
  63. package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +37 -0
  64. package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +31 -0
  65. package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.cjs +24 -0
  66. package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.mjs +19 -0
  67. package/src/refractor/visitors/json-schema/LinksVisitor.cjs +33 -0
  68. package/src/refractor/visitors/json-schema/LinksVisitor.mjs +27 -0
  69. package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +35 -0
  70. package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +29 -0
  71. package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.cjs +20 -0
  72. package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.mjs +16 -0
  73. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +27 -0
  74. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +21 -0
  75. package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +27 -0
  76. package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +21 -0
  77. package/src/refractor/visitors/json-schema/RequiredVisitor.cjs +17 -0
  78. package/src/refractor/visitors/json-schema/RequiredVisitor.mjs +12 -0
  79. package/src/refractor/visitors/json-schema/TypeVisitor.cjs +22 -0
  80. package/src/refractor/visitors/json-schema/TypeVisitor.mjs +17 -0
  81. package/src/refractor/visitors/json-schema/index.cjs +64 -0
  82. package/src/refractor/visitors/json-schema/index.mjs +58 -0
  83. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.cjs +17 -0
  84. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.mjs +12 -0
  85. package/src/refractor/visitors/json-schema/json-reference/index.cjs +35 -0
  86. package/src/refractor/visitors/json-schema/json-reference/index.mjs +29 -0
  87. package/src/refractor/visitors/json-schema/link-description/index.cjs +25 -0
  88. package/src/refractor/visitors/json-schema/link-description/index.mjs +19 -0
  89. package/src/refractor/visitors/json-schema/media/index.cjs +25 -0
  90. package/src/refractor/visitors/json-schema/media/index.mjs +19 -0
  91. package/src/traversal/visitor.cjs +26 -0
  92. package/src/traversal/visitor.mjs +22 -0
  93. 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
+ };