{"name":"FileNest CSV / JSON Compatibility Fixture Results","publishedAt":"2026-08-29","modifiedAt":"2026-08-29","productionCommit":"8b3805321fb987ecd6c0090972686b15e3cb740e","implementation":{"path":"lib/data-conversion.ts","blobSha":"34345ac39da0bcaa91f8dfcbc213950d358749c1"},"runner":{"runtime":"Node.js 22.16.0","harness":"node:test","assertions":21,"passed":21,"failed":0},"scope":"Pure CSV/TSV parser, JSON shape validation, and CSV/TSV/JSON serializer module used by the production converter.","result":{"assertions":21,"passed":21,"failed":0},"categories":[{"id":"delimited","assertions":12,"passed":12,"label":"CSV / TSV parsing"},{"id":"json-shape","assertions":4,"passed":4,"label":"JSON input shape"},{"id":"serialization","assertions":5,"passed":5,"label":"CSV / TSV / JSON serialization"}],"cases":[{"id":"simple-csv","category":"delimited","label":"Basic CSV rows and columns","status":"pass"},{"id":"quoted-comma","category":"delimited","label":"Comma inside a quoted field","status":"pass"},{"id":"escaped-quote","category":"delimited","label":"Escaped double quotes","status":"pass"},{"id":"multiline-quoted-field","category":"delimited","label":"Newline inside a quoted field","status":"pass"},{"id":"crlf","category":"delimited","label":"Windows CRLF line endings","status":"pass"},{"id":"tsv","category":"delimited","label":"TSV tab delimiter","status":"pass"},{"id":"blank-header","category":"delimited","label":"Blank header fallback to column_N","status":"pass"},{"id":"duplicate-headers","category":"delimited","label":"Duplicate headers preserved as name / name_2","status":"pass"},{"id":"three-duplicate-headers","category":"delimited","label":"Deterministic numbering for three duplicate headers","status":"pass"},{"id":"extra-cells","category":"delimited","label":"Extra row cells preserved as column_N","status":"pass"},{"id":"short-rows","category":"delimited","label":"Short rows padded with empty values","status":"pass"},{"id":"unclosed-quote","category":"delimited","label":"Unclosed quoted field rejected explicitly","status":"pass"},{"id":"json-object","category":"json-shape","label":"Single JSON object accepted","status":"pass"},{"id":"json-object-array","category":"json-shape","label":"Array of JSON objects accepted","status":"pass"},{"id":"json-scalar","category":"json-shape","label":"JSON scalar rejected","status":"pass"},{"id":"json-scalar-array","category":"json-shape","label":"Array of JSON scalars rejected","status":"pass"},{"id":"serialize-comma","category":"serialization","label":"CSV output quotes fields containing commas","status":"pass"},{"id":"serialize-quotes","category":"serialization","label":"CSV output escapes double quotes","status":"pass"},{"id":"serialize-tsv","category":"serialization","label":"TSV output delimiter","status":"pass"},{"id":"serialize-pretty-json","category":"serialization","label":"Pretty-printed JSON output","status":"pass"},{"id":"serialize-nested-object","category":"serialization","label":"Nested object preserved as JSON text in CSV","status":"pass"}],"exclusions":["This is not a browser or device compatibility matrix.","It does not measure conversion speed, peak memory use or maximum file size.","It does not exercise file pickers, downloads, ZIP packaging, accounts, quotas or billing.","It is not an RFC 4180 certification and does not claim to cover every real-world CSV dialect."],"canonicalPages":{"en":"https://filenest-pages.pages.dev/en/benchmarks/csv-json-compatibility","zh":"https://filenest-pages.pages.dev/zh/benchmarks/csv-json-compatibility"},"tool":"https://filenest-pages.pages.dev/en/tools/csv-json-converter"}