json-schema-library 11.0.5 → 11.2.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 (113) hide show
  1. package/.mocharc.js +1 -0
  2. package/CHANGELOG.md +17 -0
  3. package/README.md +120 -0
  4. package/bowtie/.editorconfig +21 -0
  5. package/bowtie/.prettierrc +6 -0
  6. package/bowtie/BOWTIE.md +54 -0
  7. package/bowtie/Dockerfile +6 -0
  8. package/bowtie/bowtie-api.ts +101 -0
  9. package/bowtie/bowtie.test.ts +76 -0
  10. package/bowtie/bowtie.ts +156 -0
  11. package/bowtie/package.json +11 -0
  12. package/bowtie/tsconfig.json +12 -0
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +39 -470
  15. package/dist/index.d.mts +39 -470
  16. package/dist/index.mjs +1 -1
  17. package/dist/jlib.js +2 -13
  18. package/dist/remotes/index.cjs +1 -0
  19. package/dist/remotes/index.d.cts +7 -0
  20. package/dist/remotes/index.d.mts +7 -0
  21. package/dist/remotes/index.mjs +1 -0
  22. package/dist/types-B2wwNWyo.d.cts +513 -0
  23. package/dist/types-BhTU1l2h.d.mts +513 -0
  24. package/index.ts +10 -4
  25. package/package.json +14 -8
  26. package/src/Keyword.ts +37 -12
  27. package/src/SchemaNode.ts +84 -16
  28. package/src/compileSchema.ts +56 -4
  29. package/src/draft04/keywords/$ref.ts +22 -14
  30. package/src/draft04/keywords/exclusiveMaximum.ts +14 -0
  31. package/src/draft04/keywords/exclusiveMinimum.ts +14 -0
  32. package/src/draft04/validateSchema.test.ts +20 -0
  33. package/src/draft06/keywords/$ref.ts +15 -5
  34. package/src/draft2019-09/keywords/$ref.test.ts +3 -1
  35. package/src/draft2019-09/keywords/$ref.ts +40 -16
  36. package/src/draft2019-09/keywords/additionalItems.ts +33 -10
  37. package/src/draft2019-09/keywords/items.ts +32 -10
  38. package/src/draft2019-09/keywords/unevaluatedItems.ts +19 -6
  39. package/src/draft2019-09/methods/getData.ts +1 -1
  40. package/src/draft2019-09/validateSchema.test.ts +28 -0
  41. package/src/errors/errors.ts +8 -1
  42. package/src/formats/formats.ts +35 -28
  43. package/src/formats/hyperjump.d.ts +172 -0
  44. package/src/keywords/$defs.ts +34 -8
  45. package/src/keywords/$ref.ts +59 -13
  46. package/src/keywords/additionalProperties.ts +19 -8
  47. package/src/keywords/allOf.ts +44 -18
  48. package/src/keywords/anyOf.ts +38 -19
  49. package/src/keywords/contains.ts +21 -9
  50. package/src/keywords/dependencies.ts +37 -17
  51. package/src/keywords/dependentRequired.ts +56 -38
  52. package/src/keywords/dependentSchemas.ts +37 -13
  53. package/src/keywords/deprecated.ts +32 -8
  54. package/src/keywords/enum.ts +30 -8
  55. package/src/keywords/exclusiveMaximum.ts +21 -2
  56. package/src/keywords/exclusiveMinimum.ts +22 -3
  57. package/src/keywords/format.ts +21 -2
  58. package/src/keywords/ifthenelse.ts +49 -5
  59. package/src/keywords/items.ts +27 -13
  60. package/src/keywords/maxItems.ts +22 -2
  61. package/src/keywords/maxLength.ts +30 -9
  62. package/src/keywords/maxProperties.ts +30 -9
  63. package/src/keywords/maximum.ts +28 -8
  64. package/src/keywords/minItems.ts +30 -9
  65. package/src/keywords/minLength.ts +30 -9
  66. package/src/keywords/minProperties.ts +26 -5
  67. package/src/keywords/minimum.ts +32 -13
  68. package/src/keywords/multipleOf.ts +33 -12
  69. package/src/keywords/not.ts +23 -10
  70. package/src/keywords/oneOf.ts +29 -9
  71. package/src/keywords/pattern.ts +35 -9
  72. package/src/keywords/properties.ts +34 -11
  73. package/src/keywords/propertyDependencies.test.ts +180 -0
  74. package/src/keywords/propertyDependencies.ts +173 -0
  75. package/src/keywords/propertyNames.ts +26 -14
  76. package/src/keywords/required.ts +31 -8
  77. package/src/keywords/type.ts +53 -16
  78. package/src/keywords/unevaluatedItems.ts +24 -8
  79. package/src/keywords/unevaluatedProperties.ts +24 -7
  80. package/src/keywords/uniqueItems.ts +23 -4
  81. package/src/mergeNode.ts +9 -4
  82. package/src/methods/getData.ts +1 -1
  83. package/src/settings.ts +2 -1
  84. package/src/types.ts +1 -1
  85. package/src/utils/isListOfStrings.ts +3 -0
  86. package/src/validate.test.ts +0 -2
  87. package/src/validateNode.ts +6 -3
  88. package/src/validateSchema.test.ts +312 -0
  89. package/tsconfig.json +11 -4
  90. package/tsconfig.test.json +9 -2
  91. package/tsdown.config.ts +1 -1
  92. package/Dockerfile +0 -6
  93. package/bowtie_jlib.js +0 -140
  94. package/remotes/draft04.json +0 -150
  95. package/remotes/draft06.json +0 -155
  96. package/remotes/draft07.json +0 -155
  97. package/remotes/draft2019-09.json +0 -42
  98. package/remotes/draft2019-09_meta_applicator.json +0 -53
  99. package/remotes/draft2019-09_meta_content.json +0 -14
  100. package/remotes/draft2019-09_meta_core.json +0 -54
  101. package/remotes/draft2019-09_meta_format.json +0 -11
  102. package/remotes/draft2019-09_meta_meta-data.json +0 -34
  103. package/remotes/draft2019-09_meta_validation.json +0 -95
  104. package/remotes/draft2020-12.json +0 -55
  105. package/remotes/draft2020-12_meta_applicator.json +0 -45
  106. package/remotes/draft2020-12_meta_content.json +0 -14
  107. package/remotes/draft2020-12_meta_core.json +0 -48
  108. package/remotes/draft2020-12_meta_format_annotation.json +0 -11
  109. package/remotes/draft2020-12_meta_format_assertion.json +0 -11
  110. package/remotes/draft2020-12_meta_meta_data.json +0 -34
  111. package/remotes/draft2020-12_meta_unevaluated.json +0 -12
  112. package/remotes/draft2020-12_meta_validation.json +0 -87
  113. package/remotes/index.ts +0 -48
package/bowtie_jlib.js DELETED
@@ -1,140 +0,0 @@
1
- /**
2
- * test file for bowtie integration
3
- *
4
- * - Tutorial: https://docs.bowtie.report/en/stable/implementers/
5
- *
6
- * Build Dockerfile:
7
- *
8
- * ```
9
- * docker build -t localhost/jlib .
10
- * ````
11
- *
12
- * Test setup:
13
- *
14
- * ```
15
- bowtie run -i localhost/jlib -V <<EOF
16
- {"description": "test case 1", "schema": {}, "tests": [{"description": "a test", "instance": {}}] }
17
- {"description": "test case 2", "schema": {"const": 37}, "tests": [{"description": "not 37", "instance": {}}, {"description": "is 37", "instance": 37}] }
18
- EOF
19
- *
20
- * Test draft
21
- *
22
- * ```
23
- * bowtie suite -i localhost/jlib draft7 | bowtie summary --show failures
24
- * ```
25
- *
26
- */
27
- const readline = require("readline/promises");
28
- const process = require("process");
29
- const os = require("os");
30
- const packageJson = require("./package.json");
31
- const jlib = require("./dist/jsonSchemaLibrary.js");
32
-
33
- const compileSchema = jlib.compileSchema;
34
-
35
- const stdio = readline.createInterface({
36
- input: process.stdin,
37
- output: process.stdout,
38
- terminal: false
39
- });
40
-
41
- // const schemaIds: { [id: string]: SchemaDraft } = {
42
- // "https://json-schema.org/draft/2020-12/schema": SchemaDraft.v2020_12,
43
- // "https://json-schema.org/draft/2019-09/schema": SchemaDraft.v2019_09,
44
- // "http://json-schema.org/draft-07/schema#": SchemaDraft.v7,
45
- // "http://json-schema.org/draft-06/schema#": SchemaDraft.v6,
46
- // "http://json-schema.org/draft-04/schema#": SchemaDraft.v4
47
- // };
48
-
49
- function send(data) {
50
- console.log(JSON.stringify(data));
51
- }
52
-
53
- let started = false;
54
- // let dialect;
55
-
56
- const cmds = {
57
- start: async (args) => {
58
- console.assert(args.version === 1, { args });
59
- started = true;
60
- return {
61
- version: 1,
62
- implementation: {
63
- language: "javascript",
64
- name: "json-schema-library",
65
- version: packageJson.version,
66
- homepage: "https://github.com/sagold/json-schema-library",
67
- issues: "https://github.com/sagold/json-schema-library/issues",
68
- source: "https://github.com/sagold/json-schema-library",
69
-
70
- dialects: [
71
- "https://json-schema.org/draft/2020-12/schema",
72
- "https://json-schema.org/draft/2019-09/schema",
73
- "http://json-schema.org/draft-07/schema#",
74
- "http://json-schema.org/draft-06/schema#",
75
- "http://json-schema.org/draft-04/schema#"
76
- ],
77
- os: os.platform(),
78
- os_version: os.release(),
79
- language_version: process.version
80
- }
81
- };
82
- },
83
-
84
- dialect: async (args) => {
85
- console.assert(started, "Not started!");
86
- // dialect = schemaIds[args.dialect];
87
- return { ok: true };
88
- },
89
-
90
- run: async (args) => {
91
- console.assert(started, "Not started!");
92
-
93
- // for (const id in testCase.registry) {
94
- // ajv.addSchema(testCase.registry[id], id);
95
- // }
96
-
97
- const testCase = args.case;
98
- // as {
99
- // registry: Recors<sring, string>;
100
- // schema: Record<string, any>;
101
- // tests: {
102
- // /** testdata */
103
- // instance: unknown;
104
- // }[];
105
- // };
106
-
107
- const node = compileSchema(testCase.schema);
108
- const results = testCase.tests.map((test) => {
109
- try {
110
- const errors = node.validate(test.instance);
111
- return { valid: errors.length === 0 };
112
- } catch (error) {
113
- return {
114
- errored: true,
115
- context: {
116
- traceback: error.stack,
117
- message: error.message
118
- }
119
- };
120
- }
121
- });
122
-
123
- return { seq: args.seq, results: results };
124
- },
125
-
126
- stop: async (_) => {
127
- console.assert(started, "Not started!");
128
- process.exit(0);
129
- }
130
- };
131
-
132
- async function main() {
133
- for await (const line of stdio) {
134
- const request = JSON.parse(line);
135
- const response = await cmds[request.cmd](request);
136
- send(response);
137
- }
138
- }
139
-
140
- main();
@@ -1,150 +0,0 @@
1
- {
2
- "id": "http://json-schema.org/draft-04/schema#",
3
- "$schema": "http://json-schema.org/draft-04/schema#",
4
- "description": "Core schema meta-schema",
5
- "definitions": {
6
- "schemaArray": {
7
- "type": "array",
8
- "minItems": 1,
9
- "items": { "$ref": "#" }
10
- },
11
- "positiveInteger": {
12
- "type": "integer",
13
- "minimum": 0
14
- },
15
- "positiveIntegerDefault0": {
16
- "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
17
- },
18
- "simpleTypes": {
19
- "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
20
- },
21
- "stringArray": {
22
- "type": "array",
23
- "items": { "type": "string" },
24
- "minItems": 1,
25
- "uniqueItems": true
26
- }
27
- },
28
- "type": "object",
29
- "properties": {
30
- "id": {
31
- "type": "string",
32
- "format": "uri"
33
- },
34
- "$schema": {
35
- "type": "string",
36
- "format": "uri"
37
- },
38
- "title": {
39
- "type": "string"
40
- },
41
- "description": {
42
- "type": "string"
43
- },
44
- "default": {},
45
- "multipleOf": {
46
- "type": "number",
47
- "minimum": 0,
48
- "exclusiveMinimum": true
49
- },
50
- "maximum": {
51
- "type": "number"
52
- },
53
- "exclusiveMaximum": {
54
- "type": "boolean",
55
- "default": false
56
- },
57
- "minimum": {
58
- "type": "number"
59
- },
60
- "exclusiveMinimum": {
61
- "type": "boolean",
62
- "default": false
63
- },
64
- "maxLength": { "$ref": "#/definitions/positiveInteger" },
65
- "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
66
- "pattern": {
67
- "type": "string",
68
- "format": "regex"
69
- },
70
- "additionalItems": {
71
- "anyOf": [
72
- { "type": "boolean" },
73
- { "$ref": "#" }
74
- ],
75
- "default": {}
76
- },
77
- "items": {
78
- "anyOf": [
79
- { "$ref": "#" },
80
- { "$ref": "#/definitions/schemaArray" }
81
- ],
82
- "default": {}
83
- },
84
- "maxItems": { "$ref": "#/definitions/positiveInteger" },
85
- "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
86
- "uniqueItems": {
87
- "type": "boolean",
88
- "default": false
89
- },
90
- "maxProperties": { "$ref": "#/definitions/positiveInteger" },
91
- "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
92
- "required": { "$ref": "#/definitions/stringArray" },
93
- "additionalProperties": {
94
- "anyOf": [
95
- { "type": "boolean" },
96
- { "$ref": "#" }
97
- ],
98
- "default": {}
99
- },
100
- "definitions": {
101
- "type": "object",
102
- "additionalProperties": { "$ref": "#" },
103
- "default": {}
104
- },
105
- "properties": {
106
- "type": "object",
107
- "additionalProperties": { "$ref": "#" },
108
- "default": {}
109
- },
110
- "patternProperties": {
111
- "type": "object",
112
- "additionalProperties": { "$ref": "#" },
113
- "default": {}
114
- },
115
- "dependencies": {
116
- "type": "object",
117
- "additionalProperties": {
118
- "anyOf": [
119
- { "$ref": "#" },
120
- { "$ref": "#/definitions/stringArray" }
121
- ]
122
- }
123
- },
124
- "enum": {
125
- "type": "array",
126
- "minItems": 1,
127
- "uniqueItems": true
128
- },
129
- "type": {
130
- "anyOf": [
131
- { "$ref": "#/definitions/simpleTypes" },
132
- {
133
- "type": "array",
134
- "items": { "$ref": "#/definitions/simpleTypes" },
135
- "minItems": 1,
136
- "uniqueItems": true
137
- }
138
- ]
139
- },
140
- "allOf": { "$ref": "#/definitions/schemaArray" },
141
- "anyOf": { "$ref": "#/definitions/schemaArray" },
142
- "oneOf": { "$ref": "#/definitions/schemaArray" },
143
- "not": { "$ref": "#" }
144
- },
145
- "dependencies": {
146
- "exclusiveMaximum": [ "maximum" ],
147
- "exclusiveMinimum": [ "minimum" ]
148
- },
149
- "default": {}
150
- }
@@ -1,155 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "$id": "http://json-schema.org/draft-06/schema#",
4
- "title": "Core schema meta-schema",
5
- "definitions": {
6
- "schemaArray": {
7
- "type": "array",
8
- "minItems": 1,
9
- "items": { "$ref": "#" }
10
- },
11
- "nonNegativeInteger": {
12
- "type": "integer",
13
- "minimum": 0
14
- },
15
- "nonNegativeIntegerDefault0": {
16
- "allOf": [
17
- { "$ref": "#/definitions/nonNegativeInteger" },
18
- { "default": 0 }
19
- ]
20
- },
21
- "simpleTypes": {
22
- "enum": [
23
- "array",
24
- "boolean",
25
- "integer",
26
- "null",
27
- "number",
28
- "object",
29
- "string"
30
- ]
31
- },
32
- "stringArray": {
33
- "type": "array",
34
- "items": { "type": "string" },
35
- "uniqueItems": true,
36
- "default": []
37
- }
38
- },
39
- "type": ["object", "boolean"],
40
- "properties": {
41
- "$id": {
42
- "type": "string",
43
- "format": "uri-reference"
44
- },
45
- "$schema": {
46
- "type": "string",
47
- "format": "uri"
48
- },
49
- "$ref": {
50
- "type": "string",
51
- "format": "uri-reference"
52
- },
53
- "title": {
54
- "type": "string"
55
- },
56
- "description": {
57
- "type": "string"
58
- },
59
- "default": {},
60
- "examples": {
61
- "type": "array",
62
- "items": {}
63
- },
64
- "multipleOf": {
65
- "type": "number",
66
- "exclusiveMinimum": 0
67
- },
68
- "maximum": {
69
- "type": "number"
70
- },
71
- "exclusiveMaximum": {
72
- "type": "number"
73
- },
74
- "minimum": {
75
- "type": "number"
76
- },
77
- "exclusiveMinimum": {
78
- "type": "number"
79
- },
80
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
81
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
82
- "pattern": {
83
- "type": "string",
84
- "format": "regex"
85
- },
86
- "additionalItems": { "$ref": "#" },
87
- "items": {
88
- "anyOf": [
89
- { "$ref": "#" },
90
- { "$ref": "#/definitions/schemaArray" }
91
- ],
92
- "default": {}
93
- },
94
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
95
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
96
- "uniqueItems": {
97
- "type": "boolean",
98
- "default": false
99
- },
100
- "contains": { "$ref": "#" },
101
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
102
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
103
- "required": { "$ref": "#/definitions/stringArray" },
104
- "additionalProperties": { "$ref": "#" },
105
- "definitions": {
106
- "type": "object",
107
- "additionalProperties": { "$ref": "#" },
108
- "default": {}
109
- },
110
- "properties": {
111
- "type": "object",
112
- "additionalProperties": { "$ref": "#" },
113
- "default": {}
114
- },
115
- "patternProperties": {
116
- "type": "object",
117
- "additionalProperties": { "$ref": "#" },
118
- "propertyNames": { "format": "regex" },
119
- "default": {}
120
- },
121
- "dependencies": {
122
- "type": "object",
123
- "additionalProperties": {
124
- "anyOf": [
125
- { "$ref": "#" },
126
- { "$ref": "#/definitions/stringArray" }
127
- ]
128
- }
129
- },
130
- "propertyNames": { "$ref": "#" },
131
- "const": {},
132
- "enum": {
133
- "type": "array",
134
- "minItems": 1,
135
- "uniqueItems": true
136
- },
137
- "type": {
138
- "anyOf": [
139
- { "$ref": "#/definitions/simpleTypes" },
140
- {
141
- "type": "array",
142
- "items": { "$ref": "#/definitions/simpleTypes" },
143
- "minItems": 1,
144
- "uniqueItems": true
145
- }
146
- ]
147
- },
148
- "format": { "type": "string" },
149
- "allOf": { "$ref": "#/definitions/schemaArray" },
150
- "anyOf": { "$ref": "#/definitions/schemaArray" },
151
- "oneOf": { "$ref": "#/definitions/schemaArray" },
152
- "not": { "$ref": "#" }
153
- },
154
- "default": {}
155
- }
@@ -1,155 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "http://json-schema.org/draft-07/schema#",
4
- "title": "Core schema meta-schema",
5
- "definitions": {
6
- "schemaArray": {
7
- "type": "array",
8
- "minItems": 1,
9
- "items": { "$ref": "#" }
10
- },
11
- "nonNegativeInteger": {
12
- "type": "integer",
13
- "minimum": 0
14
- },
15
- "nonNegativeIntegerDefault0": {
16
- "allOf": [{ "$ref": "#/definitions/nonNegativeInteger" }, { "default": 0 }]
17
- },
18
- "simpleTypes": {
19
- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"]
20
- },
21
- "stringArray": {
22
- "type": "array",
23
- "items": { "type": "string" },
24
- "uniqueItems": true,
25
- "default": []
26
- }
27
- },
28
- "type": ["object", "boolean"],
29
- "properties": {
30
- "$id": {
31
- "type": "string",
32
- "format": "uri-reference"
33
- },
34
- "$schema": {
35
- "type": "string",
36
- "format": "uri"
37
- },
38
- "$ref": {
39
- "type": "string",
40
- "format": "uri-reference"
41
- },
42
- "$comment": {
43
- "type": "string"
44
- },
45
- "title": {
46
- "type": "string"
47
- },
48
- "description": {
49
- "type": "string"
50
- },
51
- "default": true,
52
- "readOnly": {
53
- "type": "boolean",
54
- "default": false
55
- },
56
- "writeOnly": {
57
- "type": "boolean",
58
- "default": false
59
- },
60
- "examples": {
61
- "type": "array",
62
- "items": true
63
- },
64
- "multipleOf": {
65
- "type": "number",
66
- "exclusiveMinimum": 0
67
- },
68
- "maximum": {
69
- "type": "number"
70
- },
71
- "exclusiveMaximum": {
72
- "type": "number"
73
- },
74
- "minimum": {
75
- "type": "number"
76
- },
77
- "exclusiveMinimum": {
78
- "type": "number"
79
- },
80
- "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },
81
- "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
82
- "pattern": {
83
- "type": "string",
84
- "format": "regex"
85
- },
86
- "additionalItems": { "$ref": "#" },
87
- "items": {
88
- "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/schemaArray" }],
89
- "default": true
90
- },
91
- "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },
92
- "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
93
- "uniqueItems": {
94
- "type": "boolean",
95
- "default": false
96
- },
97
- "contains": { "$ref": "#" },
98
- "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },
99
- "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },
100
- "required": { "$ref": "#/definitions/stringArray" },
101
- "additionalProperties": { "$ref": "#" },
102
- "definitions": {
103
- "type": "object",
104
- "additionalProperties": { "$ref": "#" },
105
- "default": {}
106
- },
107
- "properties": {
108
- "type": "object",
109
- "additionalProperties": { "$ref": "#" },
110
- "default": {}
111
- },
112
- "patternProperties": {
113
- "type": "object",
114
- "additionalProperties": { "$ref": "#" },
115
- "propertyNames": { "format": "regex" },
116
- "default": {}
117
- },
118
- "dependencies": {
119
- "type": "object",
120
- "additionalProperties": {
121
- "anyOf": [{ "$ref": "#" }, { "$ref": "#/definitions/stringArray" }]
122
- }
123
- },
124
- "propertyNames": { "$ref": "#" },
125
- "const": true,
126
- "enum": {
127
- "type": "array",
128
- "items": true,
129
- "minItems": 1,
130
- "uniqueItems": true
131
- },
132
- "type": {
133
- "anyOf": [
134
- { "$ref": "#/definitions/simpleTypes" },
135
- {
136
- "type": "array",
137
- "items": { "$ref": "#/definitions/simpleTypes" },
138
- "minItems": 1,
139
- "uniqueItems": true
140
- }
141
- ]
142
- },
143
- "format": { "type": "string" },
144
- "contentMediaType": { "type": "string" },
145
- "contentEncoding": { "type": "string" },
146
- "if": { "$ref": "#" },
147
- "then": { "$ref": "#" },
148
- "else": { "$ref": "#" },
149
- "allOf": { "$ref": "#/definitions/schemaArray" },
150
- "anyOf": { "$ref": "#/definitions/schemaArray" },
151
- "oneOf": { "$ref": "#/definitions/schemaArray" },
152
- "not": { "$ref": "#" }
153
- },
154
- "default": true
155
- }
@@ -1,42 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2019-09/schema",
3
- "$id": "https://json-schema.org/draft/2019-09/schema",
4
- "$vocabulary": {
5
- "https://json-schema.org/draft/2019-09/vocab/core": true,
6
- "https://json-schema.org/draft/2019-09/vocab/applicator": true,
7
- "https://json-schema.org/draft/2019-09/vocab/validation": true,
8
- "https://json-schema.org/draft/2019-09/vocab/meta-data": true,
9
- "https://json-schema.org/draft/2019-09/vocab/format": false,
10
- "https://json-schema.org/draft/2019-09/vocab/content": true
11
- },
12
- "$recursiveAnchor": true,
13
-
14
- "title": "Core and Validation specifications meta-schema",
15
- "allOf": [
16
- {"$ref": "meta/core"},
17
- {"$ref": "meta/applicator"},
18
- {"$ref": "meta/validation"},
19
- {"$ref": "meta/meta-data"},
20
- {"$ref": "meta/format"},
21
- {"$ref": "meta/content"}
22
- ],
23
- "type": ["object", "boolean"],
24
- "properties": {
25
- "definitions": {
26
- "$comment": "While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.",
27
- "type": "object",
28
- "additionalProperties": { "$recursiveRef": "#" },
29
- "default": {}
30
- },
31
- "dependencies": {
32
- "$comment": "\"dependencies\" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to \"dependentSchemas\" and \"dependentRequired\"",
33
- "type": "object",
34
- "additionalProperties": {
35
- "anyOf": [
36
- { "$recursiveRef": "#" },
37
- { "$ref": "meta/validation#/$defs/stringArray" }
38
- ]
39
- }
40
- }
41
- }
42
- }