@fluixi/utils 1.0.0-alpha.100 → 1.0.0-alpha.101
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/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/lib/array/advanced.d.ts +0 -4
- package/dist/lib/array/advanced.d.ts.map +1 -1
- package/dist/lib/array/advanced.js +0 -4
- package/dist/lib/array/index.cjs +1 -1
- package/dist/lib/array/index.mjs +1 -1
- package/dist/lib/array/utils.d.ts.map +1 -1
- package/dist/lib/array/utils.js +0 -6
- package/dist/lib/color/conversions.d.ts +0 -103
- package/dist/lib/color/conversions.d.ts.map +1 -1
- package/dist/lib/color/conversions.js +0 -133
- package/dist/lib/color/helpers.d.ts +0 -7
- package/dist/lib/color/helpers.d.ts.map +1 -1
- package/dist/lib/color/helpers.js +0 -7
- package/dist/lib/color/index.cjs +1 -1
- package/dist/lib/color/index.d.ts +0 -5
- package/dist/lib/color/index.d.ts.map +1 -1
- package/dist/lib/color/index.js +0 -5
- package/dist/lib/color/index.mjs +1 -1
- package/dist/lib/color/types.d.ts +0 -10
- package/dist/lib/color/types.d.ts.map +1 -1
- package/dist/lib/color/utils.d.ts +0 -7
- package/dist/lib/color/utils.d.ts.map +1 -1
- package/dist/lib/color/utils.js +0 -99
- package/dist/lib/compare/comparators.js +2 -2
- package/dist/lib/compare/index.cjs +1 -1
- package/dist/lib/compare/index.mjs +1 -1
- package/dist/lib/cookie/index.cjs +1 -1
- package/dist/lib/cookie/index.mjs +1 -1
- package/dist/lib/dom/events.d.ts.map +1 -1
- package/dist/lib/dom/index.cjs +1 -1
- package/dist/lib/dom/index.mjs +1 -1
- package/dist/lib/functions/index.cjs +1 -1
- package/dist/lib/functions/index.mjs +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +0 -3
- package/dist/lib/maths/constants.cjs +1 -1
- package/dist/lib/maths/constants.d.ts +0 -15
- package/dist/lib/maths/constants.d.ts.map +1 -1
- package/dist/lib/maths/constants.js +0 -15
- package/dist/lib/maths/constants.mjs +1 -1
- package/dist/lib/maths/fn/advanced.d.ts.map +1 -1
- package/dist/lib/maths/fn/basic.d.ts.map +1 -1
- package/dist/lib/maths/fn/basic.js +0 -4
- package/dist/lib/maths/fn/index.cjs +1 -1
- package/dist/lib/maths/fn/index.mjs +1 -1
- package/dist/lib/maths/fn/trigo.d.ts.map +1 -1
- package/dist/lib/maths/fn/trigo.js +0 -2
- package/dist/lib/maths/fn/vector.d.ts.map +1 -1
- package/dist/lib/maths/fn/vector.js +0 -4
- package/dist/lib/maths/guards.cjs +1 -1
- package/dist/lib/maths/guards.d.ts.map +1 -1
- package/dist/lib/maths/guards.js +0 -2
- package/dist/lib/maths/guards.mjs +1 -1
- package/dist/lib/maths/index.cjs +1 -1
- package/dist/lib/maths/index.d.ts.map +1 -1
- package/dist/lib/maths/index.js +0 -3
- package/dist/lib/maths/index.mjs +1 -1
- package/dist/lib/maths/types/advanced.d.ts +0 -9
- package/dist/lib/maths/types/advanced.d.ts.map +1 -1
- package/dist/lib/maths/types/basic.d.ts.map +1 -1
- package/dist/lib/maths/types/index.cjs +1 -1
- package/dist/lib/maths/types/index.mjs +1 -1
- package/dist/lib/maths/types/operations.d.ts +0 -3
- package/dist/lib/maths/types/operations.d.ts.map +1 -1
- package/dist/lib/object/clone.d.ts.map +1 -1
- package/dist/lib/object/clone.js +0 -4
- package/dist/lib/object/diff.d.ts +0 -7
- package/dist/lib/object/diff.d.ts.map +1 -1
- package/dist/lib/object/diff.js +0 -8
- package/dist/lib/object/getter-setter.d.ts.map +1 -1
- package/dist/lib/object/getter-setter.js +0 -91
- package/dist/lib/object/index.cjs +1 -1
- package/dist/lib/object/index.mjs +1 -1
- package/dist/lib/object/merge.d.ts.map +1 -1
- package/dist/lib/object/merge.js +0 -22
- package/dist/lib/object/object.d.ts.map +1 -1
- package/dist/lib/object/object.js +0 -116
- package/dist/lib/object/omit.d.ts.map +1 -1
- package/dist/lib/object/omit.js +0 -4
- package/dist/lib/object/selector.d.ts.map +1 -1
- package/dist/lib/object/selector.js +0 -11
- package/dist/lib/object/sort.d.ts.map +1 -1
- package/dist/lib/object/sort.js +3 -4
- package/dist/lib/object/transform.d.ts.map +1 -1
- package/dist/lib/object/transform.js +0 -54
- package/dist/lib/object/types.d.ts +0 -15
- package/dist/lib/object/types.d.ts.map +1 -1
- package/dist/lib/primitive/boolean/boolean.cjs +0 -1
- package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -1
- package/dist/lib/primitive/boolean/boolean.js +0 -5
- package/dist/lib/primitive/boolean/boolean.mjs +0 -1
- package/dist/lib/primitive/boolean/index.cjs +0 -1
- package/dist/lib/primitive/boolean/index.mjs +0 -1
- package/dist/lib/primitive/boolean/types.d.ts +0 -3
- package/dist/lib/primitive/boolean/types.d.ts.map +1 -1
- package/dist/lib/primitive/date/date.d.ts.map +1 -1
- package/dist/lib/primitive/date/date.js +0 -89
- package/dist/lib/primitive/index.cjs +1 -2
- package/dist/lib/primitive/index.mjs +1 -2
- package/dist/lib/primitive/string/parser-2.d.ts.map +1 -1
- package/dist/lib/primitive/string/parser-2.js +0 -11
- package/dist/lib/primitive/string/parser.d.ts.map +1 -1
- package/dist/lib/primitive/string/parser.js +0 -433
- package/dist/lib/primitive/string/string.d.ts.map +1 -1
- package/dist/lib/primitive/string/string.js +0 -96
- package/dist/lib/primitive/string/types.d.ts.map +1 -1
- package/dist/lib/url/parser.d.ts.map +1 -1
- package/dist/lib/url/parser.js +0 -2
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/utils v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/utils v1.0.0-alpha.101 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/lib/primitive/string/parser.ts
|
|
4
4
|
function parseJsObjectLiteral(str, options = {}) {
|
|
@@ -835,7 +835,6 @@ var toBoolean = (value, strategy = "strict", debug = false) => {
|
|
|
835
835
|
return Boolean(value);
|
|
836
836
|
case "falsy":
|
|
837
837
|
return convertFalsy(value);
|
|
838
|
-
// return !convertFalsy(value);
|
|
839
838
|
case "string":
|
|
840
839
|
return convertFromString(value);
|
|
841
840
|
case "number":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-2.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/parser-2.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAcF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"parser-2.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/parser-2.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAcF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,CAAC,CA2rBtF"}
|
|
@@ -21,7 +21,6 @@ export function parseObjectLiteral(str, options = {}) {
|
|
|
21
21
|
if (str.trim().length === 0) {
|
|
22
22
|
throw new ParseError('Input string is empty', 0, 1, 1);
|
|
23
23
|
}
|
|
24
|
-
// Set defaults
|
|
25
24
|
const defaultOptions = {
|
|
26
25
|
allowUnquotedKeys: true,
|
|
27
26
|
allowTrailingCommas: true,
|
|
@@ -115,9 +114,7 @@ export function parseObjectLiteral(str, options = {}) {
|
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
};
|
|
118
|
-
// ====================
|
|
119
117
|
// Parsing Functions
|
|
120
|
-
// ====================
|
|
121
118
|
const parseValue = () => {
|
|
122
119
|
depth++;
|
|
123
120
|
if (depth > optionsRef.maxDepth) {
|
|
@@ -199,13 +196,8 @@ export function parseObjectLiteral(str, options = {}) {
|
|
|
199
196
|
throw createError(`Expected property name, got "${char}"`);
|
|
200
197
|
}
|
|
201
198
|
skipWhitespaceAndComments();
|
|
202
|
-
// Expect colon
|
|
203
|
-
// if (char !== ':') {
|
|
204
|
-
// throw createError('Expected colon after property name');
|
|
205
|
-
// }
|
|
206
199
|
advance();
|
|
207
200
|
skipWhitespaceAndComments();
|
|
208
|
-
// Parse value
|
|
209
201
|
obj[key] = parseValue();
|
|
210
202
|
skipWhitespaceAndComments();
|
|
211
203
|
// Check what comes next
|
|
@@ -452,7 +444,6 @@ export function parseObjectLiteral(str, options = {}) {
|
|
|
452
444
|
advance();
|
|
453
445
|
// Check for non-decimal literals (only if allowUnquotedKeys is true)
|
|
454
446
|
if (optionsRef.allowUnquotedKeys) {
|
|
455
|
-
// const radixChar = char;
|
|
456
447
|
const radixChar = numberStr.charAt(1);
|
|
457
448
|
if (radixChar === 'x' || radixChar === 'X') {
|
|
458
449
|
// Hexadecimal
|
|
@@ -621,9 +612,7 @@ export function parseObjectLiteral(str, options = {}) {
|
|
|
621
612
|
}
|
|
622
613
|
return reviver.call(holder, key, value);
|
|
623
614
|
};
|
|
624
|
-
// ====================
|
|
625
615
|
// Main Parsing Logic
|
|
626
|
-
// ====================
|
|
627
616
|
try {
|
|
628
617
|
// Start parsing
|
|
629
618
|
skipWhitespaceAndComments();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/parser.ts"],"names":[],"mappings":"AAyFA;;;GAGG;AACH,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,GAAG,CAQxD;AAED,iBAAS,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,GAAG,CAoPjE;AAGD,iBAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAqC7C;AA6BD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
// type ParserOptions = {
|
|
2
|
-
// allowUnquotedKeys?: boolean;
|
|
3
|
-
// allowTrailingCommas?: boolean;
|
|
4
|
-
// allowSingleQuotes?: boolean;
|
|
5
|
-
// allowComments?: boolean;
|
|
6
|
-
// allowUndefined?: boolean;
|
|
7
|
-
// allowSpecialNumbers?: boolean;
|
|
8
|
-
// reviver?: (key: string, value: any) => any;
|
|
9
|
-
// strict?: boolean;
|
|
10
|
-
// maxDepth?: number;
|
|
11
|
-
// };
|
|
12
|
-
// class ParseError extends Error {
|
|
13
|
-
// constructor(
|
|
14
|
-
// message: string,
|
|
15
|
-
// public position: number,
|
|
16
|
-
// public context: string = ''
|
|
17
|
-
// ) {
|
|
18
|
-
// super(`ParseError at position ${position}: ${message}${context ? ` (${context})` : ''}`);
|
|
19
|
-
// this.name = 'ParseError';
|
|
20
|
-
// }
|
|
21
|
-
// }
|
|
22
1
|
// /**
|
|
23
2
|
// * Safe, typed parser for JavaScript object literals
|
|
24
3
|
// */
|
|
@@ -27,78 +6,8 @@
|
|
|
27
6
|
// if (typeof str !== 'string') {
|
|
28
7
|
// throw new TypeError('Input must be a string');
|
|
29
8
|
// }
|
|
30
|
-
// if (str.trim().length === 0) {
|
|
31
|
-
// throw new ParseError('Input string is empty', 0);
|
|
32
|
-
// }
|
|
33
|
-
// // Default options
|
|
34
|
-
// const opts: Required<ParserOptions> = {
|
|
35
|
-
// allowUnquotedKeys: true,
|
|
36
|
-
// allowTrailingCommas: true,
|
|
37
|
-
// allowSingleQuotes: true,
|
|
38
|
-
// allowComments: true,
|
|
39
|
-
// allowUndefined: false,
|
|
40
|
-
// allowSpecialNumbers: false,
|
|
41
|
-
// reviver: undefined!,
|
|
42
|
-
// strict: false,
|
|
43
|
-
// maxDepth: 100,
|
|
44
|
-
// ...options,
|
|
45
|
-
// };
|
|
46
|
-
// let index = 0;
|
|
47
|
-
// let currentChar = str[0] || '';
|
|
48
|
-
// // Helper functions
|
|
49
|
-
// const next = (): void => {
|
|
50
|
-
// index++;
|
|
51
|
-
// currentChar = str[index] || '';
|
|
52
|
-
// };
|
|
53
|
-
// const peek = (offset = 1): string => str[index + offset] || '';
|
|
54
|
-
// const isEnd = (): boolean => index >= str.length;
|
|
55
|
-
// const expectChar = (char: string, errorMessage: string): void => {
|
|
56
|
-
// if (currentChar !== char) {
|
|
57
|
-
// throw new ParseError(errorMessage, index, `Expected '${char}', got '${currentChar}'`);
|
|
58
|
-
// }
|
|
59
|
-
// };
|
|
60
|
-
// // Skip functions
|
|
61
|
-
// const skipWhitespace = (): void => {
|
|
62
|
-
// while (!isEnd() && /\s/.test(currentChar)) {
|
|
63
|
-
// next();
|
|
64
|
-
// }
|
|
65
|
-
// };
|
|
66
9
|
// const skipComments = (): void => {
|
|
67
10
|
// if (!opts.allowComments) return;
|
|
68
|
-
// // Single line comment
|
|
69
|
-
// if (currentChar === '/' && peek() === '/') {
|
|
70
|
-
// next(); // Skip '/'
|
|
71
|
-
// next(); // Skip second '/'
|
|
72
|
-
// while (!isEnd() && (peek() !== '\n' && peek() !== '\r')) {
|
|
73
|
-
// // while (!isEnd() && currentChar !== '\n' && currentChar !== '\r') {
|
|
74
|
-
// next();
|
|
75
|
-
// }
|
|
76
|
-
// skipWhitespace();
|
|
77
|
-
// }
|
|
78
|
-
// // Multi-line comment
|
|
79
|
-
// if (currentChar === '/' && peek() === '*') {
|
|
80
|
-
// next(); // Skip '/'
|
|
81
|
-
// next(); // Skip '*'
|
|
82
|
-
// while (!isEnd()) {
|
|
83
|
-
// if (peek() === '/') {
|
|
84
|
-
// // if (currentChar === '*' && peek() === '/') {
|
|
85
|
-
// next(); // Skip '*'
|
|
86
|
-
// next(); // Skip '/'
|
|
87
|
-
// break;
|
|
88
|
-
// }
|
|
89
|
-
// next();
|
|
90
|
-
// }
|
|
91
|
-
// skipWhitespace();
|
|
92
|
-
// }
|
|
93
|
-
// };
|
|
94
|
-
// const skipWhitespaceAndComments = (): void => {
|
|
95
|
-
// while (!isEnd()) {
|
|
96
|
-
// const prevIndex = index;
|
|
97
|
-
// skipWhitespace();
|
|
98
|
-
// skipComments();
|
|
99
|
-
// if (index === prevIndex) break;
|
|
100
|
-
// }
|
|
101
|
-
// };
|
|
102
11
|
// // Character classification helpers
|
|
103
12
|
// const isDigit = (char: string): boolean => char >= '0' && char <= '9';
|
|
104
13
|
// const isHexDigit = (char: string): boolean =>
|
|
@@ -112,363 +21,34 @@
|
|
|
112
21
|
// char === '$';
|
|
113
22
|
// const isIdentifierChar = (char: string): boolean =>
|
|
114
23
|
// isIdentifierStart(char) || isDigit(char);
|
|
115
|
-
// // Main parse function with depth tracking
|
|
116
|
-
// const parseValue = (depth = 0): any => {
|
|
117
|
-
// if (depth > opts.maxDepth) {
|
|
118
|
-
// throw new ParseError(`Maximum nesting depth (${opts.maxDepth}) exceeded`, index);
|
|
119
|
-
// }
|
|
120
|
-
// skipWhitespaceAndComments();
|
|
121
|
-
// if (isEnd()) {
|
|
122
|
-
// throw new ParseError('Unexpected end of input', index);
|
|
123
|
-
// }
|
|
124
|
-
// switch (currentChar) {
|
|
125
|
-
// case '{':
|
|
126
|
-
// return parseObject(depth + 1);
|
|
127
|
-
// case '[':
|
|
128
|
-
// return parseArray(depth + 1);
|
|
129
|
-
// case '"':
|
|
130
|
-
// case "'":
|
|
131
|
-
// return parseString();
|
|
132
|
-
// case '-':
|
|
133
|
-
// case '0':
|
|
134
|
-
// case '1':
|
|
135
|
-
// case '2':
|
|
136
|
-
// case '3':
|
|
137
|
-
// case '4':
|
|
138
|
-
// case '5':
|
|
139
|
-
// case '6':
|
|
140
|
-
// case '7':
|
|
141
|
-
// case '8':
|
|
142
|
-
// case '9':
|
|
143
|
-
// return parseNumber();
|
|
144
|
-
// case 't':
|
|
145
|
-
// case 'f':
|
|
146
|
-
// case 'n':
|
|
147
|
-
// return parseKeyword();
|
|
148
|
-
// case 'u':
|
|
149
|
-
// if (opts.allowUndefined) {
|
|
150
|
-
// return parseKeyword();
|
|
151
|
-
// }
|
|
152
|
-
// throw new ParseError('Unexpected character', index, "'u' at start of undefined");
|
|
153
|
-
// case 'I':
|
|
154
|
-
// case 'N':
|
|
155
|
-
// if (opts.allowSpecialNumbers) {
|
|
156
|
-
// return parseSpecialNumber();
|
|
157
|
-
// }
|
|
158
|
-
// throw new ParseError('Unexpected character', index);
|
|
159
|
-
// default:
|
|
160
|
-
// throw new ParseError(`Unexpected character '${currentChar}'`, index);
|
|
161
|
-
// }
|
|
162
|
-
// };
|
|
163
24
|
// const parseObject = (depth: number): Record<string, any> => {
|
|
164
25
|
// const obj: Record<string, any> = {};
|
|
165
26
|
// next(); // Skip '{'
|
|
166
|
-
// skipWhitespaceAndComments();
|
|
167
|
-
// // Empty object
|
|
168
|
-
// if (currentChar === '}') {
|
|
169
|
-
// next();
|
|
170
|
-
// return obj;
|
|
171
|
-
// }
|
|
172
27
|
// while (!isEnd()) {
|
|
173
28
|
// skipWhitespaceAndComments();
|
|
174
|
-
// // Parse key
|
|
175
|
-
// let key: string;
|
|
176
|
-
// if (currentChar === '"' || (opts.allowSingleQuotes && currentChar === "'")) {
|
|
177
|
-
// key = parseString();
|
|
178
|
-
// } else if (opts.allowUnquotedKeys && isIdentifierStart(currentChar)) {
|
|
179
|
-
// const start = index;
|
|
180
|
-
// while (!isEnd() && isIdentifierChar(currentChar)) {
|
|
181
|
-
// next();
|
|
182
|
-
// }
|
|
183
|
-
// key = str.slice(start, index);
|
|
184
|
-
// } else {
|
|
185
|
-
// throw new ParseError('Expected property name', index);
|
|
186
|
-
// }
|
|
187
|
-
// skipWhitespaceAndComments();
|
|
188
|
-
// // Colon
|
|
189
|
-
// expectChar(':', 'Expected colon after property name');
|
|
190
|
-
// next();
|
|
191
|
-
// skipWhitespaceAndComments();
|
|
192
29
|
// // Value
|
|
193
30
|
// obj[key] = parseValue(depth);
|
|
194
|
-
// skipWhitespaceAndComments();
|
|
195
|
-
// // Check for end or comma
|
|
196
|
-
// if (currentChar === '}') {
|
|
197
|
-
// next();
|
|
198
|
-
// break;
|
|
199
|
-
// }
|
|
200
|
-
// if (currentChar === ',') {
|
|
201
|
-
// next();
|
|
202
|
-
// skipWhitespaceAndComments();
|
|
203
|
-
// // Check for trailing comma
|
|
204
|
-
// // if (currentChar === '}') {
|
|
205
|
-
// if (peek() === '}') {
|
|
206
|
-
// if (opts.allowTrailingCommas) {
|
|
207
|
-
// next();
|
|
208
|
-
// break;
|
|
209
|
-
// }
|
|
210
|
-
// throw new ParseError('Trailing comma not allowed', index);
|
|
211
|
-
// }
|
|
212
|
-
// continue;
|
|
213
|
-
// }
|
|
214
31
|
// throw new ParseError('Expected comma or closing brace', index);
|
|
215
32
|
// }
|
|
216
|
-
// return obj;
|
|
217
|
-
// };
|
|
218
33
|
// const parseArray = (depth: number): any[] => {
|
|
219
34
|
// const arr: any[] = [];
|
|
220
35
|
// next(); // Skip '['
|
|
221
|
-
// skipWhitespaceAndComments();
|
|
222
|
-
// // Empty array
|
|
223
|
-
// if (currentChar === ']') {
|
|
224
|
-
// next();
|
|
225
|
-
// return arr;
|
|
226
|
-
// }
|
|
227
36
|
// while (!isEnd()) {
|
|
228
37
|
// arr.push(parseValue(depth));
|
|
229
|
-
// skipWhitespaceAndComments();
|
|
230
|
-
// // Check for end or comma
|
|
231
|
-
// if (currentChar === ']') {
|
|
232
|
-
// next();
|
|
233
|
-
// break;
|
|
234
|
-
// }
|
|
235
|
-
// if (currentChar === ',') {
|
|
236
|
-
// next();
|
|
237
|
-
// skipWhitespaceAndComments();
|
|
238
|
-
// // Trailing comma check
|
|
239
|
-
// if (peek() === ']') {
|
|
240
|
-
// // if (currentChar === ']') {
|
|
241
|
-
// if (opts.allowTrailingCommas) {
|
|
242
|
-
// next();
|
|
243
|
-
// break;
|
|
244
|
-
// }
|
|
245
|
-
// throw new ParseError('Trailing comma not allowed', index);
|
|
246
|
-
// }
|
|
247
|
-
// continue;
|
|
248
|
-
// }
|
|
249
38
|
// throw new ParseError('Expected comma or closing bracket', index);
|
|
250
39
|
// }
|
|
251
|
-
// return arr;
|
|
252
|
-
// };
|
|
253
|
-
// const parseString = (): string => {
|
|
254
|
-
// const quoteChar = currentChar;
|
|
255
|
-
// if (quoteChar === "'" && !opts.allowSingleQuotes) {
|
|
256
|
-
// throw new ParseError('Single quotes not allowed', index);
|
|
257
|
-
// }
|
|
258
40
|
// next(); // Skip opening quote
|
|
259
41
|
// let result = '';
|
|
260
42
|
// const startIndex = index;
|
|
261
|
-
// while (!isEnd() && currentChar !== quoteChar) {
|
|
262
|
-
// if (currentChar === '\\') {
|
|
263
|
-
// next();
|
|
264
|
-
// if (isEnd()) {
|
|
265
|
-
// throw new ParseError('Unterminated string', startIndex);
|
|
266
|
-
// }
|
|
267
|
-
// result += parseEscapeSequence();
|
|
268
|
-
// } else {
|
|
269
|
-
// result += currentChar;
|
|
270
|
-
// next();
|
|
271
|
-
// }
|
|
272
|
-
// }
|
|
273
|
-
// if (currentChar !== quoteChar) {
|
|
274
|
-
// throw new ParseError('Unterminated string', startIndex);
|
|
275
|
-
// }
|
|
276
43
|
// next(); // Skip closing quote
|
|
277
44
|
// return result;
|
|
278
45
|
// };
|
|
279
46
|
// const parseEscapeSequence = (): string => {
|
|
280
47
|
// const escStart = index;
|
|
281
|
-
// switch (currentChar) {
|
|
282
|
-
// case '"':
|
|
283
|
-
// case "'":
|
|
284
|
-
// case '\\':
|
|
285
|
-
// case '/':
|
|
286
|
-
// const char = currentChar;
|
|
287
|
-
// next();
|
|
288
|
-
// return char;
|
|
289
|
-
// case 'b':
|
|
290
|
-
// next();
|
|
291
|
-
// return '\b';
|
|
292
|
-
// case 'f':
|
|
293
|
-
// next();
|
|
294
|
-
// return '\f';
|
|
295
|
-
// case 'n':
|
|
296
|
-
// next();
|
|
297
|
-
// return '\n';
|
|
298
|
-
// case 'r':
|
|
299
|
-
// next();
|
|
300
|
-
// return '\r';
|
|
301
|
-
// case 't':
|
|
302
|
-
// next();
|
|
303
|
-
// return '\t';
|
|
304
|
-
// case 'u':
|
|
305
|
-
// next();
|
|
306
|
-
// return parseUnicodeEscape();
|
|
307
|
-
// default:
|
|
308
|
-
// // Return the character as-is (like JavaScript does)
|
|
309
|
-
// const escapedChar = currentChar;
|
|
310
|
-
// next();
|
|
311
|
-
// return escapedChar;
|
|
312
|
-
// }
|
|
313
|
-
// };
|
|
314
|
-
// const parseUnicodeEscape = (): string => {
|
|
315
|
-
// const start = index;
|
|
316
|
-
// let hex = '';
|
|
317
|
-
// // Parse 4 hex digits
|
|
318
|
-
// for (let i = 0; i < 4; i++) {
|
|
319
|
-
// if (isEnd() || !isHexDigit(currentChar)) {
|
|
320
|
-
// throw new ParseError('Invalid Unicode escape sequence', start);
|
|
321
|
-
// }
|
|
322
|
-
// hex += currentChar;
|
|
323
|
-
// next();
|
|
324
|
-
// }
|
|
325
|
-
// return String.fromCharCode(parseInt(hex, 16));
|
|
326
|
-
// };
|
|
327
|
-
// const parseNumber = (): number => {
|
|
328
|
-
// const start = index;
|
|
329
|
-
// let numberStr = '';
|
|
330
|
-
// // Sign
|
|
331
|
-
// if (currentChar === '-') {
|
|
332
|
-
// numberStr += currentChar;
|
|
333
|
-
// next();
|
|
334
|
-
// }
|
|
335
|
-
// // Integer part
|
|
336
|
-
// if (currentChar === '0') {
|
|
337
|
-
// numberStr += currentChar;
|
|
338
|
-
// next();
|
|
339
|
-
// } else {
|
|
340
|
-
// while (!isEnd() && isDigit(currentChar)) {
|
|
341
|
-
// numberStr += currentChar;
|
|
342
|
-
// next();
|
|
343
|
-
// }
|
|
344
|
-
// }
|
|
345
|
-
// // Fraction part
|
|
346
|
-
// if (currentChar === '.') {
|
|
347
|
-
// numberStr += currentChar;
|
|
348
|
-
// next();
|
|
349
|
-
// while (!isEnd() && isDigit(currentChar)) {
|
|
350
|
-
// numberStr += currentChar;
|
|
351
|
-
// next();
|
|
352
|
-
// }
|
|
353
|
-
// }
|
|
354
|
-
// // Exponent
|
|
355
|
-
// if (currentChar === 'e' || currentChar === 'E') {
|
|
356
|
-
// numberStr += currentChar;
|
|
357
|
-
// next();
|
|
358
|
-
// // if (currentChar === '+' || currentChar === '-') {
|
|
359
|
-
// if (peek() === '+' || peek() === '-') {
|
|
360
|
-
// numberStr += currentChar;
|
|
361
|
-
// next();
|
|
362
|
-
// }
|
|
363
|
-
// while (!isEnd() && isDigit(currentChar)) {
|
|
364
|
-
// numberStr += currentChar;
|
|
365
|
-
// next();
|
|
366
|
-
// }
|
|
367
|
-
// }
|
|
368
|
-
// const num = parseFloat(numberStr);
|
|
369
|
-
// if (isNaN(num)) {
|
|
370
|
-
// throw new ParseError('Invalid number', start);
|
|
371
|
-
// }
|
|
372
|
-
// return num;
|
|
373
|
-
// };
|
|
374
48
|
// const parseSpecialNumber = (): number => {
|
|
375
49
|
// const start = index;
|
|
376
|
-
// if (currentChar === 'I') {
|
|
377
|
-
// const word = str.slice(index, index + 8);
|
|
378
|
-
// if (word === 'Infinity') {
|
|
379
|
-
// for (let i = 0; i < 8; i++) next();
|
|
380
|
-
// return Infinity;
|
|
381
|
-
// }
|
|
382
|
-
// } else if (currentChar === 'N') {
|
|
383
|
-
// const word = str.slice(index, index + 3);
|
|
384
|
-
// if (word === 'NaN') {
|
|
385
|
-
// for (let i = 0; i < 3; i++) next();
|
|
386
|
-
// return NaN;
|
|
387
|
-
// }
|
|
388
|
-
// } else if (currentChar === '-' && peek() === 'I') {
|
|
389
|
-
// const word = str.slice(index, index + 9);
|
|
390
|
-
// if (word === '-Infinity') {
|
|
391
|
-
// for (let i = 0; i < 9; i++) next();
|
|
392
|
-
// return -Infinity;
|
|
393
|
-
// }
|
|
394
|
-
// }
|
|
395
50
|
// throw new ParseError('Invalid special number', start);
|
|
396
51
|
// };
|
|
397
|
-
// const parseKeyword = (): any => {
|
|
398
|
-
// const start = index;
|
|
399
|
-
// let keyword = '';
|
|
400
|
-
// while (!isEnd() && /[a-zA-Z]/.test(currentChar)) {
|
|
401
|
-
// keyword += currentChar;
|
|
402
|
-
// next();
|
|
403
|
-
// }
|
|
404
|
-
// switch (keyword) {
|
|
405
|
-
// case 'true':
|
|
406
|
-
// return true;
|
|
407
|
-
// case 'false':
|
|
408
|
-
// return false;
|
|
409
|
-
// case 'null':
|
|
410
|
-
// return null;
|
|
411
|
-
// case 'undefined':
|
|
412
|
-
// if (opts.allowUndefined) {
|
|
413
|
-
// return undefined;
|
|
414
|
-
// }
|
|
415
|
-
// throw new ParseError('undefined is not allowed', start);
|
|
416
|
-
// default:
|
|
417
|
-
// throw new ParseError(`Unexpected keyword '${keyword}'`, start);
|
|
418
|
-
// }
|
|
419
|
-
// };
|
|
420
|
-
// // Main parse execution
|
|
421
|
-
// try {
|
|
422
|
-
// skipWhitespaceAndComments();
|
|
423
|
-
// const result = parseValue();
|
|
424
|
-
// // Check for trailing characters
|
|
425
|
-
// skipWhitespaceAndComments();
|
|
426
|
-
// if (!isEnd()) {
|
|
427
|
-
// throw new ParseError('Unexpected trailing characters', index);
|
|
428
|
-
// }
|
|
429
|
-
// // Apply reviver if provided
|
|
430
|
-
// if (opts.reviver) {
|
|
431
|
-
// return applyReviver({ '': result }, '', result, opts.reviver);
|
|
432
|
-
// }
|
|
433
|
-
// return result as T;
|
|
434
|
-
// } catch (error) {
|
|
435
|
-
// // Fallback to JSON.parse if not strict
|
|
436
|
-
// if (!opts.strict && error instanceof ParseError) {
|
|
437
|
-
// try {
|
|
438
|
-
// return opts.reviver
|
|
439
|
-
// ? JSON.parse(str, opts.reviver)
|
|
440
|
-
// : JSON.parse(str);
|
|
441
|
-
// } catch {
|
|
442
|
-
// throw error;
|
|
443
|
-
// }
|
|
444
|
-
// }
|
|
445
|
-
// throw error;
|
|
446
|
-
// }
|
|
447
|
-
// }
|
|
448
|
-
// function applyReviver(
|
|
449
|
-
// holder: Record<string, any>,
|
|
450
|
-
// key: string,
|
|
451
|
-
// value: any,
|
|
452
|
-
// reviver: (key: string, value: any) => any
|
|
453
|
-
// ): any {
|
|
454
|
-
// if (value && typeof value === 'object') {
|
|
455
|
-
// if (Array.isArray(value)) {
|
|
456
|
-
// return value.map((item, index) =>
|
|
457
|
-
// applyReviver(value, index.toString(), item, reviver)
|
|
458
|
-
// );
|
|
459
|
-
// } else {
|
|
460
|
-
// const result: Record<string, any> = {};
|
|
461
|
-
// for (const [k, v] of Object.entries(value)) {
|
|
462
|
-
// const transformed = applyReviver(value, k, v, reviver);
|
|
463
|
-
// if (transformed !== undefined) {
|
|
464
|
-
// result[k] = transformed;
|
|
465
|
-
// }
|
|
466
|
-
// }
|
|
467
|
-
// return result;
|
|
468
|
-
// }
|
|
469
|
-
// }
|
|
470
|
-
// return reviver.call(holder, key, value);
|
|
471
|
-
// }
|
|
472
52
|
/**
|
|
473
53
|
* Fix the regex patterns in the custom parse function
|
|
474
54
|
* Improved version with proper comment handling
|
|
@@ -739,10 +319,6 @@ function simpleJsObjectParse(str) {
|
|
|
739
319
|
throw new SyntaxError(`Failed to parse JavaScript object literal: ${e}`);
|
|
740
320
|
}
|
|
741
321
|
}
|
|
742
|
-
// console.log('Testing regex fixes:');
|
|
743
|
-
// const testCases = [
|
|
744
|
-
// // Unquoted keys
|
|
745
|
-
// '{name: "John", age: 30}',
|
|
746
322
|
// // Single quotes
|
|
747
323
|
// "{'name': 'John', 'age': 30}",
|
|
748
324
|
// // Mixed quotes
|
|
@@ -762,14 +338,5 @@ function simpleJsObjectParse(str) {
|
|
|
762
338
|
// // Nested with issues
|
|
763
339
|
// '{data: {name: "John", items: [1, 2, 3,]}}'
|
|
764
340
|
// ];
|
|
765
|
-
// testCases.forEach((test, i) => {
|
|
766
|
-
// console.log(`\nTest ${i + 1}: ${test.slice(0, 50)}...`);
|
|
767
|
-
// try {
|
|
768
|
-
// const result = simpleJsObjectParse(test);
|
|
769
|
-
// console.log('Success:', JSON.stringify(result));
|
|
770
|
-
// } catch (e) {
|
|
771
|
-
// console.log('Error:', e.message);
|
|
772
|
-
// }
|
|
773
|
-
// });
|
|
774
341
|
// Export for use
|
|
775
342
|
export { customParse, simpleJsObjectParse, parseJsObjectLiteral };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/string.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../../src/lib/primitive/string/string.ts"],"names":[],"mappings":"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"}
|