@swagger-api/apidom-ns-json-schema-draft-7 0.68.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 (62) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/LICENSES/Apache-2.0.txt +202 -0
  3. package/LICENSES/MIT.txt +9 -0
  4. package/NOTICE +57 -0
  5. package/README.md +188 -0
  6. package/cjs/elements/JSONSchema.cjs +97 -0
  7. package/cjs/elements/LinkDescription.cjs +107 -0
  8. package/cjs/index.cjs +50 -0
  9. package/cjs/media-types.cjs +24 -0
  10. package/cjs/namespace.cjs +21 -0
  11. package/cjs/predicates.cjs +26 -0
  12. package/cjs/refractor/index.cjs +50 -0
  13. package/cjs/refractor/plugins/replace-empty-element.cjs +237 -0
  14. package/cjs/refractor/registration.cjs +13 -0
  15. package/cjs/refractor/specification.cjs +27 -0
  16. package/cjs/refractor/toolbox.cjs +23 -0
  17. package/cjs/refractor/visitors/json-schema/$commentVisitor.cjs +8 -0
  18. package/cjs/refractor/visitors/json-schema/ContentEncodingVisitor.cjs +8 -0
  19. package/cjs/refractor/visitors/json-schema/ContentMediaTypeVisitor.cjs +8 -0
  20. package/cjs/refractor/visitors/json-schema/WriteOnlyVisitor.cjs +8 -0
  21. package/cjs/refractor/visitors/json-schema/index.cjs +30 -0
  22. package/cjs/refractor/visitors/json-schema/link-description/$commentVisitor.cjs +8 -0
  23. package/cjs/refractor/visitors/json-schema/link-description/AnchorPointerVisitor.cjs +8 -0
  24. package/cjs/refractor/visitors/json-schema/link-description/AnchorVisitor.cjs +8 -0
  25. package/cjs/refractor/visitors/json-schema/link-description/DescriptionVisitor.cjs +8 -0
  26. package/cjs/refractor/visitors/json-schema/link-description/SubmissionMediaTypeVisitor.cjs +8 -0
  27. package/cjs/refractor/visitors/json-schema/link-description/TargetHintsVisitor.cjs +8 -0
  28. package/cjs/refractor/visitors/json-schema/link-description/TargetMediaTypeVisitor.cjs +8 -0
  29. package/cjs/refractor/visitors/json-schema/link-description/TemplatePointersVisitor.cjs +8 -0
  30. package/cjs/refractor/visitors/json-schema/link-description/TemplateRequiredVisitor.cjs +8 -0
  31. package/cjs/refractor/visitors/json-schema/link-description/index.cjs +19 -0
  32. package/cjs/traversal/visitor.cjs +20 -0
  33. package/dist/apidom-ns-json-schema-draft-7.browser.js +1 -0
  34. package/es/elements/JSONSchema.js +93 -0
  35. package/es/elements/LinkDescription.js +103 -0
  36. package/es/index.js +14 -0
  37. package/es/media-types.js +18 -0
  38. package/es/namespace.js +15 -0
  39. package/es/predicates.js +18 -0
  40. package/es/refractor/index.js +45 -0
  41. package/es/refractor/plugins/replace-empty-element.js +229 -0
  42. package/es/refractor/registration.js +6 -0
  43. package/es/refractor/specification.js +21 -0
  44. package/es/refractor/toolbox.js +17 -0
  45. package/es/refractor/visitors/json-schema/$commentVisitor.js +3 -0
  46. package/es/refractor/visitors/json-schema/ContentEncodingVisitor.js +3 -0
  47. package/es/refractor/visitors/json-schema/ContentMediaTypeVisitor.js +3 -0
  48. package/es/refractor/visitors/json-schema/WriteOnlyVisitor.js +3 -0
  49. package/es/refractor/visitors/json-schema/index.js +24 -0
  50. package/es/refractor/visitors/json-schema/link-description/$commentVisitor.js +3 -0
  51. package/es/refractor/visitors/json-schema/link-description/AnchorPointerVisitor.js +3 -0
  52. package/es/refractor/visitors/json-schema/link-description/AnchorVisitor.js +3 -0
  53. package/es/refractor/visitors/json-schema/link-description/DescriptionVisitor.js +3 -0
  54. package/es/refractor/visitors/json-schema/link-description/SubmissionMediaTypeVisitor.js +3 -0
  55. package/es/refractor/visitors/json-schema/link-description/TargetHintsVisitor.js +3 -0
  56. package/es/refractor/visitors/json-schema/link-description/TargetMediaTypeVisitor.js +3 -0
  57. package/es/refractor/visitors/json-schema/link-description/TemplatePointersVisitor.js +3 -0
  58. package/es/refractor/visitors/json-schema/link-description/TemplateRequiredVisitor.js +3 -0
  59. package/es/refractor/visitors/json-schema/link-description/index.js +13 -0
  60. package/es/traversal/visitor.js +17 -0
  61. package/package.json +63 -0
  62. package/types/dist.d.ts +311 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
6
+ /* eslint-disable class-methods-use-this */
7
+
8
+ class JSONSchema extends _apidomNsJsonSchemaDraft.JSONSchemaElement {
9
+ constructor(content, meta, attributes) {
10
+ super(content, meta, attributes);
11
+ this.element = 'JSONSchemaDraft7';
12
+ }
13
+
14
+ /**
15
+ * Core vocabulary
16
+ *
17
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01
18
+ */
19
+
20
+ get $comment() {
21
+ return this.get('$comment');
22
+ }
23
+ set $comment($comment) {
24
+ this.set('$comment', $comment);
25
+ }
26
+
27
+ /**
28
+ * Validation vocabulary
29
+ *
30
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01
31
+ */
32
+
33
+ /**
34
+ * Keywords for Applying Subschemas Conditionally
35
+ *
36
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-6.6
37
+ */
38
+
39
+ get if() {
40
+ return this.get('if');
41
+ }
42
+ set if(ifValue) {
43
+ this.set('if', ifValue);
44
+ }
45
+ get then() {
46
+ return this.get('then');
47
+ }
48
+ set then(then) {
49
+ this.set('then', then);
50
+ }
51
+ get else() {
52
+ return this.get('else');
53
+ }
54
+ set else(elseValue) {
55
+ this.set('else', elseValue);
56
+ }
57
+
58
+ /**
59
+ * String-Encoding Non-JSON Data
60
+ *
61
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-00#section-8
62
+ */
63
+
64
+ get contentEncoding() {
65
+ return this.get('contentEncoding');
66
+ }
67
+ set contentEncoding(contentEncoding) {
68
+ this.set('contentEncoding', contentEncoding);
69
+ }
70
+ get contentMediaType() {
71
+ return this.get('contentMediaType');
72
+ }
73
+ set contentMediaType(contentMediaType) {
74
+ this.set('contentMediaType', contentMediaType);
75
+ }
76
+ get media() {
77
+ throw new Error('media keyword from Hyper-Schema vocabulary has been moved to validation vocabulary as "contentMediaType" / "contentEncoding"');
78
+ }
79
+ set media(media) {
80
+ throw new Error('media keyword from Hyper-Schema vocabulary has been moved to validation vocabulary as "contentMediaType" / "contentEncoding"');
81
+ }
82
+
83
+ /**
84
+ * Schema annotations
85
+ *
86
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-10
87
+ */
88
+
89
+ get writeOnly() {
90
+ return this.get('writeOnly');
91
+ }
92
+ set writeOnly(writeOnly) {
93
+ this.set('writeOnly', writeOnly);
94
+ }
95
+ }
96
+ var _default = JSONSchema;
97
+ exports.default = _default;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
6
+ /* eslint-disable class-methods-use-this */
7
+
8
+ /**
9
+ * URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-hyperschema-01#section-6
10
+ */
11
+
12
+ class LinkDescription extends _apidomNsJsonSchemaDraft.LinkDescriptionElement {
13
+ /**
14
+ * Link context.
15
+ *
16
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-01#section-6.1
17
+ */
18
+
19
+ get anchor() {
20
+ return this.get('anchor');
21
+ }
22
+ set anchor(anchor) {
23
+ this.set('anchor', anchor);
24
+ }
25
+ get anchorPointer() {
26
+ return this.get('anchorPointer');
27
+ }
28
+ set anchorPointer(anchorPointer) {
29
+ this.set('anchorPointer', anchorPointer);
30
+ }
31
+
32
+ /**
33
+ * Adjusting URI Template Resolution.
34
+ *
35
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-01#section-6.4
36
+ */
37
+
38
+ get templatePointers() {
39
+ return this.get('templatePointers');
40
+ }
41
+ set templatePointers(templatePointers) {
42
+ this.set('templatePointers', templatePointers);
43
+ }
44
+ get templateRequired() {
45
+ return this.get('templateRequired');
46
+ }
47
+ set templateRequired(templateRequired) {
48
+ this.set('templateRequired', templateRequired);
49
+ }
50
+
51
+ /**
52
+ * Link Target Attributes.
53
+ *
54
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-01#section-6.5
55
+ */
56
+
57
+ get mediaType() {
58
+ throw new Error('mediaType keyword from Hyper-Schema vocabulary has been renamed to targetMediaType.');
59
+ }
60
+ set mediaType(mediaType) {
61
+ throw new Error('mediaType keyword from Hyper-Schema vocabulary has been renamed to targetMediaType.');
62
+ }
63
+ get targetMediaType() {
64
+ return this.get('targetMediaType');
65
+ }
66
+ set targetMediaType(targetMediaType) {
67
+ this.set('targetMediaType', targetMediaType);
68
+ }
69
+ get targetHints() {
70
+ return this.get('targetHints');
71
+ }
72
+ set targetHints(targetHints) {
73
+ this.set('targetHints', targetHints);
74
+ }
75
+ get description() {
76
+ return this.get('description');
77
+ }
78
+ set description(description) {
79
+ this.set('description', description);
80
+ }
81
+ get $comment() {
82
+ return this.get('$comment');
83
+ }
84
+ set $comment($comment) {
85
+ this.set('$comment', $comment);
86
+ }
87
+
88
+ /**
89
+ * Submitting Data for Processing.
90
+ *
91
+ * URI: https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-01#section-6.6.4
92
+ */
93
+ get submissionEncType() {
94
+ throw new Error('submissionEncType keyword from Hyper-Schema vocabulary has been renamed to submissionMediaType.');
95
+ }
96
+ set submissionEncType(submissionEncType) {
97
+ throw new Error('submissionEncType keyword from Hyper-Schema vocabulary has been renamed to submissionMediaType.');
98
+ }
99
+ get submissionMediaType() {
100
+ return this.get('submissionMediaType');
101
+ }
102
+ set submissionMediaType(submissionMediaType) {
103
+ this.set('submissionMediaType', submissionMediaType);
104
+ }
105
+ }
106
+ var _default = LinkDescription;
107
+ exports.default = _default;
package/cjs/index.cjs ADDED
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.specificationObj = exports.refractorPluginReplaceEmptyElement = exports.refract = exports.mediaTypes = exports.keyMap = exports.isStringElement = exports.isRefElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isLinkDescriptionElement = exports.isJSONSchemaElement = exports.isJSONReferenceLikeElement = exports.isJSONReferenceElement = exports.isElement = exports.isBooleanElement = exports.isArrayElement = exports.getNodeType = exports.default = exports.createRefractor = exports.SpecificationVisitor = exports.PatternedFieldsVisitor = exports.ParentSchemaAwareVisitor = exports.MapVisitor = exports.LinkDescriptionElement = exports.JSONSchemaElement = exports.JSONSchemaDraft7MediaTypes = exports.JSONReferenceElement = exports.FixedFieldsVisitor = exports.FallbackVisitor = exports.AlternatingVisitor = void 0;
6
+ var _apidomCore = require("@swagger-api/apidom-core");
7
+ exports.isRefElement = _apidomCore.isRefElement;
8
+ exports.isLinkElement = _apidomCore.isLinkElement;
9
+ exports.isMemberElement = _apidomCore.isMemberElement;
10
+ exports.isObjectElement = _apidomCore.isObjectElement;
11
+ exports.isArrayElement = _apidomCore.isArrayElement;
12
+ exports.isBooleanElement = _apidomCore.isBooleanElement;
13
+ exports.isNullElement = _apidomCore.isNullElement;
14
+ exports.isElement = _apidomCore.isElement;
15
+ exports.isNumberElement = _apidomCore.isNumberElement;
16
+ exports.isStringElement = _apidomCore.isStringElement;
17
+ var _mediaTypes = _interopRequireWildcard(require("./media-types.cjs"));
18
+ exports.mediaTypes = _mediaTypes.default;
19
+ exports.JSONSchemaDraft7MediaTypes = _mediaTypes.JSONSchemaDraft7MediaTypes;
20
+ var _namespace = _interopRequireDefault(require("./namespace.cjs"));
21
+ exports.default = _namespace.default;
22
+ var _replaceEmptyElement = _interopRequireDefault(require("./refractor/plugins/replace-empty-element.cjs"));
23
+ exports.refractorPluginReplaceEmptyElement = _replaceEmptyElement.default;
24
+ var _index = _interopRequireWildcard(require("./refractor/index.cjs"));
25
+ exports.refract = _index.default;
26
+ exports.createRefractor = _index.createRefractor;
27
+ var _specification = _interopRequireDefault(require("./refractor/specification.cjs"));
28
+ exports.specificationObj = _specification.default;
29
+ var _predicates = require("./predicates.cjs");
30
+ exports.isJSONReferenceElement = _predicates.isJSONReferenceElement;
31
+ exports.isJSONSchemaElement = _predicates.isJSONSchemaElement;
32
+ exports.isLinkDescriptionElement = _predicates.isLinkDescriptionElement;
33
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
34
+ exports.isJSONReferenceLikeElement = _apidomNsJsonSchemaDraft.isJSONReferenceLikeElement;
35
+ exports.SpecificationVisitor = _apidomNsJsonSchemaDraft.SpecificationVisitor;
36
+ exports.FallbackVisitor = _apidomNsJsonSchemaDraft.FallbackVisitor;
37
+ exports.FixedFieldsVisitor = _apidomNsJsonSchemaDraft.FixedFieldsVisitor;
38
+ exports.PatternedFieldsVisitor = _apidomNsJsonSchemaDraft.PatternedFieldsVisitor;
39
+ exports.MapVisitor = _apidomNsJsonSchemaDraft.MapVisitor;
40
+ exports.AlternatingVisitor = _apidomNsJsonSchemaDraft.AlternatingVisitor;
41
+ exports.ParentSchemaAwareVisitor = _apidomNsJsonSchemaDraft.ParentSchemaAwareVisitor;
42
+ exports.JSONReferenceElement = _apidomNsJsonSchemaDraft.JSONReferenceElement;
43
+ var _visitor = require("./traversal/visitor.cjs");
44
+ exports.keyMap = _visitor.keyMap;
45
+ exports.getNodeType = _visitor.getNodeType;
46
+ var _registration = require("./refractor/registration.cjs");
47
+ exports.JSONSchemaElement = _registration.JSONSchemaElement;
48
+ exports.LinkDescriptionElement = _registration.LinkDescriptionElement;
49
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
50
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = exports.JSONSchemaDraft7MediaTypes = void 0;
5
+ var _ramda = require("ramda");
6
+ var _apidomCore = require("@swagger-api/apidom-core");
7
+ class JSONSchemaDraft7MediaTypes extends _apidomCore.MediaTypes {
8
+ filterByFormat(format = 'generic') {
9
+ const effectiveFormat = format === 'generic' ? 'schema;version' : format;
10
+ return this.filter(mediaType => mediaType.includes(effectiveFormat));
11
+ }
12
+ findBy(version = 'draft-07', format = 'generic') {
13
+ const search = format === 'generic' ? `schema;version=${version}` : `schema+${format};version=${version}`;
14
+ const found = this.find(mediaType => mediaType.includes(search));
15
+ return found || this.unknownMediaType;
16
+ }
17
+ latest(format = 'generic') {
18
+ return (0, _ramda.last)(this.filterByFormat(format));
19
+ }
20
+ }
21
+ exports.JSONSchemaDraft7MediaTypes = JSONSchemaDraft7MediaTypes;
22
+ const mediaTypes = new JSONSchemaDraft7MediaTypes('application/schema;version=draft-07', 'application/schema+json;version=draft-07', 'application/schema+yaml;version=draft-07');
23
+ var _default = mediaTypes;
24
+ exports.default = _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
7
+ var _JSONSchema = _interopRequireDefault(require("./elements/JSONSchema.cjs"));
8
+ var _LinkDescription = _interopRequireDefault(require("./elements/LinkDescription.cjs"));
9
+ const jsonSchemaDraft7 = {
10
+ namespace: options => {
11
+ const {
12
+ base
13
+ } = options;
14
+ base.register('jSONSchemaDraft7', _JSONSchema.default);
15
+ base.register('jSONReference', _apidomNsJsonSchemaDraft.JSONReferenceElement);
16
+ base.register('linkDescription', _LinkDescription.default);
17
+ return base;
18
+ }
19
+ };
20
+ var _default = jsonSchemaDraft7;
21
+ exports.default = _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.isLinkDescriptionElement = exports.isJSONSchemaElement = exports.isJSONReferenceElement = void 0;
6
+ var _apidomCore = require("@swagger-api/apidom-core");
7
+ var _JSONSchema = _interopRequireDefault(require("./elements/JSONSchema.cjs"));
8
+ var _LinkDescription = _interopRequireDefault(require("./elements/LinkDescription.cjs"));
9
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
10
+ exports.isJSONReferenceElement = _apidomNsJsonSchemaDraft.isJSONReferenceElement;
11
+ const isJSONSchemaElement = (0, _apidomCore.createPredicate)(({
12
+ hasBasicElementProps,
13
+ isElementType,
14
+ primitiveEq
15
+ }) => {
16
+ return element => element instanceof _JSONSchema.default || hasBasicElementProps(element) && isElementType('JSONSchemaDraft7', element) && primitiveEq('object', element);
17
+ });
18
+ exports.isJSONSchemaElement = isJSONSchemaElement;
19
+ const isLinkDescriptionElement = (0, _apidomCore.createPredicate)(({
20
+ hasBasicElementProps,
21
+ isElementType,
22
+ primitiveEq
23
+ }) => {
24
+ return element => element instanceof _LinkDescription.default || hasBasicElementProps(element) && isElementType('linkDescription', element) && primitiveEq('object', element);
25
+ });
26
+ exports.isLinkDescriptionElement = isLinkDescriptionElement;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = exports.createRefractor = void 0;
6
+ var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _apidomCore = require("@swagger-api/apidom-core");
8
+ var _specification = _interopRequireDefault(require("./specification.cjs"));
9
+ var _visitor = require("../traversal/visitor.cjs");
10
+ var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
11
+ const refract = (value, {
12
+ specPath = ['visitors', 'document', 'objects', 'JSONSchema', '$visitor'],
13
+ plugins = [],
14
+ specificationObj = _specification.default
15
+ } = {}) => {
16
+ const element = (0, _apidomCore.refract)(value);
17
+ const resolvedSpec = (0, _apidomCore.dereference)(specificationObj);
18
+
19
+ /**
20
+ * This is where generic ApiDOM becomes semantic (namespace applied).
21
+ * We don't allow consumers to hook into this translation.
22
+ * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
23
+ */
24
+ const rootVisitor = (0, _ramdaAdjunct.invokeArgs)(specPath, [], resolvedSpec);
25
+ // @ts-ignore
26
+ (0, _apidomCore.visit)(element, rootVisitor, {
27
+ state: {
28
+ specObj: resolvedSpec
29
+ }
30
+ });
31
+
32
+ /**
33
+ * Run plugins only when necessary.
34
+ * Running plugins visitors means extra single traversal === performance hit.
35
+ */
36
+ return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
37
+ toolboxCreator: _toolbox.default,
38
+ visitorOptions: {
39
+ keyMap: _visitor.keyMap,
40
+ nodeTypeGetter: _visitor.getNodeType
41
+ }
42
+ });
43
+ };
44
+ const createRefractor = specPath => (value, options = {}) => refract(value, {
45
+ specPath,
46
+ ...options
47
+ });
48
+ exports.createRefractor = createRefractor;
49
+ var _default = refract;
50
+ exports.default = _default;
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _apidomCore = require("@swagger-api/apidom-core");
7
+ var _JSONSchema = _interopRequireDefault(require("../../elements/JSONSchema.cjs"));
8
+ var _LinkDescription = _interopRequireDefault(require("../../elements/LinkDescription.cjs"));
9
+ var _visitor = require("../../traversal/visitor.cjs");
10
+ /**
11
+ * JSON Schema Draft 7 specification elements.
12
+ */
13
+
14
+ /**
15
+ * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
16
+ * with empty key, empty value, or both. If the value is not provided in YAML format,
17
+ * this plugin compensates for this missing value with the most appropriate semantic element type.
18
+ *
19
+ * https://yaml.org/spec/1.2.2/#72-empty-nodes
20
+ *
21
+ * @example
22
+ *
23
+ * ```yaml
24
+ * $schema: http://json-schema.org/draft-07/schema#
25
+ * items:
26
+ * ```
27
+ * Refracting result without this plugin:
28
+ *
29
+ * (JSONSchemaElement
30
+ * (MemberElement
31
+ * (StringElement)
32
+ * (StringElement))
33
+ * (MemberElement
34
+ * (StringElement)
35
+ * (StringElement))
36
+ *
37
+ * Refracting result with this plugin:
38
+ *
39
+ * (JSONSchemaElement
40
+ * (MemberElement
41
+ * (StringElement)
42
+ * (StringElement))
43
+ * (MemberElement
44
+ * (StringElement)
45
+ * (JSONSchemaElement))
46
+ */
47
+
48
+ const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
49
+ const schema = {
50
+ JSONSchemaDraft7Element: {
51
+ additionalItems(...args) {
52
+ return new _JSONSchema.default(...args);
53
+ },
54
+ items(...args) {
55
+ return new _JSONSchema.default(...args);
56
+ },
57
+ contains(...args) {
58
+ return new _JSONSchema.default(...args);
59
+ },
60
+ required(...args) {
61
+ const element = new _apidomCore.ArrayElement(...args);
62
+ element.classes.push('json-schema-required');
63
+ return element;
64
+ },
65
+ properties(...args) {
66
+ const element = new _apidomCore.ObjectElement(...args);
67
+ element.classes.push('json-schema-properties');
68
+ return element;
69
+ },
70
+ additionalProperties(...args) {
71
+ return new _JSONSchema.default(...args);
72
+ },
73
+ patternProperties(...args) {
74
+ const element = new _apidomCore.ObjectElement(...args);
75
+ element.classes.push('json-schema-patternProperties');
76
+ return element;
77
+ },
78
+ dependencies(...args) {
79
+ const element = new _apidomCore.ObjectElement(...args);
80
+ element.classes.push('json-schema-dependencies');
81
+ return element;
82
+ },
83
+ propertyNames(...args) {
84
+ return new _JSONSchema.default(...args);
85
+ },
86
+ enum(...args) {
87
+ const element = new _apidomCore.ArrayElement(...args);
88
+ element.classes.push('json-schema-enum');
89
+ return element;
90
+ },
91
+ allOf(...args) {
92
+ const element = new _apidomCore.ArrayElement(...args);
93
+ element.classes.push('json-schema-allOf');
94
+ return element;
95
+ },
96
+ anyOf(...args) {
97
+ const element = new _apidomCore.ArrayElement(...args);
98
+ element.classes.push('json-schema-anyOf');
99
+ return element;
100
+ },
101
+ oneOf(...args) {
102
+ const element = new _apidomCore.ArrayElement(...args);
103
+ element.classes.push('json-schema-oneOf');
104
+ return element;
105
+ },
106
+ if(...args) {
107
+ return new _JSONSchema.default(...args);
108
+ },
109
+ then(...args) {
110
+ return new _JSONSchema.default(...args);
111
+ },
112
+ else(...args) {
113
+ return new _JSONSchema.default(...args);
114
+ },
115
+ not(...args) {
116
+ return new _JSONSchema.default(...args);
117
+ },
118
+ definitions(...args) {
119
+ const element = new _apidomCore.ObjectElement(...args);
120
+ element.classes.push('json-schema-definitions');
121
+ return element;
122
+ },
123
+ examples(...args) {
124
+ const element = new _apidomCore.ArrayElement(...args);
125
+ element.classes.push('json-schema-examples');
126
+ return element;
127
+ },
128
+ links(...args) {
129
+ const element = new _apidomCore.ArrayElement(...args);
130
+ element.classes.push('json-schema-links');
131
+ return element;
132
+ }
133
+ },
134
+ LinkDescriptionElement: {
135
+ hrefSchema(...args) {
136
+ return new _JSONSchema.default(...args);
137
+ },
138
+ targetSchema(...args) {
139
+ return new _JSONSchema.default(...args);
140
+ },
141
+ submissionSchema(...args) {
142
+ return new _JSONSchema.default(...args);
143
+ },
144
+ templatePointers(...args) {
145
+ return new _apidomCore.ObjectElement(...args);
146
+ },
147
+ templateRequired(...args) {
148
+ return new _apidomCore.ArrayElement(...args);
149
+ },
150
+ targetHints(...args) {
151
+ return new _apidomCore.ObjectElement(...args);
152
+ }
153
+ },
154
+ 'json-schema-properties': {
155
+ '[key: *]': function key(...args) {
156
+ return new _JSONSchema.default(...args);
157
+ }
158
+ },
159
+ 'json-schema-patternProperties': {
160
+ '[key: *]': function key(...args) {
161
+ return new _JSONSchema.default(...args);
162
+ }
163
+ },
164
+ 'json-schema-dependencies': {
165
+ '[key: *]': function key(...args) {
166
+ return new _JSONSchema.default(...args);
167
+ }
168
+ },
169
+ 'json-schema-allOf': {
170
+ '<*>': function asterisk(...args) {
171
+ return new _JSONSchema.default(...args);
172
+ }
173
+ },
174
+ 'json-schema-anyOf': {
175
+ '<*>': function asterisk(...args) {
176
+ return new _JSONSchema.default(...args);
177
+ }
178
+ },
179
+ 'json-schema-oneOf': {
180
+ '<*>': function asterisk(...args) {
181
+ return new _JSONSchema.default(...args);
182
+ }
183
+ },
184
+ 'json-schema-definitions': {
185
+ '[key: *]': function key(...args) {
186
+ return new _JSONSchema.default(...args);
187
+ }
188
+ },
189
+ 'json-schema-links': {
190
+ '<*>': function asterisk(...args) {
191
+ return new _LinkDescription.default(...args);
192
+ }
193
+ }
194
+ };
195
+ const findElementFactory = (ancestor, keyName) => {
196
+ var _ancestor$classes$fir, _ancestor$classes$fir2;
197
+ const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
198
+ const keyMapping = schema[elementType] || schema[(_ancestor$classes$fir = ancestor.classes.first) === null || _ancestor$classes$fir === void 0 ? void 0 : (_ancestor$classes$fir2 = _ancestor$classes$fir.toValue) === null || _ancestor$classes$fir2 === void 0 ? void 0 : _ancestor$classes$fir2.call(_ancestor$classes$fir)];
199
+ return typeof keyMapping === 'undefined' ? undefined : Object.prototype.hasOwnProperty.call(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
200
+ };
201
+ const plugin = () => () => {
202
+ return {
203
+ visitor: {
204
+ MemberElement(element, ...rest) {
205
+ // no empty Element, continue with next one
206
+ if (!isEmptyElement(element.value)) return undefined;
207
+ const [,,, ancestors] = rest;
208
+ const ancestor = ancestors[ancestors.length - 1]; // @ts-ignore
209
+ const elementFactory = findElementFactory(ancestor, element.key.toValue());
210
+
211
+ // no element factory found
212
+ if (typeof elementFactory === 'undefined') return undefined;
213
+ const originalValue = element.value;
214
+ return new _apidomCore.MemberElement(element.key, elementFactory.call({
215
+ context: ancestor
216
+ }, undefined, originalValue.meta.clone(), originalValue.attributes.clone()), element.meta.clone(), element.attributes.clone());
217
+ },
218
+ StringElement(element, ...rest) {
219
+ if (!isEmptyElement(element)) return undefined;
220
+ const [,,, ancestors] = rest;
221
+ const ancestor = ancestors[ancestors.length - 1];
222
+
223
+ // we're only interested in empty elements in ArrayElements
224
+ if (!(0, _apidomCore.isArrayElement)(ancestor)) return undefined;
225
+ const elementFactory = findElementFactory(ancestor, '<*>');
226
+
227
+ // no element factory found
228
+ if (typeof elementFactory === 'undefined') return undefined;
229
+ return elementFactory.call({
230
+ context: element
231
+ }, undefined, element.meta.clone(), element.attributes.clone());
232
+ }
233
+ }
234
+ };
235
+ };
236
+ var _default = plugin;
237
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ var _JSONSchema = _interopRequireDefault(require("../elements/JSONSchema.cjs"));
6
+ exports.JSONSchemaElement = _JSONSchema.default;
7
+ var _LinkDescription = _interopRequireDefault(require("../elements/LinkDescription.cjs"));
8
+ exports.LinkDescriptionElement = _LinkDescription.default;
9
+ var _index = require("./index.cjs");
10
+ // register refractors specific to element types
11
+
12
+ _JSONSchema.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'JSONSchema', '$visitor']);
13
+ _LinkDescription.default.refract = (0, _index.createRefractor)(['visitors', 'document', 'objects', 'LinkDescription', '$visitor']);
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _ramda = require("ramda");
7
+ var _apidomNsJsonSchemaDraft = require("@swagger-api/apidom-ns-json-schema-draft-6");
8
+ var _index = _interopRequireDefault(require("./visitors/json-schema/index.cjs"));
9
+ var _$commentVisitor = _interopRequireDefault(require("./visitors/json-schema/$commentVisitor.cjs"));
10
+ var _ContentEncodingVisitor = _interopRequireDefault(require("./visitors/json-schema/ContentEncodingVisitor.cjs"));
11
+ var _ContentMediaTypeVisitor = _interopRequireDefault(require("./visitors/json-schema/ContentMediaTypeVisitor.cjs"));
12
+ var _WriteOnlyVisitor = _interopRequireDefault(require("./visitors/json-schema/WriteOnlyVisitor.cjs"));
13
+ var _index2 = _interopRequireDefault(require("./visitors/json-schema/link-description/index.cjs"));
14
+ var _AnchorVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/AnchorVisitor.cjs"));
15
+ var _AnchorPointerVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/AnchorPointerVisitor.cjs"));
16
+ var _TargetMediaTypeVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/TargetMediaTypeVisitor.cjs"));
17
+ var _TargetHintsVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/TargetHintsVisitor.cjs"));
18
+ var _DescriptionVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/DescriptionVisitor.cjs"));
19
+ var _$commentVisitor2 = _interopRequireDefault(require("./visitors/json-schema/link-description/$commentVisitor.cjs"));
20
+ var _SubmissionMediaTypeVisitor = _interopRequireDefault(require("./visitors/json-schema/link-description/SubmissionMediaTypeVisitor.cjs"));
21
+ const specification = (0, _ramda.pipe)(
22
+ // JSON Schema object modifications
23
+ (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$comment'], _$commentVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], _apidomNsJsonSchemaDraft.specificationObj.visitors.JSONSchemaOrJSONReferenceVisitor), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], _apidomNsJsonSchemaDraft.specificationObj.visitors.JSONSchemaOrJSONReferenceVisitor), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], _apidomNsJsonSchemaDraft.specificationObj.visitors.JSONSchemaOrJSONReferenceVisitor), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'media']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentEncoding'], _ContentEncodingVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentMediaType'], _ContentMediaTypeVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'writeOnly'], _WriteOnlyVisitor.default),
24
+ // Link Description object modifications
25
+ (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], _index2.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'anchor'], _AnchorVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'anchorPointer'], _AnchorPointerVisitor.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'mediaType']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetMediaType'], _TargetMediaTypeVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetHints'], _TargetHintsVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'description'], _DescriptionVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', '$comment'], _$commentVisitor2.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionEncType']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionMediaType'], _SubmissionMediaTypeVisitor.default))(_apidomNsJsonSchemaDraft.specificationObj);
26
+ var _default = specification;
27
+ exports.default = _default;