@prantlf/jsonlint 13.0.0 → 13.1.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.
- package/CHANGELOG.md +414 -0
- package/README.md +34 -31
- package/lib/cli.js +22 -16
- package/lib/index.d.ts +2 -1
- package/lib/validator.js +23 -22
- package/package.json +3 -3
- package/web/ajv.min.js +7 -1
- package/web/ajv.min.js.map +1 -7
- package/web/jsonlint.html +0 -1
- package/web/validator.min.js +3 -3
- package/web/validator.min.js.map +3 -3
- package/web/ajv7.min.js +0 -8
- package/web/ajv7.min.js.map +0 -1
- package/web/schema-drafts.min.js +0 -2
- package/web/schema-drafts.min.js.map +0 -7
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
# [13.1.0](https://github.com/prantlf/jsonlint/compare/v13.0.1...v13.1.0) (2023-03-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Accept multiple schemas if external definitions are used ([32d1cab](https://github.com/prantlf/jsonlint/commit/32d1cabfc5cf00f23ec8d7b6b4a5b62e66924fa3))
|
|
7
|
+
|
|
8
|
+
## [13.0.1](https://github.com/prantlf/jsonlint/compare/v13.0.0...v13.0.1) (2023-03-05)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Replace ajv@6 with ajv-draft-04 ([b1535a3](https://github.com/prantlf/jsonlint/commit/b1535a3ec24be7913f0005cdd617680c02086cdf))
|
|
14
|
+
|
|
15
|
+
# [13.0.0](https://github.com/prantlf/jsonlint/compare/v12.0.0...v13.0.0) (2023-03-05)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* Support JSON Schema drafts 2019-09 and 2020-12 and JSON Type Definition ([0b9130c](https://github.com/prantlf/jsonlint/commit/0b9130ceae5f6f27cbe3e6d65207127862ffe584))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### BREAKING CHANGES
|
|
24
|
+
|
|
25
|
+
* The default environment recognises only JSON Schema drafts 06 and 07 automatically. Not 04 any more. The environment for JSON Schema drafts 04 has to be selected explicitly. Also, JSON Schema drafts 06 and 07 are handled by AJV@8 instead of AJV@6. It shouldn't make any difference, but the implementation is new and could perform a stricter validation.
|
|
26
|
+
|
|
27
|
+
# [12.0.0](https://github.com/prantlf/jsonlint/compare/v11.7.2...v12.0.0) (2023-03-05)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* Upgrade dependencies and require Node.js 14 ([87205c2](https://github.com/prantlf/jsonlint/commit/87205c2427a0ebe0d791a4189b2b2346506601b3))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### BREAKING CHANGES
|
|
36
|
+
|
|
37
|
+
* Dropped support for Node.js 12 . The minimum supported version is Node.js 14.
|
|
38
|
+
|
|
39
|
+
## [11.7.2](https://github.com/prantlf/jsonlint/compare/v11.7.1...v11.7.2) (2023-03-05)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Bug Fixes
|
|
43
|
+
|
|
44
|
+
* Use both typings and types in package.json ([5d00c00](https://github.com/prantlf/jsonlint/commit/5d00c00c7fd098674ee9d1f3dba14369debaa73b))
|
|
45
|
+
|
|
46
|
+
## [11.7.1](https://github.com/prantlf/jsonlint/compare/v11.7.0...v11.7.1) (2023-03-05)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Bug Fixes
|
|
50
|
+
|
|
51
|
+
* Complete TypeScript types ([7064c50](https://github.com/prantlf/jsonlint/commit/7064c5041a292a5a87bccc2de7fc945a2ee7c160))
|
|
52
|
+
|
|
53
|
+
# [11.7.0](https://github.com/prantlf/jsonlint/compare/v11.6.0...v11.7.0) (2022-09-26)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### Bug Fixes
|
|
57
|
+
|
|
58
|
+
* Upgrade npm dependencies ([81526ce](https://github.com/prantlf/jsonlint/commit/81526ce034cf52623dbca986cf9d450287fb104a))
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Features
|
|
62
|
+
|
|
63
|
+
* Ignore the leading UTF-8 byte-order mark (BOM) ([311c6df](https://github.com/prantlf/jsonlint/commit/311c6df75963a5b6da3984ba85541b800d751939))
|
|
64
|
+
|
|
65
|
+
# [11.6.0](https://github.com/prantlf/jsonlint/compare/v11.5.0...v11.6.0) (2022-05-04)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Bug Fixes
|
|
69
|
+
|
|
70
|
+
* Do not generate text diff if not needed ([0423a4b](https://github.com/prantlf/jsonlint/commit/0423a4b1fbc10cb6a201fe79e29a2b0e0101f3d0))
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
### Features
|
|
74
|
+
|
|
75
|
+
* Allow setting the line count as diff context ([9b22843](https://github.com/prantlf/jsonlint/commit/9b22843a93ec47c0e18b1833618072083989b431))
|
|
76
|
+
|
|
77
|
+
# [11.5.0](https://github.com/prantlf/jsonlint/compare/v11.4.0...v11.5.0) (2022-05-03)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
* Do not print file names twice in the compact mode ([86691cc](https://github.com/prantlf/jsonlint/commit/86691cc5fea760a437cae5aff71f0acc987c4e05))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
### Features
|
|
86
|
+
|
|
87
|
+
* Add option "diff" to print the difference instead of the output ([cb3826c](https://github.com/prantlf/jsonlint/commit/cb3826c7610aae8d23623da3693e45cbf942223e))
|
|
88
|
+
|
|
89
|
+
# [11.4.0](https://github.com/prantlf/jsonlint/compare/v11.3.0...v11.4.0) (2022-05-03)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
### Features
|
|
93
|
+
|
|
94
|
+
* Introduce a check that the formatted output is the same as the input ([75167f7](https://github.com/prantlf/jsonlint/commit/75167f76c4bbd13551ca7e20824cc05095fc6be0))
|
|
95
|
+
|
|
96
|
+
# [11.3.0](https://github.com/prantlf/jsonlint/compare/v11.2.0...v11.3.0) (2022-05-03)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
### Bug Fixes
|
|
100
|
+
|
|
101
|
+
* Fix the regex splitting input by line breaks ([7423806](https://github.com/prantlf/jsonlint/commit/74238065643d31044990801713410041cdbb55f0))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### Features
|
|
105
|
+
|
|
106
|
+
* Read options from configuration files ([7eebd76](https://github.com/prantlf/jsonlint/commit/7eebd765f66bcd3bcd6cde7d9c128cbacaca1285))
|
|
107
|
+
|
|
108
|
+
# [11.2.0](https://github.com/prantlf/jsonlint/compare/v11.1.1...v11.2.0) (2022-05-01)
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
### Features
|
|
112
|
+
|
|
113
|
+
* Allow logging only the name of processed files ([91346d9](https://github.com/prantlf/jsonlint/commit/91346d95459f5b516ae71233050262534f197fbf))
|
|
114
|
+
* Allow to continue processing in case of error ([e5318eb](https://github.com/prantlf/jsonlint/commit/e5318ebb75f90459ff4164ec6e84efcc34a9bf4c))
|
|
115
|
+
* Support BASH patterns to specify input files ([31d162f](https://github.com/prantlf/jsonlint/commit/31d162fa9578bd6888d01c3cd0175960b5740d86))
|
|
116
|
+
|
|
117
|
+
## [11.1.1](https://github.com/prantlf/jsonlint/compare/v11.1.0...v11.1.1) (2022-05-01)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
### Bug Fixes
|
|
121
|
+
|
|
122
|
+
* Retain the original last line break in the processed file ([54fd5ab](https://github.com/prantlf/jsonlint/commit/54fd5ab0349300c7bd11dfa6baf4e787e40bead9))
|
|
123
|
+
|
|
124
|
+
# [11.1.0](https://github.com/prantlf/jsonlint/compare/v11.0.0...v11.1.0) (2022-05-01)
|
|
125
|
+
|
|
126
|
+
### Bug Fixes
|
|
127
|
+
|
|
128
|
+
* Merge remote-tracking branch 'xmedeko/patch-1' ([da3e1dc](https://github.com/prantlf/jsonlint/commit/da3e1dca6ce6efcd8d5bd775d75bad06d8c46223))
|
|
129
|
+
|
|
130
|
+
### Features
|
|
131
|
+
|
|
132
|
+
* Optionally ensure a line break at the end of the output ([226019e](https://github.com/prantlf/jsonlint/commit/226019eb75c675eab1dca817ff0dc42e0223d197))
|
|
133
|
+
|
|
134
|
+
# [11.0.0](https://github.com/prantlf/jsonlint/compare/v10.2.0...v11.0.0) (2022-05-01)
|
|
135
|
+
|
|
136
|
+
### Bug Fixes
|
|
137
|
+
|
|
138
|
+
* Upgrade dependencies ([0d35969](https://github.com/prantlf/jsonlint/commit/0d359690aa19884a6d17990c476cf780b39663c0))
|
|
139
|
+
|
|
140
|
+
### BREAKING CHANGES
|
|
141
|
+
|
|
142
|
+
* The minimum supported version has become Node.js 12 instead of the previous Node.js 6. At least `commander` needs the new version.
|
|
143
|
+
|
|
144
|
+
# [10.2.0](https://github.com/prantlf/jsonlint/compare/v10.1.1...v10.2.0) (2019-12-28)
|
|
145
|
+
|
|
146
|
+
### Features
|
|
147
|
+
|
|
148
|
+
* Allow trimming trailing commas in arrays and objects (JSON5) ([136ea99](https://github.com/prantlf/jsonlint/commit/136ea995bef7b0f77c2ac54b6ce7dd8572190bf8))
|
|
149
|
+
* Allow unifying quotes around object keys to double or single ones (JSON5) ([6b6da17](https://github.com/prantlf/jsonlint/commit/6b6da175cfea8f71841e145a525ef124c19c2607))
|
|
150
|
+
|
|
151
|
+
# [10.1.1](https://github.com/prantlf/jsonlint/compare/v10.1.0...v10.1.1) (2019-12-27)
|
|
152
|
+
|
|
153
|
+
### Bug Fixes
|
|
154
|
+
|
|
155
|
+
* Restore compatibility with IE11 ([55b8a48](https://github.com/prantlf/jsonlint/commit/55b8a4816b08c5504cf7f0841d1997634a6376ea))
|
|
156
|
+
|
|
157
|
+
# [10.1.0](https://github.com/prantlf/jsonlint/compare/v10.0.2...v10.1.0) (2019-12-27)
|
|
158
|
+
|
|
159
|
+
### Features
|
|
160
|
+
|
|
161
|
+
* Alternatively accept number of spaces for the indent parameter ([4c25739](https://github.com/prantlf/jsonlint/commit/4c257399b77e446c198b25049fae2ca08ad174ec))
|
|
162
|
+
|
|
163
|
+
# [10.0.2](https://github.com/prantlf/jsonlint/compare/v10.0.1...v10.0.2) (2019-12-27)
|
|
164
|
+
|
|
165
|
+
### Bug Fixes
|
|
166
|
+
|
|
167
|
+
* Do not modify input options in the tokenize method ([7e3ac0b](https://github.com/prantlf/jsonlint/commit/7e3ac0babf873c42da1daadaee2bbe55d2644690))
|
|
168
|
+
|
|
169
|
+
# [10.0.1](https://github.com/prantlf/jsonlint/compare/v10.0.0...v10.0.1) (2019-12-27)
|
|
170
|
+
|
|
171
|
+
### Bug Fixes
|
|
172
|
+
|
|
173
|
+
* Pretty-printer: keep the comment after opening an object scope indented ([4fbc09d](https://github.com/prantlf/jsonlint/commit/4fbc09d402ed5442e2de77382342267e330cb908))
|
|
174
|
+
|
|
175
|
+
# [10.0.0](https://github.com/prantlf/jsonlint/compare/v9.0.0...v10.0.0) (2019-12-27)
|
|
176
|
+
|
|
177
|
+
### Bug Fixes
|
|
178
|
+
|
|
179
|
+
* Rename the property "exzerpt" in error information to "excerpt" ([4c74e3d](https://github.com/prantlf/jsonlint/commit/4c74e3d866fc54a7b2f833ff522efbaef3331bbe))
|
|
180
|
+
|
|
181
|
+
### Features
|
|
182
|
+
|
|
183
|
+
* Add support for pretty-printing of the JSON input ([d5eaa93](https://github.com/prantlf/jsonlint/commit/d5eaa9350d654050316b186dc8965ce9cb45d905))
|
|
184
|
+
|
|
185
|
+
### BREAKING CHANGES
|
|
186
|
+
|
|
187
|
+
* If you used the property "exzerpt" from the parsing error object, you have to change it to "excerpt". It should be easy using a full-text search in your sources.
|
|
188
|
+
* The option for pretty-printing *invalid input* has been renamed:
|
|
189
|
+
|
|
190
|
+
-p (--pretty-print) ==> -P (--pretty-print-invalid)
|
|
191
|
+
|
|
192
|
+
The option `-p (--pretty-print)` will newly prettify the raw (text) input instead of formatting the parsed JSON object.
|
|
193
|
+
|
|
194
|
+
# [9.0.0](https://github.com/prantlf/jsonlint/compare/v8.0.3...v9.0.0) (2019-12-22)
|
|
195
|
+
|
|
196
|
+
### chore
|
|
197
|
+
|
|
198
|
+
* Upgrade package dependencies ([4a8f2d9](https://github.com/prantlf/jsonlint/commit/4a8f2d9c27428da32b95f607bf7952190636af9f))
|
|
199
|
+
|
|
200
|
+
### Features
|
|
201
|
+
|
|
202
|
+
* Add TypeScript typings ([ba6c979](https://github.com/prantlf/jsonlint/commit/ba6c9790792837fdc3abd0032899ffd04953cf3d))
|
|
203
|
+
|
|
204
|
+
### BREAKING CHANGES
|
|
205
|
+
|
|
206
|
+
* Dependencies (commander, at least) dropped support for Node.js 4. Node.js 6 should still work, but officially it is not supported either. You should upgrade to the current or still supported Node.js LTS version.
|
|
207
|
+
|
|
208
|
+
## [8.0.3](https://github.com/prantlf/jsonlint/compare/v8.0.2...v8.0.3) (2019-09-24)
|
|
209
|
+
|
|
210
|
+
### Bug Fixes
|
|
211
|
+
|
|
212
|
+
* Upgrade package dependencies and adapt sources ([9f1f332](https://github.com/prantlf/jsonlint/commit/9f1f332960c91d9779bff995457154157df8823b))
|
|
213
|
+
|
|
214
|
+
## [8.0.2](https://github.com/prantlf/jsonlint/compare/v8.0.1...v8.0.2) (2019-07-04)
|
|
215
|
+
|
|
216
|
+
### Bug Fixes
|
|
217
|
+
|
|
218
|
+
* Put only the reason of the error to the error.reason property when the custom parser is used; not the full message including the error context ([8d7f0b1](https://github.com/prantlf/jsonlint/commit/8d7f0b13b2bfe7e854c965b7266e5de1dec79229))
|
|
219
|
+
* Update newline replacement regex to show correct error position on Windows ([7af364c](https://github.com/prantlf/jsonlint/commit/7af364cbafd84326f20f29adbacde1cd0f70e57a))
|
|
220
|
+
|
|
221
|
+
# [8.0.0](https://github.com/prantlf/jsonlint/compare/v7.0.3...v8.0.0) (2019-06-16)
|
|
222
|
+
|
|
223
|
+
### Bug Fixes
|
|
224
|
+
|
|
225
|
+
* Give the schema-drafts.js proper name and path in source maps ([c2f0148](https://github.com/prantlf/jsonlint/commit/c2f0148cb027e335fa2bb644f3c09a9c51303193))
|
|
226
|
+
|
|
227
|
+
### Features
|
|
228
|
+
|
|
229
|
+
* Add the tokenize method returning tokens instead of the parsed object ([cc7b554](https://github.com/prantlf/jsonlint/commit/cc7b55495b3287279aa0c27e242d3e90d8636d66))
|
|
230
|
+
* Improve schema error reporting to the level of data parsing ([ea5a8a2](https://github.com/prantlf/jsonlint/commit/ea5a8a2f917f6a07212f8a4e05af22c14e5f1883))
|
|
231
|
+
* Remove deprecated exports `Parser` and `parser` ([8bda5b1](https://github.com/prantlf/jsonlint/commit/8bda5b1455d8d176997dcce0bbcd622985888fc7))
|
|
232
|
+
|
|
233
|
+
### BREAKING CHANGES
|
|
234
|
+
|
|
235
|
+
* The `Parser` class and `parser` instance did not bring any benefit. They were generated by Jison. After abandoning the Jison parser they were kept for compatibility only. The only method on the `Parser` prototype was the `parse`. It remains unchanged as a direct export. Drop the class interface and just call the `parse` method directly.
|
|
236
|
+
|
|
237
|
+
## [7.0.3](https://github.com/prantlf/jsonlint/compare/v7.0.2...v7.0.3) (2019-06-03)
|
|
238
|
+
|
|
239
|
+
### Bug Fixes
|
|
240
|
+
|
|
241
|
+
* Ensure, that tokens and keys in error messages are enclosed in quotation marks ([2149198](https://github.com/prantlf/jsonlint/commit/2149198721fc8dd05632b2225c621ebf7b5e14b7))
|
|
242
|
+
|
|
243
|
+
## [7.0.2](https://github.com/prantlf/jsonlint/compare/v7.0.1...v7.0.2) (2019-06-02)
|
|
244
|
+
|
|
245
|
+
### Bug Fixes
|
|
246
|
+
|
|
247
|
+
* Upgrade minificating module ([04d80d7](https://github.com/prantlf/jsonlint/commit/04d80d752c4900f26585d9a809b8ac6d0eef696d))
|
|
248
|
+
|
|
249
|
+
## [7.0.1](https://github.com/prantlf/jsonlint/compare/v7.0.0...v7.0.1) (2019-06-02)
|
|
250
|
+
|
|
251
|
+
### Bug Fixes
|
|
252
|
+
|
|
253
|
+
* Recognize boxed string as schema environment too ([e37b004](https://github.com/prantlf/jsonlint/commit/e37b0042376cf5beafc93bf906ee70b583f08969))
|
|
254
|
+
|
|
255
|
+
# [7.0.0](https://github.com/prantlf/jsonlint/compare/v6.3.1...v7.0.0) (2019-06-02)
|
|
256
|
+
|
|
257
|
+
### Bug Fixes
|
|
258
|
+
|
|
259
|
+
* Do not use the native parser in Safari and Node.js 4 ([a4a606c](https://github.com/prantlf/jsonlint/commit/a4a606c333e443642ced99d466223607bce11461))
|
|
260
|
+
* Include the minified scripts used on the on-line page in the NPM module ([03561ec](https://github.com/prantlf/jsonlint/commit/03561ecba00c5d23dfba41831bea818837a7b804))
|
|
261
|
+
|
|
262
|
+
### Features
|
|
263
|
+
|
|
264
|
+
* Add "mode" parameter to set flags for a typical format type easier ([9aa09fb](https://github.com/prantlf/jsonlint/commit/9aa09fbc9980e78fa0fed134ce48d99412b619a9))
|
|
265
|
+
* Add an option for ignoring trailing commas in object and arrays ([7d521fb](https://github.com/prantlf/jsonlint/commit/7d521fb68ea7919625cc6bc5f5179ce69f6b5985))
|
|
266
|
+
* Add an option for reporting duplicate object keys as an error ([09e3977](https://github.com/prantlf/jsonlint/commit/09e39772de088b73e43dac551533a160bc09903c))
|
|
267
|
+
* Replace the parser generated by Jison with a hand-built parser from JJU ([2781670](https://github.com/prantlf/jsonlint/commit/27816706435fb48fb8816d743bc56d6d34c4c6c8))
|
|
268
|
+
* Support `reviver` from the native `JSON.parse` method ([83cd33c](https://github.com/prantlf/jsonlint/commit/83cd33c937851482799e01bf7262a9ba93bed6cf))
|
|
269
|
+
|
|
270
|
+
### BREAKING CHANGES
|
|
271
|
+
|
|
272
|
+
* There is no `yy.parseError` to intercept error handling. Use the thrown error - it contains all available information. The error does not include the `hash` object with structured information. Look for the [documentd properties](/prantlf/jsonlint#error-handling). The location of the error occurrence is available as `location.start`, for example.
|
|
273
|
+
|
|
274
|
+
DEPRECATION: The only exposed object to use from now on is the `parse` method as a named export. Other exports (`parser` and `Parser`) are deprecated and will be removed in future.
|
|
275
|
+
|
|
276
|
+
The parser from ["Utilities to work with JSON/JSON5 documents"](/rlidwka/jju) is four times faster, than the previous one, has approximatly the same size and can be easier enhanced, regarding both features and error handling.
|
|
277
|
+
|
|
278
|
+
## [6.3.1](https://github.com/prantlf/jsonlint/compare/v6.3.0...v6.3.1) (2019-05-31)
|
|
279
|
+
|
|
280
|
+
### Bug Fixes
|
|
281
|
+
|
|
282
|
+
* Recognise the location of error occurrences in Firefox ([7c8c040](https://github.com/prantlf/jsonlint/commit/7c8c040e8f9d259bf573c04f8f6a7df15587a54a))
|
|
283
|
+
|
|
284
|
+
# [6.3.0](https://github.com/prantlf/jsonlint/compare/v6.2.1...v6.3.0) (2019-05-30)
|
|
285
|
+
|
|
286
|
+
### Bug Fixes
|
|
287
|
+
|
|
288
|
+
* Auto-detect the version of the JSON Schema draft by default ([1fe98ef](https://github.com/prantlf/jsonlint/commit/1fe98ef4e3ee5cd26055e6f73f11387635a078a3))
|
|
289
|
+
* Prefer the native JSON parser, if possible, to improve performance ([1639356](https://github.com/prantlf/jsonlint/commit/16393562769a9f77741347fd9cda15c5207f1fee))
|
|
290
|
+
|
|
291
|
+
### Features
|
|
292
|
+
|
|
293
|
+
* Support parser options for customisation and performance in JSON schema parsing too ([d562826](https://github.com/prantlf/jsonlint/commit/d562826f604f8c3df5656a79ee4c2085c203f91c))
|
|
294
|
+
|
|
295
|
+
## [6.2.1](https://github.com/prantlf/jsonlint/compare/v6.2.0...v6.2.1) (2019-05-30)
|
|
296
|
+
|
|
297
|
+
### Bug Fixes
|
|
298
|
+
|
|
299
|
+
* Include source code in source maps on the on-line validator page ([31e0097](https://github.com/prantlf/jsonlint/commit/31e0097de3c2c5a30e3695d1d5b3f411dc7b6723))
|
|
300
|
+
|
|
301
|
+
# [6.2.0](https://github.com/prantlf/jsonlint/compare/v6.1.0...v6.2.0) (2019-05-30)
|
|
302
|
+
|
|
303
|
+
### Features
|
|
304
|
+
|
|
305
|
+
* Extract the functionality for sorting object keys to a module ([a53bd93](https://github.com/prantlf/jsonlint/commit/a53bd9392b2116b5272c77deee9423ba16b5f520))
|
|
306
|
+
|
|
307
|
+
# [6.1.0](https://github.com/prantlf/jsonlint/compare/v6.0.0...v6.1.0) (2019-05-27)
|
|
308
|
+
|
|
309
|
+
### Bug Fixes
|
|
310
|
+
|
|
311
|
+
* Fix the missing function object (Parser) in the main module exports ([eb892aa](https://github.com/prantlf/jsonlint/commit/eb892aab516754ec3bf2eb01ff575fe0c173a510))
|
|
312
|
+
* Restore context options (yy) set in the Parser constructor after the call to parse, if the options were overridden by the method arguments ([787c350](https://github.com/prantlf/jsonlint/commit/787c350c201ac0971e42d5b9f224689600e5c11f))
|
|
313
|
+
|
|
314
|
+
### Features
|
|
315
|
+
|
|
316
|
+
* Use the native JSON parser if a limited error information is enough ([8aa9fb1](https://github.com/prantlf/jsonlint/commit/8aa9fb10d6c6f7f148d8c7816cc73d6b8385aace))
|
|
317
|
+
|
|
318
|
+
# [6.0.0](https://github.com/prantlf/jsonlint/compare/v5.0.0...v6.0.0) (2019-05-26)
|
|
319
|
+
|
|
320
|
+
### Features
|
|
321
|
+
|
|
322
|
+
* Declare modules in this package using UMD ([d442583](https://github.com/prantlf/jsonlint/commit/d4425837cea5c11352f988e3723455b8d8f5115b))
|
|
323
|
+
* Remove ParserWithComments and parseWithComment from the interface ([3fab374](https://github.com/prantlf/jsonlint/commit/3fab374a0675a699dab3e8aed3bcf928b77fffe4))
|
|
324
|
+
|
|
325
|
+
### BREAKING CHANGES
|
|
326
|
+
|
|
327
|
+
* The object and the method do not exist any more. Pass the parameter "ignoreComments" as an object `{ ignoreComments: true }` either to the constructor of the `Parser` object, or as the second parameter to the method `parse`.
|
|
328
|
+
|
|
329
|
+
# [5.0.0](https://github.com/prantlf/jsonlint/compare/v4.0.2...v5.0.0) (2019-05-26)
|
|
330
|
+
|
|
331
|
+
### Bug Fixes
|
|
332
|
+
|
|
333
|
+
* Do not export "main" method, which requires other NPM modules ([d8af36a](https://github.com/prantlf/jsonlint/commit/d8af36ac292c68b0ee35460a5e7394a26fad4524))
|
|
334
|
+
|
|
335
|
+
### Features
|
|
336
|
+
|
|
337
|
+
* Accept single quotes (apostrophes) as string delimiters ([240b8cd](https://github.com/prantlf/jsonlint/commit/240b8cd916b7424e27f7ff585ca30512e87a6566))
|
|
338
|
+
|
|
339
|
+
### BREAKING CHANGES
|
|
340
|
+
|
|
341
|
+
* The "main" method providing a command-line interface importable from other module has been removed. If you used it, have a look at the command-line interface in `lib/cli`. You can import this module in instead and it offers a richer interface, than the previously exported "main" method. The `lib/cli` module is mapped to `bin/jsonlint` too. However, consider the default library export (`lib/jsonlint`) for programmatic usage. You will pack less JavaScript code and use smalker, mode programmer-oriented interface.
|
|
342
|
+
|
|
343
|
+
## [4.0.2](https://github.com/prantlf/jsonlint/compare/v4.0.1...v4.0.2) (2019-05-19)
|
|
344
|
+
|
|
345
|
+
### Bug Fixes
|
|
346
|
+
|
|
347
|
+
* Print parsing errors if the JSON input is read from stdin ([acfdf11](https://github.com/prantlf/jsonlint/commit/acfdf11e11a8f355cdd8fd1abf09edde664d8c02))
|
|
348
|
+
|
|
349
|
+
## [4.0.1](https://github.com/prantlf/jsonlint/compare/v4.0.0...v4.0.1) (2019-05-19)
|
|
350
|
+
|
|
351
|
+
### Bug Fixes
|
|
352
|
+
|
|
353
|
+
* Do not fail sorting objects with a property called "hasOwnProperty" ([b544ceb](https://github.com/prantlf/jsonlint/commit/b544ceb54d44e8273dd7a1d28fc7f69a527fd806))
|
|
354
|
+
|
|
355
|
+
# [4.0.0](https://github.com/prantlf/jsonlint/compare/v3.0.0...v4.0.0) (2019-05-19)
|
|
356
|
+
|
|
357
|
+
### Bug Fixes
|
|
358
|
+
|
|
359
|
+
* Standardize the interface of the "jsonlint/lib/formatter" module ([b8b041b](https://github.com/prantlf/jsonlint/commit/b8b041bcc0e6ea672ec4575c5b108f347cfef69a))
|
|
360
|
+
|
|
361
|
+
### Features
|
|
362
|
+
|
|
363
|
+
* Add web and programmatic interfaces to JSON Schema validation ([d45b243](https://github.com/prantlf/jsonlint/commit/d45b243bf1d083df58d9959d42eb3a787f5e7d89))
|
|
364
|
+
|
|
365
|
+
### BREAKING CHANGES
|
|
366
|
+
|
|
367
|
+
* The formatting method is exposed not as exports.formatter.formatJson, but as exports.format.
|
|
368
|
+
This module is not documented and it is unlikely, that it broke other project.
|
|
369
|
+
|
|
370
|
+
# [3.0.0](https://github.com/prantlf/jsonlint/compare/v2.0.1...v3.0.0) (2019-05-18)
|
|
371
|
+
|
|
372
|
+
### Bug Fixes
|
|
373
|
+
|
|
374
|
+
* Replace JSON schema validator JSV with ajv, because JSV is not maintained any more and does not support current JSON schema drafts ([1a4864f](https://github.com/prantlf/jsonlint/commit/1a4864f63ba14cb86a4e677fc23e5c1e963d2e07))
|
|
375
|
+
|
|
376
|
+
### BREAKING CHANGES
|
|
377
|
+
|
|
378
|
+
* The environment for the JSON schema validation "json-schema-draft-03" is not available any more.
|
|
379
|
+
Migrate your schemas from the JSON schema draft 03 to 04 or newer. Drafts 04, 06 and 07 are supported with this release.
|
|
380
|
+
|
|
381
|
+
## [2.0.1](https://github.com/prantlf/jsonlint/compare/v2.0.0...v2.0.1) (2019-05-18)
|
|
382
|
+
|
|
383
|
+
### Bug Fixes
|
|
384
|
+
|
|
385
|
+
* Do not depend on the standard checker in the release package ([1e9c7b5](https://github.com/prantlf/jsonlint/commit/1e9c7b5b5c091332270dbe6b2203fd66644bf355))
|
|
386
|
+
|
|
387
|
+
# [2.0.0](https://github.com/prantlf/jsonlint/compare/v1.7.0...v2.0.0) (2019-05-18)
|
|
388
|
+
|
|
389
|
+
### Bug Fixes
|
|
390
|
+
|
|
391
|
+
* Accept any file extension on the command line directly ([14ba31c](https://github.com/prantlf/jsonlint/commit/14ba31cf5adc0ddb24d6c318866b6bf9a3c6ae48))
|
|
392
|
+
* Do not distribute the web directory in the npm module ([7379be8](https://github.com/prantlf/jsonlint/commit/7379be83e3dc511785c4506e8ab55b77e014724e))
|
|
393
|
+
* Make the compact-errors mode working with the latest Jison output ([d417a9c](https://github.com/prantlf/jsonlint/commit/d417a9c39047be929b9f7589da9c2d3c188db7f9))
|
|
394
|
+
* Rename the long name of the option "extension" to "extensions" ([383e50a](https://github.com/prantlf/jsonlint/commit/383e50a6a00ee4641f8ae863b46e1af7bade7ee9))
|
|
395
|
+
* Replace nomnom as command-line parser with commander, which is maintaitained ([6694bba](https://github.com/prantlf/jsonlint/commit/6694bba56fc821cbe2622340c9753506fa026580))
|
|
396
|
+
* Report the right file name in the compact-errors mode, if multiple files or directories are engtered ([7c80326](https://github.com/prantlf/jsonlint/commit/7c80326a69a8df8f1f7ea66dced4a888ea321d9b))
|
|
397
|
+
|
|
398
|
+
### Features
|
|
399
|
+
|
|
400
|
+
* Add a checkbox to recognize JavaScript-style comments to the web page ([2a9082a](https://github.com/prantlf/jsonlint/commit/2a9082a26d1316a80ebf132d159e5bf49c3d0978))
|
|
401
|
+
* Support parsing and skipping JavaScript-style comments in the JSON input ([4955c58](https://github.com/prantlf/jsonlint/commit/4955c58788dd3b8c3a7a4358cbf65af72a353d0d))
|
|
402
|
+
|
|
403
|
+
### BREAKING CHANGES
|
|
404
|
+
|
|
405
|
+
* The options "extension" is not recognized any more.
|
|
406
|
+
Use the option "extensions" with the same semantics instead.
|
|
407
|
+
|
|
408
|
+
# [1.7.0](https://github.com/prantlf/jsonlint/compare/v1.6.4...v1.7.0) (2019-05-18)
|
|
409
|
+
|
|
410
|
+
### Features
|
|
411
|
+
|
|
412
|
+
* Allow specifying JSON file extensions for directory walk ([d8e8076](https://github.com/prantlf/jsonlint/commit/d8e8076edb831a577f5e272a5ea9e4edd077671b))
|
|
413
|
+
|
|
414
|
+
This is the first version released after forking the [original project](https://github.com/zaach/jsonlint).
|
package/README.md
CHANGED
|
@@ -16,14 +16,15 @@ This is a fork of the original project ([zaach/jsonlint](https://github.com/zaac
|
|
|
16
16
|
* Optionally recognizes JavaScript-style comments (CJSON) and single quoted strings (JSON5).
|
|
17
17
|
* Optionally ignores trailing commas and reports duplicate object keys as an error.
|
|
18
18
|
* Optionally checks that also the expected format matches, including sorted object keys.
|
|
19
|
-
* Supports [JSON Schema] drafts 04, 06 and
|
|
19
|
+
* Supports [JSON Schema] drafts 04, 06, 07, 2019-09 and 2020-12.
|
|
20
|
+
* Supports [JSON Type Definition].
|
|
20
21
|
* Offers pretty-printing including comment-stripping and object keys without quotes (JSON5).
|
|
21
|
-
* Prefers the native JSON parser if possible to run [
|
|
22
|
+
* Prefers the native JSON parser if possible to run [10x faster than the custom parser].
|
|
22
23
|
* Reports errors with rich additional information. From the JSON Schema validation too.
|
|
23
24
|
* Consumes configuration from both command line and [configuration files](configuration).
|
|
24
25
|
* Implements JavaScript modules using [UMD] to work in Node.js, in a browser, everywhere.
|
|
25
26
|
* Depends on up-to-date npm modules with no installation warnings.
|
|
26
|
-
* Small size - 18.
|
|
27
|
+
* Small size - 18.4 kB minified, 6.45 kB gzipped, 5.05 kB brotlied.
|
|
27
28
|
|
|
28
29
|
**Note:** In comparison with the original project, this package exports only the `parse` method; not the `Parser` object.
|
|
29
30
|
|
|
@@ -113,50 +114,42 @@ The input can be checked not only to be a valid JSON, but also to be formatted a
|
|
|
113
114
|
|
|
114
115
|
### Usage
|
|
115
116
|
|
|
116
|
-
Usage: `jsonlint [options] [<file, directory, pattern> ...]`
|
|
117
|
+
Usage: `jsonlint [options] [--] [<file, directory, pattern> ...]`
|
|
117
118
|
|
|
118
119
|
#### Options
|
|
119
120
|
|
|
120
|
-
-f, --config
|
|
121
|
-
-F, --no-config disable searching for configuration
|
|
121
|
+
-f, --config <file> read options from a custom configuration file
|
|
122
|
+
-F, --no-config disable searching for configuration files
|
|
122
123
|
-s, --sort-keys sort object keys (not when prettifying)
|
|
123
|
-
-E, --extensions
|
|
124
|
-
(default: ["json","JSON"])
|
|
124
|
+
-E, --extensions <ext...> file extensions to process for directory walk (default: ["json","JSON"])
|
|
125
125
|
-i, --in-place overwrite the input files
|
|
126
126
|
-j, --diff print difference instead of writing the output
|
|
127
127
|
-k, --check check that the input is equal to the output
|
|
128
|
-
-t, --indent
|
|
129
|
-
to use for indentation (default: 2)
|
|
128
|
+
-t, --indent <num|char> number of spaces or specific characters to use for indentation (default: 2)
|
|
130
129
|
-c, --compact compact error display
|
|
131
|
-
-M, --mode
|
|
132
|
-
type (default: "json")
|
|
130
|
+
-M, --mode <mode> set other parsing flags according to a format type (default: "json")
|
|
133
131
|
-B, --bom ignore the leading UTF-8 byte-order mark
|
|
134
132
|
-C, --comments recognize and ignore JavaScript-style comments
|
|
135
133
|
-S, --single-quoted-strings support single quotes as string delimiters
|
|
136
134
|
-T, --trailing-commas ignore trailing commas in objects and arrays
|
|
137
135
|
-D, --no-duplicate-keys report duplicate object keys as an error
|
|
138
|
-
-V, --validate
|
|
139
|
-
-e, --environment
|
|
140
|
-
|
|
141
|
-
-x, --context [num] line count used as the diff context (default: 3)
|
|
136
|
+
-V, --validate <file...> JSON Schema file(s) to use for validation (default: [])
|
|
137
|
+
-e, --environment <env> which specification of JSON Schema the validation file uses
|
|
138
|
+
-x, --context <num> line count used as the diff context (default: 3)
|
|
142
139
|
-l, --log-files print only the parsed file names to stdout
|
|
143
140
|
-q, --quiet do not print the parsed json to stdout
|
|
144
141
|
-n, --continue continue with other files if an error occurs
|
|
145
|
-
-p, --pretty-print prettify the input instead of stringifying
|
|
146
|
-
the parsed object
|
|
142
|
+
-p, --pretty-print prettify the input instead of stringifying the parsed object
|
|
147
143
|
-P, --pretty-print-invalid force pretty-printing even for invalid input
|
|
148
144
|
-r, --trailing-newline ensure a line break at the end of the output
|
|
149
145
|
-R, --no-trailing-newline ensure no line break at the end of the output
|
|
150
146
|
--prune-comments omit comments from the prettified output
|
|
151
|
-
--strip-object-keys strip quotes from object keys if possible
|
|
152
|
-
(JSON5)
|
|
147
|
+
--strip-object-keys strip quotes from object keys if possible (JSON5)
|
|
153
148
|
--enforce-double-quotes surrounds all strings with double quotes
|
|
154
|
-
--enforce-single-quotes surrounds all strings with single quotes
|
|
155
|
-
|
|
156
|
-
--trim-trailing-commas omit trailing commas from objects and arrays
|
|
157
|
-
(JSON5)
|
|
149
|
+
--enforce-single-quotes surrounds all strings with single quotes (JSON5)
|
|
150
|
+
--trim-trailing-commas omit trailing commas from objects and arrays (JSON5)
|
|
158
151
|
-v, --version output the version number
|
|
159
|
-
-h, --help
|
|
152
|
+
-h, --help display help for command
|
|
160
153
|
|
|
161
154
|
You can use BASH patterns for including and excluding files (only files).
|
|
162
155
|
Patterns are case-sensitive and have to use slashes as directory separators.
|
|
@@ -169,6 +162,9 @@ for JSON Schema validation are "draft-04", "draft-06", "draft-07",
|
|
|
169
162
|
with "json-schema-". JSON Type Definition can be selected by "rfc8927",
|
|
170
163
|
"json-type-definition" or "jtd". If not specified, it will be "draft-07".
|
|
171
164
|
|
|
165
|
+
If you specify schemas using the "-V" parameter, you will have to separate
|
|
166
|
+
files to test with "--".
|
|
167
|
+
|
|
172
168
|
### Configuration
|
|
173
169
|
|
|
174
170
|
In addition to the command line parameters, the options can be supplied from the following files:
|
|
@@ -274,7 +270,7 @@ The `mode` parameter (string) sets parsing options to match a common format of i
|
|
|
274
270
|
|
|
275
271
|
### Schema Validation
|
|
276
272
|
|
|
277
|
-
You can validate the input against a JSON Schema using the `lib/validator` module. The `
|
|
273
|
+
You can validate the input against a JSON Schema using the `lib/validator` module. The `compile` method accepts either an earlier parsed JSON Schema or a string with it:
|
|
278
274
|
|
|
279
275
|
```js
|
|
280
276
|
const { compile } = require('@prantlf/jsonlint/lib/validator')
|
|
@@ -283,12 +279,18 @@ const validate = compile('string with JSON Schema')
|
|
|
283
279
|
const parsed = validate('string with JSON data')
|
|
284
280
|
```
|
|
285
281
|
|
|
286
|
-
If a string is passed to the `
|
|
282
|
+
If a string is passed to the `compile` method, the same options as for parsing JSON data can be passed as the second parameter. Compiling JSON Schema supports the same options as parsing JSON data too (except for `reviver`). They can be passed as the second (object) parameter. The optional second `environment` parameter (the default value is `draft-07`) ) can be passed either as a string or as an additional property in the options object too:
|
|
287
283
|
|
|
288
284
|
```js
|
|
289
285
|
const validate = compile('string with JSON Schema', { environment: 'draft-2020-12' })
|
|
290
286
|
```
|
|
291
287
|
|
|
288
|
+
If you use external definitions in multiple schemas, you have to pass an array of all schemas to `compile`. The `$id` properties have to be set in each sub-schema according to the `$ref` references in the main schema. The main schema is usually sent as the first one to be compiled immediately, so that the errors in any sub-schema would be reported right away:
|
|
289
|
+
|
|
290
|
+
```js
|
|
291
|
+
const validate = compile(['string with main schema', 'string with a sub-schema'])
|
|
292
|
+
```
|
|
293
|
+
|
|
292
294
|
### Pretty-Printing
|
|
293
295
|
|
|
294
296
|
You can parse a JSON string to an array of tokens and print it back to a string with some changes applied. It can be unification of whitespace, reformatting or stripping comments, for example. (Raw token values must be enabled when tokenizing the JSON input.)
|
|
@@ -372,11 +374,11 @@ If you want to retain comments or whitespace for pretty-printing, for example, s
|
|
|
372
374
|
|
|
373
375
|
### Performance
|
|
374
376
|
|
|
375
|
-
This is a part of an output from the [parser benchmark], when parsing a 4.
|
|
377
|
+
This is a part of an output from the [parser benchmark], when parsing a 4.68 KB formatted string ([package.json](./package.json)) with Node.js 18.14.2:
|
|
376
378
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
379
|
+
the standard jsonlint parser x 78,998 ops/sec ±0.48% (95 runs sampled)
|
|
380
|
+
the extended jsonlint parser x 7,923 ops/sec ±0.51% (93 runs sampled)
|
|
381
|
+
the tokenising jsonlint parser x 6,281 ops/sec ±0.71% (91 runs sampled)
|
|
380
382
|
|
|
381
383
|
A custom JSON parser is [a lot slower] than the built-in one. However, it is more important to have a [clear error reporting] than the highest speed in scenarios like parsing configuration files. (For better error-reporting, the speed can be preserved by using the native parser initially and re-parsing with another parser only in case of failure.) Features like comments or JSON5 are also helpful in configuration files. Tokens preserve the complete input and can be used for pretty-printing without losing the comments.
|
|
382
384
|
|
|
@@ -429,6 +431,7 @@ Licensed under the [MIT License].
|
|
|
429
431
|
[JSON]: https://tools.ietf.org/html/rfc8259
|
|
430
432
|
[JSON5]: https://spec.json5.org
|
|
431
433
|
[JSON Schema]: https://json-schema.org
|
|
434
|
+
[JSON Type Definition]: https://jsontypedef.com/
|
|
432
435
|
[UMD]: https://github.com/umdjs/umd
|
|
433
436
|
[`Grunt`]: https://gruntjs.com/
|
|
434
437
|
[`Gulp`]: http://gulpjs.com/
|
package/lib/cli.js
CHANGED
|
@@ -10,30 +10,30 @@ const { sortObject } = require('./sorter')
|
|
|
10
10
|
const { compile } = require('./validator')
|
|
11
11
|
const { description, version } = require('../package')
|
|
12
12
|
|
|
13
|
-
const collectValues =
|
|
13
|
+
const collectValues = (input, result) => result.concat(input.split(','))
|
|
14
14
|
|
|
15
15
|
const commander = require('commander')
|
|
16
16
|
.name('jsonlint')
|
|
17
17
|
.usage('[options] [<file, directory, pattern> ...]')
|
|
18
18
|
.description(description)
|
|
19
|
-
.option('-f, --config
|
|
19
|
+
.option('-f, --config <file>', 'read options from a custom configuration file')
|
|
20
20
|
.option('-F, --no-config', 'disable searching for configuration files')
|
|
21
21
|
.option('-s, --sort-keys', 'sort object keys (not when prettifying)')
|
|
22
|
-
.option('-E, --extensions
|
|
22
|
+
.option('-E, --extensions <ext...>', 'file extensions to process for directory walk', collectValues, ['json', 'JSON'])
|
|
23
23
|
.option('-i, --in-place', 'overwrite the input files')
|
|
24
24
|
.option('-j, --diff', 'print difference instead of writing the output')
|
|
25
25
|
.option('-k, --check', 'check that the input is equal to the output')
|
|
26
|
-
.option('-t, --indent
|
|
26
|
+
.option('-t, --indent <num|char>', 'number of spaces or specific characters to use for indentation', 2)
|
|
27
27
|
.option('-c, --compact', 'compact error display')
|
|
28
|
-
.option('-M, --mode
|
|
28
|
+
.option('-M, --mode <mode>', 'set other parsing flags according to a format type', 'json')
|
|
29
29
|
.option('-B, --bom', 'ignore the leading UTF-8 byte-order mark')
|
|
30
30
|
.option('-C, --comments', 'recognize and ignore JavaScript-style comments')
|
|
31
31
|
.option('-S, --single-quoted-strings', 'support single quotes as string delimiters')
|
|
32
32
|
.option('-T, --trailing-commas', 'ignore trailing commas in objects and arrays')
|
|
33
33
|
.option('-D, --no-duplicate-keys', 'report duplicate object keys as an error')
|
|
34
|
-
.option('-V, --validate
|
|
35
|
-
.option('-e, --environment
|
|
36
|
-
.option('-x, --context
|
|
34
|
+
.option('-V, --validate <file...>', 'JSON Schema file(s) to use for validation', collectValues, [])
|
|
35
|
+
.option('-e, --environment <env>', 'which specification of JSON Schema the validation file uses')
|
|
36
|
+
.option('-x, --context <num>', 'line count used as the diff context', 3)
|
|
37
37
|
.option('-l, --log-files', 'print only the parsed file names to stdout')
|
|
38
38
|
.option('-q, --quiet', 'do not print the parsed json to stdout')
|
|
39
39
|
.option('-n, --continue', 'continue with other files if an error occurs')
|
|
@@ -59,6 +59,9 @@ const commander = require('commander')
|
|
|
59
59
|
console.log('"draft-2019-09" or "draft-2020-12". The environment may be prefixed')
|
|
60
60
|
console.log('with "json-schema-". JSON Type Definition can be selected by "rfc8927",')
|
|
61
61
|
console.log('"json-type-definition" or "jtd". If not specified, it will be "draft-07".')
|
|
62
|
+
console.log()
|
|
63
|
+
console.log('If you specify schemas using the "-V" parameter, you will have to separate')
|
|
64
|
+
console.log('files to test with "--".')
|
|
62
65
|
})
|
|
63
66
|
.parse(process.argv)
|
|
64
67
|
|
|
@@ -144,16 +147,19 @@ function processContents (source, file) {
|
|
|
144
147
|
allowSingleQuotedStrings: options.singleQuotedStrings,
|
|
145
148
|
allowDuplicateObjectKeys: options.duplicateKeys
|
|
146
149
|
}
|
|
147
|
-
if (options.validate) {
|
|
148
|
-
|
|
150
|
+
if (options.validate.length) {
|
|
151
|
+
const schemas = options.validate.map((file, index) => {
|
|
152
|
+
try {
|
|
153
|
+
return readFileSync(file, 'utf8')
|
|
154
|
+
} catch (error) {
|
|
155
|
+
throw new Error(`Loading the JSON Schema #${index + 1} failed: "${file}".\n${error.message}`)
|
|
156
|
+
}
|
|
157
|
+
})
|
|
158
|
+
parserOptions.environment = options.environment
|
|
149
159
|
try {
|
|
150
|
-
|
|
151
|
-
parserOptions.environment = options.environment
|
|
152
|
-
validate = compile(schema, parserOptions)
|
|
160
|
+
validate = compile(schemas, parserOptions)
|
|
153
161
|
} catch (error) {
|
|
154
|
-
|
|
155
|
-
options.validate + '".\n' + error.message
|
|
156
|
-
throw new Error(message)
|
|
162
|
+
throw new Error(`Loading the JSON Schema failed:\n${error.message}`)
|
|
157
163
|
}
|
|
158
164
|
parsed = validate(source, parserOptions)
|
|
159
165
|
} else {
|
package/lib/index.d.ts
CHANGED
|
@@ -458,7 +458,8 @@ declare module '@prantlf/jsonlint/lib/validator' {
|
|
|
458
458
|
* with multiple options
|
|
459
459
|
* @returns the validator function
|
|
460
460
|
*/
|
|
461
|
-
function compile (schema: string
|
|
461
|
+
function compile (schema: string | string[] | Record<string, unknown> | Record<string, unknown>[],
|
|
462
|
+
environmentOrOptions?: Environment | CompileOptions): Validator
|
|
462
463
|
}
|
|
463
464
|
|
|
464
465
|
declare module '@prantlf/jsonlint/lib/printer' {
|