Merge pull request #287 from docker/dependabot/npm_and_yarn/csv-parse-4.15.1
Bump csv-parse from 4.14.2 to 4.15.1
This commit is contained in:
		
						commit
						b280b0485b
					
				
							
								
								
									
										99
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -11668,10 +11668,14 @@ additional information.
 | 
				
			|||||||
const { Transform } = __webpack_require__(413)
 | 
					const { Transform } = __webpack_require__(413)
 | 
				
			||||||
const ResizeableBuffer = __webpack_require__(942)
 | 
					const ResizeableBuffer = __webpack_require__(942)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// white space characters
 | 
				
			||||||
 | 
					// https://en.wikipedia.org/wiki/Whitespace_character
 | 
				
			||||||
 | 
					// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes#Types
 | 
				
			||||||
 | 
					// \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff
 | 
				
			||||||
const tab = 9
 | 
					const tab = 9
 | 
				
			||||||
const nl = 10
 | 
					const nl = 10 // \n, 0x0A in hexadecimal, 10 in decimal
 | 
				
			||||||
const np = 12
 | 
					const np = 12
 | 
				
			||||||
const cr = 13
 | 
					const cr = 13 // \r, 0x0D in hexadécimal, 13 in decimal
 | 
				
			||||||
const space = 32
 | 
					const space = 32
 | 
				
			||||||
const boms = {
 | 
					const boms = {
 | 
				
			||||||
  // Note, the following are equals:
 | 
					  // Note, the following are equals:
 | 
				
			||||||
@ -11860,6 +11864,27 @@ class Parser extends Transform {
 | 
				
			|||||||
        throw new Error(`Invalid Option: from_line must be an integer, got ${JSON.stringify(opts.from_line)}`)
 | 
					        throw new Error(`Invalid Option: from_line must be an integer, got ${JSON.stringify(opts.from_line)}`)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    // Normalize options `ignore_last_delimiters`
 | 
				
			||||||
 | 
					    if(options.ignore_last_delimiters === undefined || options.ignore_last_delimiters === null){
 | 
				
			||||||
 | 
					      options.ignore_last_delimiters = false
 | 
				
			||||||
 | 
					    }else if(typeof options.ignore_last_delimiters === 'number'){
 | 
				
			||||||
 | 
					      options.ignore_last_delimiters = Math.floor(options.ignore_last_delimiters)
 | 
				
			||||||
 | 
					      if(options.ignore_last_delimiters === 0){
 | 
				
			||||||
 | 
					        options.ignore_last_delimiters = false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }else if(typeof options.ignore_last_delimiters !== 'boolean'){
 | 
				
			||||||
 | 
					      throw new CsvError('CSV_INVALID_OPTION_IGNORE_LAST_DELIMITERS', [
 | 
				
			||||||
 | 
					        'Invalid option `ignore_last_delimiters`:',
 | 
				
			||||||
 | 
					        'the value must be a boolean value or an integer,',
 | 
				
			||||||
 | 
					        `got ${JSON.stringify(options.ignore_last_delimiters)}`
 | 
				
			||||||
 | 
					      ], options)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if(options.ignore_last_delimiters === true && options.columns === false){
 | 
				
			||||||
 | 
					      throw new CsvError('CSV_IGNORE_LAST_DELIMITERS_REQUIRES_COLUMNS', [
 | 
				
			||||||
 | 
					        'The option `ignore_last_delimiters`',
 | 
				
			||||||
 | 
					        'requires the activation of the `columns` option'
 | 
				
			||||||
 | 
					      ], options)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    // Normalize option `info`
 | 
					    // Normalize option `info`
 | 
				
			||||||
    if(options.info === undefined || options.info === null || options.info === false){
 | 
					    if(options.info === undefined || options.info === null || options.info === false){
 | 
				
			||||||
      options.info = false
 | 
					      options.info = false
 | 
				
			||||||
@ -12177,7 +12202,7 @@ class Parser extends Transform {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
      // Auto discovery of record_delimiter, unix, mac and windows supported
 | 
					      // Auto discovery of record_delimiter, unix, mac and windows supported
 | 
				
			||||||
      if(this.state.quoting === false && record_delimiter.length === 0){
 | 
					      if(this.state.quoting === false && record_delimiter.length === 0){
 | 
				
			||||||
        const record_delimiterCount = this.__autoDiscoverRowDelimiter(buf, pos)
 | 
					        const record_delimiterCount = this.__autoDiscoverRecordDelimiter(buf, pos)
 | 
				
			||||||
        if(record_delimiterCount){
 | 
					        if(record_delimiterCount){
 | 
				
			||||||
          record_delimiter = this.options.record_delimiter
 | 
					          record_delimiter = this.options.record_delimiter
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -12218,12 +12243,12 @@ class Parser extends Transform {
 | 
				
			|||||||
            const isNextChrTrimable = rtrim && this.__isCharTrimable(nextChr)
 | 
					            const isNextChrTrimable = rtrim && this.__isCharTrimable(nextChr)
 | 
				
			||||||
            const isNextChrComment = comment !== null && this.__compareBytes(comment, buf, pos+quote.length, nextChr)
 | 
					            const isNextChrComment = comment !== null && this.__compareBytes(comment, buf, pos+quote.length, nextChr)
 | 
				
			||||||
            const isNextChrDelimiter = this.__isDelimiter(buf, pos+quote.length, nextChr)
 | 
					            const isNextChrDelimiter = this.__isDelimiter(buf, pos+quote.length, nextChr)
 | 
				
			||||||
            const isNextChrRowDelimiter = record_delimiter.length === 0 ? this.__autoDiscoverRowDelimiter(buf, pos+quote.length) : this.__isRecordDelimiter(nextChr, buf, pos+quote.length)
 | 
					            const isNextChrRecordDelimiter = record_delimiter.length === 0 ? this.__autoDiscoverRecordDelimiter(buf, pos+quote.length) : this.__isRecordDelimiter(nextChr, buf, pos+quote.length)
 | 
				
			||||||
            // Escape a quote
 | 
					            // Escape a quote
 | 
				
			||||||
            // Treat next char as a regular character
 | 
					            // Treat next char as a regular character
 | 
				
			||||||
            if(escape !== null && this.__isEscape(buf, pos, chr) && this.__isQuote(buf, pos + escape.length)){
 | 
					            if(escape !== null && this.__isEscape(buf, pos, chr) && this.__isQuote(buf, pos + escape.length)){
 | 
				
			||||||
              pos += escape.length - 1
 | 
					              pos += escape.length - 1
 | 
				
			||||||
            }else if(!nextChr || isNextChrDelimiter || isNextChrRowDelimiter || isNextChrComment || isNextChrTrimable){
 | 
					            }else if(!nextChr || isNextChrDelimiter || isNextChrRecordDelimiter || isNextChrComment || isNextChrTrimable){
 | 
				
			||||||
              this.state.quoting = false
 | 
					              this.state.quoting = false
 | 
				
			||||||
              this.state.wasQuoting = true
 | 
					              this.state.wasQuoting = true
 | 
				
			||||||
              pos += quote.length - 1
 | 
					              pos += quote.length - 1
 | 
				
			||||||
@ -12234,7 +12259,7 @@ class Parser extends Transform {
 | 
				
			|||||||
                  'Invalid Closing Quote:',
 | 
					                  'Invalid Closing Quote:',
 | 
				
			||||||
                  `got "${String.fromCharCode(nextChr)}"`,
 | 
					                  `got "${String.fromCharCode(nextChr)}"`,
 | 
				
			||||||
                  `at line ${this.info.lines}`,
 | 
					                  `at line ${this.info.lines}`,
 | 
				
			||||||
                  'instead of delimiter, row delimiter, trimable character',
 | 
					                  'instead of delimiter, record delimiter, trimable character',
 | 
				
			||||||
                  '(if activated) or comment',
 | 
					                  '(if activated) or comment',
 | 
				
			||||||
                ], this.options, this.__context())
 | 
					                ], this.options, this.__context())
 | 
				
			||||||
              )
 | 
					              )
 | 
				
			||||||
@ -12275,25 +12300,24 @@ class Parser extends Transform {
 | 
				
			|||||||
              this.info.comment_lines++
 | 
					              this.info.comment_lines++
 | 
				
			||||||
              // Skip full comment line
 | 
					              // Skip full comment line
 | 
				
			||||||
            }else{
 | 
					            }else{
 | 
				
			||||||
 | 
					              // Activate records emition if above from_line
 | 
				
			||||||
 | 
					              if(this.state.enabled === false && this.info.lines + (this.state.wasRowDelimiter === true ? 1: 0) >= from_line){
 | 
				
			||||||
 | 
					                this.state.enabled = true
 | 
				
			||||||
 | 
					                this.__resetField()
 | 
				
			||||||
 | 
					                this.__resetRecord()
 | 
				
			||||||
 | 
					                pos += recordDelimiterLength - 1
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
              // Skip if line is empty and skip_empty_lines activated
 | 
					              // Skip if line is empty and skip_empty_lines activated
 | 
				
			||||||
              if(skip_empty_lines === true && this.state.wasQuoting === false && this.state.record.length === 0 && this.state.field.length === 0){
 | 
					              if(skip_empty_lines === true && this.state.wasQuoting === false && this.state.record.length === 0 && this.state.field.length === 0){
 | 
				
			||||||
                this.info.empty_lines++
 | 
					                this.info.empty_lines++
 | 
				
			||||||
                pos += recordDelimiterLength - 1
 | 
					                pos += recordDelimiterLength - 1
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
              // Activate records emition if above from_line
 | 
					              const errField = this.__onField()
 | 
				
			||||||
              if(this.state.enabled === false && this.info.lines + (this.state.wasRowDelimiter === true ? 1: 0 ) >= from_line){
 | 
					              if(errField !== undefined) return errField
 | 
				
			||||||
                this.state.enabled = true
 | 
					              const errRecord = this.__onRecord()
 | 
				
			||||||
                this.__resetField()
 | 
					              if(errRecord !== undefined) return errRecord
 | 
				
			||||||
                this.__resetRow()
 | 
					 | 
				
			||||||
                pos += recordDelimiterLength - 1
 | 
					 | 
				
			||||||
                continue
 | 
					 | 
				
			||||||
              }else{
 | 
					 | 
				
			||||||
                const errField = this.__onField()
 | 
					 | 
				
			||||||
                if(errField !== undefined) return errField
 | 
					 | 
				
			||||||
                const errRecord = this.__onRow()
 | 
					 | 
				
			||||||
                if(errRecord !== undefined) return errRecord
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
              if(to !== -1 && this.info.records >= to){
 | 
					              if(to !== -1 && this.info.records >= to){
 | 
				
			||||||
                this.state.stop = true
 | 
					                this.state.stop = true
 | 
				
			||||||
                this.push(null)
 | 
					                this.push(null)
 | 
				
			||||||
@ -12366,7 +12390,7 @@ class Parser extends Transform {
 | 
				
			|||||||
        if(this.state.wasQuoting === true || this.state.record.length !== 0 || this.state.field.length !== 0){
 | 
					        if(this.state.wasQuoting === true || this.state.record.length !== 0 || this.state.field.length !== 0){
 | 
				
			||||||
          const errField = this.__onField()
 | 
					          const errField = this.__onField()
 | 
				
			||||||
          if(errField !== undefined) return errField
 | 
					          if(errField !== undefined) return errField
 | 
				
			||||||
          const errRecord = this.__onRow()
 | 
					          const errRecord = this.__onRecord()
 | 
				
			||||||
          if(errRecord !== undefined) return errRecord
 | 
					          if(errRecord !== undefined) return errRecord
 | 
				
			||||||
        }else if(this.state.wasRowDelimiter === true){
 | 
					        }else if(this.state.wasRowDelimiter === true){
 | 
				
			||||||
          this.info.empty_lines++
 | 
					          this.info.empty_lines++
 | 
				
			||||||
@ -12382,21 +12406,17 @@ class Parser extends Transform {
 | 
				
			|||||||
      this.state.wasRowDelimiter = false
 | 
					      this.state.wasRowDelimiter = false
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // Helper to test if a character is a space or a line delimiter
 | 
					  __onRecord(){
 | 
				
			||||||
  __isCharTrimable(chr){
 | 
					 | 
				
			||||||
    return chr === space || chr === tab || chr === cr || chr === nl || chr === np
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  __onRow(){
 | 
					 | 
				
			||||||
    const {columns, columns_duplicates_to_array, encoding, info, from, relax_column_count, relax_column_count_less, relax_column_count_more, raw, skip_lines_with_empty_values} = this.options
 | 
					    const {columns, columns_duplicates_to_array, encoding, info, from, relax_column_count, relax_column_count_less, relax_column_count_more, raw, skip_lines_with_empty_values} = this.options
 | 
				
			||||||
    const {enabled, record} = this.state
 | 
					    const {enabled, record} = this.state
 | 
				
			||||||
    if(enabled === false){
 | 
					    if(enabled === false){
 | 
				
			||||||
      return this.__resetRow()
 | 
					      return this.__resetRecord()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // Convert the first line into column names
 | 
					    // Convert the first line into column names
 | 
				
			||||||
    const recordLength = record.length
 | 
					    const recordLength = record.length
 | 
				
			||||||
    if(columns === true){
 | 
					    if(columns === true){
 | 
				
			||||||
      if(isRecordEmpty(record)){
 | 
					      if(isRecordEmpty(record)){
 | 
				
			||||||
        this.__resetRow()
 | 
					        this.__resetRecord()
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      return this.__firstLineToColumns(record)
 | 
					      return this.__firstLineToColumns(record)
 | 
				
			||||||
@ -12438,12 +12458,12 @@ class Parser extends Transform {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    if(skip_lines_with_empty_values === true){
 | 
					    if(skip_lines_with_empty_values === true){
 | 
				
			||||||
      if(isRecordEmpty(record)){
 | 
					      if(isRecordEmpty(record)){
 | 
				
			||||||
        this.__resetRow()
 | 
					        this.__resetRecord()
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if(this.state.recordHasError === true){
 | 
					    if(this.state.recordHasError === true){
 | 
				
			||||||
      this.__resetRow()
 | 
					      this.__resetRecord()
 | 
				
			||||||
      this.state.recordHasError = false
 | 
					      this.state.recordHasError = false
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -12517,7 +12537,7 @@ class Parser extends Transform {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    this.__resetRow()
 | 
					    this.__resetRecord()
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  __firstLineToColumns(record){
 | 
					  __firstLineToColumns(record){
 | 
				
			||||||
    const {firstLineToHeaders} = this.state
 | 
					    const {firstLineToHeaders} = this.state
 | 
				
			||||||
@ -12537,13 +12557,13 @@ class Parser extends Transform {
 | 
				
			|||||||
      const normalizedHeaders = normalizeColumnsArray(headers)
 | 
					      const normalizedHeaders = normalizeColumnsArray(headers)
 | 
				
			||||||
      this.state.expectedRecordLength = normalizedHeaders.length
 | 
					      this.state.expectedRecordLength = normalizedHeaders.length
 | 
				
			||||||
      this.options.columns = normalizedHeaders
 | 
					      this.options.columns = normalizedHeaders
 | 
				
			||||||
      this.__resetRow()
 | 
					      this.__resetRecord()
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
    }catch(err){
 | 
					    }catch(err){
 | 
				
			||||||
      return err
 | 
					      return err
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  __resetRow(){
 | 
					  __resetRecord(){
 | 
				
			||||||
    if(this.options.raw === true){
 | 
					    if(this.options.raw === true){
 | 
				
			||||||
      this.state.rawBuffer.reset()
 | 
					      this.state.rawBuffer.reset()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -12616,6 +12636,10 @@ class Parser extends Transform {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return [undefined, field]
 | 
					    return [undefined, field]
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  // Helper to test if a character is a space or a line delimiter
 | 
				
			||||||
 | 
					  __isCharTrimable(chr){
 | 
				
			||||||
 | 
					    return chr === space || chr === tab || chr === cr || chr === nl || chr === np
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  // Keep it in case we implement the `cast_int` option
 | 
					  // Keep it in case we implement the `cast_int` option
 | 
				
			||||||
  // __isInt(value){
 | 
					  // __isInt(value){
 | 
				
			||||||
  //   // return Number.isInteger(parseInt(value))
 | 
					  //   // return Number.isInteger(parseInt(value))
 | 
				
			||||||
@ -12642,14 +12666,19 @@ class Parser extends Transform {
 | 
				
			|||||||
      needMoreDataSize,
 | 
					      needMoreDataSize,
 | 
				
			||||||
      // Skip if the remaining buffer smaller than record delimiter
 | 
					      // Skip if the remaining buffer smaller than record delimiter
 | 
				
			||||||
      recordDelimiterMaxLength,
 | 
					      recordDelimiterMaxLength,
 | 
				
			||||||
      // Skip if the remaining buffer can be row delimiter following the closing quote
 | 
					      // Skip if the remaining buffer can be record delimiter following the closing quote
 | 
				
			||||||
      // 1 is for quote.length
 | 
					      // 1 is for quote.length
 | 
				
			||||||
      quoting ? (quote.length + recordDelimiterMaxLength) : 0,
 | 
					      quoting ? (quote.length + recordDelimiterMaxLength) : 0,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    return numOfCharLeft < requiredLength
 | 
					    return numOfCharLeft < requiredLength
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  __isDelimiter(buf, pos, chr){
 | 
					  __isDelimiter(buf, pos, chr){
 | 
				
			||||||
    const {delimiter} = this.options
 | 
					    const {delimiter, ignore_last_delimiters} = this.options
 | 
				
			||||||
 | 
					    if(ignore_last_delimiters === true && this.state.record.length === this.options.columns.length - 1){
 | 
				
			||||||
 | 
					      return 0
 | 
				
			||||||
 | 
					    }else if(ignore_last_delimiters !== false && typeof ignore_last_delimiters === 'number' && this.state.record.length === ignore_last_delimiters - 1){
 | 
				
			||||||
 | 
					      return 0
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    loop1: for(let i = 0; i < delimiter.length; i++){
 | 
					    loop1: for(let i = 0; i < delimiter.length; i++){
 | 
				
			||||||
      const del = delimiter[i]
 | 
					      const del = delimiter[i]
 | 
				
			||||||
      if(del[0] === chr){
 | 
					      if(del[0] === chr){
 | 
				
			||||||
@ -12704,7 +12733,7 @@ class Parser extends Transform {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return true
 | 
					    return true
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  __autoDiscoverRowDelimiter(buf, pos){
 | 
					  __autoDiscoverRecordDelimiter(buf, pos){
 | 
				
			||||||
    const {encoding} = this.options
 | 
					    const {encoding} = this.options
 | 
				
			||||||
    const chr = buf[pos]
 | 
					    const chr = buf[pos]
 | 
				
			||||||
    if(chr === cr){
 | 
					    if(chr === cr){
 | 
				
			||||||
 | 
				
			|||||||
@ -31,7 +31,7 @@
 | 
				
			|||||||
    "@actions/core": "^1.2.6",
 | 
					    "@actions/core": "^1.2.6",
 | 
				
			||||||
    "@actions/exec": "^1.0.4",
 | 
					    "@actions/exec": "^1.0.4",
 | 
				
			||||||
    "@actions/github": "^4.0.0",
 | 
					    "@actions/github": "^4.0.0",
 | 
				
			||||||
    "csv-parse": "^4.14.2",
 | 
					    "csv-parse": "^4.15.1",
 | 
				
			||||||
    "semver": "^7.3.4",
 | 
					    "semver": "^7.3.4",
 | 
				
			||||||
    "tmp": "^0.2.1"
 | 
					    "tmp": "^0.2.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -1236,10 +1236,10 @@ cssstyle@^2.2.0:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    cssom "~0.3.6"
 | 
					    cssom "~0.3.6"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
csv-parse@*, csv-parse@^4.14.2:
 | 
					csv-parse@*, csv-parse@^4.15.1:
 | 
				
			||||||
  version "4.14.2"
 | 
					  version "4.15.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.14.2.tgz#c1329cff95a99b8773a92c4e62f8bff114b34726"
 | 
					  resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.15.1.tgz#fc5a0a1b24eaa6d4c24892daa387c46f7f92f8d2"
 | 
				
			||||||
  integrity sha512-YE2xlTKtM035/94llhgsp9qFQxGi47EkQJ1pZ+mLT/98GpIsbjkMGAb7Rmu9hNxVfYFOLf10hP+rPVqnoccLgw==
 | 
					  integrity sha512-TXIvRtNp0fqMJbk3yPR35bQIDzMH4khDwduElzE7Fl1wgnl25mnWYLSLqd/wS5GsDoX1rWtysivEYMNsz5jKwQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dashdash@^1.12.0:
 | 
					dashdash@^1.12.0:
 | 
				
			||||||
  version "1.14.1"
 | 
					  version "1.14.1"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user