Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: adaltas/node-csv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: [email protected]
Choose a base ref
...
head repository: adaltas/node-csv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: [email protected]
Choose a head ref
  • 8 commits
  • 58 files changed
  • 3 contributors

Commits on Jun 20, 2026

  1. fix(csv-stringify): quote fields fusing with a multi-character separator

    A field whose tail is a non-empty prefix of a multi-character delimiter or
    record delimiter must be quoted, otherwise the separator appended after it
    re-tokenizes the boundary on parse and the value is silently corrupted:
    
      stringify([["a:", "b"]], { delimiter: "::" })            // a:::b
      parse("a:::b", { delimiter: "::" })                      // [["a", ":b"]]
    
    The quoting predicate only checked `value.indexOf(separator) >= 0`, which
    catches a field that contains the whole separator but misses this boundary
    fusion. The same gap affected `record_delimiter`. Both now share an
    `emits_separator` helper; single-character separators and non-fusing fields
    are unaffected (no extra quoting). RFC 4180 §2.6, generalized to the library's
    multi-character separators.
    spokodev authored and wdavidw committed Jun 20, 2026
    Configuration menu
    Copy the full SHA
    46cab38 View commit details
    Browse the repository at this point in the history
  2. fix(csv-parse): ship stream cjs export (#490)

    * fix: ship csv-parse stream cjs export
    
    * test: cover csv-parse stream in cjs demo
    YfengJ authored Jun 20, 2026
    Configuration menu
    Copy the full SHA
    230af8e View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2026

  1. Configuration menu
    Copy the full SHA
    a5ef896 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2026

  1. Configuration menu
    Copy the full SHA
    9d29553 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5ca79e9 View commit details
    Browse the repository at this point in the history
  3. build: latest dependencies

    wdavidw committed Jun 29, 2026
    Configuration menu
    Copy the full SHA
    abfe4de View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2026

  1. fix(csv-stringify): double regexp-metacharacter escape/quote literally (

    #494)
    
    * fix(csv-stringify): double regexp-metacharacter escape/quote literally
    
    The escape and quote characters are configurable to any single character,
    but when a quoted field contained the escape or quote char, the code doubled
    occurrences via `new RegExp(escape, "g")` / `new RegExp(quote, "g")`. That
    interpolates the user char into a pattern, so metacharacters misbehave:
    `|` and `.` match everywhere and inject the doubled char at every position,
    `*`/`+`/`?` throw "Nothing to repeat", and `^`/`$` anchor and silently no-op.
    
    Replace the RegExp doubling with a literal `replaceAll` using a function
    replacer, so neither the pattern nor a `$` in the replacement is interpreted.
    This restores the round-trip invariant parse(stringify(x)) === x for any
    configured escape/quote character.
    
    * test(csv-stringify): dispatch 494 tests
    
    (cherry picked from commit 662726b)
    
    ---------
    
    Co-authored-by: David Worms <[email protected]>
    spokodev and wdavidw authored Jul 2, 2026
    Configuration menu
    Copy the full SHA
    db852d1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6e0d5a3 View commit details
    Browse the repository at this point in the history
Loading