@speclynx/apidom-ns-json-schema-draft-4 4.0.2 → 4.0.3

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 (125) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +6 -7
  3. package/src/elements/JSONReference.cjs +29 -0
  4. package/src/elements/JSONReference.mjs +25 -0
  5. package/src/elements/JSONReference.ts +33 -0
  6. package/src/elements/JSONSchema.cjs +296 -0
  7. package/src/elements/JSONSchema.mjs +292 -0
  8. package/src/elements/JSONSchema.ts +391 -0
  9. package/src/elements/LinkDescription.cjs +65 -0
  10. package/src/elements/LinkDescription.mjs +61 -0
  11. package/src/elements/LinkDescription.ts +85 -0
  12. package/src/elements/Media.cjs +29 -0
  13. package/src/elements/Media.mjs +25 -0
  14. package/src/elements/Media.ts +35 -0
  15. package/src/index.cjs +69 -0
  16. package/src/index.mjs +23 -0
  17. package/src/index.ts +142 -0
  18. package/src/media-types.cjs +34 -0
  19. package/src/media-types.mjs +30 -0
  20. package/src/media-types.ts +40 -0
  21. package/src/namespace.cjs +25 -0
  22. package/src/namespace.mjs +20 -0
  23. package/src/namespace.ts +24 -0
  24. package/src/predicates.cjs +32 -0
  25. package/src/predicates.mjs +23 -0
  26. package/src/predicates.ts +28 -0
  27. package/src/refractor/index.cjs +96 -0
  28. package/src/refractor/index.mjs +85 -0
  29. package/src/refractor/index.ts +110 -0
  30. package/src/refractor/inspect.cjs +55 -0
  31. package/src/refractor/inspect.mjs +47 -0
  32. package/src/refractor/inspect.ts +61 -0
  33. package/src/refractor/plugins/replace-empty-element.cjs +208 -0
  34. package/src/refractor/plugins/replace-empty-element.mjs +202 -0
  35. package/src/refractor/plugins/replace-empty-element.ts +233 -0
  36. package/src/refractor/predicates.cjs +16 -0
  37. package/src/refractor/predicates.mjs +12 -0
  38. package/src/refractor/predicates.ts +17 -0
  39. package/src/refractor/specification.cjs +193 -0
  40. package/src/refractor/specification.mjs +188 -0
  41. package/src/refractor/specification.ts +134 -0
  42. package/src/refractor/toolbox.cjs +28 -0
  43. package/src/refractor/toolbox.mjs +21 -0
  44. package/src/refractor/toolbox.ts +24 -0
  45. package/src/refractor/visitors/FallbackVisitor.cjs +25 -0
  46. package/src/refractor/visitors/FallbackVisitor.mjs +19 -0
  47. package/src/refractor/visitors/FallbackVisitor.ts +25 -0
  48. package/src/refractor/visitors/SpecificationVisitor.cjs +75 -0
  49. package/src/refractor/visitors/SpecificationVisitor.mjs +69 -0
  50. package/src/refractor/visitors/SpecificationVisitor.ts +82 -0
  51. package/src/refractor/visitors/Visitor.cjs +36 -0
  52. package/src/refractor/visitors/Visitor.mjs +33 -0
  53. package/src/refractor/visitors/Visitor.ts +49 -0
  54. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  55. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  56. package/src/refractor/visitors/generics/AlternatingVisitor.ts +45 -0
  57. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +57 -0
  58. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +50 -0
  59. package/src/refractor/visitors/generics/FixedFieldsVisitor.ts +79 -0
  60. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  61. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  62. package/src/refractor/visitors/generics/MapVisitor.ts +25 -0
  63. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +58 -0
  64. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +52 -0
  65. package/src/refractor/visitors/generics/PatternedFieldsVisitor.ts +76 -0
  66. package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +32 -0
  67. package/src/refractor/visitors/json-schema/AllOfVisitor.mjs +27 -0
  68. package/src/refractor/visitors/json-schema/AllOfVisitor.ts +44 -0
  69. package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +32 -0
  70. package/src/refractor/visitors/json-schema/AnyOfVisitor.mjs +27 -0
  71. package/src/refractor/visitors/json-schema/AnyOfVisitor.ts +44 -0
  72. package/src/refractor/visitors/json-schema/DefinitionsVisitor.cjs +23 -0
  73. package/src/refractor/visitors/json-schema/DefinitionsVisitor.mjs +18 -0
  74. package/src/refractor/visitors/json-schema/DefinitionsVisitor.ts +36 -0
  75. package/src/refractor/visitors/json-schema/DependenciesVisitor.cjs +23 -0
  76. package/src/refractor/visitors/json-schema/DependenciesVisitor.mjs +18 -0
  77. package/src/refractor/visitors/json-schema/DependenciesVisitor.ts +36 -0
  78. package/src/refractor/visitors/json-schema/EnumVisitor.cjs +16 -0
  79. package/src/refractor/visitors/json-schema/EnumVisitor.mjs +11 -0
  80. package/src/refractor/visitors/json-schema/EnumVisitor.ts +20 -0
  81. package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +35 -0
  82. package/src/refractor/visitors/json-schema/ItemsVisitor.mjs +30 -0
  83. package/src/refractor/visitors/json-schema/ItemsVisitor.ts +52 -0
  84. package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.cjs +24 -0
  85. package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.mjs +19 -0
  86. package/src/refractor/visitors/json-schema/JSONSchemaOrJSONReferenceVisitor.ts +21 -0
  87. package/src/refractor/visitors/json-schema/LinksVisitor.cjs +30 -0
  88. package/src/refractor/visitors/json-schema/LinksVisitor.mjs +25 -0
  89. package/src/refractor/visitors/json-schema/LinksVisitor.ts +43 -0
  90. package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +32 -0
  91. package/src/refractor/visitors/json-schema/OneOfVisitor.mjs +27 -0
  92. package/src/refractor/visitors/json-schema/OneOfVisitor.ts +44 -0
  93. package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.cjs +20 -0
  94. package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.mjs +16 -0
  95. package/src/refractor/visitors/json-schema/ParentSchemaAwareVisitor.ts +21 -0
  96. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +23 -0
  97. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.mjs +18 -0
  98. package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.ts +36 -0
  99. package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +23 -0
  100. package/src/refractor/visitors/json-schema/PropertiesVisitor.mjs +18 -0
  101. package/src/refractor/visitors/json-schema/PropertiesVisitor.ts +36 -0
  102. package/src/refractor/visitors/json-schema/RequiredVisitor.cjs +16 -0
  103. package/src/refractor/visitors/json-schema/RequiredVisitor.mjs +11 -0
  104. package/src/refractor/visitors/json-schema/RequiredVisitor.ts +20 -0
  105. package/src/refractor/visitors/json-schema/TypeVisitor.cjs +20 -0
  106. package/src/refractor/visitors/json-schema/TypeVisitor.mjs +15 -0
  107. package/src/refractor/visitors/json-schema/TypeVisitor.ts +25 -0
  108. package/src/refractor/visitors/json-schema/bases.cjs +45 -0
  109. package/src/refractor/visitors/json-schema/bases.mjs +39 -0
  110. package/src/refractor/visitors/json-schema/bases.ts +70 -0
  111. package/src/refractor/visitors/json-schema/index.cjs +65 -0
  112. package/src/refractor/visitors/json-schema/index.mjs +59 -0
  113. package/src/refractor/visitors/json-schema/index.ts +85 -0
  114. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.cjs +16 -0
  115. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.mjs +11 -0
  116. package/src/refractor/visitors/json-schema/json-reference/$RefVisitor.ts +20 -0
  117. package/src/refractor/visitors/json-schema/json-reference/index.cjs +33 -0
  118. package/src/refractor/visitors/json-schema/json-reference/index.mjs +27 -0
  119. package/src/refractor/visitors/json-schema/json-reference/index.ts +41 -0
  120. package/src/refractor/visitors/json-schema/link-description/index.cjs +23 -0
  121. package/src/refractor/visitors/json-schema/link-description/index.mjs +17 -0
  122. package/src/refractor/visitors/json-schema/link-description/index.ts +30 -0
  123. package/src/refractor/visitors/json-schema/media/index.cjs +23 -0
  124. package/src/refractor/visitors/json-schema/media/index.mjs +17 -0
  125. package/src/refractor/visitors/json-schema/media/index.ts +29 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.0.3](https://github.com/speclynx/apidom/compare/v4.0.2...v4.0.3) (2026-03-11)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **release:** fix v4.0.2 failed release ([b4dc1c4](https://github.com/speclynx/apidom/commit/b4dc1c48e8d9b2986a70e49b5554eb0a166d7528))
11
+
6
12
  ## [4.0.2](https://github.com/speclynx/apidom/compare/v4.0.1...v4.0.2) (2026-03-11)
7
13
 
8
14
  **Note:** Version bump only for package @speclynx/apidom-ns-json-schema-draft-4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speclynx/apidom-ns-json-schema-draft-4",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "description": "JSON Schema Draft 4 namespace for ApiDOM.",
5
5
  "keywords": [
6
6
  "apidom",
@@ -59,16 +59,15 @@
59
59
  "license": "Apache-2.0",
60
60
  "dependencies": {
61
61
  "@babel/runtime-corejs3": "^7.28.4",
62
- "@speclynx/apidom-core": "4.0.2",
63
- "@speclynx/apidom-datamodel": "4.0.2",
64
- "@speclynx/apidom-traverse": "4.0.2",
62
+ "@speclynx/apidom-core": "4.0.3",
63
+ "@speclynx/apidom-datamodel": "4.0.3",
64
+ "@speclynx/apidom-traverse": "4.0.3",
65
65
  "ramda": "~0.32.0",
66
66
  "ramda-adjunct": "^6.0.0",
67
67
  "ts-mixer": "^6.0.4"
68
68
  },
69
69
  "files": [
70
- "src/**/*.mjs",
71
- "src/**/*.cjs",
70
+ "src/",
72
71
  "dist/",
73
72
  "types/apidom-ns-json-schema-draft-4.d.ts",
74
73
  "LICENSES",
@@ -76,5 +75,5 @@
76
75
  "README.md",
77
76
  "CHANGELOG.md"
78
77
  ],
79
- "gitHead": "af1b05d4d5e48a11a3a03cd5699324e0f1b62765"
78
+ "gitHead": "6ccfa09c02232516215e7de3ead276641957e626"
80
79
  }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ /**
7
+ * In Draft 4, $ref behaves a little differently. When an object contains a $ref property,
8
+ * the object is considered a reference, not a schema. Therefore, any other properties you put in that object will
9
+ * not be treated as JSON Schema keywords and will be ignored by the validator.
10
+ * $ref can only be used where a schema is expected.
11
+ *
12
+ * URI: https://json-schema.org/understanding-json-schema/structuring.html?highlight=ref#id18
13
+ * @public
14
+ */
15
+
16
+ class JSONReference extends _apidomDatamodel.ObjectElement {
17
+ constructor(content, meta, attributes) {
18
+ super(content, meta, attributes);
19
+ this.element = 'JSONReference';
20
+ this.classes.push('json-reference');
21
+ }
22
+ get $ref() {
23
+ return this.get('$ref');
24
+ }
25
+ set $ref($ref) {
26
+ this.set('$ref', $ref);
27
+ }
28
+ }
29
+ var _default = exports.default = JSONReference;
@@ -0,0 +1,25 @@
1
+ import { ObjectElement } from '@speclynx/apidom-datamodel';
2
+ /**
3
+ * In Draft 4, $ref behaves a little differently. When an object contains a $ref property,
4
+ * the object is considered a reference, not a schema. Therefore, any other properties you put in that object will
5
+ * not be treated as JSON Schema keywords and will be ignored by the validator.
6
+ * $ref can only be used where a schema is expected.
7
+ *
8
+ * URI: https://json-schema.org/understanding-json-schema/structuring.html?highlight=ref#id18
9
+ * @public
10
+ */
11
+
12
+ class JSONReference extends ObjectElement {
13
+ constructor(content, meta, attributes) {
14
+ super(content, meta, attributes);
15
+ this.element = 'JSONReference';
16
+ this.classes.push('json-reference');
17
+ }
18
+ get $ref() {
19
+ return this.get('$ref');
20
+ }
21
+ set $ref($ref) {
22
+ this.set('$ref', $ref);
23
+ }
24
+ }
25
+ export default JSONReference;
@@ -0,0 +1,33 @@
1
+ import { ObjectElement, StringElement, Attributes, Meta } from '@speclynx/apidom-datamodel';
2
+
3
+ import type { FixedField } from '../refractor/inspect.ts';
4
+
5
+ /**
6
+ * In Draft 4, $ref behaves a little differently. When an object contains a $ref property,
7
+ * the object is considered a reference, not a schema. Therefore, any other properties you put in that object will
8
+ * not be treated as JSON Schema keywords and will be ignored by the validator.
9
+ * $ref can only be used where a schema is expected.
10
+ *
11
+ * URI: https://json-schema.org/understanding-json-schema/structuring.html?highlight=ref#id18
12
+ * @public
13
+ */
14
+
15
+ class JSONReference extends ObjectElement {
16
+ declare static fixedFields: FixedField[];
17
+
18
+ constructor(content?: Record<string, unknown>, meta?: Meta, attributes?: Attributes) {
19
+ super(content, meta, attributes);
20
+ this.element = 'JSONReference';
21
+ this.classes.push('json-reference');
22
+ }
23
+
24
+ get $ref(): StringElement | undefined {
25
+ return this.get('$ref') as StringElement | undefined;
26
+ }
27
+
28
+ set $ref($ref: StringElement | undefined) {
29
+ this.set('$ref', $ref);
30
+ }
31
+ }
32
+
33
+ export default JSONReference;
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
+ /**
7
+ * @public
8
+ */
9
+ class JSONSchema extends _apidomDatamodel.ObjectElement {
10
+ constructor(content, meta, attributes) {
11
+ super(content, meta, attributes);
12
+ this.element = 'JSONSchemaDraft4';
13
+ }
14
+
15
+ /**
16
+ * Core vocabulary
17
+ *
18
+ * URI: https://tools.ietf.org/html/draft-wright-json-schema-00
19
+ */
20
+
21
+ get idField() {
22
+ return this.get('id');
23
+ }
24
+ set idField(idField) {
25
+ this.set('id', idField);
26
+ }
27
+ get $schema() {
28
+ return this.get('$schema');
29
+ }
30
+ set $schema($schema) {
31
+ this.set('$schema', $schema);
32
+ }
33
+
34
+ /**
35
+ * Validation vocabulary
36
+ *
37
+ * URI: https://tools.ietf.org/html/draft-wright-json-schema-validation-00
38
+ */
39
+
40
+ /**
41
+ * Validation keywords for numeric instances (number and integer)
42
+ */
43
+
44
+ get multipleOf() {
45
+ return this.get('multipleOf');
46
+ }
47
+ set multipleOf(multipleOf) {
48
+ this.set('multipleOf', multipleOf);
49
+ }
50
+ get maximum() {
51
+ return this.get('maximum');
52
+ }
53
+ set maximum(maximum) {
54
+ this.set('maximum', maximum);
55
+ }
56
+ get exclusiveMaximum() {
57
+ return this.get('exclusiveMaximum');
58
+ }
59
+ set exclusiveMaximum(exclusiveMaximum) {
60
+ this.set('exclusiveMaximum', exclusiveMaximum);
61
+ }
62
+ get minimum() {
63
+ return this.get('minimum');
64
+ }
65
+ set minimum(minimum) {
66
+ this.set('minimum', minimum);
67
+ }
68
+ get exclusiveMinimum() {
69
+ return this.get('exclusiveMinimum');
70
+ }
71
+ set exclusiveMinimum(exclusiveMinimum) {
72
+ this.set('exclusiveMinimum', exclusiveMinimum);
73
+ }
74
+
75
+ /**
76
+ * Validation keywords for strings
77
+ */
78
+
79
+ get maxLength() {
80
+ return this.get('maxLength');
81
+ }
82
+ set maxLength(maxLength) {
83
+ this.set('maxLength', maxLength);
84
+ }
85
+ get minLength() {
86
+ return this.get('minLength');
87
+ }
88
+ set minLength(minLength) {
89
+ this.set('minLength', minLength);
90
+ }
91
+ get pattern() {
92
+ return this.get('pattern');
93
+ }
94
+ set pattern(pattern) {
95
+ this.set('pattern', pattern);
96
+ }
97
+
98
+ /**
99
+ * Validation keywords for arrays
100
+ */
101
+
102
+ get additionalItems() {
103
+ return this.get('additionalItems');
104
+ }
105
+ set additionalItems(additionalItems) {
106
+ this.set('additionalItems', additionalItems);
107
+ }
108
+ get itemsField() {
109
+ return this.get('items');
110
+ }
111
+ set itemsField(items) {
112
+ this.set('items', items);
113
+ }
114
+ get maxItems() {
115
+ return this.get('maxItems');
116
+ }
117
+ set maxItems(maxItems) {
118
+ this.set('maxItems', maxItems);
119
+ }
120
+ get minItems() {
121
+ return this.get('minItems');
122
+ }
123
+ set minItems(minItems) {
124
+ this.set('minItems', minItems);
125
+ }
126
+ get uniqueItems() {
127
+ return this.get('uniqueItems');
128
+ }
129
+ set uniqueItems(uniqueItems) {
130
+ this.set('uniqueItems', uniqueItems);
131
+ }
132
+
133
+ /**
134
+ * Validation keywords for objects
135
+ */
136
+
137
+ get maxProperties() {
138
+ return this.get('maxProperties');
139
+ }
140
+ set maxProperties(maxProperties) {
141
+ this.set('maxProperties', maxProperties);
142
+ }
143
+ get minProperties() {
144
+ return this.get('minProperties');
145
+ }
146
+ set minProperties(minProperties) {
147
+ this.set('minProperties', minProperties);
148
+ }
149
+ get required() {
150
+ return this.get('required');
151
+ }
152
+ set required(required) {
153
+ this.set('required', required);
154
+ }
155
+ get properties() {
156
+ return this.get('properties');
157
+ }
158
+ set properties(properties) {
159
+ this.set('properties', properties);
160
+ }
161
+ get additionalProperties() {
162
+ return this.get('additionalProperties');
163
+ }
164
+ set additionalProperties(additionalProperties) {
165
+ this.set('additionalProperties', additionalProperties);
166
+ }
167
+ get patternProperties() {
168
+ return this.get('patternProperties');
169
+ }
170
+ set patternProperties(patternProperties) {
171
+ this.set('patternProperties', patternProperties);
172
+ }
173
+ get dependencies() {
174
+ return this.get('dependencies');
175
+ }
176
+ set dependencies(dependencies) {
177
+ this.set('dependencies', dependencies);
178
+ }
179
+
180
+ /**
181
+ * Validation keywords for any instance type
182
+ */
183
+
184
+ get enum() {
185
+ return this.get('enum');
186
+ }
187
+ set enum(enumValue) {
188
+ this.set('enum', enumValue);
189
+ }
190
+ get type() {
191
+ return this.get('type');
192
+ }
193
+ set type(type) {
194
+ this.set('type', type);
195
+ }
196
+ get allOf() {
197
+ return this.get('allOf');
198
+ }
199
+ set allOf(allOf) {
200
+ this.set('allOf', allOf);
201
+ }
202
+ get anyOf() {
203
+ return this.get('anyOf');
204
+ }
205
+ set anyOf(anyOf) {
206
+ this.set('anyOf', anyOf);
207
+ }
208
+ get oneOf() {
209
+ return this.get('oneOf');
210
+ }
211
+ set oneOf(oneOf) {
212
+ this.set('oneOf', oneOf);
213
+ }
214
+ get not() {
215
+ return this.get('not');
216
+ }
217
+ set not(not) {
218
+ this.set('not', not);
219
+ }
220
+ get definitions() {
221
+ return this.get('definitions');
222
+ }
223
+ set definitions(definitions) {
224
+ this.set('definitions', definitions);
225
+ }
226
+
227
+ /**
228
+ * Metadata keywords
229
+ *
230
+ * URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-validation-00#section-6
231
+ */
232
+
233
+ get title() {
234
+ return this.get('title');
235
+ }
236
+ set title(title) {
237
+ this.set('title', title);
238
+ }
239
+ get description() {
240
+ return this.get('description');
241
+ }
242
+ set description(description) {
243
+ this.set('description', description);
244
+ }
245
+ get default() {
246
+ return this.get('default');
247
+ }
248
+ set default(defaultValue) {
249
+ this.set('default', defaultValue);
250
+ }
251
+
252
+ /**
253
+ * Semantic validation with "format"
254
+ *
255
+ * URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-validation-00#section-7
256
+ */
257
+
258
+ get format() {
259
+ return this.get('format');
260
+ }
261
+ set format(format) {
262
+ this.set('format', format);
263
+ }
264
+
265
+ /**
266
+ * JSON Hyper-Schema
267
+ *
268
+ * URI: https://datatracker.ietf.org/doc/html/draft-wright-json-schema-hyperschema-00
269
+ */
270
+
271
+ get base() {
272
+ return this.get('base');
273
+ }
274
+ set base(base) {
275
+ this.set('base', base);
276
+ }
277
+ get linksField() {
278
+ return this.get('links');
279
+ }
280
+ set linksField(links) {
281
+ this.set('links', links);
282
+ }
283
+ get media() {
284
+ return this.get('media');
285
+ }
286
+ set media(media) {
287
+ this.set('media', media);
288
+ }
289
+ get readOnly() {
290
+ return this.get('readOnly');
291
+ }
292
+ set readOnly(readOnly) {
293
+ this.set('readOnly', readOnly);
294
+ }
295
+ }
296
+ var _default = exports.default = JSONSchema;