@tehw0lf/n8n-nodes-toon 1.4.5 → 1.4.6
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 +14 -7
- package/dist/nodes/Toon/Toon.node.js +1 -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
|
@@ -318,11 +318,11 @@ Workflow: Fetch Data → JSON to TOON → Format Report → Send Email
|
|
|
318
318
|
|
|
319
319
|
- **n8n version:** 0.200.0 or later
|
|
320
320
|
- **Node.js:** 18.x or later
|
|
321
|
-
- **TOON Specification:** v4.
|
|
321
|
+
- **TOON Specification:** v4.4
|
|
322
322
|
|
|
323
323
|
## Specification Compliance
|
|
324
324
|
|
|
325
|
-
This node implements **TOON Specification v4.
|
|
325
|
+
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
326
|
|
|
327
327
|
### Implemented Features
|
|
328
328
|
|
|
@@ -342,7 +342,7 @@ This node implements **TOON Specification v4.2** in full: every normative requir
|
|
|
342
342
|
|
|
343
343
|
### Non-Spec Extensions
|
|
344
344
|
|
|
345
|
-
⚠️ These two options are **this node's own convenience features, not part of the TOON specification**. v4.
|
|
345
|
+
⚠️ 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
346
|
|
|
347
347
|
- **Key Folding** (`keyFolding: "safe"`) - Collapse nested single-key objects into dotted paths (e.g., `{a: {b: {c: 1}}}` → `a.b.c: 1`)
|
|
348
348
|
- **Path Expansion** (`expandPaths: "safe"`) - Expand dotted keys back into nested objects during decoding
|
|
@@ -388,7 +388,14 @@ When enabled (default), the decoder validates:
|
|
|
388
388
|
- Indentation multiples match expected indent size
|
|
389
389
|
- Proper structure and syntax
|
|
390
390
|
|
|
391
|
-
|
|
391
|
+
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):
|
|
392
|
+
- Count mismatches (declared length versus actual items, rows, or entries) are ignored
|
|
393
|
+
- Duplicate keys at the same depth, and duplicate field names in a header, resolve by last-write-wins
|
|
394
|
+
- A tab in the indentation counts as one level
|
|
395
|
+
- Blank lines inside an array's rows, items, or entries are ignored
|
|
396
|
+
- A first line indented deeper than expected sets the scope's depth (a later line between the two depths is still an error)
|
|
397
|
+
|
|
398
|
+
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
399
|
|
|
393
400
|
### Path Expansion
|
|
394
401
|
|
|
@@ -440,7 +447,7 @@ This node has **zero production dependencies**:
|
|
|
440
447
|
|
|
441
448
|
**Cause:** TOON data doesn't match expected structure.
|
|
442
449
|
|
|
443
|
-
**Solution:**
|
|
450
|
+
**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
451
|
|
|
445
452
|
### Issue: Key folding conflicts
|
|
446
453
|
|
|
@@ -495,7 +502,7 @@ See [`.github/workflows/security-scan.yml`](.github/workflows/security-scan.yml)
|
|
|
495
502
|
|
|
496
503
|
## Resources
|
|
497
504
|
|
|
498
|
-
- **TOON Specification v4.
|
|
505
|
+
- **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
506
|
- **n8n Documentation:** https://docs.n8n.io/
|
|
500
507
|
- **Community Nodes Guide:** https://docs.n8n.io/integrations/community-nodes/
|
|
501
508
|
- **GitHub Repository:** https://github.com/tehw0lf/n8n-nodes-toon
|
|
@@ -515,4 +522,4 @@ Contributions are welcome! Please open an issue or pull request on GitHub.
|
|
|
515
522
|
|
|
516
523
|
---
|
|
517
524
|
|
|
518
|
-
**Note:** This node implements the [TOON Specification v4.
|
|
525
|
+
**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
|
},
|
|
@@ -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":"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"}
|
|
@@ -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}`);
|