@prantlf/jsonlint 14.1.0 → 15.0.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/README.md CHANGED
@@ -120,6 +120,8 @@ Usage: `jsonlint [options] [--] [<file, directory, pattern> ...]`
120
120
 
121
121
  -f, --config <file> read options from a custom configuration file
122
122
  -F, --no-config disable searching for configuration files
123
+ --ignore-proto-key ignore occurrences of "__proto__" object key
124
+ --ignore-prototype-keys ignore all keys from "Object.prototype"
123
125
  -s, --sort-keys sort object keys (not when prettifying)
124
126
  --sort-keys-ignore-case sort object keys ignoring the letter case
125
127
  --sort-keys-locale <id> locale identifier to sort object keys with
@@ -199,6 +201,8 @@ The configuration is an object with the following properties, described above, w
199
201
  | Parameter | Alias |
200
202
  | --------- | ----- |
201
203
  | patterns | |
204
+ | ignore-proto-key | ignoreProtoKey |
205
+ | ignore-prototype-keys | ignorePrototypeKeys |
202
206
  | sort-keys | sortKeys |
203
207
  | sort-keys-ignore-case | sortKeysIgnoreCase |
204
208
  | sort-keys-locale | sortKeysLocale |
@@ -274,6 +278,8 @@ The `parse` method offers more detailed [error information](#error-handling), th
274
278
  | `ignoreTrailingCommas` | ignores trailing commas in objects and arrays (boolean) |
275
279
  | `allowSingleQuotedStrings` | accepts strings delimited by single-quotes too (boolean) |
276
280
  | `allowDuplicateObjectKeys` | allows reporting duplicate object keys as an error (boolean) |
281
+ | `ignoreProtoKey` | ignore occurrences of the `__proto__` object key (boolean) |
282
+ | `ignorePrototypeKeys` | ignore all keys from `Object.prototype` (boolean) |
277
283
  | `mode` | sets multiple options according to the type of input data (string) |
278
284
  | `reviver` | converts object and array values (function) |
279
285
 
package/lib/cli.js CHANGED
@@ -17,6 +17,8 @@ Usage: jsonlint [options] [--] [<file, directory, pattern> ...]
17
17
  Options:
18
18
  -f, --config <file> read options from a custom configuration file
19
19
  -F, --no-config disable searching for configuration files
20
+ --ignore-proto-key ignore occurrences of "__proto__" object key
21
+ --ignore-prototype-keys ignore all keys from "Object.prototype"
20
22
  -s, --sort-keys sort object keys (not when prettifying)
21
23
  --sort-keys-ignore-case sort object keys ignoring the letter case
22
24
  --sort-keys-locale <id> locale identifier to sort object keys with
@@ -89,6 +91,12 @@ for (let i = 2, l = argv.length; i < l; ++i) {
89
91
  case 'F':
90
92
  params.config = false
91
93
  return
94
+ case 'ignore-proto-key':
95
+ params.ignoreProtoKey = flag
96
+ return
97
+ case 'ignore-prototype-keys':
98
+ params.ignorePrototypeKeys = flag
99
+ return
92
100
  case 's': case 'sort-keys':
93
101
  params.sortKeys = flag
94
102
  return
@@ -238,6 +246,8 @@ for (let i = 2, l = argv.length; i < l; ++i) {
238
246
  }
239
247
 
240
248
  const paramNames = {
249
+ 'ignore-proto-key': 'ignoreProtoKey',
250
+ 'ignore-prototype-keys': 'ignorePrototypeKeys',
241
251
  'trailing-commas': 'trailingCommas',
242
252
  'single-quoted-strings': 'singleQuotedStrings',
243
253
  'duplicate-keys': 'duplicateKeys',
@@ -323,7 +333,9 @@ function processContents (source, file) {
323
333
  ignoreComments: params.comments,
324
334
  ignoreTrailingCommas: params.trailingCommas || params.trimTrailingCommas,
325
335
  allowSingleQuotedStrings: params.singleQuotedStrings,
326
- allowDuplicateObjectKeys: params.duplicateKeys
336
+ allowDuplicateObjectKeys: params.duplicateKeys,
337
+ ignoreProtoKey: params.ignoreProtoKey,
338
+ ignorePrototypeKeys: params.ignorePrototypeKeys
327
339
  }
328
340
  if (params.validate.length) {
329
341
  const schemas = params.validate.map((file, index) => {
package/lib/jsonlint.js CHANGED
@@ -105,6 +105,8 @@ const unescapeMap = {
105
105
 
106
106
  const ownsProperty = Object.prototype.hasOwnProperty
107
107
 
108
+ const emptyObject = {}
109
+
108
110
  function parseInternal (input, options) {
109
111
  if (typeof input !== 'string' || !(input instanceof String)) {
110
112
  input = String(input)
@@ -114,6 +116,8 @@ function parseInternal (input, options) {
114
116
  const ignoreBOM = options.ignoreBOM
115
117
  const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5
116
118
  const ignoreTrailingCommas = options.ignoreTrailingCommas || json5
119
+ const ignoreProtoKey = options.ignoreProtoKey
120
+ const ignorePrototypeKeys = options.ignorePrototypeKeys
117
121
  const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5
118
122
  const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys
119
123
  const reviver = options.reviver
@@ -381,8 +385,7 @@ function parseInternal (input, options) {
381
385
  }
382
386
 
383
387
  function parseObject () {
384
- const result = {}
385
- const emptyObject = {}
388
+ let result = {}
386
389
  let isNotEmpty = false
387
390
 
388
391
  while (position < inputLength) {
@@ -414,7 +417,8 @@ function parseInternal (input, options) {
414
417
  }
415
418
  }
416
419
 
417
- if (key in emptyObject || emptyObject[key] != null) {
420
+ if ((ignorePrototypeKeys && (key in emptyObject || emptyObject[key] != null)) ||
421
+ (ignoreProtoKey && key === '__proto__')) {
418
422
  // silently ignore it
419
423
  } else {
420
424
  if (reviver) {
@@ -422,7 +426,11 @@ function parseInternal (input, options) {
422
426
  }
423
427
  if (value !== undefined) {
424
428
  isNotEmpty = true
425
- result[key] = value
429
+ if (key === '__proto__') {
430
+ result = Object.assign(JSON.parse(`{"__proto__":${JSON.stringify(value)}}`), result)
431
+ } else {
432
+ result[key] = value
433
+ }
426
434
  }
427
435
  }
428
436
 
@@ -954,7 +962,8 @@ const oldNode = typeof process !== 'undefined' && process.version.startsWith('v4
954
962
  function needsCustomParser (options) {
955
963
  return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||
956
964
  options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||
957
- options.mode === 'cjson' || options.mode === 'json5' || isSafari || oldNode
965
+ options.ignoreProtoKey || options.ignorePrototypeKeys || options.mode === 'cjson' ||
966
+ options.mode === 'json5' || isSafari || oldNode
958
967
  }
959
968
 
960
969
  function getReviver (options) {
package/lib/validator.js CHANGED
@@ -167,7 +167,9 @@
167
167
  ignoreComments: options.ignoreComments,
168
168
  ignoreTrailingCommas: options.ignoreTrailingCommas,
169
169
  allowSingleQuotedStrings: options.allowSingleQuotedStrings,
170
- allowDuplicateObjectKeys: options.allowDuplicateObjectKeys
170
+ allowDuplicateObjectKeys: options.allowDuplicateObjectKeys,
171
+ ignoreProtoKey: options.ignoreProtoKey,
172
+ ignorePrototypeKeys: options.ignorePrototypeKeys
171
173
  }
172
174
  const validate = compileSchema(ajv, schema, parseOptions)
173
175
  return function (data, input, options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prantlf/jsonlint",
3
- "version": "14.1.0",
3
+ "version": "15.0.0",
4
4
  "description": "JSON/CJSON/JSON5 parser, syntax and schema validator and pretty-printer.",
5
5
  "author": "Ferdinand Prantl <prantlf@gmail.com> (http://prantl.tk)",
6
6
  "contributors": [
package/web/jsonlint.html CHANGED
@@ -119,6 +119,14 @@
119
119
  <input type="checkbox" checked id="duplicate-object-keys">
120
120
  <label for="duplicate-object-keys">Allow duplicate object keys</label>
121
121
  </div>
122
+ <div>
123
+ <input type="checkbox" checked id="ignore-proto-key">
124
+ <label for="ignore-proto-key">Ignore __proto__ key</label>
125
+ </div>
126
+ <div>
127
+ <input type="checkbox" checked id="ignore-prototype-keys">
128
+ <label for="ignore-prototype-keys">Ignore Object.prototype keys</label>
129
+ </div>
122
130
  </div>
123
131
  <div>
124
132
  <span>Formatting:</span>
@@ -203,7 +211,7 @@
203
211
  </main>
204
212
  <hr>
205
213
  <footer>
206
- <small>Copyright &copy; 2012-2023 Zachary Carter, Ferdinand Prantl. See the <a href="https://github.com/prantlf/jsonlint#json-lint">project pages</a> to learn about command-line validation and programmatic usage.</small>
214
+ <small>Copyright &copy; 2012-2024 Zachary Carter, Ferdinand Prantl. See the <a href="https://github.com/prantlf/jsonlint#json-lint">project pages</a> to learn about command-line validation and programmatic usage.</small>
207
215
  <!-- See http://tholman.com/github-corners/ -->
208
216
  <a href="http://github.com/prantlf/jsonlint" class="github-corner" title="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
209
217
  </footer>
@@ -367,6 +375,8 @@
367
375
  allowSingleQuotedStrings: document.getElementById('single-quoted-strings').checked ||
368
376
  mode === 'json5',
369
377
  allowDuplicateObjectKeys: document.getElementById('duplicate-object-keys').checked,
378
+ ignoreProtoKey: document.getElementById('ignore-proto-key').checked,
379
+ ignorePrototypeKeys: document.getElementById('ignore-prototype-keys').checked
370
380
  }
371
381
  }
372
382
  }
@@ -1,12 +1,12 @@
1
- (function(l,E){typeof exports=="object"&&typeof module<"u"?E(exports):typeof define=="function"&&define.amd?define("jsonlint",["exports"],E):(l=l||self,E(l.jsonlint={}))})(this,function(l){"use strict";const E={isWhiteSpace:function(e){return e===" "||e==="\xA0"||e==="\uFEFF"||e>=" "&&e<="\r"||e==="\u1680"||e>="\u2000"&&e<="\u200A"||e==="\u2028"||e==="\u2029"||e==="\u202F"||e==="\u205F"||e==="\u3000"},isWhiteSpaceJSON:function(e){return e===" "||e===" "||e===`
1
+ (function(l,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define("jsonlint",["exports"],f):(l=l||self,f(l.jsonlint={}))})(this,function(l){"use strict";const f={isWhiteSpace:function(e){return e===" "||e==="\xA0"||e==="\uFEFF"||e>=" "&&e<="\r"||e==="\u1680"||e>="\u2000"&&e<="\u200A"||e==="\u2028"||e==="\u2029"||e==="\u202F"||e==="\u205F"||e==="\u3000"},isWhiteSpaceJSON:function(e){return e===" "||e===" "||e===`
2
2
  `||e==="\r"},isLineTerminator:function(e){return e===`
3
3
  `||e==="\r"||e==="\u2028"||e==="\u2029"},isLineTerminatorJSON:function(e){return e===`
4
- `||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&E.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&E.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function b(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function N(u){return u>="0"&&u<="7"}function k(u){return u>="0"&&u<="9"}function H(u){return u.charCodeAt(0)===65279}const J={"'":"'",'"':'"',"\\":"\\",b:"\b",f:"\f",n:`
5
- `,r:"\r",t:" ",v:"\v","/":"/"},R=Object.prototype.hasOwnProperty;function L(u,e){(typeof u!="string"||!(u instanceof String))&&(u=String(u));const r=e.mode==="json5",C=e.ignoreBOM,D=e.ignoreComments||e.mode==="cjson"||r,m=e.ignoreTrailingCommas||r,d=e.allowSingleQuotedStrings||r,h=e.allowDuplicateObjectKeys,g=e.reviver,z=e.tokenize,fu=e.rawTokens,Eu=e.tokenLocations,U=e.tokenPaths,w=r?E.isLineTerminator:E.isLineTerminatorJSON,lu=r?E.isWhiteSpace:E.isWhiteSpaceJSON,f=u.length;let p=0,I=0,A=0;const K=[];let a,o,y;if(z){let t=null,n,F;a=function(){if(t!==null)throw Error("internal error, token overlap");n=p+1,F=A-I+1,t=A},o=function(i,s){if(t!==A){const c={type:i};fu&&(c.raw=u.substr(t,A-t)),s!==void 0&&(c.value=s),Eu&&(c.location={start:{column:F,line:n,offset:t}}),U&&(c.path=y.slice()),K.push(c)}return t=null,s},U&&(y=[])}function au(){let t;return A<f?t=`Unexpected token ${JSON.stringify(u[A])}`:t="Unexpected end of input",t}function du(t){const n=A-I+1;++p;const F=P(t,u,A,p,n),i=SyntaxError(F.message);return i.reason=t,i.excerpt=F.excerpt,i.pointer=F.pointer,i.location={start:{column:n,line:p,offset:A}},i}function B(t){throw t||(t=au()),du(t)}function $(t){t==="\r"&&u[A]===`
6
- `&&++A,I=A,++p}function j(){if(A<f){a?.();const t=u[A++];if(t==='"'||t==="'"&&d){const n=V(t);return o?.("literal",n),n}if(t==="{")return o?.("symbol","{"),x();if(t==="[")return o?.("symbol","["),_();if(t==="-"||t==="."||k(t)||r&&(t==="+"||t==="I"||t==="N")){const n=Q();return o?.("literal",n),n}if(t==="n")return O("null"),o?.("literal",null),null;if(t==="t")return O("true"),o?.("literal",!0),!0;if(t==="f")return O("false"),o?.("literal",!1),!1;--A,o?.();return}}function mu(){let t;if(A<f){a?.();const n=u[A++];if(n==='"'||n==="'"&&d){const F=V(n);return o?.("literal",F),F}if(n==="{")return o?.("symbol","{"),x();if(n==="[")return o?.("symbol","["),_();if(n==="."||k(n)){const F=Q(!0);return o?.("literal",F),F}if(r&&E.isIdentifierStart(n)||n==="\\"&&u[A]==="u"){const F=A-1;if(t=Su(),t===void 0){A=F,o?.();return}return o?.("literal",t),t}--A,o?.();return}}function hu(){H(u)&&(a?.(),++A,o?.("bom"))}function S(){let t;function n(){t||(t=!0,--A,a(),++A)}function F(){t&&(t=!1,o("whitespace"))}for(;A<f;){const i=u[A++];if(w(i))a&&n(),$(i);else if(lu(i))a&&n();else if(i==="/"&&D&&(u[A]==="/"||u[A]==="*"))a&&(--A,F(),a(),++A),gu(u[A++]==="*"),o?.("comment");else{--A;break}}o&&F()}function gu(t){for(;A<f;){const n=u[A++];if(w(n)){if(!t){--A;return}$(n)}else if(n==="*"&&t&&u[A]==="/"){++A;return}}t&&B("Unclosed multiline comment")}function O(t){const n=A;for(let F=1,i=t.length;F<i;++F)(A>=f||t[F]!==u[A])&&(A=n-1,B()),++A}function x(){const t={},n={};let F=!1;for(;A<f;){S();const i=mu();h===!1&&R.call(t,i)&&B(`Duplicate key: "${i}"`),S(),a?.();let s=u[A++];if(o?.("symbol",s),s==="}"&&i===void 0)return!m&&F&&(--A,B("Trailing comma in object")),t;if(s===":"&&i!==void 0){S(),y?.push(i);let c=j();if(y?.pop(),c===void 0&&B(`No value found for key "${i}"`),typeof i!="string"&&(!r||typeof i!="number")&&B(`Wrong key type: "${i}"`),i in n||n[i]!=null||(g&&(c=g(i,c)),c!==void 0&&(F=!0,t[i]=c)),S(),a?.(),s=u[A++],o?.("symbol",s),s!==","){if(s==="}")return t;B()}}else--A,B()}B()}function _(){const t=[];for(;A<f;){S(),y?.push(t.length);let n=j();y?.pop(),S(),a?.();const F=u[A++];if(o?.("symbol",F),n!==void 0&&(g&&(n=g(String(t.length),n)),n===void 0?(++t.length,n=!0):t.push(n)),F===",")n===void 0&&B("Elisions are not supported");else{if(F==="]")return!m&&n===void 0&&t.length&&(--A,B("Trailing comma in array")),t;--A,B()}}}function Q(){--A;let t=A,n=u[A++];const F=function(i){const s=u.substr(t,A-t);let c;if(i?c=Number.parseInt(s.replace(/^0o?/,""),8):c=Number(s),Number.isNaN(c))--A,B(`Bad numeric literal - "${u.substr(t,A-t+1)}"`);else if(!r&&!s.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i))--A,B(`Non-json numeric literal - "${u.substr(t,A-t+1)}"`);else return c};if((n==="-"||n==="+"&&r)&&(n=u[A++]),n==="N"&&r)return O("NaN"),Number.NaN;if(n==="I"&&r)return O("Infinity"),F();if(n>="1"&&n<="9"){for(;A<f&&k(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||N(n),s=n==="x"||n==="X";if(r&&(i||s)){for(;A<f&&(s?b:N)(u[A]);)++A;let c=1;return u[t]==="-"?(c=-1,++t):u[t]==="+"&&++t,c*F(i)}}if(n==="."){for(;A<f&&k(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<f&&k(u[A]);)++A;n=u[A++]}return--A,F()}function Su(){--A;let t="";for(;A<f;){let n=u[A++];if(n==="\\"&&u[A]==="u"&&b(u[A+1])&&b(u[A+2])&&b(u[A+3])&&b(u[A+4])&&(n=String.fromCharCode(Number.parseInt(u.substr(A+1,4),16)),A+=5),t.length)if(E.isIdentifierPart(n))t+=n;else return--A,t;else if(E.isIdentifierStart(n))t+=n;else return}B()}function V(t){let n="";for(;A<f;){let F=u[A++];if(F===t)return n;if(F==="\\")if(A>=f&&B(),F=u[A++],J[F]&&(r||F!=="v"&&(F!=="'"||d)))n+=J[F];else if(r&&w(F))$(F);else if(F==="u"||F==="x"&&r){const i=F==="u"?4:2;for(let s=0;s<i;++s)A>=f&&B(),b(u[A])||B("Bad escape sequence"),A++;n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),16))}else if(r&&N(F)){let i;F<"4"&&N(u[A])&&N(u[A+1])?i=3:N(u[A])?i=2:i=1,A+=i-1,n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),8))}else r?n+=F:(--A,B());else w(F)?B():(!r&&F.charCodeAt(0)<32&&(--A,B("Unexpected control character")),n+=F)}B()}C&&hu(),S();let v=j();if(v!==void 0||A<f){if(S(),A>=f)return g&&(v=g("",v)),z?K:v;B()}else B(A?"No data, only a whitespace":"No data, empty input")}function T(u,e){return typeof e=="function"?e={reviver:e}:e||(e={}),L(u,e)}function Z(u,e){e||(e={});const r=e.tokenize;e.tokenize=!0;const C=L(u,e);return e.tokenize=r,C}function q(u){return u.toString().replace(/~/g,"~0").replace(/\//g,"~1")}function G(u){return u.length===0?"":`/${u.map(q).join("/")}`}function X(u){return u.replace(/~1/g,"/").replace(/~0/g,"~")}function Y(u){if(u==="")return[];if(u[0]!=="/")throw new Error('Missing initial "/" in the reference');return u.substr(1).split("/").map(X)}function M(u,e){const r=u.substr(0,e).split(/\r?\n/),C=r.length,D=r[C-1].length+1;return{line:C,column:D}}function uu(u,e,r){if(e>1){const C=/\r?\n/g;let D;for(;D=C.exec(u);)if(--e===1)return D.index+r}return r-1}function eu(u,e){const r=Math.max(0,e-20),C=u.substr(r,e-r);return(e>20?"...":"")+C.replace(/\r?\n/g,"")}function Au(u,e){let r=Math.max(0,e-20);r+=e-r;const C=u.length-r;return u.substr(r,Math.min(20,C)).replace(/\r?\n/g,"")+(C>20?"...":"")}function tu(u,e){const r=eu(u,e),C=Au(u,e),D=`${new Array(r.length+1).join("-")}^`;return{excerpt:r+C,pointer:D}}function nu(u){let e=u.message.replace("JSON.parse: ","").replace("JSON Parse error: ","");const r=e.charAt(0);return r>="a"&&(e=r.toUpperCase()+e.substr(1)),e}function ru(u,e){const r=/ in JSON at position (\d+)$/.exec(e);if(r){const C=+r[1],D=M(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index)}}}function Fu(u,e){const r=/ end of JSON input$/.exec(e);if(r){const C=u.length,D=M(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index+4)}}}function iu(u,e){const r=/ at line (\d+) column (\d+) of the JSON data$/.exec(e);if(r){const C=+r[1],D=+r[2];return{offset:uu(u,C,D),line:C,column:D,reason:e.substr(0,r.index)}}}function P(u,e,r,C,D){const m=tu(e,r),d=m.excerpt;let h,g;return typeof C=="number"?(g=m.pointer,h=`Parse error on line ${C}, column ${D}:
7
- ${d}
4
+ `||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&f.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&f.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function S(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function b(u){return u>="0"&&u<="7"}function p(u){return u>="0"&&u<="9"}function Z(u){return u.charCodeAt(0)===65279}const _={"'":"'",'"':'"',"\\":"\\",b:"\b",f:"\f",n:`
5
+ `,r:"\r",t:" ",v:"\v","/":"/"},q=Object.prototype.hasOwnProperty,L={};function M(u,e){(typeof u!="string"||!(u instanceof String))&&(u=String(u));const r=e.mode==="json5",C=e.ignoreBOM,D=e.ignoreComments||e.mode==="cjson"||r,d=e.ignoreTrailingCommas||r,g=e.ignoreProtoKey,m=e.ignorePrototypeKeys,y=e.allowSingleQuotedStrings||r,lu=e.allowDuplicateObjectKeys,N=e.reviver,z=e.tokenize,au=e.rawTokens,du=e.tokenLocations,U=e.tokenPaths,P=r?f.isLineTerminator:f.isLineTerminatorJSON,mu=r?f.isWhiteSpace:f.isWhiteSpaceJSON,c=u.length;let O=0,$=0,A=0;const x=[];let a,o,k;if(z){let t=null,n,F;a=function(){if(t!==null)throw Error("internal error, token overlap");n=O+1,F=A-$+1,t=A},o=function(i,s){if(t!==A){const E={type:i};au&&(E.raw=u.substr(t,A-t)),s!==void 0&&(E.value=s),du&&(E.location={start:{column:F,line:n,offset:t}}),U&&(E.path=k.slice()),x.push(E)}return t=null,s},U&&(k=[])}function gu(){let t;return A<c?t=`Unexpected token ${JSON.stringify(u[A])}`:t="Unexpected end of input",t}function hu(t){const n=A-$+1;++O;const F=I(t,u,A,O,n),i=SyntaxError(F.message);return i.reason=t,i.excerpt=F.excerpt,i.pointer=F.pointer,i.location={start:{column:n,line:O,offset:A}},i}function B(t){throw t||(t=gu()),hu(t)}function j(t){t==="\r"&&u[A]===`
6
+ `&&++A,$=A,++O}function J(){if(A<c){a?.();const t=u[A++];if(t==='"'||t==="'"&&y){const n=R(t);return o?.("literal",n),n}if(t==="{")return o?.("symbol","{"),Q();if(t==="[")return o?.("symbol","["),V();if(t==="-"||t==="."||p(t)||r&&(t==="+"||t==="I"||t==="N")){const n=H();return o?.("literal",n),n}if(t==="n")return w("null"),o?.("literal",null),null;if(t==="t")return w("true"),o?.("literal",!0),!0;if(t==="f")return w("false"),o?.("literal",!1),!1;--A,o?.();return}}function yu(){let t;if(A<c){a?.();const n=u[A++];if(n==='"'||n==="'"&&y){const F=R(n);return o?.("literal",F),F}if(n==="{")return o?.("symbol","{"),Q();if(n==="[")return o?.("symbol","["),V();if(n==="."||p(n)){const F=H(!0);return o?.("literal",F),F}if(r&&f.isIdentifierStart(n)||n==="\\"&&u[A]==="u"){const F=A-1;if(t=Nu(),t===void 0){A=F,o?.();return}return o?.("literal",t),t}--A,o?.();return}}function Su(){Z(u)&&(a?.(),++A,o?.("bom"))}function h(){let t;function n(){t||(t=!0,--A,a(),++A)}function F(){t&&(t=!1,o("whitespace"))}for(;A<c;){const i=u[A++];if(P(i))a&&n(),j(i);else if(mu(i))a&&n();else if(i==="/"&&D&&(u[A]==="/"||u[A]==="*"))a&&(--A,F(),a(),++A),bu(u[A++]==="*"),o?.("comment");else{--A;break}}o&&F()}function bu(t){for(;A<c;){const n=u[A++];if(P(n)){if(!t){--A;return}j(n)}else if(n==="*"&&t&&u[A]==="/"){++A;return}}t&&B("Unclosed multiline comment")}function w(t){const n=A;for(let F=1,i=t.length;F<i;++F)(A>=c||t[F]!==u[A])&&(A=n-1,B()),++A}function Q(){let t={},n=!1;for(;A<c;){h();const F=yu();lu===!1&&q.call(t,F)&&B(`Duplicate key: "${F}"`),h(),a?.();let i=u[A++];if(o?.("symbol",i),i==="}"&&F===void 0)return!d&&n&&(--A,B("Trailing comma in object")),t;if(i===":"&&F!==void 0){h(),k?.push(F);let s=J();if(k?.pop(),s===void 0&&B(`No value found for key "${F}"`),typeof F!="string"&&(!r||typeof F!="number")&&B(`Wrong key type: "${F}"`),m&&(F in L||L[F]!=null)||g&&F==="__proto__"||(N&&(s=N(F,s)),s!==void 0&&(n=!0,F==="__proto__"?t=Object.assign(JSON.parse(`{"__proto__":${JSON.stringify(s)}}`),t):t[F]=s)),h(),a?.(),i=u[A++],o?.("symbol",i),i!==","){if(i==="}")return t;B()}}else--A,B()}B()}function V(){const t=[];for(;A<c;){h(),k?.push(t.length);let n=J();k?.pop(),h(),a?.();const F=u[A++];if(o?.("symbol",F),n!==void 0&&(N&&(n=N(String(t.length),n)),n===void 0?(++t.length,n=!0):t.push(n)),F===",")n===void 0&&B("Elisions are not supported");else{if(F==="]")return!d&&n===void 0&&t.length&&(--A,B("Trailing comma in array")),t;--A,B()}}}function H(){--A;let t=A,n=u[A++];const F=function(i){const s=u.substr(t,A-t);let E;if(i?E=Number.parseInt(s.replace(/^0o?/,""),8):E=Number(s),Number.isNaN(E))--A,B(`Bad numeric literal - "${u.substr(t,A-t+1)}"`);else if(!r&&!s.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i))--A,B(`Non-json numeric literal - "${u.substr(t,A-t+1)}"`);else return E};if((n==="-"||n==="+"&&r)&&(n=u[A++]),n==="N"&&r)return w("NaN"),Number.NaN;if(n==="I"&&r)return w("Infinity"),F();if(n>="1"&&n<="9"){for(;A<c&&p(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||b(n),s=n==="x"||n==="X";if(r&&(i||s)){for(;A<c&&(s?S:b)(u[A]);)++A;let E=1;return u[t]==="-"?(E=-1,++t):u[t]==="+"&&++t,E*F(i)}}if(n==="."){for(;A<c&&p(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<c&&p(u[A]);)++A;n=u[A++]}return--A,F()}function Nu(){--A;let t="";for(;A<c;){let n=u[A++];if(n==="\\"&&u[A]==="u"&&S(u[A+1])&&S(u[A+2])&&S(u[A+3])&&S(u[A+4])&&(n=String.fromCharCode(Number.parseInt(u.substr(A+1,4),16)),A+=5),t.length)if(f.isIdentifierPart(n))t+=n;else return--A,t;else if(f.isIdentifierStart(n))t+=n;else return}B()}function R(t){let n="";for(;A<c;){let F=u[A++];if(F===t)return n;if(F==="\\")if(A>=c&&B(),F=u[A++],_[F]&&(r||F!=="v"&&(F!=="'"||y)))n+=_[F];else if(r&&P(F))j(F);else if(F==="u"||F==="x"&&r){const i=F==="u"?4:2;for(let s=0;s<i;++s)A>=c&&B(),S(u[A])||B("Bad escape sequence"),A++;n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),16))}else if(r&&b(F)){let i;F<"4"&&b(u[A])&&b(u[A+1])?i=3:b(u[A])?i=2:i=1,A+=i-1,n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),8))}else r?n+=F:(--A,B());else P(F)?B():(!r&&F.charCodeAt(0)<32&&(--A,B("Unexpected control character")),n+=F)}B()}C&&Su(),h();let v=J();if(v!==void 0||A<c){if(h(),A>=c)return N&&(v=N("",v)),z?x:v;B()}else B(A?"No data, only a whitespace":"No data, empty input")}function T(u,e){return typeof e=="function"?e={reviver:e}:e||(e={}),M(u,e)}function G(u,e){e||(e={});const r=e.tokenize;e.tokenize=!0;const C=M(u,e);return e.tokenize=r,C}function X(u){return u.toString().replace(/~/g,"~0").replace(/\//g,"~1")}function Y(u){return u.length===0?"":`/${u.map(X).join("/")}`}function uu(u){return u.replace(/~1/g,"/").replace(/~0/g,"~")}function eu(u){if(u==="")return[];if(u[0]!=="/")throw new Error('Missing initial "/" in the reference');return u.substr(1).split("/").map(uu)}function W(u,e){const r=u.substr(0,e).split(/\r?\n/),C=r.length,D=r[C-1].length+1;return{line:C,column:D}}function Au(u,e,r){if(e>1){const C=/\r?\n/g;let D;for(;D=C.exec(u);)if(--e===1)return D.index+r}return r-1}function tu(u,e){const r=Math.max(0,e-20),C=u.substr(r,e-r);return(e>20?"...":"")+C.replace(/\r?\n/g,"")}function nu(u,e){let r=Math.max(0,e-20);r+=e-r;const C=u.length-r;return u.substr(r,Math.min(20,C)).replace(/\r?\n/g,"")+(C>20?"...":"")}function ru(u,e){const r=tu(u,e),C=nu(u,e),D=`${new Array(r.length+1).join("-")}^`;return{excerpt:r+C,pointer:D}}function Fu(u){let e=u.message.replace("JSON.parse: ","").replace("JSON Parse error: ","");const r=e.charAt(0);return r>="a"&&(e=r.toUpperCase()+e.substr(1)),e}function iu(u,e){const r=/ in JSON at position (\d+)$/.exec(e);if(r){const C=+r[1],D=W(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index)}}}function Cu(u,e){const r=/ end of JSON input$/.exec(e);if(r){const C=u.length,D=W(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index+4)}}}function Du(u,e){const r=/ at line (\d+) column (\d+) of the JSON data$/.exec(e);if(r){const C=+r[1],D=+r[2];return{offset:Au(u,C,D),line:C,column:D,reason:e.substr(0,r.index)}}}function I(u,e,r,C,D){const d=ru(e,r),g=d.excerpt;let m,y;return typeof C=="number"?(y=d.pointer,m=`Parse error on line ${C}, column ${D}:
8
7
  ${g}
9
- ${u}`):h=`Parse error in JSON input:
10
- ${d}
11
- ${u}`,{message:h,excerpt:d,pointer:g}}function Cu(u,e){let r=nu(e);const C=ru(u,r)||Fu(u,r)||iu(u,r);let D,m,d;C?(D=C.offset,m=C.line,d=C.column,r=C.reason):D=0,e.reason=r;const h=P(r,u,D,m,d);return e.message=h.message,e.excerpt=h.excerpt,h.pointer&&(e.pointer=h.pointer,e.location={start:{column:d,line:m,offset:D}}),e}function W(u,e){try{return JSON.parse(u,e)}catch(r){const C=Cu(u,r);if(r.location)throw C;return T(u,e)}}const Du=typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor),Bu=typeof process<"u"&&process.version.startsWith("v4.");function ou(u){return u.ignoreBOM||u.ignoreComments||u.ignoreTrailingCommas||u.allowSingleQuotedStrings||u.allowDuplicateObjectKeys===!1||u.mode==="cjson"||u.mode==="json5"||Du||Bu}function su(u){if(typeof u=="function")return u;if(u)return u.reviver}function cu(u,e){return e||(e={}),ou(e)?T(u,e):W(u,su(e))}l.parse=cu,l.tokenize=Z,l.pathToPointer=G,l.pointerToPath=Y,l.parseNative=W,l.parseCustom=T,l.getErrorTexts=P,Object.defineProperty(l,"__esModule",{value:!0})});
8
+ ${y}
9
+ ${u}`):m=`Parse error in JSON input:
10
+ ${g}
11
+ ${u}`,{message:m,excerpt:g,pointer:y}}function Bu(u,e){let r=Fu(e);const C=iu(u,r)||Cu(u,r)||Du(u,r);let D,d,g;C?(D=C.offset,d=C.line,g=C.column,r=C.reason):D=0,e.reason=r;const m=I(r,u,D,d,g);return e.message=m.message,e.excerpt=m.excerpt,m.pointer&&(e.pointer=m.pointer,e.location={start:{column:g,line:d,offset:D}}),e}function K(u,e){try{return JSON.parse(u,e)}catch(r){const C=Bu(u,r);if(r.location)throw C;return T(u,e)}}const ou=typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor),su=typeof process<"u"&&process.version.startsWith("v4.");function cu(u){return u.ignoreBOM||u.ignoreComments||u.ignoreTrailingCommas||u.allowSingleQuotedStrings||u.allowDuplicateObjectKeys===!1||u.ignoreProtoKey||u.ignorePrototypeKeys||u.mode==="cjson"||u.mode==="json5"||ou||su}function fu(u){if(typeof u=="function")return u;if(u)return u.reviver}function Eu(u,e){return e||(e={}),cu(e)?T(u,e):K(u,fu(e))}l.parse=Eu,l.tokenize=G,l.pathToPointer=Y,l.pointerToPath=eu,l.parseNative=K,l.parseCustom=T,l.getErrorTexts=I,Object.defineProperty(l,"__esModule",{value:!0})});
12
12
  //# sourceMappingURL=jsonlint.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../lib/jsonlint.js"],
4
- "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define('jsonlint', ['exports'], factory) :\n (global = global || self, factory(global.jsonlint = {}))\n}(this, function (exports) { 'use strict'\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/unicode.js\n\n// This is autogenerated with esprima tools, see:\n// https://github.com/ariya/esprima/blob/master/esprima.js\n\n// eslint-disable-next-line no-unused-vars\nconst Uni = {\n isWhiteSpace: function isWhiteSpace (x) {\n // section 7.2, table 2\n return x === '\\u0020' ||\n x === '\\u00A0' ||\n x === '\\uFEFF' || // <-- this is not a Unicode WS, only a JS one\n (x >= '\\u0009' && x <= '\\u000D') || // 9 A B C D\n\n // + whitespace characters from unicode, category Zs\n x === '\\u1680' ||\n (x >= '\\u2000' && x <= '\\u200A') || // 0 1 2 3 4 5 6 7 8 9 A\n x === '\\u2028' ||\n x === '\\u2029' ||\n x === '\\u202F' ||\n x === '\\u205F' ||\n x === '\\u3000'\n },\n isWhiteSpaceJSON: function isWhiteSpaceJSON (x) {\n return x === '\\u0020' ||\n x === '\\u0009' ||\n x === '\\u000A' ||\n x === '\\u000D'\n },\n isLineTerminator: function isLineTerminator (x) {\n // ok, here is the part when JSON is wrong\n // section 7.3, table 3\n return x === '\\u000A' ||\n x === '\\u000D' ||\n x === '\\u2028' ||\n x === '\\u2029'\n },\n isLineTerminatorJSON: function isLineTerminatorJSON (x) {\n return x === '\\u000A' ||\n x === '\\u000D'\n },\n isIdentifierStart: function isIdentifierStart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '\\u0080' && Uni.NonAsciiIdentifierStart.test(x))\n },\n isIdentifierPart: function isIdentifierPart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '0' && x <= '9') || // <-- addition to Start\n (x >= '\\u0080' && Uni.NonAsciiIdentifierPart.test(x))\n },\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:\n /* eslint-disable-next-line no-misleading-character-class */\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0\\u08A2-\\u08AC\\u08E4-\\u08FE\\u0900-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1D00-\\u1DE6\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA697\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7B\\uAA80-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE26\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n}\n/* globals Uni, getTexts */\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/parse.js\n\nfunction isHexDigit (x) {\n return (x >= '0' && x <= '9') ||\n (x >= 'A' && x <= 'F') ||\n (x >= 'a' && x <= 'f')\n}\n\nfunction isOctDigit (x) {\n return x >= '0' && x <= '7'\n}\n\nfunction isDecDigit (x) {\n return x >= '0' && x <= '9'\n}\n\nfunction isBOM (x) {\n // This catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n // conversion in `fs.readFileSync()` translates it to FEFF (UTF-16 BOM).\n return x.charCodeAt(0) === 0xFEFF\n}\n\nconst unescapeMap = {\n '\\'': '\\'',\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n '/': '/'\n}\n\nconst ownsProperty = Object.prototype.hasOwnProperty\n\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = `Unexpected token ${token}`\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken?.('literal', number)\n return number\n }if (char === 'n') {\n parseKeyword('null')\n endToken?.('literal', null)\n return null\n }if (char === 't') {\n parseKeyword('true')\n endToken?.('literal', true)\n return true\n }if (char === 'f') {\n parseKeyword('false')\n endToken?.('literal', false)\n return false\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken?.('literal', number)\n return number\n }if ((json5 && Uni.isIdentifierStart(char)) ||\n (char === '\\\\' && input[position] === 'u')) {\n const rollback = position - 1\n result = parseIdentifier()\n if (result === undefined) {\n position = rollback\n endToken?.()\n return undefined\n }\n endToken?.('literal', result)\n return result\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken?.()\n ++position\n endToken?.('bom')\n }\n }\n\n function skipWhiteSpace () {\n let insideWhiteSpace\n function startWhiteSpace () {\n if (!insideWhiteSpace) {\n insideWhiteSpace = true\n --position\n startToken()\n ++position\n }\n }\n function endWhiteSpace () {\n if (insideWhiteSpace) {\n insideWhiteSpace = false\n endToken('whitespace')\n }\n }\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n startToken && startWhiteSpace()\n newLine(char)\n } else if (isWhiteSpace(char)) {\n startToken && startWhiteSpace()\n } else if (char === '/' && ignoreComments &&\n (input[position] === '/' || input[position] === '*')) {\n if (startToken) {\n --position\n endWhiteSpace()\n startToken()\n ++position\n }\n skipComment(input[position++] === '*')\n endToken?.('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n const result = {}\n const emptyObject = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && ownsProperty.call(result, key)) {\n fail(`Duplicate key: \"${key}\"`)\n }\n skipWhiteSpace()\n startToken?.()\n let char = input[position++]\n endToken?.('symbol', char)\n if (char === '}' && key === undefined) {\n if (!ignoreTrailingCommas && isNotEmpty) {\n --position\n fail('Trailing comma in object')\n }\n return result\n }if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath?.push(key)\n let value = parseGeneric()\n tokenPath?.pop()\n\n if (value === undefined) fail(`No value found for key \"${key}\"`)\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail(`Wrong key type: \"${key}\"`)\n }\n }\n\n if (key in emptyObject || emptyObject[key] != null) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n result[key] = value\n }\n }\n\n skipWhiteSpace()\n startToken?.()\n char = input[position++]\n endToken?.('symbol', char)\n if (char === ',') {\n } else if (char === '}') {\n return result\n } else {\n fail()\n }\n } else {\n --position\n fail()\n }\n }\n\n fail()\n }\n\n function parseArray () {\n const result = []\n while (position < inputLength) {\n skipWhiteSpace()\n tokenPath?.push(result.length)\n let item = parseGeneric()\n tokenPath?.pop()\n skipWhiteSpace()\n startToken?.()\n const char = input[position++]\n endToken?.('symbol', char)\n if (item !== undefined) {\n if (reviver) {\n item = reviver(String(result.length), item)\n }\n if (item === undefined) {\n ++result.length\n item = true // hack for check below, not included into result\n } else {\n result.push(item)\n }\n }\n\n if (char === ',') {\n if (item === undefined) {\n fail('Elisions are not supported')\n }\n } else if (char === ']') {\n if (!ignoreTrailingCommas && item === undefined && result.length) {\n --position\n fail('Trailing comma in array')\n }\n return result\n } else {\n --position\n fail()\n }\n }\n }\n\n function parseNumber () {\n // rewind because we don't know first char\n --position\n\n let start = position\n let char = input[position++]\n const toNumber = function (isOctal) {\n const string = input.substr(start, position - start)\n let result\n\n if (isOctal) {\n result = Number.parseInt(string.replace(/^0o?/, ''), 8)\n } else {\n result = Number(string)\n }\n\n if (Number.isNaN(result)) {\n --position\n fail(`Bad numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else if (!json5 && !string.match(/^-?(0|[1-9][0-9]*)(\\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {\n // additional restrictions imposed by json\n --position\n fail(`Non-json numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else {\n return result\n }\n }\n\n // ex: -5982475.249875e+29384\n // ^ skipping this\n if (char === '-' || (char === '+' && json5)) {\n char = input[position++]\n }\n\n if (char === 'N' && json5) {\n parseKeyword('NaN')\n return Number.NaN\n }\n\n if (char === 'I' && json5) {\n parseKeyword('Infinity')\n // returning +inf or -inf\n return toNumber()\n }\n\n if (char >= '1' && char <= '9') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // special case for leading zero: 0.123456\n if (char === '0') {\n char = input[position++]\n\n // new syntax, \"0o777\" old syntax, \"0777\"\n const isOctal = char === 'o' || char === 'O' || isOctDigit(char)\n const isHex = char === 'x' || char === 'X'\n\n if (json5 && (isOctal || isHex)) {\n while (position < inputLength &&\n (isHex ? isHexDigit : isOctDigit)(input[position])) {\n ++position\n }\n\n let sign = 1\n if (input[start] === '-') {\n sign = -1\n ++start\n } else if (input[start] === '+') {\n ++start\n }\n\n return sign * toNumber(isOctal)\n }\n }\n\n if (char === '.') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n if (char === 'e' || char === 'E') {\n char = input[position++]\n if (char === '-' || char === '+') {\n ++position\n }\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // we have char in the buffer, so count for it\n --position\n return toNumber()\n }\n\n function parseIdentifier () {\n // rewind because we don't know first char\n --position\n\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === '\\\\' &&\n input[position] === 'u' &&\n isHexDigit(input[position + 1]) &&\n isHexDigit(input[position + 2]) &&\n isHexDigit(input[position + 3]) &&\n isHexDigit(input[position + 4])) {\n // UnicodeEscapeSequence\n char = String.fromCharCode(Number.parseInt(input.substr(position + 1, 4), 16))\n position += 5\n }\n\n if (result.length) {\n // identifier started\n if (Uni.isIdentifierPart(char)) {\n result += char\n } else {\n --position\n return result\n }\n } else {\n if (Uni.isIdentifierStart(char)) {\n result += char\n } else {\n return undefined\n }\n }\n }\n\n fail()\n }\n\n function parseString (endChar) {\n // 7.8.4 of ES262 spec\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === endChar) {\n return result\n }if (char === '\\\\') {\n if (position >= inputLength) {\n fail()\n }\n char = input[position++]\n if (unescapeMap[char] && (json5 || (char !== 'v' && (char !== \"'\" || allowSingleQuotedStrings)))) {\n result += unescapeMap[char]\n } else if (json5 && isLineTerminator(char)) {\n // line continuation\n newLine(char)\n } else if (char === 'u' || (char === 'x' && json5)) {\n // unicode/character escape sequence\n const count = char === 'u' ? 4 : 2\n // validation for \\uXXXX\n for (let i = 0; i < count; ++i) {\n if (position >= inputLength) {\n fail()\n }\n if (!isHexDigit(input[position])) {\n fail('Bad escape sequence')\n }\n position++\n }\n result += String.fromCharCode(Number.parseInt(input.substr(position - count, count), 16))\n } else if (json5 && isOctDigit(char)) {\n let digits\n if (char < '4' && isOctDigit(input[position]) && isOctDigit(input[position + 1])) {\n // three-digit octal\n digits = 3\n } else if (isOctDigit(input[position])) {\n // two-digit octal\n digits = 2\n } else {\n digits = 1\n }\n position += digits - 1\n result += String.fromCharCode(Number.parseInt(input.substr(position - digits, digits), 8))\n } else if (json5) {\n // \\X -> x\n result += char\n } else {\n --position\n fail()\n }\n } else if (isLineTerminator(char)) {\n fail()\n } else {\n if (!json5 && char.charCodeAt(0) < 32) {\n --position\n fail('Unexpected control character')\n }\n // SourceCharacter but not one of \" or \\ or LineTerminator\n result += char\n }\n }\n\n fail()\n }\n\n if (ignoreBOM) {\n skipBOM()\n }\n skipWhiteSpace()\n let returnValue = parseGeneric()\n if (returnValue !== undefined || position < inputLength) {\n skipWhiteSpace()\n if (position >= inputLength) {\n if (reviver) {\n returnValue = reviver('', returnValue)\n }\n return tokenize ? tokens : returnValue\n }\n fail()\n } else {\n if (position) {\n fail('No data, only a whitespace')\n } else {\n fail('No data, empty input')\n }\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseCustom (input, options) {\n if (typeof options === 'function') {\n options = {\n reviver: options\n }\n } else if (!options) {\n options = {}\n }\n return parseInternal(input, options)\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction tokenize (input, options) {\n if (!options) {\n options = {}\n }\n // As long as this is the single modification, this is easier than cloning.\n // (Once Node.js 6 is dropped, this can be replaced by object destructuring.)\n const oldTokenize = options.tokenize\n options.tokenize = true\n const tokens = parseInternal(input, options)\n options.tokenize = oldTokenize\n return tokens\n}\nfunction escapePointerToken (token) {\n return token\n .toString()\n .replace(/~/g, '~0')\n .replace(/\\//g, '~1')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pathToPointer (tokens) {\n if (tokens.length === 0) {\n return ''\n }\n return `/${tokens\n .map(escapePointerToken)\n .join('/')}`\n}\n\nfunction unescapePointerToken (token) {\n return token\n .replace(/~1/g, '/')\n .replace(/~0/g, '~')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pointerToPath (pointer) {\n if (pointer === '') {\n return []\n }\n if (pointer[0] !== '/') {\n throw new Error('Missing initial \"/\" in the reference')\n }\n return pointer\n .substr(1)\n .split('/')\n .map(unescapePointerToken)\n}\nfunction getLineAndColumn (input, offset) {\n const lines = input\n .substr(0, offset)\n .split(/\\r?\\n/)\n const line = lines.length\n const column = lines[line - 1].length + 1\n return {\n line,\n column\n }\n}\n\nfunction getOffset (input, line, column) {\n if (line > 1) {\n const breaks = /\\r?\\n/g\n let match\n while ((match = breaks.exec(input))) {\n if (--line === 1) {\n return match.index + column\n }\n }\n }\n return column - 1\n}\n\nfunction pastInput (input, offset) {\n const start = Math.max(0, offset - 20)\n const previous = input.substr(start, offset - start)\n return (offset > 20 ? '...' : '') + previous.replace(/\\r?\\n/g, '')\n}\n\nfunction upcomingInput (input, offset) {\n let start = Math.max(0, offset - 20)\n start += offset - start\n const rest = input.length - start\n const next = input.substr(start, Math.min(20, rest))\n return next.replace(/\\r?\\n/g, '') + (rest > 20 ? '...' : '')\n}\n\nfunction getPositionContext (input, offset) {\n const past = pastInput(input, offset)\n const upcoming = upcomingInput(input, offset)\n const pointer = `${new Array(past.length + 1).join('-')}^`\n return {\n excerpt: past + upcoming,\n pointer\n }\n}\n\nfunction getReason (error) {\n let message = error.message\n .replace('JSON.parse: ', '') // SpiderMonkey\n .replace('JSON Parse error: ', '') // SquirrelFish\n const firstCharacter = message.charAt(0)\n if (firstCharacter >= 'a') {\n message = firstCharacter.toUpperCase() + message.substr(1)\n }\n return message\n}\n\nfunction getLocationOnV8 (input, reason) {\n const match = / in JSON at position (\\d+)$/.exec(reason)\n if (match) {\n const offset = +match[1]\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction checkUnexpectedEndOnV8 (input, reason) {\n const match = / end of JSON input$/.exec(reason)\n if (match) {\n const offset = input.length\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index + 4)\n }\n }\n}\n\nfunction getLocationOnSpiderMonkey (input, reason) {\n const match = / at line (\\d+) column (\\d+) of the JSON data$/.exec(reason)\n if (match) {\n const line = +match[1]\n const column = +match[2]\n const offset = getOffset(input, line, column) // eslint-disable-line no-undef\n return {\n offset,\n line,\n column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction getTexts (reason, input, offset, line, column) {\n const position = getPositionContext(input, offset)\n const excerpt = position.excerpt\n let message\n let pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = `Parse error on line ${line}, column ${column}:\\n${excerpt}\\n${pointer}\\n${reason}`\n } else {\n message = `Parse error in JSON input:\\n${excerpt}\\n${reason}`\n }\n return {\n message,\n excerpt,\n pointer\n }\n}\n\nfunction improveNativeError (input, error) {\n let reason = getReason(error)\n const location = getLocationOnV8(input, reason) ||\n checkUnexpectedEndOnV8(input, reason) ||\n getLocationOnSpiderMonkey(input, reason)\n let offset\n let line\n let column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.mode === 'cjson' || options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n }if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
5
- "mappings": "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",
6
- "names": ["global", "factory", "exports", "Uni", "x", "isHexDigit", "isOctDigit", "isDecDigit", "isBOM", "unescapeMap", "ownsProperty", "parseInternal", "input", "options", "json5", "ignoreBOM", "ignoreComments", "ignoreTrailingCommas", "allowSingleQuotedStrings", "allowDuplicateObjectKeys", "reviver", "tokenize", "rawTokens", "tokenLocations", "tokenPaths", "isLineTerminator", "isWhiteSpace", "inputLength", "lineNumber", "lineStart", "position", "tokens", "startToken", "endToken", "tokenPath", "tokenOffset", "tokenLine", "tokenColumn", "type", "value", "token", "generateMessage", "message", "createError", "column", "texts", "getTexts", "error", "fail", "newLine", "char", "parseGeneric", "string", "parseString", "parseObject", "parseArray", "number", "parseNumber", "parseKeyword", "parseKey", "result", "rollback", "parseIdentifier", "skipBOM", "skipWhiteSpace", "insideWhiteSpace", "startWhiteSpace", "endWhiteSpace", "skipComment", "multiLine", "keyword", "startPosition", "i", "keywordLength", "emptyObject", "isNotEmpty", "key", "item", "start", "toNumber", "isOctal", "isHex", "sign", "endChar", "count", "digits", "returnValue", "parseCustom", "oldTokenize", "escapePointerToken", "pathToPointer", "unescapePointerToken", "pointerToPath", "pointer", "getLineAndColumn", "offset", "lines", "line", "getOffset", "breaks", "match", "pastInput", "previous", "upcomingInput", "rest", "getPositionContext", "past", "upcoming", "getReason", "firstCharacter", "getLocationOnV8", "reason", "location", "checkUnexpectedEndOnV8", "getLocationOnSpiderMonkey", "excerpt", "improveNativeError", "parseNative", "newError", "isSafari", "oldNode", "needsCustomParser", "getReviver", "parse"]
4
+ "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define('jsonlint', ['exports'], factory) :\n (global = global || self, factory(global.jsonlint = {}))\n}(this, function (exports) { 'use strict'\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/unicode.js\n\n// This is autogenerated with esprima tools, see:\n// https://github.com/ariya/esprima/blob/master/esprima.js\n\n// eslint-disable-next-line no-unused-vars\nconst Uni = {\n isWhiteSpace: function isWhiteSpace (x) {\n // section 7.2, table 2\n return x === '\\u0020' ||\n x === '\\u00A0' ||\n x === '\\uFEFF' || // <-- this is not a Unicode WS, only a JS one\n (x >= '\\u0009' && x <= '\\u000D') || // 9 A B C D\n\n // + whitespace characters from unicode, category Zs\n x === '\\u1680' ||\n (x >= '\\u2000' && x <= '\\u200A') || // 0 1 2 3 4 5 6 7 8 9 A\n x === '\\u2028' ||\n x === '\\u2029' ||\n x === '\\u202F' ||\n x === '\\u205F' ||\n x === '\\u3000'\n },\n isWhiteSpaceJSON: function isWhiteSpaceJSON (x) {\n return x === '\\u0020' ||\n x === '\\u0009' ||\n x === '\\u000A' ||\n x === '\\u000D'\n },\n isLineTerminator: function isLineTerminator (x) {\n // ok, here is the part when JSON is wrong\n // section 7.3, table 3\n return x === '\\u000A' ||\n x === '\\u000D' ||\n x === '\\u2028' ||\n x === '\\u2029'\n },\n isLineTerminatorJSON: function isLineTerminatorJSON (x) {\n return x === '\\u000A' ||\n x === '\\u000D'\n },\n isIdentifierStart: function isIdentifierStart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '\\u0080' && Uni.NonAsciiIdentifierStart.test(x))\n },\n isIdentifierPart: function isIdentifierPart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '0' && x <= '9') || // <-- addition to Start\n (x >= '\\u0080' && Uni.NonAsciiIdentifierPart.test(x))\n },\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:\n /* eslint-disable-next-line no-misleading-character-class */\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0\\u08A2-\\u08AC\\u08E4-\\u08FE\\u0900-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1D00-\\u1DE6\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA697\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7B\\uAA80-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE26\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n}\n/* globals Uni, getTexts */\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/parse.js\n\nfunction isHexDigit (x) {\n return (x >= '0' && x <= '9') ||\n (x >= 'A' && x <= 'F') ||\n (x >= 'a' && x <= 'f')\n}\n\nfunction isOctDigit (x) {\n return x >= '0' && x <= '7'\n}\n\nfunction isDecDigit (x) {\n return x >= '0' && x <= '9'\n}\n\nfunction isBOM (x) {\n // This catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n // conversion in `fs.readFileSync()` translates it to FEFF (UTF-16 BOM).\n return x.charCodeAt(0) === 0xFEFF\n}\n\nconst unescapeMap = {\n '\\'': '\\'',\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n '/': '/'\n}\n\nconst ownsProperty = Object.prototype.hasOwnProperty\n\nconst emptyObject = {}\n\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const ignoreProtoKey = options.ignoreProtoKey\n const ignorePrototypeKeys = options.ignorePrototypeKeys\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = `Unexpected token ${token}`\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken?.('literal', number)\n return number\n }if (char === 'n') {\n parseKeyword('null')\n endToken?.('literal', null)\n return null\n }if (char === 't') {\n parseKeyword('true')\n endToken?.('literal', true)\n return true\n }if (char === 'f') {\n parseKeyword('false')\n endToken?.('literal', false)\n return false\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken?.('literal', number)\n return number\n }if ((json5 && Uni.isIdentifierStart(char)) ||\n (char === '\\\\' && input[position] === 'u')) {\n const rollback = position - 1\n result = parseIdentifier()\n if (result === undefined) {\n position = rollback\n endToken?.()\n return undefined\n }\n endToken?.('literal', result)\n return result\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken?.()\n ++position\n endToken?.('bom')\n }\n }\n\n function skipWhiteSpace () {\n let insideWhiteSpace\n function startWhiteSpace () {\n if (!insideWhiteSpace) {\n insideWhiteSpace = true\n --position\n startToken()\n ++position\n }\n }\n function endWhiteSpace () {\n if (insideWhiteSpace) {\n insideWhiteSpace = false\n endToken('whitespace')\n }\n }\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n startToken && startWhiteSpace()\n newLine(char)\n } else if (isWhiteSpace(char)) {\n startToken && startWhiteSpace()\n } else if (char === '/' && ignoreComments &&\n (input[position] === '/' || input[position] === '*')) {\n if (startToken) {\n --position\n endWhiteSpace()\n startToken()\n ++position\n }\n skipComment(input[position++] === '*')\n endToken?.('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n let result = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && ownsProperty.call(result, key)) {\n fail(`Duplicate key: \"${key}\"`)\n }\n skipWhiteSpace()\n startToken?.()\n let char = input[position++]\n endToken?.('symbol', char)\n if (char === '}' && key === undefined) {\n if (!ignoreTrailingCommas && isNotEmpty) {\n --position\n fail('Trailing comma in object')\n }\n return result\n }if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath?.push(key)\n let value = parseGeneric()\n tokenPath?.pop()\n\n if (value === undefined) fail(`No value found for key \"${key}\"`)\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail(`Wrong key type: \"${key}\"`)\n }\n }\n\n if ((ignorePrototypeKeys && (key in emptyObject || emptyObject[key] != null)) ||\n (ignoreProtoKey && key === '__proto__')) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n if (key === '__proto__') {\n result = Object.assign(JSON.parse(`{\"__proto__\":${JSON.stringify(value)}}`), result)\n } else {\n result[key] = value\n }\n }\n }\n\n skipWhiteSpace()\n startToken?.()\n char = input[position++]\n endToken?.('symbol', char)\n if (char === ',') {\n } else if (char === '}') {\n return result\n } else {\n fail()\n }\n } else {\n --position\n fail()\n }\n }\n\n fail()\n }\n\n function parseArray () {\n const result = []\n while (position < inputLength) {\n skipWhiteSpace()\n tokenPath?.push(result.length)\n let item = parseGeneric()\n tokenPath?.pop()\n skipWhiteSpace()\n startToken?.()\n const char = input[position++]\n endToken?.('symbol', char)\n if (item !== undefined) {\n if (reviver) {\n item = reviver(String(result.length), item)\n }\n if (item === undefined) {\n ++result.length\n item = true // hack for check below, not included into result\n } else {\n result.push(item)\n }\n }\n\n if (char === ',') {\n if (item === undefined) {\n fail('Elisions are not supported')\n }\n } else if (char === ']') {\n if (!ignoreTrailingCommas && item === undefined && result.length) {\n --position\n fail('Trailing comma in array')\n }\n return result\n } else {\n --position\n fail()\n }\n }\n }\n\n function parseNumber () {\n // rewind because we don't know first char\n --position\n\n let start = position\n let char = input[position++]\n const toNumber = function (isOctal) {\n const string = input.substr(start, position - start)\n let result\n\n if (isOctal) {\n result = Number.parseInt(string.replace(/^0o?/, ''), 8)\n } else {\n result = Number(string)\n }\n\n if (Number.isNaN(result)) {\n --position\n fail(`Bad numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else if (!json5 && !string.match(/^-?(0|[1-9][0-9]*)(\\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {\n // additional restrictions imposed by json\n --position\n fail(`Non-json numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else {\n return result\n }\n }\n\n // ex: -5982475.249875e+29384\n // ^ skipping this\n if (char === '-' || (char === '+' && json5)) {\n char = input[position++]\n }\n\n if (char === 'N' && json5) {\n parseKeyword('NaN')\n return Number.NaN\n }\n\n if (char === 'I' && json5) {\n parseKeyword('Infinity')\n // returning +inf or -inf\n return toNumber()\n }\n\n if (char >= '1' && char <= '9') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // special case for leading zero: 0.123456\n if (char === '0') {\n char = input[position++]\n\n // new syntax, \"0o777\" old syntax, \"0777\"\n const isOctal = char === 'o' || char === 'O' || isOctDigit(char)\n const isHex = char === 'x' || char === 'X'\n\n if (json5 && (isOctal || isHex)) {\n while (position < inputLength &&\n (isHex ? isHexDigit : isOctDigit)(input[position])) {\n ++position\n }\n\n let sign = 1\n if (input[start] === '-') {\n sign = -1\n ++start\n } else if (input[start] === '+') {\n ++start\n }\n\n return sign * toNumber(isOctal)\n }\n }\n\n if (char === '.') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n if (char === 'e' || char === 'E') {\n char = input[position++]\n if (char === '-' || char === '+') {\n ++position\n }\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // we have char in the buffer, so count for it\n --position\n return toNumber()\n }\n\n function parseIdentifier () {\n // rewind because we don't know first char\n --position\n\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === '\\\\' &&\n input[position] === 'u' &&\n isHexDigit(input[position + 1]) &&\n isHexDigit(input[position + 2]) &&\n isHexDigit(input[position + 3]) &&\n isHexDigit(input[position + 4])) {\n // UnicodeEscapeSequence\n char = String.fromCharCode(Number.parseInt(input.substr(position + 1, 4), 16))\n position += 5\n }\n\n if (result.length) {\n // identifier started\n if (Uni.isIdentifierPart(char)) {\n result += char\n } else {\n --position\n return result\n }\n } else {\n if (Uni.isIdentifierStart(char)) {\n result += char\n } else {\n return undefined\n }\n }\n }\n\n fail()\n }\n\n function parseString (endChar) {\n // 7.8.4 of ES262 spec\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === endChar) {\n return result\n }if (char === '\\\\') {\n if (position >= inputLength) {\n fail()\n }\n char = input[position++]\n if (unescapeMap[char] && (json5 || (char !== 'v' && (char !== \"'\" || allowSingleQuotedStrings)))) {\n result += unescapeMap[char]\n } else if (json5 && isLineTerminator(char)) {\n // line continuation\n newLine(char)\n } else if (char === 'u' || (char === 'x' && json5)) {\n // unicode/character escape sequence\n const count = char === 'u' ? 4 : 2\n // validation for \\uXXXX\n for (let i = 0; i < count; ++i) {\n if (position >= inputLength) {\n fail()\n }\n if (!isHexDigit(input[position])) {\n fail('Bad escape sequence')\n }\n position++\n }\n result += String.fromCharCode(Number.parseInt(input.substr(position - count, count), 16))\n } else if (json5 && isOctDigit(char)) {\n let digits\n if (char < '4' && isOctDigit(input[position]) && isOctDigit(input[position + 1])) {\n // three-digit octal\n digits = 3\n } else if (isOctDigit(input[position])) {\n // two-digit octal\n digits = 2\n } else {\n digits = 1\n }\n position += digits - 1\n result += String.fromCharCode(Number.parseInt(input.substr(position - digits, digits), 8))\n } else if (json5) {\n // \\X -> x\n result += char\n } else {\n --position\n fail()\n }\n } else if (isLineTerminator(char)) {\n fail()\n } else {\n if (!json5 && char.charCodeAt(0) < 32) {\n --position\n fail('Unexpected control character')\n }\n // SourceCharacter but not one of \" or \\ or LineTerminator\n result += char\n }\n }\n\n fail()\n }\n\n if (ignoreBOM) {\n skipBOM()\n }\n skipWhiteSpace()\n let returnValue = parseGeneric()\n if (returnValue !== undefined || position < inputLength) {\n skipWhiteSpace()\n if (position >= inputLength) {\n if (reviver) {\n returnValue = reviver('', returnValue)\n }\n return tokenize ? tokens : returnValue\n }\n fail()\n } else {\n if (position) {\n fail('No data, only a whitespace')\n } else {\n fail('No data, empty input')\n }\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseCustom (input, options) {\n if (typeof options === 'function') {\n options = {\n reviver: options\n }\n } else if (!options) {\n options = {}\n }\n return parseInternal(input, options)\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction tokenize (input, options) {\n if (!options) {\n options = {}\n }\n // As long as this is the single modification, this is easier than cloning.\n // (Once Node.js 6 is dropped, this can be replaced by object destructuring.)\n const oldTokenize = options.tokenize\n options.tokenize = true\n const tokens = parseInternal(input, options)\n options.tokenize = oldTokenize\n return tokens\n}\nfunction escapePointerToken (token) {\n return token\n .toString()\n .replace(/~/g, '~0')\n .replace(/\\//g, '~1')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pathToPointer (tokens) {\n if (tokens.length === 0) {\n return ''\n }\n return `/${tokens\n .map(escapePointerToken)\n .join('/')}`\n}\n\nfunction unescapePointerToken (token) {\n return token\n .replace(/~1/g, '/')\n .replace(/~0/g, '~')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pointerToPath (pointer) {\n if (pointer === '') {\n return []\n }\n if (pointer[0] !== '/') {\n throw new Error('Missing initial \"/\" in the reference')\n }\n return pointer\n .substr(1)\n .split('/')\n .map(unescapePointerToken)\n}\nfunction getLineAndColumn (input, offset) {\n const lines = input\n .substr(0, offset)\n .split(/\\r?\\n/)\n const line = lines.length\n const column = lines[line - 1].length + 1\n return {\n line,\n column\n }\n}\n\nfunction getOffset (input, line, column) {\n if (line > 1) {\n const breaks = /\\r?\\n/g\n let match\n while ((match = breaks.exec(input))) {\n if (--line === 1) {\n return match.index + column\n }\n }\n }\n return column - 1\n}\n\nfunction pastInput (input, offset) {\n const start = Math.max(0, offset - 20)\n const previous = input.substr(start, offset - start)\n return (offset > 20 ? '...' : '') + previous.replace(/\\r?\\n/g, '')\n}\n\nfunction upcomingInput (input, offset) {\n let start = Math.max(0, offset - 20)\n start += offset - start\n const rest = input.length - start\n const next = input.substr(start, Math.min(20, rest))\n return next.replace(/\\r?\\n/g, '') + (rest > 20 ? '...' : '')\n}\n\nfunction getPositionContext (input, offset) {\n const past = pastInput(input, offset)\n const upcoming = upcomingInput(input, offset)\n const pointer = `${new Array(past.length + 1).join('-')}^`\n return {\n excerpt: past + upcoming,\n pointer\n }\n}\n\nfunction getReason (error) {\n let message = error.message\n .replace('JSON.parse: ', '') // SpiderMonkey\n .replace('JSON Parse error: ', '') // SquirrelFish\n const firstCharacter = message.charAt(0)\n if (firstCharacter >= 'a') {\n message = firstCharacter.toUpperCase() + message.substr(1)\n }\n return message\n}\n\nfunction getLocationOnV8 (input, reason) {\n const match = / in JSON at position (\\d+)$/.exec(reason)\n if (match) {\n const offset = +match[1]\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction checkUnexpectedEndOnV8 (input, reason) {\n const match = / end of JSON input$/.exec(reason)\n if (match) {\n const offset = input.length\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index + 4)\n }\n }\n}\n\nfunction getLocationOnSpiderMonkey (input, reason) {\n const match = / at line (\\d+) column (\\d+) of the JSON data$/.exec(reason)\n if (match) {\n const line = +match[1]\n const column = +match[2]\n const offset = getOffset(input, line, column) // eslint-disable-line no-undef\n return {\n offset,\n line,\n column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction getTexts (reason, input, offset, line, column) {\n const position = getPositionContext(input, offset)\n const excerpt = position.excerpt\n let message\n let pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = `Parse error on line ${line}, column ${column}:\\n${excerpt}\\n${pointer}\\n${reason}`\n } else {\n message = `Parse error in JSON input:\\n${excerpt}\\n${reason}`\n }\n return {\n message,\n excerpt,\n pointer\n }\n}\n\nfunction improveNativeError (input, error) {\n let reason = getReason(error)\n const location = getLocationOnV8(input, reason) ||\n checkUnexpectedEndOnV8(input, reason) ||\n getLocationOnSpiderMonkey(input, reason)\n let offset\n let line\n let column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.ignoreProtoKey || options.ignorePrototypeKeys || options.mode === 'cjson' ||\n options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n }if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
5
+ "mappings": "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",
6
+ "names": ["global", "factory", "exports", "Uni", "x", "isHexDigit", "isOctDigit", "isDecDigit", "isBOM", "unescapeMap", "ownsProperty", "emptyObject", "parseInternal", "input", "options", "json5", "ignoreBOM", "ignoreComments", "ignoreTrailingCommas", "ignoreProtoKey", "ignorePrototypeKeys", "allowSingleQuotedStrings", "allowDuplicateObjectKeys", "reviver", "tokenize", "rawTokens", "tokenLocations", "tokenPaths", "isLineTerminator", "isWhiteSpace", "inputLength", "lineNumber", "lineStart", "position", "tokens", "startToken", "endToken", "tokenPath", "tokenOffset", "tokenLine", "tokenColumn", "type", "value", "token", "generateMessage", "message", "createError", "column", "texts", "getTexts", "error", "fail", "newLine", "char", "parseGeneric", "string", "parseString", "parseObject", "parseArray", "number", "parseNumber", "parseKeyword", "parseKey", "result", "rollback", "parseIdentifier", "skipBOM", "skipWhiteSpace", "insideWhiteSpace", "startWhiteSpace", "endWhiteSpace", "skipComment", "multiLine", "keyword", "startPosition", "i", "keywordLength", "isNotEmpty", "key", "item", "start", "toNumber", "isOctal", "isHex", "sign", "endChar", "count", "digits", "returnValue", "parseCustom", "oldTokenize", "escapePointerToken", "pathToPointer", "unescapePointerToken", "pointerToPath", "pointer", "getLineAndColumn", "offset", "lines", "line", "getOffset", "breaks", "match", "pastInput", "previous", "upcomingInput", "rest", "getPositionContext", "past", "upcoming", "getReason", "firstCharacter", "getLocationOnV8", "reason", "location", "checkUnexpectedEndOnV8", "getLocationOnSpiderMonkey", "excerpt", "improveNativeError", "parseNative", "newError", "isSafari", "oldNode", "needsCustomParser", "getReviver", "parse"]
7
7
  }
@@ -1,4 +1,4 @@
1
- (function(j,f){if(typeof exports=="object"&&typeof module<"u"){const c=require("./jsonlint"),l={Ajv04:"ajv-draft-04",Ajv07:"ajv",AjvJTD:"ajv/dist/jtd",Ajv2019:"ajv/dist/2019",Ajv2020:"ajv/dist/2020",Schema06:"ajv/dist/refs/json-schema-draft-06.json"},d=g=>{const u=require(l[g]);return!u.$schema&&u.default||u};f(exports,c,d)}else if(typeof define=="function"&&define.amd)define("jsonlint-validator",["exports","jsonlint","ajv"],function(c,l,d){f(c,l,u=>{const m=d[u];return!m.$schema&&m.default||m})});else{j=j||self;const c=l=>{const d=j.ajv[l];return!d.$schema&&d.default||d};f(j.jsonlintValidator={},j.jsonlint,c)}})(this,function(j,f,c){"use strict";function l(e,s,t,a){const i=t.find(function(o){return a===f.pathToPointer(o.path)});if(i){const o=i.location.start,r=o.offset,n=o.line,h=o.column,S=f.getErrorTexts(e.reason,s,r,n,h);return e.message=S.message,e.excerpt=S.excerpt,S.pointer&&(e.pointer=S.pointer,e.location={start:{column:h,line:n,offset:r}}),!0}}function d(e,s,t){const a=e.dataPath,i=e.schemaPath,o=`${a||"/"} ${e.message}; see ${i}`,r={reason:o,dataPath:a,schemaPath:i};return l(r,s,t,a)||(r.message=o),r}function g(e,s,t,a){t||(t=JSON.stringify(s,void 0,2)),a||(a={}),Object.assign(a,{tokenLocations:!0,tokenPaths:!0});const i=f.tokenize(t,a),o=d(e[0],t,i),r=new SyntaxError(o.message);return Object.assign(r,o),r}function u(e){let s;if(!e||e==="json-schema-draft-06"||e==="draft-06"){const t=c("Ajv07");s=new t,s.addMetaSchema(c("Schema06"))}else if(e==="json-schema-draft-07"||e==="draft-07"){const t=c("Ajv07");s=new t}else if(e==="json-schema-draft-04"||e==="draft-04"){const t=c("Ajv04");s=new t}else if(e==="json-schema-draft-2019-09"||e==="draft-2019-09"){const t=c("Ajv2019");s=new t}else if(e==="json-schema-draft-2020-12"||e==="draft-2020-12"){const t=c("Ajv2020");s=new t}else if(e==="json-type-definition"||e==="jtd"||e==="rfc8927"){const t=c("AjvJTD");s=new t}else throw new RangeError(`Unsupported environment for the JSON Schema validation: "${e}".`);return s}function m(e,s,t){Array.isArray(s)||(s=[s]);const[a,...i]=s.map((o,r)=>{if(typeof o!="string")return o;try{return f.parse(o,t)}catch(n){throw n.message=`Parsing the JSON Schema #${r+1} failed.
2
- ${n.message}`,n}});try{for(const o of i)e.addSchema(o);return e.compile(a)}catch(o){const r=e.errors,n=r?g(r,parsed,s,t):o;throw n.message=`Compiling the JSON Schema failed.
3
- ${n.message}`,n}}function A(e,s){let t={};typeof s=="object"&&!(s instanceof String)&&(t=s,s=t.environment);const a=u(s),i={mode:t.mode,ignoreBOM:t.ignoreBOM,ignoreComments:t.ignoreComments,ignoreTrailingCommas:t.ignoreTrailingCommas,allowSingleQuotedStrings:t.allowSingleQuotedStrings,allowDuplicateObjectKeys:t.allowDuplicateObjectKeys},o=m(a,e,i);return function(r,n,h){if(typeof r=="string"||r instanceof String?(h=n,n=r,r=f.parse(n,h)):typeof n=="string"||n instanceof String||(h=n,n=void 0),o(r))return r;throw g(o.errors,r,n,h)}}j.compile=A,Object.defineProperty(j,"__esModule",{value:!0})});
1
+ (function(j,f){if(typeof exports=="object"&&typeof module<"u"){const c=require("./jsonlint"),l={Ajv04:"ajv-draft-04",Ajv07:"ajv",AjvJTD:"ajv/dist/jtd",Ajv2019:"ajv/dist/2019",Ajv2020:"ajv/dist/2020",Schema06:"ajv/dist/refs/json-schema-draft-06.json"},d=h=>{const u=require(l[h]);return!u.$schema&&u.default||u};f(exports,c,d)}else if(typeof define=="function"&&define.amd)define("jsonlint-validator",["exports","jsonlint","ajv"],function(c,l,d){f(c,l,u=>{const m=d[u];return!m.$schema&&m.default||m})});else{j=j||self;const c=l=>{const d=j.ajv[l];return!d.$schema&&d.default||d};f(j.jsonlintValidator={},j.jsonlint,c)}})(this,function(j,f,c){"use strict";function l(t,o,e,a){const i=e.find(function(s){return a===f.pathToPointer(s.path)});if(i){const s=i.location.start,r=s.offset,n=s.line,g=s.column,y=f.getErrorTexts(t.reason,o,r,n,g);return t.message=y.message,t.excerpt=y.excerpt,y.pointer&&(t.pointer=y.pointer,t.location={start:{column:g,line:n,offset:r}}),!0}}function d(t,o,e){const a=t.dataPath,i=t.schemaPath,s=`${a||"/"} ${t.message}; see ${i}`,r={reason:s,dataPath:a,schemaPath:i};return l(r,o,e,a)||(r.message=s),r}function h(t,o,e,a){e||(e=JSON.stringify(o,void 0,2)),a||(a={}),Object.assign(a,{tokenLocations:!0,tokenPaths:!0});const i=f.tokenize(e,a),s=d(t[0],e,i),r=new SyntaxError(s.message);return Object.assign(r,s),r}function u(t){let o;if(!t||t==="json-schema-draft-06"||t==="draft-06"){const e=c("Ajv07");o=new e,o.addMetaSchema(c("Schema06"))}else if(t==="json-schema-draft-07"||t==="draft-07"){const e=c("Ajv07");o=new e}else if(t==="json-schema-draft-04"||t==="draft-04"){const e=c("Ajv04");o=new e}else if(t==="json-schema-draft-2019-09"||t==="draft-2019-09"){const e=c("Ajv2019");o=new e}else if(t==="json-schema-draft-2020-12"||t==="draft-2020-12"){const e=c("Ajv2020");o=new e}else if(t==="json-type-definition"||t==="jtd"||t==="rfc8927"){const e=c("AjvJTD");o=new e}else throw new RangeError(`Unsupported environment for the JSON Schema validation: "${t}".`);return o}function m(t,o,e){Array.isArray(o)||(o=[o]);const[a,...i]=o.map((s,r)=>{if(typeof s!="string")return s;try{return f.parse(s,e)}catch(n){throw n.message=`Parsing the JSON Schema #${r+1} failed.
2
+ ${n.message}`,n}});try{for(const s of i)t.addSchema(s);return t.compile(a)}catch(s){const r=t.errors,n=r?h(r,parsed,o,e):s;throw n.message=`Compiling the JSON Schema failed.
3
+ ${n.message}`,n}}function S(t,o){let e={};typeof o=="object"&&!(o instanceof String)&&(e=o,o=e.environment);const a=u(o),i={mode:e.mode,ignoreBOM:e.ignoreBOM,ignoreComments:e.ignoreComments,ignoreTrailingCommas:e.ignoreTrailingCommas,allowSingleQuotedStrings:e.allowSingleQuotedStrings,allowDuplicateObjectKeys:e.allowDuplicateObjectKeys,ignoreProtoKey:e.ignoreProtoKey,ignorePrototypeKeys:e.ignorePrototypeKeys},s=m(a,t,i);return function(r,n,g){if(typeof r=="string"||r instanceof String?(g=n,n=r,r=f.parse(n,g)):typeof n=="string"||n instanceof String||(g=n,n=void 0),s(r))return r;throw h(s.errors,r,n,g)}}j.compile=S,Object.defineProperty(j,"__esModule",{value:!0})});
4
4
  //# sourceMappingURL=validator.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../lib/validator.js"],
4
- "sourcesContent": ["(function (global, factory) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n const jsonlint = require('./jsonlint')\n const ajv = {\n Ajv04: 'ajv-draft-04',\n Ajv07: 'ajv',\n AjvJTD: 'ajv/dist/jtd',\n Ajv2019: 'ajv/dist/2019',\n Ajv2020: 'ajv/dist/2020',\n Schema06: 'ajv/dist/refs/json-schema-draft-06.json'\n }\n const requireAjv = name => {\n const exported = require(ajv[name])\n return !exported.$schema && exported.default || exported\n }\n factory(exports, jsonlint, requireAjv)\n } else if (typeof define === 'function' && define.amd) {\n define('jsonlint-validator', ['exports', 'jsonlint', 'ajv'],\n function (exports, jsonlint, ajv) {\n const requireAjv = name => {\n const exported = ajv[name]\n return !exported.$schema && exported.default || exported\n }\n factory(exports, jsonlint, requireAjv)\n })\n } else {\n global = global || self\n const requireAjv = name => {\n const exported = global.ajv[name]\n return !exported.$schema && exported.default || exported\n }\n factory(global.jsonlintValidator = {}, global.jsonlint, requireAjv)\n }\n}(this, function (exports, jsonlint, requireAjv) {\n 'use strict'\n\n function addErrorLocation (problem, input, tokens, dataPath) {\n const token = tokens.find(function (token) {\n return dataPath === jsonlint.pathToPointer(token.path)\n })\n if (token) {\n const location = token.location.start\n const offset = location.offset\n const line = location.line\n const column = location.column\n const texts = jsonlint.getErrorTexts(problem.reason, input, offset, line, column)\n problem.message = texts.message\n problem.excerpt = texts.excerpt\n if (texts.pointer) {\n problem.pointer = texts.pointer\n problem.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return true\n }\n }\n\n function errorToProblem (error, input, tokens) {\n const dataPath = error.dataPath\n const schemaPath = error.schemaPath\n const reason = `${dataPath || '/'} ${error.message}; see ${schemaPath}`\n const problem = {\n reason,\n dataPath,\n schemaPath\n }\n if (!addErrorLocation(problem, input, tokens, dataPath)) {\n problem.message = reason\n }\n return problem\n }\n\n function createError (errors, data, input, options) {\n if (!input) {\n input = JSON.stringify(data, undefined, 2)\n }\n if (!options) {\n options = {}\n }\n Object.assign(options, {\n tokenLocations: true,\n tokenPaths: true\n })\n const tokens = jsonlint.tokenize(input, options)\n // var problems = errors.map(function (error) {\n // return errorToProblem(error, input, tokens)\n // })\n // var message = problems\n // .map(function (problem) {\n // return problem.message\n // })\n // .join('\\n')\n const problem = errorToProblem(errors[0], input, tokens)\n const error = new SyntaxError(problem.message)\n Object.assign(error, problem)\n return error\n }\n\n function createAjv (environment) {\n let ajv\n if (!environment || environment === 'json-schema-draft-06' || environment === 'draft-06') {\n const Ajv = requireAjv('Ajv07')\n ajv = new Ajv()\n ajv.addMetaSchema(requireAjv('Schema06'))\n } else if (environment === 'json-schema-draft-07' || environment === 'draft-07') {\n const Ajv = requireAjv('Ajv07')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-04' || environment === 'draft-04') {\n const Ajv = requireAjv('Ajv04')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-2019-09' || environment === 'draft-2019-09') {\n const Ajv = requireAjv('Ajv2019')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-2020-12' || environment === 'draft-2020-12') {\n const Ajv = requireAjv('Ajv2020')\n ajv = new Ajv()\n } else if (environment === 'json-type-definition' || environment === 'jtd' || environment === 'rfc8927') {\n const Ajv = requireAjv('AjvJTD')\n ajv = new Ajv()\n } else {\n throw new RangeError(`Unsupported environment for the JSON Schema validation: \"${environment}\".`)\n }\n return ajv\n }\n\n function compileSchema (ajv, schema, parseOptions) {\n if (!Array.isArray(schema)) schema = [schema]\n const [main, ...others] = schema.map((schema, index) => {\n if (typeof schema !== 'string') return schema\n try {\n return jsonlint.parse(schema, parseOptions)\n } catch (error) {\n error.message = `Parsing the JSON Schema #${index + 1} failed.\\n${error.message}`\n throw error\n }\n })\n try {\n for (const schema of others) {\n ajv.addSchema(schema)\n }\n return ajv.compile(main)\n } catch (originalError) {\n const errors = ajv.errors\n const betterError = errors\n ? createError(errors, parsed, schema, parseOptions)\n : originalError\n betterError.message = `Compiling the JSON Schema failed.\\n${betterError.message}`\n throw betterError\n }\n }\n\n function compile (schema, environment) {\n let options = {}\n if (typeof environment === 'object' && !(environment instanceof String)) {\n options = environment\n environment = options.environment\n }\n const ajv = createAjv(environment)\n const parseOptions = {\n mode: options.mode,\n ignoreBOM: options.ignoreBOM,\n ignoreComments: options.ignoreComments,\n ignoreTrailingCommas: options.ignoreTrailingCommas,\n allowSingleQuotedStrings: options.allowSingleQuotedStrings,\n allowDuplicateObjectKeys: options.allowDuplicateObjectKeys\n }\n const validate = compileSchema(ajv, schema, parseOptions)\n return function (data, input, options) {\n if (typeof data === 'string' || data instanceof String) {\n options = input\n input = data\n data = jsonlint.parse(input, options)\n } else if (!(typeof input === 'string' || input instanceof String)) {\n options = input\n input = undefined\n }\n if (validate(data)) {\n return data\n }\n throw createError(validate.errors, data, input, options)\n }\n }\n\n exports.compile = compile\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
- "mappings": "CAAC,SAAUA,EAAQC,EAAS,CAC1B,GAAI,OAAO,SAAY,UAAY,OAAO,OAAW,IAAa,CAChE,MAAMC,EAAW,QAAQ,YAAY,EAC/BC,EAAM,CACV,MAAO,eACP,MAAO,MACP,OAAQ,eACR,QAAS,gBACT,QAAS,gBACT,SAAU,yCACZ,EACMC,EAAaC,GAAQ,CACzB,MAAMC,EAAW,QAAQH,EAAIE,CAAI,CAAC,EAClC,MAAO,CAACC,EAAS,SAAWA,EAAS,SAAWA,CAClD,EACAL,EAAQ,QAASC,EAAUE,CAAU,CACvC,SAAW,OAAO,QAAW,YAAc,OAAO,IAChD,OAAO,qBAAsB,CAAC,UAAW,WAAY,KAAK,EACxD,SAAUG,EAASL,EAAUC,EAAK,CAKhCF,EAAQM,EAASL,EAJEG,GAAQ,CACzB,MAAMC,EAAWH,EAAIE,CAAI,EACzB,MAAO,CAACC,EAAS,SAAWA,EAAS,SAAWA,CAClD,CACqC,CACvC,CAAC,MACE,CACLN,EAASA,GAAU,KACnB,MAAMI,EAAaC,GAAQ,CACzB,MAAMC,EAAWN,EAAO,IAAIK,CAAI,EAChC,MAAO,CAACC,EAAS,SAAWA,EAAS,SAAWA,CAClD,EACAL,EAAQD,EAAO,kBAAoB,CAAC,EAAGA,EAAO,SAAUI,CAAU,CACpE,CACF,GAAE,KAAM,SAAUG,EAASL,EAAUE,EAAY,CAC/C,aAEA,SAASI,EAAkBC,EAASC,EAAOC,EAAQC,EAAU,CAC3D,MAAMC,EAAQF,EAAO,KAAK,SAAUE,EAAO,CACzC,OAAOD,IAAaV,EAAS,cAAcW,EAAM,IAAI,CACvD,CAAC,EACD,GAAIA,EAAO,CACT,MAAMC,EAAWD,EAAM,SAAS,MAC1BE,EAASD,EAAS,OAClBE,EAAOF,EAAS,KAChBG,EAASH,EAAS,OAClBI,EAAQhB,EAAS,cAAcO,EAAQ,OAAQC,EAAOK,EAAQC,EAAMC,CAAM,EAChF,OAAAR,EAAQ,QAAUS,EAAM,QACxBT,EAAQ,QAAUS,EAAM,QACpBA,EAAM,UACRT,EAAQ,QAAUS,EAAM,QACxBT,EAAQ,SAAW,CACjB,MAAO,CACL,OAAAQ,EACA,KAAAD,EACA,OAAAD,CACF,CACF,GAEK,EACT,CACF,CAEA,SAASI,EAAgBC,EAAOV,EAAOC,EAAQ,CAC7C,MAAMC,EAAWQ,EAAM,SACjBC,EAAaD,EAAM,WACnBE,EAAS,GAAGV,GAAY,GAAG,IAAIQ,EAAM,OAAO,SAASC,CAAU,GAC/DZ,EAAU,CACd,OAAAa,EACA,SAAAV,EACA,WAAAS,CACF,EACA,OAAKb,EAAiBC,EAASC,EAAOC,EAAQC,CAAQ,IACpDH,EAAQ,QAAUa,GAEbb,CACT,CAEA,SAASc,EAAaC,EAAQC,EAAMf,EAAOgB,EAAS,CAC7ChB,IACHA,EAAQ,KAAK,UAAUe,EAAM,OAAW,CAAC,GAEtCC,IACHA,EAAU,CAAC,GAEb,OAAO,OAAOA,EAAS,CACrB,eAAgB,GAChB,WAAY,EACd,CAAC,EACD,MAAMf,EAAST,EAAS,SAASQ,EAAOgB,CAAO,EASzCjB,EAAUU,EAAeK,EAAO,CAAC,EAAGd,EAAOC,CAAM,EACjDS,EAAQ,IAAI,YAAYX,EAAQ,OAAO,EAC7C,cAAO,OAAOW,EAAOX,CAAO,EACrBW,CACT,CAEA,SAASO,EAAWC,EAAa,CAC/B,IAAIzB,EACJ,GAAI,CAACyB,GAAeA,IAAgB,wBAA0BA,IAAgB,WAAY,CACxF,MAAMC,EAAMzB,EAAW,OAAO,EAC9BD,EAAM,IAAI0B,EACV1B,EAAI,cAAcC,EAAW,UAAU,CAAC,CAC1C,SAAWwB,IAAgB,wBAA0BA,IAAgB,WAAY,CAC/E,MAAMC,EAAMzB,EAAW,OAAO,EAC9BD,EAAM,IAAI0B,CACZ,SAAWD,IAAgB,wBAA0BA,IAAgB,WAAY,CAC/E,MAAMC,EAAMzB,EAAW,OAAO,EAC9BD,EAAM,IAAI0B,CACZ,SAAWD,IAAgB,6BAA+BA,IAAgB,gBAAiB,CACzF,MAAMC,EAAMzB,EAAW,SAAS,EAChCD,EAAM,IAAI0B,CACZ,SAAWD,IAAgB,6BAA+BA,IAAgB,gBAAiB,CACzF,MAAMC,EAAMzB,EAAW,SAAS,EAChCD,EAAM,IAAI0B,CACZ,SAAWD,IAAgB,wBAA0BA,IAAgB,OAASA,IAAgB,UAAW,CACvG,MAAMC,EAAMzB,EAAW,QAAQ,EAC/BD,EAAM,IAAI0B,CACZ,KACE,OAAM,IAAI,WAAW,4DAA4DD,CAAW,IAAI,EAElG,OAAOzB,CACT,CAEA,SAAS2B,EAAe3B,EAAK4B,EAAQC,EAAc,CAC5C,MAAM,QAAQD,CAAM,IAAGA,EAAS,CAACA,CAAM,GAC5C,KAAM,CAACE,EAAM,GAAGC,CAAM,EAAIH,EAAO,IAAI,CAACA,EAAQI,IAAU,CACtD,GAAI,OAAOJ,GAAW,SAAU,OAAOA,EACvC,GAAI,CACF,OAAO7B,EAAS,MAAM6B,EAAQC,CAAY,CAC5C,OAASZ,EAAO,CACd,MAAAA,EAAM,QAAU,4BAA4Be,EAAQ,CAAC;AAAA,EAAaf,EAAM,OAAO,GACzEA,CACR,CACF,CAAC,EACD,GAAI,CACF,UAAWW,KAAUG,EACnB/B,EAAI,UAAU4B,CAAM,EAEtB,OAAO5B,EAAI,QAAQ8B,CAAI,CACzB,OAASG,EAAe,CACtB,MAAMZ,EAASrB,EAAI,OACbkC,EAAcb,EAChBD,EAAYC,EAAQ,OAAQO,EAAQC,CAAY,EAChDI,EACJ,MAAAC,EAAY,QAAU;AAAA,EAAsCA,EAAY,OAAO,GACzEA,CACR,CACF,CAEA,SAASC,EAASP,EAAQH,EAAa,CACrC,IAAIF,EAAU,CAAC,EACX,OAAOE,GAAgB,UAAY,EAAEA,aAAuB,UAC9DF,EAAUE,EACVA,EAAcF,EAAQ,aAExB,MAAMvB,EAAMwB,EAAUC,CAAW,EAC3BI,EAAe,CACnB,KAAMN,EAAQ,KACd,UAAWA,EAAQ,UACnB,eAAgBA,EAAQ,eACxB,qBAAsBA,EAAQ,qBAC9B,yBAA0BA,EAAQ,yBAClC,yBAA0BA,EAAQ,wBACpC,EACMa,EAAWT,EAAc3B,EAAK4B,EAAQC,CAAY,EACxD,OAAO,SAAUP,EAAMf,EAAOgB,EAAS,CASrC,GARI,OAAOD,GAAS,UAAYA,aAAgB,QAC9CC,EAAUhB,EACVA,EAAQe,EACRA,EAAOvB,EAAS,MAAMQ,EAAOgB,CAAO,GACzB,OAAOhB,GAAU,UAAYA,aAAiB,SACzDgB,EAAUhB,EACVA,EAAQ,QAEN6B,EAASd,CAAI,EACf,OAAOA,EAET,MAAMF,EAAYgB,EAAS,OAAQd,EAAMf,EAAOgB,CAAO,CACzD,CACF,CAEAnB,EAAQ,QAAU+B,EAElB,OAAO,eAAe/B,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAC9D,CAAC",
4
+ "sourcesContent": ["(function (global, factory) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n const jsonlint = require('./jsonlint')\n const ajv = {\n Ajv04: 'ajv-draft-04',\n Ajv07: 'ajv',\n AjvJTD: 'ajv/dist/jtd',\n Ajv2019: 'ajv/dist/2019',\n Ajv2020: 'ajv/dist/2020',\n Schema06: 'ajv/dist/refs/json-schema-draft-06.json'\n }\n const requireAjv = name => {\n const exported = require(ajv[name])\n return !exported.$schema && exported.default || exported\n }\n factory(exports, jsonlint, requireAjv)\n } else if (typeof define === 'function' && define.amd) {\n define('jsonlint-validator', ['exports', 'jsonlint', 'ajv'],\n function (exports, jsonlint, ajv) {\n const requireAjv = name => {\n const exported = ajv[name]\n return !exported.$schema && exported.default || exported\n }\n factory(exports, jsonlint, requireAjv)\n })\n } else {\n global = global || self\n const requireAjv = name => {\n const exported = global.ajv[name]\n return !exported.$schema && exported.default || exported\n }\n factory(global.jsonlintValidator = {}, global.jsonlint, requireAjv)\n }\n}(this, function (exports, jsonlint, requireAjv) {\n 'use strict'\n\n function addErrorLocation (problem, input, tokens, dataPath) {\n const token = tokens.find(function (token) {\n return dataPath === jsonlint.pathToPointer(token.path)\n })\n if (token) {\n const location = token.location.start\n const offset = location.offset\n const line = location.line\n const column = location.column\n const texts = jsonlint.getErrorTexts(problem.reason, input, offset, line, column)\n problem.message = texts.message\n problem.excerpt = texts.excerpt\n if (texts.pointer) {\n problem.pointer = texts.pointer\n problem.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return true\n }\n }\n\n function errorToProblem (error, input, tokens) {\n const dataPath = error.dataPath\n const schemaPath = error.schemaPath\n const reason = `${dataPath || '/'} ${error.message}; see ${schemaPath}`\n const problem = {\n reason,\n dataPath,\n schemaPath\n }\n if (!addErrorLocation(problem, input, tokens, dataPath)) {\n problem.message = reason\n }\n return problem\n }\n\n function createError (errors, data, input, options) {\n if (!input) {\n input = JSON.stringify(data, undefined, 2)\n }\n if (!options) {\n options = {}\n }\n Object.assign(options, {\n tokenLocations: true,\n tokenPaths: true\n })\n const tokens = jsonlint.tokenize(input, options)\n // var problems = errors.map(function (error) {\n // return errorToProblem(error, input, tokens)\n // })\n // var message = problems\n // .map(function (problem) {\n // return problem.message\n // })\n // .join('\\n')\n const problem = errorToProblem(errors[0], input, tokens)\n const error = new SyntaxError(problem.message)\n Object.assign(error, problem)\n return error\n }\n\n function createAjv (environment) {\n let ajv\n if (!environment || environment === 'json-schema-draft-06' || environment === 'draft-06') {\n const Ajv = requireAjv('Ajv07')\n ajv = new Ajv()\n ajv.addMetaSchema(requireAjv('Schema06'))\n } else if (environment === 'json-schema-draft-07' || environment === 'draft-07') {\n const Ajv = requireAjv('Ajv07')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-04' || environment === 'draft-04') {\n const Ajv = requireAjv('Ajv04')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-2019-09' || environment === 'draft-2019-09') {\n const Ajv = requireAjv('Ajv2019')\n ajv = new Ajv()\n } else if (environment === 'json-schema-draft-2020-12' || environment === 'draft-2020-12') {\n const Ajv = requireAjv('Ajv2020')\n ajv = new Ajv()\n } else if (environment === 'json-type-definition' || environment === 'jtd' || environment === 'rfc8927') {\n const Ajv = requireAjv('AjvJTD')\n ajv = new Ajv()\n } else {\n throw new RangeError(`Unsupported environment for the JSON Schema validation: \"${environment}\".`)\n }\n return ajv\n }\n\n function compileSchema (ajv, schema, parseOptions) {\n if (!Array.isArray(schema)) schema = [schema]\n const [main, ...others] = schema.map((schema, index) => {\n if (typeof schema !== 'string') return schema\n try {\n return jsonlint.parse(schema, parseOptions)\n } catch (error) {\n error.message = `Parsing the JSON Schema #${index + 1} failed.\\n${error.message}`\n throw error\n }\n })\n try {\n for (const schema of others) {\n ajv.addSchema(schema)\n }\n return ajv.compile(main)\n } catch (originalError) {\n const errors = ajv.errors\n const betterError = errors\n ? createError(errors, parsed, schema, parseOptions)\n : originalError\n betterError.message = `Compiling the JSON Schema failed.\\n${betterError.message}`\n throw betterError\n }\n }\n\n function compile (schema, environment) {\n let options = {}\n if (typeof environment === 'object' && !(environment instanceof String)) {\n options = environment\n environment = options.environment\n }\n const ajv = createAjv(environment)\n const parseOptions = {\n mode: options.mode,\n ignoreBOM: options.ignoreBOM,\n ignoreComments: options.ignoreComments,\n ignoreTrailingCommas: options.ignoreTrailingCommas,\n allowSingleQuotedStrings: options.allowSingleQuotedStrings,\n allowDuplicateObjectKeys: options.allowDuplicateObjectKeys,\n ignoreProtoKey: options.ignoreProtoKey,\n ignorePrototypeKeys: options.ignorePrototypeKeys\n }\n const validate = compileSchema(ajv, schema, parseOptions)\n return function (data, input, options) {\n if (typeof data === 'string' || data instanceof String) {\n options = input\n input = data\n data = jsonlint.parse(input, options)\n } else if (!(typeof input === 'string' || input instanceof String)) {\n options = input\n input = undefined\n }\n if (validate(data)) {\n return data\n }\n throw createError(validate.errors, data, input, options)\n }\n }\n\n exports.compile = compile\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
+ "mappings": "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",
6
6
  "names": ["global", "factory", "jsonlint", "ajv", "requireAjv", "name", "exported", "exports", "addErrorLocation", "problem", "input", "tokens", "dataPath", "token", "location", "offset", "line", "column", "texts", "errorToProblem", "error", "schemaPath", "reason", "createError", "errors", "data", "options", "createAjv", "environment", "Ajv", "compileSchema", "schema", "parseOptions", "main", "others", "index", "originalError", "betterError", "compile", "validate"]
7
7
  }