@typia/utils 12.0.0-dev.20260307 → 12.0.0-dev.20260309

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,111 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseLenientJson = parseLenientJson;
4
+ /**
5
+ * Parse lenient JSON that may be incomplete or malformed.
6
+ *
7
+ * Handles:
8
+ *
9
+ * - Unclosed brackets `{`, `[` - parses as much as possible
10
+ * - Trailing commas `[1, 2, ]` - ignores them
11
+ * - Unclosed strings `"hello` - returns partial string
12
+ * - Junk text before JSON (LLM often adds explanatory text)
13
+ * - Markdown code blocks (extracts content from `json ... `)
14
+ * - Incomplete keywords like `tru`, `fal`, `nul`
15
+ * - Unicode escape sequences including surrogate pairs (emoji)
16
+ * - JavaScript-style comments (single-line and multi-line)
17
+ * - Unquoted object keys (JavaScript identifier style)
18
+ *
19
+ * @param input Raw JSON string (potentially incomplete)
20
+ * @returns Parse result with data, original input, and any errors
21
+ * @internal
22
+ */
23
+ function parseLenientJson(input) {
24
+ // Try native JSON.parse first (faster for valid JSON)
25
+ try {
26
+ return {
27
+ success: true,
28
+ data: JSON.parse(input),
29
+ };
30
+ }
31
+ catch (_a) {
32
+ // Fall back to lenient parser
33
+ }
34
+ // Extract markdown code block if present
35
+ const codeBlockContent = extractMarkdownCodeBlock(input);
36
+ const jsonSource = codeBlockContent !== null ? codeBlockContent : input;
37
+ // Check if input is empty or whitespace-only
38
+ const trimmed = jsonSource.trim();
39
+ if (trimmed.length === 0) {
40
+ return {
41
+ success: false,
42
+ data: undefined,
43
+ input,
44
+ errors: [
45
+ {
46
+ path: "$input",
47
+ expected: "JSON value",
48
+ value: "empty input",
49
+ },
50
+ ],
51
+ };
52
+ }
53
+ // Check if input starts with a primitive value (no junk prefix skipping needed)
54
+ if (startsWithPrimitive(trimmed)) {
55
+ const errors = [];
56
+ const parser = new LenientJsonParser(jsonSource, errors);
57
+ const data = parser.parse();
58
+ if (errors.length > 0) {
59
+ return { success: false, data: data, input, errors };
60
+ }
61
+ return { success: true, data: data };
62
+ }
63
+ // Find JSON start position (skip junk prefix from LLM)
64
+ const jsonStart = findJsonStart(jsonSource);
65
+ if (jsonStart === -1) {
66
+ // No object/array found - check if there's a primitive after skipping comments
67
+ const skipped = skipCommentsAndWhitespace(jsonSource);
68
+ if (skipped.length > 0 && startsWithPrimitive(skipped)) {
69
+ const errors = [];
70
+ const parser = new LenientJsonParser(jsonSource, errors);
71
+ const data = parser.parse();
72
+ if (errors.length > 0) {
73
+ return { success: false, data: data, input, errors };
74
+ }
75
+ return { success: true, data: data };
76
+ }
77
+ // No valid JSON found - return failure
78
+ return {
79
+ success: false,
80
+ data: undefined,
81
+ input,
82
+ errors: [
83
+ {
84
+ path: "$input",
85
+ expected: "JSON value",
86
+ value: jsonSource,
87
+ },
88
+ ],
89
+ };
90
+ }
91
+ // Extract JSON portion (skip junk prefix)
92
+ const jsonInput = jsonStart > 0 ? jsonSource.slice(jsonStart) : jsonSource;
93
+ const errors = [];
94
+ const parser = new LenientJsonParser(jsonInput, errors);
95
+ const data = parser.parse();
96
+ if (errors.length > 0) {
97
+ return {
98
+ success: false,
99
+ data: data,
100
+ input,
101
+ errors,
102
+ };
103
+ }
104
+ return {
105
+ success: true,
106
+ data: data,
107
+ };
108
+ }
4
109
  /**
5
110
  * Maximum nesting depth to prevent stack overflow attacks.
6
111
  *
@@ -83,23 +188,112 @@ function extractMarkdownCodeBlock(input) {
83
188
  * - "Here is your JSON: {"name": "test"}"
84
189
  * - "Sure! [1, 2, 3]"
85
190
  *
86
- * This function only looks for `{` or `[` to skip junk prefix. Primitive values
87
- * (strings, numbers, booleans) are handled directly by the parser.
191
+ * This function skips over comments and strings to find the real JSON start.
192
+ * Primitive values (strings, numbers, booleans) are handled directly by the
193
+ * parser.
88
194
  *
89
195
  * @param input Text that may contain JSON with junk prefix
90
- * @returns Index of first `{` or `[`, or -1 if not found
196
+ * @returns Index of first `{` or `[` outside comments/strings, or -1 if not
197
+ * found
91
198
  * @internal
92
199
  */
93
200
  function findJsonStart(input) {
94
- const objStart = input.indexOf("{");
95
- const arrStart = input.indexOf("[");
96
- if (objStart === -1 && arrStart === -1)
97
- return -1;
98
- if (objStart === -1)
99
- return arrStart;
100
- if (arrStart === -1)
101
- return objStart;
102
- return Math.min(objStart, arrStart);
201
+ let pos = 0;
202
+ const len = input.length;
203
+ while (pos < len) {
204
+ const ch = input[pos];
205
+ // Found JSON start
206
+ if (ch === "{" || ch === "[") {
207
+ return pos;
208
+ }
209
+ // Skip single-line comment
210
+ if (ch === "/" && pos + 1 < len && input[pos + 1] === "/") {
211
+ pos += 2;
212
+ while (pos < len && input[pos] !== "\n" && input[pos] !== "\r") {
213
+ pos++;
214
+ }
215
+ continue;
216
+ }
217
+ // Skip multi-line comment
218
+ if (ch === "/" && pos + 1 < len && input[pos + 1] === "*") {
219
+ pos += 2;
220
+ while (pos + 1 < len) {
221
+ if (input[pos] === "*" && input[pos + 1] === "/") {
222
+ pos += 2;
223
+ break;
224
+ }
225
+ pos++;
226
+ }
227
+ // If unclosed comment, move to end
228
+ if (pos + 1 >= len) {
229
+ pos = len;
230
+ }
231
+ continue;
232
+ }
233
+ // Skip string literal (to avoid matching { or [ inside strings)
234
+ if (ch === '"') {
235
+ pos++;
236
+ while (pos < len) {
237
+ if (input[pos] === "\\") {
238
+ pos += 2; // skip escape sequence
239
+ continue;
240
+ }
241
+ if (input[pos] === '"') {
242
+ pos++;
243
+ break;
244
+ }
245
+ pos++;
246
+ }
247
+ continue;
248
+ }
249
+ pos++;
250
+ }
251
+ return -1;
252
+ }
253
+ /**
254
+ * Skip leading comments and whitespace from input.
255
+ *
256
+ * @param input Text that may start with comments or whitespace
257
+ * @returns Input with leading comments and whitespace removed
258
+ * @internal
259
+ */
260
+ function skipCommentsAndWhitespace(input) {
261
+ let pos = 0;
262
+ const len = input.length;
263
+ while (pos < len) {
264
+ const ch = input[pos];
265
+ // Skip whitespace
266
+ if (ch === " " || ch === "\t" || ch === "\n" || ch === "\r") {
267
+ pos++;
268
+ continue;
269
+ }
270
+ // Skip single-line comment
271
+ if (ch === "/" && pos + 1 < len && input[pos + 1] === "/") {
272
+ pos += 2;
273
+ while (pos < len && input[pos] !== "\n" && input[pos] !== "\r") {
274
+ pos++;
275
+ }
276
+ continue;
277
+ }
278
+ // Skip multi-line comment
279
+ if (ch === "/" && pos + 1 < len && input[pos + 1] === "*") {
280
+ pos += 2;
281
+ while (pos + 1 < len) {
282
+ if (input[pos] === "*" && input[pos + 1] === "/") {
283
+ pos += 2;
284
+ break;
285
+ }
286
+ pos++;
287
+ }
288
+ if (pos + 1 >= len) {
289
+ pos = len;
290
+ }
291
+ continue;
292
+ }
293
+ // Not whitespace or comment
294
+ break;
295
+ }
296
+ return input.slice(pos);
103
297
  }
104
298
  /**
105
299
  * Check if input starts with a valid JSON primitive token.
@@ -123,94 +317,21 @@ function startsWithPrimitive(input) {
123
317
  input.startsWith("false") ||
124
318
  input.startsWith("null"))
125
319
  return true;
126
- // Partial keywords
320
+ // Partial keywords (note: "null" requires at least 2 chars to match parseKeywordOrIdentifier logic)
127
321
  if ("true".startsWith(input) ||
128
322
  "false".startsWith(input) ||
129
- "null".startsWith(input))
323
+ ("null".startsWith(input) && input.length >= 2))
324
+ return true;
325
+ // Boolean string variants (note: "n" is intentionally excluded)
326
+ const lower = input.toLowerCase();
327
+ if (lower === "yes" ||
328
+ lower === "y" ||
329
+ lower === "on" ||
330
+ lower === "no" ||
331
+ lower === "off")
130
332
  return true;
131
333
  return false;
132
334
  }
133
- /**
134
- * Parse lenient JSON that may be incomplete or malformed.
135
- *
136
- * Handles:
137
- *
138
- * - Unclosed brackets `{`, `[` - parses as much as possible
139
- * - Trailing commas `[1, 2, ]` - ignores them
140
- * - Unclosed strings `"hello` - returns partial string
141
- * - Junk text before JSON (LLM often adds explanatory text)
142
- * - Markdown code blocks (extracts content from `json ... `)
143
- * - Incomplete keywords like `tru`, `fal`, `nul`
144
- * - Unicode escape sequences including surrogate pairs (emoji)
145
- * - JavaScript-style comments (single-line and multi-line)
146
- * - Unquoted object keys (JavaScript identifier style)
147
- *
148
- * @param input Raw JSON string (potentially incomplete)
149
- * @returns Parse result with data, original input, and any errors
150
- * @internal
151
- */
152
- function parseLenientJson(input) {
153
- // Try native JSON.parse first (faster for valid JSON)
154
- try {
155
- return {
156
- success: true,
157
- data: JSON.parse(input),
158
- };
159
- }
160
- catch (_a) {
161
- // Fall back to lenient parser
162
- }
163
- // Extract markdown code block if present
164
- const codeBlockContent = extractMarkdownCodeBlock(input);
165
- const jsonSource = codeBlockContent !== null ? codeBlockContent : input;
166
- // Check if input is empty or whitespace-only
167
- const trimmed = jsonSource.trim();
168
- if (trimmed.length === 0) {
169
- const errors = [];
170
- const parser = new LenientJsonParser(jsonSource, errors);
171
- const data = parser.parse();
172
- if (errors.length > 0) {
173
- return { success: false, data: data, input, errors };
174
- }
175
- return { success: true, data: data };
176
- }
177
- // Check if input starts with a primitive value (no junk prefix skipping needed)
178
- if (startsWithPrimitive(trimmed)) {
179
- const errors = [];
180
- const parser = new LenientJsonParser(jsonSource, errors);
181
- const data = parser.parse();
182
- if (errors.length > 0) {
183
- return { success: false, data: data, input, errors };
184
- }
185
- return { success: true, data: data };
186
- }
187
- // Find JSON start position (skip junk prefix from LLM)
188
- const jsonStart = findJsonStart(jsonSource);
189
- if (jsonStart === -1) {
190
- // No JSON found - return empty object for lenient behavior
191
- return {
192
- success: true,
193
- data: {},
194
- };
195
- }
196
- // Extract JSON portion (skip junk prefix)
197
- const jsonInput = jsonStart > 0 ? jsonSource.slice(jsonStart) : jsonSource;
198
- const errors = [];
199
- const parser = new LenientJsonParser(jsonInput, errors);
200
- const data = parser.parse();
201
- if (errors.length > 0) {
202
- return {
203
- success: false,
204
- data: data,
205
- input,
206
- errors,
207
- };
208
- }
209
- return {
210
- success: true,
211
- data: data,
212
- };
213
- }
214
335
  /**
215
336
  * Lenient JSON parser that handles incomplete JSON.
216
337
  *
@@ -257,6 +378,12 @@ class LenientJsonParser {
257
378
  if (this.isIdentifierStart(char)) {
258
379
  return this.parseKeywordOrIdentifier(path);
259
380
  }
381
+ // Don't skip structural characters - let the caller handle them
382
+ const ch = this.input[this.pos];
383
+ if (ch === "}" || ch === "]" || ch === ",") {
384
+ // Not an error - just no value here (e.g., {"a":} or [,])
385
+ return undefined;
386
+ }
260
387
  this.errors.push({
261
388
  path,
262
389
  expected: "JSON value",
@@ -293,12 +420,19 @@ class LenientJsonParser {
293
420
  return false;
294
421
  if (token === "null")
295
422
  return null;
423
+ // Boolean string coercion: "yes", "y", "on" -> true, "no", "off" -> false
424
+ // Note: "n" is intentionally NOT handled (neither null nor false)
425
+ const lower = token.toLowerCase();
426
+ if (lower === "yes" || lower === "y" || lower === "on")
427
+ return true;
428
+ if (lower === "no" || lower === "off")
429
+ return false;
296
430
  // Partial match for lenient parsing (e.g., "tru" -> true, "fal" -> false)
297
431
  if ("true".startsWith(token) && token.length > 0)
298
432
  return true;
299
433
  if ("false".startsWith(token) && token.length > 0)
300
434
  return false;
301
- if ("null".startsWith(token) && token.length > 0)
435
+ if ("null".startsWith(token) && token.length >= 2)
302
436
  return null;
303
437
  // Check if this looks like a string with missing opening quote (e.g., abcdefg")
304
438
  if (this.pos < this.input.length && this.input[this.pos] === '"') {
@@ -428,7 +562,13 @@ class LenientJsonParser {
428
562
  continue;
429
563
  }
430
564
  // Parse value
565
+ const prevPos = this.pos;
431
566
  const value = this.parseValue(path + "[" + index + "]");
567
+ // Guard: if parseValue didn't advance, skip unexpected char to prevent infinite loop
568
+ if (this.pos === prevPos && this.pos < this.input.length) {
569
+ this.pos++;
570
+ continue;
571
+ }
432
572
  result.push(value);
433
573
  index++;
434
574
  this.skipWhitespace();
@@ -1 +1 @@
1
- {"version":3,"file":"parseLenientJson.js","sourceRoot":"","sources":["../../../src/utils/internal/parseLenientJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseLenientJson.js","sourceRoot":"","sources":["../../../src/utils/internal/parseLenientJson.ts"],"names":[],"mappings":"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"}