@speclynx/apidom-ns-json-schema-2019-09 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 (61) 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 +186 -0
  9. package/dist/apidom-ns-json-schema-2019-09.browser.js +1 -0
  10. package/package.json +65 -0
  11. package/src/elements/JSONSchema.cjs +214 -0
  12. package/src/elements/JSONSchema.mjs +211 -0
  13. package/src/elements/LinkDescription.cjs +48 -0
  14. package/src/elements/LinkDescription.mjs +44 -0
  15. package/src/index.cjs +73 -0
  16. package/src/index.mjs +26 -0
  17. package/src/media-types.cjs +34 -0
  18. package/src/media-types.mjs +30 -0
  19. package/src/namespace.cjs +21 -0
  20. package/src/namespace.mjs +16 -0
  21. package/src/predicates.cjs +29 -0
  22. package/src/predicates.mjs +24 -0
  23. package/src/refractor/index.cjs +54 -0
  24. package/src/refractor/index.mjs +48 -0
  25. package/src/refractor/plugins/replace-empty-element.cjs +257 -0
  26. package/src/refractor/plugins/replace-empty-element.mjs +250 -0
  27. package/src/refractor/registration.cjs +13 -0
  28. package/src/refractor/registration.mjs +6 -0
  29. package/src/refractor/specification.cjs +26 -0
  30. package/src/refractor/specification.mjs +21 -0
  31. package/src/refractor/toolbox.cjs +21 -0
  32. package/src/refractor/toolbox.mjs +15 -0
  33. package/src/refractor/visitors/json-schema/$defsVisitor.cjs +24 -0
  34. package/src/refractor/visitors/json-schema/$defsVisitor.mjs +21 -0
  35. package/src/refractor/visitors/json-schema/$refVisitor.cjs +16 -0
  36. package/src/refractor/visitors/json-schema/$refVisitor.mjs +12 -0
  37. package/src/refractor/visitors/json-schema/$vocabularyVisitor.cjs +16 -0
  38. package/src/refractor/visitors/json-schema/$vocabularyVisitor.mjs +12 -0
  39. package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +30 -0
  40. package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +27 -0
  41. package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +30 -0
  42. package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +27 -0
  43. package/src/refractor/visitors/json-schema/DependentRequiredVisitor.cjs +16 -0
  44. package/src/refractor/visitors/json-schema/DependentRequiredVisitor.mjs +12 -0
  45. package/src/refractor/visitors/json-schema/DependentSchemasVisitor.cjs +24 -0
  46. package/src/refractor/visitors/json-schema/DependentSchemasVisitor.mjs +21 -0
  47. package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +35 -0
  48. package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +32 -0
  49. package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +30 -0
  50. package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +27 -0
  51. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +24 -0
  52. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +21 -0
  53. package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +24 -0
  54. package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +21 -0
  55. package/src/refractor/visitors/json-schema/index.cjs +36 -0
  56. package/src/refractor/visitors/json-schema/index.mjs +31 -0
  57. package/src/refractor/visitors/json-schema/link-description/index.cjs +17 -0
  58. package/src/refractor/visitors/json-schema/link-description/index.mjs +12 -0
  59. package/src/traversal/visitor.cjs +15 -0
  60. package/src/traversal/visitor.mjs +11 -0
  61. package/types/apidom-ns-json-schema-2019-09.d.ts +648 -0
@@ -0,0 +1,250 @@
1
+ import { ArrayElement, ObjectElement, isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
2
+ /**
3
+ * JSON Schema 2019-09 specification elements.
4
+ */
5
+ import JSONSchemaElement from "../../elements/JSONSchema.mjs";
6
+ import LinkDescriptionElement from "../../elements/LinkDescription.mjs";
7
+ import { getNodeType } from "../../traversal/visitor.mjs";
8
+ /**
9
+ * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
10
+ * with empty key, empty value, or both. If the value is not provided in YAML format,
11
+ * this plugin compensates for this missing value with the most appropriate semantic element type.
12
+ *
13
+ * https://yaml.org/spec/1.2.2/#72-empty-nodes
14
+ *
15
+ * @example
16
+ *
17
+ * ```yaml
18
+ * $schema: https://json-schema.org/draft/2019-09/schema
19
+ * items:
20
+ * ```
21
+ * Refracting result without this plugin:
22
+ *
23
+ * (JSONSchemaElement
24
+ * (MemberElement
25
+ * (StringElement)
26
+ * (StringElement))
27
+ * (MemberElement
28
+ * (StringElement)
29
+ * (StringElement))
30
+ *
31
+ * Refracting result with this plugin:
32
+ *
33
+ * (JSONSchemaElement
34
+ * (MemberElement
35
+ * (StringElement)
36
+ * (StringElement))
37
+ * (MemberElement
38
+ * (StringElement)
39
+ * (JSONSchemaElement))
40
+ */
41
+ const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
42
+ const schema = {
43
+ JSONSchema201909Element: {
44
+ additionalItems(...args) {
45
+ return new JSONSchemaElement(...args);
46
+ },
47
+ items(...args) {
48
+ return new JSONSchemaElement(...args);
49
+ },
50
+ contains(...args) {
51
+ return new JSONSchemaElement(...args);
52
+ },
53
+ required(...args) {
54
+ const element = new ArrayElement(...args);
55
+ element.classes.push('json-schema-required');
56
+ return element;
57
+ },
58
+ properties(...args) {
59
+ const element = new ObjectElement(...args);
60
+ element.classes.push('json-schema-properties');
61
+ return element;
62
+ },
63
+ additionalProperties(...args) {
64
+ return new JSONSchemaElement(...args);
65
+ },
66
+ patternProperties(...args) {
67
+ const element = new ObjectElement(...args);
68
+ element.classes.push('json-schema-patternProperties');
69
+ return element;
70
+ },
71
+ dependentSchemas(...args) {
72
+ const element = new ObjectElement(...args);
73
+ element.classes.push('json-schema-dependentSchemas');
74
+ return element;
75
+ },
76
+ propertyNames(...args) {
77
+ return new JSONSchemaElement(...args);
78
+ },
79
+ enum(...args) {
80
+ const element = new ArrayElement(...args);
81
+ element.classes.push('json-schema-enum');
82
+ return element;
83
+ },
84
+ allOf(...args) {
85
+ const element = new ArrayElement(...args);
86
+ element.classes.push('json-schema-allOf');
87
+ return element;
88
+ },
89
+ anyOf(...args) {
90
+ const element = new ArrayElement(...args);
91
+ element.classes.push('json-schema-anyOf');
92
+ return element;
93
+ },
94
+ oneOf(...args) {
95
+ const element = new ArrayElement(...args);
96
+ element.classes.push('json-schema-oneOf');
97
+ return element;
98
+ },
99
+ if(...args) {
100
+ return new JSONSchemaElement(...args);
101
+ },
102
+ then(...args) {
103
+ return new JSONSchemaElement(...args);
104
+ },
105
+ else(...args) {
106
+ return new JSONSchemaElement(...args);
107
+ },
108
+ not(...args) {
109
+ return new JSONSchemaElement(...args);
110
+ },
111
+ $defs(...args) {
112
+ const element = new ObjectElement(...args);
113
+ element.classes.push('json-schema-$defs');
114
+ return element;
115
+ },
116
+ examples(...args) {
117
+ const element = new ArrayElement(...args);
118
+ element.classes.push('json-schema-examples');
119
+ return element;
120
+ },
121
+ links(...args) {
122
+ const element = new ArrayElement(...args);
123
+ element.classes.push('json-schema-links');
124
+ return element;
125
+ },
126
+ $vocabulary(...args) {
127
+ const element = new ObjectElement(...args);
128
+ element.classes.push('json-schema-$vocabulary');
129
+ return element;
130
+ },
131
+ unevaluatedItems(...args) {
132
+ return new JSONSchemaElement(...args);
133
+ },
134
+ unevaluatedProperties(...args) {
135
+ return new JSONSchemaElement(...args);
136
+ },
137
+ $dependentRequired(...args) {
138
+ const element = new ObjectElement(...args);
139
+ element.classes.push('json-schema-$dependentRequired');
140
+ return element;
141
+ },
142
+ contentSchema(...args) {
143
+ return new JSONSchemaElement(...args);
144
+ },
145
+ type(...args) {
146
+ const element = new ArrayElement(...args);
147
+ element.classes.push('json-schema-type');
148
+ return element;
149
+ }
150
+ },
151
+ LinkDescriptionElement: {
152
+ hrefSchema(...args) {
153
+ return new JSONSchemaElement(...args);
154
+ },
155
+ targetSchema(...args) {
156
+ return new JSONSchemaElement(...args);
157
+ },
158
+ submissionSchema(...args) {
159
+ return new JSONSchemaElement(...args);
160
+ },
161
+ templatePointers(...args) {
162
+ return new ObjectElement(...args);
163
+ },
164
+ templateRequired(...args) {
165
+ return new ArrayElement(...args);
166
+ },
167
+ targetHints(...args) {
168
+ return new ObjectElement(...args);
169
+ },
170
+ headerSchema(...args) {
171
+ return new JSONSchemaElement(...args);
172
+ }
173
+ },
174
+ 'json-schema-properties': {
175
+ '[key: *]': function key(...args) {
176
+ return new JSONSchemaElement(...args);
177
+ }
178
+ },
179
+ 'json-schema-patternProperties': {
180
+ '[key: *]': function key(...args) {
181
+ return new JSONSchemaElement(...args);
182
+ }
183
+ },
184
+ 'json-schema-dependentSchemas': {
185
+ '[key: *]': function key(...args) {
186
+ return new JSONSchemaElement(...args);
187
+ }
188
+ },
189
+ 'json-schema-allOf': {
190
+ '<*>': function asterisk(...args) {
191
+ return new JSONSchemaElement(...args);
192
+ }
193
+ },
194
+ 'json-schema-anyOf': {
195
+ '<*>': function asterisk(...args) {
196
+ return new JSONSchemaElement(...args);
197
+ }
198
+ },
199
+ 'json-schema-oneOf': {
200
+ '<*>': function asterisk(...args) {
201
+ return new JSONSchemaElement(...args);
202
+ }
203
+ },
204
+ 'json-schema-$defs': {
205
+ '[key: *]': function key(...args) {
206
+ return new JSONSchemaElement(...args);
207
+ }
208
+ },
209
+ 'json-schema-links': {
210
+ '<*>': function asterisk(...args) {
211
+ return new LinkDescriptionElement(...args);
212
+ }
213
+ }
214
+ };
215
+ const findElementFactory = (ancestor, keyName) => {
216
+ const elementType = getNodeType(ancestor); // @ts-ignore
217
+ const keyMapping = schema[elementType] || schema[toValue(ancestor.classes.first)];
218
+ return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
219
+ };
220
+
221
+ /**
222
+ * @public
223
+ */
224
+ const plugin = () => () => {
225
+ return {
226
+ visitor: {
227
+ StringElement(element, key, parent, path, ancestors) {
228
+ if (!isEmptyElement(element)) return undefined;
229
+ const lineage = [...ancestors, parent].filter(isElement);
230
+ const parentElement = lineage.at(-1);
231
+ let elementFactory;
232
+ let context;
233
+ if (isArrayElement(parentElement)) {
234
+ context = element;
235
+ elementFactory = findElementFactory(parentElement, '<*>');
236
+ } else if (isMemberElement(parentElement)) {
237
+ context = lineage.at(-2);
238
+ elementFactory = findElementFactory(context, toValue(parentElement.key));
239
+ }
240
+
241
+ // no element factory found
242
+ if (typeof elementFactory !== 'function') return undefined;
243
+ return elementFactory.call({
244
+ context
245
+ }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
246
+ }
247
+ }
248
+ };
249
+ };
250
+ export default plugin;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
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,6 @@
1
+ import JSONSchemaElement from "../elements/JSONSchema.mjs";
2
+ import LinkDescriptionElement from "../elements/LinkDescription.mjs";
3
+ import { createRefractor } from "./index.mjs"; // register refractors specific to element types
4
+ JSONSchemaElement.refract = createRefractor(['visitors', 'document', 'objects', 'JSONSchema', '$visitor']);
5
+ LinkDescriptionElement.refract = createRefractor(['visitors', 'document', 'objects', 'LinkDescription', '$visitor']);
6
+ export { JSONSchemaElement, LinkDescriptionElement };
@@ -0,0 +1,26 @@
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 _ramda = require("ramda");
7
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
8
+ var _index = _interopRequireDefault(require("./visitors/json-schema/index.cjs"));
9
+ var _$vocabularyVisitor = _interopRequireDefault(require("./visitors/json-schema/$vocabularyVisitor.cjs"));
10
+ var _$refVisitor = _interopRequireDefault(require("./visitors/json-schema/$refVisitor.cjs"));
11
+ var _$defsVisitor = _interopRequireDefault(require("./visitors/json-schema/$defsVisitor.cjs"));
12
+ var _AllOfVisitor = _interopRequireDefault(require("./visitors/json-schema/AllOfVisitor.cjs"));
13
+ var _AnyOfVisitor = _interopRequireDefault(require("./visitors/json-schema/AnyOfVisitor.cjs"));
14
+ var _OneOfVisitor = _interopRequireDefault(require("./visitors/json-schema/OneOfVisitor.cjs"));
15
+ var _DependentSchemasVisitor = _interopRequireDefault(require("./visitors/json-schema/DependentSchemasVisitor.cjs"));
16
+ var _ItemsVisitor = _interopRequireDefault(require("./visitors/json-schema/ItemsVisitor.cjs"));
17
+ var _PropertiesVisitor = _interopRequireDefault(require("./visitors/json-schema/PropertiesVisitor.cjs"));
18
+ var _PatternPropertiesVisitor = _interopRequireDefault(require("./visitors/json-schema/PatternPropertiesVisitor.cjs"));
19
+ var _DependentRequiredVisitor = _interopRequireDefault(require("./visitors/json-schema/DependentRequiredVisitor.cjs"));
20
+ var _index2 = _interopRequireDefault(require("./visitors/json-schema/link-description/index.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', '$vocabulary'], _$vocabularyVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$anchor'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONReference', '$visitor']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$ref'], _$refVisitor.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'definitions']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$defs'], _$defsVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'allOf'], _AllOfVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'anyOf'], _AnyOfVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'oneOf'], _OneOfVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], _index.default), (0, _ramda.dissocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependencies']), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependentSchemas'], _DependentSchemasVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], _ItemsVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'properties'], _PropertiesVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'patternProperties'], _PatternPropertiesVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'maxContains'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'minContains'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependentRequired'], _DependentRequiredVisitor.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'deprecated'], _apidomNsJsonSchemaDraft.specificationObj.visitors.value), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], _index.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', 'targetSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], _index.default), (0, _ramda.assocPath)(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], _index.default))(_apidomNsJsonSchemaDraft.specificationObj);
26
+ var _default = exports.default = specification;
@@ -0,0 +1,21 @@
1
+ import { pipe, assocPath, dissocPath } from 'ramda';
2
+ import { specificationObj } from '@speclynx/apidom-ns-json-schema-draft-7';
3
+ import JSONSchemaVisitor from "./visitors/json-schema/index.mjs";
4
+ import JSONSchema$vocabularyVisitor from "./visitors/json-schema/$vocabularyVisitor.mjs";
5
+ import JSONSchema$refVisitor from "./visitors/json-schema/$refVisitor.mjs";
6
+ import JSONSchema$defsVisitor from "./visitors/json-schema/$defsVisitor.mjs";
7
+ import JSONSchemaAllOfVisitor from "./visitors/json-schema/AllOfVisitor.mjs";
8
+ import JSONSchemaAnyOfVisitor from "./visitors/json-schema/AnyOfVisitor.mjs";
9
+ import JSONSchemaOneOfVisitor from "./visitors/json-schema/OneOfVisitor.mjs";
10
+ import JSONSchemaDependentSchemasVisitor from "./visitors/json-schema/DependentSchemasVisitor.mjs";
11
+ import JSONSchemaItemsVisitor from "./visitors/json-schema/ItemsVisitor.mjs";
12
+ import JSONSchemaPropertiesVisitor from "./visitors/json-schema/PropertiesVisitor.mjs";
13
+ import JSONSchemaPatternPropertiesVisitor from "./visitors/json-schema/PatternPropertiesVisitor.mjs";
14
+ import JSONSchemaDependentRequiredVisitor from "./visitors/json-schema/DependentRequiredVisitor.mjs";
15
+ import JSONSchemaLinkDescriptionVisitor from "./visitors/json-schema/link-description/index.mjs";
16
+ const specification = pipe(
17
+ // JSON Schema object modifications
18
+ assocPath(['visitors', 'document', 'objects', 'JSONSchema', '$visitor'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$vocabulary'], JSONSchema$vocabularyVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$anchor'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveAnchor'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$recursiveRef'], specificationObj.visitors.value), dissocPath(['visitors', 'document', 'objects', 'JSONReference', '$visitor']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$ref'], JSONSchema$refVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'definitions']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', '$defs'], JSONSchema$defsVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'allOf'], JSONSchemaAllOfVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'anyOf'], JSONSchemaAnyOfVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'oneOf'], JSONSchemaOneOfVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'not'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'if'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'then'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'else'], JSONSchemaVisitor), dissocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependencies']), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependentSchemas'], JSONSchemaDependentSchemasVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'items'], JSONSchemaItemsVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contains'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'properties'], JSONSchemaPropertiesVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'patternProperties'], JSONSchemaPatternPropertiesVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalProperties'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'additionalItems'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'propertyNames'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedItems'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'unevaluatedProperties'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'maxContains'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'minContains'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'dependentRequired'], JSONSchemaDependentRequiredVisitor), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'deprecated'], specificationObj.visitors.value), assocPath(['visitors', 'document', 'objects', 'JSONSchema', 'fixedFields', 'contentSchema'], JSONSchemaVisitor),
19
+ // Link Description object modifications
20
+ assocPath(['visitors', 'document', 'objects', 'LinkDescription', '$visitor'], JSONSchemaLinkDescriptionVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'targetSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'hrefSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'headerSchema'], JSONSchemaVisitor), assocPath(['visitors', 'document', 'objects', 'LinkDescription', 'fixedFields', 'submissionSchema'], JSONSchemaVisitor))(specificationObj);
21
+ export default specification;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _apidomCore = require("@speclynx/apidom-core");
8
+ var jsonSchema201909Predicates = _interopRequireWildcard(require("../predicates.cjs"));
9
+ var _namespace = _interopRequireDefault(require("../namespace.cjs"));
10
+ const createToolbox = () => {
11
+ const namespace = (0, _apidomCore.createNamespace)(_namespace.default);
12
+ const predicates = {
13
+ ...jsonSchema201909Predicates,
14
+ isStringElement: _apidomCore.isStringElement
15
+ };
16
+ return {
17
+ predicates,
18
+ namespace
19
+ };
20
+ };
21
+ var _default = exports.default = createToolbox;
@@ -0,0 +1,15 @@
1
+ import { createNamespace, isStringElement } from '@speclynx/apidom-core';
2
+ import * as jsonSchema201909Predicates from "../predicates.mjs";
3
+ import jsonSchema201909Namespace from "../namespace.mjs";
4
+ const createToolbox = () => {
5
+ const namespace = createNamespace(jsonSchema201909Namespace);
6
+ const predicates = {
7
+ ...jsonSchema201909Predicates,
8
+ isStringElement
9
+ };
10
+ return {
11
+ predicates,
12
+ namespace
13
+ };
14
+ };
15
+ export default createToolbox;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _tsMixer = require("ts-mixer");
6
+ var _ramda = require("ramda");
7
+ var _apidomCore = require("@speclynx/apidom-core");
8
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
9
+ /**
10
+ * @public
11
+ */
12
+
13
+ /**
14
+ * @public
15
+ */
16
+ class $defsVisitor extends (0, _tsMixer.Mixin)(_apidomNsJsonSchemaDraft.MapVisitor, _apidomNsJsonSchemaDraft.ParentSchemaAwareVisitor, _apidomNsJsonSchemaDraft.FallbackVisitor) {
17
+ constructor(options) {
18
+ super(options);
19
+ this.element = new _apidomCore.ObjectElement();
20
+ this.element.classes.push('json-schema-$defs');
21
+ this.specPath = (0, _ramda.always)(['document', 'objects', 'JSONSchema']);
22
+ }
23
+ }
24
+ var _default = exports.default = $defsVisitor;
@@ -0,0 +1,21 @@
1
+ import { Mixin } from 'ts-mixer';
2
+ import { always } from 'ramda';
3
+ import { ObjectElement } from '@speclynx/apidom-core';
4
+ import { FallbackVisitor, MapVisitor, ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
5
+
6
+ /**
7
+ * @public
8
+ */
9
+
10
+ /**
11
+ * @public
12
+ */
13
+ class $defsVisitor extends Mixin(MapVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
14
+ constructor(options) {
15
+ super(options);
16
+ this.element = new ObjectElement();
17
+ this.element.classes.push('json-schema-$defs');
18
+ this.specPath = always(['document', 'objects', 'JSONSchema']);
19
+ }
20
+ }
21
+ export default $defsVisitor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
6
+ /**
7
+ * @public
8
+ */
9
+ class $refVisitor extends _apidomNsJsonSchemaDraft.FallbackVisitor {
10
+ StringElement(stringElement) {
11
+ const result = super.enter(stringElement);
12
+ this.element.classes.push('reference-value');
13
+ return result;
14
+ }
15
+ }
16
+ var _default = exports.default = $refVisitor;
@@ -0,0 +1,12 @@
1
+ import { FallbackVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
2
+ /**
3
+ * @public
4
+ */
5
+ class $refVisitor extends FallbackVisitor {
6
+ StringElement(stringElement) {
7
+ const result = super.enter(stringElement);
8
+ this.element.classes.push('reference-value');
9
+ return result;
10
+ }
11
+ }
12
+ export default $refVisitor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
6
+ /**
7
+ * @public
8
+ */
9
+ class $vocabularyVisitor extends _apidomNsJsonSchemaDraft.FallbackVisitor {
10
+ ObjectElement(objectElement) {
11
+ const result = super.enter(objectElement);
12
+ this.element.classes.push('json-schema-$vocabulary');
13
+ return result;
14
+ }
15
+ }
16
+ var _default = exports.default = $vocabularyVisitor;
@@ -0,0 +1,12 @@
1
+ import { FallbackVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
2
+ /**
3
+ * @public
4
+ */
5
+ class $vocabularyVisitor extends FallbackVisitor {
6
+ ObjectElement(objectElement) {
7
+ const result = super.enter(objectElement);
8
+ this.element.classes.push('json-schema-$vocabulary');
9
+ return result;
10
+ }
11
+ }
12
+ export default $vocabularyVisitor;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _tsMixer = require("ts-mixer");
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
8
+ /**
9
+ * @public
10
+ */
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ class AllOfVisitor extends (0, _tsMixer.Mixin)(_apidomNsJsonSchemaDraft.SpecificationVisitor, _apidomNsJsonSchemaDraft.ParentSchemaAwareVisitor, _apidomNsJsonSchemaDraft.FallbackVisitor) {
16
+ constructor(options) {
17
+ super(options);
18
+ this.element = new _apidomCore.ArrayElement();
19
+ this.element.classes.push('json-schema-allOf');
20
+ }
21
+ ArrayElement(arrayElement) {
22
+ arrayElement.forEach(item => {
23
+ const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
24
+ this.element.push(element);
25
+ });
26
+ this.copyMetaAndAttributes(arrayElement, this.element);
27
+ return _apidomCore.BREAK;
28
+ }
29
+ }
30
+ var _default = exports.default = AllOfVisitor;
@@ -0,0 +1,27 @@
1
+ import { Mixin } from 'ts-mixer';
2
+ import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
+ import { FallbackVisitor, SpecificationVisitor, ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
4
+
5
+ /**
6
+ * @public
7
+ */
8
+
9
+ /**
10
+ * @public
11
+ */
12
+ class AllOfVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
13
+ constructor(options) {
14
+ super(options);
15
+ this.element = new ArrayElement();
16
+ this.element.classes.push('json-schema-allOf');
17
+ }
18
+ ArrayElement(arrayElement) {
19
+ arrayElement.forEach(item => {
20
+ const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
21
+ this.element.push(element);
22
+ });
23
+ this.copyMetaAndAttributes(arrayElement, this.element);
24
+ return BREAK;
25
+ }
26
+ }
27
+ export default AllOfVisitor;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _tsMixer = require("ts-mixer");
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
8
+ /**
9
+ * @public
10
+ */
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ class AnyOfVisitor extends (0, _tsMixer.Mixin)(_apidomNsJsonSchemaDraft.SpecificationVisitor, _apidomNsJsonSchemaDraft.ParentSchemaAwareVisitor, _apidomNsJsonSchemaDraft.FallbackVisitor) {
16
+ constructor(options) {
17
+ super(options);
18
+ this.element = new _apidomCore.ArrayElement();
19
+ this.element.classes.push('json-schema-anyOf');
20
+ }
21
+ ArrayElement(arrayElement) {
22
+ arrayElement.forEach(item => {
23
+ const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
24
+ this.element.push(element);
25
+ });
26
+ this.copyMetaAndAttributes(arrayElement, this.element);
27
+ return _apidomCore.BREAK;
28
+ }
29
+ }
30
+ var _default = exports.default = AnyOfVisitor;
@@ -0,0 +1,27 @@
1
+ import { Mixin } from 'ts-mixer';
2
+ import { ArrayElement, BREAK } from '@speclynx/apidom-core';
3
+ import { FallbackVisitor, SpecificationVisitor, ParentSchemaAwareVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
4
+
5
+ /**
6
+ * @public
7
+ */
8
+
9
+ /**
10
+ * @public
11
+ */
12
+ class AnyOfVisitor extends Mixin(SpecificationVisitor, ParentSchemaAwareVisitor, FallbackVisitor) {
13
+ constructor(options) {
14
+ super(options);
15
+ this.element = new ArrayElement();
16
+ this.element.classes.push('json-schema-anyOf');
17
+ }
18
+ ArrayElement(arrayElement) {
19
+ arrayElement.forEach(item => {
20
+ const element = this.toRefractedElement(['document', 'objects', 'JSONSchema'], item);
21
+ this.element.push(element);
22
+ });
23
+ this.copyMetaAndAttributes(arrayElement, this.element);
24
+ return BREAK;
25
+ }
26
+ }
27
+ export default AnyOfVisitor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomNsJsonSchemaDraft = require("@speclynx/apidom-ns-json-schema-draft-7");
6
+ /**
7
+ * @public
8
+ */
9
+ class DependentRequiredVisitor extends _apidomNsJsonSchemaDraft.FallbackVisitor {
10
+ ObjectElement(objectElement) {
11
+ const result = super.enter(objectElement);
12
+ this.element.classes.push('json-schema-dependentRequired');
13
+ return result;
14
+ }
15
+ }
16
+ var _default = exports.default = DependentRequiredVisitor;
@@ -0,0 +1,12 @@
1
+ import { FallbackVisitor } from '@speclynx/apidom-ns-json-schema-draft-7';
2
+ /**
3
+ * @public
4
+ */
5
+ class DependentRequiredVisitor extends FallbackVisitor {
6
+ ObjectElement(objectElement) {
7
+ const result = super.enter(objectElement);
8
+ this.element.classes.push('json-schema-dependentRequired');
9
+ return result;
10
+ }
11
+ }
12
+ export default DependentRequiredVisitor;