@prantlf/jsonlint 15.0.0 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web/jsonlint.html CHANGED
@@ -46,10 +46,12 @@
46
46
  flex-basis: calc(50% - 1ex);
47
47
  min-width: calc(42ex - 3ex);
48
48
  }
49
- #environment {
49
+ #environment,
50
+ .field-strict {
50
51
  display: none;
51
52
  }
52
- .with-schema #environment {
53
+ .with-schema #environment,
54
+ .with-schema .field-strict {
53
55
  display: inline-block;
54
56
  }
55
57
  #options > * {
@@ -120,11 +122,11 @@
120
122
  <label for="duplicate-object-keys">Allow duplicate object keys</label>
121
123
  </div>
122
124
  <div>
123
- <input type="checkbox" checked id="ignore-proto-key">
125
+ <input type="checkbox" id="ignore-proto-key">
124
126
  <label for="ignore-proto-key">Ignore __proto__ key</label>
125
127
  </div>
126
128
  <div>
127
- <input type="checkbox" checked id="ignore-prototype-keys">
129
+ <input type="checkbox" id="ignore-prototype-keys">
128
130
  <label for="ignore-prototype-keys">Ignore Object.prototype keys</label>
129
131
  </div>
130
132
  </div>
@@ -199,6 +201,10 @@
199
201
  <option value="jtd">JSON Type Definition</option>
200
202
  </select>
201
203
  </div>
204
+ <div>
205
+ <input type="checkbox" id="strict" class="field-strict" checked>
206
+ <label class="field-strict" for="strict">Enable strict mode</label>
207
+ </div>
202
208
  </div>
203
209
  </div>
204
210
  <button id="validate" type="button">Validate</button>
@@ -211,7 +217,7 @@
211
217
  </main>
212
218
  <hr>
213
219
  <footer>
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>
220
+ <small>Copyright &copy; 2012-2026 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>
215
221
  <!-- See http://tholman.com/github-corners/ -->
216
222
  <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>
217
223
  </footer>
@@ -322,6 +328,7 @@
322
328
  var schema = document.getElementById('schema').value
323
329
  var validate = jsonlintValidator.compile(schema, {
324
330
  environment: document.getElementById('environment').value,
331
+ strict: document.getElementById('strict').checked,
325
332
  ...parserOptions
326
333
  })
327
334
  return validate(source, parserOptions)
@@ -1,12 +1,12 @@
1
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"&&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}:
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 b(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function y(u){return u>="0"&&u<="7"}function O(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.hasOwn,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,S=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 p=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=p+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;++p;const F=I(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=gu()),hu(t)}function j(t){t==="\r"&&u[A]===`
6
+ `&&++A,$=A,++p}function J(){if(A<c){a?.();const t=u[A++];if(t==='"'||t==="'"&&S){const n=R(t);return o?.("literal",n),n}if(t==="{")return o?.("symbol","{"),Q();if(t==="[")return o?.("symbol","["),V();if(t==="-"||t==="."||O(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 Su(){let t;if(A<c){a?.();const n=u[A++];if(n==='"'||n==="'"&&S){const F=R(n);return o?.("literal",F),F}if(n==="{")return o?.("symbol","{"),Q();if(n==="[")return o?.("symbol","["),V();if(n==="."||O(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 bu(){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),yu(u[A++]==="*"),o?.("comment");else{--A;break}}o&&F()}function yu(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=Su();lu===!1&&q(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&&O(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||y(n),s=n==="x"||n==="X";if(r&&(i||s)){for(;A<c&&(s?b:y)(u[A]);)++A;let E=1;return u[t]==="-"?(E=-1,++t):u[t]==="+"&&++t,E*F(i)}}if(n==="."){for(;A<c&&O(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<c&&O(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"&&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(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!=="'"||S)))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(),b(u[A])||B("Bad escape sequence"),A++;n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),16))}else if(r&&y(F)){let i;F<"4"&&y(u[A])&&y(u[A+1])?i=3:y(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&&bu(),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,S;return typeof C=="number"?(S=d.pointer,m=`Parse error on line ${C}, column ${D}:
7
7
  ${g}
8
- ${y}
8
+ ${S}
9
9
  ${u}`):m=`Parse error in JSON input:
10
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})});
11
+ ${u}`,{message:m,excerpt:g,pointer:S}}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\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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",
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// biome-ignore lint/correctness/noUnusedVariables: generated code\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.hasOwn\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(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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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)\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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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// biome-ignore lint/correctness/noUnusedVariables: concatenated with other files\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
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,5 +1,6 @@
1
- (function(m,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define("jsonlint-printer",["exports"],s):(m=m||self,s(m.jsonlintPrinter={}))})(this,function(m){"use strict";function s(){}function A(i){return/^[a-zA-Z$_][a-zA-Z0-9$_]*$/.test(i)}function B(i){let o="";const f=i.length;let a;for(a=0;a<f;++a)o+=i[a].raw;return o}function N(i,o){if(!i?.length)throw new Error("JSON tokens missing.");if(!i[0]?.raw)throw new Error("JSON tokens lack raw values.");if(!o)return B(i);let f=o.indent;typeof f=="number"&&(f=new Array(f+1).join(" "));const a=f!==void 0,v=o.pruneComments,Q=o.stripObjectKeys,_=o.enforceDoubleQuotes,$=o.enforceSingleQuotes,D=o.trimTrailingCommas;let e="",k,g,r,j,y,T=0;const I=[];let w,S;const J=i.length;let c,x,L,n;function P(){let t=c,u;do u=i[++t];while(u&&(u.type==="whitespace"||u.type==="comment"));return u}let d;a&&f?d=function(){for(let t=0;t<T;++t)e+=f}:d=s;let p,b;a?(p=function(){e+=`
2
- `},b=function(){r?(p(),d()):y&&(e+=" "),y=r=!1}):p=b=s;let C,l;v?C=l=s:a?(C=function(){!g&&c>0&&(p(),d()),e+=n,k=!1,g=!1,r=!0},l=function(){k=!1,g=!1,j=!1;let t=c+1;function u(){let h=i[t];return h&&h.type==="whitespace"&&(k=h.raw.indexOf(`
3
- `)>=0,h=i[++t]),h}const O=u();!k&&O&&O.type==="comment"&&(r?g||(p(),d()):j||(e+=" "),e+=O.raw,c=t++,u(),k?(y=!1,r=!0):(y=!0,r=!1))}):(C=function(){n[1]==="/"?(e+="/*",e+=n.substr(2,n.length-2),e+=" */"):e+=n},l=s);function z(){b();const t=x.value;Q&&w==="{"&&!S&&A(t)?e+=t:typeof t=="string"?_&&n[0]!=='"'?e+=JSON.stringify(t):$&&n[0]!=="'"?e+=`'${t.replace(/'/g,"\\'")}'`:e+=n:e+=n,l()}function E(){b(),I.push(w),w=n,S=w==="[",e+=n,l(),++T,r=!0}function K(){w=I.pop(),p(),--T,d(),y=r=!1,e+=n,l()}function V(){if(D){const t=P();if(t&&t.type==="symbol")return l()}b(),e+=",",l(),p(),d(),g=!0,r=!1,S=w==="["}function Z(){b(),e+=":",y=!0,l(),S=!0}for(c=0;c<J;++c)switch(x=i[c],L=x.type,n=x.raw,L){case"literal":z();break;case"comment":C();break;case"symbol":switch(n){case"{":case"[":E();break;case"}":case"]":K();break;case",":V();break;case":":Z()}break;default:k=n.indexOf(`
1
+ (function(m,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define("jsonlint-printer",["exports"],f):(m=m||self,f(m.jsonlintPrinter={}))})(this,function(m){"use strict";function f(){}function A(i){return/^[a-zA-Z$_][a-zA-Z0-9$_]*$/.test(i)}function B(i){let r="";const s=i.length;let a;for(a=0;a<s;++a)r+=i[a].raw;return r}function N(i,r){if(!i?.length)throw new Error("JSON tokens missing.");if(!i[0]?.raw)throw new Error("JSON tokens lack raw values.");if(!r)return B(i);let s=r.indent;typeof s=="number"&&(s=new Array(s+1).join(" "));const a=s!==void 0,v=r.pruneComments,Q=r.stripObjectKeys,_=r.enforceDoubleQuotes,$=r.enforceSingleQuotes,D=r.trimTrailingCommas,J=r.forceCrlf===!0?`\r
2
+ `:`
3
+ `;let e="",k,b,o,L,y,T=0;const j=[];let w,S;const P=i.length;let c,C,I,n;function z(){let t=c,u;do u=i[++t];while(u&&(u.type==="whitespace"||u.type==="comment"));return u}let d;a&&s?d=function(){for(let t=0;t<T;++t)e+=s}:d=f;let p,h;a?(p=function(){e+=J},h=function(){o?(p(),d()):y&&(e+=" "),y=o=!1}):p=h=f;let x,l;v?x=l=f:a?(x=function(){!b&&c>0&&(p(),d()),e+=n,k=!1,b=!1,o=!0},l=function(){k=!1,b=!1,L=!1;let t=c+1;function u(){let g=i[t];return g&&g.type==="whitespace"&&(k=g.raw.indexOf(`
4
+ `)>=0,g=i[++t]),g}const O=u();!k&&O&&O.type==="comment"&&(o?b||(p(),d()):L||(e+=" "),e+=O.raw,c=t++,u(),k?(y=!1,o=!0):(y=!0,o=!1))}):(x=function(){n[1]==="/"?(e+="/*",e+=n.substr(2,n.length-2),e+=" */"):e+=n},l=f);function E(){h();const t=C.value;Q&&w==="{"&&!S&&A(t)?e+=t:typeof t=="string"?_&&n[0]!=='"'?e+=JSON.stringify(t):$&&n[0]!=="'"?e+=`'${t.replace(/'/g,"\\'")}'`:e+=n:e+=n,l()}function K(){h(),j.push(w),w=n,S=w==="[",e+=n,l(),++T,o=!0}function V(){w=j.pop(),p(),--T,d(),y=o=!1,e+=n,l()}function Z(){if(D){const t=z();if(t&&t.type==="symbol")return l()}h(),e+=",",l(),p(),d(),b=!0,o=!1,S=w==="["}function M(){h(),e+=":",y=!0,l(),S=!0}for(c=0;c<P;++c)switch(C=i[c],I=C.type,n=C.raw,I){case"literal":E();break;case"comment":x();break;case"symbol":switch(n){case"{":case"[":K();break;case"}":case"]":V();break;case",":Z();break;case":":M()}break;default:k=n.indexOf(`
4
5
  `)>=0}return e}m.print=N,Object.defineProperty(m,"__esModule",{value:!0})});
5
6
  //# sourceMappingURL=printer.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../lib/printer.js"],
4
- "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-printer', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintPrinter = {}))\n}(this, function (exports) {\n 'use strict'\n\n function noop () {}\n\n function isIdentifierName (value) {\n return /^[a-zA-Z$_][a-zA-Z0-9$_]*$/.test(value)\n }\n\n function concatenateTokens (tokens) {\n let outputString = ''\n const tokenCount = tokens.length\n let tokenIndex\n for (tokenIndex = 0; tokenIndex < tokenCount; ++tokenIndex) {\n outputString += tokens[tokenIndex].raw\n }\n return outputString\n }\n\n function print (tokens, options) {\n if (!(tokens?.length)) {\n throw new Error('JSON tokens missing.')\n }\n // Whitespace and comments are available only as raw token content.\n if (!(tokens[0]?.raw)) {\n throw new Error('JSON tokens lack raw values.')\n }\n\n if (!options) {\n // If no options, not even an empty object is passed, just concatenate\n // the raw tokens with neither minification, nor pretty-printing.\n return concatenateTokens(tokens)\n }\n\n let indentString = options.indent\n if (typeof indentString === 'number') {\n indentString = new Array(indentString + 1).join(' ')\n }\n // Setting the indent to an empty string enables pretty-printing too.\n // It will just insert line breaks without any indentation.\n const prettyPrint = indentString !== undefined\n const pruneComments = options.pruneComments\n const stripObjectKeys = options.stripObjectKeys\n const enforceDoubleQuotes = options.enforceDoubleQuotes\n const enforceSingleQuotes = options.enforceSingleQuotes\n const trimTrailingCommas = options.trimTrailingCommas\n\n let outputString = ''\n let foundLineBreak\n let addedLineBreak\n let needsLineBreak\n let addedSpace\n let needsSpace\n let indentLevel = 0\n const scopes = []\n let scopeType\n let isValue\n const tokenCount = tokens.length\n let tokenIndex\n let token\n let tokenType\n let tokenContent\n\n function peekAtNextToken () {\n let nextTokenIndex = tokenIndex\n let nextToken\n do {\n nextToken = tokens[++nextTokenIndex]\n } while (nextToken && (nextToken.type === 'whitespace' ||\n nextToken.type === 'comment'))\n return nextToken\n }\n\n let addIndent\n if (prettyPrint && indentString) {\n addIndent = function () {\n for (let i = 0; i < indentLevel; ++i) {\n outputString += indentString\n }\n }\n } else {\n addIndent = noop\n }\n\n let addLineBreak\n let addDelayedSpaceOrLineBreak\n if (prettyPrint) {\n addLineBreak = function () {\n outputString += '\\n'\n }\n\n addDelayedSpaceOrLineBreak = function () {\n // A line break is more important than a space.\n if (needsLineBreak) {\n addLineBreak()\n addIndent()\n } else if (needsSpace) {\n outputString += ' '\n }\n needsSpace = needsLineBreak = false\n }\n } else {\n addLineBreak = addDelayedSpaceOrLineBreak = noop\n }\n\n let addStandaloneComment\n let tryAddingInlineComment\n if (pruneComments) {\n addStandaloneComment = tryAddingInlineComment = noop\n } else {\n if (prettyPrint) {\n addStandaloneComment = function () {\n // If a comment is not appended to the end of a line, it will start\n // on a new line with the current indentation.\n if (!addedLineBreak && tokenIndex > 0) {\n addLineBreak()\n addIndent()\n }\n outputString += tokenContent\n foundLineBreak = false\n addedLineBreak = false\n // If a comment is not appended to the end of a line, it will take\n // the whole line and has to end by a line break.\n needsLineBreak = true\n }\n\n tryAddingInlineComment = function () {\n // This function is called after printing a non-line-break character.\n foundLineBreak = false\n addedLineBreak = false\n addedSpace = false\n\n // Start with the character after the just processed one.\n let tryTokenIndex = tokenIndex + 1\n\n function skipWhitespace () {\n let token = tokens[tryTokenIndex]\n if (token && token.type === 'whitespace') {\n foundLineBreak = token.raw.indexOf('\\n') >= 0\n token = tokens[++tryTokenIndex]\n }\n return token\n }\n\n const token = skipWhitespace()\n // If line break followed the previous token, leave the comment\n // to be handled by the next usual token processing.\n if (!foundLineBreak && token && token.type === 'comment') {\n if (needsLineBreak) {\n // If the previous non-whitespace token was ended by a line\n // break, retain it. Print the comment after the line break too.\n if (!addedLineBreak) {\n addLineBreak()\n addIndent()\n }\n } else {\n // If the previous non-whitespace token was not ended by a line\n // break, ensure that the comment is separated from it.\n if (!addedSpace) {\n outputString += ' '\n }\n }\n outputString += token.raw\n // Set the current token to the just processed comment.\n tokenIndex = tryTokenIndex++\n // Check the whitespace after the comment to give a hint\n // about the next whitespace to the further processing.\n skipWhitespace()\n if (foundLineBreak) {\n needsSpace = false\n needsLineBreak = true\n } else {\n needsSpace = true\n needsLineBreak = false\n }\n }\n }\n } else {\n // If all whitespace is omitted, convert single-line comments\n // to multi-line ones, which include a comment-closing token.\n addStandaloneComment = function () {\n if (tokenContent[1] === '/') {\n outputString += '/*'\n outputString += tokenContent.substr(2, tokenContent.length - 2)\n outputString += ' */'\n } else {\n outputString += tokenContent\n }\n }\n\n tryAddingInlineComment = noop\n }\n }\n\n function addLiteral () {\n addDelayedSpaceOrLineBreak()\n const tokenValue = token.value\n if (stripObjectKeys && scopeType === '{' && !isValue &&\n isIdentifierName(tokenValue)) {\n outputString += tokenValue\n } else if (typeof tokenValue === 'string') {\n if (enforceDoubleQuotes && tokenContent[0] !== '\"') {\n outputString += JSON.stringify(tokenValue)\n } else if (enforceSingleQuotes && tokenContent[0] !== '\\'') {\n outputString += `\\'${tokenValue.replace(/'/g, '\\\\\\'')}\\'`\n } else {\n outputString += tokenContent\n }\n } else {\n outputString += tokenContent\n }\n tryAddingInlineComment()\n }\n\n function openScope () {\n addDelayedSpaceOrLineBreak()\n scopes.push(scopeType)\n scopeType = tokenContent\n isValue = scopeType === '['\n outputString += tokenContent\n tryAddingInlineComment()\n ++indentLevel\n needsLineBreak = true\n }\n\n function closeScope () {\n scopeType = scopes.pop()\n addLineBreak()\n --indentLevel\n addIndent()\n needsSpace = needsLineBreak = false\n outputString += tokenContent\n tryAddingInlineComment()\n }\n\n function addComma () {\n if (trimTrailingCommas) {\n const nextToken = peekAtNextToken()\n if (nextToken && nextToken.type === 'symbol') {\n return tryAddingInlineComment()\n }\n }\n addDelayedSpaceOrLineBreak()\n outputString += ','\n tryAddingInlineComment()\n addLineBreak()\n addIndent()\n addedLineBreak = true\n needsLineBreak = false\n isValue = scopeType === '['\n }\n\n function addColon () {\n addDelayedSpaceOrLineBreak()\n outputString += ':'\n needsSpace = true\n tryAddingInlineComment()\n isValue = true\n }\n\n for (tokenIndex = 0; tokenIndex < tokenCount; ++tokenIndex) {\n token = tokens[tokenIndex]\n tokenType = token.type\n tokenContent = token.raw\n switch (tokenType) {\n case 'literal':\n addLiteral()\n break\n case 'comment':\n addStandaloneComment()\n break\n case 'symbol':\n switch (tokenContent) {\n case '{':\n case '[':\n openScope()\n break\n case '}':\n case ']':\n closeScope()\n break\n case ',':\n addComma()\n break\n case ':':\n addColon()\n }\n break\n default: // whitespace\n foundLineBreak = tokenContent.indexOf('\\n') >= 0\n }\n }\n\n return outputString\n }\n\n exports.print = print\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
- "mappings": "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",
6
- "names": ["global", "factory", "exports", "noop", "isIdentifierName", "value", "concatenateTokens", "tokens", "outputString", "tokenCount", "tokenIndex", "print", "options", "indentString", "prettyPrint", "pruneComments", "stripObjectKeys", "enforceDoubleQuotes", "enforceSingleQuotes", "trimTrailingCommas", "foundLineBreak", "addedLineBreak", "needsLineBreak", "addedSpace", "needsSpace", "indentLevel", "scopes", "scopeType", "isValue", "token", "tokenType", "tokenContent", "peekAtNextToken", "nextTokenIndex", "nextToken", "addIndent", "i", "addLineBreak", "addDelayedSpaceOrLineBreak", "addStandaloneComment", "tryAddingInlineComment", "tryTokenIndex", "skipWhitespace", "addLiteral", "tokenValue", "openScope", "closeScope", "addComma", "addColon"]
4
+ "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-printer', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintPrinter = {}))\n}(this, function (exports) {\n 'use strict'\n\n function noop () {}\n\n function isIdentifierName (value) {\n return /^[a-zA-Z$_][a-zA-Z0-9$_]*$/.test(value)\n }\n\n function concatenateTokens (tokens) {\n let outputString = ''\n const tokenCount = tokens.length\n let tokenIndex\n for (tokenIndex = 0; tokenIndex < tokenCount; ++tokenIndex) {\n outputString += tokens[tokenIndex].raw\n }\n return outputString\n }\n\n function print (tokens, options) {\n if (!(tokens?.length)) {\n throw new Error('JSON tokens missing.')\n }\n // Whitespace and comments are available only as raw token content.\n if (!(tokens[0]?.raw)) {\n throw new Error('JSON tokens lack raw values.')\n }\n\n if (!options) {\n // If no options, not even an empty object is passed, just concatenate\n // the raw tokens with neither minification, nor pretty-printing.\n return concatenateTokens(tokens)\n }\n\n let indentString = options.indent\n if (typeof indentString === 'number') {\n indentString = new Array(indentString + 1).join(' ')\n }\n // Setting the indent to an empty string enables pretty-printing too.\n // It will just insert line breaks without any indentation.\n const prettyPrint = indentString !== undefined\n const pruneComments = options.pruneComments\n const stripObjectKeys = options.stripObjectKeys\n const enforceDoubleQuotes = options.enforceDoubleQuotes\n const enforceSingleQuotes = options.enforceSingleQuotes\n const trimTrailingCommas = options.trimTrailingCommas\n const newLineChar = options.forceCrlf === true ? \"\\r\\n\" : \"\\n\"\n\n let outputString = ''\n let foundLineBreak\n let addedLineBreak\n let needsLineBreak\n let addedSpace\n let needsSpace\n let indentLevel = 0\n const scopes = []\n let scopeType\n let isValue\n const tokenCount = tokens.length\n let tokenIndex\n let token\n let tokenType\n let tokenContent\n\n function peekAtNextToken () {\n let nextTokenIndex = tokenIndex\n let nextToken\n do {\n nextToken = tokens[++nextTokenIndex]\n } while (nextToken && (nextToken.type === 'whitespace' ||\n nextToken.type === 'comment'))\n return nextToken\n }\n\n let addIndent\n if (prettyPrint && indentString) {\n addIndent = function () {\n for (let i = 0; i < indentLevel; ++i) {\n outputString += indentString\n }\n }\n } else {\n addIndent = noop\n }\n\n let addLineBreak\n let addDelayedSpaceOrLineBreak\n if (prettyPrint) {\n addLineBreak = function () {\n outputString += newLineChar\n }\n\n addDelayedSpaceOrLineBreak = function () {\n // A line break is more important than a space.\n if (needsLineBreak) {\n addLineBreak()\n addIndent()\n } else if (needsSpace) {\n outputString += ' '\n }\n needsSpace = needsLineBreak = false\n }\n } else {\n addLineBreak = addDelayedSpaceOrLineBreak = noop\n }\n\n let addStandaloneComment\n let tryAddingInlineComment\n if (pruneComments) {\n addStandaloneComment = tryAddingInlineComment = noop\n } else {\n if (prettyPrint) {\n addStandaloneComment = function () {\n // If a comment is not appended to the end of a line, it will start\n // on a new line with the current indentation.\n if (!addedLineBreak && tokenIndex > 0) {\n addLineBreak()\n addIndent()\n }\n outputString += tokenContent\n foundLineBreak = false\n addedLineBreak = false\n // If a comment is not appended to the end of a line, it will take\n // the whole line and has to end by a line break.\n needsLineBreak = true\n }\n\n tryAddingInlineComment = function () {\n // This function is called after printing a non-line-break character.\n foundLineBreak = false\n addedLineBreak = false\n addedSpace = false\n\n // Start with the character after the just processed one.\n let tryTokenIndex = tokenIndex + 1\n\n function skipWhitespace () {\n let token = tokens[tryTokenIndex]\n if (token && token.type === 'whitespace') {\n foundLineBreak = token.raw.indexOf('\\n') >= 0\n token = tokens[++tryTokenIndex]\n }\n return token\n }\n\n const token = skipWhitespace()\n // If line break followed the previous token, leave the comment\n // to be handled by the next usual token processing.\n if (!foundLineBreak && token && token.type === 'comment') {\n if (needsLineBreak) {\n // If the previous non-whitespace token was ended by a line\n // break, retain it. Print the comment after the line break too.\n if (!addedLineBreak) {\n addLineBreak()\n addIndent()\n }\n } else {\n // If the previous non-whitespace token was not ended by a line\n // break, ensure that the comment is separated from it.\n if (!addedSpace) {\n outputString += ' '\n }\n }\n outputString += token.raw\n // Set the current token to the just processed comment.\n tokenIndex = tryTokenIndex++\n // Check the whitespace after the comment to give a hint\n // about the next whitespace to the further processing.\n skipWhitespace()\n if (foundLineBreak) {\n needsSpace = false\n needsLineBreak = true\n } else {\n needsSpace = true\n needsLineBreak = false\n }\n }\n }\n } else {\n // If all whitespace is omitted, convert single-line comments\n // to multi-line ones, which include a comment-closing token.\n addStandaloneComment = function () {\n if (tokenContent[1] === '/') {\n outputString += '/*'\n outputString += tokenContent.substr(2, tokenContent.length - 2)\n outputString += ' */'\n } else {\n outputString += tokenContent\n }\n }\n\n tryAddingInlineComment = noop\n }\n }\n\n function addLiteral () {\n addDelayedSpaceOrLineBreak()\n const tokenValue = token.value\n if (stripObjectKeys && scopeType === '{' && !isValue &&\n isIdentifierName(tokenValue)) {\n outputString += tokenValue\n } else if (typeof tokenValue === 'string') {\n if (enforceDoubleQuotes && tokenContent[0] !== '\"') {\n outputString += JSON.stringify(tokenValue)\n } else if (enforceSingleQuotes && tokenContent[0] !== '\\'') {\n outputString += `'${tokenValue.replace(/'/g, '\\\\\\'')}'`\n } else {\n outputString += tokenContent\n }\n } else {\n outputString += tokenContent\n }\n tryAddingInlineComment()\n }\n\n function openScope () {\n addDelayedSpaceOrLineBreak()\n scopes.push(scopeType)\n scopeType = tokenContent\n isValue = scopeType === '['\n outputString += tokenContent\n tryAddingInlineComment()\n ++indentLevel\n needsLineBreak = true\n }\n\n function closeScope () {\n scopeType = scopes.pop()\n addLineBreak()\n --indentLevel\n addIndent()\n needsSpace = needsLineBreak = false\n outputString += tokenContent\n tryAddingInlineComment()\n }\n\n function addComma () {\n if (trimTrailingCommas) {\n const nextToken = peekAtNextToken()\n if (nextToken && nextToken.type === 'symbol') {\n return tryAddingInlineComment()\n }\n }\n addDelayedSpaceOrLineBreak()\n outputString += ','\n tryAddingInlineComment()\n addLineBreak()\n addIndent()\n addedLineBreak = true\n needsLineBreak = false\n isValue = scopeType === '['\n }\n\n function addColon () {\n addDelayedSpaceOrLineBreak()\n outputString += ':'\n needsSpace = true\n tryAddingInlineComment()\n isValue = true\n }\n\n for (tokenIndex = 0; tokenIndex < tokenCount; ++tokenIndex) {\n token = tokens[tokenIndex]\n tokenType = token.type\n tokenContent = token.raw\n switch (tokenType) {\n case 'literal':\n addLiteral()\n break\n case 'comment':\n addStandaloneComment()\n break\n case 'symbol':\n switch (tokenContent) {\n case '{':\n case '[':\n openScope()\n break\n case '}':\n case ']':\n closeScope()\n break\n case ',':\n addComma()\n break\n case ':':\n addColon()\n }\n break\n default: // whitespace\n foundLineBreak = tokenContent.indexOf('\\n') >= 0\n }\n }\n\n return outputString\n }\n\n exports.print = print\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
+ "mappings": "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",
6
+ "names": ["global", "factory", "exports", "noop", "isIdentifierName", "value", "concatenateTokens", "tokens", "outputString", "tokenCount", "tokenIndex", "print", "options", "indentString", "prettyPrint", "pruneComments", "stripObjectKeys", "enforceDoubleQuotes", "enforceSingleQuotes", "trimTrailingCommas", "newLineChar", "foundLineBreak", "addedLineBreak", "needsLineBreak", "addedSpace", "needsSpace", "indentLevel", "scopes", "scopeType", "isValue", "token", "tokenType", "tokenContent", "peekAtNextToken", "nextTokenIndex", "nextToken", "addIndent", "i", "addLineBreak", "addDelayedSpaceOrLineBreak", "addStandaloneComment", "tryAddingInlineComment", "tryTokenIndex", "skipWhitespace", "addLiteral", "tokenValue", "openScope", "closeScope", "addComma", "addColon"]
7
7
  }
package/web/sorter.min.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(o,i){typeof exports=="object"&&typeof module<"u"?i(exports):typeof define=="function"&&define.amd?define("jsonlint-sorter",["exports"],i):(o=o||self,i(o.jsonlintSorter={}))})(this,function(o){"use strict";const i=Object.prototype.hasOwnProperty;function p(e,{ignoreCase:u,locale:f,caseFirst:c,numeric:d}={}){if(Array.isArray(e))return e.map(p);if(Object.prototype.toString.call(e)!=="[object Object]")return e;const j={};let t;const n=[];for(t in e)i.call(e,t)&&n.push(t);if(f||c||d){f==="default"&&(f=void 0);const r={caseFirst:c,numeric:d};u&&(r.sensitivity="accent"),n.sort((s,y)=>s.localeCompare(y,f,r))}else u?n.sort((r,s)=>(r=r.toLowerCase(),s=s.toLowerCase(),r<s?-1:r>s?1:0)):n.sort();for(t=0;t<n.length;t++)j[n[t]]=p(e[n[t]]);return j}o.sortObject=p,Object.defineProperty(o,"__esModule",{value:!0})});
1
+ (function(o,i){typeof exports=="object"&&typeof module<"u"?i(exports):typeof define=="function"&&define.amd?define("jsonlint-sorter",["exports"],i):(o=o||self,i(o.jsonlintSorter={}))})(this,function(o){"use strict";const i=Object.hasOwn,y=Object.prototype.toString;function u(e,{ignoreCase:c,locale:f,caseFirst:d,numeric:p}={}){if(Array.isArray(e))return e.map(u);if(y.call(e)!=="[object Object]")return e;const j={};let t;const n=[];for(t in e)i(e,t)&&n.push(t);if(f||d||p){f==="default"&&(f=void 0);const r={caseFirst:d,numeric:p};c&&(r.sensitivity="accent"),n.sort((s,O)=>s.localeCompare(O,f,r))}else c?n.sort((r,s)=>(r=r.toLowerCase(),s=s.toLowerCase(),r<s?-1:r>s?1:0)):n.sort();for(t=0;t<n.length;t++)j[n[t]]=u(e[n[t]]);return j}o.sortObject=u,Object.defineProperty(o,"__esModule",{value:!0})});
2
2
  //# sourceMappingURL=sorter.min.js.map