@prantlf/jsonlint 15.0.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/jsonlint.js +2 -2
- package/lib/sorter.js +4 -3
- package/package.json +3 -3
- package/web/jsonlint.html +2 -2
- package/web/jsonlint.min.js +5 -5
- package/web/jsonlint.min.js.map +2 -2
- package/web/sorter.min.js +1 -1
- package/web/sorter.min.js.map +3 -3
package/lib/jsonlint.js
CHANGED
|
@@ -103,7 +103,7 @@ const unescapeMap = {
|
|
|
103
103
|
'/': '/'
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
const ownsProperty = Object.
|
|
106
|
+
const ownsProperty = Object.hasOwn
|
|
107
107
|
|
|
108
108
|
const emptyObject = {}
|
|
109
109
|
|
|
@@ -391,7 +391,7 @@ function parseInternal (input, options) {
|
|
|
391
391
|
while (position < inputLength) {
|
|
392
392
|
skipWhiteSpace()
|
|
393
393
|
const key = parseKey()
|
|
394
|
-
if (allowDuplicateObjectKeys === false && ownsProperty
|
|
394
|
+
if (allowDuplicateObjectKeys === false && ownsProperty(result, key)) {
|
|
395
395
|
fail(`Duplicate key: "${key}"`)
|
|
396
396
|
}
|
|
397
397
|
skipWhiteSpace()
|
package/lib/sorter.js
CHANGED
|
@@ -6,18 +6,19 @@
|
|
|
6
6
|
'use strict'
|
|
7
7
|
|
|
8
8
|
// from http://stackoverflow.com/questions/1359761/sorting-a-json-object-in-javascript
|
|
9
|
-
const ownsProperty = Object.
|
|
9
|
+
const ownsProperty = Object.hasOwn
|
|
10
|
+
const formatString = Object.prototype.toString
|
|
10
11
|
function sortObject (o, { ignoreCase, locale, caseFirst, numeric } = {}) {
|
|
11
12
|
if (Array.isArray(o)) {
|
|
12
13
|
return o.map(sortObject)
|
|
13
|
-
}if (
|
|
14
|
+
}if (formatString.call(o) !== '[object Object]') {
|
|
14
15
|
return o
|
|
15
16
|
}
|
|
16
17
|
const sorted = {}
|
|
17
18
|
let key
|
|
18
19
|
const a = []
|
|
19
20
|
for (key in o) {
|
|
20
|
-
if (ownsProperty
|
|
21
|
+
if (ownsProperty(o, key)) {
|
|
21
22
|
a.push(key)
|
|
22
23
|
}
|
|
23
24
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prantlf/jsonlint",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.0",
|
|
4
4
|
"description": "JSON/CJSON/JSON5 parser, syntax and schema validator and pretty-printer.",
|
|
5
5
|
"author": "Ferdinand Prantl <prantlf@gmail.com> (http://prantl.tk)",
|
|
6
6
|
"contributors": [
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"web"
|
|
37
37
|
],
|
|
38
38
|
"engines": {
|
|
39
|
-
"node": ">=
|
|
39
|
+
"node": ">=16.9"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "npm run compile:jsonlint && rollup -c && npm run minify && npm run compile:tests",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@rollup/plugin-commonjs": "26.0.1",
|
|
68
68
|
"@rollup/plugin-json": "6.1.0",
|
|
69
69
|
"@rollup/plugin-node-resolve": "15.2.3",
|
|
70
|
-
"@types/node": "22.
|
|
70
|
+
"@types/node": "22.2.0",
|
|
71
71
|
"@unixcompat/cat.js": "2.0.0",
|
|
72
72
|
"@unixcompat/mv.js": "2.0.0",
|
|
73
73
|
"c8": "10.1.2",
|
package/web/jsonlint.html
CHANGED
|
@@ -120,11 +120,11 @@
|
|
|
120
120
|
<label for="duplicate-object-keys">Allow duplicate object keys</label>
|
|
121
121
|
</div>
|
|
122
122
|
<div>
|
|
123
|
-
<input type="checkbox"
|
|
123
|
+
<input type="checkbox" id="ignore-proto-key">
|
|
124
124
|
<label for="ignore-proto-key">Ignore __proto__ key</label>
|
|
125
125
|
</div>
|
|
126
126
|
<div>
|
|
127
|
-
<input type="checkbox"
|
|
127
|
+
<input type="checkbox" id="ignore-prototype-keys">
|
|
128
128
|
<label for="ignore-prototype-keys">Ignore Object.prototype keys</label>
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
package/web/jsonlint.min.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
(function(l,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define("jsonlint",["exports"],f):(l=l||self,f(l.jsonlint={}))})(this,function(l){"use strict";const f={isWhiteSpace:function(e){return e===" "||e==="\xA0"||e==="\uFEFF"||e>=" "&&e<="\r"||e==="\u1680"||e>="\u2000"&&e<="\u200A"||e==="\u2028"||e==="\u2029"||e==="\u202F"||e==="\u205F"||e==="\u3000"},isWhiteSpaceJSON:function(e){return e===" "||e===" "||e===`
|
|
2
2
|
`||e==="\r"},isLineTerminator:function(e){return e===`
|
|
3
3
|
`||e==="\r"||e==="\u2028"||e==="\u2029"},isLineTerminatorJSON:function(e){return e===`
|
|
4
|
-
`||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&f.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&f.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function
|
|
5
|
-
`,r:"\r",t:" ",v:"\v","/":"/"},q=Object.
|
|
6
|
-
`&&++A,$=A,++
|
|
4
|
+
`||e==="\r"},isIdentifierStart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="\x80"&&f.NonAsciiIdentifierStart.test(e)},isIdentifierPart:function(e){return e==="$"||e==="_"||e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e>="\x80"&&f.NonAsciiIdentifierPart.test(e)},NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/};function b(u){return u>="0"&&u<="9"||u>="A"&&u<="F"||u>="a"&&u<="f"}function y(u){return u>="0"&&u<="7"}function O(u){return u>="0"&&u<="9"}function Z(u){return u.charCodeAt(0)===65279}const _={"'":"'",'"':'"',"\\":"\\",b:"\b",f:"\f",n:`
|
|
5
|
+
`,r:"\r",t:" ",v:"\v","/":"/"},q=Object.hasOwn,L={};function M(u,e){(typeof u!="string"||!(u instanceof String))&&(u=String(u));const r=e.mode==="json5",C=e.ignoreBOM,D=e.ignoreComments||e.mode==="cjson"||r,d=e.ignoreTrailingCommas||r,g=e.ignoreProtoKey,m=e.ignorePrototypeKeys,S=e.allowSingleQuotedStrings||r,lu=e.allowDuplicateObjectKeys,N=e.reviver,z=e.tokenize,au=e.rawTokens,du=e.tokenLocations,U=e.tokenPaths,P=r?f.isLineTerminator:f.isLineTerminatorJSON,mu=r?f.isWhiteSpace:f.isWhiteSpaceJSON,c=u.length;let p=0,$=0,A=0;const x=[];let a,o,k;if(z){let t=null,n,F;a=function(){if(t!==null)throw Error("internal error, token overlap");n=p+1,F=A-$+1,t=A},o=function(i,s){if(t!==A){const E={type:i};au&&(E.raw=u.substr(t,A-t)),s!==void 0&&(E.value=s),du&&(E.location={start:{column:F,line:n,offset:t}}),U&&(E.path=k.slice()),x.push(E)}return t=null,s},U&&(k=[])}function gu(){let t;return A<c?t=`Unexpected token ${JSON.stringify(u[A])}`:t="Unexpected end of input",t}function hu(t){const n=A-$+1;++p;const F=I(t,u,A,p,n),i=SyntaxError(F.message);return i.reason=t,i.excerpt=F.excerpt,i.pointer=F.pointer,i.location={start:{column:n,line:p,offset:A}},i}function B(t){throw t||(t=gu()),hu(t)}function j(t){t==="\r"&&u[A]===`
|
|
6
|
+
`&&++A,$=A,++p}function J(){if(A<c){a?.();const t=u[A++];if(t==='"'||t==="'"&&S){const n=R(t);return o?.("literal",n),n}if(t==="{")return o?.("symbol","{"),Q();if(t==="[")return o?.("symbol","["),V();if(t==="-"||t==="."||O(t)||r&&(t==="+"||t==="I"||t==="N")){const n=H();return o?.("literal",n),n}if(t==="n")return w("null"),o?.("literal",null),null;if(t==="t")return w("true"),o?.("literal",!0),!0;if(t==="f")return w("false"),o?.("literal",!1),!1;--A,o?.();return}}function Su(){let t;if(A<c){a?.();const n=u[A++];if(n==='"'||n==="'"&&S){const F=R(n);return o?.("literal",F),F}if(n==="{")return o?.("symbol","{"),Q();if(n==="[")return o?.("symbol","["),V();if(n==="."||O(n)){const F=H(!0);return o?.("literal",F),F}if(r&&f.isIdentifierStart(n)||n==="\\"&&u[A]==="u"){const F=A-1;if(t=Nu(),t===void 0){A=F,o?.();return}return o?.("literal",t),t}--A,o?.();return}}function bu(){Z(u)&&(a?.(),++A,o?.("bom"))}function h(){let t;function n(){t||(t=!0,--A,a(),++A)}function F(){t&&(t=!1,o("whitespace"))}for(;A<c;){const i=u[A++];if(P(i))a&&n(),j(i);else if(mu(i))a&&n();else if(i==="/"&&D&&(u[A]==="/"||u[A]==="*"))a&&(--A,F(),a(),++A),yu(u[A++]==="*"),o?.("comment");else{--A;break}}o&&F()}function yu(t){for(;A<c;){const n=u[A++];if(P(n)){if(!t){--A;return}j(n)}else if(n==="*"&&t&&u[A]==="/"){++A;return}}t&&B("Unclosed multiline comment")}function w(t){const n=A;for(let F=1,i=t.length;F<i;++F)(A>=c||t[F]!==u[A])&&(A=n-1,B()),++A}function Q(){let t={},n=!1;for(;A<c;){h();const F=Su();lu===!1&&q(t,F)&&B(`Duplicate key: "${F}"`),h(),a?.();let i=u[A++];if(o?.("symbol",i),i==="}"&&F===void 0)return!d&&n&&(--A,B("Trailing comma in object")),t;if(i===":"&&F!==void 0){h(),k?.push(F);let s=J();if(k?.pop(),s===void 0&&B(`No value found for key "${F}"`),typeof F!="string"&&(!r||typeof F!="number")&&B(`Wrong key type: "${F}"`),m&&(F in L||L[F]!=null)||g&&F==="__proto__"||(N&&(s=N(F,s)),s!==void 0&&(n=!0,F==="__proto__"?t=Object.assign(JSON.parse(`{"__proto__":${JSON.stringify(s)}}`),t):t[F]=s)),h(),a?.(),i=u[A++],o?.("symbol",i),i!==","){if(i==="}")return t;B()}}else--A,B()}B()}function V(){const t=[];for(;A<c;){h(),k?.push(t.length);let n=J();k?.pop(),h(),a?.();const F=u[A++];if(o?.("symbol",F),n!==void 0&&(N&&(n=N(String(t.length),n)),n===void 0?(++t.length,n=!0):t.push(n)),F===",")n===void 0&&B("Elisions are not supported");else{if(F==="]")return!d&&n===void 0&&t.length&&(--A,B("Trailing comma in array")),t;--A,B()}}}function H(){--A;let t=A,n=u[A++];const F=function(i){const s=u.substr(t,A-t);let E;if(i?E=Number.parseInt(s.replace(/^0o?/,""),8):E=Number(s),Number.isNaN(E))--A,B(`Bad numeric literal - "${u.substr(t,A-t+1)}"`);else if(!r&&!s.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i))--A,B(`Non-json numeric literal - "${u.substr(t,A-t+1)}"`);else return E};if((n==="-"||n==="+"&&r)&&(n=u[A++]),n==="N"&&r)return w("NaN"),Number.NaN;if(n==="I"&&r)return w("Infinity"),F();if(n>="1"&&n<="9"){for(;A<c&&O(u[A]);)++A;n=u[A++]}if(n==="0"){n=u[A++];const i=n==="o"||n==="O"||y(n),s=n==="x"||n==="X";if(r&&(i||s)){for(;A<c&&(s?b:y)(u[A]);)++A;let E=1;return u[t]==="-"?(E=-1,++t):u[t]==="+"&&++t,E*F(i)}}if(n==="."){for(;A<c&&O(u[A]);)++A;n=u[A++]}if(n==="e"||n==="E"){for(n=u[A++],(n==="-"||n==="+")&&++A;A<c&&O(u[A]);)++A;n=u[A++]}return--A,F()}function Nu(){--A;let t="";for(;A<c;){let n=u[A++];if(n==="\\"&&u[A]==="u"&&b(u[A+1])&&b(u[A+2])&&b(u[A+3])&&b(u[A+4])&&(n=String.fromCharCode(Number.parseInt(u.substr(A+1,4),16)),A+=5),t.length)if(f.isIdentifierPart(n))t+=n;else return--A,t;else if(f.isIdentifierStart(n))t+=n;else return}B()}function R(t){let n="";for(;A<c;){let F=u[A++];if(F===t)return n;if(F==="\\")if(A>=c&&B(),F=u[A++],_[F]&&(r||F!=="v"&&(F!=="'"||S)))n+=_[F];else if(r&&P(F))j(F);else if(F==="u"||F==="x"&&r){const i=F==="u"?4:2;for(let s=0;s<i;++s)A>=c&&B(),b(u[A])||B("Bad escape sequence"),A++;n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),16))}else if(r&&y(F)){let i;F<"4"&&y(u[A])&&y(u[A+1])?i=3:y(u[A])?i=2:i=1,A+=i-1,n+=String.fromCharCode(Number.parseInt(u.substr(A-i,i),8))}else r?n+=F:(--A,B());else P(F)?B():(!r&&F.charCodeAt(0)<32&&(--A,B("Unexpected control character")),n+=F)}B()}C&&bu(),h();let v=J();if(v!==void 0||A<c){if(h(),A>=c)return N&&(v=N("",v)),z?x:v;B()}else B(A?"No data, only a whitespace":"No data, empty input")}function T(u,e){return typeof e=="function"?e={reviver:e}:e||(e={}),M(u,e)}function G(u,e){e||(e={});const r=e.tokenize;e.tokenize=!0;const C=M(u,e);return e.tokenize=r,C}function X(u){return u.toString().replace(/~/g,"~0").replace(/\//g,"~1")}function Y(u){return u.length===0?"":`/${u.map(X).join("/")}`}function uu(u){return u.replace(/~1/g,"/").replace(/~0/g,"~")}function eu(u){if(u==="")return[];if(u[0]!=="/")throw new Error('Missing initial "/" in the reference');return u.substr(1).split("/").map(uu)}function W(u,e){const r=u.substr(0,e).split(/\r?\n/),C=r.length,D=r[C-1].length+1;return{line:C,column:D}}function Au(u,e,r){if(e>1){const C=/\r?\n/g;let D;for(;D=C.exec(u);)if(--e===1)return D.index+r}return r-1}function tu(u,e){const r=Math.max(0,e-20),C=u.substr(r,e-r);return(e>20?"...":"")+C.replace(/\r?\n/g,"")}function nu(u,e){let r=Math.max(0,e-20);r+=e-r;const C=u.length-r;return u.substr(r,Math.min(20,C)).replace(/\r?\n/g,"")+(C>20?"...":"")}function ru(u,e){const r=tu(u,e),C=nu(u,e),D=`${new Array(r.length+1).join("-")}^`;return{excerpt:r+C,pointer:D}}function Fu(u){let e=u.message.replace("JSON.parse: ","").replace("JSON Parse error: ","");const r=e.charAt(0);return r>="a"&&(e=r.toUpperCase()+e.substr(1)),e}function iu(u,e){const r=/ in JSON at position (\d+)$/.exec(e);if(r){const C=+r[1],D=W(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index)}}}function Cu(u,e){const r=/ end of JSON input$/.exec(e);if(r){const C=u.length,D=W(u,C);return{offset:C,line:D.line,column:D.column,reason:e.substr(0,r.index+4)}}}function Du(u,e){const r=/ at line (\d+) column (\d+) of the JSON data$/.exec(e);if(r){const C=+r[1],D=+r[2];return{offset:Au(u,C,D),line:C,column:D,reason:e.substr(0,r.index)}}}function I(u,e,r,C,D){const d=ru(e,r),g=d.excerpt;let m,S;return typeof C=="number"?(S=d.pointer,m=`Parse error on line ${C}, column ${D}:
|
|
7
7
|
${g}
|
|
8
|
-
${
|
|
8
|
+
${S}
|
|
9
9
|
${u}`):m=`Parse error in JSON input:
|
|
10
10
|
${g}
|
|
11
|
-
${u}`,{message:m,excerpt:g,pointer:
|
|
11
|
+
${u}`,{message:m,excerpt:g,pointer:S}}function Bu(u,e){let r=Fu(e);const C=iu(u,r)||Cu(u,r)||Du(u,r);let D,d,g;C?(D=C.offset,d=C.line,g=C.column,r=C.reason):D=0,e.reason=r;const m=I(r,u,D,d,g);return e.message=m.message,e.excerpt=m.excerpt,m.pointer&&(e.pointer=m.pointer,e.location={start:{column:g,line:d,offset:D}}),e}function K(u,e){try{return JSON.parse(u,e)}catch(r){const C=Bu(u,r);if(r.location)throw C;return T(u,e)}}const ou=typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor),su=typeof process<"u"&&process.version.startsWith("v4.");function cu(u){return u.ignoreBOM||u.ignoreComments||u.ignoreTrailingCommas||u.allowSingleQuotedStrings||u.allowDuplicateObjectKeys===!1||u.ignoreProtoKey||u.ignorePrototypeKeys||u.mode==="cjson"||u.mode==="json5"||ou||su}function fu(u){if(typeof u=="function")return u;if(u)return u.reviver}function Eu(u,e){return e||(e={}),cu(e)?T(u,e):K(u,fu(e))}l.parse=Eu,l.tokenize=G,l.pathToPointer=Y,l.pointerToPath=eu,l.parseNative=K,l.parseCustom=T,l.getErrorTexts=I,Object.defineProperty(l,"__esModule",{value:!0})});
|
|
12
12
|
//# sourceMappingURL=jsonlint.min.js.map
|
package/web/jsonlint.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../lib/jsonlint.js"],
|
|
4
|
-
"sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define('jsonlint', ['exports'], factory) :\n (global = global || self, factory(global.jsonlint = {}))\n}(this, function (exports) { 'use strict'\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/unicode.js\n\n// This is autogenerated with esprima tools, see:\n// https://github.com/ariya/esprima/blob/master/esprima.js\n\n// eslint-disable-next-line no-unused-vars\nconst Uni = {\n isWhiteSpace: function isWhiteSpace (x) {\n // section 7.2, table 2\n return x === '\\u0020' ||\n x === '\\u00A0' ||\n x === '\\uFEFF' || // <-- this is not a Unicode WS, only a JS one\n (x >= '\\u0009' && x <= '\\u000D') || // 9 A B C D\n\n // + whitespace characters from unicode, category Zs\n x === '\\u1680' ||\n (x >= '\\u2000' && x <= '\\u200A') || // 0 1 2 3 4 5 6 7 8 9 A\n x === '\\u2028' ||\n x === '\\u2029' ||\n x === '\\u202F' ||\n x === '\\u205F' ||\n x === '\\u3000'\n },\n isWhiteSpaceJSON: function isWhiteSpaceJSON (x) {\n return x === '\\u0020' ||\n x === '\\u0009' ||\n x === '\\u000A' ||\n x === '\\u000D'\n },\n isLineTerminator: function isLineTerminator (x) {\n // ok, here is the part when JSON is wrong\n // section 7.3, table 3\n return x === '\\u000A' ||\n x === '\\u000D' ||\n x === '\\u2028' ||\n x === '\\u2029'\n },\n isLineTerminatorJSON: function isLineTerminatorJSON (x) {\n return x === '\\u000A' ||\n x === '\\u000D'\n },\n isIdentifierStart: function isIdentifierStart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '\\u0080' && Uni.NonAsciiIdentifierStart.test(x))\n },\n isIdentifierPart: function isIdentifierPart (x) {\n return x === '$' ||\n x === '_' ||\n (x >= 'A' && x <= 'Z') ||\n (x >= 'a' && x <= 'z') ||\n (x >= '0' && x <= '9') || // <-- addition to Start\n (x >= '\\u0080' && Uni.NonAsciiIdentifierPart.test(x))\n },\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:\n /* eslint-disable-next-line no-misleading-character-class */\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0\\u08A2-\\u08AC\\u08E4-\\u08FE\\u0900-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1D00-\\u1DE6\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA697\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7B\\uAA80-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE26\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n}\n/* globals Uni, getTexts */\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/parse.js\n\nfunction isHexDigit (x) {\n return (x >= '0' && x <= '9') ||\n (x >= 'A' && x <= 'F') ||\n (x >= 'a' && x <= 'f')\n}\n\nfunction isOctDigit (x) {\n return x >= '0' && x <= '7'\n}\n\nfunction isDecDigit (x) {\n return x >= '0' && x <= '9'\n}\n\nfunction isBOM (x) {\n // This catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n // conversion in `fs.readFileSync()` translates it to FEFF (UTF-16 BOM).\n return x.charCodeAt(0) === 0xFEFF\n}\n\nconst unescapeMap = {\n '\\'': '\\'',\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n '/': '/'\n}\n\nconst ownsProperty = Object.prototype.hasOwnProperty\n\nconst emptyObject = {}\n\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const ignoreProtoKey = options.ignoreProtoKey\n const ignorePrototypeKeys = options.ignorePrototypeKeys\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = `Unexpected token ${token}`\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken?.('literal', number)\n return number\n }if (char === 'n') {\n parseKeyword('null')\n endToken?.('literal', null)\n return null\n }if (char === 't') {\n parseKeyword('true')\n endToken?.('literal', true)\n return true\n }if (char === 'f') {\n parseKeyword('false')\n endToken?.('literal', false)\n return false\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken?.('literal', number)\n return number\n }if ((json5 && Uni.isIdentifierStart(char)) ||\n (char === '\\\\' && input[position] === 'u')) {\n const rollback = position - 1\n result = parseIdentifier()\n if (result === undefined) {\n position = rollback\n endToken?.()\n return undefined\n }\n endToken?.('literal', result)\n return result\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken?.()\n ++position\n endToken?.('bom')\n }\n }\n\n function skipWhiteSpace () {\n let insideWhiteSpace\n function startWhiteSpace () {\n if (!insideWhiteSpace) {\n insideWhiteSpace = true\n --position\n startToken()\n ++position\n }\n }\n function endWhiteSpace () {\n if (insideWhiteSpace) {\n insideWhiteSpace = false\n endToken('whitespace')\n }\n }\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n startToken && startWhiteSpace()\n newLine(char)\n } else if (isWhiteSpace(char)) {\n startToken && startWhiteSpace()\n } else if (char === '/' && ignoreComments &&\n (input[position] === '/' || input[position] === '*')) {\n if (startToken) {\n --position\n endWhiteSpace()\n startToken()\n ++position\n }\n skipComment(input[position++] === '*')\n endToken?.('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n let result = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && ownsProperty.call(result, key)) {\n fail(`Duplicate key: \"${key}\"`)\n }\n skipWhiteSpace()\n startToken?.()\n let char = input[position++]\n endToken?.('symbol', char)\n if (char === '}' && key === undefined) {\n if (!ignoreTrailingCommas && isNotEmpty) {\n --position\n fail('Trailing comma in object')\n }\n return result\n }if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath?.push(key)\n let value = parseGeneric()\n tokenPath?.pop()\n\n if (value === undefined) fail(`No value found for key \"${key}\"`)\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail(`Wrong key type: \"${key}\"`)\n }\n }\n\n if ((ignorePrototypeKeys && (key in emptyObject || emptyObject[key] != null)) ||\n (ignoreProtoKey && key === '__proto__')) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n if (key === '__proto__') {\n result = Object.assign(JSON.parse(`{\"__proto__\":${JSON.stringify(value)}}`), result)\n } else {\n result[key] = value\n }\n }\n }\n\n skipWhiteSpace()\n startToken?.()\n char = input[position++]\n endToken?.('symbol', char)\n if (char === ',') {\n } else if (char === '}') {\n return result\n } else {\n fail()\n }\n } else {\n --position\n fail()\n }\n }\n\n fail()\n }\n\n function parseArray () {\n const result = []\n while (position < inputLength) {\n skipWhiteSpace()\n tokenPath?.push(result.length)\n let item = parseGeneric()\n tokenPath?.pop()\n skipWhiteSpace()\n startToken?.()\n const char = input[position++]\n endToken?.('symbol', char)\n if (item !== undefined) {\n if (reviver) {\n item = reviver(String(result.length), item)\n }\n if (item === undefined) {\n ++result.length\n item = true // hack for check below, not included into result\n } else {\n result.push(item)\n }\n }\n\n if (char === ',') {\n if (item === undefined) {\n fail('Elisions are not supported')\n }\n } else if (char === ']') {\n if (!ignoreTrailingCommas && item === undefined && result.length) {\n --position\n fail('Trailing comma in array')\n }\n return result\n } else {\n --position\n fail()\n }\n }\n }\n\n function parseNumber () {\n // rewind because we don't know first char\n --position\n\n let start = position\n let char = input[position++]\n const toNumber = function (isOctal) {\n const string = input.substr(start, position - start)\n let result\n\n if (isOctal) {\n result = Number.parseInt(string.replace(/^0o?/, ''), 8)\n } else {\n result = Number(string)\n }\n\n if (Number.isNaN(result)) {\n --position\n fail(`Bad numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else if (!json5 && !string.match(/^-?(0|[1-9][0-9]*)(\\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {\n // additional restrictions imposed by json\n --position\n fail(`Non-json numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else {\n return result\n }\n }\n\n // ex: -5982475.249875e+29384\n // ^ skipping this\n if (char === '-' || (char === '+' && json5)) {\n char = input[position++]\n }\n\n if (char === 'N' && json5) {\n parseKeyword('NaN')\n return Number.NaN\n }\n\n if (char === 'I' && json5) {\n parseKeyword('Infinity')\n // returning +inf or -inf\n return toNumber()\n }\n\n if (char >= '1' && char <= '9') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // special case for leading zero: 0.123456\n if (char === '0') {\n char = input[position++]\n\n // new syntax, \"0o777\" old syntax, \"0777\"\n const isOctal = char === 'o' || char === 'O' || isOctDigit(char)\n const isHex = char === 'x' || char === 'X'\n\n if (json5 && (isOctal || isHex)) {\n while (position < inputLength &&\n (isHex ? isHexDigit : isOctDigit)(input[position])) {\n ++position\n }\n\n let sign = 1\n if (input[start] === '-') {\n sign = -1\n ++start\n } else if (input[start] === '+') {\n ++start\n }\n\n return sign * toNumber(isOctal)\n }\n }\n\n if (char === '.') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n if (char === 'e' || char === 'E') {\n char = input[position++]\n if (char === '-' || char === '+') {\n ++position\n }\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // we have char in the buffer, so count for it\n --position\n return toNumber()\n }\n\n function parseIdentifier () {\n // rewind because we don't know first char\n --position\n\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === '\\\\' &&\n input[position] === 'u' &&\n isHexDigit(input[position + 1]) &&\n isHexDigit(input[position + 2]) &&\n isHexDigit(input[position + 3]) &&\n isHexDigit(input[position + 4])) {\n // UnicodeEscapeSequence\n char = String.fromCharCode(Number.parseInt(input.substr(position + 1, 4), 16))\n position += 5\n }\n\n if (result.length) {\n // identifier started\n if (Uni.isIdentifierPart(char)) {\n result += char\n } else {\n --position\n return result\n }\n } else {\n if (Uni.isIdentifierStart(char)) {\n result += char\n } else {\n return undefined\n }\n }\n }\n\n fail()\n }\n\n function parseString (endChar) {\n // 7.8.4 of ES262 spec\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === endChar) {\n return result\n }if (char === '\\\\') {\n if (position >= inputLength) {\n fail()\n }\n char = input[position++]\n if (unescapeMap[char] && (json5 || (char !== 'v' && (char !== \"'\" || allowSingleQuotedStrings)))) {\n result += unescapeMap[char]\n } else if (json5 && isLineTerminator(char)) {\n // line continuation\n newLine(char)\n } else if (char === 'u' || (char === 'x' && json5)) {\n // unicode/character escape sequence\n const count = char === 'u' ? 4 : 2\n // validation for \\uXXXX\n for (let i = 0; i < count; ++i) {\n if (position >= inputLength) {\n fail()\n }\n if (!isHexDigit(input[position])) {\n fail('Bad escape sequence')\n }\n position++\n }\n result += String.fromCharCode(Number.parseInt(input.substr(position - count, count), 16))\n } else if (json5 && isOctDigit(char)) {\n let digits\n if (char < '4' && isOctDigit(input[position]) && isOctDigit(input[position + 1])) {\n // three-digit octal\n digits = 3\n } else if (isOctDigit(input[position])) {\n // two-digit octal\n digits = 2\n } else {\n digits = 1\n }\n position += digits - 1\n result += String.fromCharCode(Number.parseInt(input.substr(position - digits, digits), 8))\n } else if (json5) {\n // \\X -> x\n result += char\n } else {\n --position\n fail()\n }\n } else if (isLineTerminator(char)) {\n fail()\n } else {\n if (!json5 && char.charCodeAt(0) < 32) {\n --position\n fail('Unexpected control character')\n }\n // SourceCharacter but not one of \" or \\ or LineTerminator\n result += char\n }\n }\n\n fail()\n }\n\n if (ignoreBOM) {\n skipBOM()\n }\n skipWhiteSpace()\n let returnValue = parseGeneric()\n if (returnValue !== undefined || position < inputLength) {\n skipWhiteSpace()\n if (position >= inputLength) {\n if (reviver) {\n returnValue = reviver('', returnValue)\n }\n return tokenize ? tokens : returnValue\n }\n fail()\n } else {\n if (position) {\n fail('No data, only a whitespace')\n } else {\n fail('No data, empty input')\n }\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseCustom (input, options) {\n if (typeof options === 'function') {\n options = {\n reviver: options\n }\n } else if (!options) {\n options = {}\n }\n return parseInternal(input, options)\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction tokenize (input, options) {\n if (!options) {\n options = {}\n }\n // As long as this is the single modification, this is easier than cloning.\n // (Once Node.js 6 is dropped, this can be replaced by object destructuring.)\n const oldTokenize = options.tokenize\n options.tokenize = true\n const tokens = parseInternal(input, options)\n options.tokenize = oldTokenize\n return tokens\n}\nfunction escapePointerToken (token) {\n return token\n .toString()\n .replace(/~/g, '~0')\n .replace(/\\//g, '~1')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pathToPointer (tokens) {\n if (tokens.length === 0) {\n return ''\n }\n return `/${tokens\n .map(escapePointerToken)\n .join('/')}`\n}\n\nfunction unescapePointerToken (token) {\n return token\n .replace(/~1/g, '/')\n .replace(/~0/g, '~')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pointerToPath (pointer) {\n if (pointer === '') {\n return []\n }\n if (pointer[0] !== '/') {\n throw new Error('Missing initial \"/\" in the reference')\n }\n return pointer\n .substr(1)\n .split('/')\n .map(unescapePointerToken)\n}\nfunction getLineAndColumn (input, offset) {\n const lines = input\n .substr(0, offset)\n .split(/\\r?\\n/)\n const line = lines.length\n const column = lines[line - 1].length + 1\n return {\n line,\n column\n }\n}\n\nfunction getOffset (input, line, column) {\n if (line > 1) {\n const breaks = /\\r?\\n/g\n let match\n while ((match = breaks.exec(input))) {\n if (--line === 1) {\n return match.index + column\n }\n }\n }\n return column - 1\n}\n\nfunction pastInput (input, offset) {\n const start = Math.max(0, offset - 20)\n const previous = input.substr(start, offset - start)\n return (offset > 20 ? '...' : '') + previous.replace(/\\r?\\n/g, '')\n}\n\nfunction upcomingInput (input, offset) {\n let start = Math.max(0, offset - 20)\n start += offset - start\n const rest = input.length - start\n const next = input.substr(start, Math.min(20, rest))\n return next.replace(/\\r?\\n/g, '') + (rest > 20 ? '...' : '')\n}\n\nfunction getPositionContext (input, offset) {\n const past = pastInput(input, offset)\n const upcoming = upcomingInput(input, offset)\n const pointer = `${new Array(past.length + 1).join('-')}^`\n return {\n excerpt: past + upcoming,\n pointer\n }\n}\n\nfunction getReason (error) {\n let message = error.message\n .replace('JSON.parse: ', '') // SpiderMonkey\n .replace('JSON Parse error: ', '') // SquirrelFish\n const firstCharacter = message.charAt(0)\n if (firstCharacter >= 'a') {\n message = firstCharacter.toUpperCase() + message.substr(1)\n }\n return message\n}\n\nfunction getLocationOnV8 (input, reason) {\n const match = / in JSON at position (\\d+)$/.exec(reason)\n if (match) {\n const offset = +match[1]\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction checkUnexpectedEndOnV8 (input, reason) {\n const match = / end of JSON input$/.exec(reason)\n if (match) {\n const offset = input.length\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index + 4)\n }\n }\n}\n\nfunction getLocationOnSpiderMonkey (input, reason) {\n const match = / at line (\\d+) column (\\d+) of the JSON data$/.exec(reason)\n if (match) {\n const line = +match[1]\n const column = +match[2]\n const offset = getOffset(input, line, column) // eslint-disable-line no-undef\n return {\n offset,\n line,\n column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction getTexts (reason, input, offset, line, column) {\n const position = getPositionContext(input, offset)\n const excerpt = position.excerpt\n let message\n let pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = `Parse error on line ${line}, column ${column}:\\n${excerpt}\\n${pointer}\\n${reason}`\n } else {\n message = `Parse error in JSON input:\\n${excerpt}\\n${reason}`\n }\n return {\n message,\n excerpt,\n pointer\n }\n}\n\nfunction improveNativeError (input, error) {\n let reason = getReason(error)\n const location = getLocationOnV8(input, reason) ||\n checkUnexpectedEndOnV8(input, reason) ||\n getLocationOnSpiderMonkey(input, reason)\n let offset\n let line\n let column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.ignoreProtoKey || options.ignorePrototypeKeys || options.mode === 'cjson' ||\n options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n }if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define('jsonlint', ['exports'], factory) :\n (global = global || self, factory(global.jsonlint = {}))\n}(this, function (exports) { 'use strict'\n\n// Modified from https://github.com/rlidwka/jju/blob/master/lib/unicode.js\n\n// This is autogenerated with esprima tools, see:\n// https://github.com/ariya/esprima/blob/master/esprima.js\n\n// 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.hasOwn\n\nconst emptyObject = {}\n\nfunction parseInternal (input, options) {\n if (typeof input !== 'string' || !(input instanceof String)) {\n input = String(input)\n }\n\n const json5 = options.mode === 'json5'\n const ignoreBOM = options.ignoreBOM\n const ignoreComments = options.ignoreComments || options.mode === 'cjson' || json5\n const ignoreTrailingCommas = options.ignoreTrailingCommas || json5\n const ignoreProtoKey = options.ignoreProtoKey\n const ignorePrototypeKeys = options.ignorePrototypeKeys\n const allowSingleQuotedStrings = options.allowSingleQuotedStrings || json5\n const allowDuplicateObjectKeys = options.allowDuplicateObjectKeys\n const reviver = options.reviver\n const tokenize = options.tokenize\n const rawTokens = options.rawTokens\n const tokenLocations = options.tokenLocations\n const tokenPaths = options.tokenPaths\n\n const isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON\n const isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON\n\n const inputLength = input.length\n let lineNumber = 0\n let lineStart = 0\n let position = 0\n\n const tokens = []\n let startToken\n let endToken\n let tokenPath\n\n if (tokenize) {\n let tokenOffset = null\n let tokenLine\n let tokenColumn\n startToken = function () {\n if (tokenOffset !== null) throw Error('internal error, token overlap')\n tokenLine = lineNumber + 1\n tokenColumn = position - lineStart + 1\n tokenOffset = position\n }\n endToken = function (type, value) {\n if (tokenOffset !== position) {\n const token = { type }\n if (rawTokens) {\n token.raw = input.substr(tokenOffset, position - tokenOffset)\n }\n if (value !== undefined) {\n token.value = value\n }\n if (tokenLocations) {\n token.location = {\n start: {\n column: tokenColumn,\n line: tokenLine,\n offset: tokenOffset\n }\n }\n }\n if (tokenPaths) {\n token.path = tokenPath.slice()\n }\n tokens.push(token)\n }\n tokenOffset = null\n return value\n }\n tokenPaths && (tokenPath = [])\n }\n\n function generateMessage () {\n let message\n if (position < inputLength) {\n const token = JSON.stringify(input[position])\n message = `Unexpected token ${token}`\n } else {\n message = 'Unexpected end of input'\n }\n return message\n }\n\n function createError (message) {\n const column = position - lineStart + 1\n ++lineNumber\n const texts = getTexts(message, input, position, lineNumber, column)\n const error = SyntaxError(texts.message)\n error.reason = message\n error.excerpt = texts.excerpt\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line: lineNumber,\n offset: position\n }\n }\n return error\n }\n\n function fail (message) {\n if (!message) {\n message = generateMessage()\n }\n const error = createError(message)\n throw error\n }\n\n function newLine (char) {\n // account for <cr><lf>\n if (char === '\\r' && input[position] === '\\n') {\n ++position\n }\n lineStart = position\n ++lineNumber\n }\n\n function parseGeneric () {\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '-' || char === '.' || isDecDigit(char) ||\n (json5 && (char === '+' || char === 'I' || char === 'N'))) {\n const number = parseNumber()\n endToken?.('literal', number)\n return number\n }if (char === 'n') {\n parseKeyword('null')\n endToken?.('literal', null)\n return null\n }if (char === 't') {\n parseKeyword('true')\n endToken?.('literal', true)\n return true\n }if (char === 'f') {\n parseKeyword('false')\n endToken?.('literal', false)\n return false\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function parseKey () {\n let result\n if (position < inputLength) {\n startToken?.()\n const char = input[position++]\n if (char === '\"' || (char === '\\'' && allowSingleQuotedStrings)) {\n const string = parseString(char)\n endToken?.('literal', string)\n return string\n }if (char === '{') {\n endToken?.('symbol', '{')\n return parseObject()\n }if (char === '[') {\n endToken?.('symbol', '[')\n return parseArray()\n }if (char === '.' || isDecDigit(char)) {\n const number = parseNumber(true)\n endToken?.('literal', number)\n return number\n }if ((json5 && Uni.isIdentifierStart(char)) ||\n (char === '\\\\' && input[position] === 'u')) {\n const rollback = position - 1\n result = parseIdentifier()\n if (result === undefined) {\n position = rollback\n endToken?.()\n return undefined\n }\n endToken?.('literal', result)\n return result\n }\n --position\n endToken?.()\n return undefined\n }\n }\n\n function skipBOM () {\n if (isBOM(input)) {\n startToken?.()\n ++position\n endToken?.('bom')\n }\n }\n\n function skipWhiteSpace () {\n let insideWhiteSpace\n function startWhiteSpace () {\n if (!insideWhiteSpace) {\n insideWhiteSpace = true\n --position\n startToken()\n ++position\n }\n }\n function endWhiteSpace () {\n if (insideWhiteSpace) {\n insideWhiteSpace = false\n endToken('whitespace')\n }\n }\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n startToken && startWhiteSpace()\n newLine(char)\n } else if (isWhiteSpace(char)) {\n startToken && startWhiteSpace()\n } else if (char === '/' && ignoreComments &&\n (input[position] === '/' || input[position] === '*')) {\n if (startToken) {\n --position\n endWhiteSpace()\n startToken()\n ++position\n }\n skipComment(input[position++] === '*')\n endToken?.('comment')\n } else {\n --position\n break\n }\n }\n endToken && endWhiteSpace()\n }\n\n function skipComment (multiLine) {\n while (position < inputLength) {\n const char = input[position++]\n if (isLineTerminator(char)) {\n if (!multiLine) {\n // let parent function deal with newline\n --position\n return\n }\n newLine(char)\n } else if (char === '*' && multiLine) {\n if (input[position] === '/') {\n ++position\n return\n }\n } else {\n // nothing\n }\n }\n if (multiLine) {\n fail('Unclosed multiline comment')\n }\n }\n\n function parseKeyword (keyword) {\n // keyword[0] is not checked because it was checked earlier\n const startPosition = position\n for (let i = 1, keywordLength = keyword.length; i < keywordLength; ++i) {\n if (position >= inputLength || keyword[i] !== input[position]) {\n position = startPosition - 1\n fail()\n }\n ++position\n }\n }\n\n function parseObject () {\n let result = {}\n let isNotEmpty = false\n\n while (position < inputLength) {\n skipWhiteSpace()\n const key = parseKey()\n if (allowDuplicateObjectKeys === false && ownsProperty(result, key)) {\n fail(`Duplicate key: \"${key}\"`)\n }\n skipWhiteSpace()\n startToken?.()\n let char = input[position++]\n endToken?.('symbol', char)\n if (char === '}' && key === undefined) {\n if (!ignoreTrailingCommas && isNotEmpty) {\n --position\n fail('Trailing comma in object')\n }\n return result\n }if (char === ':' && key !== undefined) {\n skipWhiteSpace()\n tokenPath?.push(key)\n let value = parseGeneric()\n tokenPath?.pop()\n\n if (value === undefined) fail(`No value found for key \"${key}\"`)\n if (typeof key !== 'string') {\n if (!json5 || typeof key !== 'number') {\n fail(`Wrong key type: \"${key}\"`)\n }\n }\n\n if ((ignorePrototypeKeys && (key in emptyObject || emptyObject[key] != null)) ||\n (ignoreProtoKey && key === '__proto__')) {\n // silently ignore it\n } else {\n if (reviver) {\n value = reviver(key, value)\n }\n if (value !== undefined) {\n isNotEmpty = true\n if (key === '__proto__') {\n result = Object.assign(JSON.parse(`{\"__proto__\":${JSON.stringify(value)}}`), result)\n } else {\n result[key] = value\n }\n }\n }\n\n skipWhiteSpace()\n startToken?.()\n char = input[position++]\n endToken?.('symbol', char)\n if (char === ',') {\n } else if (char === '}') {\n return result\n } else {\n fail()\n }\n } else {\n --position\n fail()\n }\n }\n\n fail()\n }\n\n function parseArray () {\n const result = []\n while (position < inputLength) {\n skipWhiteSpace()\n tokenPath?.push(result.length)\n let item = parseGeneric()\n tokenPath?.pop()\n skipWhiteSpace()\n startToken?.()\n const char = input[position++]\n endToken?.('symbol', char)\n if (item !== undefined) {\n if (reviver) {\n item = reviver(String(result.length), item)\n }\n if (item === undefined) {\n ++result.length\n item = true // hack for check below, not included into result\n } else {\n result.push(item)\n }\n }\n\n if (char === ',') {\n if (item === undefined) {\n fail('Elisions are not supported')\n }\n } else if (char === ']') {\n if (!ignoreTrailingCommas && item === undefined && result.length) {\n --position\n fail('Trailing comma in array')\n }\n return result\n } else {\n --position\n fail()\n }\n }\n }\n\n function parseNumber () {\n // rewind because we don't know first char\n --position\n\n let start = position\n let char = input[position++]\n const toNumber = function (isOctal) {\n const string = input.substr(start, position - start)\n let result\n\n if (isOctal) {\n result = Number.parseInt(string.replace(/^0o?/, ''), 8)\n } else {\n result = Number(string)\n }\n\n if (Number.isNaN(result)) {\n --position\n fail(`Bad numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else if (!json5 && !string.match(/^-?(0|[1-9][0-9]*)(\\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {\n // additional restrictions imposed by json\n --position\n fail(`Non-json numeric literal - \"${input.substr(start, position - start + 1)}\"`)\n } else {\n return result\n }\n }\n\n // ex: -5982475.249875e+29384\n // ^ skipping this\n if (char === '-' || (char === '+' && json5)) {\n char = input[position++]\n }\n\n if (char === 'N' && json5) {\n parseKeyword('NaN')\n return Number.NaN\n }\n\n if (char === 'I' && json5) {\n parseKeyword('Infinity')\n // returning +inf or -inf\n return toNumber()\n }\n\n if (char >= '1' && char <= '9') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // special case for leading zero: 0.123456\n if (char === '0') {\n char = input[position++]\n\n // new syntax, \"0o777\" old syntax, \"0777\"\n const isOctal = char === 'o' || char === 'O' || isOctDigit(char)\n const isHex = char === 'x' || char === 'X'\n\n if (json5 && (isOctal || isHex)) {\n while (position < inputLength &&\n (isHex ? isHexDigit : isOctDigit)(input[position])) {\n ++position\n }\n\n let sign = 1\n if (input[start] === '-') {\n sign = -1\n ++start\n } else if (input[start] === '+') {\n ++start\n }\n\n return sign * toNumber(isOctal)\n }\n }\n\n if (char === '.') {\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n if (char === 'e' || char === 'E') {\n char = input[position++]\n if (char === '-' || char === '+') {\n ++position\n }\n // ex: -5982475.249875e+29384\n // ^^^ skipping these\n while (position < inputLength && isDecDigit(input[position])) {\n ++position\n }\n char = input[position++]\n }\n\n // we have char in the buffer, so count for it\n --position\n return toNumber()\n }\n\n function parseIdentifier () {\n // rewind because we don't know first char\n --position\n\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === '\\\\' &&\n input[position] === 'u' &&\n isHexDigit(input[position + 1]) &&\n isHexDigit(input[position + 2]) &&\n isHexDigit(input[position + 3]) &&\n isHexDigit(input[position + 4])) {\n // UnicodeEscapeSequence\n char = String.fromCharCode(Number.parseInt(input.substr(position + 1, 4), 16))\n position += 5\n }\n\n if (result.length) {\n // identifier started\n if (Uni.isIdentifierPart(char)) {\n result += char\n } else {\n --position\n return result\n }\n } else {\n if (Uni.isIdentifierStart(char)) {\n result += char\n } else {\n return undefined\n }\n }\n }\n\n fail()\n }\n\n function parseString (endChar) {\n // 7.8.4 of ES262 spec\n let result = ''\n while (position < inputLength) {\n let char = input[position++]\n if (char === endChar) {\n return result\n }if (char === '\\\\') {\n if (position >= inputLength) {\n fail()\n }\n char = input[position++]\n if (unescapeMap[char] && (json5 || (char !== 'v' && (char !== \"'\" || allowSingleQuotedStrings)))) {\n result += unescapeMap[char]\n } else if (json5 && isLineTerminator(char)) {\n // line continuation\n newLine(char)\n } else if (char === 'u' || (char === 'x' && json5)) {\n // unicode/character escape sequence\n const count = char === 'u' ? 4 : 2\n // validation for \\uXXXX\n for (let i = 0; i < count; ++i) {\n if (position >= inputLength) {\n fail()\n }\n if (!isHexDigit(input[position])) {\n fail('Bad escape sequence')\n }\n position++\n }\n result += String.fromCharCode(Number.parseInt(input.substr(position - count, count), 16))\n } else if (json5 && isOctDigit(char)) {\n let digits\n if (char < '4' && isOctDigit(input[position]) && isOctDigit(input[position + 1])) {\n // three-digit octal\n digits = 3\n } else if (isOctDigit(input[position])) {\n // two-digit octal\n digits = 2\n } else {\n digits = 1\n }\n position += digits - 1\n result += String.fromCharCode(Number.parseInt(input.substr(position - digits, digits), 8))\n } else if (json5) {\n // \\X -> x\n result += char\n } else {\n --position\n fail()\n }\n } else if (isLineTerminator(char)) {\n fail()\n } else {\n if (!json5 && char.charCodeAt(0) < 32) {\n --position\n fail('Unexpected control character')\n }\n // SourceCharacter but not one of \" or \\ or LineTerminator\n result += char\n }\n }\n\n fail()\n }\n\n if (ignoreBOM) {\n skipBOM()\n }\n skipWhiteSpace()\n let returnValue = parseGeneric()\n if (returnValue !== undefined || position < inputLength) {\n skipWhiteSpace()\n if (position >= inputLength) {\n if (reviver) {\n returnValue = reviver('', returnValue)\n }\n return tokenize ? tokens : returnValue\n }\n fail()\n } else {\n if (position) {\n fail('No data, only a whitespace')\n } else {\n fail('No data, empty input')\n }\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseCustom (input, options) {\n if (typeof options === 'function') {\n options = {\n reviver: options\n }\n } else if (!options) {\n options = {}\n }\n return parseInternal(input, options)\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction tokenize (input, options) {\n if (!options) {\n options = {}\n }\n // As long as this is the single modification, this is easier than cloning.\n // (Once Node.js 6 is dropped, this can be replaced by object destructuring.)\n const oldTokenize = options.tokenize\n options.tokenize = true\n const tokens = parseInternal(input, options)\n options.tokenize = oldTokenize\n return tokens\n}\nfunction escapePointerToken (token) {\n return token\n .toString()\n .replace(/~/g, '~0')\n .replace(/\\//g, '~1')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pathToPointer (tokens) {\n if (tokens.length === 0) {\n return ''\n }\n return `/${tokens\n .map(escapePointerToken)\n .join('/')}`\n}\n\nfunction unescapePointerToken (token) {\n return token\n .replace(/~1/g, '/')\n .replace(/~0/g, '~')\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction pointerToPath (pointer) {\n if (pointer === '') {\n return []\n }\n if (pointer[0] !== '/') {\n throw new Error('Missing initial \"/\" in the reference')\n }\n return pointer\n .substr(1)\n .split('/')\n .map(unescapePointerToken)\n}\nfunction getLineAndColumn (input, offset) {\n const lines = input\n .substr(0, offset)\n .split(/\\r?\\n/)\n const line = lines.length\n const column = lines[line - 1].length + 1\n return {\n line,\n column\n }\n}\n\nfunction getOffset (input, line, column) {\n if (line > 1) {\n const breaks = /\\r?\\n/g\n let match\n while ((match = breaks.exec(input))) {\n if (--line === 1) {\n return match.index + column\n }\n }\n }\n return column - 1\n}\n\nfunction pastInput (input, offset) {\n const start = Math.max(0, offset - 20)\n const previous = input.substr(start, offset - start)\n return (offset > 20 ? '...' : '') + previous.replace(/\\r?\\n/g, '')\n}\n\nfunction upcomingInput (input, offset) {\n let start = Math.max(0, offset - 20)\n start += offset - start\n const rest = input.length - start\n const next = input.substr(start, Math.min(20, rest))\n return next.replace(/\\r?\\n/g, '') + (rest > 20 ? '...' : '')\n}\n\nfunction getPositionContext (input, offset) {\n const past = pastInput(input, offset)\n const upcoming = upcomingInput(input, offset)\n const pointer = `${new Array(past.length + 1).join('-')}^`\n return {\n excerpt: past + upcoming,\n pointer\n }\n}\n\nfunction getReason (error) {\n let message = error.message\n .replace('JSON.parse: ', '') // SpiderMonkey\n .replace('JSON Parse error: ', '') // SquirrelFish\n const firstCharacter = message.charAt(0)\n if (firstCharacter >= 'a') {\n message = firstCharacter.toUpperCase() + message.substr(1)\n }\n return message\n}\n\nfunction getLocationOnV8 (input, reason) {\n const match = / in JSON at position (\\d+)$/.exec(reason)\n if (match) {\n const offset = +match[1]\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction checkUnexpectedEndOnV8 (input, reason) {\n const match = / end of JSON input$/.exec(reason)\n if (match) {\n const offset = input.length\n const location = getLineAndColumn(input, offset)\n return {\n offset,\n line: location.line,\n column: location.column,\n reason: reason.substr(0, match.index + 4)\n }\n }\n}\n\nfunction getLocationOnSpiderMonkey (input, reason) {\n const match = / at line (\\d+) column (\\d+) of the JSON data$/.exec(reason)\n if (match) {\n const line = +match[1]\n const column = +match[2]\n const offset = getOffset(input, line, column) // eslint-disable-line no-undef\n return {\n offset,\n line,\n column,\n reason: reason.substr(0, match.index)\n }\n }\n}\n\nfunction getTexts (reason, input, offset, line, column) {\n const position = getPositionContext(input, offset)\n const excerpt = position.excerpt\n let message\n let pointer\n if (typeof line === 'number') {\n pointer = position.pointer\n message = `Parse error on line ${line}, column ${column}:\\n${excerpt}\\n${pointer}\\n${reason}`\n } else {\n message = `Parse error in JSON input:\\n${excerpt}\\n${reason}`\n }\n return {\n message,\n excerpt,\n pointer\n }\n}\n\nfunction improveNativeError (input, error) {\n let reason = getReason(error)\n const location = getLocationOnV8(input, reason) ||\n checkUnexpectedEndOnV8(input, reason) ||\n getLocationOnSpiderMonkey(input, reason)\n let offset\n let line\n let column\n if (location) {\n offset = location.offset\n line = location.line\n column = location.column\n reason = location.reason\n } else {\n offset = 0\n }\n error.reason = reason\n const texts = getTexts(reason, input, offset, line, column)\n error.message = texts.message\n error.excerpt = texts.excerpt\n if (texts.pointer) {\n error.pointer = texts.pointer\n error.location = {\n start: {\n column,\n line,\n offset\n }\n }\n }\n return error\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parseNative (input, reviver) {\n try {\n return JSON.parse(input, reviver)\n } catch (error) {\n const newError = improveNativeError(input, error)\n if (error.location) throw newError\n // If the native error didn't contain location, parse once more\n // by the custom parser, which always provides the error location.\n return parseCustom (input, reviver)\n }\n}\n/* globals navigator, process, parseCustom, parseNative */\n\nconst isSafari = typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor)\nconst oldNode = typeof process !== 'undefined' && process.version.startsWith('v4.')\n\nfunction needsCustomParser (options) {\n return options.ignoreBOM || options.ignoreComments || options.ignoreTrailingCommas ||\n options.allowSingleQuotedStrings || options.allowDuplicateObjectKeys === false ||\n options.ignoreProtoKey || options.ignorePrototypeKeys || options.mode === 'cjson' ||\n options.mode === 'json5' || isSafari || oldNode\n}\n\nfunction getReviver (options) {\n if (typeof options === 'function') {\n return options\n }if (options) {\n return options.reviver\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction parse (input, options) {\n options || (options = {})\n return needsCustomParser(options)\n ? parseCustom(input, options)\n : parseNative(input, getReviver(options))\n}\n\n exports.parse = parse\n exports.tokenize = tokenize\n exports.pathToPointer = pathToPointer\n exports.pointerToPath = pointerToPath\n\n exports.parseNative = parseNative\n exports.parseCustom = parseCustom\n exports.getErrorTexts = getTexts\n\n Object.defineProperty(exports, '__esModule', { value: true })\n}));\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["global", "factory", "exports", "Uni", "x", "isHexDigit", "isOctDigit", "isDecDigit", "isBOM", "unescapeMap", "ownsProperty", "emptyObject", "parseInternal", "input", "options", "json5", "ignoreBOM", "ignoreComments", "ignoreTrailingCommas", "ignoreProtoKey", "ignorePrototypeKeys", "allowSingleQuotedStrings", "allowDuplicateObjectKeys", "reviver", "tokenize", "rawTokens", "tokenLocations", "tokenPaths", "isLineTerminator", "isWhiteSpace", "inputLength", "lineNumber", "lineStart", "position", "tokens", "startToken", "endToken", "tokenPath", "tokenOffset", "tokenLine", "tokenColumn", "type", "value", "token", "generateMessage", "message", "createError", "column", "texts", "getTexts", "error", "fail", "newLine", "char", "parseGeneric", "string", "parseString", "parseObject", "parseArray", "number", "parseNumber", "parseKeyword", "parseKey", "result", "rollback", "parseIdentifier", "skipBOM", "skipWhiteSpace", "insideWhiteSpace", "startWhiteSpace", "endWhiteSpace", "skipComment", "multiLine", "keyword", "startPosition", "i", "keywordLength", "isNotEmpty", "key", "item", "start", "toNumber", "isOctal", "isHex", "sign", "endChar", "count", "digits", "returnValue", "parseCustom", "oldTokenize", "escapePointerToken", "pathToPointer", "unescapePointerToken", "pointerToPath", "pointer", "getLineAndColumn", "offset", "lines", "line", "getOffset", "breaks", "match", "pastInput", "previous", "upcomingInput", "rest", "getPositionContext", "past", "upcoming", "getReason", "firstCharacter", "getLocationOnV8", "reason", "location", "checkUnexpectedEndOnV8", "getLocationOnSpiderMonkey", "excerpt", "improveNativeError", "parseNative", "newError", "isSafari", "oldNode", "needsCustomParser", "getReviver", "parse"]
|
|
7
7
|
}
|
package/web/sorter.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(o,i){typeof exports=="object"&&typeof module<"u"?i(exports):typeof define=="function"&&define.amd?define("jsonlint-sorter",["exports"],i):(o=o||self,i(o.jsonlintSorter={}))})(this,function(o){"use strict";const i=Object.prototype.
|
|
1
|
+
(function(o,i){typeof exports=="object"&&typeof module<"u"?i(exports):typeof define=="function"&&define.amd?define("jsonlint-sorter",["exports"],i):(o=o||self,i(o.jsonlintSorter={}))})(this,function(o){"use strict";const i=Object.hasOwn,y=Object.prototype.toString;function u(e,{ignoreCase:c,locale:f,caseFirst:d,numeric:p}={}){if(Array.isArray(e))return e.map(u);if(y.call(e)!=="[object Object]")return e;const j={};let t;const n=[];for(t in e)i(e,t)&&n.push(t);if(f||d||p){f==="default"&&(f=void 0);const r={caseFirst:d,numeric:p};c&&(r.sensitivity="accent"),n.sort((s,O)=>s.localeCompare(O,f,r))}else c?n.sort((r,s)=>(r=r.toLowerCase(),s=s.toLowerCase(),r<s?-1:r>s?1:0)):n.sort();for(t=0;t<n.length;t++)j[n[t]]=u(e[n[t]]);return j}o.sortObject=u,Object.defineProperty(o,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=sorter.min.js.map
|
package/web/sorter.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../lib/sorter.js"],
|
|
4
|
-
"sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-sorter', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintSorter = {}))\n}(this, function (exports) {\n 'use strict'\n\n // from http://stackoverflow.com/questions/1359761/sorting-a-json-object-in-javascript\n const ownsProperty = Object.prototype.
|
|
5
|
-
"mappings": "CAAC,SAAUA,EAAQC,EAAS,CAC1B,OAAO,SAAY,UAAY,OAAO,OAAW,IAAcA,EAAQ,OAAO,EAC1E,OAAO,QAAW,YAAc,OAAO,IAAM,OAAO,kBAAmB,CAAC,SAAS,EAAGA,CAAO,GACxFD,EAASA,GAAU,KAAMC,EAAQD,EAAO,eAAiB,CAAC,CAAC,EACpE,GAAE,KAAM,SAAUE,EAAS,CACzB,aAGA,MAAMC,EAAe,OAAO,UAAU,
|
|
6
|
-
"names": ["global", "factory", "exports", "ownsProperty", "sortObject", "o", "ignoreCase", "locale", "caseFirst", "numeric", "sorted", "key", "a", "sortOptions", "l", "r"]
|
|
4
|
+
"sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports)\n : typeof define === 'function' && define.amd ? define('jsonlint-sorter', ['exports'], factory)\n : (global = global || self, factory(global.jsonlintSorter = {}))\n}(this, function (exports) {\n 'use strict'\n\n // from http://stackoverflow.com/questions/1359761/sorting-a-json-object-in-javascript\n const ownsProperty = Object.hasOwn\n const formatString = Object.prototype.toString\n function sortObject (o, { ignoreCase, locale, caseFirst, numeric } = {}) {\n if (Array.isArray(o)) {\n return o.map(sortObject)\n }if (formatString.call(o) !== '[object Object]') {\n return o\n }\n const sorted = {}\n let key\n const a = []\n for (key in o) {\n if (ownsProperty(o, key)) {\n a.push(key)\n }\n }\n if (locale || caseFirst || numeric) {\n if (locale === 'default') {\n locale = undefined\n }\n const sortOptions = { caseFirst, numeric }\n if (ignoreCase) {\n sortOptions.sensitivity = 'accent'\n }\n a.sort((l, r) => l.localeCompare(r, locale, sortOptions))\n } else if (ignoreCase) {\n a.sort((l, r) => {\n l = l.toLowerCase()\n r = r.toLowerCase()\n return l < r ? -1 : l > r ? 1 : 0\n })\n } else {\n a.sort()\n }\n for (key = 0; key < a.length; key++) {\n sorted[a[key]] = sortObject(o[a[key]])\n }\n return sorted\n }\n\n exports.sortObject = sortObject\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,kBAAmB,CAAC,SAAS,EAAGA,CAAO,GACxFD,EAASA,GAAU,KAAMC,EAAQD,EAAO,eAAiB,CAAC,CAAC,EACpE,GAAE,KAAM,SAAUE,EAAS,CACzB,aAGA,MAAMC,EAAe,OAAO,OACtBC,EAAe,OAAO,UAAU,SACtC,SAASC,EAAYC,EAAG,CAAE,WAAAC,EAAY,OAAAC,EAAQ,UAAAC,EAAW,QAAAC,CAAQ,EAAI,CAAC,EAAG,CACvE,GAAI,MAAM,QAAQJ,CAAC,EACjB,OAAOA,EAAE,IAAID,CAAU,EACxB,GAAID,EAAa,KAAKE,CAAC,IAAM,kBAC5B,OAAOA,EAET,MAAMK,EAAS,CAAC,EAChB,IAAIC,EACJ,MAAMC,EAAI,CAAC,EACX,IAAKD,KAAON,EACNH,EAAaG,EAAGM,CAAG,GACrBC,EAAE,KAAKD,CAAG,EAGd,GAAIJ,GAAUC,GAAaC,EAAS,CAC9BF,IAAW,YACbA,EAAS,QAEX,MAAMM,EAAc,CAAE,UAAAL,EAAW,QAAAC,CAAQ,EACrCH,IACFO,EAAY,YAAc,UAE5BD,EAAE,KAAK,CAACE,EAAGC,IAAMD,EAAE,cAAcC,EAAGR,EAAQM,CAAW,CAAC,CAC1D,MAAWP,EACTM,EAAE,KAAK,CAACE,EAAGC,KACTD,EAAIA,EAAE,YAAY,EAClBC,EAAIA,EAAE,YAAY,EACXD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAI,EACjC,EAEDH,EAAE,KAAK,EAET,IAAKD,EAAM,EAAGA,EAAMC,EAAE,OAAQD,IAC5BD,EAAOE,EAAED,CAAG,CAAC,EAAIP,EAAWC,EAAEO,EAAED,CAAG,CAAC,CAAC,EAEvC,OAAOD,CACT,CAEAT,EAAQ,WAAaG,EAErB,OAAO,eAAeH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAC9D,CAAC",
|
|
6
|
+
"names": ["global", "factory", "exports", "ownsProperty", "formatString", "sortObject", "o", "ignoreCase", "locale", "caseFirst", "numeric", "sorted", "key", "a", "sortOptions", "l", "r"]
|
|
7
7
|
}
|