@wirenboard/json-editor 2.5.3-wb13

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 (283) hide show
  1. package/.env-dist +2 -0
  2. package/.eslintrc +7 -0
  3. package/.gitattributes +1 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  5. package/.github/issue_template +25 -0
  6. package/.github/workflows/build.yml +58 -0
  7. package/.travis.yml +70 -0
  8. package/CHANGELOG.md +915 -0
  9. package/CONTRIBUTING.md +92 -0
  10. package/LICENSE +20 -0
  11. package/Makefile +26 -0
  12. package/README.md +1646 -0
  13. package/README_ADDON.md +573 -0
  14. package/UPGRADING.md +46 -0
  15. package/build/CssToJson.js +55 -0
  16. package/codecept.conf.js +35 -0
  17. package/config/.eslintrc +7 -0
  18. package/config/codeceptjs_helpers.js +139 -0
  19. package/config/helpers.js +10 -0
  20. package/config/karma.conf.js +93 -0
  21. package/config/readme.md +31 -0
  22. package/config/webpack.common.js +75 -0
  23. package/config/webpack.dev.js +15 -0
  24. package/config/webpack.nonmin.js +19 -0
  25. package/config/webpack.prod.js +25 -0
  26. package/dist/jsoneditor.js +14 -0
  27. package/dist/nonmin/jsoneditor.js +29097 -0
  28. package/dist/nonmin/jsoneditor.js.map +1 -0
  29. package/docs/ace_editor.html +56 -0
  30. package/docs/advanced.html +136 -0
  31. package/docs/basic.html +63 -0
  32. package/docs/basic_person.json +26 -0
  33. package/docs/choices.html +86 -0
  34. package/docs/cleave.html +132 -0
  35. package/docs/colorpicker.html +194 -0
  36. package/docs/css_integration.html +135 -0
  37. package/docs/datetime.html +305 -0
  38. package/docs/describedby.html +161 -0
  39. package/docs/enumsource.html +67 -0
  40. package/docs/images/categoriesDemo.png +0 -0
  41. package/docs/images/inheritance_tree.png +0 -0
  42. package/docs/images/jsoneditor.png +0 -0
  43. package/docs/imask.html +192 -0
  44. package/docs/index.html +579 -0
  45. package/docs/materialize_css.html +164 -0
  46. package/docs/meta_schema.json +705 -0
  47. package/docs/multiple_upload_base64.html +65 -0
  48. package/docs/person.json +73 -0
  49. package/docs/polyfills/assign.js +29 -0
  50. package/docs/radio.html +156 -0
  51. package/docs/recursive.html +170 -0
  52. package/docs/select2.html +99 -0
  53. package/docs/selectize.html +100 -0
  54. package/docs/signature.html +42 -0
  55. package/docs/starrating.html +137 -0
  56. package/docs/upload.html +131 -0
  57. package/docs/uuid.html +70 -0
  58. package/docs/wysiwyg.html +56 -0
  59. package/jasmine.json +11 -0
  60. package/json-editor-json-editor-2.5.3-wb13.tgz +0 -0
  61. package/package.json +100 -0
  62. package/release-notes.md +88 -0
  63. package/src/core.js +412 -0
  64. package/src/defaults.js +402 -0
  65. package/src/editor.js +707 -0
  66. package/src/editors/ace.js +89 -0
  67. package/src/editors/array/choices.js +103 -0
  68. package/src/editors/array/select2.js +110 -0
  69. package/src/editors/array/selectize.js +103 -0
  70. package/src/editors/array.css +9 -0
  71. package/src/editors/array.css.js +3 -0
  72. package/src/editors/array.js +818 -0
  73. package/src/editors/autocomplete.js +58 -0
  74. package/src/editors/base64.js +157 -0
  75. package/src/editors/button.js +97 -0
  76. package/src/editors/checkbox.js +95 -0
  77. package/src/editors/choices.css +3 -0
  78. package/src/editors/choices.css.js +3 -0
  79. package/src/editors/choices.js +69 -0
  80. package/src/editors/colorpicker.js +103 -0
  81. package/src/editors/datetime.js +141 -0
  82. package/src/editors/describedby.js +188 -0
  83. package/src/editors/enum.js +136 -0
  84. package/src/editors/hidden.js +127 -0
  85. package/src/editors/index.js +81 -0
  86. package/src/editors/info.js +20 -0
  87. package/src/editors/integer.js +19 -0
  88. package/src/editors/ip.js +36 -0
  89. package/src/editors/jodit.js +64 -0
  90. package/src/editors/multiple.js +409 -0
  91. package/src/editors/multiselect.js +218 -0
  92. package/src/editors/null.js +18 -0
  93. package/src/editors/number.js +51 -0
  94. package/src/editors/object.css +41 -0
  95. package/src/editors/object.css.js +3 -0
  96. package/src/editors/object.js +1290 -0
  97. package/src/editors/radio.js +111 -0
  98. package/src/editors/sceditor.js +72 -0
  99. package/src/editors/select.js +370 -0
  100. package/src/editors/select2.js +110 -0
  101. package/src/editors/selectize.js +112 -0
  102. package/src/editors/signature.js +113 -0
  103. package/src/editors/simplemde.js +100 -0
  104. package/src/editors/starrating.css +52 -0
  105. package/src/editors/starrating.css.js +3 -0
  106. package/src/editors/starrating.js +135 -0
  107. package/src/editors/stepper.js +27 -0
  108. package/src/editors/string.js +372 -0
  109. package/src/editors/table.js +516 -0
  110. package/src/editors/upload.js +321 -0
  111. package/src/editors/uuid.js +56 -0
  112. package/src/iconlib.js +24 -0
  113. package/src/iconlibs/bootstrap2.js +28 -0
  114. package/src/iconlibs/bootstrap3.js +28 -0
  115. package/src/iconlibs/fontawesome3.js +28 -0
  116. package/src/iconlibs/fontawesome4.js +28 -0
  117. package/src/iconlibs/fontawesome5.js +28 -0
  118. package/src/iconlibs/foundation2.js +24 -0
  119. package/src/iconlibs/foundation3.js +28 -0
  120. package/src/iconlibs/index.js +25 -0
  121. package/src/iconlibs/jqueryui.js +28 -0
  122. package/src/iconlibs/materialicons.js +49 -0
  123. package/src/iconlibs/openiconic.js +28 -0
  124. package/src/iconlibs/spectre.js +28 -0
  125. package/src/resolvers.js +128 -0
  126. package/src/schemaloader.js +408 -0
  127. package/src/style.css +150 -0
  128. package/src/style.css.js +3 -0
  129. package/src/templates/default.js +52 -0
  130. package/src/templates/ejs.js +13 -0
  131. package/src/templates/handlebars.js +1 -0
  132. package/src/templates/hogan.js +10 -0
  133. package/src/templates/index.js +21 -0
  134. package/src/templates/lodash.js +9 -0
  135. package/src/templates/markup.js +9 -0
  136. package/src/templates/mustache.js +9 -0
  137. package/src/templates/swig.js +1 -0
  138. package/src/templates/underscore.js +9 -0
  139. package/src/theme.js +659 -0
  140. package/src/themes/barebones.css +35 -0
  141. package/src/themes/barebones.css.js +3 -0
  142. package/src/themes/barebones.js +28 -0
  143. package/src/themes/bootstrap2.js +319 -0
  144. package/src/themes/bootstrap3.css +0 -0
  145. package/src/themes/bootstrap3.css.js +3 -0
  146. package/src/themes/bootstrap3.js +315 -0
  147. package/src/themes/bootstrap4.css +89 -0
  148. package/src/themes/bootstrap4.css.js +3 -0
  149. package/src/themes/bootstrap4.js +690 -0
  150. package/src/themes/bootstrap5.css.js +3 -0
  151. package/src/themes/foundation.js +569 -0
  152. package/src/themes/html.css +60 -0
  153. package/src/themes/html.css.js +3 -0
  154. package/src/themes/html.js +71 -0
  155. package/src/themes/index.js +28 -0
  156. package/src/themes/jqueryui.js +198 -0
  157. package/src/themes/materialize.js +426 -0
  158. package/src/themes/spectre.css +208 -0
  159. package/src/themes/spectre.css.js +3 -0
  160. package/src/themes/spectre.js +406 -0
  161. package/src/themes/tailwind.css +249 -0
  162. package/src/themes/tailwind.css.js +3 -0
  163. package/src/themes/tailwind.js +443 -0
  164. package/src/utilities.js +138 -0
  165. package/src/validator.js +877 -0
  166. package/src/validators/ip-validator.js +51 -0
  167. package/tests/Dockerfile +3 -0
  168. package/tests/README.md +48 -0
  169. package/tests/codeceptjs/codecept.json +42 -0
  170. package/tests/codeceptjs/constrains/if-then-else_test.js +143 -0
  171. package/tests/codeceptjs/core_test.js +217 -0
  172. package/tests/codeceptjs/editors/advanced_test.js +13 -0
  173. package/tests/codeceptjs/editors/array_any_of_test.js +50 -0
  174. package/tests/codeceptjs/editors/array_test.js +900 -0
  175. package/tests/codeceptjs/editors/button_test.js +35 -0
  176. package/tests/codeceptjs/editors/checkbox_test.js +21 -0
  177. package/tests/codeceptjs/editors/colorpicker_test.js +27 -0
  178. package/tests/codeceptjs/editors/datetime_test.js +33 -0
  179. package/tests/codeceptjs/editors/inheritance_test.js +11 -0
  180. package/tests/codeceptjs/editors/integer_test.js +84 -0
  181. package/tests/codeceptjs/editors/issues/issue-gh-812_test.js +32 -0
  182. package/tests/codeceptjs/editors/jodit_test.js +24 -0
  183. package/tests/codeceptjs/editors/multiselect_test.js +8 -0
  184. package/tests/codeceptjs/editors/number_test.js +82 -0
  185. package/tests/codeceptjs/editors/object_test.js +204 -0
  186. package/tests/codeceptjs/editors/option-no_default_values_test.js +42 -0
  187. package/tests/codeceptjs/editors/programmatic-changes_test.js +20 -0
  188. package/tests/codeceptjs/editors/radio_test.js +10 -0
  189. package/tests/codeceptjs/editors/rating_test.js +13 -0
  190. package/tests/codeceptjs/editors/select_test.js +22 -0
  191. package/tests/codeceptjs/editors/stepper_test.js +27 -0
  192. package/tests/codeceptjs/editors/string_test.js +118 -0
  193. package/tests/codeceptjs/editors/table-confirm-delete_test.js +67 -0
  194. package/tests/codeceptjs/editors/tabs_test.js +14 -0
  195. package/tests/codeceptjs/editors/uuid_test.js +21 -0
  196. package/tests/codeceptjs/editors/validation_test.js +14 -0
  197. package/tests/codeceptjs/meta-schema_test.js +17 -0
  198. package/tests/codeceptjs/schemaloader_test.js +13 -0
  199. package/tests/codeceptjs/steps.d.ts +13 -0
  200. package/tests/codeceptjs/steps_file.js +12 -0
  201. package/tests/codeceptjs/themes_test.js +519 -0
  202. package/tests/docker-compose.yml +34 -0
  203. package/tests/fixtures/basic_person.json +26 -0
  204. package/tests/fixtures/nested_object.json +26 -0
  205. package/tests/fixtures/person.json +55 -0
  206. package/tests/fixtures/recursive.json +8 -0
  207. package/tests/fixtures/some_types.json +32 -0
  208. package/tests/fixtures/string.json +3 -0
  209. package/tests/fixtures/validation.json +1140 -0
  210. package/tests/pages/_demo.html +475 -0
  211. package/tests/pages/advanced.html +137 -0
  212. package/tests/pages/anyof.html +80 -0
  213. package/tests/pages/array-anyof.html +142 -0
  214. package/tests/pages/array-checkboxes.html +41 -0
  215. package/tests/pages/array-choices.html +45 -0
  216. package/tests/pages/array-integers.html +37 -0
  217. package/tests/pages/array-move-events.html +61 -0
  218. package/tests/pages/array-multiselects.html +42 -0
  219. package/tests/pages/array-nested-arrays.html +40 -0
  220. package/tests/pages/array-numbers.html +37 -0
  221. package/tests/pages/array-objects.html +42 -0
  222. package/tests/pages/array-ratings.html +40 -0
  223. package/tests/pages/array-selectize.html +51 -0
  224. package/tests/pages/array-selects.html +36 -0
  225. package/tests/pages/array-strings.html +36 -0
  226. package/tests/pages/array.html +42 -0
  227. package/tests/pages/assets/pages.css +130 -0
  228. package/tests/pages/button-callbacks.html +77 -0
  229. package/tests/pages/checkbox-labels.html +114 -0
  230. package/tests/pages/colorpicker-no-3rd-party.html +43 -0
  231. package/tests/pages/colorpicker-use-vanilla-picker.html +50 -0
  232. package/tests/pages/core.html +118 -0
  233. package/tests/pages/datetime.html +76 -0
  234. package/tests/pages/form-name.html +108 -0
  235. package/tests/pages/grid-strict.html +311 -0
  236. package/tests/pages/grid.html +284 -0
  237. package/tests/pages/if-then-else-allOf.html +117 -0
  238. package/tests/pages/inheritance.html +76 -0
  239. package/tests/pages/integer.html +68 -0
  240. package/tests/pages/issues/_template.html +50 -0
  241. package/tests/pages/issues/issue-gh-812.html +110 -0
  242. package/tests/pages/issues/issue-gh-823-meta-schema.html +35 -0
  243. package/tests/pages/issues/issue-gh-848.html +81 -0
  244. package/tests/pages/meta_schema.json +705 -0
  245. package/tests/pages/number.html +89 -0
  246. package/tests/pages/object-no-additional-properties.html +65 -0
  247. package/tests/pages/object-no-duplicated-id.html +68 -0
  248. package/tests/pages/object-required-properties.html +236 -0
  249. package/tests/pages/object-with-dependencies-array.html +46 -0
  250. package/tests/pages/object-with-dependencies.html +60 -0
  251. package/tests/pages/object.html +79 -0
  252. package/tests/pages/oneof.html +103 -0
  253. package/tests/pages/option-no_default_values.html +58 -0
  254. package/tests/pages/programmatic-changes.html +120 -0
  255. package/tests/pages/read-only.html +105 -0
  256. package/tests/pages/select.html +41 -0
  257. package/tests/pages/stepper.html +59 -0
  258. package/tests/pages/string-ace-editor.html +52 -0
  259. package/tests/pages/string-cleave.html +46 -0
  260. package/tests/pages/string-custom-attributes.html +62 -0
  261. package/tests/pages/string-formats.html +52 -0
  262. package/tests/pages/string-formats2.html +57 -0
  263. package/tests/pages/string-jodit-editor.html +49 -0
  264. package/tests/pages/string-sceditor.html +62 -0
  265. package/tests/pages/table-move-events.html +56 -0
  266. package/tests/pages/table.html +46 -0
  267. package/tests/pages/tabs.html +131 -0
  268. package/tests/pages/themes.html +527 -0
  269. package/tests/pages/translate-property.html +247 -0
  270. package/tests/pages/urn.html +93 -0
  271. package/tests/pages/uuid.html +72 -0
  272. package/tests/pages/validation.html +99 -0
  273. package/tests/unit/.eslintrc +8 -0
  274. package/tests/unit/core.spec.js +309 -0
  275. package/tests/unit/defaults.spec.js +40 -0
  276. package/tests/unit/editor.spec.js +160 -0
  277. package/tests/unit/editors/array.spec.js +86 -0
  278. package/tests/unit/editors/object.spec.js +79 -0
  279. package/tests/unit/editors/table.spec.js +91 -0
  280. package/tests/unit/readme.md +35 -0
  281. package/tests/unit/schemaloader.spec.js +498 -0
  282. package/tests/unit/validator.spec.js +94 -0
  283. package/tests/unit/validators/ip-validator.spec.js +62 -0
@@ -0,0 +1,1140 @@
1
+ {
2
+ "primitive": {
3
+ "schema": {
4
+ "type": "number"
5
+ },
6
+ "valid": [
7
+ 0,
8
+ 1000,
9
+ -100
10
+ ],
11
+ "invalid": [
12
+ "12-12",
13
+ "12*12"
14
+ ]
15
+ },
16
+ "required3": {
17
+ "schema": {
18
+ "type": "object",
19
+ "properties": {
20
+ "required": {
21
+ "type": "string",
22
+ "required": true
23
+ },
24
+ "notrequired": {
25
+ "type": "string",
26
+ "required": false
27
+ },
28
+ "defaultrequired": {
29
+ "type": "string"
30
+ }
31
+ }
32
+ },
33
+ "valid": [
34
+ {
35
+ "required": ""
36
+ },
37
+ {
38
+ "required": "",
39
+ "notrequired": "",
40
+ "defaultrequired": ""
41
+ }
42
+ ],
43
+ "invalid": [
44
+ {
45
+ "notrequired": ""
46
+ }
47
+ ]
48
+ },
49
+ "enum": {
50
+ "schema": {
51
+ "type": "string",
52
+ "enum": [
53
+ "value1",
54
+ "value2"
55
+ ]
56
+ },
57
+ "valid": [
58
+ "value1",
59
+ "value2"
60
+ ],
61
+ "invalid": [
62
+ "value3"
63
+ ]
64
+ },
65
+ "const": {
66
+ "schema": {
67
+ "type": "string",
68
+ "const": "value1"
69
+ },
70
+ "valid": [
71
+ "value1"
72
+ ],
73
+ "invalid": [
74
+ "value2"
75
+ ]
76
+ },
77
+ "extends": {
78
+ "schema": {
79
+ "type": "string",
80
+ "extends": [
81
+ {
82
+ "minLength": "5"
83
+ },
84
+ {
85
+ "maxLength": "10"
86
+ }
87
+ ]
88
+ },
89
+ "valid": [
90
+ "abcdef",
91
+ "abcdefghij",
92
+ "abcdefgh"
93
+ ],
94
+ "invalid": [
95
+ "abcd",
96
+ "abcdefghijk"
97
+ ]
98
+ },
99
+ "allOf": {
100
+ "schema": {
101
+ "type": "string",
102
+ "allOf": [
103
+ {
104
+ "minLength": "5"
105
+ },
106
+ {
107
+ "maxLength": "10"
108
+ }
109
+ ]
110
+ },
111
+ "valid": [
112
+ "abcdef",
113
+ "abcdefghij",
114
+ "abcdefgh"
115
+ ],
116
+ "invalid": [
117
+ "abcd",
118
+ "abcdefghijk"
119
+ ]
120
+ },
121
+ "anyOf": {
122
+ "schema": {
123
+ "type": "string",
124
+ "anyOf": [
125
+ {
126
+ "minLength": "5"
127
+ },
128
+ {
129
+ "pattern": "^[0-9]+$"
130
+ }
131
+ ]
132
+ },
133
+ "valid": [
134
+ "abcdef",
135
+ "123",
136
+ "12345"
137
+ ],
138
+ "invalid": [
139
+ "a"
140
+ ]
141
+ },
142
+ "oneOf": {
143
+ "schema": {
144
+ "type": "string",
145
+ "oneOf": [
146
+ {
147
+ "minLength": "5"
148
+ },
149
+ {
150
+ "pattern": "^[0-9]+$"
151
+ }
152
+ ]
153
+ },
154
+ "valid": [
155
+ "abcdef",
156
+ "123"
157
+ ],
158
+ "invalid": [
159
+ "a",
160
+ "12345"
161
+ ]
162
+ },
163
+ "not": {
164
+ "schema": {
165
+ "type": "string",
166
+ "not": {
167
+ "pattern": "^[0-9]+$"
168
+ }
169
+ },
170
+ "valid": [
171
+ "abc"
172
+ ],
173
+ "invalid": [
174
+ "123"
175
+ ]
176
+ },
177
+ "type": {
178
+ "schema": {
179
+ "type": "object",
180
+ "properties": {
181
+ "string": {
182
+ "type": "string"
183
+ },
184
+ "integer": {
185
+ "type": "integer"
186
+ },
187
+ "number": {
188
+ "type": "number"
189
+ },
190
+ "array": {
191
+ "type": "array"
192
+ },
193
+ "object": {
194
+ "type": "object"
195
+ },
196
+ "boolean": {
197
+ "type": "boolean"
198
+ },
199
+ "null": {
200
+ "type": "null"
201
+ },
202
+ "any": {
203
+ "type": "any"
204
+ },
205
+ "undefined": {},
206
+ "stringnumber": {
207
+ "type": [
208
+ "string",
209
+ "number"
210
+ ]
211
+ },
212
+ "schema": {
213
+ "type": [
214
+ {
215
+ "type": "string",
216
+ "minLength": "5"
217
+ }
218
+ ]
219
+ }
220
+ }
221
+ },
222
+ "valid": [
223
+ {
224
+ "string": "hello",
225
+ "number": 1.50,
226
+ "integer": 1,
227
+ "boolean": true,
228
+ "array": [],
229
+ "object": {},
230
+ "null": null,
231
+ "any": "test",
232
+ "undefined": "test",
233
+ "stringnumber": "a",
234
+ "schema": "abcdef"
235
+ },
236
+ {
237
+ "stringnumber": 5
238
+ }
239
+ ],
240
+ "invalid": [
241
+ {
242
+ "string": 1
243
+ },
244
+ {
245
+ "number": "test"
246
+ },
247
+ {
248
+ "integer": 1.5
249
+ },
250
+ {
251
+ "integer": "test"
252
+ },
253
+ {
254
+ "boolean": "true"
255
+ },
256
+ {
257
+ "array": {}
258
+ },
259
+ {
260
+ "object": []
261
+ },
262
+ {
263
+ "null": {}
264
+ },
265
+ {
266
+ "stringnumber": true
267
+ },
268
+ {
269
+ "schema": "abc"
270
+ },
271
+ {
272
+ "schema": 5
273
+ }
274
+ ]
275
+ },
276
+ "multipleOf": {
277
+ "schema": {
278
+ "multipleOf": 5
279
+ },
280
+ "valid": [
281
+ 5,
282
+ 0,
283
+ 10
284
+ ],
285
+ "invalid": [
286
+ 5.5,
287
+ 8,
288
+ 1
289
+ ]
290
+ },
291
+ "divisibleBy": {
292
+ "schema": {
293
+ "divisibleBy": 5
294
+ },
295
+ "valid": [
296
+ 5,
297
+ 0,
298
+ 10
299
+ ],
300
+ "invalid": [
301
+ 5.5,
302
+ 8,
303
+ 1
304
+ ]
305
+ },
306
+ "multipleOfDecimal": {
307
+ "schema": {
308
+ "multipleOf": 0.01
309
+ },
310
+ "valid": [
311
+ 1,
312
+ 1.14,
313
+ 3.57,
314
+ 56
315
+ ],
316
+ "invalid": [
317
+ 1.012
318
+ ]
319
+ },
320
+ "minmax": {
321
+ "schema": {
322
+ "type": "object",
323
+ "properties": {
324
+ "min": {
325
+ "minimum": 5
326
+ },
327
+ "exmin": {
328
+ "minimum": 5,
329
+ "exclusiveMinimum": true
330
+ },
331
+ "max": {
332
+ "maximum": 5
333
+ },
334
+ "exmax": {
335
+ "maximum": 5,
336
+ "exclusiveMaximum": true
337
+ }
338
+ }
339
+ },
340
+ "valid": [
341
+ {
342
+ "min": 5,
343
+ "exmin": 6,
344
+ "max": 5,
345
+ "exmax": 4
346
+ }
347
+ ],
348
+ "invalid": [
349
+ {
350
+ "min": 4
351
+ },
352
+ {
353
+ "exmin": 5
354
+ },
355
+ {
356
+ "max": 6
357
+ },
358
+ {
359
+ "exmax": 5
360
+ }
361
+ ]
362
+ },
363
+ "minmaxLength": {
364
+ "schema": {
365
+ "type": "object",
366
+ "properties": {
367
+ "min": {
368
+ "minLength": 5
369
+ },
370
+ "max": {
371
+ "maxLength": 5
372
+ }
373
+ }
374
+ },
375
+ "valid": [
376
+ {
377
+ "min": "abcde",
378
+ "max": "abcde"
379
+ },
380
+ {
381
+ "min": "abcdef",
382
+ "max": "abcd"
383
+ }
384
+ ],
385
+ "invalid": [
386
+ {
387
+ "min": "abcd"
388
+ },
389
+ {
390
+ "max": "abcdef"
391
+ }
392
+ ]
393
+ },
394
+ "pattern": {
395
+ "schema": {
396
+ "pattern": "[0-9]"
397
+ },
398
+ "valid": [
399
+ "abc123"
400
+ ],
401
+ "invalid": [
402
+ "abc"
403
+ ]
404
+ },
405
+ "items_schema": {
406
+ "schema": {
407
+ "items": {
408
+ "type": "string"
409
+ }
410
+ },
411
+ "valid": [
412
+ [
413
+ "test",
414
+ ""
415
+ ],
416
+ []
417
+ ],
418
+ "invalid": [
419
+ [
420
+ "test",
421
+ 123
422
+ ]
423
+ ]
424
+ },
425
+ "items_array": {
426
+ "schema": {
427
+ "items": [
428
+ {
429
+ "type": "string"
430
+ },
431
+ {
432
+ "type": "number"
433
+ }
434
+ ],
435
+ "additionalItems": false
436
+ },
437
+ "valid": [
438
+ [
439
+ "test",
440
+ 123
441
+ ]
442
+ ],
443
+ "invalid": [
444
+ [
445
+ "test",
446
+ 123,
447
+ 123
448
+ ],
449
+ [
450
+ 123,
451
+ "test"
452
+ ]
453
+ ]
454
+ },
455
+ "additionalItems": {
456
+ "schema": {
457
+ "items": [
458
+ {
459
+ "type": "string"
460
+ }
461
+ ],
462
+ "additionalItems": {
463
+ "type": "number"
464
+ }
465
+ },
466
+ "valid": [
467
+ [
468
+ "test",
469
+ 1
470
+ ],
471
+ [
472
+ "test"
473
+ ]
474
+ ],
475
+ "invalid": [
476
+ [
477
+ "test",
478
+ 1,
479
+ "test"
480
+ ],
481
+ [
482
+ "test",
483
+ "test2"
484
+ ]
485
+ ]
486
+ },
487
+ "minmaxItems": {
488
+ "schema": {
489
+ "type": "object",
490
+ "properties": {
491
+ "min": {
492
+ "minItems": 3
493
+ },
494
+ "max": {
495
+ "maxItems": 3
496
+ }
497
+ }
498
+ },
499
+ "valid": [
500
+ {
501
+ "min": [
502
+ 1,
503
+ 2,
504
+ 3
505
+ ],
506
+ "max": [
507
+ 1,
508
+ 2,
509
+ 3
510
+ ]
511
+ },
512
+ {
513
+ "min": [
514
+ 1,
515
+ 2,
516
+ 3,
517
+ 4
518
+ ],
519
+ "max": [
520
+ 1,
521
+ 2
522
+ ]
523
+ }
524
+ ],
525
+ "invalid": [
526
+ {
527
+ "min": [
528
+ 1,
529
+ 2
530
+ ]
531
+ },
532
+ {
533
+ "max": [
534
+ 1,
535
+ 2,
536
+ 3,
537
+ 4
538
+ ]
539
+ }
540
+ ]
541
+ },
542
+ "uniqueItems": {
543
+ "schema": {
544
+ "uniqueItems": true
545
+ },
546
+ "valid": [
547
+ [
548
+ 1,
549
+ 2,
550
+ 3,
551
+ {
552
+ "a": 1
553
+ },
554
+ "1",
555
+ "{a:1}"
556
+ ]
557
+ ],
558
+ "invalid": [
559
+ [
560
+ 1,
561
+ 1,
562
+ 2
563
+ ],
564
+ [
565
+ {
566
+ "a": 1
567
+ },
568
+ {
569
+ "a": 1
570
+ }
571
+ ]
572
+ ]
573
+ },
574
+ "minmaxProperties": {
575
+ "schema": {
576
+ "type": "object",
577
+ "properties": {
578
+ "min": {
579
+ "minProperties": 2
580
+ },
581
+ "max": {
582
+ "maxProperties": 2
583
+ }
584
+ }
585
+ },
586
+ "valid": [
587
+ {
588
+ "min": {
589
+ "a": 1,
590
+ "b": 2
591
+ },
592
+ "max": {
593
+ "a": 1,
594
+ "b": 2
595
+ }
596
+ },
597
+ {
598
+ "min": {
599
+ "a": 1,
600
+ "b": 2,
601
+ "c": 3
602
+ },
603
+ "max": {
604
+ "a": 1
605
+ }
606
+ }
607
+ ],
608
+ "invalid": [
609
+ {
610
+ "min": {
611
+ "a": 1
612
+ }
613
+ },
614
+ {
615
+ "max": {
616
+ "a": 1,
617
+ "b": 2,
618
+ "c": 3
619
+ }
620
+ }
621
+ ]
622
+ },
623
+ "required4": {
624
+ "schema": {
625
+ "type": "object",
626
+ "properties": {
627
+ "required": {}
628
+ },
629
+ "required": [
630
+ "required"
631
+ ],
632
+ "additionalProperties": true
633
+ },
634
+ "valid": [
635
+ {
636
+ "required": true,
637
+ "test": 1
638
+ }
639
+ ],
640
+ "invalid": [
641
+ {},
642
+ "a string",
643
+ [
644
+ 1,
645
+ 2,
646
+ 3
647
+ ]
648
+ ]
649
+ },
650
+ "required4_merge": {
651
+ "schema": {
652
+ "type": "object",
653
+ "properties": {
654
+ "orig": {},
655
+ "other": {}
656
+ },
657
+ "required": [
658
+ "orig"
659
+ ],
660
+ "oneOf": [
661
+ {
662
+ "required": [
663
+ "other"
664
+ ]
665
+ }
666
+ ]
667
+ },
668
+ "valid": [
669
+ {
670
+ "orig": true,
671
+ "other": true
672
+ }
673
+ ],
674
+ "invalid": [
675
+ {
676
+ "orig": true
677
+ },
678
+ {
679
+ "other": true
680
+ }
681
+ ]
682
+ },
683
+ "properties": {
684
+ "schema": {
685
+ "type": "object",
686
+ "properties": {
687
+ "required": {
688
+ "type": "string"
689
+ }
690
+ },
691
+ "additionalProperties": {
692
+ "type": "number"
693
+ }
694
+ },
695
+ "valid": [
696
+ {
697
+ "required": "test"
698
+ },
699
+ {
700
+ "other": 1
701
+ }
702
+ ],
703
+ "invalid": [
704
+ {
705
+ "other": "test"
706
+ },
707
+ {
708
+ "required": 1
709
+ }
710
+ ]
711
+ },
712
+ "patternProperties": {
713
+ "schema": {
714
+ "type": "object",
715
+ "patternProperties": {
716
+ "^test": {
717
+ "type": "string"
718
+ }
719
+ },
720
+ "additionalProperties": false
721
+ },
722
+ "valid": [
723
+ {
724
+ "testing": "test"
725
+ },
726
+ {}
727
+ ],
728
+ "invalid": [
729
+ {
730
+ "testing": 1
731
+ },
732
+ {
733
+ "other": "five"
734
+ }
735
+ ]
736
+ },
737
+ "dependencies": {
738
+ "schema": {
739
+ "type": "object",
740
+ "dependencies": {
741
+ "property": [
742
+ "property1",
743
+ "property2"
744
+ ],
745
+ "schema": {
746
+ "properties": {
747
+ "schema2": {
748
+ "type": "string"
749
+ }
750
+ }
751
+ }
752
+ }
753
+ },
754
+ "valid": [
755
+ {
756
+ "property": "",
757
+ "property1": "",
758
+ "property2": "",
759
+ "schema2": 1
760
+ },
761
+ {
762
+ "schema": ""
763
+ },
764
+ {
765
+ "schema": "",
766
+ "schema2": ""
767
+ }
768
+ ],
769
+ "invalid": [
770
+ {
771
+ "property": "",
772
+ "property1": ""
773
+ },
774
+ {
775
+ "schema": "",
776
+ "schema2": 2
777
+ }
778
+ ]
779
+ },
780
+ "definitions": {
781
+ "schema": {
782
+ "type": "object",
783
+ "properties": {
784
+ "storage": {
785
+ "$ref": "#/definitions/diskDevice"
786
+ },
787
+ "external": {
788
+ "$ref": "#/definitions/external"
789
+ }
790
+ },
791
+ "definitions": {
792
+ "diskDevice": {
793
+ "pattern": "^/dev/[^/]+(/[^/]+)*$"
794
+ },
795
+ "external": {
796
+ "$ref": "../fixtures/string.json"
797
+ }
798
+ }
799
+ },
800
+ "valid": [
801
+ {
802
+ "storage": "/dev/test",
803
+ "external": "test"
804
+ }
805
+ ],
806
+ "invalid": [
807
+ {
808
+ "storage": "test"
809
+ },
810
+ {
811
+ "external": 1
812
+ }
813
+ ]
814
+ },
815
+ "definitions_nested": {
816
+ "schema": {
817
+ "type": "object",
818
+ "properties": {
819
+ "id": {
820
+ "$ref": "#/definitions/app/definitions/id"
821
+ },
822
+ "definitions": {
823
+ "type": "number"
824
+ },
825
+ "test": {
826
+ "$ref": "#/definitions/test"
827
+ }
828
+ },
829
+ "definitions": {
830
+ "app": {
831
+ "definitions": {
832
+ "id": {
833
+ "type": "string"
834
+ }
835
+ }
836
+ },
837
+ "test": {
838
+ "properties": {
839
+ "definitions": {
840
+ "type": "number"
841
+ }
842
+ }
843
+ }
844
+ }
845
+ },
846
+ "valid": [
847
+ {
848
+ "id": "test",
849
+ "definitions": 3,
850
+ "test": {
851
+ "definitions": 3
852
+ }
853
+ }
854
+ ],
855
+ "invalid": [
856
+ {
857
+ "id": 1
858
+ },
859
+ {
860
+ "definitions": "string"
861
+ },
862
+ {
863
+ "test": {
864
+ "definitions": "string"
865
+ }
866
+ }
867
+ ]
868
+ },
869
+ "$ref": {
870
+ "schema": {
871
+ "type": "object",
872
+ "properties": {
873
+ "/": {
874
+ "$ref": "../fixtures/string.json"
875
+ }
876
+ }
877
+ },
878
+ "valid": [
879
+ {
880
+ "/": "test"
881
+ }
882
+ ],
883
+ "invalid": [
884
+ {
885
+ "/": 1
886
+ }
887
+ ]
888
+ },
889
+ "$ref_recursive": {
890
+ "schema": {
891
+ "type": "object",
892
+ "properties": {
893
+ "recursive": {
894
+ "$ref": "../fixtures/recursive.json"
895
+ },
896
+ "string": {
897
+ "$ref": "../fixtures/string.json"
898
+ }
899
+ }
900
+ },
901
+ "valid": [
902
+ {
903
+ "recursive": {
904
+ "string": "test"
905
+ },
906
+ "string": "test"
907
+ }
908
+ ],
909
+ "invalid": [
910
+ {
911
+ "recursive": "test"
912
+ },
913
+ {
914
+ "recursive": {
915
+ "string": 1
916
+ }
917
+ },
918
+ {
919
+ "string": 1
920
+ }
921
+ ]
922
+ },
923
+ "disallow": {
924
+ "schema": {
925
+ "type": "object",
926
+ "properties": {
927
+ "union": {
928
+ "disallow": [
929
+ "string",
930
+ {
931
+ "type": "number",
932
+ "maximum": 5
933
+ }
934
+ ]
935
+ },
936
+ "simple": {
937
+ "disallow": "number"
938
+ }
939
+ }
940
+ },
941
+ "valid": [
942
+ {
943
+ "union": 7,
944
+ "simple": "test"
945
+ },
946
+ {
947
+ "union": [],
948
+ "simple": {}
949
+ }
950
+ ],
951
+ "invalid": [
952
+ {
953
+ "union": 4
954
+ },
955
+ {
956
+ "union": "test"
957
+ },
958
+ {
959
+ "simple": 3
960
+ }
961
+ ]
962
+ },
963
+ "custom_validation": {
964
+ "schema": {
965
+ "type": "string",
966
+ "format": "date"
967
+ },
968
+ "valid": [
969
+ "1999-01-01"
970
+ ],
971
+ "invalid": [
972
+ "1999",
973
+ "abc",
974
+ "abc 1999-01-01",
975
+ "1999-01-01 abc"
976
+ ]
977
+ },
978
+ "property_names_invalid": {
979
+ "schema": {
980
+ "type": "object",
981
+ "properties": {
982
+ "abc": { "type": "string" }
983
+ },
984
+ "propertyNames": {
985
+ "unsupported": 10
986
+ }
987
+ },
988
+ "valid": [
989
+ ],
990
+ "invalid": [
991
+ {
992
+ "abc": "hello"
993
+ }
994
+ ]
995
+ },
996
+ "property_names_invalid_maxlength": {
997
+ "schema": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "abc": { "type": "string" }
1001
+ },
1002
+ "propertyNames": {
1003
+ "maxLength": "10"
1004
+ }
1005
+ },
1006
+ "valid": [
1007
+ ],
1008
+ "invalid": [
1009
+ {
1010
+ "abc": "hello"
1011
+ }
1012
+ ]
1013
+ },
1014
+ "property_names_invalid_enum": {
1015
+ "schema": {
1016
+ "type": "object",
1017
+ "properties": {
1018
+ "abc": { "type": "string" }
1019
+ },
1020
+ "propertyNames": {
1021
+ "enum": "list"
1022
+ }
1023
+ },
1024
+ "valid": [
1025
+ ],
1026
+ "invalid": [
1027
+ {
1028
+ "abc": "hello"
1029
+ }
1030
+ ]
1031
+ },
1032
+ "property_names_invalid_const": {
1033
+ "schema": {
1034
+ "type": "object",
1035
+ "properties": {
1036
+ "abc": { "type": "string" }
1037
+ },
1038
+ "propertyNames": {
1039
+ "const": "abc"
1040
+ },
1041
+ "additionalProperties": true
1042
+ },
1043
+ "valid": [
1044
+ {
1045
+ "abc": "hello"
1046
+ }
1047
+ ],
1048
+ "invalid": [
1049
+ {
1050
+ "foo": "world"
1051
+ }
1052
+ ]
1053
+ },
1054
+ "property_names_invalid_pattern": {
1055
+ "schema": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "abc": { "type": "string" }
1059
+ },
1060
+ "propertyNames": {
1061
+ "pattern": [
1062
+ "abc"
1063
+ ]
1064
+ }
1065
+ },
1066
+ "valid": [
1067
+ ],
1068
+ "invalid": [
1069
+ {
1070
+ "abc": "hello"
1071
+ }
1072
+ ]
1073
+ },
1074
+ "property_names_true": {
1075
+ "schema": {
1076
+ "type": "object",
1077
+ "properties": {
1078
+ "abc": { "type": "string" }
1079
+ },
1080
+ "propertyNames": true
1081
+ },
1082
+ "valid": [
1083
+ {
1084
+ },
1085
+ {
1086
+ "abc": "hello"
1087
+ }
1088
+ ],
1089
+ "invalid": [
1090
+ ]
1091
+ },
1092
+ "property_names_false": {
1093
+ "schema": {
1094
+ "type": "object",
1095
+ "properties": {
1096
+ "abc": { "type": "string" }
1097
+ },
1098
+ "propertyNames": false
1099
+ },
1100
+ "valid": [
1101
+ {
1102
+ }
1103
+ ],
1104
+ "invalid": [
1105
+ {
1106
+ "abc": "hello"
1107
+ }
1108
+ ]
1109
+ },
1110
+ "property_names": {
1111
+ "schema": {
1112
+ "type": "object",
1113
+ "propertyNames": {
1114
+ "maxLength": 5,
1115
+ "pattern": "^[a-z]+",
1116
+ "enum": [
1117
+ "alpha",
1118
+ "bravo",
1119
+ "charlie"
1120
+ ]
1121
+ }
1122
+ },
1123
+ "valid": [
1124
+ {
1125
+ "alpha": {"type": "string" }
1126
+ },
1127
+ {
1128
+ "bravo": {"type": "string" }
1129
+ }
1130
+ ],
1131
+ "invalid": [
1132
+ {
1133
+ "abc": { "type": "string" }
1134
+ },
1135
+ {
1136
+ "charlie": { "type": "string" }
1137
+ }
1138
+ ]
1139
+ }
1140
+ }