@tehw0lf/n8n-nodes-toon 1.4.5 → 1.4.7
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/README.md +18 -7
- package/dist/nodes/Toon/Toon.node.js +2 -1
- package/dist/nodes/Toon/Toon.node.js.map +1 -1
- package/dist/nodes/Toon/ToonDecoder.d.ts +0 -1
- package/dist/nodes/Toon/ToonDecoder.js +43 -82
- package/dist/nodes/Toon/ToonDecoder.js.map +1 -1
- package/dist/nodes/Toon/ToonUtils.d.ts +2 -2
- package/dist/nodes/Toon/ToonUtils.js +9 -6
- package/dist/nodes/Toon/ToonUtils.js.map +1 -1
- package/dist/nodes/Toon/types.d.ts +1 -0
- package/dist/nodes/Toon/types.js.map +1 -1
- package/dist/package.json +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -157,6 +157,10 @@ When **Include Token Metrics** is enabled for JSON→TOON conversion, the output
|
|
|
157
157
|
- **saved**: Number of tokens saved
|
|
158
158
|
- **reduction**: Reduction ratio (0.5285 = 52.85% reduction)
|
|
159
159
|
|
|
160
|
+
### Failed Items (Continue On Fail)
|
|
161
|
+
|
|
162
|
+
When **On Error** is set to a **Continue** option and an item fails, the item is emitted on the node's regular output (together with the successful items) with all fields of its input item plus `error` (the error message) and `itemIndex`. Input fields named `error` or `itemIndex` are overwritten.
|
|
163
|
+
|
|
160
164
|
## Usage Examples
|
|
161
165
|
|
|
162
166
|
### Example 1: LLM Context Preparation
|
|
@@ -318,11 +322,11 @@ Workflow: Fetch Data → JSON to TOON → Format Report → Send Email
|
|
|
318
322
|
|
|
319
323
|
- **n8n version:** 0.200.0 or later
|
|
320
324
|
- **Node.js:** 18.x or later
|
|
321
|
-
- **TOON Specification:** v4.
|
|
325
|
+
- **TOON Specification:** v4.4
|
|
322
326
|
|
|
323
327
|
## Specification Compliance
|
|
324
328
|
|
|
325
|
-
This node implements **TOON Specification v4.
|
|
329
|
+
This node implements **TOON Specification v4.4** in full for the decoder and, using the default options, for the encoder, with one known gap: the encoder still drops an own `__proto__` key (tracked in #45). Every other normative requirement of Sections 1–16 is implemented. Two additional convenience options fall outside the specification and are documented as [non-spec extensions](#non-spec-extensions) below.
|
|
326
330
|
|
|
327
331
|
### Implemented Features
|
|
328
332
|
|
|
@@ -342,7 +346,7 @@ This node implements **TOON Specification v4.2** in full: every normative requir
|
|
|
342
346
|
|
|
343
347
|
### Non-Spec Extensions
|
|
344
348
|
|
|
345
|
-
⚠️ These two options are **this node's own convenience features, not part of the TOON specification**. v4.
|
|
349
|
+
⚠️ These two options are **this node's own convenience features, not part of the TOON specification**. v4.4 treats dotted keys as ordinary literal keys with no structural meaning (§8), so output produced with key folding enabled decodes to dotted keys — not nested objects — in any conforming TOON implementation. Both default to `off`; leave them off for interoperable output.
|
|
346
350
|
|
|
347
351
|
- **Key Folding** (`keyFolding: "safe"`) - Collapse nested single-key objects into dotted paths (e.g., `{a: {b: {c: 1}}}` → `a.b.c: 1`)
|
|
348
352
|
- **Path Expansion** (`expandPaths: "safe"`) - Expand dotted keys back into nested objects during decoding
|
|
@@ -388,7 +392,14 @@ When enabled (default), the decoder validates:
|
|
|
388
392
|
- Indentation multiples match expected indent size
|
|
389
393
|
- Proper structure and syntax
|
|
390
394
|
|
|
391
|
-
|
|
395
|
+
Disabling strict mode does not make the decoder lenient in general: every error condition of the specification still applies. Non-strict mode only applies these five recoveries (§14.4):
|
|
396
|
+
- Count mismatches (declared length versus actual items, rows, or entries) are ignored
|
|
397
|
+
- Duplicate keys at the same depth, and duplicate field names in a header, resolve by last-write-wins
|
|
398
|
+
- A tab in the indentation counts as one level
|
|
399
|
+
- Blank lines inside an array's rows, items, or entries are ignored
|
|
400
|
+
- A first line indented deeper than expected sets the scope's depth (a later line between the two depths is still an error)
|
|
401
|
+
|
|
402
|
+
Malformed headers, row width mismatches, over-indented lines, a first line indented at the root and trailing content after a root form are errors in both modes.
|
|
392
403
|
|
|
393
404
|
### Path Expansion
|
|
394
405
|
|
|
@@ -440,7 +451,7 @@ This node has **zero production dependencies**:
|
|
|
440
451
|
|
|
441
452
|
**Cause:** TOON data doesn't match expected structure.
|
|
442
453
|
|
|
443
|
-
**Solution:**
|
|
454
|
+
**Solution:** Fix the TOON data. Disabling strict mode only relaxes count mismatches and the other recoveries listed under [Strict Mode](#strict-mode); every other error still applies.
|
|
444
455
|
|
|
445
456
|
### Issue: Key folding conflicts
|
|
446
457
|
|
|
@@ -495,7 +506,7 @@ See [`.github/workflows/security-scan.yml`](.github/workflows/security-scan.yml)
|
|
|
495
506
|
|
|
496
507
|
## Resources
|
|
497
508
|
|
|
498
|
-
- **TOON Specification v4.
|
|
509
|
+
- **TOON Specification v4.4:** Official spec at [github.com/toon-format/spec](https://github.com/toon-format/spec) or see [SPEC.md](SPEC.md) in this repository
|
|
499
510
|
- **n8n Documentation:** https://docs.n8n.io/
|
|
500
511
|
- **Community Nodes Guide:** https://docs.n8n.io/integrations/community-nodes/
|
|
501
512
|
- **GitHub Repository:** https://github.com/tehw0lf/n8n-nodes-toon
|
|
@@ -515,4 +526,4 @@ Contributions are welcome! Please open an issue or pull request on GitHub.
|
|
|
515
526
|
|
|
516
527
|
---
|
|
517
528
|
|
|
518
|
-
**Note:** This node implements the [TOON Specification v4.
|
|
529
|
+
**Note:** This node implements the [TOON Specification v4.4](https://github.com/toon-format/spec). See `SPEC.md` for complete format documentation or visit the official spec repository.
|
|
@@ -188,7 +188,7 @@ class Toon {
|
|
|
188
188
|
name: 'strict',
|
|
189
189
|
type: 'boolean',
|
|
190
190
|
default: true,
|
|
191
|
-
description: 'Whether to enforce array counts, indentation multiples, and validation rules',
|
|
191
|
+
description: 'Whether to enforce array counts, indentation multiples, and validation rules. When off, count mismatches are ignored, duplicate keys and duplicate field names use last-write-wins, tabs are accepted in indentation, blank lines inside arrays are allowed, and a first line indented deeper than expected sets the scope depth. Every other decode error still applies',
|
|
192
192
|
},
|
|
193
193
|
],
|
|
194
194
|
},
|
|
@@ -259,6 +259,7 @@ class Toon {
|
|
|
259
259
|
if (this.continueOnFail()) {
|
|
260
260
|
returnData.push({
|
|
261
261
|
json: {
|
|
262
|
+
...items[itemIndex].json,
|
|
262
263
|
error: error.message,
|
|
263
264
|
itemIndex,
|
|
264
265
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toon.node.js","sourceRoot":"","sources":["../../../nodes/Toon/Toon.node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Toon.node.js","sourceRoot":"","sources":["../../../nodes/Toon/Toon.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,15 +80,18 @@ class ToonDecoder {
|
|
|
80
80
|
line,
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
-
line = line.replace(/^[ \t]+/, (ws) => ws.replace(/\t/g, ''));
|
|
84
83
|
}
|
|
85
|
-
const
|
|
84
|
+
const leading = (_b = (_a = line.match(/^[ \t]*/)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '';
|
|
85
|
+
const tabs = leading.replace(/ /g, '').length;
|
|
86
|
+
const indent = leading.length - tabs;
|
|
87
|
+
const depth = tabs + Math.floor(indent / this.options.indent);
|
|
86
88
|
if (this.options.strict && indent % this.options.indent !== 0) {
|
|
87
89
|
throw new types_1.ToonDecodingError(`Indentation must be multiple of ${this.options.indent}, got ${indent} spaces`, { lineNumber, line });
|
|
88
90
|
}
|
|
89
91
|
parsed.push({
|
|
90
|
-
content: line.slice(
|
|
92
|
+
content: line.slice(leading.length),
|
|
91
93
|
indent,
|
|
94
|
+
depth,
|
|
92
95
|
lineNumber,
|
|
93
96
|
isEmpty: false,
|
|
94
97
|
blankBefore,
|
|
@@ -117,7 +120,7 @@ class ToonDecoder {
|
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
depthOf(line) {
|
|
120
|
-
return
|
|
123
|
+
return line.depth;
|
|
121
124
|
}
|
|
122
125
|
peek() {
|
|
123
126
|
return this.pos < this.lines.length ? this.lines[this.pos] : null;
|
|
@@ -125,7 +128,7 @@ class ToonDecoder {
|
|
|
125
128
|
parseRoot() {
|
|
126
129
|
const first = this.lines[0];
|
|
127
130
|
const content = first.content;
|
|
128
|
-
if (this.
|
|
131
|
+
if (this.depthOf(first) !== 0) {
|
|
129
132
|
throw new types_1.ToonDecodingError('Root content must start at depth 0', {
|
|
130
133
|
lineNumber: first.lineNumber,
|
|
131
134
|
line: first.content,
|
|
@@ -166,28 +169,14 @@ class ToonDecoder {
|
|
|
166
169
|
if (next === null) {
|
|
167
170
|
return;
|
|
168
171
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
for (let i = this.pos; i < this.lines.length; i++) {
|
|
176
|
-
this.rejectScalarLine(this.lines[i], 'Scalar line after completed root form');
|
|
177
|
-
}
|
|
178
|
-
this.pos = this.lines.length;
|
|
179
|
-
}
|
|
180
|
-
rejectScalarLine(line, message) {
|
|
181
|
-
if (utils.findUnquoted(line.content, ':') < 0) {
|
|
182
|
-
throw new types_1.ToonDecodingError(message, {
|
|
183
|
-
lineNumber: line.lineNumber,
|
|
184
|
-
line: line.content,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
172
|
+
throw new types_1.ToonDecodingError('Trailing content after completed root form', {
|
|
173
|
+
lineNumber: next.lineNumber,
|
|
174
|
+
line: next.content,
|
|
175
|
+
});
|
|
187
176
|
}
|
|
188
177
|
tryParseHeader(line) {
|
|
189
|
-
const outcome = utils.tryParseHeader(line.content);
|
|
190
|
-
if (outcome.error !== null
|
|
178
|
+
const outcome = utils.tryParseHeader(line.content, !this.options.strict);
|
|
179
|
+
if (outcome.error !== null) {
|
|
191
180
|
throw new types_1.ToonDecodingError(outcome.error, {
|
|
192
181
|
lineNumber: line.lineNumber,
|
|
193
182
|
line: line.content,
|
|
@@ -204,12 +193,7 @@ class ToonDecoder {
|
|
|
204
193
|
break;
|
|
205
194
|
}
|
|
206
195
|
if (lineDepth !== depth) {
|
|
207
|
-
|
|
208
|
-
throw new types_1.ToonDecodingError('Over-indented line: no enclosing scope was opened', { lineNumber: line.lineNumber, line: line.content });
|
|
209
|
-
}
|
|
210
|
-
this.rejectScalarLine(line, 'Over-indented scalar line');
|
|
211
|
-
this.pos++;
|
|
212
|
-
continue;
|
|
196
|
+
throw new types_1.ToonDecodingError('Over-indented line: no enclosing scope was opened', { lineNumber: line.lineNumber, line: line.content });
|
|
213
197
|
}
|
|
214
198
|
this.checkBlankInSpan(line, 0);
|
|
215
199
|
const { key, value } = this.parseFieldLine(line, depth);
|
|
@@ -230,17 +214,13 @@ class ToonDecoder {
|
|
|
230
214
|
const header = this.tryParseHeader(line);
|
|
231
215
|
if (header !== null) {
|
|
232
216
|
if (header.key === null) {
|
|
233
|
-
|
|
234
|
-
throw new types_1.ToonDecodingError('Keyless header is not valid in object-field position', { lineNumber: line.lineNumber, line: line.content });
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
this.pos++;
|
|
239
|
-
const value = header.keyed
|
|
240
|
-
? this.parseKeyedTabularBody(header, depth + 1)
|
|
241
|
-
: this.parseArrayBodyAfterHeader(header, depth);
|
|
242
|
-
return { key: header.key, value };
|
|
217
|
+
throw new types_1.ToonDecodingError('Keyless header is not valid in object-field position', { lineNumber: line.lineNumber, line: line.content });
|
|
243
218
|
}
|
|
219
|
+
this.pos++;
|
|
220
|
+
const value = header.keyed
|
|
221
|
+
? this.parseKeyedTabularBody(header, depth + 1)
|
|
222
|
+
: this.parseArrayBodyAfterHeader(header, depth);
|
|
223
|
+
return { key: header.key, value };
|
|
244
224
|
}
|
|
245
225
|
const colonIndex = utils.findUnquoted(line.content, ':');
|
|
246
226
|
if (colonIndex < 0) {
|
|
@@ -324,9 +304,10 @@ class ToonDecoder {
|
|
|
324
304
|
break;
|
|
325
305
|
}
|
|
326
306
|
if (this.depthOf(line) < rowDepth) {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
307
|
+
throw new types_1.ToonDecodingError('Over-indented line in tabular scope', {
|
|
308
|
+
lineNumber: line.lineNumber,
|
|
309
|
+
line: line.content,
|
|
310
|
+
});
|
|
330
311
|
}
|
|
331
312
|
if (this.depthOf(line) !== rowDepth) {
|
|
332
313
|
break;
|
|
@@ -351,9 +332,7 @@ class ToonDecoder {
|
|
|
351
332
|
const obj = {};
|
|
352
333
|
for (const entry of entries) {
|
|
353
334
|
if (entry.children === null) {
|
|
354
|
-
|
|
355
|
-
utils.setDecodedKey(obj, entry.name, this.parseValueToken(cells[index], line));
|
|
356
|
-
}
|
|
335
|
+
utils.setDecodedKey(obj, entry.name, this.parseValueToken(cells[index], line));
|
|
357
336
|
index++;
|
|
358
337
|
}
|
|
359
338
|
else {
|
|
@@ -388,26 +367,17 @@ class ToonDecoder {
|
|
|
388
367
|
break;
|
|
389
368
|
}
|
|
390
369
|
if (this.depthOf(line) !== entryDepth) {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
this.rejectScalarLine(line, 'Over-indented scalar line in keyed tabular scope');
|
|
398
|
-
this.pos++;
|
|
399
|
-
continue;
|
|
370
|
+
throw new types_1.ToonDecodingError('Over-indented line in keyed tabular scope', {
|
|
371
|
+
lineNumber: line.lineNumber,
|
|
372
|
+
line: line.content,
|
|
373
|
+
});
|
|
400
374
|
}
|
|
401
375
|
const colonIndex = utils.findUnquoted(line.content, ':');
|
|
402
376
|
if (colonIndex < 0) {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
this.pos++;
|
|
410
|
-
continue;
|
|
377
|
+
throw new types_1.ToonDecodingError('Line at entry depth without an unquoted colon', {
|
|
378
|
+
lineNumber: line.lineNumber,
|
|
379
|
+
line: line.content,
|
|
380
|
+
});
|
|
411
381
|
}
|
|
412
382
|
this.checkBlankInSpan(line, count);
|
|
413
383
|
const entryKey = this.decodeKeyToken(line.content.slice(0, colonIndex), line);
|
|
@@ -436,15 +406,10 @@ class ToonDecoder {
|
|
|
436
406
|
break;
|
|
437
407
|
}
|
|
438
408
|
if (lineDepth !== itemDepth) {
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
this.rejectScalarLine(line, 'Over-indented scalar line in list scope');
|
|
446
|
-
this.pos++;
|
|
447
|
-
continue;
|
|
409
|
+
throw new types_1.ToonDecodingError('Over-indented line in list scope', {
|
|
410
|
+
lineNumber: line.lineNumber,
|
|
411
|
+
line: line.content,
|
|
412
|
+
});
|
|
448
413
|
}
|
|
449
414
|
this.checkBlankInSpan(line, items.length);
|
|
450
415
|
items.push(this.withinHeaderSpan(() => this.parseListItem(line, itemDepth)));
|
|
@@ -460,7 +425,7 @@ class ToonDecoder {
|
|
|
460
425
|
this.pos++;
|
|
461
426
|
return {};
|
|
462
427
|
}
|
|
463
|
-
const rest = line.content.
|
|
428
|
+
const rest = line.content.replace(/^- +/, '');
|
|
464
429
|
if (rest === '[]') {
|
|
465
430
|
this.pos++;
|
|
466
431
|
return [];
|
|
@@ -468,6 +433,7 @@ class ToonDecoder {
|
|
|
468
433
|
const inner = {
|
|
469
434
|
content: rest,
|
|
470
435
|
indent: line.indent + 2,
|
|
436
|
+
depth: line.depth + 1,
|
|
471
437
|
lineNumber: line.lineNumber,
|
|
472
438
|
isEmpty: false,
|
|
473
439
|
blankBefore: false,
|
|
@@ -476,7 +442,7 @@ class ToonDecoder {
|
|
|
476
442
|
if (header !== null) {
|
|
477
443
|
this.pos++;
|
|
478
444
|
if (header.key === null) {
|
|
479
|
-
if (header.fields !== null
|
|
445
|
+
if (header.fields !== null) {
|
|
480
446
|
throw new types_1.ToonDecodingError('Keyless fields-bearing header is not valid as a list item', { lineNumber: line.lineNumber, line: line.content });
|
|
481
447
|
}
|
|
482
448
|
return this.parseArrayContent(header, itemDepth + 1);
|
|
@@ -517,12 +483,7 @@ class ToonDecoder {
|
|
|
517
483
|
break;
|
|
518
484
|
}
|
|
519
485
|
if (lineDepth > fieldDepth) {
|
|
520
|
-
|
|
521
|
-
break;
|
|
522
|
-
}
|
|
523
|
-
this.rejectScalarLine(line, 'Over-indented scalar line');
|
|
524
|
-
this.pos++;
|
|
525
|
-
continue;
|
|
486
|
+
break;
|
|
526
487
|
}
|
|
527
488
|
this.checkBlankInSpan(line, 1);
|
|
528
489
|
const { key, value } = this.parseFieldLine(line, fieldDepth);
|
|
@@ -536,7 +497,7 @@ class ToonDecoder {
|
|
|
536
497
|
}
|
|
537
498
|
}
|
|
538
499
|
checkWidth(actual, expected, line) {
|
|
539
|
-
if (
|
|
500
|
+
if (actual !== expected) {
|
|
540
501
|
throw new types_1.ToonDecodingError(`Row width mismatch: expected ${expected} cells, got ${actual}`, { lineNumber: line.lineNumber, line: line.content });
|
|
541
502
|
}
|
|
542
503
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToonDecoder.js","sourceRoot":"","sources":["../../../nodes/Toon/ToonDecoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToonDecoder.js","sourceRoot":"","sources":["../../../nodes/Toon/ToonDecoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,mCAA4C;AAC5C,mDAAqC;AAErC,MAAa,WAAW;IAgBtB,YAAY,OAAuB;QAZ3B,UAAK,GAAiB,EAAE,CAAC;QAGzB,QAAG,GAAG,CAAC,CAAC;QAOR,iBAAY,GAAG,KAAK,CAAC;QAG3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAKD,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAGb,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAG9B,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAiC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAMO,UAAU,CAAC,IAAY;;QAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAIhC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAEzC,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAG1C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE/B,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YAIzB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YAOD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,GAAG,IAAI,CAAC;gBACnB,SAAS;YACX,CAAC;YAID,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,IAAI,yBAAiB,CAAC,iCAAiC,EAAE;wBAC7D,UAAU;wBACV,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAID,MAAM,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAG9D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,yBAAiB,CACzB,mCAAmC,IAAI,CAAC,OAAO,CAAC,MAAM,SAAS,MAAM,SAAS,EAC9E,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,MAAM;gBACN,KAAK;gBACL,UAAU;gBACV,OAAO,EAAE,KAAK;gBACd,WAAW;aACZ,CAAC,CAAC;YAEH,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKO,gBAAgB,CAAI,KAAc;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,KAAK,EAAE,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC/B,CAAC;IACH,CAAC;IAYO,gBAAgB,CAAC,IAAgB,EAAE,IAAY;QACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,IAAI,yBAAiB,CAAC,iCAAiC,EAAE;gBAC7D,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKO,OAAO,CAAC,IAAgB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,CAAC;IAKO,SAAS;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAK9B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,yBAAiB,CAAC,oCAAoC,EAAE;gBAChE,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,IAAI,EAAE,KAAK,CAAC,OAAO;aACpB,CAAC,CAAC;QACL,CAAC;QAID,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAI1C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAExE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAID,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACzB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EACpC,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAID,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CACnC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACxB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC;YACzC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CACjC,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,yBAAiB,CACzB,qEAAqE,EACrE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAKO,sBAAsB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,yBAAiB,CAAC,4CAA4C,EAAE;YACxE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;SACnB,CAAC,CAAC;IACL,CAAC;IASO,cAAc,CAAC,IAAgB;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzE,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,yBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE;gBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAKO,WAAW,CAAC,KAAa,EAAE,QAAgB,KAAK;QACtD,MAAM,GAAG,GAA4B,EAAE,CAAC;QAExC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAIrC,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YAKD,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,yBAAiB,CACzB,mDAAmD,EACnD,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CACpD,CAAC;YACJ,CAAC;YAID,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAE/B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAKO,SAAS,CACf,GAA4B,EAC5B,GAAW,EACX,IAAgB;QAEhB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1E,MAAM,IAAI,yBAAiB,CAAC,kBAAkB,GAAG,qBAAqB,EAAE;gBACtE,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;IAEH,CAAC;IAKO,cAAc,CACpB,IAAgB,EAChB,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAEpB,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,yBAAiB,CACzB,sDAAsD,EACtD,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CACpD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;gBACxB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QAGD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,yBAAiB,CAAC,8BAA8B,EAAE;gBAC1D,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,EAAE,CAAC;QAGX,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1D,CAAC;QAGD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC;IAKO,gBAAgB,CAAC,KAAa;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YAEjD,OAAO,EAAE,CAAC;QACZ,CAAC;QAGD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,yBAAiB,CACzB,kEAAkE,EAClE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CACpD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IASO,UAAU,CAAC,QAAgB;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ;YACnD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAMO,yBAAyB,CAC/B,MAA0B,EAC1B,WAAmB;QAEnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAKO,cAAc,CAAC,MAA0B,EAAE,WAAmB;QACpE,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAKO,iBAAiB,CACvB,MAA0B,EAC1B,YAAoB;;QAGpB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,yBAAiB,CAAC,6CAA6C,EAAE;gBACzE,UAAU,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,0CAAE,UAAU;gBAChD,IAAI,EAAE,MAAM,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QAGD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;QAGD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK;iBACjB,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;iBAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;gBACvD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAGD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAKO,gBAAgB,CACtB,MAA0B,EAC1B,QAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAO,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;YAID,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC;gBAClC,MAAM,IAAI,yBAAiB,CAAC,qCAAqC,EAAE;oBACjE,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM;YACR,CAAC;YAGD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtE,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC;gBAEnE,MAAM;YACR,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEzC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAKO,cAAc,CACpB,KAAe,EACf,MAAoB,EACpB,IAAgB;QAEhB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,IAAI,GAAG,CAAC,OAAqB,EAA2B,EAAE;YAC9D,MAAM,GAAG,GAA4B,EAAE,CAAC;YAExC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAE5B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC/E,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAKO,iBAAiB,CACvB,MAA0B,EAC1B,WAAmB;QAEnB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAKO,qBAAqB,CAC3B,MAA0B,EAC1B,UAAkB;;QAGlB,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,yBAAiB,CAAC,oCAAoC,EAAE;gBAChE,UAAU,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,0CAAE,UAAU;gBAChD,IAAI,EAAE,MAAM,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAO,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAGlC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;gBAC/B,MAAM;YACR,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,IAAI,yBAAiB,CAAC,2CAA2C,EAAE;oBACvE,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;YAGD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,yBAAiB,CAAC,+CAA+C,EAAE;oBAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YAGlE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7E,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC;IACb,CAAC;IAKO,cAAc,CAAC,MAA0B,EAAE,SAAiB;QAClE,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YAID,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM;YACR,CAAC;YAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,yBAAiB,CAAC,kCAAkC,EAAE;oBAC9D,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,cAAc,CAAC,IAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAKO,aAAa,CAAC,IAAgB,EAAE,SAAiB;QAEvD,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QAGD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAG9C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QAID,MAAM,KAAK,GAAe;YACxB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC;YAIX,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC3B,MAAM,IAAI,yBAAiB,CACzB,2DAA2D,EAC3D,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CACpD,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YAID,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,CAAC,aAAa,CACjB,GAAG,EACH,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK;gBACV,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,CAClD,CAAC;YAEF,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC;QACb,CAAC;QAGD,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,MAAM,GAAG,GAA4B,EAAE,CAAC;YAExC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBAC5B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBAEN,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC;QACb,CAAC;QAGD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAKO,uBAAuB,CAC7B,GAA4B,EAC5B,UAAkB;QAElB,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAIlC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAE3B,MAAM;YACR,CAAC;YAGD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAE/B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAKO,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAY;QAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,IAAI,yBAAiB,CACzB,sBAAsB,IAAI,cAAc,QAAQ,SAAS,MAAM,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAgB;QACnE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,yBAAiB,CACzB,gCAAgC,QAAQ,eAAe,MAAM,EAAE,EAC/D,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAKO,cAAc,CAAC,KAAa,EAAE,IAAgB;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAG5B,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAE7D,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,yBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC,KAAe,CAAC;QACjC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAKO,eAAe,CAAC,KAAa,EAAE,IAA4B;QACjE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAGxC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEhE,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,yBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE;oBACzC,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU;oBAC5B,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,OAAO,CAAC,KAAe,CAAC;QACjC,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAKO,WAAW,CAAC,GAA4B;QAC9C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBAEN,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAgC,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKO,YAAY,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IAKO,OAAO,CAAC,GAA4B,EAAE,IAAc,EAAE,KAAc;QAC1E,IAAI,OAAO,GAA4B,GAAG,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAGxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,yBAAiB,CACzB,iCAAiC,OAAO,mCAAmC,CAC5E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAElD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,IAAI,yBAAiB,CACzB,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CACpH,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC;YAGD,OAAO,GAAG,OAAO,CAAC,OAAO,CAA4B,CAAC;QACxD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAG1C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,yBAAiB,CACzB,iCAAiC,WAAW,mCAAmC,CAChF,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,yBAAiB,CACzB,2CAA2C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC7D,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;CACF;AA17BD,kCA07BC"}
|
|
@@ -39,8 +39,8 @@ export interface HeaderParseOutcome {
|
|
|
39
39
|
header: ParsedHeader | null;
|
|
40
40
|
error: string | null;
|
|
41
41
|
}
|
|
42
|
-
export declare function tryParseHeader(content: string): HeaderParseOutcome;
|
|
43
|
-
export declare function parseHeader(content: string): ParsedHeader | null;
|
|
42
|
+
export declare function tryParseHeader(content: string, tolerateDuplicateFields?: boolean): HeaderParseOutcome;
|
|
43
|
+
export declare function parseHeader(content: string, tolerateDuplicateFields?: boolean): ParsedHeader | null;
|
|
44
44
|
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
45
45
|
export declare function setDecodedKey(obj: Record<string, unknown>, key: string, value: unknown): void;
|
|
46
46
|
export declare function isSafeKey(key: string): boolean;
|
|
@@ -367,7 +367,7 @@ function parseFieldList(body, delimiter) {
|
|
|
367
367
|
if (!entry.endsWith('}')) {
|
|
368
368
|
throw new Error(`Unmatched braces in field list: ${entry}`);
|
|
369
369
|
}
|
|
370
|
-
if (
|
|
370
|
+
if (/[ \t]$/.test(entry.slice(0, bracePos))) {
|
|
371
371
|
throw new Error(`Whitespace between field name and nested field group: ${entry}`);
|
|
372
372
|
}
|
|
373
373
|
const name = decodeFieldName(entry.slice(0, bracePos));
|
|
@@ -423,6 +423,9 @@ function splitFieldEntries(body, delimiter) {
|
|
|
423
423
|
i++;
|
|
424
424
|
continue;
|
|
425
425
|
}
|
|
426
|
+
else if ((char === ',' || char === '\t' || char === '|') && char !== delimiter) {
|
|
427
|
+
throw new Error(`Delimiter in field list does not match the declared delimiter: ${JSON.stringify(char)}`);
|
|
428
|
+
}
|
|
426
429
|
}
|
|
427
430
|
current += char;
|
|
428
431
|
i++;
|
|
@@ -448,15 +451,15 @@ function parseToken(token) {
|
|
|
448
451
|
}
|
|
449
452
|
return token;
|
|
450
453
|
}
|
|
451
|
-
function tryParseHeader(content) {
|
|
454
|
+
function tryParseHeader(content, tolerateDuplicateFields = false) {
|
|
452
455
|
try {
|
|
453
|
-
return { header: parseHeader(content), error: null };
|
|
456
|
+
return { header: parseHeader(content, tolerateDuplicateFields), error: null };
|
|
454
457
|
}
|
|
455
458
|
catch (error) {
|
|
456
459
|
return { header: null, error: error.message };
|
|
457
460
|
}
|
|
458
461
|
}
|
|
459
|
-
function parseHeader(content) {
|
|
462
|
+
function parseHeader(content, tolerateDuplicateFields = false) {
|
|
460
463
|
const firstColon = findUnquoted(content, ':');
|
|
461
464
|
const firstBracket = findUnquoted(content, '[');
|
|
462
465
|
if (firstColon < 0 ||
|
|
@@ -471,7 +474,7 @@ function parseHeader(content) {
|
|
|
471
474
|
throw new Error(`Missing closing bracket in header: ${content}`);
|
|
472
475
|
}
|
|
473
476
|
const segment = rest.slice(1, closing);
|
|
474
|
-
if (
|
|
477
|
+
if (/[ \t]$/.test(keyPart)) {
|
|
475
478
|
throw new Error(`Whitespace between key and bracket segment: ${content}`);
|
|
476
479
|
}
|
|
477
480
|
const parsedSegment = parseBracketSegment(segment);
|
|
@@ -501,7 +504,7 @@ function parseHeader(content) {
|
|
|
501
504
|
if (keyed && fields === null) {
|
|
502
505
|
throw new Error(`Keyed header requires a field list: ${content}`);
|
|
503
506
|
}
|
|
504
|
-
if (fields !== null) {
|
|
507
|
+
if (fields !== null && !tolerateDuplicateFields) {
|
|
505
508
|
const duplicate = findDuplicateFieldName(fields);
|
|
506
509
|
if (duplicate !== null) {
|
|
507
510
|
throw new Error(`Duplicate field name in header field list: ${duplicate}`);
|