Socket
Socket
Sign inDemoInstall

csv-parse

Package Overview
Dependencies
Maintainers
1
Versions
141
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

csv-parse - npm Package Compare versions

Comparing version 4.13.1 to 4.14.0

10

CHANGELOG.md

@@ -15,3 +15,13 @@

* encoding: new encoding_input and encoding_output options (medium)
* context: isolate info properties at context root (easy)
* context: merge record, raw, context, info, error into a single object (medium)
* relax_column_count: rename INCONSISTENT_RECORD_LENGTH to RECORD_INCONSISTENT_FIELDS_LENGTH (easy)
* relax_column_count: rename RECORD_DONT_MATCH_COLUMNS_LENGTH to RECORD_INCONSISTENT_COLUMNS (easy)
## Version 4.14.0
* on_record: expose info.error when relax_column_count is activated
* raw: move tests
* package: latest dependencies
## Version 4.13.1

@@ -18,0 +28,0 @@

1

lib/es5/index.d.ts

@@ -34,2 +34,3 @@ // Original definitions in https://github.com/DefinitelyTyped/DefinitelyTyped by: David Muller <https://github.com/davidm77>

readonly empty_lines: number;
readonly error: CsvError;
readonly header: boolean;

@@ -36,0 +37,0 @@ readonly index: number;

69

lib/es5/index.js

@@ -484,2 +484,4 @@ "use strict";

commenting: false,
// Current error encountered by a record
error: undefined,
enabled: options.from_line === 1,

@@ -898,19 +900,18 @@ escaping: false,

if (recordLength !== this.state.expectedRecordLength) {
var err = columns === false ? this.__error( // Todo: rename CSV_INCONSISTENT_RECORD_LENGTH to
// CSV_RECORD_INCONSISTENT_FIELDS_LENGTH
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', ['Invalid Record Length:', "expect ".concat(this.state.expectedRecordLength, ","), "got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), {
record: record
})) : this.__error( // Todo: rename CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH to
// CSV_RECORD_INCONSISTENT_COLUMNS
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', ['Invalid Record Length:', "columns length is ".concat(columns.length, ","), // rename columns
"got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), {
record: record
}));
if (relax_column_count === true || relax_column_count_less === true && recordLength < this.state.expectedRecordLength || relax_column_count_more === true && recordLength > this.state.expectedRecordLength) {
this.info.invalid_field_length++;
} else {
if (columns === false) {
var err = this.__error(new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', ['Invalid Record Length:', "expect ".concat(this.state.expectedRecordLength, ","), "got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), {
record: record
}));
if (err !== undefined) return err;
} else {
var _err5 = this.__error(new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', ['Invalid Record Length:', "columns length is ".concat(columns.length, ","), // rename columns
"got ".concat(recordLength, " on line ").concat(this.info.lines)], this.options, this.__context(), {
record: record
}));
if (_err5 !== undefined) return _err5;
}
this.state.error = err; // Error is undefined with skip_lines_with_error
} else if (err !== undefined) {
return err;
}

@@ -958,3 +959,3 @@ }

if (raw === true || info === true) {
var _err6 = this.__push(Object.assign({
var _err5 = this.__push(Object.assign({
record: obj

@@ -967,10 +968,10 @@ }, raw === true ? {

if (_err6) {
return _err6;
if (_err5) {
return _err5;
}
} else {
var _err7 = this.__push(obj);
var _err6 = this.__push(obj);
if (_err7) {
return _err7;
if (_err6) {
return _err6;
}

@@ -980,3 +981,3 @@ }

if (raw === true || info === true) {
var _err8 = this.__push(Object.assign({
var _err7 = this.__push(Object.assign({
record: [obj[objname], obj]

@@ -989,10 +990,10 @@ }, raw === true ? {

if (_err8) {
return _err8;
if (_err7) {
return _err7;
}
} else {
var _err9 = this.__push([obj[objname], obj]);
var _err8 = this.__push([obj[objname], obj]);
if (_err9) {
return _err9;
if (_err8) {
return _err8;
}

@@ -1003,3 +1004,3 @@ }

if (raw === true || info === true) {
var _err10 = this.__push(Object.assign({
var _err9 = this.__push(Object.assign({
record: record

@@ -1012,10 +1013,10 @@ }, raw === true ? {

if (_err10) {
return _err10;
if (_err9) {
return _err9;
}
} else {
var _err11 = this.__push(record);
var _err10 = this.__push(record);
if (_err11) {
return _err11;
if (_err10) {
return _err10;
}

@@ -1060,2 +1061,3 @@ }

this.state.error = undefined;
this.state.record = [];

@@ -1328,2 +1330,3 @@ this.state.record_length = 0;

empty_lines: this.info.empty_lines,
error: this.state.error,
header: columns === true,

@@ -1330,0 +1333,0 @@ index: this.state.record.length,

@@ -34,2 +34,3 @@ // Original definitions in https://github.com/DefinitelyTyped/DefinitelyTyped by: David Muller <https://github.com/davidm77>

readonly empty_lines: number;
readonly error: CsvError;
readonly header: boolean;

@@ -36,0 +37,0 @@ readonly index: number;

@@ -406,2 +406,4 @@

commenting: false,
// Current error encountered by a record
error: undefined,
enabled: options.from_line === 1,

@@ -748,2 +750,26 @@ escaping: false,

if(recordLength !== this.state.expectedRecordLength){
const err = columns === false ?
this.__error(
// Todo: rename CSV_INCONSISTENT_RECORD_LENGTH to
// CSV_RECORD_INCONSISTENT_FIELDS_LENGTH
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', [
'Invalid Record Length:',
`expect ${this.state.expectedRecordLength},`,
`got ${recordLength} on line ${this.info.lines}`,
], this.options, this.__context(), {
record: record,
})
)
:
this.__error(
// Todo: rename CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH to
// CSV_RECORD_INCONSISTENT_COLUMNS
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', [
'Invalid Record Length:',
`columns length is ${columns.length},`, // rename columns
`got ${recordLength} on line ${this.info.lines}`,
], this.options, this.__context(), {
record: record,
})
)
if(relax_column_count === true ||

@@ -753,26 +779,6 @@ (relax_column_count_less === true && recordLength < this.state.expectedRecordLength) ||

this.info.invalid_field_length++
}else{
if(columns === false){
const err = this.__error(
new CsvError('CSV_INCONSISTENT_RECORD_LENGTH', [
'Invalid Record Length:',
`expect ${this.state.expectedRecordLength},`,
`got ${recordLength} on line ${this.info.lines}`,
], this.options, this.__context(), {
record: record,
})
)
if(err !== undefined) return err
}else{
const err = this.__error(
new CsvError('CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH', [
'Invalid Record Length:',
`columns length is ${columns.length},`, // rename columns
`got ${recordLength} on line ${this.info.lines}`,
], this.options, this.__context(), {
record: record,
})
)
if(err !== undefined) return err
}
this.state.error = err
// Error is undefined with skip_lines_with_error
}else if(err !== undefined){
return err
}

@@ -891,2 +897,3 @@ }

}
this.state.error = undefined
this.state.record = []

@@ -1090,2 +1097,3 @@ this.state.record_length = 0

empty_lines: this.info.empty_lines,
error: this.state.error,
header: columns === true,

@@ -1092,0 +1100,0 @@ index: this.state.record.length,

{
"version": "4.13.1",
"version": "4.14.0",
"name": "csv-parse",

@@ -52,18 +52,18 @@ "description": "CSV parsing implementing the Node.js `stream.Transform` API",

"devDependencies": {
"@babel/cli": "^7.5.5",
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"@types/mocha": "^5.2.7",
"@types/node": "^12.6.9",
"coffeescript": "^2.4.1",
"csv-generate": "^3.2.3",
"@babel/cli": "^7.12.1",
"@babel/core": "^7.12.3",
"@babel/preset-env": "^7.12.1",
"@types/mocha": "^8.0.3",
"@types/node": "^14.14.6",
"coffeescript": "^2.5.1",
"csv-generate": "^3.2.4",
"csv-spectrum": "^1.0.0",
"each": "^1.2.1",
"eslint": "^6.5.1",
"mocha": "^6.2.0",
"each": "^1.2.2",
"eslint": "^7.12.1",
"mocha": "^8.2.1",
"pad": "^3.2.0",
"should": "^13.2.3",
"stream-transform": "^2.0.1",
"ts-node": "^8.3.0",
"typescript": "^3.5.3"
"stream-transform": "^2.0.2",
"ts-node": "^9.0.0",
"typescript": "^4.0.5"
},

@@ -70,0 +70,0 @@ "files": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc