quick-json5 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +7 -0
- package/README.md +66 -0
- package/dist/exports/Exports.d.ts +6 -0
- package/dist/exports/Exports.d.ts.map +1 -0
- package/dist/exports/Exports.js +6 -0
- package/dist/exports/Exports.js.map +1 -0
- package/dist/json/JsonEncoder.d.ts +3 -0
- package/dist/json/JsonEncoder.d.ts.map +1 -0
- package/dist/json/JsonEncoder.js +147 -0
- package/dist/json/JsonEncoder.js.map +1 -0
- package/dist/json/JsonParser.d.ts +3 -0
- package/dist/json/JsonParser.d.ts.map +1 -0
- package/dist/json/JsonParser.js +378 -0
- package/dist/json/JsonParser.js.map +1 -0
- package/dist/json5/Json5Encoder.d.ts +3 -0
- package/dist/json5/Json5Encoder.d.ts.map +1 -0
- package/dist/json5/Json5Encoder.js +155 -0
- package/dist/json5/Json5Encoder.js.map +1 -0
- package/dist/json5/Json5Parser.d.ts +3 -0
- package/dist/json5/Json5Parser.d.ts.map +1 -0
- package/dist/json5/Json5Parser.js +781 -0
- package/dist/json5/Json5Parser.js.map +1 -0
- package/dist/tests/Json5EncoderTest.d.ts +2 -0
- package/dist/tests/Json5EncoderTest.d.ts.map +1 -0
- package/dist/tests/Json5EncoderTest.js +44 -0
- package/dist/tests/Json5EncoderTest.js.map +1 -0
- package/dist/tests/Json5ParserTests.d.ts +3 -0
- package/dist/tests/Json5ParserTests.d.ts.map +1 -0
- package/dist/tests/Json5ParserTests.js +211 -0
- package/dist/tests/Json5ParserTests.js.map +1 -0
- package/dist/tests/JsonEncoderTests.d.ts +2 -0
- package/dist/tests/JsonEncoderTests.d.ts.map +1 -0
- package/dist/tests/JsonEncoderTests.js +44 -0
- package/dist/tests/JsonEncoderTests.js.map +1 -0
- package/dist/tests/JsonParserTests.d.ts +3 -0
- package/dist/tests/JsonParserTests.d.ts.map +1 -0
- package/dist/tests/JsonParserTests.js +140 -0
- package/dist/tests/JsonParserTests.js.map +1 -0
- package/dist/tests/Test.d.ts +2 -0
- package/dist/tests/Test.d.ts.map +1 -0
- package/dist/tests/Test.js +9 -0
- package/dist/tests/Test.js.map +1 -0
- package/dist/types/Types.d.ts +8 -0
- package/dist/types/Types.d.ts.map +1 -0
- package/dist/types/Types.js +2 -0
- package/dist/types/Types.js.map +1 -0
- package/dist/unused/Unused.d.ts +2 -0
- package/dist/unused/Unused.d.ts.map +1 -0
- package/dist/unused/Unused.js +47 -0
- package/dist/unused/Unused.js.map +1 -0
- package/dist/utilities/JsonParseError.d.ts +7 -0
- package/dist/utilities/JsonParseError.d.ts.map +1 -0
- package/dist/utilities/JsonParseError.js +10 -0
- package/dist/utilities/JsonParseError.js.map +1 -0
- package/dist/utilities/ObjectUtilities.d.ts +2 -0
- package/dist/utilities/ObjectUtilities.d.ts.map +1 -0
- package/dist/utilities/ObjectUtilities.js +142 -0
- package/dist/utilities/ObjectUtilities.js.map +1 -0
- package/dist/utilities/TypedArray.d.ts +4 -0
- package/dist/utilities/TypedArray.d.ts.map +1 -0
- package/dist/utilities/TypedArray.js +2 -0
- package/dist/utilities/TypedArray.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +17 -0
- package/dist/utilities/Utilities.d.ts.map +1 -0
- package/dist/utilities/Utilities.js +97 -0
- package/dist/utilities/Utilities.js.map +1 -0
- package/package.json +38 -0
- package/src/exports/Exports.ts +7 -0
- package/src/json/JsonEncoder.ts +180 -0
- package/src/json/JsonParser.ts +491 -0
- package/src/json5/Json5Encoder.ts +189 -0
- package/src/json5/Json5Parser.ts +959 -0
- package/src/tests/Json5EncoderTest.ts +51 -0
- package/src/tests/Json5ParserTests.ts +237 -0
- package/src/tests/JsonEncoderTests.ts +51 -0
- package/src/tests/JsonParserTests.ts +159 -0
- package/src/tests/Test.ts +13 -0
- package/src/types/Types.ts +9 -0
- package/src/unused/Unused.ts +51 -0
- package/src/utilities/JsonParseError.ts +7 -0
- package/src/utilities/ObjectUtilities.ts +184 -0
- package/src/utilities/TypedArray.ts +39 -0
- package/src/utilities/Utilities.ts +130 -0
- package/tsconfig.json +55 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json5Parser.js","sourceRoot":"","sources":["../../src/json5/Json5Parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json5EncoderTest.d.ts","sourceRoot":"","sources":["../../src/tests/Json5EncoderTest.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,SA8C/B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { stringify } from '../json5/Json5Encoder.js';
|
|
2
|
+
const print = console.log;
|
|
3
|
+
export function testJson5Encoder() {
|
|
4
|
+
const obj1 = {
|
|
5
|
+
hi: 123,
|
|
6
|
+
there: [
|
|
7
|
+
1,
|
|
8
|
+
2,
|
|
9
|
+
3
|
|
10
|
+
],
|
|
11
|
+
yo: {
|
|
12
|
+
boom: 'asdf',
|
|
13
|
+
ba: {
|
|
14
|
+
go: 65
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const obj2 = [
|
|
19
|
+
{
|
|
20
|
+
hi: 123,
|
|
21
|
+
there: [
|
|
22
|
+
1,
|
|
23
|
+
2,
|
|
24
|
+
3
|
|
25
|
+
],
|
|
26
|
+
yo: {
|
|
27
|
+
boom: 'asdf',
|
|
28
|
+
ba: {
|
|
29
|
+
go: 65
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
const obj = obj2;
|
|
35
|
+
const replacer = undefined;
|
|
36
|
+
const space = 4;
|
|
37
|
+
const reference = JSON.stringify(obj, replacer, space);
|
|
38
|
+
const result = stringify(obj, replacer, space);
|
|
39
|
+
print('JSON.stringify:');
|
|
40
|
+
print(reference);
|
|
41
|
+
print('\n\nencodeJson:');
|
|
42
|
+
print(result);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Json5EncoderTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json5EncoderTest.js","sourceRoot":"","sources":["../../src/tests/Json5EncoderTest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAA;AAEzB,MAAM,UAAU,gBAAgB;IAC/B,MAAM,IAAI,GAAG;QACZ,EAAE,EAAE,GAAG;QACP,KAAK,EAAE;YACN,CAAC;YACD,CAAC;YACD,CAAC;SACD;QACD,EAAE,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE;gBACH,EAAE,EAAE,EAAE;aACN;SACD;KACD,CAAA;IAED,MAAM,IAAI,GAAG;QACZ;YACC,EAAE,EAAE,GAAG;YACP,KAAK,EAAE;gBACN,CAAC;gBACD,CAAC;gBACD,CAAC;aACD;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE;oBACH,EAAE,EAAE,EAAE;iBACN;aACD;SACD;KACD,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,CAAA;IAEhB,MAAM,QAAQ,GAAG,SAAS,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAA;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE9C,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,SAAS,CAAC,CAAA;IAEhB,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,MAAM,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json5ParserTests.d.ts","sourceRoot":"","sources":["../../src/tests/Json5ParserTests.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,SAsB9B;AAED,wBAAgB,4BAA4B,SAkB3C"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { parse } from '../json5/Json5Parser.js';
|
|
2
|
+
import { deepEquals } from '../utilities/ObjectUtilities.js';
|
|
3
|
+
const log = console.log;
|
|
4
|
+
export function testJson5Parser() {
|
|
5
|
+
for (const [source, expected] of testPairs) {
|
|
6
|
+
let parsedObj;
|
|
7
|
+
try {
|
|
8
|
+
parsedObj = parse(source, undefined, { enableExtensions: true });
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
log(`Error when parsing:`);
|
|
12
|
+
log(source);
|
|
13
|
+
log(``);
|
|
14
|
+
log(e.message);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!deepEquals(parsedObj, expected)) {
|
|
18
|
+
log(`JSON5 not parsed correctly:`);
|
|
19
|
+
log(source);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function testJson5ParserInvalidInputs() {
|
|
25
|
+
for (const invalidInput of invalidInputs) {
|
|
26
|
+
let parsedObj;
|
|
27
|
+
try {
|
|
28
|
+
parsedObj = parse(invalidInput);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
log(`Error when parsing:`);
|
|
32
|
+
log(invalidInput);
|
|
33
|
+
log(``);
|
|
34
|
+
log(e.message);
|
|
35
|
+
log(``);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`No error when parsing ${invalidInput}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const testPairs = [
|
|
42
|
+
['{}', {}],
|
|
43
|
+
['{"a":1}', { a: 1 }],
|
|
44
|
+
["{'a':1}", { a: 1 }],
|
|
45
|
+
['{a:1}', { a: 1 }],
|
|
46
|
+
['{a\\u200C:3}', { 'a\u200C': 3 }],
|
|
47
|
+
['{$_:1,_$:2,a\\u200C:3}', { $_: 1, _$: 2, 'a\u200C': 3 }],
|
|
48
|
+
['{ùńîċõďë:9}', { 'ùńîċõďë': 9 }],
|
|
49
|
+
['{\\u0061\\u0062:1,\\u0024\\u005F:2,\\u005F\\u0024:3}', { ab: 1, $_: 2, _$: 3 }],
|
|
50
|
+
['{"__proto__":1}', { "__proto__": 1 }],
|
|
51
|
+
['{abc:1,def:2}', { abc: 1, def: 2 }],
|
|
52
|
+
['{a:{b:2}}', { a: { b: 2 } }],
|
|
53
|
+
['[12341234123412341234n, "asdf"]', [12341234123412341234n, 'asdf']],
|
|
54
|
+
['[]', []],
|
|
55
|
+
['[1]', [1]],
|
|
56
|
+
['[1,2]', [1, 2]],
|
|
57
|
+
['[1,[2,3]]', [1, [2, 3]]],
|
|
58
|
+
['[[]]', [[]]],
|
|
59
|
+
['[[[],[[[[1, false, null, "hi"]]]]]]', [[[], [[[[1, false, null, "hi"]]]]]]],
|
|
60
|
+
['null', null],
|
|
61
|
+
['true', true],
|
|
62
|
+
['false', false],
|
|
63
|
+
['[0,0.,0e0]', [0, 0, 0]],
|
|
64
|
+
['[1,23,456,7890]', [1, 23, 456, 7890]],
|
|
65
|
+
['[-1,+2,-.1,-0]', [-1, 2, -0.1, -0]],
|
|
66
|
+
['[.1,.23]', [0.1, 0.23]],
|
|
67
|
+
['[1.0,1.23]', [1, 1.23]],
|
|
68
|
+
['[1e0,1e1,1e01,1.e0,1.1e0,1e-1,1e+1]', [1, 10, 10, 1, 1.1, 0.1, 10]],
|
|
69
|
+
['[0x1,0x10,0xff,0xFF]', [1, 16, 255, 255]],
|
|
70
|
+
['[Infinity,-Infinity]', [Infinity, -Infinity]],
|
|
71
|
+
['NaN', NaN],
|
|
72
|
+
['-NaN', NaN],
|
|
73
|
+
['1', 1],
|
|
74
|
+
['+1.23e100', 1.23e+100],
|
|
75
|
+
['+1.23e-100', 1.23e-100],
|
|
76
|
+
['0x1', 0x1],
|
|
77
|
+
['+0x01b23A4', +0x01b23A4],
|
|
78
|
+
['-0x0123456789abcdefABCDEF', -0x0123456789abcdefABCDEF],
|
|
79
|
+
['"abc"', 'abc'],
|
|
80
|
+
["'abc'", 'abc'],
|
|
81
|
+
[`['"', "'"]`, ['"', "'"]],
|
|
82
|
+
[`['', ""]`, ['', '']],
|
|
83
|
+
['{//hey\r\n}', {}],
|
|
84
|
+
['{//hey\r\n x: 1234 //yo\n}', { x: 1234 }],
|
|
85
|
+
['{ /*Comment!\n\r\n*/ }', {}],
|
|
86
|
+
['{ /*Comment 1!\n\r\n*/ x: 1234 /* Comment 2! */ }', { x: 1234 }],
|
|
87
|
+
['{\t\v\f \u00A0\uFEFF\n\r\u2028\u2029\u2003}', {}],
|
|
88
|
+
[`'\\u01fF'`, `\u01fF`],
|
|
89
|
+
[`'abc\\u01fFabc'`, `abc\u01fFabc`],
|
|
90
|
+
[`'\\x12'`, `\x12`],
|
|
91
|
+
[`'abc\\x12abc'`, `abc\x12abc`],
|
|
92
|
+
[`'😅hey🙃'`, `😅hey🙃`],
|
|
93
|
+
[`'\\u01fF\\\n\\\r\n\\\r\\\u2028\\\u2029\\a\\'\\"'`, `\u01FF\a'"`],
|
|
94
|
+
[`'a\\\nb'`, 'ab'],
|
|
95
|
+
[`'a\\\r\nb'`, 'ab'],
|
|
96
|
+
[`"a\\\u2028b"`, 'ab'],
|
|
97
|
+
[`'a\\\u2029b'`, 'ab'],
|
|
98
|
+
[`'\\b\\f\\n\\r\\t\\v\\0\\x0f\\u01fF\\\n\\\r\n\\\r\\\u2028\\\u2029\\a\\'\\"'`, `\b\f\n\r\t\v\0\x0f\u01FF\a'"`],
|
|
99
|
+
[`'hey \u2028 p \u2029 there'`, `hey \u2028 p \u2029 there`], // \u2028 and \u2029 can be used in string
|
|
100
|
+
[`'hey \\\u2028\\\u2029 there'`, `hey there`], // \u2028 and \u2029 can be used for line continuation
|
|
101
|
+
['"unicode \\u263A"', 'unicode ☺'], // unicode escape sequence
|
|
102
|
+
['"surrogate pair: \\uD834\\uDD1E"', 'surrogate pair: 𝄞'], // surrogate pair unicode
|
|
103
|
+
[' { } ', {}], // Whitespace around object
|
|
104
|
+
[' [ ] ', []], // Whitespace around array
|
|
105
|
+
[' { "a" : 1 } ', { a: 1 }], // Whitespace around key-value colon
|
|
106
|
+
[' { "a" : 1 , } ', { a: 1 }], // Whitespace around trailing comma
|
|
107
|
+
[' [ 1 , 2 ] ', [1, 2]], // Whitespace around array commas
|
|
108
|
+
[' " abc " ', ' abc '], // Whitespace inside string
|
|
109
|
+
[' \t\r\n{\t\r\n"a"\t\r\n:\t\r\n1\t\r\n}\t\r\n ', { a: 1 }], // Extensive whitespace everywhere
|
|
110
|
+
['\u00A0{\u2003}\uFEFF', {}], // Unicode whitespace characters
|
|
111
|
+
['\u000B{\u000C}', {}], // More whitespace characters (vertical tab, form feed)
|
|
112
|
+
['// comment\n{}', {}], // Comment before object
|
|
113
|
+
['{}// comment', {}], // Comment after object
|
|
114
|
+
['[] // comment', []], // Comment after array
|
|
115
|
+
['// comment\n[]', []], // Comment before array
|
|
116
|
+
['{\n // comment\n "a": 1\n}', { a: 1 }], // Comment inside object - before key-value
|
|
117
|
+
['{\n "a": // comment\n 1\n}', { a: 1 }], // Comment inside object - between key and value
|
|
118
|
+
[`{\n 'a': 1 // comment\n}`, { a: 1 }], // Comment inside object - after value
|
|
119
|
+
['[\n // comment\n 1,\n 2\n]', [1, 2]], // Comment inside array - before element
|
|
120
|
+
['[\n 1, // comment\n 2\n]', [1, 2]], // Comment inside array - between elements
|
|
121
|
+
['[\n 1,\n 2 // comment\n]', [1, 2]], // Comment inside array - after element
|
|
122
|
+
['/* multi-line comment */ {}', {}], // Multi-line comment before object
|
|
123
|
+
['{} /* multi-line comment */', {}], // Multi-line comment after object
|
|
124
|
+
['/*\nmulti\nline\ncomment\n*/ {}', {}], // Multi-line comment with newlines
|
|
125
|
+
['{\n /* multi-line\n comment */\n "a": 1\n}', { a: 1 }], // Multi-line comment inside object
|
|
126
|
+
['{\n "a": 1, /*\n multi-line\n comment */\n}', { a: 1 }], // Multi-line comment at the end of object
|
|
127
|
+
['// single-line comment\n{ "a": 1 } /* multi-line comment */ // another single-line', { a: 1 }], // Mixed comments
|
|
128
|
+
['{\n "a": 1, // single-line comment\n "b": 2 /* multi-line comment */\n}', { a: 1, b: 2 }], // Comments interspersed in object
|
|
129
|
+
['/* comment before */{/* comment inside object */}/* comment after */', {}], // Comments around and inside object
|
|
130
|
+
['/* comment before */[/* comment inside array */]/* comment after */', []], // Comments around and inside array
|
|
131
|
+
['{ "a": 1, }', { a: 1 }], // Trailing comma in object
|
|
132
|
+
['[ 1, 2, ]', [1, 2]], // Trailing comma in array
|
|
133
|
+
['{ "a": 1 ,}', { a: 1 }], // Trailing comma with whitespace
|
|
134
|
+
['[ 1, 2 ,]', [1, 2]], // Trailing comma with whitespace in array
|
|
135
|
+
['{ "a": 1 , // comment\n}', { a: 1 }], // Trailing comma with comment
|
|
136
|
+
['[ 1, 2 , // comment\n]', [1, 2]], // Trailing comma with comment in array
|
|
137
|
+
['{ ùńîċõďë: 1 , \t\r\n}', { ùńîċõďë: 1 }], // Trailing comma with various whitespace
|
|
138
|
+
['[ 1, 2 , \t\r\n]', [1, 2]], // Trailing comma with various whitespace in array
|
|
139
|
+
['[ 1, 2 \t\r\n , \t\r\n]', [1, 2]], // Trailing comma with various whitespace before and after it
|
|
140
|
+
['{ "a": 1, /* comment */ }', { a: 1 }], // Trailing comma position, but no comma - still valid
|
|
141
|
+
['[ 1, 2, /* comment */ ]', [1, 2]], // Trailing comma position, but no comma in array - still valid
|
|
142
|
+
[`{ '😅hey🙃': 123 /* comment */, }`, { '😅hey🙃': 123 }], // Emojis in key
|
|
143
|
+
['[0.0, 0.00, 0.000]', [0, 0, 0]], // Zero with multiple decimal places
|
|
144
|
+
['[12345678901234567890]', [12345678901234567890]], // Large integer
|
|
145
|
+
['[-12345678901234567890]', [-12345678901234567890]], // Large negative integer
|
|
146
|
+
['[1e+100, 1e-100, 1e100]', [1e+100, 1e-100, 1e+100]], // Large and small exponents
|
|
147
|
+
['[1.23456789e+100, 1.23456789e-100]', [1.23456789e+100, 1.23456789e-100]], // Decimal with large/small exponents
|
|
148
|
+
['[0x0, 0x9, 0xa, 0xf, 0xA, 0xF]', [0, 9, 10, 15, 10, 15]], // Hex digits (mixed case)
|
|
149
|
+
['[0x1234567890abcdef]', [0x1234567890abcdef]], // Long hex number
|
|
150
|
+
['[-0x1234567890abcdef]', [-0x1234567890abcdef]], // Negative long hex number
|
|
151
|
+
['[+Infinity, -Infinity, NaN]', [Infinity, -Infinity, NaN]], // Explicit signs for Infinity and NaN
|
|
152
|
+
['[+NaN]', [NaN]], // Plus NaN
|
|
153
|
+
['[0., 1., 10., 100.]', [0, 1, 10, 100]], // Trailing decimal points
|
|
154
|
+
['[.0, .1, .123]', [0, 0.1, 0.123]], // Leading decimal points
|
|
155
|
+
['[123e0, 123e+0, 123e-0]', [123, 123, 123]], // Exponent with zero sign
|
|
156
|
+
['[123E0, 123E+0, 123E-0]', [123, 123, 123]], // Uppercase E exponent
|
|
157
|
+
['[123.456e7, 123.456E7]', [123.456e7, 123.456e7]], // Decimal and exponent
|
|
158
|
+
['[123.e7, 123.E7]', [123.e7, 123.e7]], // Decimal point before exponent
|
|
159
|
+
['[+0, -0]', [+0, -0]], // Positive and negative zero (important distinction in JS)
|
|
160
|
+
['[0e+10]', [0]], // Zero with exponent
|
|
161
|
+
['[18446744073709551616]', [18446744073709552000]], // Number larger than MAX_SAFE_INTEGER - might lose precision
|
|
162
|
+
['[-18446744073709551616]', [-18446744073709552000]], // Negative number larger than MAX_SAFE_INTEGER
|
|
163
|
+
['[5e-324]', [5e-324]], // Smallest positive number
|
|
164
|
+
['[-5e-324]', [-5e-324]], // Smallest negative number
|
|
165
|
+
[`{ identifierKey: 1 }`, { identifierKey: 1 }], // Identifier key
|
|
166
|
+
[`{ $identifier: 1 }`, { $identifier: 1 }], // Identifier starting with $
|
|
167
|
+
[`{ _identifier: 1 }`, { _identifier: 1 }], // Identifier starting with _
|
|
168
|
+
[`{ identifier_123: 1 }`, { identifier_123: 1 }], // Identifier with numbers and underscore
|
|
169
|
+
[`{ unicodeIdentifier\u200C: 1 }`, { 'unicodeIdentifier\u200C': 1 }], // Unicode identifier
|
|
170
|
+
[`{ "stringKey": 1 }`, { stringKey: 1 }], // String key (already in original tests, but good to keep)
|
|
171
|
+
[`{ "": 1 }`, { "": 1 }], // Empty string key
|
|
172
|
+
[`{ "key with spaces": 1 }`, { 'key with spaces': 1 }], // String key with spaces
|
|
173
|
+
[`{ 'key.with.dots': 1 }`, { 'key.with.dots': 1 }], // String key with dots
|
|
174
|
+
[`{ "key-with-hyphens": 1 }`, { 'key-with-hyphens': 1 }], // String key with hyphens
|
|
175
|
+
[`{ '123key': 1 }`, { '123key': 1 }], // String key starting with number
|
|
176
|
+
[`{ "key with unicode \u200C": 1 }`, { 'key with unicode \u200C': 1 }], // String key with unicode
|
|
177
|
+
[`{ key1: 1, "key1": 2 }`, { key1: 2 }], // Duplicate keys - last one wins (common behavior, but spec allows other interpretations)
|
|
178
|
+
[`{ __proto__: 1 }`, { __proto__: 1 }], // "__proto__" key - important for security considerations in JS environments
|
|
179
|
+
[`{ constructor: 1 }`, { constructor: 1 }], // "constructor" key - also relevant for JS security
|
|
180
|
+
[`{ 'hasOwnProperty': 1 }`, { 'hasOwnProperty': 1 }], // "hasOwnProperty" key - another JS object property
|
|
181
|
+
['{ // comment\n "a" : /* comment */ 1 , // comment\n }', { a: 1 }], // Comments and whitespace around key-value and trailing comma
|
|
182
|
+
['[ /* comment */ 1 , // comment\n 2 , /* comment */ ]', [1, 2]], // Comments and whitespace in array with trailing comma
|
|
183
|
+
['{ a /* comment */ : /* comment */ 1 }', { a: 1 }], // Comments inside key-value pair
|
|
184
|
+
['[ 1 /* comment */ , /* comment */ 2 ]', [1, 2]], // Comments inside array elements
|
|
185
|
+
['{ "a" : /* comment */ [\n 1,\r\n 2,\n ] }', { a: [1, 2] }], // Comment inside nested structure
|
|
186
|
+
['/* comment */ { /* comment */ "a" /* comment */ : /* comment */ 1 /* comment */ } /* comment */', { a: 1 }], // Comments everywhere
|
|
187
|
+
['\t\r\n// comment\n/* multi-line */\u00A0{\u2003"a":1,\n} \uFEFF', { a: 1 }], // Extreme whitespace and comments
|
|
188
|
+
['{ a: +1.23e10 // comment \n, }', { a: 1.23e+10 }], // Number with explicit plus and exponent, comment and trailing comma
|
|
189
|
+
['[ 0xdecaf, 0Xdecaf, "string\\\ncontinuation" , ]', [0xdecaf, 0xdecaf, 'stringcontinuation']], // Mixed number type, string continuation, trailing comma in array
|
|
190
|
+
// Extensions to JSON5:
|
|
191
|
+
// Octal literals, binary literals, big integers, underscore separators
|
|
192
|
+
['[0o1234, 0b01000101, 12341234123412341234n]', [0o1234, 0b01000101, 12341234123412341234n]], // Zero with multiple decimal places
|
|
193
|
+
['[0x1234_abc_1234_abc, 0o1234_1234, 0b01_0001_01, 1234_1234123_4123412_34n]', [0x1234_abc_1234_abc, 0o1234_1234, 0b01_0001_01, 12341234123412341234n]], // Zero with multiple decimal places
|
|
194
|
+
];
|
|
195
|
+
const invalidInputs = [
|
|
196
|
+
// === Invalid JSON (should fail strict parsers) ===
|
|
197
|
+
'[1,2,3 trailing]', // garbage after array
|
|
198
|
+
'{ "a": undefined }', // undefined literal
|
|
199
|
+
'1,2,,3]', // double comma
|
|
200
|
+
'{,}', // comma without key-value
|
|
201
|
+
'[}', // mismatched brackets
|
|
202
|
+
'{"a":}', // missing value
|
|
203
|
+
'{"a":1 "b":2}', // missing comma between pairs
|
|
204
|
+
'{"a":1,, "b":2}', // double comma
|
|
205
|
+
'{"a":1, "b":2 "c":3}', // missing comma
|
|
206
|
+
'{"a":1 "b":2}', // missing comma
|
|
207
|
+
'"multi\nline"', // literal newline in string (invalid JSON, should fail)
|
|
208
|
+
'[1,,2]', // sparse array (non-standard, should fail in strict JSON parsers)
|
|
209
|
+
'012341234n'
|
|
210
|
+
];
|
|
211
|
+
//# sourceMappingURL=Json5ParserTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json5ParserTests.js","sourceRoot":"","sources":["../../src/tests/Json5ParserTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,MAAM,UAAU,eAAe;IAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,SAAkB,CAAA;QAEtB,IAAI,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACjB,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAA;YACX,GAAG,CAAC,EAAE,CAAC,CAAA;YACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAEd,OAAM;QACP,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAClC,GAAG,CAAC,MAAM,CAAC,CAAA;YAEX,OAAM;QACP,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,IAAI,SAAc,CAAA;QAElB,IAAI,CAAC;YACJ,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACjB,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAA;YACjB,GAAG,CAAC,EAAE,CAAC,CAAA;YACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YACd,GAAG,CAAC,EAAE,CAAC,CAAA;YAEP,SAAQ;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAA;IACzD,CAAC;AACF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAClC,CAAC,wBAAwB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC1D,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC,sDAAsD,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACvC,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9B,CAAC,iCAAiC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAEpE,CAAC,IAAI,EAAE,EAAE,CAAC;IACV,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,CAAC,MAAM,EAAE,IAAI,CAAC;IAEd,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,OAAO,EAAE,KAAK,CAAC;IAEhB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC,sBAAsB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,MAAM,EAAE,GAAG,CAAC;IACb,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,YAAY,EAAE,SAAS,CAAC;IACzB,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;IAC1B,CAAC,2BAA2B,EAAE,CAAC,wBAAwB,CAAC;IAExD,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtB,CAAC,aAAa,EAAE,EAAE,CAAC;IACnB,CAAC,4BAA4B,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC,wBAAwB,EAAE,EAAE,CAAC;IAC9B,CAAC,mDAAmD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAElE,CAAC,6CAA6C,EAAE,EAAE,CAAC;IAEnD,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACnC,CAAC,SAAS,EAAE,MAAM,CAAC;IACnB,CAAC,eAAe,EAAE,YAAY,CAAC;IAC/B,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,kDAAkD,EAAE,YAAY,CAAC;IAClE,CAAC,UAAU,EAAE,IAAI,CAAC;IAClB,CAAC,YAAY,EAAE,IAAI,CAAC;IACpB,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,cAAc,EAAE,IAAI,CAAC;IACtB,CAAC,4EAA4E,EAAE,8BAA8B,CAAC;IAC9G,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,EAAE,0CAA0C;IACxG,CAAC,8BAA8B,EAAE,YAAY,CAAC,EAAE,sDAAsD;IACtG,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,0BAA0B;IAC9D,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,EAAE,yBAAyB;IAErF,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,2BAA2B;IAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,0BAA0B;IACzC,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,oCAAoC;IACjE,CAAC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mCAAmC;IAClE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iCAAiC;IAC1D,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,2BAA2B;IACvD,CAAC,+CAA+C,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IAC/F,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,gCAAgC;IAC9D,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,uDAAuD;IAE/E,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,wBAAwB;IAChD,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,uBAAuB;IAC7C,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,sBAAsB;IAC7C,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,uBAAuB;IAC/C,CAAC,8BAA8B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,2CAA2C;IACvF,CAAC,8BAA8B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gDAAgD;IAC5F,CAAC,2BAA2B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sCAAsC;IAC/E,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,wCAAwC;IACnF,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0CAA0C;IAClF,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uCAAuC;IAC/E,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,mCAAmC;IACxE,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,kCAAkC;IACvE,CAAC,iCAAiC,EAAE,EAAE,CAAC,EAAE,mCAAmC;IAC5E,CAAC,kDAAkD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mCAAmC;IACnG,CAAC,sDAAsD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,0CAA0C;IAC9G,CAAC,oFAAoF,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB;IACnH,CAAC,2EAA2E,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACjI,CAAC,sEAAsE,EAAE,EAAE,CAAC,EAAE,oCAAoC;IAClH,CAAC,qEAAqE,EAAE,EAAE,CAAC,EAAE,mCAAmC;IAEhH,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,2BAA2B;IACtD,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0BAA0B;IACjD,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC;IAC5D,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,0CAA0C;IACjE,CAAC,0BAA0B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,8BAA8B;IACtE,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uCAAuC;IAC3E,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,yCAAyC;IACtF,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kDAAkD;IACjF,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6DAA6D;IACpG,CAAC,2BAA2B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sDAAsD;IAC/F,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,+DAA+D;IACpG,CAAC,mCAAmC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,gBAAgB;IAE3E,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC;IACvE,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,gBAAgB;IACpE,CAAC,yBAAyB,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,yBAAyB;IAC/E,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,4BAA4B;IACnF,CAAC,oCAAoC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,qCAAqC;IACjH,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,0BAA0B;IACtF,CAAC,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB;IAClE,CAAC,uBAAuB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,2BAA2B;IAC7E,CAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,sCAAsC;IACnG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW;IAC9B,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,0BAA0B;IACpE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,yBAAyB;IAC9D,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,0BAA0B;IACxE,CAAC,yBAAyB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,uBAAuB;IACrE,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,uBAAuB;IAC3E,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,gCAAgC;IACxE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,2DAA2D;IACnF,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB;IACvC,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,6DAA6D;IACjH,CAAC,yBAAyB,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,+CAA+C;IACrG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,2BAA2B;IACnD,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,2BAA2B;IAErD,CAAC,sBAAsB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB;IACjE,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B;IACzE,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B;IACzE,CAAC,uBAAuB,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,yCAAyC;IAC3F,CAAC,gCAAgC,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,qBAAqB;IAC3F,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,2DAA2D;IACrG,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB;IAC7C,CAAC,0BAA0B,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB;IACjF,CAAC,wBAAwB,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,uBAAuB;IAC3E,CAAC,2BAA2B,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B;IACpF,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACxE,CAAC,kCAAkC,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B;IAClG,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,0FAA0F;IACnI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,6EAA6E;IACrH,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,oDAAoD;IAChG,CAAC,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,oDAAoD;IAE1G,CAAC,wDAAwD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,8DAA8D;IACpI,CAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uDAAuD;IACzH,CAAC,uCAAuC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC;IACtF,CAAC,uCAAuC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iCAAiC;IACpF,CAAC,6CAA6C,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,kCAAkC;IAClG,CAAC,iGAAiG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,sBAAsB;IACrI,CAAC,iEAAiE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,kCAAkC;IACjH,CAAC,gCAAgC,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,qEAAqE;IAC1H,CAAC,kDAAkD,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,EAAE,kEAAkE;IAElK,uBAAuB;IACvB,uEAAuE;IACvE,CAAC,6CAA6C,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,oCAAoC;IAClI,CAAC,4EAA4E,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAwB,CAAC,CAAC,EAAE,oCAAoC;CAChM,CAAA;AAED,MAAM,aAAa,GAAa;IAC/B,oDAAoD;IACpD,kBAAkB,EAAE,sBAAsB;IAC1C,oBAAoB,EAAE,oBAAoB;IAC1C,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,0BAA0B;IACjC,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,eAAe,EAAE,8BAA8B;IAC/C,iBAAiB,EAAE,eAAe;IAClC,sBAAsB,EAAE,gBAAgB;IACxC,eAAe,EAAE,gBAAgB;IAEjC,eAAe,EAAE,wDAAwD;IACzE,QAAQ,EAAE,kEAAkE;IAE5E,YAAY;CACZ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonEncoderTests.d.ts","sourceRoot":"","sources":["../../src/tests/JsonEncoderTests.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,SA8C9B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { stringifyJSON as stringifyToJson } from '../json/JsonEncoder.js';
|
|
2
|
+
const print = console.log;
|
|
3
|
+
export function testJsonEncoder() {
|
|
4
|
+
const obj1 = {
|
|
5
|
+
hi: 123,
|
|
6
|
+
there: [
|
|
7
|
+
1,
|
|
8
|
+
2,
|
|
9
|
+
3
|
|
10
|
+
],
|
|
11
|
+
yo: {
|
|
12
|
+
boom: 'asdf',
|
|
13
|
+
ba: {
|
|
14
|
+
go: 65
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const obj2 = [
|
|
19
|
+
{
|
|
20
|
+
hi: 123,
|
|
21
|
+
there: [
|
|
22
|
+
1,
|
|
23
|
+
2,
|
|
24
|
+
3
|
|
25
|
+
],
|
|
26
|
+
yo: {
|
|
27
|
+
boom: 'asdf',
|
|
28
|
+
ba: {
|
|
29
|
+
go: 65
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
const obj = obj2;
|
|
35
|
+
const replacer = undefined;
|
|
36
|
+
const space = 4;
|
|
37
|
+
const reference = JSON.stringify(obj, replacer, space);
|
|
38
|
+
const result = stringifyToJson(obj, replacer, space);
|
|
39
|
+
print('JSON.stringify:');
|
|
40
|
+
print(reference);
|
|
41
|
+
print('\n\nencodeJson:');
|
|
42
|
+
print(result);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=JsonEncoderTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonEncoderTests.js","sourceRoot":"","sources":["../../src/tests/JsonEncoderTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAEzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAA;AAEzB,MAAM,UAAU,eAAe;IAC9B,MAAM,IAAI,GAAG;QACZ,EAAE,EAAE,GAAG;QACP,KAAK,EAAE;YACN,CAAC;YACD,CAAC;YACD,CAAC;SACD;QACD,EAAE,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE;gBACH,EAAE,EAAE,EAAE;aACN;SACD;KACD,CAAA;IAED,MAAM,IAAI,GAAG;QACZ;YACC,EAAE,EAAE,GAAG;YACP,KAAK,EAAE;gBACN,CAAC;gBACD,CAAC;gBACD,CAAC;aACD;YACD,EAAE,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE;oBACH,EAAE,EAAE,EAAE;iBACN;aACD;SACD;KACD,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,CAAA;IAEhB,MAAM,QAAQ,GAAG,SAAS,CAAA;IAC1B,MAAM,KAAK,GAAG,CAAC,CAAA;IAEf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAEpD,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,SAAS,CAAC,CAAA;IAEhB,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACxB,KAAK,CAAC,MAAM,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonParserTests.d.ts","sourceRoot":"","sources":["../../src/tests/JsonParserTests.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,SAoB7B;AAED,wBAAgB,2BAA2B,SAkB1C"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { parseJSON } from '../json/JsonParser.js';
|
|
2
|
+
import { deepEquals } from '../utilities/ObjectUtilities.js';
|
|
3
|
+
const log = console.log;
|
|
4
|
+
export function testJsonParser() {
|
|
5
|
+
for (const [source, expected] of testPairs) {
|
|
6
|
+
let parsedObj;
|
|
7
|
+
try {
|
|
8
|
+
parsedObj = parseJSON(source);
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
log(`Error when parsing:`);
|
|
12
|
+
log(source);
|
|
13
|
+
log(``);
|
|
14
|
+
log(e.message);
|
|
15
|
+
}
|
|
16
|
+
if (!deepEquals(parsedObj, expected)) {
|
|
17
|
+
log(`JSON not parsed correctly:`);
|
|
18
|
+
log(source);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function testJsonParserInvalidInputs() {
|
|
24
|
+
for (const invalidInput of invalidInputs) {
|
|
25
|
+
let parsedObj;
|
|
26
|
+
try {
|
|
27
|
+
parsedObj = parseJSON(invalidInput);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
log(`Error when parsing:`);
|
|
31
|
+
log(invalidInput);
|
|
32
|
+
log(``);
|
|
33
|
+
log(e.message);
|
|
34
|
+
log(``);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`No error when parsing:\n ${invalidInput}\n`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const testPairs = [
|
|
41
|
+
['[1,2]', [1, 2]], // multiple elements
|
|
42
|
+
// === String literals ===
|
|
43
|
+
['"x"', 'x'], // simple string
|
|
44
|
+
['""', ''], // empty string
|
|
45
|
+
['"hello world"', 'hello world'], // basic string with spaces
|
|
46
|
+
['"hello \\"world\\""', 'hello "world"'], // escaped quotes inside string
|
|
47
|
+
['"line\\nbreak"', 'line\nbreak'], // escaped newline
|
|
48
|
+
['"tab\\tcharacter"', 'tab\tcharacter'], // escaped tab
|
|
49
|
+
['"backslash\\\\test"', 'backslash\\test'], // escaped backslash
|
|
50
|
+
['"unicode \\u263A"', 'unicode ☺'], // unicode escape sequence
|
|
51
|
+
['"surrogate pair: \\uD834\\uDD1E"', 'surrogate pair: 𝄞'], // surrogate pair unicode
|
|
52
|
+
['"emoji: 😀"', 'emoji: 😀'], // literal emoji character
|
|
53
|
+
['"中文"', '中文'], // Chinese characters
|
|
54
|
+
['"Русский"', 'Русский'], // Cyrillic characters
|
|
55
|
+
['"العربية"', 'العربية'], // Arabic characters
|
|
56
|
+
['"𠜎"', '𠜎'], // supplementary plane CJK character
|
|
57
|
+
// === Numbers ===
|
|
58
|
+
['1234', 1234], // integer
|
|
59
|
+
['1234.5678', 1234.5678], // float
|
|
60
|
+
['0', 0], // zero
|
|
61
|
+
['-0', -0], // negative zero
|
|
62
|
+
['-123', -123], // negative integer
|
|
63
|
+
['-123.456', -123.456], // negative float
|
|
64
|
+
['1e10', 1e10], // positive exponent
|
|
65
|
+
['-1e10', -1e10], // negative exponent
|
|
66
|
+
['1E-10', 1e-10], // negative exponent with uppercase E
|
|
67
|
+
['123.456e7', 123.456e7], // Decimal and exponent
|
|
68
|
+
['123.456E7', 123.456E7], // Decimal and exponent
|
|
69
|
+
['0.0', 0.0], // zero float
|
|
70
|
+
['1.0e+2', 1.0e2], // positive exponent with plus sign
|
|
71
|
+
['1.2345678901234567', 1.2345678901234567], // double precision limit
|
|
72
|
+
['18446744073709551616', 18446744073709552000], // Number larger than MAX_SAFE_INTEGER - might lose precision
|
|
73
|
+
['-18446744073709551616', -18446744073709552000], // Negative number larger than MAX_SAFE_INTEGER
|
|
74
|
+
// === Booleans and null ===
|
|
75
|
+
['true', true], // boolean true
|
|
76
|
+
['false', false], // boolean false
|
|
77
|
+
['null', null], // null literal
|
|
78
|
+
// === Empty structures ===
|
|
79
|
+
['{}', {}], // empty object
|
|
80
|
+
['[]', []], // empty array
|
|
81
|
+
['[[]]', [[]]], // nested empty array
|
|
82
|
+
[' [ [ ] ] ', [[]]], // nested empty array with whitespace
|
|
83
|
+
[' [ { } ] ', [{}]], // array with empty object, whitespace
|
|
84
|
+
// === Arrays ===
|
|
85
|
+
['[1]', [1]], // single element array
|
|
86
|
+
['[1,2]', [1, 2]], // multiple elements
|
|
87
|
+
['[1,[2,3]]', [1, [2, 3]]], // nested arrays
|
|
88
|
+
['[true,false,null]', [true, false, null]], // mixed literals
|
|
89
|
+
['[ "a", "b", "c" ]', ['a', 'b', 'c']], // string array with spaces
|
|
90
|
+
[' [1 , 2 , 3 ] ', [1, 2, 3]], // number array with whitespace
|
|
91
|
+
['[{"a":1},{"b":2}]', [{ a: 1 }, { b: 2 }]], // array of objects
|
|
92
|
+
// === Objects ===
|
|
93
|
+
['{"a":1}', { a: 1 }], // simple object
|
|
94
|
+
['{"abc":1,"def":2}', { abc: 1, def: 2 }], // multiple key-value pairs
|
|
95
|
+
['{"":true,"a":6.123}', { '': true, a: 6.123 }], // empty string key and mixed values
|
|
96
|
+
['{"nested":{"x":1,"y":[2,3]}}', { nested: { x: 1, y: [2, 3] } }], // nested object and array
|
|
97
|
+
['{ "a" : 1 , "b" : 2 }', { a: 1, b: 2 }], // object with whitespace
|
|
98
|
+
['{"a":{"b":{"c":{"d":{}}}}}', { a: { b: { c: { d: {} } } } }], // deeply nested objects
|
|
99
|
+
['{"a": null, "b": true, "c": false}', { a: null, b: true, c: false }], // mixed value types
|
|
100
|
+
['{"arr":[1,2,3],"obj":{"x":10}}', { arr: [1, 2, 3], obj: { x: 10 } }], // nested array and object
|
|
101
|
+
['{"a":1,"a":2}', { a: 2 }], // duplicate keys, last one wins (per JSON spec)
|
|
102
|
+
// === Whitespace variations ===
|
|
103
|
+
[' \n\t 1234 ', 1234], // number with leading/trailing whitespace
|
|
104
|
+
[' \n\t "abc" \r\n ', 'abc'], // string with whitespace
|
|
105
|
+
['\n\t{\n\t"a"\t:\n1\n}\n', { a: 1 }], // object with whitespace around tokens
|
|
106
|
+
[' [ \n 1 , \n 2 , \n 3 \n ] ', [1, 2, 3]], // array with whitespace
|
|
107
|
+
[' { "a" : [ 1 , 2 , 3 ] } ', { a: [1, 2, 3] }], // nested with whitespace
|
|
108
|
+
// === Edge cases and special characters ===
|
|
109
|
+
['"\\u0000"', '\u0000'], // null character
|
|
110
|
+
['"\\b\\f\\n\\r\\t"', '\b\f\n\r\t'], // control characters escapes
|
|
111
|
+
['"\\/"', '/'], // escaped slash
|
|
112
|
+
['"\\\\"', '\\'], // escaped backslash
|
|
113
|
+
['"\\u2028"', '\u2028'], // line separator
|
|
114
|
+
['"\\u2029"', '\u2029'], // paragraph separator
|
|
115
|
+
['"multi\\nline"', 'multi\nline'], // escaped newline in string
|
|
116
|
+
];
|
|
117
|
+
const invalidInputs = [
|
|
118
|
+
'"multi\nline"', // literal newline in string (invalid JSON, should fail)
|
|
119
|
+
'{unquoted_key:1}', // unquoted key
|
|
120
|
+
"{'a':1}", // single quotes
|
|
121
|
+
'1,2,3 trailing]', // garbage after array
|
|
122
|
+
'{ "a": undefined }', // undefined literal
|
|
123
|
+
'{ "a": NaN }', // NaN literal
|
|
124
|
+
'{ "a": Infinity }', // Infinity literal
|
|
125
|
+
'1,2,,3]', // double comma
|
|
126
|
+
'1,2,3,]', // trailing comma
|
|
127
|
+
'{"a":1,}', // trailing comma in object
|
|
128
|
+
'{,}', // comma without key-value
|
|
129
|
+
'[}', // mismatched brackets
|
|
130
|
+
'{"a":}', // missing value
|
|
131
|
+
'{"a":1 "b":2}', // missing comma between pairs
|
|
132
|
+
'{"a":1, "b":2,}', // trailing comma
|
|
133
|
+
'{"a":1,, "b":2}', // double comma
|
|
134
|
+
'{"a":1, "b":2 "c":3}', // missing comma
|
|
135
|
+
'{"a":1 "b":2}', // missing comma
|
|
136
|
+
'[1,2,3,]', // trailing comma (non-standard, should fail in strict JSON parsers)
|
|
137
|
+
'[1,,2]', // sparse array (non-standard, should fail in strict JSON parsers)
|
|
138
|
+
'{"a":1,}', // trailing comma (non-standard, should fail in strict JSON parsers)
|
|
139
|
+
];
|
|
140
|
+
//# sourceMappingURL=JsonParserTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonParserTests.js","sourceRoot":"","sources":["../../src/tests/JsonParserTests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { testJson5Parser } from './Json5ParserTests.js';
|
|
2
|
+
import { testJsonParser } from './JsonParserTests.js';
|
|
3
|
+
//testJsonEncoder()
|
|
4
|
+
testJsonParser();
|
|
5
|
+
//testJsonParserInvalidInputs()
|
|
6
|
+
//testJson5Encoder()
|
|
7
|
+
testJson5Parser();
|
|
8
|
+
//testJson5ParserInvalidInputs()
|
|
9
|
+
//# sourceMappingURL=Test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAgC,MAAM,uBAAuB,CAAA;AAErF,OAAO,EAAE,cAAc,EAA+B,MAAM,sBAAsB,CAAA;AAElF,mBAAmB;AACnB,cAAc,EAAE,CAAA;AAChB,+BAA+B;AAE/B,oBAAoB;AACpB,eAAe,EAAE,CAAA;AACjB,gCAAgC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type JsonReplacerFunction = (key: string, value: any) => any;
|
|
2
|
+
export type JsonReplacerArray = (string | number)[];
|
|
3
|
+
export type JsonReplacerType = JsonReplacerFunction | JsonReplacerArray | null;
|
|
4
|
+
export type JsonReviverFunction = (key: string, value: any, context?: string) => any;
|
|
5
|
+
export interface Json5Options {
|
|
6
|
+
enableExtensions: boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/types/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;AACnD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,IAAI,CAAA;AAE9E,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,GAAG,CAAA;AAEpF,MAAM,WAAW,YAAY;IAC5B,gBAAgB,EAAE,OAAO,CAAA;CACzB"}
|