@prantlf/jsonlint 14.0.3 → 14.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.
@@ -1,6 +1,6 @@
1
- (function(i,n){typeof exports=="object"&&typeof module<"u"?n(exports):typeof define=="function"&&define.amd?define("jsonlint-formatter",["exports"],n):(i=i||self,n(i.jsonlintFormatter={}))})(this,function(i){"use strict";function n(s,a){return new Array(a+1).join(s)}function l(s,a){let f=0,u=0;const o=a!==void 0?typeof a=="number"?new Array(a+1).join(" "):a:" ";let e="",c=0,r,t;for(f=0,u=s.length;f<u;f+=1)switch(t=s.charAt(f),t){case"{":case"[":r?e+=t:(e+=t+`
2
- `+n(o,c+1),c+=1);break;case"}":case"]":r?e+=t:(c-=1,e+=`
3
- `+n(o,c)+t);break;case",":r?e+=t:e+=`,
4
- `+n(o,c);break;case":":r?e+=t:e+=": ";break;case" ":case`
1
+ (function(i,n){typeof exports=="object"&&typeof module<"u"?n(exports):typeof define=="function"&&define.amd?define("jsonlint-formatter",["exports"],n):(i=i||self,n(i.jsonlintFormatter={}))})(this,function(i){"use strict";function n(s,a){return new Array(a+1).join(s)}function l(s,a){let f=0,u=0;const o=a!==void 0?typeof a=="number"?new Array(a+1).join(" "):a:" ";let e="",c=0,r,t;for(f=0,u=s.length;f<u;f+=1)switch(t=s.charAt(f),t){case"{":case"[":r?e+=t:(e+=`${t}
2
+ ${n(o,c+1)}`,c+=1);break;case"}":case"]":r?e+=t:(c-=1,e+=`
3
+ ${n(o,c)}${t}`);break;case",":r?e+=t:e+=`,
4
+ ${n(o,c)}`;break;case":":r?e+=t:e+=": ";break;case" ":case`
5
5
  `:case" ":r&&(e+=t);break;case'"':f>0&&s.charAt(f-1)!=="\\"&&(r=!r),e+=t;break;default:e+=t;break}return e}i.format=l,Object.defineProperty(i,"__esModule",{value:!0})});
6
6
  //# sourceMappingURL=formatter.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../lib/formatter.js"],
4
- "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-formatter', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintFormatter = {}))\n}(this, function (exports) {\n 'use strict'\n\n /**\n * Manual formatter taken straight from https://github.com/umbrae/jsonlintdotcom\n *\n * jsl.format - Provide json reformatting in a character-by-character approach,\n * so that even invalid JSON may be reformatted (to the best of its ability).\n *\n */\n\n function repeat (s, count) {\n return new Array(count + 1).join(s)\n }\n\n function format (json, indent) {\n let i = 0\n let length = 0\n const indentString = indent !== undefined\n ? typeof indent === 'number'\n ? new Array(indent + 1).join(' ')\n : indent\n : ' '\n let outputString = ''\n let indentLevel = 0\n let inString\n let currentChar\n\n for (i = 0, length = json.length; i < length; i += 1) {\n currentChar = json.charAt(i)\n switch (currentChar) {\n case '{':\n case '[':\n if (!inString) {\n outputString += currentChar + '\\n' + repeat(indentString, indentLevel + 1)\n indentLevel += 1\n } else {\n outputString += currentChar\n }\n break\n case '}':\n case ']':\n if (!inString) {\n indentLevel -= 1\n outputString += '\\n' + repeat(indentString, indentLevel) + currentChar\n } else {\n outputString += currentChar\n }\n break\n case ',':\n if (!inString) {\n outputString += ',\\n' + repeat(indentString, indentLevel)\n } else {\n outputString += currentChar\n }\n break\n case ':':\n if (!inString) {\n outputString += ': '\n } else {\n outputString += currentChar\n }\n break\n case ' ':\n case '\\n':\n case '\\t':\n if (inString) {\n outputString += currentChar\n }\n break\n case '\"':\n if (i > 0 && json.charAt(i - 1) !== '\\\\') {\n inString = !inString\n }\n outputString += currentChar\n break\n default:\n outputString += currentChar\n break\n }\n }\n\n return outputString\n }\n\n exports.format = format\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
- "mappings": "CAAC,SAAUA,EAAQC,EAAS,CAC1B,OAAO,SAAY,UAAY,OAAO,OAAW,IAAcA,EAAQ,OAAO,EAC1E,OAAO,QAAW,YAAc,OAAO,IAAM,OAAO,qBAAsB,CAAC,SAAS,EAAGA,CAAO,GAC3FD,EAASA,GAAU,KAAMC,EAAQD,EAAO,kBAAoB,CAAC,CAAC,EACvE,GAAE,KAAM,SAAUE,EAAS,CACzB,aAUA,SAASC,EAAQ,EAAGC,EAAO,CACzB,OAAO,IAAI,MAAMA,EAAQ,CAAC,EAAE,KAAK,CAAC,CACpC,CAEA,SAASC,EAAQC,EAAMC,EAAQ,CAC7B,IAAIC,EAAI,EACJC,EAAS,EACb,MAAMC,EAAeH,IAAW,OAC5B,OAAOA,GAAW,SAChB,IAAI,MAAMA,EAAS,CAAC,EAAE,KAAK,GAAG,EAC9BA,EACF,KACJ,IAAII,EAAe,GACfC,EAAc,EACdC,EACAC,EAEJ,IAAKN,EAAI,EAAGC,EAASH,EAAK,OAAQE,EAAIC,EAAQD,GAAK,EAEjD,OADAM,EAAcR,EAAK,OAAOE,CAAC,EACnBM,EAAa,CACnB,IAAK,IACL,IAAK,IACED,EAIHF,GAAgBG,GAHhBH,GAAgBG,EAAc;AAAA,EAAOX,EAAOO,EAAcE,EAAc,CAAC,EACzEA,GAAe,GAIjB,MACF,IAAK,IACL,IAAK,IACEC,EAIHF,GAAgBG,GAHhBF,GAAe,EACfD,GAAgB;AAAA,EAAOR,EAAOO,EAAcE,CAAW,EAAIE,GAI7D,MACF,IAAK,IACED,EAGHF,GAAgBG,EAFhBH,GAAgB;AAAA,EAAQR,EAAOO,EAAcE,CAAW,EAI1D,MACF,IAAK,IACEC,EAGHF,GAAgBG,EAFhBH,GAAgB,KAIlB,MACF,IAAK,IACL,IAAK;AAAA,EACL,IAAK,IACCE,IACFF,GAAgBG,GAElB,MACF,IAAK,IACCN,EAAI,GAAKF,EAAK,OAAOE,EAAI,CAAC,IAAM,OAClCK,EAAW,CAACA,GAEdF,GAAgBG,EAChB,MACF,QACEH,GAAgBG,EAChB,KACJ,CAGF,OAAOH,CACT,CAEAT,EAAQ,OAASG,EAEjB,OAAO,eAAeH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAC9D,CAAC",
4
+ "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-formatter', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintFormatter = {}))\n}(this, function (exports) {\n 'use strict'\n\n /**\n * Manual formatter taken straight from https://github.com/umbrae/jsonlintdotcom\n *\n * jsl.format - Provide json reformatting in a character-by-character approach,\n * so that even invalid JSON may be reformatted (to the best of its ability).\n *\n */\n\n function repeat (s, count) {\n return new Array(count + 1).join(s)\n }\n\n function format (json, indent) {\n let i = 0\n let length = 0\n const indentString = indent !== undefined\n ? typeof indent === 'number'\n ? new Array(indent + 1).join(' ')\n : indent\n : ' '\n let outputString = ''\n let indentLevel = 0\n let inString\n let currentChar\n\n for (i = 0, length = json.length; i < length; i += 1) {\n currentChar = json.charAt(i)\n switch (currentChar) {\n case '{':\n case '[':\n if (!inString) {\n outputString += `${currentChar}\\n${repeat(indentString, indentLevel + 1)}`\n indentLevel += 1\n } else {\n outputString += currentChar\n }\n break\n case '}':\n case ']':\n if (!inString) {\n indentLevel -= 1\n outputString += `\\n${repeat(indentString, indentLevel)}${currentChar}`\n } else {\n outputString += currentChar\n }\n break\n case ',':\n if (!inString) {\n outputString += `,\\n${repeat(indentString, indentLevel)}`\n } else {\n outputString += currentChar\n }\n break\n case ':':\n if (!inString) {\n outputString += ': '\n } else {\n outputString += currentChar\n }\n break\n case ' ':\n case '\\n':\n case '\\t':\n if (inString) {\n outputString += currentChar\n }\n break\n case '\"':\n if (i > 0 && json.charAt(i - 1) !== '\\\\') {\n inString = !inString\n }\n outputString += currentChar\n break\n default:\n outputString += currentChar\n break\n }\n }\n\n return outputString\n }\n\n exports.format = format\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}))\n"],
5
+ "mappings": "CAAC,SAAUA,EAAQC,EAAS,CAC1B,OAAO,SAAY,UAAY,OAAO,OAAW,IAAcA,EAAQ,OAAO,EAC1E,OAAO,QAAW,YAAc,OAAO,IAAM,OAAO,qBAAsB,CAAC,SAAS,EAAGA,CAAO,GAC3FD,EAASA,GAAU,KAAMC,EAAQD,EAAO,kBAAoB,CAAC,CAAC,EACvE,GAAE,KAAM,SAAUE,EAAS,CACzB,aAUA,SAASC,EAAQ,EAAGC,EAAO,CACzB,OAAO,IAAI,MAAMA,EAAQ,CAAC,EAAE,KAAK,CAAC,CACpC,CAEA,SAASC,EAAQC,EAAMC,EAAQ,CAC7B,IAAIC,EAAI,EACJC,EAAS,EACb,MAAMC,EAAeH,IAAW,OAC5B,OAAOA,GAAW,SAChB,IAAI,MAAMA,EAAS,CAAC,EAAE,KAAK,GAAG,EAC9BA,EACF,KACJ,IAAII,EAAe,GACfC,EAAc,EACdC,EACAC,EAEJ,IAAKN,EAAI,EAAGC,EAASH,EAAK,OAAQE,EAAIC,EAAQD,GAAK,EAEjD,OADAM,EAAcR,EAAK,OAAOE,CAAC,EACnBM,EAAa,CACnB,IAAK,IACL,IAAK,IACED,EAIHF,GAAgBG,GAHhBH,GAAgB,GAAGG,CAAW;AAAA,EAAKX,EAAOO,EAAcE,EAAc,CAAC,CAAC,GACxEA,GAAe,GAIjB,MACF,IAAK,IACL,IAAK,IACEC,EAIHF,GAAgBG,GAHhBF,GAAe,EACfD,GAAgB;AAAA,EAAKR,EAAOO,EAAcE,CAAW,CAAC,GAAGE,CAAW,IAItE,MACF,IAAK,IACED,EAGHF,GAAgBG,EAFhBH,GAAgB;AAAA,EAAMR,EAAOO,EAAcE,CAAW,CAAC,GAIzD,MACF,IAAK,IACEC,EAGHF,GAAgBG,EAFhBH,GAAgB,KAIlB,MACF,IAAK,IACL,IAAK;AAAA,EACL,IAAK,IACCE,IACFF,GAAgBG,GAElB,MACF,IAAK,IACCN,EAAI,GAAKF,EAAK,OAAOE,EAAI,CAAC,IAAM,OAClCK,EAAW,CAACA,GAEdF,GAAgBG,EAChB,MACF,QACEH,GAAgBG,EAChB,KACJ,CAGF,OAAOH,CACT,CAEAT,EAAQ,OAASG,EAEjB,OAAO,eAAeH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAC9D,CAAC",
6
6
  "names": ["global", "factory", "exports", "repeat", "count", "format", "json", "indent", "i", "length", "indentString", "outputString", "indentLevel", "inString", "currentChar"]
7
7
  }
package/web/jsonlint.html CHANGED
@@ -134,6 +134,14 @@
134
134
  <input type="checkbox" id="sort-object-keys">
135
135
  <label for="sort-object-keys">Sort object keys</label>
136
136
  </div>
137
+ <div>
138
+ <input type="checkbox" id="sort-object-keys-nocase">
139
+ <label for="sort-object-keys-nocase">Sort object keys case-insensitively</label>
140
+ </div>
141
+ <div>
142
+ <input type="checkbox" id="sort-object-keys-numeric">
143
+ <label for="sort-object-keys-numeric">Sort object keys recognising numbers</label>
144
+ </div>
137
145
  <div style="display: none">
138
146
  <input type="checkbox" id="prune-comments">
139
147
  <label for="prune-comments">Omit comments</label>
@@ -248,7 +256,10 @@
248
256
 
249
257
  function correctFormatting (selected, other) {
250
258
  ensureOneSelected(selected, other)
251
- var forFormat = ['sort-object-keys']
259
+ var forFormat = [
260
+ 'sort-object-keys', 'sort-object-keys-nocase',
261
+ 'sort-object-keys-numeric'
262
+ ]
252
263
  var forPrettyPrint = [
253
264
  'prune-comments', 'strip-object-keys', 'enforce-double-quotes',
254
265
  'enforce-single-quotes', 'trim-trailing-commas'
@@ -311,8 +322,21 @@
311
322
  }
312
323
 
313
324
  function formatOutput (parsed) {
325
+ const sortOptions = {}
326
+ let sort
314
327
  if (document.getElementById('sort-object-keys').checked) {
315
- parsed = jsonlintSorter.sortObject(parsed)
328
+ sort = true
329
+ }
330
+ if (document.getElementById('sort-object-keys-nocase').checked) {
331
+ sortOptions.ignoreCase = true
332
+ sort = true
333
+ }
334
+ if (document.getElementById('sort-object-keys-numeric').checked) {
335
+ sortOptions.numeric = true
336
+ sort = true
337
+ }
338
+ if (sort) {
339
+ parsed = jsonlintSorter.sortObject(parsed, sortOptions)
316
340
  }
317
341
  return JSON.stringify(parsed, null, ' ')
318
342
  }
@@ -338,6 +362,7 @@
338
362
  ignoreComments: document.getElementById('comments').checked ||
339
363
  mode === 'cjson' || mode === 'json5',
340
364
  ignoreTrailingCommas: document.getElementById('trailing-commas').checked ||
365
+ document.getElementById('trim-trailing-commas').checked ||
341
366
  mode === 'json5',
342
367
  allowSingleQuotedStrings: document.getElementById('single-quoted-strings').checked ||
343
368
  mode === 'json5',
@@ -1,12 +1,12 @@
1
- (function(a,E){typeof exports=="object"&&typeof module<"u"?E(exports):typeof define=="function"&&define.amd?define("jsonlint",["exports"],E):(a=a||self,E(a.jsonlint={}))})(this,function(a){"use strict";const E={isWhiteSpace:function(e){return e===" "||e==="\xA0"||e==="\uFEFF"||e>=" "&&e<="\r"||e==="\u1680"||e>="\u2000"&&e<="\u200A"||e==="\u2028"||e==="\u2029"||e==="\u202F"||e==="\u205F"||e==="\u3000"},isWhiteSpaceJSON:function(e){return e===" "||e===" "||e===`
1
+ (function(l,E){typeof exports=="object"&&typeof module<"u"?E(exports):typeof define=="function"&&define.amd?define("jsonlint",["exports"],E):(l=l||self,E(l.jsonlint={}))})(this,function(l){"use strict";const E={isWhiteSpace:function(e){return e===" "||e==="\xA0"||e==="\uFEFF"||e>=" "&&e<="\r"||e==="\u1680"||e>="\u2000"&&e<="\u200A"||e==="\u2028"||e==="\u2029"||e==="\u202F"||e==="\u205F"||e==="\u3000"},isWhiteSpaceJSON:function(e){return e===" "||e===" "||e===`
2
2
  `||e==="\r"},isLineTerminator:function(e){return e===`
3
3
  `||e==="\r"||e==="\u2028"||e==="\u2029"},isLineTerminatorJSON:function(e){return e===`
4
- `||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&E.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&E.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function k(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function N(u){return u>="0"&&u<="7"}function y(u){return u>="0"&&u<="9"}function H(u){return u.charCodeAt(0)===65279}const L={"'":"'",'"':'"',"\\":"\\",b:"\b",f:"\f",n:`
5
- `,r:"\r",t:" ",v:"\v","/":"/"};function M(u,e){(typeof u!="string"||!(u instanceof String))&&(u=String(u));const r=e.mode==="json5",D=e.ignoreBOM,B=e.ignoreComments||e.mode==="cjson"||r,m=e.ignoreTrailingCommas||r,d=e.allowSingleQuotedStrings||r,h=e.allowDuplicateObjectKeys,g=e.reviver,U=e.tokenize,cu=e.rawTokens,fu=e.tokenLocations,$=e.tokenPaths,w=r?E.isLineTerminator:E.isLineTerminatorJSON,lu=r?E.isWhiteSpace:E.isWhiteSpaceJSON,f=u.length;let O=0,P=0,A=0;const K=[];let l,C,S;if(U){let t=null,n,F;l=function(){if(t!==null)throw Error("internal error, token overlap");n=O+1,F=A-P+1,t=A},C=function(i,o){if(t!==A){const c={type:i};cu&&(c.raw=u.substr(t,A-t)),o!==void 0&&(c.value=o),fu&&(c.location={start:{column:F,line:n,offset:t}}),$&&(c.path=S.slice()),K.push(c)}return t=null,o},$&&(S=[])}function Eu(){let t;return A<f?t="Unexpected token "+JSON.stringify(u[A]):t="Unexpected end of input",t}function au(t){const n=A-P+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 s(t){throw t||(t=Eu()),au(t)}function j(t){t==="\r"&&u[A]===`
6
- `&&++A,P=A,++O}function J(){if(A<f){l&&l();const t=u[A++];if(t==='"'||t==="'"&&d){const n=V(t);return C&&C("literal",n),n}else{if(t==="{")return C&&C("symbol","{"),x();if(t==="[")return C&&C("symbol","["),_();if(t==="-"||t==="."||y(t)||r&&(t==="+"||t==="I"||t==="N")){const n=Q();return C&&C("literal",n),n}else{if(t==="n")return p("null"),C&&C("literal",null),null;if(t==="t")return p("true"),C&&C("literal",!0),!0;if(t==="f")return p("false"),C&&C("literal",!1),!1;--A,C&&C();return}}}}function du(){let t;if(A<f){l&&l();const n=u[A++];if(n==='"'||n==="'"&&d){const F=V(n);return C&&C("literal",F),F}else{if(n==="{")return C&&C("symbol","{"),x();if(n==="[")return C&&C("symbol","["),_();if(n==="."||y(n)){const F=Q(!0);return C&&C("literal",F),F}else if(r&&E.isIdentifierStart(n)||n==="\\"&&u[A]==="u"){const F=A-1;if(t=gu(),t===void 0){A=F,C&&C();return}else return C&&C("literal",t),t}else{--A,C&&C();return}}}}function mu(){H(u)&&(l&&l(),++A,C&&C("bom"))}function b(){let t;function n(){t||(t=!0,--A,l(),++A)}function F(){t&&(t=!1,C("whitespace"))}for(;A<f;){const i=u[A++];if(w(i))l&&n(),j(i);else if(lu(i))l&&n();else if(i==="/"&&B&&(u[A]==="/"||u[A]==="*"))l&&(--A,F(),l(),++A),hu(u[A++]==="*"),C&&C("comment");else{--A;break}}C&&F()}function hu(t){for(;A<f;){const n=u[A++];if(w(n)){if(!t){--A;return}j(n)}else if(n==="*"&&t&&u[A]==="/"){++A;return}}t&&s("Unclosed multiline comment")}function p(t){const n=A;for(let F=1,i=t.length;F<i;++F)(A>=f||t[F]!==u[A])&&(A=n-1,s()),++A}function x(){const t={},n={};let F=!1;for(;A<f;){b();const i=du();h===!1&&t[i]&&s('Duplicate key: "'+i+'"'),b(),l&&l();let o=u[A++];if(C&&C("symbol",o),o==="}"&&i===void 0)return!m&&F&&(--A,s("Trailing comma in object")),t;if(o===":"&&i!==void 0){b(),S&&S.push(i);let c=J();if(S&&S.pop(),c===void 0&&s('No value found for key "'+i+'"'),typeof i!="string"&&(!r||typeof i!="number")&&s('Wrong key type: "'+i+'"'),i in n||n[i]!=null||(g&&(c=g(i,c)),c!==void 0&&(F=!0,t[i]=c)),b(),l&&l(),o=u[A++],C&&C("symbol",o),o===",")continue;if(o==="}")return t;s()}else--A,s()}s()}function _(){const t=[];for(;A<f;){b(),S&&S.push(t.length);let n=J();S&&S.pop(),b(),l&&l();const F=u[A++];if(C&&C("symbol",F),n!==void 0&&(g&&(n=g(String(t.length),n)),n===void 0?(++t.length,n=!0):t.push(n)),F===",")n===void 0&&s("Elisions are not supported");else{if(F==="]")return!m&&n===void 0&&t.length&&(--A,s("Trailing comma in array")),t;--A,s()}}}function Q(){--A;let t=A,n=u[A++];const F=function(i){const o=u.substr(t,A-t);let c;if(i?c=parseInt(o.replace(/^0o?/,""),8):c=Number(o),Number.isNaN(c))--A,s('Bad numeric literal - "'+u.substr(t,A-t+1)+'"');else if(!r&&!o.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i))--A,s('Non-json numeric literal - "'+u.substr(t,A-t+1)+'"');else return c};if((n==="-"||n==="+"&&r)&&(n=u[A++]),n==="N"&&r)return p("NaN"),NaN;if(n==="I"&&r)return p("Infinity"),F();if(n>="1"&&n<="9"){for(;A<f&&y(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||N(n),o=n==="x"||n==="X";if(r&&(i||o)){for(;A<f&&(o?k:N)(u[A]);)++A;let c=1;return u[t]==="-"?(c=-1,++t):u[t]==="+"&&++t,c*F(i)}}if(n==="."){for(;A<f&&y(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<f&&y(u[A]);)++A;n=u[A++]}return--A,F()}function gu(){--A;let t="";for(;A<f;){let n=u[A++];if(n==="\\"&&u[A]==="u"&&k(u[A+1])&&k(u[A+2])&&k(u[A+3])&&k(u[A+4])&&(n=String.fromCharCode(parseInt(u.substr(A+1,4),16)),A+=5),t.length)if(E.isIdentifierPart(n))t+=n;else return--A,t;else if(E.isIdentifierStart(n))t+=n;else return}s()}function V(t){let n="";for(;A<f;){let F=u[A++];if(F===t)return n;if(F==="\\")if(A>=f&&s(),F=u[A++],L[F]&&(r||F!=="v"&&(F!=="'"||d)))n+=L[F];else if(r&&w(F))j(F);else if(F==="u"||F==="x"&&r){const i=F==="u"?4:2;for(let o=0;o<i;++o)A>=f&&s(),k(u[A])||s("Bad escape sequence"),A++;n+=String.fromCharCode(parseInt(u.substr(A-i,i),16))}else if(r&&N(F)){let i;F<"4"&&N(u[A])&&N(u[A+1])?i=3:N(u[A])?i=2:i=1,A+=i-1,n+=String.fromCharCode(parseInt(u.substr(A-i,i),8))}else r?n+=F:(--A,s());else w(F)?s():(!r&&F.charCodeAt(0)<32&&(--A,s("Unexpected control character")),n+=F)}s()}D&&mu(),b();let v=J();if(v!==void 0||A<f){if(b(),A>=f)return g&&(v=g("",v)),U?K:v;s()}else s(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 R(u,e){e||(e={});const r=e.tokenize;e.tokenize=!0;const D=M(u,e);return e.tokenize=r,D}function Z(u){return u.toString().replace(/~/g,"~0").replace(/\//g,"~1")}function q(u){return u.length===0?"":"/"+u.map(Z).join("/")}function G(u){return u.replace(/~1/g,"/").replace(/~0/g,"~")}function X(u){if(u==="")return[];if(u[0]!=="/")throw new Error('Missing initial "/" in the reference');return u.substr(1).split("/").map(G)}function W(u,e){const r=u.substr(0,e).split(/\r?\n/),D=r.length,B=r[D-1].length+1;return{line:D,column:B}}function Y(u,e,r){if(e>1){const D=/\r?\n/g;let B;for(;B=D.exec(u);)if(--e===1)return B.index+r}return r-1}function uu(u,e){const r=Math.max(0,e-20),D=u.substr(r,e-r);return(e>20?"...":"")+D.replace(/\r?\n/g,"")}function eu(u,e){let r=Math.max(0,e-20);r+=e-r;const D=u.length-r;return u.substr(r,Math.min(20,D)).replace(/\r?\n/g,"")+(D>20?"...":"")}function Au(u,e){const r=uu(u,e),D=eu(u,e),B=new Array(r.length+1).join("-")+"^";return{excerpt:r+D,pointer:B}}function tu(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 nu(u,e){const r=/ in JSON at position (\d+)$/.exec(e);if(r){const D=+r[1],B=W(u,D);return{offset:D,line:B.line,column:B.column,reason:e.substr(0,r.index)}}}function ru(u,e){const r=/ end of JSON input$/.exec(e);if(r){const D=u.length,B=W(u,D);return{offset:D,line:B.line,column:B.column,reason:e.substr(0,r.index+4)}}}function Fu(u,e){const r=/ at line (\d+) column (\d+) of the JSON data$/.exec(e);if(r){const D=+r[1],B=+r[2];return{offset:Y(u,D,B),line:D,column:B,reason:e.substr(0,r.index)}}}function I(u,e,r,D,B){const m=Au(e,r),d=m.excerpt;let h,g;return typeof D=="number"?(g=m.pointer,h="Parse error on line "+D+", column "+B+`:
7
- `+d+`
8
- `+g+`
9
- `+u):h=`Parse error in JSON input:
10
- `+d+`
11
- `+u,{message:h,excerpt:d,pointer:g}}function iu(u,e){let r=tu(e);const D=nu(u,r)||ru(u,r)||Fu(u,r);let B,m,d;D?(B=D.offset,m=D.line,d=D.column,r=D.reason):B=0,e.reason=r;const h=I(r,u,B,m,d);return e.message=h.message,e.excerpt=h.excerpt,h.pointer&&(e.pointer=h.pointer,e.location={start:{column:d,line:m,offset:B}}),e}function z(u,e){try{return JSON.parse(u,e)}catch(r){const D=iu(u,r);if(r.location)throw D;return T(u,e)}}const Cu=typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor),Du=typeof process<"u"&&process.version.startsWith("v4.");function Bu(u){return u.ignoreBOM||u.ignoreComments||u.ignoreTrailingCommas||u.allowSingleQuotedStrings||u.allowDuplicateObjectKeys===!1||u.mode==="cjson"||u.mode==="json5"||Cu||Du}function su(u){if(typeof u=="function")return u;if(u)return u.reviver}function ou(u,e){return e||(e={}),Bu(e)?T(u,e):z(u,su(e))}a.parse=ou,a.tokenize=R,a.pathToPointer=q,a.pointerToPath=X,a.parseNative=z,a.parseCustom=T,a.getErrorTexts=I,Object.defineProperty(a,"__esModule",{value:!0})});
4
+ `||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&E.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&E.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function b(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function N(u){return u>="0"&&u<="7"}function k(u){return u>="0"&&u<="9"}function H(u){return u.charCodeAt(0)===65279}const J={"'":"'",'"':'"',"\\":"\\",b:"\b",f:"\f",n:`
5
+ `,r:"\r",t:" ",v:"\v","/":"/"},R=Object.prototype.hasOwnProperty;function L(u,e){(typeof u!="string"||!(u instanceof String))&&(u=String(u));const r=e.mode==="json5",C=e.ignoreBOM,D=e.ignoreComments||e.mode==="cjson"||r,m=e.ignoreTrailingCommas||r,d=e.allowSingleQuotedStrings||r,h=e.allowDuplicateObjectKeys,g=e.reviver,z=e.tokenize,fu=e.rawTokens,Eu=e.tokenLocations,U=e.tokenPaths,w=r?E.isLineTerminator:E.isLineTerminatorJSON,lu=r?E.isWhiteSpace:E.isWhiteSpaceJSON,f=u.length;let p=0,I=0,A=0;const K=[];let a,o,y;if(z){let t=null,n,F;a=function(){if(t!==null)throw Error("internal error, token overlap");n=p+1,F=A-I+1,t=A},o=function(i,s){if(t!==A){const c={type:i};fu&&(c.raw=u.substr(t,A-t)),s!==void 0&&(c.value=s),Eu&&(c.location={start:{column:F,line:n,offset:t}}),U&&(c.path=y.slice()),K.push(c)}return t=null,s},U&&(y=[])}function au(){let t;return A<f?t=`Unexpected token ${JSON.stringify(u[A])}`:t="Unexpected end of input",t}function du(t){const n=A-I+1;++p;const F=P(t,u,A,p,n),i=SyntaxError(F.message);return i.reason=t,i.excerpt=F.excerpt,i.pointer=F.pointer,i.location={start:{column:n,line:p,offset:A}},i}function B(t){throw t||(t=au()),du(t)}function $(t){t==="\r"&&u[A]===`
6
+ `&&++A,I=A,++p}function j(){if(A<f){a?.();const t=u[A++];if(t==='"'||t==="'"&&d){const n=V(t);return o?.("literal",n),n}if(t==="{")return o?.("symbol","{"),x();if(t==="[")return o?.("symbol","["),_();if(t==="-"||t==="."||k(t)||r&&(t==="+"||t==="I"||t==="N")){const n=Q();return o?.("literal",n),n}if(t==="n")return O("null"),o?.("literal",null),null;if(t==="t")return O("true"),o?.("literal",!0),!0;if(t==="f")return O("false"),o?.("literal",!1),!1;--A,o?.();return}}function mu(){let t;if(A<f){a?.();const n=u[A++];if(n==='"'||n==="'"&&d){const F=V(n);return o?.("literal",F),F}if(n==="{")return o?.("symbol","{"),x();if(n==="[")return o?.("symbol","["),_();if(n==="."||k(n)){const F=Q(!0);return o?.("literal",F),F}if(r&&E.isIdentifierStart(n)||n==="\\"&&u[A]==="u"){const F=A-1;if(t=Su(),t===void 0){A=F,o?.();return}return o?.("literal",t),t}--A,o?.();return}}function hu(){H(u)&&(a?.(),++A,o?.("bom"))}function S(){let t;function n(){t||(t=!0,--A,a(),++A)}function F(){t&&(t=!1,o("whitespace"))}for(;A<f;){const i=u[A++];if(w(i))a&&n(),$(i);else if(lu(i))a&&n();else if(i==="/"&&D&&(u[A]==="/"||u[A]==="*"))a&&(--A,F(),a(),++A),gu(u[A++]==="*"),o?.("comment");else{--A;break}}o&&F()}function gu(t){for(;A<f;){const n=u[A++];if(w(n)){if(!t){--A;return}$(n)}else if(n==="*"&&t&&u[A]==="/"){++A;return}}t&&B("Unclosed multiline comment")}function O(t){const n=A;for(let F=1,i=t.length;F<i;++F)(A>=f||t[F]!==u[A])&&(A=n-1,B()),++A}function x(){const t={},n={};let F=!1;for(;A<f;){S();const i=mu();h===!1&&R.call(t,i)&&B(`Duplicate key: "${i}"`),S(),a?.();let s=u[A++];if(o?.("symbol",s),s==="}"&&i===void 0)return!m&&F&&(--A,B("Trailing comma in object")),t;if(s===":"&&i!==void 0){S(),y?.push(i);let c=j();if(y?.pop(),c===void 0&&B(`No value found for key "${i}"`),typeof i!="string"&&(!r||typeof i!="number")&&B(`Wrong key type: "${i}"`),i in n||n[i]!=null||(g&&(c=g(i,c)),c!==void 0&&(F=!0,t[i]=c)),S(),a?.(),s=u[A++],o?.("symbol",s),s!==","){if(s==="}")return t;B()}}else--A,B()}B()}function _(){const t=[];for(;A<f;){S(),y?.push(t.length);let n=j();y?.pop(),S(),a?.();const F=u[A++];if(o?.("symbol",F),n!==void 0&&(g&&(n=g(String(t.length),n)),n===void 0?(++t.length,n=!0):t.push(n)),F===",")n===void 0&&B("Elisions are not supported");else{if(F==="]")return!m&&n===void 0&&t.length&&(--A,B("Trailing comma in array")),t;--A,B()}}}function Q(){--A;let t=A,n=u[A++];const F=function(i){const s=u.substr(t,A-t);let c;if(i?c=Number.parseInt(s.replace(/^0o?/,""),8):c=Number(s),Number.isNaN(c))--A,B(`Bad numeric literal - "${u.substr(t,A-t+1)}"`);else if(!r&&!s.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i))--A,B(`Non-json numeric literal - "${u.substr(t,A-t+1)}"`);else return c};if((n==="-"||n==="+"&&r)&&(n=u[A++]),n==="N"&&r)return O("NaN"),Number.NaN;if(n==="I"&&r)return O("Infinity"),F();if(n>="1"&&n<="9"){for(;A<f&&k(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||N(n),s=n==="x"||n==="X";if(r&&(i||s)){for(;A<f&&(s?b:N)(u[A]);)++A;let c=1;return u[t]==="-"?(c=-1,++t):u[t]==="+"&&++t,c*F(i)}}if(n==="."){for(;A<f&&k(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<f&&k(u[A]);)++A;n=u[A++]}return--A,F()}function Su(){--A;let t="";for(;A<f;){let n=u[A++];if(n==="\\"&&u[A]==="u"&&b(u[A+1])&&b(u[A+2])&&b(u[A+3])&&b(u[A+4])&&(n=String.fromCharCode(Number.parseInt(u.substr(A+1,4),16)),A+=5),t.length)if(E.isIdentifierPart(n))t+=n;else return--A,t;else if(E.isIdentifierStart(n))t+=n;else return}B()}function V(t){let n="";for(;A<f;){let F=u[A++];if(F===t)return n;if(F==="\\")if(A>=f&&B(),F=u[A++],J[F]&&(r||F!=="v"&&(F!=="'"||d)))n+=J[F];else if(r&&w(F))$(F);else if(F==="u"||F==="x"&&r){const i=F==="u"?4:2;for(let s=0;s<i;++s)A>=f&&B(),b(u[A])||B("Bad escape sequence"),A++;n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),16))}else if(r&&N(F)){let i;F<"4"&&N(u[A])&&N(u[A+1])?i=3:N(u[A])?i=2:i=1,A+=i-1,n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),8))}else r?n+=F:(--A,B());else w(F)?B():(!r&&F.charCodeAt(0)<32&&(--A,B("Unexpected control character")),n+=F)}B()}C&&hu(),S();let v=j();if(v!==void 0||A<f){if(S(),A>=f)return g&&(v=g("",v)),z?K:v;B()}else B(A?"No data, only a whitespace":"No data, empty input")}function T(u,e){return typeof e=="function"?e={reviver:e}:e||(e={}),L(u,e)}function Z(u,e){e||(e={});const r=e.tokenize;e.tokenize=!0;const C=L(u,e);return e.tokenize=r,C}function q(u){return u.toString().replace(/~/g,"~0").replace(/\//g,"~1")}function G(u){return u.length===0?"":`/${u.map(q).join("/")}`}function X(u){return u.replace(/~1/g,"/").replace(/~0/g,"~")}function Y(u){if(u==="")return[];if(u[0]!=="/")throw new Error('Missing initial "/" in the reference');return u.substr(1).split("/").map(X)}function M(u,e){const r=u.substr(0,e).split(/\r?\n/),C=r.length,D=r[C-1].length+1;return{line:C,column:D}}function uu(u,e,r){if(e>1){const C=/\r?\n/g;let D;for(;D=C.exec(u);)if(--e===1)return D.index+r}return r-1}function eu(u,e){const r=Math.max(0,e-20),C=u.substr(r,e-r);return(e>20?"...":"")+C.replace(/\r?\n/g,"")}function Au(u,e){let r=Math.max(0,e-20);r+=e-r;const C=u.length-r;return u.substr(r,Math.min(20,C)).replace(/\r?\n/g,"")+(C>20?"...":"")}function tu(u,e){const r=eu(u,e),C=Au(u,e),D=`${new Array(r.length+1).join("-")}^`;return{excerpt:r+C,pointer:D}}function nu(u){let e=u.message.replace("JSON.parse: ","").replace("JSON Parse error: ","");const r=e.charAt(0);return r>="a"&&(e=r.toUpperCase()+e.substr(1)),e}function ru(u,e){const r=/ in JSON at position (\d+)$/.exec(e);if(r){const C=+r[1],D=M(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index)}}}function Fu(u,e){const r=/ end of JSON input$/.exec(e);if(r){const C=u.length,D=M(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index+4)}}}function iu(u,e){const r=/ at line (\d+) column (\d+) of the JSON data$/.exec(e);if(r){const C=+r[1],D=+r[2];return{offset:uu(u,C,D),line:C,column:D,reason:e.substr(0,r.index)}}}function P(u,e,r,C,D){const m=tu(e,r),d=m.excerpt;let h,g;return typeof C=="number"?(g=m.pointer,h=`Parse error on line ${C}, column ${D}:
7
+ ${d}
8
+ ${g}
9
+ ${u}`):h=`Parse error in JSON input:
10
+ ${d}
11
+ ${u}`,{message:h,excerpt:d,pointer:g}}function Cu(u,e){let r=nu(e);const C=ru(u,r)||Fu(u,r)||iu(u,r);let D,m,d;C?(D=C.offset,m=C.line,d=C.column,r=C.reason):D=0,e.reason=r;const h=P(r,u,D,m,d);return e.message=h.message,e.excerpt=h.excerpt,h.pointer&&(e.pointer=h.pointer,e.location={start:{column:d,line:m,offset:D}}),e}function W(u,e){try{return JSON.parse(u,e)}catch(r){const C=Cu(u,r);if(r.location)throw C;return T(u,e)}}const Du=typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor),Bu=typeof process<"u"&&process.version.startsWith("v4.");function ou(u){return u.ignoreBOM||u.ignoreComments||u.ignoreTrailingCommas||u.allowSingleQuotedStrings||u.allowDuplicateObjectKeys===!1||u.mode==="cjson"||u.mode==="json5"||Du||Bu}function su(u){if(typeof u=="function")return u;if(u)return u.reviver}function cu(u,e){return e||(e={}),ou(e)?T(u,e):W(u,su(e))}l.parse=cu,l.tokenize=Z,l.pathToPointer=G,l.pointerToPath=Y,l.parseNative=W,l.parseCustom=T,l.getErrorTexts=P,Object.defineProperty(l,"__esModule",{value:!0})});
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\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = 'Unexpected token ' + token\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken && startToken()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken && endToken('literal', string)\n return string\n } else if (char === '{') {\n endToken && endToken('symbol', '{')\n return parseObject()\n } else if (char === '[') {\n endToken && endToken('symbol', '[')\n return parseArray()\n } else if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken && endToken('literal', number)\n return number\n } else if (char === 'n') {\n parseKeyword('null')\n endToken && endToken('literal', null)\n return null\n } else if (char === 't') {\n parseKeyword('true')\n endToken && endToken('literal', true)\n return true\n } else if (char === 'f') {\n parseKeyword('false')\n endToken && endToken('literal', false)\n return false\n } else {\n --position\n endToken && endToken()\n return undefined\n }\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken && startToken()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken && endToken('literal', string)\n return string\n } else if (char === '{') {\n endToken && endToken('symbol', '{')\n return parseObject()\n } else if (char === '[') {\n endToken && endToken('symbol', '[')\n return parseArray()\n } else if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken && endToken('literal', number)\n return number\n } else 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 && endToken()\n return undefined\n } else {\n endToken && endToken('literal', result)\n return result\n }\n } else {\n --position\n endToken && endToken()\n return undefined\n }\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken && startToken()\n ++position\n endToken && 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 && endToken('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n const result = {}\n const emptyObject = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && result[key]) {\n fail('Duplicate key: \"' + key + '\"')\n }\n skipWhiteSpace()\n startToken && startToken()\n let char = input[position++]\n endToken && 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 } else if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath && tokenPath.push(key)\n let value = parseGeneric()\n tokenPath && tokenPath.pop()\n\n if (value === undefined) fail('No value found for key \"' + key + '\"')\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail('Wrong key type: \"' + key + '\"')\n }\n }\n\n if (key in emptyObject || emptyObject[key] != null) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n result[key] = value\n }\n }\n\n skipWhiteSpace()\n startToken && startToken()\n char = input[position++]\n endToken && endToken('symbol', char)\n if (char === ',') {\n continue\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 && tokenPath.push(result.length)\n let item = parseGeneric()\n tokenPath && tokenPath.pop()\n skipWhiteSpace()\n startToken && startToken()\n const char = input[position++]\n endToken && 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 = 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 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(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 } else 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(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(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 } else {\n fail()\n }\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, pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = 'Parse error on line ' + line + ', column ' +\n 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, line, column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.mode === 'cjson' || options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n } else if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
5
- "mappings": "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",
6
- "names": ["global", "factory", "exports", "Uni", "x", "isHexDigit", "isOctDigit", "isDecDigit", "isBOM", "unescapeMap", "parseInternal", "input", "options", "json5", "ignoreBOM", "ignoreComments", "ignoreTrailingCommas", "allowSingleQuotedStrings", "allowDuplicateObjectKeys", "reviver", "tokenize", "rawTokens", "tokenLocations", "tokenPaths", "isLineTerminator", "isWhiteSpace", "inputLength", "lineNumber", "lineStart", "position", "tokens", "startToken", "endToken", "tokenPath", "tokenOffset", "tokenLine", "tokenColumn", "type", "value", "token", "generateMessage", "message", "createError", "column", "texts", "getTexts", "error", "fail", "newLine", "char", "parseGeneric", "string", "parseString", "parseObject", "parseArray", "number", "parseNumber", "parseKeyword", "parseKey", "result", "rollback", "parseIdentifier", "skipBOM", "skipWhiteSpace", "insideWhiteSpace", "startWhiteSpace", "endWhiteSpace", "skipComment", "multiLine", "keyword", "startPosition", "i", "keywordLength", "emptyObject", "isNotEmpty", "key", "item", "start", "toNumber", "isOctal", "isHex", "sign", "endChar", "count", "digits", "returnValue", "parseCustom", "oldTokenize", "escapePointerToken", "pathToPointer", "unescapePointerToken", "pointerToPath", "pointer", "getLineAndColumn", "offset", "lines", "line", "getOffset", "breaks", "match", "pastInput", "previous", "upcomingInput", "rest", "getPositionContext", "past", "upcoming", "getReason", "firstCharacter", "getLocationOnV8", "reason", "location", "checkUnexpectedEndOnV8", "getLocationOnSpiderMonkey", "excerpt", "improveNativeError", "parseNative", "newError", "isSafari", "oldNode", "needsCustomParser", "getReviver", "parse"]
4
+ "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define('jsonlint', ['exports'], factory) :\n (global = global || self, factory(global.jsonlint = {}))\n}(this, function (exports) { 'use strict'\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/unicode.js\n\n// This is autogenerated with esprima tools, see:\n// https://github.com/ariya/esprima/blob/master/esprima.js\n\n// eslint-disable-next-line no-unused-vars\nconst Uni = {\n isWhiteSpace: function isWhiteSpace (x) {\n // section 7.2, table 2\n return x === '\\u0020' ||\n x === '\\u00A0' ||\n x === '\\uFEFF' || // <-- this is not a Unicode WS, only a JS one\n (x >= '\\u0009' && x <= '\\u000D') || // 9 A B C D\n\n // + whitespace characters from unicode, category Zs\n x === '\\u1680' ||\n (x >= '\\u2000' && x <= '\\u200A') || // 0 1 2 3 4 5 6 7 8 9 A\n x === '\\u2028' ||\n x === '\\u2029' ||\n x === '\\u202F' ||\n x === '\\u205F' ||\n x === '\\u3000'\n },\n isWhiteSpaceJSON: function isWhiteSpaceJSON (x) {\n return x === '\\u0020' ||\n x === '\\u0009' ||\n x === '\\u000A' ||\n x === '\\u000D'\n },\n isLineTerminator: function isLineTerminator (x) {\n // ok, here is the part when JSON is wrong\n // section 7.3, table 3\n return x === '\\u000A' ||\n x === '\\u000D' ||\n x === '\\u2028' ||\n x === '\\u2029'\n },\n isLineTerminatorJSON: function isLineTerminatorJSON (x) {\n return x === '\\u000A' ||\n x === '\\u000D'\n },\n isIdentifierStart: function isIdentifierStart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '\\u0080' && Uni.NonAsciiIdentifierStart.test(x))\n },\n isIdentifierPart: function isIdentifierPart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '0' && x <= '9') || // <-- addition to Start\n (x >= '\\u0080' && Uni.NonAsciiIdentifierPart.test(x))\n },\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:\n /* eslint-disable-next-line no-misleading-character-class */\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0\\u08A2-\\u08AC\\u08E4-\\u08FE\\u0900-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1D00-\\u1DE6\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA697\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7B\\uAA80-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE26\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n}\n/* globals Uni, getTexts */\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/parse.js\n\nfunction isHexDigit (x) {\n return (x >= '0' && x <= '9') ||\n (x >= 'A' && x <= 'F') ||\n (x >= 'a' && x <= 'f')\n}\n\nfunction isOctDigit (x) {\n return x >= '0' && x <= '7'\n}\n\nfunction isDecDigit (x) {\n return x >= '0' && x <= '9'\n}\n\nfunction isBOM (x) {\n // This catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n // conversion in `fs.readFileSync()` translates it to FEFF (UTF-16 BOM).\n return x.charCodeAt(0) === 0xFEFF\n}\n\nconst unescapeMap = {\n '\\'': '\\'',\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n '/': '/'\n}\n\nconst ownsProperty = Object.prototype.hasOwnProperty\n\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = `Unexpected token ${token}`\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken?.('literal', number)\n return number\n }if (char === 'n') {\n parseKeyword('null')\n endToken?.('literal', null)\n return null\n }if (char === 't') {\n parseKeyword('true')\n endToken?.('literal', true)\n return true\n }if (char === 'f') {\n parseKeyword('false')\n endToken?.('literal', false)\n return false\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken?.('literal', number)\n return number\n }if ((json5 && Uni.isIdentifierStart(char)) ||\n (char === '\\\\' && input[position] === 'u')) {\n const rollback = position - 1\n result = parseIdentifier()\n if (result === undefined) {\n position = rollback\n endToken?.()\n return undefined\n }\n endToken?.('literal', result)\n return result\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken?.()\n ++position\n endToken?.('bom')\n }\n }\n\n function skipWhiteSpace () {\n let insideWhiteSpace\n function startWhiteSpace () {\n if (!insideWhiteSpace) {\n insideWhiteSpace = true\n --position\n startToken()\n ++position\n }\n }\n function endWhiteSpace () {\n if (insideWhiteSpace) {\n insideWhiteSpace = false\n endToken('whitespace')\n }\n }\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n startToken && startWhiteSpace()\n newLine(char)\n } else if (isWhiteSpace(char)) {\n startToken && startWhiteSpace()\n } else if (char === '/' && ignoreComments &&\n (input[position] === '/' || input[position] === '*')) {\n if (startToken) {\n --position\n endWhiteSpace()\n startToken()\n ++position\n }\n skipComment(input[position++] === '*')\n endToken?.('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n const result = {}\n const emptyObject = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && ownsProperty.call(result, key)) {\n fail(`Duplicate key: \"${key}\"`)\n }\n skipWhiteSpace()\n startToken?.()\n let char = input[position++]\n endToken?.('symbol', char)\n if (char === '}' && key === undefined) {\n if (!ignoreTrailingCommas && isNotEmpty) {\n --position\n fail('Trailing comma in object')\n }\n return result\n }if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath?.push(key)\n let value = parseGeneric()\n tokenPath?.pop()\n\n if (value === undefined) fail(`No value found for key \"${key}\"`)\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail(`Wrong key type: \"${key}\"`)\n }\n }\n\n if (key in emptyObject || emptyObject[key] != null) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n result[key] = value\n }\n }\n\n skipWhiteSpace()\n startToken?.()\n char = input[position++]\n endToken?.('symbol', char)\n if (char === ',') {\n } else if (char === '}') {\n return result\n } else {\n fail()\n }\n } else {\n --position\n fail()\n }\n }\n\n fail()\n }\n\n function parseArray () {\n const result = []\n while (position < inputLength) {\n skipWhiteSpace()\n tokenPath?.push(result.length)\n let item = parseGeneric()\n tokenPath?.pop()\n skipWhiteSpace()\n startToken?.()\n const char = input[position++]\n endToken?.('symbol', char)\n if (item !== undefined) {\n if (reviver) {\n item = reviver(String(result.length), item)\n }\n if (item === undefined) {\n ++result.length\n item = true // hack for check below, not included into result\n } else {\n result.push(item)\n }\n }\n\n if (char === ',') {\n if (item === undefined) {\n fail('Elisions are not supported')\n }\n } else if (char === ']') {\n if (!ignoreTrailingCommas && item === undefined && result.length) {\n --position\n fail('Trailing comma in array')\n }\n return result\n } else {\n --position\n fail()\n }\n }\n }\n\n function parseNumber () {\n // rewind because we don't know first char\n --position\n\n let start = position\n let char = input[position++]\n const toNumber = function (isOctal) {\n const string = input.substr(start, position - start)\n let result\n\n if (isOctal) {\n result = Number.parseInt(string.replace(/^0o?/, ''), 8)\n } else {\n result = Number(string)\n }\n\n if (Number.isNaN(result)) {\n --position\n fail(`Bad numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else if (!json5 && !string.match(/^-?(0|[1-9][0-9]*)(\\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {\n // additional restrictions imposed by json\n --position\n fail(`Non-json numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else {\n return result\n }\n }\n\n // ex: -5982475.249875e+29384\n // ^ skipping this\n if (char === '-' || (char === '+' && json5)) {\n char = input[position++]\n }\n\n if (char === 'N' && json5) {\n parseKeyword('NaN')\n return Number.NaN\n }\n\n if (char === 'I' && json5) {\n parseKeyword('Infinity')\n // returning +inf or -inf\n return toNumber()\n }\n\n if (char >= '1' && char <= '9') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // special case for leading zero: 0.123456\n if (char === '0') {\n char = input[position++]\n\n // new syntax, \"0o777\" old syntax, \"0777\"\n const isOctal = char === 'o' || char === 'O' || isOctDigit(char)\n const isHex = char === 'x' || char === 'X'\n\n if (json5 && (isOctal || isHex)) {\n while (position < inputLength &&\n (isHex ? isHexDigit : isOctDigit)(input[position])) {\n ++position\n }\n\n let sign = 1\n if (input[start] === '-') {\n sign = -1\n ++start\n } else if (input[start] === '+') {\n ++start\n }\n\n return sign * toNumber(isOctal)\n }\n }\n\n if (char === '.') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n if (char === 'e' || char === 'E') {\n char = input[position++]\n if (char === '-' || char === '+') {\n ++position\n }\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // we have char in the buffer, so count for it\n --position\n return toNumber()\n }\n\n function parseIdentifier () {\n // rewind because we don't know first char\n --position\n\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === '\\\\' &&\n input[position] === 'u' &&\n isHexDigit(input[position + 1]) &&\n isHexDigit(input[position + 2]) &&\n isHexDigit(input[position + 3]) &&\n isHexDigit(input[position + 4])) {\n // UnicodeEscapeSequence\n char = String.fromCharCode(Number.parseInt(input.substr(position + 1, 4), 16))\n position += 5\n }\n\n if (result.length) {\n // identifier started\n if (Uni.isIdentifierPart(char)) {\n result += char\n } else {\n --position\n return result\n }\n } else {\n if (Uni.isIdentifierStart(char)) {\n result += char\n } else {\n return undefined\n }\n }\n }\n\n fail()\n }\n\n function parseString (endChar) {\n // 7.8.4 of ES262 spec\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === endChar) {\n return result\n }if (char === '\\\\') {\n if (position >= inputLength) {\n fail()\n }\n char = input[position++]\n if (unescapeMap[char] && (json5 || (char !== 'v' && (char !== \"'\" || allowSingleQuotedStrings)))) {\n result += unescapeMap[char]\n } else if (json5 && isLineTerminator(char)) {\n // line continuation\n newLine(char)\n } else if (char === 'u' || (char === 'x' && json5)) {\n // unicode/character escape sequence\n const count = char === 'u' ? 4 : 2\n // validation for \\uXXXX\n for (let i = 0; i < count; ++i) {\n if (position >= inputLength) {\n fail()\n }\n if (!isHexDigit(input[position])) {\n fail('Bad escape sequence')\n }\n position++\n }\n result += String.fromCharCode(Number.parseInt(input.substr(position - count, count), 16))\n } else if (json5 && isOctDigit(char)) {\n let digits\n if (char < '4' && isOctDigit(input[position]) && isOctDigit(input[position + 1])) {\n // three-digit octal\n digits = 3\n } else if (isOctDigit(input[position])) {\n // two-digit octal\n digits = 2\n } else {\n digits = 1\n }\n position += digits - 1\n result += String.fromCharCode(Number.parseInt(input.substr(position - digits, digits), 8))\n } else if (json5) {\n // \\X -> x\n result += char\n } else {\n --position\n fail()\n }\n } else if (isLineTerminator(char)) {\n fail()\n } else {\n if (!json5 && char.charCodeAt(0) < 32) {\n --position\n fail('Unexpected control character')\n }\n // SourceCharacter but not one of \" or \\ or LineTerminator\n result += char\n }\n }\n\n fail()\n }\n\n if (ignoreBOM) {\n skipBOM()\n }\n skipWhiteSpace()\n let returnValue = parseGeneric()\n if (returnValue !== undefined || position < inputLength) {\n skipWhiteSpace()\n if (position >= inputLength) {\n if (reviver) {\n returnValue = reviver('', returnValue)\n }\n return tokenize ? tokens : returnValue\n }\n fail()\n } else {\n if (position) {\n fail('No data, only a whitespace')\n } else {\n fail('No data, empty input')\n }\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseCustom (input, options) {\n if (typeof options === 'function') {\n options = {\n reviver: options\n }\n } else if (!options) {\n options = {}\n }\n return parseInternal(input, options)\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction tokenize (input, options) {\n if (!options) {\n options = {}\n }\n // As long as this is the single modification, this is easier than cloning.\n // (Once Node.js 6 is dropped, this can be replaced by object destructuring.)\n const oldTokenize = options.tokenize\n options.tokenize = true\n const tokens = parseInternal(input, options)\n options.tokenize = oldTokenize\n return tokens\n}\nfunction escapePointerToken (token) {\n return token\n .toString()\n .replace(/~/g, '~0')\n .replace(/\\//g, '~1')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pathToPointer (tokens) {\n if (tokens.length === 0) {\n return ''\n }\n return `/${tokens\n .map(escapePointerToken)\n .join('/')}`\n}\n\nfunction unescapePointerToken (token) {\n return token\n .replace(/~1/g, '/')\n .replace(/~0/g, '~')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pointerToPath (pointer) {\n if (pointer === '') {\n return []\n }\n if (pointer[0] !== '/') {\n throw new Error('Missing initial \"/\" in the reference')\n }\n return pointer\n .substr(1)\n .split('/')\n .map(unescapePointerToken)\n}\nfunction getLineAndColumn (input, offset) {\n const lines = input\n .substr(0, offset)\n .split(/\\r?\\n/)\n const line = lines.length\n const column = lines[line - 1].length + 1\n return {\n line,\n column\n }\n}\n\nfunction getOffset (input, line, column) {\n if (line > 1) {\n const breaks = /\\r?\\n/g\n let match\n while ((match = breaks.exec(input))) {\n if (--line === 1) {\n return match.index + column\n }\n }\n }\n return column - 1\n}\n\nfunction pastInput (input, offset) {\n const start = Math.max(0, offset - 20)\n const previous = input.substr(start, offset - start)\n return (offset > 20 ? '...' : '') + previous.replace(/\\r?\\n/g, '')\n}\n\nfunction upcomingInput (input, offset) {\n let start = Math.max(0, offset - 20)\n start += offset - start\n const rest = input.length - start\n const next = input.substr(start, Math.min(20, rest))\n return next.replace(/\\r?\\n/g, '') + (rest > 20 ? '...' : '')\n}\n\nfunction getPositionContext (input, offset) {\n const past = pastInput(input, offset)\n const upcoming = upcomingInput(input, offset)\n const pointer = `${new Array(past.length + 1).join('-')}^`\n return {\n excerpt: past + upcoming,\n pointer\n }\n}\n\nfunction getReason (error) {\n let message = error.message\n .replace('JSON.parse: ', '') // SpiderMonkey\n .replace('JSON Parse error: ', '') // SquirrelFish\n const firstCharacter = message.charAt(0)\n if (firstCharacter >= 'a') {\n message = firstCharacter.toUpperCase() + message.substr(1)\n }\n return message\n}\n\nfunction getLocationOnV8 (input, reason) {\n const match = / in JSON at position (\\d+)$/.exec(reason)\n if (match) {\n const offset = +match[1]\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction checkUnexpectedEndOnV8 (input, reason) {\n const match = / end of JSON input$/.exec(reason)\n if (match) {\n const offset = input.length\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index + 4)\n }\n }\n}\n\nfunction getLocationOnSpiderMonkey (input, reason) {\n const match = / at line (\\d+) column (\\d+) of the JSON data$/.exec(reason)\n if (match) {\n const line = +match[1]\n const column = +match[2]\n const offset = getOffset(input, line, column) // eslint-disable-line no-undef\n return {\n offset,\n line,\n column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction getTexts (reason, input, offset, line, column) {\n const position = getPositionContext(input, offset)\n const excerpt = position.excerpt\n let message\n let pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = `Parse error on line ${line}, column ${column}:\\n${excerpt}\\n${pointer}\\n${reason}`\n } else {\n message = `Parse error in JSON input:\\n${excerpt}\\n${reason}`\n }\n return {\n message,\n excerpt,\n pointer\n }\n}\n\nfunction improveNativeError (input, error) {\n let reason = getReason(error)\n const location = getLocationOnV8(input, reason) ||\n checkUnexpectedEndOnV8(input, reason) ||\n getLocationOnSpiderMonkey(input, reason)\n let offset\n let line\n let column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.mode === 'cjson' || options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n }if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
5
+ "mappings": "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",
6
+ "names": ["global", "factory", "exports", "Uni", "x", "isHexDigit", "isOctDigit", "isDecDigit", "isBOM", "unescapeMap", "ownsProperty", "parseInternal", "input", "options", "json5", "ignoreBOM", "ignoreComments", "ignoreTrailingCommas", "allowSingleQuotedStrings", "allowDuplicateObjectKeys", "reviver", "tokenize", "rawTokens", "tokenLocations", "tokenPaths", "isLineTerminator", "isWhiteSpace", "inputLength", "lineNumber", "lineStart", "position", "tokens", "startToken", "endToken", "tokenPath", "tokenOffset", "tokenLine", "tokenColumn", "type", "value", "token", "generateMessage", "message", "createError", "column", "texts", "getTexts", "error", "fail", "newLine", "char", "parseGeneric", "string", "parseString", "parseObject", "parseArray", "number", "parseNumber", "parseKeyword", "parseKey", "result", "rollback", "parseIdentifier", "skipBOM", "skipWhiteSpace", "insideWhiteSpace", "startWhiteSpace", "endWhiteSpace", "skipComment", "multiLine", "keyword", "startPosition", "i", "keywordLength", "emptyObject", "isNotEmpty", "key", "item", "start", "toNumber", "isOctal", "isHex", "sign", "endChar", "count", "digits", "returnValue", "parseCustom", "oldTokenize", "escapePointerToken", "pathToPointer", "unescapePointerToken", "pointerToPath", "pointer", "getLineAndColumn", "offset", "lines", "line", "getOffset", "breaks", "match", "pastInput", "previous", "upcomingInput", "rest", "getPositionContext", "past", "upcoming", "getReason", "firstCharacter", "getLocationOnV8", "reason", "location", "checkUnexpectedEndOnV8", "getLocationOnSpiderMonkey", "excerpt", "improveNativeError", "parseNative", "newError", "isSafari", "oldNode", "needsCustomParser", "getReviver", "parse"]
7
7
  }
@@ -1,5 +1,5 @@
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(t){return/^[a-zA-Z$_][a-zA-Z0-9$_]*$/.test(t)}function B(t){let r="";const a=t.length;let l;for(l=0;l<a;++l)r+=t[l].raw;return r}function N(t,r){if(!(t&&t.length))throw new Error("JSON tokens missing.");if(!(t[0]&&t[0].raw))throw new Error("JSON tokens lack raw values.");if(!r)return B(t);let a=r.indent;typeof a=="number"&&(a=new Array(a+1).join(" "));const l=a!==void 0,v=r.pruneComments,Q=r.stripObjectKeys,_=r.enforceDoubleQuotes,D=r.enforceSingleQuotes,J=r.trimTrailingCommas;let e="",k,g,o,j,y,T=0;const I=[];let w,S;const P=t.length;let c,x,L,i;function $(){let n=c,u;do u=t[++n];while(u&&(u.type==="whitespace"||u.type==="comment"));return u}let d;l&&a?d=function(){for(let n=0;n<T;++n)e+=a}:d=s;let p,b;l?(p=function(){e+=`
2
- `},b=function(){o?(p(),d()):y&&(e+=" "),y=o=!1}):p=b=s;let C,f;v?C=f=s:l?(C=function(){!g&&c>0&&(p(),d()),e+=i,k=!1,g=!1,o=!0},f=function(){k=!1,g=!1,j=!1;let n=c+1;function u(){let h=t[n];return h&&h.type==="whitespace"&&(k=h.raw.indexOf(`
3
- `)>=0,h=t[++n]),h}const O=u();!k&&O&&O.type==="comment"&&(o?g||(p(),d()):j||(e+=" "),e+=O.raw,c=n++,u(),k?(y=!1,o=!0):(y=!0,o=!1))}):(C=function(){i[1]==="/"?(e+="/*",e+=i.substr(2,i.length-2),e+=" */"):e+=i},f=s);function z(){b();const n=x.value;Q&&w==="{"&&!S&&A(n)?e+=n:typeof n=="string"?_&&i[0]!=='"'?e+=JSON.stringify(n):D&&i[0]!=="'"?e+="'"+n.replace(/'/g,"\\'")+"'":e+=i:e+=i,f()}function E(){b(),I.push(w),w=i,S=w==="[",e+=i,f(),++T,o=!0}function K(){w=I.pop(),p(),--T,d(),y=o=!1,e+=i,f()}function V(){if(J){const n=$();if(n&&n.type==="symbol")return f()}b(),e+=",",f(),p(),d(),g=!0,o=!1,S=w==="["}function Z(){b(),e+=":",y=!0,f(),S=!0}for(c=0;c<P;++c)switch(x=t[c],L=x.type,i=x.raw,L){case"literal":z();break;case"comment":C();break;case"symbol":switch(i){case"{":case"[":E();break;case"}":case"]":K();break;case",":V();break;case":":Z()}break;default:k=i.indexOf(`
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(`
4
4
  `)>=0}return e}m.print=N,Object.defineProperty(m,"__esModule",{value:!0})});
5
5
  //# sourceMappingURL=printer.min.js.map