diff --git a/dist/index.js b/dist/index.js index 078bea514..d60d7cad8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6771,6 +6771,7 @@ class Parser extends Transform { } } this.info = { + bytes: 0, comment_lines: 0, empty_lines: 0, invalid_field_length: 0, @@ -6780,6 +6781,7 @@ class Parser extends Transform { this.options = options this.state = { bomSkipped: false, + bufBytesStart: 0, castField: fnCastField, commenting: false, // Current error encountered by a record @@ -6866,7 +6868,9 @@ class Parser extends Transform { for(let encoding in boms){ if(boms[encoding].compare(buf, 0, boms[encoding].length) === 0){ // Skip BOM - buf = buf.slice(boms[encoding].length) + let bomLength = boms[encoding].length + this.state.bufBytesStart += bomLength + buf = buf.slice(bomLength) // Renormalize original options with the new encoding this.__normalizeOptions({...this.__originalOptions, encoding: encoding}) break @@ -7006,8 +7010,10 @@ class Parser extends Transform { pos += recordDelimiterLength - 1 continue } + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField + this.info.bytes = this.state.bufBytesStart + pos + recordDelimiterLength; const errRecord = this.__onRecord() if(errRecord !== undefined) return errRecord if(to !== -1 && this.info.records >= to){ @@ -7030,6 +7036,7 @@ class Parser extends Transform { } let delimiterLength = this.__isDelimiter(buf, pos, chr) if(delimiterLength !== 0){ + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField pos += delimiterLength - 1 @@ -7079,6 +7086,7 @@ class Parser extends Transform { }else{ // Skip last line if it has no characters if(this.state.wasQuoting === true || this.state.record.length !== 0 || this.state.field.length !== 0){ + this.info.bytes = this.state.bufBytesStart + pos; const errField = this.__onField() if(errField !== undefined) return errField const errRecord = this.__onRecord() @@ -7090,6 +7098,7 @@ class Parser extends Transform { } } }else{ + this.state.bufBytesStart += pos this.state.previousBuf = buf.slice(pos) } if(this.state.wasRowDelimiter === true){ @@ -7504,7 +7513,7 @@ const parse = function(){ throw new CsvError('CSV_INVALID_ARGUMENT', [ 'Invalid argument:', `got ${JSON.stringify(argument)} at index ${i}` - ], this.options) + ], options || {}) } } const parser = new Parser(options) diff --git a/package.json b/package.json index a9c6dbbb4..da184d576 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@actions/core": "^1.5.0", "@actions/exec": "^1.1.0", "@actions/github": "^5.0.0", - "csv-parse": "^4.16.0", + "csv-parse": "^4.16.2", "semver": "^7.3.5", "tmp": "^0.2.1" }, diff --git a/yarn.lock b/yarn.lock index 7db367ad6..763d64b90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1270,10 +1270,10 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csv-parse@*, csv-parse@^4.16.0: - version "4.16.0" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.0.tgz#b4c875e288a41f7ff917cb0d7d45880d563034f6" - integrity sha512-Zb4tGPANH4SW0LgC9+s9Mnequs9aqn7N3/pCqNbVjs2XhEF6yWNU2Vm4OGl1v2Go9nw8rXt87Cm2QN/o6Vpqgg== +csv-parse@*, csv-parse@^4.16.2: + version "4.16.2" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.2.tgz#cd7d25e9b9e1430ac6aa5ed9b5c1685e72d4a8d8" + integrity sha512-eq2BhB6JiIJaNv61pH5EC+o/iyCBxT+g6ukLu2UoNyS5daCN8YlzhOsLHGt/t9sGraMYt/aizaXPLQoNvxlIMw== data-urls@^2.0.0: version "2.0.0"