@speclynx/apidom-ns-json-schema-draft-4 1.12.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/NOTICE +16 -7
  3. package/README.md +24 -24
  4. package/dist/apidom-ns-json-schema-draft-4.browser.js +1 -1
  5. package/package.json +8 -8
  6. package/src/elements/JSONReference.cjs +2 -2
  7. package/src/elements/JSONReference.mjs +1 -2
  8. package/src/elements/JSONSchema.cjs +9 -9
  9. package/src/elements/JSONSchema.mjs +8 -8
  10. package/src/elements/LinkDescription.cjs +2 -2
  11. package/src/elements/LinkDescription.mjs +1 -1
  12. package/src/elements/Media.cjs +2 -2
  13. package/src/elements/Media.mjs +1 -2
  14. package/src/index.cjs +24 -21
  15. package/src/index.mjs +3 -4
  16. package/src/predicates.cjs +8 -29
  17. package/src/predicates.mjs +4 -29
  18. package/src/refractor/index.cjs +57 -16
  19. package/src/refractor/index.mjs +51 -15
  20. package/src/refractor/inspect.cjs +55 -0
  21. package/src/refractor/inspect.mjs +47 -0
  22. package/src/refractor/plugins/replace-empty-element.cjs +27 -21
  23. package/src/refractor/plugins/replace-empty-element.mjs +14 -8
  24. package/src/refractor/predicates.cjs +2 -2
  25. package/src/refractor/predicates.mjs +1 -1
  26. package/src/refractor/specification.cjs +14 -3
  27. package/src/refractor/specification.mjs +14 -3
  28. package/src/refractor/toolbox.cjs +10 -3
  29. package/src/refractor/toolbox.mjs +8 -2
  30. package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
  31. package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
  32. package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
  33. package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
  34. package/src/refractor/visitors/Visitor.cjs +10 -8
  35. package/src/refractor/visitors/Visitor.mjs +11 -9
  36. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
  37. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
  38. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
  39. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
  40. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
  41. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
  42. package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +7 -10
  43. package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +6 -8
  44. package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +7 -10
  45. package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +6 -8
  46. package/src/refractor/visitors/json-schema/DefinitionsVisitor.cjs +4 -8
  47. package/src/refractor/visitors/json-schema/DefinitionsVisitor.mjs +3 -6
  48. package/src/refractor/visitors/json-schema/DependenciesVisitor.cjs +4 -8
  49. package/src/refractor/visitors/json-schema/DependenciesVisitor.mjs +3 -6
  50. package/src/refractor/visitors/json-schema/EnumVisitor.cjs +2 -3
  51. package/src/refractor/visitors/json-schema/EnumVisitor.mjs +2 -3
  52. package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +10 -12
  53. package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +9 -10
  54. package/src/refractor/visitors/json-schema/LinksVisitor.cjs +7 -10
  55. package/src/refractor/visitors/json-schema/LinksVisitor.mjs +6 -8
  56. package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +7 -10
  57. package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +6 -8
  58. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +4 -8
  59. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +3 -6
  60. package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +4 -8
  61. package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +3 -6
  62. package/src/refractor/visitors/json-schema/RequiredVisitor.cjs +2 -3
  63. package/src/refractor/visitors/json-schema/RequiredVisitor.mjs +2 -3
  64. package/src/refractor/visitors/json-schema/TypeVisitor.cjs +4 -6
  65. package/src/refractor/visitors/json-schema/TypeVisitor.mjs +4 -6
  66. package/src/refractor/visitors/json-schema/bases.cjs +45 -0
  67. package/src/refractor/visitors/json-schema/bases.mjs +39 -0
  68. package/src/refractor/visitors/json-schema/index.cjs +12 -12
  69. package/src/refractor/visitors/json-schema/index.mjs +11 -11
  70. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.cjs +2 -3
  71. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.mjs +2 -3
  72. package/src/refractor/visitors/json-schema/json-reference/index.cjs +6 -8
  73. package/src/refractor/visitors/json-schema/json-reference/index.mjs +5 -7
  74. package/src/refractor/visitors/json-schema/link-description/index.cjs +2 -4
  75. package/src/refractor/visitors/json-schema/link-description/index.mjs +2 -4
  76. package/src/refractor/visitors/json-schema/media/index.cjs +2 -4
  77. package/src/refractor/visitors/json-schema/media/index.mjs +2 -4
  78. package/types/apidom-ns-json-schema-draft-4.d.ts +169 -151
  79. package/src/refractor/registration.cjs +0 -19
  80. package/src/refractor/registration.mjs +0 -10
  81. package/src/traversal/visitor.cjs +0 -26
  82. package/src/traversal/visitor.mjs +0 -22
@@ -5,7 +5,6 @@ exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _ramda = require("ramda");
7
7
  var _ramdaAdjunct = require("ramda-adjunct");
8
- var _apidomCore = require("@speclynx/apidom-core");
9
8
  var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
10
9
  /**
11
10
  * @public
@@ -29,14 +28,15 @@ class AlternatingVisitor extends _SpecificationVisitor.default {
29
28
  });
30
29
  this.alternator = alternator;
31
30
  }
32
- enter(element) {
31
+ enter(path) {
32
+ const element = path.node;
33
33
  const functions = this.alternator.map(({
34
34
  predicate,
35
35
  specPath
36
36
  }) => (0, _ramda.ifElse)(predicate, (0, _ramda.always)(specPath), _ramdaAdjunct.stubUndefined));
37
37
  const specPath = (0, _ramdaAdjunct.dispatch)(functions)(element);
38
38
  this.element = this.toRefractedElement(specPath, element);
39
- return _apidomCore.BREAK;
39
+ path.stop();
40
40
  }
41
41
  }
42
42
  var _default = exports.default = AlternatingVisitor;
@@ -1,6 +1,5 @@
1
1
  import { ifElse, always } from 'ramda';
2
2
  import { dispatch, stubUndefined } from 'ramda-adjunct';
3
- import { BREAK } from '@speclynx/apidom-core';
4
3
  import SpecificationVisitor from "../SpecificationVisitor.mjs";
5
4
  /**
6
5
  * @public
@@ -22,14 +21,15 @@ class AlternatingVisitor extends SpecificationVisitor {
22
21
  });
23
22
  this.alternator = alternator;
24
23
  }
25
- enter(element) {
24
+ enter(path) {
25
+ const element = path.node;
26
26
  const functions = this.alternator.map(({
27
27
  predicate,
28
28
  specPath
29
29
  }) => ifElse(predicate, always(specPath), stubUndefined));
30
30
  const specPath = dispatch(functions)(element);
31
31
  this.element = this.toRefractedElement(specPath, element);
32
- return BREAK;
32
+ path.stop();
33
33
  }
34
34
  }
35
35
  export default AlternatingVisitor;
@@ -3,6 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
7
  var _apidomCore = require("@speclynx/apidom-core");
7
8
  var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
8
9
  /**
@@ -30,24 +31,26 @@ class FixedFieldsVisitor extends _SpecificationVisitor.default {
30
31
  this.specPath = specPath;
31
32
  this.ignoredFields = ignoredFields || [];
32
33
  }
33
- ObjectElement(objectElement) {
34
+ ObjectElement(path) {
35
+ const objectElement = path.node;
34
36
  const specPath = this.specPath(objectElement);
35
37
  const fields = this.retrieveFixedFields(specPath);
36
38
 
37
39
  // @ts-ignore
38
40
  objectElement.forEach((value, key, memberElement) => {
39
- if ((0, _apidomCore.isStringElement)(key) && fields.includes((0, _apidomCore.toValue)(key)) && !this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
40
- const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', (0, _apidomCore.toValue)(key)], value);
41
- const newMemberElement = new _apidomCore.MemberElement((0, _apidomCore.cloneDeep)(key), fixedFieldElement);
41
+ const keyValue = (0, _apidomCore.toValue)(key);
42
+ if ((0, _apidomDatamodel.isStringElement)(key) && fields.includes(keyValue) && !this.ignoredFields.includes(keyValue)) {
43
+ const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', keyValue], value);
44
+ const newMemberElement = new _apidomDatamodel.MemberElement((0, _apidomDatamodel.cloneDeep)(key), fixedFieldElement);
42
45
  this.copyMetaAndAttributes(memberElement, newMemberElement);
43
46
  newMemberElement.classes.push('fixed-field');
44
47
  this.element.content.push(newMemberElement);
45
- } else if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
46
- this.element.content.push((0, _apidomCore.cloneDeep)(memberElement));
48
+ } else if (!this.ignoredFields.includes(keyValue)) {
49
+ this.element.content.push((0, _apidomDatamodel.cloneDeep)(memberElement));
47
50
  }
48
51
  });
49
52
  this.copyMetaAndAttributes(objectElement, this.element);
50
- return _apidomCore.BREAK;
53
+ path.stop();
51
54
  }
52
55
  }
53
56
  var _default = exports.default = FixedFieldsVisitor;
@@ -1,4 +1,5 @@
1
- import { isStringElement, MemberElement, BREAK, cloneDeep, toValue } from '@speclynx/apidom-core';
1
+ import { MemberElement, isStringElement, cloneDeep } from '@speclynx/apidom-datamodel';
2
+ import { toValue } from '@speclynx/apidom-core';
2
3
  import SpecificationVisitor from "../SpecificationVisitor.mjs";
3
4
  /**
4
5
  * @public
@@ -23,24 +24,26 @@ class FixedFieldsVisitor extends SpecificationVisitor {
23
24
  this.specPath = specPath;
24
25
  this.ignoredFields = ignoredFields || [];
25
26
  }
26
- ObjectElement(objectElement) {
27
+ ObjectElement(path) {
28
+ const objectElement = path.node;
27
29
  const specPath = this.specPath(objectElement);
28
30
  const fields = this.retrieveFixedFields(specPath);
29
31
 
30
32
  // @ts-ignore
31
33
  objectElement.forEach((value, key, memberElement) => {
32
- if (isStringElement(key) && fields.includes(toValue(key)) && !this.ignoredFields.includes(toValue(key))) {
33
- const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', toValue(key)], value);
34
+ const keyValue = toValue(key);
35
+ if (isStringElement(key) && fields.includes(keyValue) && !this.ignoredFields.includes(keyValue)) {
36
+ const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', keyValue], value);
34
37
  const newMemberElement = new MemberElement(cloneDeep(key), fixedFieldElement);
35
38
  this.copyMetaAndAttributes(memberElement, newMemberElement);
36
39
  newMemberElement.classes.push('fixed-field');
37
40
  this.element.content.push(newMemberElement);
38
- } else if (!this.ignoredFields.includes(toValue(key))) {
41
+ } else if (!this.ignoredFields.includes(keyValue)) {
39
42
  this.element.content.push(cloneDeep(memberElement));
40
43
  }
41
44
  });
42
45
  this.copyMetaAndAttributes(objectElement, this.element);
43
- return BREAK;
46
+ path.stop();
44
47
  }
45
48
  }
46
49
  export default FixedFieldsVisitor;
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _ramda = require("ramda");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
8
  var _apidomCore = require("@speclynx/apidom-core");
8
9
  var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
9
10
  /**
@@ -32,22 +33,24 @@ class PatternedFieldsVisitor extends _SpecificationVisitor.default {
32
33
  this.fieldPatternPredicate = fieldPatternPredicate;
33
34
  }
34
35
  }
35
- ObjectElement(objectElement) {
36
+ ObjectElement(path) {
37
+ const objectElement = path.node;
36
38
  // @ts-ignore
37
39
  objectElement.forEach((value, key, memberElement) => {
38
- if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key)) && this.fieldPatternPredicate((0, _apidomCore.toValue)(key))) {
40
+ const keyValue = (0, _apidomCore.toValue)(key);
41
+ if (!this.ignoredFields.includes(keyValue) && this.fieldPatternPredicate(keyValue)) {
39
42
  const specPath = this.specPath(value);
40
43
  const patternedFieldElement = this.toRefractedElement(specPath, value);
41
- const newMemberElement = new _apidomCore.MemberElement((0, _apidomCore.cloneDeep)(key), patternedFieldElement);
44
+ const newMemberElement = new _apidomDatamodel.MemberElement((0, _apidomDatamodel.cloneDeep)(key), patternedFieldElement);
42
45
  this.copyMetaAndAttributes(memberElement, newMemberElement);
43
46
  newMemberElement.classes.push('patterned-field');
44
47
  this.element.content.push(newMemberElement);
45
- } else if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
46
- this.element.content.push((0, _apidomCore.cloneDeep)(memberElement));
48
+ } else if (!this.ignoredFields.includes(keyValue)) {
49
+ this.element.content.push((0, _apidomDatamodel.cloneDeep)(memberElement));
47
50
  }
48
51
  });
49
52
  this.copyMetaAndAttributes(objectElement, this.element);
50
- return _apidomCore.BREAK;
53
+ path.stop();
51
54
  }
52
55
  }
53
56
  var _default = exports.default = PatternedFieldsVisitor;
@@ -1,5 +1,6 @@
1
1
  import { F as stubFalse } from 'ramda';
2
- import { MemberElement, BREAK, cloneDeep, toValue } from '@speclynx/apidom-core';
2
+ import { MemberElement, cloneDeep } from '@speclynx/apidom-datamodel';
3
+ import { toValue } from '@speclynx/apidom-core';
3
4
  import SpecificationVisitor from "../SpecificationVisitor.mjs";
4
5
  /**
5
6
  * @public
@@ -26,22 +27,24 @@ class PatternedFieldsVisitor extends SpecificationVisitor {
26
27
  this.fieldPatternPredicate = fieldPatternPredicate;
27
28
  }
28
29
  }
29
- ObjectElement(objectElement) {
30
+ ObjectElement(path) {
31
+ const objectElement = path.node;
30
32
  // @ts-ignore
31
33
  objectElement.forEach((value, key, memberElement) => {
32
- if (!this.ignoredFields.includes(toValue(key)) && this.fieldPatternPredicate(toValue(key))) {
34
+ const keyValue = toValue(key);
35
+ if (!this.ignoredFields.includes(keyValue) && this.fieldPatternPredicate(keyValue)) {
33
36
  const specPath = this.specPath(value);
34
37
  const patternedFieldElement = this.toRefractedElement(specPath, value);
35
38
  const newMemberElement = new MemberElement(cloneDeep(key), patternedFieldElement);
36
39
  this.copyMetaAndAttributes(memberElement, newMemberElement);
37
40
  newMemberElement.classes.push('patterned-field');
38
41
  this.element.content.push(newMemberElement);
39
- } else if (!this.ignoredFields.includes(toValue(key))) {
42
+ } else if (!this.ignoredFields.includes(keyValue)) {
40
43
  this.element.content.push(cloneDeep(memberElement));
41
44
  }
42
45
  });
43
46
  this.copyMetaAndAttributes(objectElement, this.element);
44
- return BREAK;
47
+ path.stop();
45
48
  }
46
49
  }
47
50
  export default PatternedFieldsVisitor;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  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 _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
10
- var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  var _predicates = require("../../predicates.cjs");
12
8
  /**
13
9
  * @public
@@ -16,20 +12,21 @@ var _predicates = require("../../predicates.cjs");
16
12
  /**
17
13
  * @public
18
14
  */
19
- class AllOfVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
15
+ class AllOfVisitor extends _bases.AllOfVisitorBase {
20
16
  constructor(options) {
21
17
  super(options);
22
- this.element = new _apidomCore.ArrayElement();
18
+ this.element = new _apidomDatamodel.ArrayElement();
23
19
  this.element.classes.push('json-schema-allOf');
24
20
  }
25
- ArrayElement(arrayElement) {
21
+ ArrayElement(path) {
22
+ const arrayElement = path.node;
26
23
  arrayElement.forEach(item => {
27
24
  const specPath = (0, _predicates.isJSONReferenceLikeElement)(item) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
28
25
  const element = this.toRefractedElement(specPath, item);
29
26
  this.element.push(element);
30
27
  });
31
28
  this.copyMetaAndAttributes(arrayElement, this.element);
32
- return _apidomCore.BREAK;
29
+ path.stop();
33
30
  }
34
31
  }
35
32
  var _default = exports.default = AllOfVisitor;
@@ -1,8 +1,5 @@
1
- import { Mixin } from 'ts-mixer';
2
- import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
- import FallbackVisitor from "../FallbackVisitor.mjs";
4
- import SpecificationVisitor from "../SpecificationVisitor.mjs";
5
- import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
1
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
2
+ import { AllOfVisitorBase } from "./bases.mjs";
6
3
  import { isJSONReferenceLikeElement } from "../../predicates.mjs";
7
4
  /**
8
5
  * @public
@@ -10,20 +7,21 @@ import { isJSONReferenceLikeElement } from "../../predicates.mjs";
10
7
  /**
11
8
  * @public
12
9
  */
13
- class AllOfVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
10
+ class AllOfVisitor extends AllOfVisitorBase {
14
11
  constructor(options) {
15
12
  super(options);
16
13
  this.element = new ArrayElement();
17
14
  this.element.classes.push('json-schema-allOf');
18
15
  }
19
- ArrayElement(arrayElement) {
16
+ ArrayElement(path) {
17
+ const arrayElement = path.node;
20
18
  arrayElement.forEach(item => {
21
19
  const specPath = isJSONReferenceLikeElement(item) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
22
20
  const element = this.toRefractedElement(specPath, item);
23
21
  this.element.push(element);
24
22
  });
25
23
  this.copyMetaAndAttributes(arrayElement, this.element);
26
- return BREAK;
24
+ path.stop();
27
25
  }
28
26
  }
29
27
  export default AllOfVisitor;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  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 _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
10
- var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  var _predicates = require("../../predicates.cjs");
12
8
  /**
13
9
  * @public
@@ -16,20 +12,21 @@ var _predicates = require("../../predicates.cjs");
16
12
  /**
17
13
  * @public
18
14
  */
19
- class AnyOfVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
15
+ class AnyOfVisitor extends _bases.AnyOfVisitorBase {
20
16
  constructor(options) {
21
17
  super(options);
22
- this.element = new _apidomCore.ArrayElement();
18
+ this.element = new _apidomDatamodel.ArrayElement();
23
19
  this.element.classes.push('json-schema-anyOf');
24
20
  }
25
- ArrayElement(arrayElement) {
21
+ ArrayElement(path) {
22
+ const arrayElement = path.node;
26
23
  arrayElement.forEach(item => {
27
24
  const specPath = (0, _predicates.isJSONReferenceLikeElement)(item) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
28
25
  const element = this.toRefractedElement(specPath, item);
29
26
  this.element.push(element);
30
27
  });
31
28
  this.copyMetaAndAttributes(arrayElement, this.element);
32
- return _apidomCore.BREAK;
29
+ path.stop();
33
30
  }
34
31
  }
35
32
  var _default = exports.default = AnyOfVisitor;
@@ -1,8 +1,5 @@
1
- import { Mixin } from 'ts-mixer';
2
- import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
- import FallbackVisitor from "../FallbackVisitor.mjs";
4
- import SpecificationVisitor from "../SpecificationVisitor.mjs";
5
- import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
1
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
2
+ import { AnyOfVisitorBase } from "./bases.mjs";
6
3
  import { isJSONReferenceLikeElement } from "../../predicates.mjs";
7
4
  /**
8
5
  * @public
@@ -10,20 +7,21 @@ import { isJSONReferenceLikeElement } from "../../predicates.mjs";
10
7
  /**
11
8
  * @public
12
9
  */
13
- class AnyOfVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
10
+ class AnyOfVisitor extends AnyOfVisitorBase {
14
11
  constructor(options) {
15
12
  super(options);
16
13
  this.element = new ArrayElement();
17
14
  this.element.classes.push('json-schema-anyOf');
18
15
  }
19
- ArrayElement(arrayElement) {
16
+ ArrayElement(path) {
17
+ const arrayElement = path.node;
20
18
  arrayElement.forEach(item => {
21
19
  const specPath = isJSONReferenceLikeElement(item) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
22
20
  const element = this.toRefractedElement(specPath, item);
23
21
  this.element.push(element);
24
22
  });
25
23
  this.copyMetaAndAttributes(arrayElement, this.element);
26
- return BREAK;
24
+ path.stop();
27
25
  }
28
26
  }
29
27
  export default AnyOfVisitor;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  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"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  var _predicates = require("../../predicates.cjs");
12
8
  /**
13
9
  * @public
@@ -16,10 +12,10 @@ var _predicates = require("../../predicates.cjs");
16
12
  /**
17
13
  * @public
18
14
  */
19
- class DefinitionsVisitor extends (0, _tsMixer.Mixin)(_MapVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
15
+ class DefinitionsVisitor extends _bases.DefinitionsVisitorBase {
20
16
  constructor(options) {
21
17
  super(options);
22
- this.element = new _apidomCore.ObjectElement();
18
+ this.element = new _apidomDatamodel.ObjectElement();
23
19
  this.element.classes.push('json-schema-definitions');
24
20
  this.specPath = element => (0, _predicates.isJSONReferenceLikeElement)(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
25
21
  }
@@ -1,8 +1,5 @@
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";
1
+ import { ObjectElement } from '@speclynx/apidom-datamodel';
2
+ import { DefinitionsVisitorBase } from "./bases.mjs";
6
3
  import { isJSONReferenceLikeElement } from "../../predicates.mjs";
7
4
  /**
8
5
  * @public
@@ -10,7 +7,7 @@ import { isJSONReferenceLikeElement } from "../../predicates.mjs";
10
7
  /**
11
8
  * @public
12
9
  */
13
- class DefinitionsVisitor extends Mixin(MapVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
10
+ class DefinitionsVisitor extends DefinitionsVisitorBase {
14
11
  constructor(options) {
15
12
  super(options);
16
13
  this.element = new ObjectElement();
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  exports.default = void 0;
6
- var _tsMixer = require("ts-mixer");
7
- var _apidomCore = require("@speclynx/apidom-core");
8
- var _MapVisitor = _interopRequireDefault(require("../generics/MapVisitor.cjs"));
9
- var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
10
- var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  var _predicates = require("../../predicates.cjs");
12
8
  /**
13
9
  * @public
@@ -16,10 +12,10 @@ var _predicates = require("../../predicates.cjs");
16
12
  /**
17
13
  * @public
18
14
  */
19
- class DependenciesVisitor extends (0, _tsMixer.Mixin)(_MapVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
15
+ class DependenciesVisitor extends _bases.DependenciesVisitorBase {
20
16
  constructor(options) {
21
17
  super(options);
22
- this.element = new _apidomCore.ObjectElement();
18
+ this.element = new _apidomDatamodel.ObjectElement();
23
19
  this.element.classes.push('json-schema-dependencies');
24
20
  this.specPath = element => (0, _predicates.isJSONReferenceLikeElement)(element) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
25
21
  }
@@ -1,8 +1,5 @@
1
- import { Mixin } from 'ts-mixer';
2
- import { ObjectElement } from '@speclynx/apidom-core';
3
- import MapVisitor from "../generics/MapVisitor.mjs";
4
- import FallbackVisitor from "../FallbackVisitor.mjs";
5
- import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
1
+ import { ObjectElement } from '@speclynx/apidom-datamodel';
2
+ import { DependenciesVisitorBase } from "./bases.mjs";
6
3
  import { isJSONReferenceLikeElement } from "../../predicates.mjs";
7
4
  /**
8
5
  * @public
@@ -10,7 +7,7 @@ import { isJSONReferenceLikeElement } from "../../predicates.mjs";
10
7
  /**
11
8
  * @public
12
9
  */
13
- class DependenciesVisitor extends Mixin(MapVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
10
+ class DependenciesVisitor extends DependenciesVisitorBase {
14
11
  constructor(options) {
15
12
  super(options);
16
13
  this.element = new ObjectElement();
@@ -8,10 +8,9 @@ var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"))
8
8
  * @public
9
9
  */
10
10
  class EnumVisitor extends _FallbackVisitor.default {
11
- ArrayElement(arrayElement) {
12
- const result = this.enter(arrayElement);
11
+ ArrayElement(path) {
12
+ super.enter(path);
13
13
  this.element.classes.push('json-schema-enum');
14
- return result;
15
14
  }
16
15
  }
17
16
  var _default = exports.default = EnumVisitor;
@@ -3,10 +3,9 @@ import FallbackVisitor from "../FallbackVisitor.mjs";
3
3
  * @public
4
4
  */
5
5
  class EnumVisitor extends FallbackVisitor {
6
- ArrayElement(arrayElement) {
7
- const result = this.enter(arrayElement);
6
+ ArrayElement(path) {
7
+ super.enter(path);
8
8
  this.element.classes.push('json-schema-enum');
9
- return result;
10
9
  }
11
10
  }
12
11
  export default EnumVisitor;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  exports.default = void 0;
6
- var _tsMixer = require("ts-mixer");
7
- var _apidomCore = require("@speclynx/apidom-core");
8
- var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
9
- var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
10
- var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  var _predicates = require("../../predicates.cjs");
12
8
  /**
13
9
  * @public
@@ -16,14 +12,16 @@ var _predicates = require("../../predicates.cjs");
16
12
  /**
17
13
  * @public
18
14
  */
19
- class ItemsVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
20
- ObjectElement(objectElement) {
15
+ class ItemsVisitor extends _bases.ItemsVisitorBase {
16
+ ObjectElement(path) {
17
+ const objectElement = path.node;
21
18
  const specPath = (0, _predicates.isJSONReferenceLikeElement)(objectElement) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
22
19
  this.element = this.toRefractedElement(specPath, objectElement);
23
- return _apidomCore.BREAK;
20
+ path.stop();
24
21
  }
25
- ArrayElement(arrayElement) {
26
- this.element = new _apidomCore.ArrayElement();
22
+ ArrayElement(path) {
23
+ const arrayElement = path.node;
24
+ this.element = new _apidomDatamodel.ArrayElement();
27
25
  this.element.classes.push('json-schema-items');
28
26
  arrayElement.forEach(item => {
29
27
  const specPath = (0, _predicates.isJSONReferenceLikeElement)(item) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
@@ -31,7 +29,7 @@ class ItemsVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _P
31
29
  this.element.push(element);
32
30
  });
33
31
  this.copyMetaAndAttributes(arrayElement, this.element);
34
- return _apidomCore.BREAK;
32
+ path.stop();
35
33
  }
36
34
  }
37
35
  var _default = exports.default = ItemsVisitor;
@@ -1,8 +1,5 @@
1
- import { Mixin } from 'ts-mixer';
2
- import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
- import SpecificationVisitor from "../SpecificationVisitor.mjs";
4
- import FallbackVisitor from "../FallbackVisitor.mjs";
5
- import ParentSchemaAwareVisitor from "./ParentSchemaAwareVisitor.mjs";
1
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
2
+ import { ItemsVisitorBase } from "./bases.mjs";
6
3
  import { isJSONReferenceLikeElement } from "../../predicates.mjs";
7
4
  /**
8
5
  * @public
@@ -10,13 +7,15 @@ import { isJSONReferenceLikeElement } from "../../predicates.mjs";
10
7
  /**
11
8
  * @public
12
9
  */
13
- class ItemsVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
14
- ObjectElement(objectElement) {
10
+ class ItemsVisitor extends ItemsVisitorBase {
11
+ ObjectElement(path) {
12
+ const objectElement = path.node;
15
13
  const specPath = isJSONReferenceLikeElement(objectElement) ? ['document', 'objects', 'JSONReference'] : ['document', 'objects', 'JSONSchema'];
16
14
  this.element = this.toRefractedElement(specPath, objectElement);
17
- return BREAK;
15
+ path.stop();
18
16
  }
19
- ArrayElement(arrayElement) {
17
+ ArrayElement(path) {
18
+ const arrayElement = path.node;
20
19
  this.element = new ArrayElement();
21
20
  this.element.classes.push('json-schema-items');
22
21
  arrayElement.forEach(item => {
@@ -25,7 +24,7 @@ class ItemsVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor,
25
24
  this.element.push(element);
26
25
  });
27
26
  this.copyMetaAndAttributes(arrayElement, this.element);
28
- return BREAK;
27
+ path.stop();
29
28
  }
30
29
  }
31
30
  export default ItemsVisitor;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  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 _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
10
- var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAwareVisitor.cjs"));
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ var _bases = require("./bases.cjs");
11
7
  /**
12
8
  * @public
13
9
  */
@@ -15,19 +11,20 @@ var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAw
15
11
  /**
16
12
  * @public
17
13
  */
18
- class LinksVisitor extends (0, _tsMixer.Mixin)(_SpecificationVisitor.default, _ParentSchemaAwareVisitor.default, _FallbackVisitor.default) {
14
+ class LinksVisitor extends _bases.LinksVisitorBase {
19
15
  constructor(options) {
20
16
  super(options);
21
- this.element = new _apidomCore.ArrayElement();
17
+ this.element = new _apidomDatamodel.ArrayElement();
22
18
  this.element.classes.push('json-schema-links');
23
19
  }
24
- ArrayElement(arrayElement) {
20
+ ArrayElement(path) {
21
+ const arrayElement = path.node;
25
22
  arrayElement.forEach(item => {
26
23
  const linkDescriptionElement = this.toRefractedElement(['document', 'objects', 'LinkDescription'], item);
27
24
  this.element.push(linkDescriptionElement);
28
25
  });
29
26
  this.copyMetaAndAttributes(arrayElement, this.element);
30
- return _apidomCore.BREAK;
27
+ path.stop();
31
28
  }
32
29
  }
33
30
  var _default = exports.default = LinksVisitor;