@graphty/graph-io 0.3.9 → 0.3.11

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.
Files changed (125) hide show
  1. package/README.md +29 -5
  2. package/dist/chunks/{escape-BjmIaFFo.js → escape-D1f9-cwf.js} +4 -4
  3. package/dist/chunks/{escape-BjmIaFFo.js.map → escape-D1f9-cwf.js.map} +1 -1
  4. package/dist/chunks/{importer-BddBW3sf.js → importer-9PxhqH4v.js} +336 -92
  5. package/dist/chunks/importer-9PxhqH4v.js.map +1 -0
  6. package/dist/chunks/{importer-DfI8POXb.js → importer-B8lsjFWx.js} +6 -5
  7. package/dist/chunks/importer-B8lsjFWx.js.map +1 -0
  8. package/dist/chunks/{importer-BtHFICnf.js → importer-C3HcYWAn.js} +5 -3
  9. package/dist/chunks/importer-C3HcYWAn.js.map +1 -0
  10. package/dist/chunks/{importer-BOxwmef_.js → importer-C7mnGdr_.js} +125 -8
  11. package/dist/chunks/importer-C7mnGdr_.js.map +1 -0
  12. package/dist/chunks/{records-BKSMowhR.js → records-IHsCfv7s.js} +20 -7
  13. package/dist/chunks/records-IHsCfv7s.js.map +1 -0
  14. package/dist/chunks/{writer-BdMak4_J.js → writer-BtWpUaiH.js} +4 -4
  15. package/dist/chunks/{writer-BdMak4_J.js.map → writer-BtWpUaiH.js.map} +1 -1
  16. package/dist/csv.js +239 -18
  17. package/dist/csv.js.map +1 -1
  18. package/dist/dot.js +1 -1
  19. package/dist/gexf.js +72 -33
  20. package/dist/gexf.js.map +1 -1
  21. package/dist/gml.js +44 -23
  22. package/dist/gml.js.map +1 -1
  23. package/dist/graph-io.js +11 -11
  24. package/dist/graphml.js +1 -1
  25. package/dist/json.js +1 -1
  26. package/dist/neo4j.js +5 -4
  27. package/dist/neo4j.js.map +1 -1
  28. package/dist/pajek.js +1 -1
  29. package/dist/src/common/export.js +1 -1
  30. package/dist/src/common/export.js.map +1 -1
  31. package/dist/src/formats/csv/exporter.d.ts +15 -4
  32. package/dist/src/formats/csv/exporter.d.ts.map +1 -1
  33. package/dist/src/formats/csv/exporter.js +125 -6
  34. package/dist/src/formats/csv/exporter.js.map +1 -1
  35. package/dist/src/formats/csv/importer.d.ts +36 -4
  36. package/dist/src/formats/csv/importer.d.ts.map +1 -1
  37. package/dist/src/formats/csv/importer.js +169 -8
  38. package/dist/src/formats/csv/importer.js.map +1 -1
  39. package/dist/src/formats/csv/records.d.ts +14 -1
  40. package/dist/src/formats/csv/records.d.ts.map +1 -1
  41. package/dist/src/formats/csv/records.js +28 -7
  42. package/dist/src/formats/csv/records.js.map +1 -1
  43. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  44. package/dist/src/formats/dot/exporter.js +2 -0
  45. package/dist/src/formats/dot/exporter.js.map +1 -1
  46. package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
  47. package/dist/src/formats/gexf/exporter.js +36 -10
  48. package/dist/src/formats/gexf/exporter.js.map +1 -1
  49. package/dist/src/formats/gexf/importer.d.ts +9 -4
  50. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  51. package/dist/src/formats/gexf/importer.js +44 -21
  52. package/dist/src/formats/gexf/importer.js.map +1 -1
  53. package/dist/src/formats/gexf/index.d.ts +1 -1
  54. package/dist/src/formats/gexf/index.d.ts.map +1 -1
  55. package/dist/src/formats/gexf/index.js +1 -1
  56. package/dist/src/formats/gexf/index.js.map +1 -1
  57. package/dist/src/formats/gexf/schema.d.ts +2 -0
  58. package/dist/src/formats/gexf/schema.d.ts.map +1 -1
  59. package/dist/src/formats/gexf/schema.js +18 -0
  60. package/dist/src/formats/gexf/schema.js.map +1 -1
  61. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  62. package/dist/src/formats/gml/exporter.js +1 -0
  63. package/dist/src/formats/gml/exporter.js.map +1 -1
  64. package/dist/src/formats/gml/importer.d.ts +7 -4
  65. package/dist/src/formats/gml/importer.d.ts.map +1 -1
  66. package/dist/src/formats/gml/importer.js +32 -19
  67. package/dist/src/formats/gml/importer.js.map +1 -1
  68. package/dist/src/formats/gml/index.d.ts +3 -1
  69. package/dist/src/formats/gml/index.d.ts.map +1 -1
  70. package/dist/src/formats/gml/index.js +4 -2
  71. package/dist/src/formats/gml/index.js.map +1 -1
  72. package/dist/src/formats/graphml/constants.d.ts +2 -0
  73. package/dist/src/formats/graphml/constants.d.ts.map +1 -1
  74. package/dist/src/formats/graphml/constants.js +2 -0
  75. package/dist/src/formats/graphml/constants.js.map +1 -1
  76. package/dist/src/formats/graphml/exporter.d.ts.map +1 -1
  77. package/dist/src/formats/graphml/exporter.js +14 -2
  78. package/dist/src/formats/graphml/exporter.js.map +1 -1
  79. package/dist/src/formats/graphml/importer.d.ts +2 -1
  80. package/dist/src/formats/graphml/importer.d.ts.map +1 -1
  81. package/dist/src/formats/graphml/importer.js +91 -27
  82. package/dist/src/formats/graphml/importer.js.map +1 -1
  83. package/dist/src/formats/graphml/yfiles.d.ts +62 -0
  84. package/dist/src/formats/graphml/yfiles.d.ts.map +1 -0
  85. package/dist/src/formats/graphml/yfiles.js +269 -0
  86. package/dist/src/formats/graphml/yfiles.js.map +1 -0
  87. package/dist/src/formats/json/exporter.d.ts.map +1 -1
  88. package/dist/src/formats/json/exporter.js +9 -1
  89. package/dist/src/formats/json/exporter.js.map +1 -1
  90. package/dist/src/formats/json/importer.d.ts +14 -0
  91. package/dist/src/formats/json/importer.d.ts.map +1 -1
  92. package/dist/src/formats/json/importer.js +165 -4
  93. package/dist/src/formats/json/importer.js.map +1 -1
  94. package/dist/src/formats/neo4j/exporter.d.ts.map +1 -1
  95. package/dist/src/formats/neo4j/exporter.js +1 -0
  96. package/dist/src/formats/neo4j/exporter.js.map +1 -1
  97. package/dist/src/formats/pajek/exporter.d.ts.map +1 -1
  98. package/dist/src/formats/pajek/exporter.js +3 -2
  99. package/dist/src/formats/pajek/exporter.js.map +1 -1
  100. package/package.json +2 -2
  101. package/src/common/export.ts +1 -1
  102. package/src/formats/csv/exporter.ts +140 -10
  103. package/src/formats/csv/importer.ts +207 -18
  104. package/src/formats/csv/records.ts +41 -6
  105. package/src/formats/dot/exporter.ts +2 -0
  106. package/src/formats/gexf/exporter.ts +40 -11
  107. package/src/formats/gexf/importer.ts +47 -25
  108. package/src/formats/gexf/index.ts +1 -1
  109. package/src/formats/gexf/schema.ts +18 -0
  110. package/src/formats/gml/exporter.ts +1 -0
  111. package/src/formats/gml/importer.ts +47 -24
  112. package/src/formats/gml/index.ts +4 -1
  113. package/src/formats/graphml/constants.ts +2 -0
  114. package/src/formats/graphml/exporter.ts +21 -2
  115. package/src/formats/graphml/importer.ts +99 -28
  116. package/src/formats/graphml/yfiles.ts +292 -0
  117. package/src/formats/json/exporter.ts +9 -1
  118. package/src/formats/json/importer.ts +202 -4
  119. package/src/formats/neo4j/exporter.ts +1 -0
  120. package/src/formats/pajek/exporter.ts +3 -1
  121. package/dist/chunks/importer-BOxwmef_.js.map +0 -1
  122. package/dist/chunks/importer-BddBW3sf.js.map +0 -1
  123. package/dist/chunks/importer-BtHFICnf.js.map +0 -1
  124. package/dist/chunks/importer-DfI8POXb.js.map +0 -1
  125. package/dist/chunks/records-BKSMowhR.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * The CSV / TSV importer (design sections 8.4 and 8.6; research note 07 section 2.6): a streaming
3
3
  * edge-list reader for the generic (`source,target[,weight,...]`), Gephi (`Source,Target,Type,Id,
4
- * Label,Weight,...`) and headerless (`u v [w]`) dialects, with an optional node table merged by id.
4
+ * Label,Weight,...`) and headerless (`u v [w]`) dialects, with an optional node table merged by id,
5
+ * and, with `table: "adjacency"`, an adjacency table (`node,neighbour[:weight],...`).
5
6
  *
6
7
  * - The delimiter is sniffed from a preview unless given; LF, CRLF and lone-CR files all read.
7
8
  * - The first row is a header when it holds a known column name or when it is all text over a
@@ -19,6 +20,17 @@
19
20
  * section 5.1 and the sink infers the column dtype (widening per column, never per cell); an
20
21
  * all-text column of low cardinality becomes a dict (design section 5.4); an `id` column of the
21
22
  * edge table is the edge id (role id, unique); a `label` column is the label (role label).
23
+ * - An adjacency table has no header (unless `header: true`, which skips the first row): each row
24
+ * is a node followed by its neighbours, one edge per neighbour in row order. A neighbour cell
25
+ * `id:weight` carries the edge's weight when the text after its LAST colon is a number; a cell
26
+ * ending in a bare colon (`a:1:`) is the id before it with no weight; any other cell is the id
27
+ * as written (`http://x`). A row holding only its node adds an isolated node. An empty adjacency
28
+ * table is the empty graph. The delimiter sniff skips a candidate under which a closing quote is
29
+ * followed by other text, since the field counts it otherwise relies on vary by row.
30
+ * - A node table without an id column is refused unless `rowNumberIds` is set: then each data row's
31
+ * 0-based number is its id, coerced by `ids` like any other id cell. The option applies to the
32
+ * node table (the `nodes` input, or the input itself when nothing is paired with it), whose first
33
+ * row it makes a header under `header: "auto"`; a paired edge table is read as without it.
22
34
  * - Per-row problems (wrong field count, blank endpoint, invalid weight, bad Type, refused id)
23
35
  * are recorded and the row skipped; the import aborts with ImportError once `errorLimit` is
24
36
  * exceeded, on a malformed or unterminated quoted field, on an empty input and on a header
@@ -62,7 +74,7 @@ export const COLUMN_MISSING_CODE = "W_CSV_COLUMN_MISSING";
62
74
  export const ROLE_TAKEN_CODE = SHARED_ROLE_TAKEN_CODE;
63
75
  /** Issue code: a repeated edge id (the column is unique); the edge is skipped. */
64
76
  export const DUPLICATE_EDGE_ID_CODE = SHARED_DUPLICATE_EDGE_ID_CODE;
65
- const TABLE_MODES = new Set(["edges", "nodes", "auto"]);
77
+ const TABLE_MODES = new Set(["edges", "nodes", "adjacency", "auto"]);
66
78
  /** The common options an edge-table import reads (the rest is reported by reportUnusedOptions). */
67
79
  const USED_OPTIONS = new Set([
68
80
  "ids",
@@ -130,7 +142,7 @@ function resolveCsvOptions(options) {
130
142
  });
131
143
  }
132
144
  if (o.table !== undefined && !TABLE_MODES.has(o.table)) {
133
- throw new GraphFormatError("E_UNSUPPORTED", 'option table: expected "edges", "nodes" or "auto"', {
145
+ throw new GraphFormatError("E_UNSUPPORTED", 'option table: expected "edges", "nodes", "adjacency" or "auto"', {
134
146
  option: "table",
135
147
  found: o.table,
136
148
  });
@@ -141,6 +153,28 @@ function resolveCsvOptions(options) {
141
153
  if (o.typeColumn !== null) {
142
154
  checkColumnRef("typeColumn", o.typeColumn);
143
155
  }
156
+ if (o.table === "adjacency") {
157
+ for (const name of ["sourceColumn", "targetColumn", "typeColumn", "idColumn"]) {
158
+ if (o[name] !== undefined) {
159
+ throw new GraphFormatError("E_UNSUPPORTED", `option ${name}: an adjacency table has no columns`, {
160
+ option: name,
161
+ found: o[name],
162
+ });
163
+ }
164
+ }
165
+ if (o.rowNumberIds === true) {
166
+ throw new GraphFormatError("E_UNSUPPORTED", "option rowNumberIds: an adjacency table names its nodes", {
167
+ option: "rowNumberIds",
168
+ found: o.rowNumberIds,
169
+ });
170
+ }
171
+ }
172
+ if (o.rowNumberIds !== undefined && typeof o.rowNumberIds !== "boolean") {
173
+ throw new GraphFormatError("E_UNSUPPORTED", "option rowNumberIds: expected a boolean", {
174
+ option: "rowNumberIds",
175
+ found: o.rowNumberIds,
176
+ });
177
+ }
144
178
  return {
145
179
  delimiter: o.delimiter ?? null,
146
180
  header: o.header ?? "auto",
@@ -150,6 +184,7 @@ function resolveCsvOptions(options) {
150
184
  typeColumn: o.typeColumn,
151
185
  idColumn: o.idColumn ?? null,
152
186
  nodes: o.nodes ?? null,
187
+ rowNumberIds: o.rowNumberIds ?? false,
153
188
  };
154
189
  }
155
190
  /**
@@ -265,6 +300,39 @@ function parseKind(text) {
265
300
  return null;
266
301
  }
267
302
  }
303
+ /**
304
+ * Split an adjacency neighbour cell into its id and weight: the text after the LAST colon is the
305
+ * weight when it is a number, nothing when it is empty (`a:1:` is the id `a:1`, unweighted, the
306
+ * form the exporter writes for an id containing a colon), and part of the id otherwise.
307
+ * @param text - the cell text
308
+ * @returns the id text and the weight (undefined when the cell has none)
309
+ */
310
+ export function splitNeighbour(text) {
311
+ const colon = text.lastIndexOf(":");
312
+ if (colon < 0) {
313
+ return { id: text, weight: undefined };
314
+ }
315
+ const suffix = text.slice(colon + 1);
316
+ if (suffix.length === 0) {
317
+ return { id: text.slice(0, colon), weight: undefined };
318
+ }
319
+ const weight = numberOrNull(suffix);
320
+ return weight === null ? { id: text, weight: undefined } : { id: text.slice(0, colon), weight };
321
+ }
322
+ /**
323
+ * A weight suffix as a number, or null when the text is not one.
324
+ * @param text - the suffix
325
+ * @returns the number, or null
326
+ */
327
+ function numberOrNull(text) {
328
+ try {
329
+ return parseWeightText(text) ?? null;
330
+ }
331
+ catch {
332
+ // not a number: the colon belongs to the id
333
+ return null;
334
+ }
335
+ }
268
336
  /**
269
337
  * Read one CSV table into the sink.
270
338
  */
@@ -288,9 +356,12 @@ class TableReader {
288
356
  this.where = { line: null, element: null };
289
357
  this.state = state;
290
358
  this.kind = kind;
359
+ this.rowNumbers = state.csv.rowNumberIds && (kind === "nodes" || (kind === "auto" && state.csv.nodes === null));
291
360
  const readerOptions = {
292
361
  delimiter: state.csv.delimiter,
293
362
  comments: COMMENT_CHARS,
363
+ // field counts say nothing about an adjacency table, whose rows vary in width
364
+ skipQuoteErrors: kind === "adjacency",
294
365
  signal: state.common.signal,
295
366
  onProgress: progress ? state.common.onProgress : null,
296
367
  encoding: state.common.encoding,
@@ -316,6 +387,10 @@ class TableReader {
316
387
  async readRows(iterator) {
317
388
  const { report } = this.state;
318
389
  const first = await iterator.next();
390
+ if (first.done && this.kind === "adjacency") {
391
+ // an adjacency table has no header: an empty one is the empty graph
392
+ return;
393
+ }
319
394
  const firstRow = first.done
320
395
  ? report.fail(EMPTY_INPUT_CODE, "the input is empty: no header row and no records")
321
396
  : first.value;
@@ -323,7 +398,15 @@ class TableReader {
323
398
  const firstQuoted = this.reader.quoted.slice(0, firstRow.length);
324
399
  const pending = [];
325
400
  let header;
326
- const { header: mode } = this.state.csv;
401
+ // an adjacency table has no header unless the caller says so: its rows vary in width; a
402
+ // table numbered by rowNumberIds has one, since a headerless table takes its ids from column 0
403
+ let mode = this.state.csv.header;
404
+ if (mode === "auto" && this.kind === "adjacency") {
405
+ mode = false;
406
+ }
407
+ else if (mode === "auto" && this.rowNumbers) {
408
+ mode = true;
409
+ }
327
410
  if (mode === "auto") {
328
411
  const second = await iterator.next();
329
412
  const secondRow = second.done ? null : second.value;
@@ -383,6 +466,9 @@ class TableReader {
383
466
  */
384
467
  resolvePlan(names, header, line) {
385
468
  const { csv, report } = this.state;
469
+ if (this.kind === "adjacency") {
470
+ return { kind: "adjacency", names: [] };
471
+ }
386
472
  const width = names.length;
387
473
  let source = -1;
388
474
  let target = -1;
@@ -421,7 +507,7 @@ class TableReader {
421
507
  report.fail(NO_ENDPOINT_COLUMNS_CODE, `no source / target columns in the header (${shown}); a node table goes in the nodes option`, { line }, { columns: [...names] });
422
508
  }
423
509
  const idResolves = header ? findColumn(names, ID_NAMES) >= 0 : width >= 1;
424
- if (this.kind === "auto" && csv.idColumn === null && !idResolves) {
510
+ if (this.kind === "auto" && csv.idColumn === null && !idResolves && !this.rowNumbers) {
425
511
  report.fail(NO_ENDPOINT_COLUMNS_CODE, `no source / target columns and no id column in the header (${shown}); the input is neither an edge table nor a node table`, { line }, { columns: [...names] });
426
512
  }
427
513
  return this.nodePlan(names, header, line);
@@ -524,6 +610,10 @@ class TableReader {
524
610
  id = -1;
525
611
  break;
526
612
  default:
613
+ if (idColumn < 0 && this.rowNumbers) {
614
+ id = -1;
615
+ break;
616
+ }
527
617
  if (idColumn < 0) {
528
618
  report.fail(NO_ID_COLUMN_CODE, `no id column in the node table header (${names.map((n) => JSON.stringify(n)).join(", ")})`, { line }, { columns: [...names] });
529
619
  }
@@ -540,7 +630,8 @@ class TableReader {
540
630
  attributes.push(i);
541
631
  }
542
632
  }
543
- return { kind: "nodes", names, width: names.length, id, label, attributes };
633
+ const rowNumber = id < 0 && common.nodeIdFrom !== "index";
634
+ return { kind: "nodes", names, width: names.length, id, rowNumber, label, attributes };
544
635
  }
545
636
  /**
546
637
  * Declare the role columns and create a writer per attribute column.
@@ -548,6 +639,9 @@ class TableReader {
548
639
  */
549
640
  prepareColumns(line) {
550
641
  const plan = this.requirePlan();
642
+ if (plan.kind === "adjacency") {
643
+ return;
644
+ }
551
645
  const { sink, report } = this.state;
552
646
  const domain = plan.kind === "edges" ? "edge" : "node";
553
647
  const origin = { format: "csv" };
@@ -584,9 +678,76 @@ class TableReader {
584
678
  if (plan.kind === "edges") {
585
679
  this.processEdgeRow(plan, row, quoted, line);
586
680
  }
587
- else {
681
+ else if (plan.kind === "nodes") {
588
682
  this.processNodeRow(plan, row, quoted, line);
589
683
  }
684
+ else {
685
+ this.processAdjacencyRow(row, quoted, line);
686
+ }
687
+ }
688
+ /**
689
+ * Push one adjacency row: the node, then one edge per set neighbour cell, in row order.
690
+ * @param row - the cells
691
+ * @param quoted - whether each cell was quoted
692
+ * @param line - the row's line
693
+ */
694
+ processAdjacencyRow(row, quoted, line) {
695
+ const { report, sink, resolver, common } = this.state;
696
+ const { counts } = report;
697
+ const { where } = this;
698
+ where.line = line;
699
+ where.element = null;
700
+ let neighbours = 0;
701
+ for (let k = 1; k < row.length; k++) {
702
+ if (!isUnset(row[k], quoted[k])) {
703
+ neighbours++;
704
+ }
705
+ }
706
+ if (isUnset(row[0], quoted[0])) {
707
+ report.error("missing-value", MISSING_ID_CODE, `line ${line}: blank node cell`, { line });
708
+ counts.skippedNodes++;
709
+ counts.skippedEdges += neighbours;
710
+ return;
711
+ }
712
+ const kind = (this.state.commentDirected ?? common.defaultDirected) ? "directed" : "undirected";
713
+ if (!this.state.headerSet) {
714
+ this.state.headerSet = true;
715
+ resolver.setHeader(kind !== "undirected", where);
716
+ }
717
+ let source;
718
+ try {
719
+ where.element = row[0];
720
+ source = this.coerce(row[0]);
721
+ if (sink.indexOf(source) === INVALID_INDEX) {
722
+ counts.nodes++;
723
+ }
724
+ sink.addNode(source);
725
+ }
726
+ catch (err) {
727
+ report.recordError(err, where);
728
+ counts.skippedNodes++;
729
+ counts.skippedEdges += neighbours;
730
+ return;
731
+ }
732
+ for (let k = 1; k < row.length; k++) {
733
+ if (isUnset(row[k], quoted[k])) {
734
+ continue;
735
+ }
736
+ where.element = row[k];
737
+ try {
738
+ const cell = splitNeighbour(row[k]);
739
+ const target = this.coerce(cell.id);
740
+ const targetNew = sink.indexOf(target) === INVALID_INDEX;
741
+ const before = sink.edgeCount;
742
+ resolver.addEdge(source, target, kind, common.weightFrom === null ? undefined : cell.weight, where);
743
+ counts.edges += sink.edgeCount - before;
744
+ counts.nodes += targetNew ? 1 : 0;
745
+ }
746
+ catch (err) {
747
+ report.recordError(err, where);
748
+ counts.skippedEdges++;
749
+ }
750
+ }
590
751
  }
591
752
  /**
592
753
  * Push one edge row: endpoints, weight, direction, then the attribute cells.
@@ -692,7 +853,7 @@ class TableReader {
692
853
  where.element = idText;
693
854
  let index;
694
855
  try {
695
- const id = plan.id >= 0 ? this.coerce(idText) : ordinal;
856
+ const id = plan.id >= 0 || plan.rowNumber ? this.coerce(idText) : ordinal;
696
857
  if (sink.indexOf(id) !== INVALID_INDEX) {
697
858
  report.warning("merged", DUPLICATE_NODE_CODE, `line ${line}: node ${JSON.stringify(id)} already exists; its attributes are overwritten`, where);
698
859
  }
@@ -1 +1 @@
1
- {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../../src/formats/csv/importer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../../src/formats/csv/importer.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ import { type ImportInput } from "../../types.js";
20
20
  export declare const UNCLOSED_QUOTE_CODE = "E_CSV_UNCLOSED_QUOTE";
21
21
  /** Issue code: a closing quote is followed by text other than a delimiter or a line break; the import aborts. */
22
22
  export declare const BAD_QUOTE_CODE = "E_CSV_QUOTE";
23
+ /** The delimiters tried, in priority order, when none is given. */
24
+ export declare const DELIMITER_CANDIDATES: readonly string[];
23
25
  /** The delimiter and quote of a reader. */
24
26
  export interface RecordSyntax {
25
27
  /** The field delimiter, one character; null sniffs it from the first rows. */
@@ -34,6 +36,11 @@ export interface RecordSyntax {
34
36
  * sniff. A later line starting with one of them is an ordinary record. Default: none.
35
37
  */
36
38
  readonly comments?: readonly string[] | undefined;
39
+ /**
40
+ * Whether the delimiter sniff skips a candidate under which a closing quote is followed by
41
+ * other text (see sniffDelimiter). False by default: that text then aborts the read.
42
+ */
43
+ readonly skipQuoteErrors?: boolean | undefined;
37
44
  }
38
45
  /**
39
46
  * Check a delimiter or quote option: exactly one character that is not a line break, and the two
@@ -59,9 +66,13 @@ export declare function sniffNewline(text: string): "\n" | "\r";
59
66
  * kept for callers that sniffed it)
60
67
  * @param candidates - the delimiters to try, in priority order
61
68
  * @param quote - the quote character
69
+ * @param skipQuoteErrors - also never choose a candidate under which a closing quote is followed
70
+ * by other text. Only for inputs whose field counts say nothing (an adjacency table's rows vary in
71
+ * width): elsewhere a stray character after a quote would make a worse candidate win silently
72
+ * instead of aborting the read
62
73
  * @returns the delimiter, or null
63
74
  */
64
- export declare function sniffDelimiter(text: string, newline?: "\n" | "\r", candidates?: readonly string[], quote?: string): string | null;
75
+ export declare function sniffDelimiter(text: string, newline?: "\n" | "\r", candidates?: readonly string[], quote?: string, skipQuoteErrors?: boolean): string | null;
65
76
  /**
66
77
  * Reads the records of one input. Iterate with `for await (const count of reader)`: each
67
78
  * iteration fills `reader.cells[0..count)` and `reader.quoted[0..count)` and sets `reader.line`
@@ -140,6 +151,8 @@ export interface CsvReaderOptions extends ReadOptions {
140
151
  readonly delimiter?: string | null | undefined;
141
152
  /** The characters opening a leading comment line (RecordSyntax.comments); none by default. */
142
153
  readonly comments?: readonly string[] | undefined;
154
+ /** RecordSyntax.skipQuoteErrors; false by default. */
155
+ readonly skipQuoteErrors?: boolean | undefined;
143
156
  }
144
157
  /**
145
158
  * Records of a CSV input, one string array per row, streamed: iterate with
@@ -1 +1 @@
1
- {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../../../src/formats/csv/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../../../src/formats/csv/records.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export const UNCLOSED_QUOTE_CODE = "E_CSV_UNCLOSED_QUOTE";
20
20
  /** Issue code: a closing quote is followed by text other than a delimiter or a line break; the import aborts. */
21
21
  export const BAD_QUOTE_CODE = "E_CSV_QUOTE";
22
22
  /** The delimiters tried, in priority order, when none is given. */
23
- const DELIMITER_CANDIDATES = Object.freeze([",", "\t", ";", "|", " "]);
23
+ export const DELIMITER_CANDIDATES = Object.freeze([",", "\t", ";", "|", " "]);
24
24
  /** Rows the delimiter sniff looks at. */
25
25
  const PREVIEW_ROWS = 10;
26
26
  /** Characters buffered for the sniff when the input has fewer than PREVIEW_ROWS line breaks. */
@@ -81,9 +81,11 @@ export function sniffNewline(text) {
81
81
  * @param delimiter - the delimiter
82
82
  * @param quote - the quote character
83
83
  * @param maxRows - the most rows to return
84
- * @returns the rows as cell arrays (blank lines skipped)
84
+ * @param strictQuotes - return null when a closing quote is followed by text other than the
85
+ * delimiter or a line break (the import would abort under this delimiter)
86
+ * @returns the rows as cell arrays (blank lines skipped), or null (see strictQuotes)
85
87
  */
86
- function splitRecords(text, delimiter, quote, maxRows) {
88
+ function splitRecords(text, delimiter, quote, maxRows, strictQuotes = false) {
87
89
  const rows = [];
88
90
  const delimiterCode = delimiter.charCodeAt(0);
89
91
  const quoteCode = quote.charCodeAt(0);
@@ -108,6 +110,9 @@ function splitRecords(text, delimiter, quote, maxRows) {
108
110
  state = QUOTED;
109
111
  continue;
110
112
  }
113
+ if (strictQuotes && c !== delimiterCode && c !== LF && c !== CR) {
114
+ return null;
115
+ }
111
116
  state = AFTER_QUOTED;
112
117
  segment = i;
113
118
  }
@@ -191,9 +196,13 @@ function stripLeadingComments(text, comments) {
191
196
  * kept for callers that sniffed it)
192
197
  * @param candidates - the delimiters to try, in priority order
193
198
  * @param quote - the quote character
199
+ * @param skipQuoteErrors - also never choose a candidate under which a closing quote is followed
200
+ * by other text. Only for inputs whose field counts say nothing (an adjacency table's rows vary in
201
+ * width): elsewhere a stray character after a quote would make a worse candidate win silently
202
+ * instead of aborting the read
194
203
  * @returns the delimiter, or null
195
204
  */
196
- export function sniffDelimiter(text, newline = "\n", candidates = DELIMITER_CANDIDATES, quote = '"') {
205
+ export function sniffDelimiter(text, newline = "\n", candidates = DELIMITER_CANDIDATES, quote = '"', skipQuoteErrors = false) {
197
206
  let best = null;
198
207
  let bestDelta = Infinity;
199
208
  let bestAverage = 0;
@@ -202,7 +211,12 @@ export function sniffDelimiter(text, newline = "\n", candidates = DELIMITER_CAND
202
211
  if (delimiter === quote || delimiter === newline) {
203
212
  continue;
204
213
  }
205
- let rows = splitRecords(text, delimiter, quote, PREVIEW_ROWS).filter((row) => !isBlankRow(row));
214
+ const split = splitRecords(text, delimiter, quote, PREVIEW_ROWS, skipQuoteErrors);
215
+ if (split === null) {
216
+ // a quoted cell this delimiter does not close: it is not the file's delimiter
217
+ continue;
218
+ }
219
+ let rows = split.filter((row) => !isBlankRow(row));
206
220
  if (rows.length > 1 && !terminated) {
207
221
  // the preview is a prefix of the file: its last row may be cut short
208
222
  rows = rows.slice(0, -1);
@@ -390,7 +404,9 @@ export class RecordReader {
390
404
  // the sniff is a heuristic over the first rows: a single chunk holding a huge quoted cell
391
405
  // is capped so the candidate scans stay bounded
392
406
  const body = stripLeadingComments(text.slice(0, PREVIEW_CHARS), this.syntax.comments ?? []);
393
- this.delimiterText = sniffDelimiter(body, sniffNewline(body), candidates, this.syntax.quote) ?? candidates[0];
407
+ this.delimiterText =
408
+ sniffDelimiter(body, sniffNewline(body), candidates, this.syntax.quote, this.syntax.skipQuoteErrors) ??
409
+ candidates[0];
394
410
  }
395
411
  }
396
412
  /**
@@ -654,7 +670,12 @@ export class CsvRecordReader {
654
670
  * @param options - the delimiter, cancellation and progress
655
671
  */
656
672
  constructor(input, report, options = {}) {
657
- this.inner = new RecordReader(input, report, { delimiter: options.delimiter ?? null, quote: '"', comments: options.comments }, { signal: options.signal, onProgress: options.onProgress, encoding: options.encoding });
673
+ this.inner = new RecordReader(input, report, {
674
+ delimiter: options.delimiter ?? null,
675
+ quote: '"',
676
+ comments: options.comments,
677
+ skipQuoteErrors: options.skipQuoteErrors,
678
+ }, { signal: options.signal, onProgress: options.onProgress, encoding: options.encoding });
658
679
  }
659
680
  /**
660
681
  * The leading comment lines the reader skipped (SNAP `#` lines, the KONECT `%` header), in order.