read-excel-file 5.8.6 → 5.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +2 -2
  2. package/bundle/read-excel-file.min.js.map +1 -1
  3. package/commonjs/read/readXlsxFileContents.js +3 -3
  4. package/commonjs/read/readXlsxFileContents.js.map +1 -1
  5. package/commonjs/read/schema/{convertToJson.js → mapToObjects.js} +3 -3
  6. package/commonjs/read/schema/mapToObjects.js.map +1 -0
  7. package/commonjs/read/schema/{convertToJson.legacy.js → mapToObjects.legacy.js} +5 -5
  8. package/commonjs/read/schema/mapToObjects.legacy.js.map +1 -0
  9. package/commonjs/read/schema/mapToObjects.legacy.test.js.map +1 -0
  10. package/commonjs/read/schema/{convertToJson.spreadsheet.js → mapToObjects.spreadsheet.js} +5 -5
  11. package/commonjs/read/schema/mapToObjects.spreadsheet.js.map +1 -0
  12. package/commonjs/read/schema/mapToObjects.spreadsheet.test.js.map +1 -0
  13. package/commonjs/read/schema/mapToObjects.test.js.map +1 -0
  14. package/commonjs/read/unpackXlsxFileNode.js +13 -0
  15. package/commonjs/read/unpackXlsxFileNode.js.map +1 -1
  16. package/map/index.cjs +2 -2
  17. package/map/index.cjs.js +2 -2
  18. package/map/index.d.ts +5 -1
  19. package/map/index.js +1 -1
  20. package/modules/read/readXlsxFileContents.js +3 -3
  21. package/modules/read/readXlsxFileContents.js.map +1 -1
  22. package/modules/read/schema/{convertToJson.js → mapToObjects.js} +2 -2
  23. package/modules/read/schema/mapToObjects.js.map +1 -0
  24. package/modules/read/schema/{convertToJson.legacy.js → mapToObjects.legacy.js} +4 -4
  25. package/modules/read/schema/mapToObjects.legacy.js.map +1 -0
  26. package/modules/read/schema/mapToObjects.legacy.test.js.map +1 -0
  27. package/modules/read/schema/{convertToJson.spreadsheet.js → mapToObjects.spreadsheet.js} +4 -4
  28. package/modules/read/schema/mapToObjects.spreadsheet.js.map +1 -0
  29. package/modules/read/schema/mapToObjects.spreadsheet.test.js.map +1 -0
  30. package/modules/read/schema/mapToObjects.test.js.map +1 -0
  31. package/modules/read/unpackXlsxFileNode.js +14 -0
  32. package/modules/read/unpackXlsxFileNode.js.map +1 -1
  33. package/package.json +1 -1
  34. package/schema/index.cjs +2 -2
  35. package/schema/index.cjs.js +2 -2
  36. package/schema/index.js +1 -1
  37. package/commonjs/read/schema/convertToJson.js.map +0 -1
  38. package/commonjs/read/schema/convertToJson.legacy.js.map +0 -1
  39. package/commonjs/read/schema/convertToJson.legacy.test.js.map +0 -1
  40. package/commonjs/read/schema/convertToJson.spreadsheet.js.map +0 -1
  41. package/commonjs/read/schema/convertToJson.spreadsheet.test.js.map +0 -1
  42. package/commonjs/read/schema/convertToJson.test.js.map +0 -1
  43. package/modules/read/schema/convertToJson.js.map +0 -1
  44. package/modules/read/schema/convertToJson.legacy.js.map +0 -1
  45. package/modules/read/schema/convertToJson.legacy.test.js.map +0 -1
  46. package/modules/read/schema/convertToJson.spreadsheet.js.map +0 -1
  47. package/modules/read/schema/convertToJson.spreadsheet.test.js.map +0 -1
  48. package/modules/read/schema/convertToJson.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.js","names":["NumberType","StringType","BooleanType","DateType","DEFAULT_OPTIONS","schemaPropertyValueForMissingColumn","undefined","schemaPropertyValueForUndefinedCellValue","schemaPropertyValueForNullCellValue","schemaPropertyShouldSkipRequiredValidationForMissingColumn","getEmptyObjectValue","getEmptyArrayValue","isColumnOriented","arrayValueSeparator","mapToObjects","data","schema","options","_objectSpread","_options","rowIndexMap","validateSchema","transpose","columns","results","errors","i","length","result","read","push","_iterator","_createForOfIteratorHelperLoose","_step","done","error","value","row","rows","rowIndex","path","object","isEmptyObject","createError","_ref","column","errorMessage","reason","type","pendingRequiredChecks","_loop","key","_Object$keys","_i","schemaEntry","isNestedSchema","_typeof","Array","isArray","propertyPath","concat","prop","cellValue","columnIndex","indexOf","isMissingColumn","array","parseArray","map","_value","parseValue","isEmpty","every","isEmptyValue","required","Object","keys","_i2","_pendingRequiredCheck","_pendingRequiredCheck2","skipRequiredValidation","isRequired","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","parsedValue","String","Number","Date","properties","Boolean","Error","name","getBlock","string","endCharacter","startIndex","substring","character","block","blocks","index","_getBlock","_getBlock2","_slicedToArray","trim","_","_i3","_Object$keys2","entry"],"sources":["../../../source/read/schema/mapToObjects.js"],"sourcesContent":["import NumberType from '../../types/Number.js'\r\nimport StringType from '../../types/String.js'\r\nimport BooleanType from '../../types/Boolean.js'\r\nimport DateType from '../../types/Date.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n schemaPropertyValueForMissingColumn: undefined,\r\n schemaPropertyValueForUndefinedCellValue: undefined,\r\n schemaPropertyValueForNullCellValue: null,\r\n schemaPropertyShouldSkipRequiredValidationForMissingColumn: () => false,\r\n // `getEmptyObjectValue(object, { path })` applies to both the top-level object\r\n // and any of its sub-objects.\r\n getEmptyObjectValue: () => null,\r\n getEmptyArrayValue: () => null,\r\n isColumnOriented: false,\r\n arrayValueSeparator: ','\r\n}\r\n\r\n/**\r\n * (this function is exported from `read-excel-file/map`)\r\n * Converts spreadsheet-alike data structure into an array of objects.\r\n * The first row should be the list of column headers.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @param {object} [options]\r\n * @param {null} [options.schemaPropertyValueForMissingColumn] — By default, when some of the `schema` columns are missing in the input `data`, those properties are set to `undefined` in the output objects. Pass `schemaPropertyValueForMissingColumn: null` to set such \"missing column\" properties to `null` in the output objects.\r\n * @param {null} [options.schemaPropertyValueForNullCellValue] — By default, when it encounters a `null` value in a cell in input `data`, it sets it to `undefined` in the output object. Pass `schemaPropertyValueForNullCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {null} [options.schemaPropertyValueForUndefinedCellValue] — By default, when it encounters an `undefined` value in a cell in input `data`, it it sets it to `undefined` in the output object. Pass `schemaPropertyValueForUndefinedCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {boolean} [options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column: string, { object })] — By default, it does apply `required` validation to `schema` properties for which columns are missing in the input `data`. One could pass a custom `schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, { object })` to disable `required` validation for missing columns in some or all cases.\r\n * @param {function} [options.getEmptyObjectValue(object, { path })] — By default, it returns `null` for an \"empty\" resulting object. One could override that value using `getEmptyObjectValue(object, { path })` parameter. The value applies to both top-level object and any nested sub-objects in case of a nested schema, hence the additional `path?: string` parameter.\r\n * @param {function} [getEmptyArrayValue(array, { path })] — By default, it returns `null` for an \"empty\" array value. One could override that value using `getEmptyArrayValue(array, { path })` parameter.\r\n * @param {boolean} [options.isColumnOriented] — By default, the headers are assumed to be the first row in the `data`. Pass `isColumnOriented: true` if the headers are the first column in the `data`. i.e. if `data` is \"transposed\".\r\n * @param {object} [options.rowIndexMap] — Custom row index mapping `data` rows. If present, will overwrite the indexes of `data` rows with the indexes from this `rowIndexMap`.\r\n * @return {object[]}\r\n */\r\nexport default function mapToObjects(data, schema, options) {\r\n if (options) {\r\n options = {\r\n ...DEFAULT_OPTIONS,\r\n ...options\r\n }\r\n } else {\r\n options = DEFAULT_OPTIONS\r\n }\r\n\r\n const {\r\n isColumnOriented,\r\n rowIndexMap\r\n } = options\r\n\r\n validateSchema(schema)\r\n\r\n if (isColumnOriented) {\r\n data = transpose(data)\r\n }\r\n\r\n const columns = data[0]\r\n\r\n const results = []\r\n const errors = []\r\n\r\n for (let i = 1; i < data.length; i++) {\r\n const result = read(schema, data[i], i, undefined, columns, errors, options)\r\n results.push(result)\r\n }\r\n\r\n // Set the correct `row` number in `errors` if a custom `rowIndexMap` is supplied.\r\n if (rowIndexMap) {\r\n for (const error of errors) {\r\n // Convert the `row` index in `data` to the\r\n // actual `row` index in the spreadsheet.\r\n // `- 1` converts row number to row index.\r\n // `+ 1` converts row index to row number.\r\n error.row = rowIndexMap[error.row - 1] + 1\r\n }\r\n }\r\n\r\n return {\r\n rows: results,\r\n errors\r\n }\r\n}\r\n\r\nfunction read(schema, row, rowIndex, path, columns, errors, options) {\r\n const object = {}\r\n let isEmptyObject = true\r\n\r\n const createError = ({\r\n column,\r\n value,\r\n error: errorMessage,\r\n reason\r\n }) => {\r\n const error = {\r\n error: errorMessage,\r\n row: rowIndex + 1,\r\n column,\r\n value\r\n }\r\n if (reason) {\r\n error.reason = reason\r\n }\r\n if (schema[column].type) {\r\n error.type = schema[column].type\r\n }\r\n return error\r\n }\r\n\r\n const pendingRequiredChecks = []\r\n\r\n // For each schema entry.\r\n for (const key of Object.keys(schema)) {\r\n const schemaEntry = schema[key]\r\n const isNestedSchema = typeof schemaEntry.type === 'object' && !Array.isArray(schemaEntry.type)\r\n\r\n // The path of this property inside the resulting object.\r\n const propertyPath = `${path || ''}.${schemaEntry.prop}`\r\n\r\n // Read the cell value for the schema entry.\r\n let cellValue\r\n const columnIndex = columns.indexOf(key)\r\n const isMissingColumn = columnIndex < 0\r\n if (!isMissingColumn) {\r\n cellValue = row[columnIndex]\r\n }\r\n\r\n let value\r\n let error\r\n let reason\r\n\r\n // Get property `value` from cell value.\r\n if (isNestedSchema) {\r\n value = read(schemaEntry.type, row, rowIndex, propertyPath, columns, errors, options)\r\n } else {\r\n if (isMissingColumn) {\r\n value = options.schemaPropertyValueForMissingColumn\r\n }\r\n else if (cellValue === undefined) {\r\n value = options.schemaPropertyValueForUndefinedCellValue\r\n }\r\n else if (cellValue === null) {\r\n value = options.schemaPropertyValueForNullCellValue\r\n }\r\n else if (Array.isArray(schemaEntry.type)) {\r\n const array = parseArray(cellValue, options.arrayValueSeparator).map((_value) => {\r\n if (error) {\r\n return\r\n }\r\n const result = parseValue(_value, schemaEntry, options)\r\n if (result.error) {\r\n // In case of an error, `value` won't be returned and will just be reported\r\n // as part of an `error` object, so it's fine assigning just an element of the array.\r\n value = _value\r\n error = result.error\r\n reason = result.reason\r\n }\r\n return result.value\r\n })\r\n if (!error) {\r\n const isEmpty = array.every(isEmptyValue)\r\n value = isEmpty ? options.getEmptyArrayValue(array, { path: propertyPath }) : array\r\n }\r\n } else {\r\n const result = parseValue(cellValue, schemaEntry, options)\r\n error = result.error\r\n reason = result.reason\r\n value = error ? cellValue : result.value\r\n }\r\n }\r\n\r\n // Apply `required` validation if the value is \"empty\".\r\n if (!error && isEmptyValue(value)) {\r\n if (schemaEntry.required) {\r\n // Will perform this `required()` validation in the end,\r\n // when all properties of the mapped object have been mapped.\r\n pendingRequiredChecks.push({ column: key, value, isMissingColumn })\r\n }\r\n }\r\n\r\n if (error) {\r\n // If there was an error then the property value in the `object` will be `undefined`,\r\n // i.e it won't add the property value to the mapped object.\r\n errors.push(createError({\r\n column: key,\r\n value,\r\n error,\r\n reason\r\n }))\r\n } else {\r\n // Possibly unmark the mapped object as \"empty\".\r\n if (isEmptyObject && !isEmptyValue(value)) {\r\n isEmptyObject = false\r\n }\r\n // Set the value in the mapped object.\r\n // Skip setting `undefined` values because they're already `undefined`.\r\n if (value !== undefined) {\r\n object[schemaEntry.prop] = value\r\n }\r\n }\r\n }\r\n\r\n // Return `null` for an \"empty\" mapped object.\r\n if (isEmptyObject) {\r\n return options.getEmptyObjectValue(object, { path })\r\n }\r\n\r\n // Perform any `required` validations.\r\n for (const { column, value, isMissingColumn } of pendingRequiredChecks) {\r\n // Can optionally skip `required` validation for missing columns.\r\n const skipRequiredValidation = isMissingColumn && options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, { object })\r\n if (!skipRequiredValidation) {\r\n const { required } = schema[column]\r\n const isRequired = typeof required === 'boolean' ? required : required(object)\r\n if (isRequired) {\r\n errors.push(createError({\r\n column,\r\n value,\r\n error: 'required'\r\n }))\r\n }\r\n }\r\n }\r\n\r\n // Return the mapped object.\r\n return object\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\r\nexport function parseValue(value, schemaEntry, options) {\r\n if (value === null) {\r\n return { value: null }\r\n }\r\n let result\r\n if (schemaEntry.parse) {\r\n result = parseCustomValue(value, schemaEntry.parse)\r\n } else if (schemaEntry.type) {\r\n result = parseValueOfType(\r\n value,\r\n // Supports parsing array types.\r\n // See `parseArray()` function for more details.\r\n // Example `type`: String[]\r\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type,\r\n options\r\n )\r\n } else {\r\n result = { value: value }\r\n // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\r\n }\r\n // If errored then return the error.\r\n if (result.error) {\r\n return result\r\n }\r\n if (result.value !== null) {\r\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\r\n return { error: 'invalid', reason: 'unknown' }\r\n }\r\n if (schemaEntry.validate) {\r\n try {\r\n schemaEntry.validate(result.value)\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\r\nfunction parseCustomValue(value, parse) {\r\n try {\r\n const parsedValue = parse(value)\r\n if (parsedValue === undefined) {\r\n return { value: null }\r\n }\r\n return { value: parsedValue }\r\n } catch (error) {\r\n const result = { error: error.message }\r\n if (error.reason) {\r\n result.reason = error.reason;\r\n }\r\n return result\r\n }\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string, reason?: string }}\r\n */\r\nfunction parseValueOfType(value, type, options) {\r\n switch (type) {\r\n case String:\r\n return parseCustomValue(value, StringType)\r\n\r\n case Number:\r\n return parseCustomValue(value, NumberType)\r\n\r\n case Date:\r\n return parseCustomValue(value, (value) => DateType(value, { properties: options.properties }))\r\n\r\n case Boolean:\r\n return parseCustomValue(value, BooleanType)\r\n\r\n default:\r\n if (typeof type === 'function') {\r\n return parseCustomValue(value, type)\r\n }\r\n throw new Error(`Unsupported schema type: ${type && type.name || type}`)\r\n }\r\n}\r\n\r\nexport function getBlock(string, endCharacter, startIndex) {\r\n let i = 0\r\n let substring = ''\r\n let character\r\n while (startIndex + i < string.length) {\r\n const character = string[startIndex + i]\r\n if (character === endCharacter) {\r\n return [substring, i]\r\n }\r\n else if (character === '\"') {\r\n const block = getBlock(string, '\"', startIndex + i + 1)\r\n substring += block[0]\r\n i += '\"'.length + block[1] + '\"'.length\r\n }\r\n else {\r\n substring += character\r\n i++\r\n }\r\n }\r\n return [substring, i]\r\n}\r\n\r\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string — A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\r\nexport function parseArray(string, arrayValueSeparator) {\r\n const blocks = []\r\n let index = 0\r\n while (index < string.length) {\r\n const [substring, length] = getBlock(string, arrayValueSeparator, index)\r\n index += length + arrayValueSeparator.length\r\n blocks.push(substring.trim())\r\n }\r\n return blocks\r\n}\r\n\r\n// Transpose a 2D array.\r\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\r\nconst transpose = array => array[0].map((_, i) => array.map(row => row[i]))\r\n\r\nfunction validateSchema(schema) {\r\n for (const key of Object.keys(schema)) {\r\n const entry = schema[key]\r\n if (!entry.prop) {\r\n throw new Error(`\"prop\" not defined for schema entry \"${key}\".`)\r\n }\r\n }\r\n}\r\n\r\nfunction isEmptyValue(value) {\r\n return value === undefined || value === null\r\n}"],"mappings":"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"}
@@ -4,8 +4,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
6
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
- import convertToJson from './convertToJson.js';
8
- export default function convertToJsonLegacyBehavior(data, schema) {
7
+ import mapToObjects from './mapToObjects.js';
8
+ export default function mapToObjectsLegacyBehavior(data, schema) {
9
9
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
10
10
  var includeNullValues = options.includeNullValues,
11
11
  ignoreEmptyRows = options.ignoreEmptyRows,
@@ -37,7 +37,7 @@ export default function convertToJsonLegacyBehavior(data, schema) {
37
37
  return null;
38
38
  };
39
39
  }
40
- var result = convertToJson(data, schema, _objectSpread(_objectSpread({}, defaultConversionOptions), {}, {
40
+ var result = mapToObjects(data, schema, _objectSpread(_objectSpread({}, defaultConversionOptions), {}, {
41
41
  rowIndexMap: rowMap,
42
42
  isColumnOriented: isColumnOriented
43
43
  }));
@@ -50,4 +50,4 @@ export default function convertToJsonLegacyBehavior(data, schema) {
50
50
  }
51
51
  return result;
52
52
  }
53
- //# sourceMappingURL=convertToJson.legacy.js.map
53
+ //# sourceMappingURL=mapToObjects.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.legacy.js","names":["mapToObjects","mapToObjectsLegacyBehavior","data","schema","options","arguments","length","undefined","includeNullValues","ignoreEmptyRows","isColumnOriented","rowMap","defaultConversionOptions","schemaPropertyValueForMissingColumn","schemaPropertyValueForUndefinedCellValue","schemaPropertyValueForNullCellValue","schemaPropertyShouldSkipRequiredValidationForMissingColumn","column","_ref","path","getEmptyObjectValue","object","_ref2","getEmptyArrayValue","arrayValueSeparator","_ref3","result","_objectSpread","rowIndexMap","rows","filter","_"],"sources":["../../../source/read/schema/mapToObjects.legacy.js"],"sourcesContent":["import mapToObjects from './mapToObjects.js'\r\n\r\nexport default function mapToObjectsLegacyBehavior(data, schema, options = {}) {\r\n\tconst {\r\n\t\tincludeNullValues,\r\n\t\tignoreEmptyRows,\r\n\t\tisColumnOriented,\r\n\t\trowMap\r\n\t} = options\r\n\tconst defaultConversionOptions = {\r\n\t\tschemaPropertyValueForMissingColumn: undefined,\r\n\t\tschemaPropertyValueForUndefinedCellValue: undefined,\r\n\t\tschemaPropertyValueForNullCellValue: undefined,\r\n\t\tschemaPropertyShouldSkipRequiredValidationForMissingColumn: (column, { path }) => false,\r\n\t\tgetEmptyObjectValue: (object, { path }) => path ? undefined : null,\r\n\t\tgetEmptyArrayValue: () => null,\r\n\t\tarrayValueSeparator: ','\r\n\t}\r\n\tif (includeNullValues) {\r\n\t\tdefaultConversionOptions.schemaPropertyValueForMissingColumn = null\r\n\t\tdefaultConversionOptions.schemaPropertyValueForUndefinedCellValue = null\r\n\t\tdefaultConversionOptions.schemaPropertyValueForNullCellValue = null\r\n\t\tdefaultConversionOptions.getEmptyObjectValue = (object, { path }) => null\r\n\t}\r\n\tconst result = mapToObjects(data, schema, {\r\n\t\t...defaultConversionOptions,\r\n\t\trowIndexMap: rowMap,\r\n\t\tisColumnOriented\r\n\t})\r\n\tif (ignoreEmptyRows !== false) {\r\n\t\tresult.rows = result.rows.filter(_ => _ !== defaultConversionOptions.getEmptyObjectValue(_, { path: undefined }))\r\n\t}\r\n\treturn result\r\n}"],"mappings":";;;;;;AAAA,OAAOA,YAAY,MAAM,mBAAmB;AAE5C,eAAe,SAASC,0BAA0BA,CAACC,IAAI,EAAEC,MAAM,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC5E,IACCG,iBAAiB,GAIdJ,OAAO,CAJVI,iBAAiB;IACjBC,eAAe,GAGZL,OAAO,CAHVK,eAAe;IACfC,gBAAgB,GAEbN,OAAO,CAFVM,gBAAgB;IAChBC,MAAM,GACHP,OAAO,CADVO,MAAM;EAEP,IAAMC,wBAAwB,GAAG;IAChCC,mCAAmC,EAAEN,SAAS;IAC9CO,wCAAwC,EAAEP,SAAS;IACnDQ,mCAAmC,EAAER,SAAS;IAC9CS,0DAA0D,EAAE,SAAAA,2DAACC,MAAM,EAAAC,IAAA;MAAA,IAAIC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAO,KAAK;IAAA;IACvFC,mBAAmB,EAAE,SAAAA,oBAACC,MAAM,EAAAC,KAAA;MAAA,IAAIH,IAAI,GAAAG,KAAA,CAAJH,IAAI;MAAA,OAAOA,IAAI,GAAGZ,SAAS,GAAG,IAAI;IAAA;IAClEgB,kBAAkB,EAAE,SAAAA,mBAAA;MAAA,OAAM,IAAI;IAAA;IAC9BC,mBAAmB,EAAE;EACtB,CAAC;EACD,IAAIhB,iBAAiB,EAAE;IACtBI,wBAAwB,CAACC,mCAAmC,GAAG,IAAI;IACnED,wBAAwB,CAACE,wCAAwC,GAAG,IAAI;IACxEF,wBAAwB,CAACG,mCAAmC,GAAG,IAAI;IACnEH,wBAAwB,CAACQ,mBAAmB,GAAG,UAACC,MAAM,EAAAI,KAAA;MAAA,IAAIN,IAAI,GAAAM,KAAA,CAAJN,IAAI;MAAA,OAAO,IAAI;IAAA;EAC1E;EACA,IAAMO,MAAM,GAAG1B,YAAY,CAACE,IAAI,EAAEC,MAAM,EAAAwB,aAAA,CAAAA,aAAA,KACpCf,wBAAwB;IAC3BgB,WAAW,EAAEjB,MAAM;IACnBD,gBAAgB,EAAhBA;EAAgB,EAChB,CAAC;EACF,IAAID,eAAe,KAAK,KAAK,EAAE;IAC9BiB,MAAM,CAACG,IAAI,GAAGH,MAAM,CAACG,IAAI,CAACC,MAAM,CAAC,UAAAC,CAAC;MAAA,OAAIA,CAAC,KAAKnB,wBAAwB,CAACQ,mBAAmB,CAACW,CAAC,EAAE;QAAEZ,IAAI,EAAEZ;MAAU,CAAC,CAAC;IAAA,EAAC;EAClH;EACA,OAAOmB,MAAM;AACd"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.legacy.test.js","names":["mapToObjects","Integer","describe","it","_mapToObjects","A","prop","type","String","B","C","CA","CB","includeNullValues","rows","should","deep","equal","a","b","c","_mapToObjects2","COLUMN_1","required","COLUMN_2","COLUMN_4","COLUMN_5","errors","column2","column4","_mapToObjects3","column1","column5","_mapToObjects4","NUMBER","Number","STRING","error","row","column","value","undefined","string","_mapToObjects5","_mapToObjects6","NAMES","names","_mapToObjects7","INTEGER","length","reason","_mapToObjects8"],"sources":["../../../source/read/schema/mapToObjects.legacy.test.js"],"sourcesContent":["import mapToObjects from './mapToObjects.legacy.js'\r\n\r\nimport Integer from '../../types/Integer.js'\r\n\r\ndescribe('mapToObjects (legacy behavior)', () => {\r\n\tit('should include `null` values when `includeNullValues: true` option is passed', function() {\r\n\t\tconst { rows } = mapToObjects(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\tA: {\r\n\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tB: {\r\n\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tC: {\r\n\t\t\t\t\tprop: 'c',\r\n \t\t\ttype: {\r\n\t\t\t\t\t\tCA: {\r\n\t\t\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tCB: {\r\n\t\t\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tincludeNullValues: true\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\trows.should.deep.equal([\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca', b: null } },\r\n\t\t\t{ a: 'a', b: null, c: null },\r\n\t\t])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (default) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Legacy behavior.\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14'\r\n\t\t}, {\r\n\t\t\tcolumn2: '22'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`includeNullValues: true`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tincludeNullValues: true\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should require fields when cell value is empty', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'STRING'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\t// value: null,\r\n\t\t\tvalue: undefined\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('shouldn\\'t require fields when cell value is empty and object is empty too', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should parse arrays (and remove `null` empty objects from result)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NAMES'\r\n\t\t\t], [\r\n\t\t\t\t'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAMES: {\r\n\t\t\t\tprop: 'names',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnames: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse integers (and drop `null` errored objects from result)', () =>\r\n\t{\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tINTEGER: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].should.deep.equal({\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_integer',\r\n\t\t\trow: 3,\r\n\t\t\tcolumn: 'INTEGER',\r\n\t\t\ttype: Integer,\r\n\t\t\tvalue: '1.2'\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 1\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should not include `null` values by default (and set `null` for an \"empty\" object)', function() {\r\n\t\tconst { rows } = mapToObjects(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\tA: {\r\n\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tB: {\r\n\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tC: {\r\n\t\t\t\t\tprop: 'c',\r\n \t\t\ttype: {\r\n\t\t\t\t\t\tCA: {\r\n\t\t\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tCB: {\r\n\t\t\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\trows.should.deep.equal([\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca' } },\r\n\t\t\t{ a: 'a' },\r\n\t\t])\r\n\t})\r\n})"],"mappings":"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"}
@@ -7,13 +7,13 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
7
7
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
8
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
9
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
- // Renames some of the `react-excel-file` options to `convertToJson()` options.
11
- export default function convertToJsonSpreadsheetBehavior(convertToJson, data, schema) {
10
+ // Renames some of the `react-excel-file` options to `mapToObjects()` options.
11
+ export default function mapToObjectsSpreadsheetBehavior(mapToObjects, data, schema) {
12
12
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
13
13
  var schemaPropertyValueForEmptyCell = options.schemaPropertyValueForEmptyCell,
14
14
  restOptions = _objectWithoutProperties(options, _excluded);
15
- return convertToJson(data, schema, _objectSpread(_objectSpread({}, restOptions), {}, {
15
+ return mapToObjects(data, schema, _objectSpread(_objectSpread({}, restOptions), {}, {
16
16
  schemaPropertyValueForNullCellValue: schemaPropertyValueForEmptyCell
17
17
  }));
18
18
  }
19
- //# sourceMappingURL=convertToJson.spreadsheet.js.map
19
+ //# sourceMappingURL=mapToObjects.spreadsheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.spreadsheet.js","names":["mapToObjectsSpreadsheetBehavior","mapToObjects","data","schema","options","arguments","length","undefined","schemaPropertyValueForEmptyCell","restOptions","_objectWithoutProperties","_excluded","_objectSpread","schemaPropertyValueForNullCellValue"],"sources":["../../../source/read/schema/mapToObjects.spreadsheet.js"],"sourcesContent":["// Renames some of the `react-excel-file` options to `mapToObjects()` options.\r\nexport default function mapToObjectsSpreadsheetBehavior(mapToObjects, data, schema, options = {}) {\r\n\tconst {\r\n\t\tschemaPropertyValueForEmptyCell,\r\n\t\t...restOptions\r\n\t} = options\r\n\treturn mapToObjects(data, schema, {\r\n\t\t...restOptions,\r\n\t\tschemaPropertyValueForNullCellValue: schemaPropertyValueForEmptyCell\r\n\t})\r\n}"],"mappings":";;;;;;;;;AAAA;AACA,eAAe,SAASA,+BAA+BA,CAACC,YAAY,EAAEC,IAAI,EAAEC,MAAM,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/F,IACCG,+BAA+B,GAE5BJ,OAAO,CAFVI,+BAA+B;IAC5BC,WAAW,GAAAC,wBAAA,CACXN,OAAO,EAAAO,SAAA;EACX,OAAOV,YAAY,CAACC,IAAI,EAAEC,MAAM,EAAAS,aAAA,CAAAA,aAAA,KAC5BH,WAAW;IACdI,mCAAmC,EAAEL;EAA+B,EACpE,CAAC;AACH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.spreadsheet.test.js","names":["mapToObjects_","mapToObjectsSpreadsheetBehavior","mapToObjects","data","schema","options","describe","it","_mapToObjects","COLUMN_1","prop","type","String","required","COLUMN_2","COLUMN_4","COLUMN_5","schemaPropertyValueForMissingColumn","rows","errors","should","deep","equal","column1","column2","column4","column5","_mapToObjects2","schemaPropertyValueForEmptyCell"],"sources":["../../../source/read/schema/mapToObjects.spreadsheet.test.js"],"sourcesContent":["import mapToObjects_ from './mapToObjects.js'\r\nimport mapToObjectsSpreadsheetBehavior from './mapToObjects.spreadsheet.js'\r\n\r\nfunction mapToObjects(data, schema, options) {\r\n\treturn mapToObjectsSpreadsheetBehavior(mapToObjects_, data, schema, options)\r\n}\r\n\r\ndescribe('mapToObjects (spreadsheet behavior)', () => {\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\t// column4: undefined,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForEmptyCell: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForEmptyCell: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\t// column5: undefined\r\n\t\t}, {\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\t// column5: undefined\r\n\t\t}])\r\n\t})\r\n})\r\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapToObjects.test.js","names":["mapToObjects","parseArray","getBlock","Integer","URL","Email","date","convertToUTCTimezone","Date","describe","it","should","deep","equal","_mapToObjects","parse","getTimezoneOffset","DATE","prop","type","NUMBER","Number","BOOLEAN","Boolean","STRING","String","PHONE","value","PHONE_TYPE","rows","errors","toISOString","number","phone","phoneType","string","_mapToObjects2","_mapToObjects3","required","error","row","column","_mapToObjects4","_mapToObjects5","NAMES","names","_mapToObjects6","INTEGER","length","reason","_mapToObjects7","_mapToObjects8","EMAIL","_mapToObjects9","NAME","validate","Error","_mapToObjects10","_mapToObjects11","TRUE","FALSE","INVALID","_mapToObjects12","_mapToObjects13","_mapToObjects14","rowIndexMap","_mapToObjects15","STATUS","oneOf","_mapToObjects16","_mapToObjects17","A","B","C","CA","CB","a","b","c","_mapToObjects18","COLUMN_1","COLUMN_2","COLUMN_4","COLUMN_5","column2","column4","_mapToObjects19","schemaPropertyValueForMissingColumn","column1","column5","_mapToObjects20","schemaPropertyValueForNullCellValue","_mapToObjects21","_mapToObjects22","_mapToObjects23","schemaPropertyShouldSkipRequiredValidationForMissingColumn","_mapToObjects24","getTime"],"sources":["../../../source/read/schema/mapToObjects.test.js"],"sourcesContent":["import mapToObjects, { parseArray, getBlock } from './mapToObjects.js'\r\n\r\nimport Integer from '../../types/Integer.js'\r\nimport URL from '../../types/URL.js'\r\nimport Email from '../../types/Email.js'\r\n\r\nconst date = convertToUTCTimezone(new Date(2018, 3 - 1, 24))\r\n\r\ndescribe('mapToObjects', () => {\r\n\tit('should parse arrays', () => {\r\n\t\tgetBlock('abc\"de,f\"g,h', ',', 0).should.deep.equal(['abcde,fg', 10])\r\n\t\tparseArray(' abc\"de,f\"g , h ', ',').should.deep.equal(['abcde,fg', 'h'])\r\n\t})\r\n\r\n\tit('should convert to json', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING',\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t'123',\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc',\r\n\t\t\t\t'(123) 456-7890',\r\n\t\t\t\t'(123) 456-7890'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean',\r\n\t\t\t\ttype: Boolean\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tphone: '+11234567890',\r\n\t\t\tphoneType: '+11234567890',\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support schema entries with no `type`s', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t123,\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date'\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number'\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean'\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string'\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should require fields when cell value is empty', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'STRING'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnumber: null,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('shouldn\\'t require fields when cell value is empty and object is empty too', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([null])\r\n\t})\r\n\r\n\tit('should parse arrays', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NAMES'\r\n\t\t\t], [\r\n\t\t\t\t'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAMES: {\r\n\t\t\t\tprop: 'names',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnames: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t}, null])\r\n\t})\r\n\r\n\tit('should parse integers', () =>\r\n\t{\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tINTEGER: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].should.deep.equal({\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_integer',\r\n\t\t\trow: 3,\r\n\t\t\tcolumn: 'INTEGER',\r\n\t\t\ttype: Integer,\r\n\t\t\tvalue: '1.2'\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 1\r\n\t\t}, null])\r\n\t})\r\n\r\n\tit('should parse URLs', () =>\r\n\t{\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'URL'\r\n\t\t\t], [\r\n\t\t\t\t'https://kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'kremlin.ru'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tURL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: URL\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(3)\r\n\t\terrors[0].column.should.equal('URL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'https://kremlin.ru'\r\n\t\t}, null])\r\n\t})\r\n\r\n\tit('should parse Emails', () =>\r\n\t{\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'EMAIL'\r\n\t\t\t], [\r\n\t\t\t\t'vladimir.putin@kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tEMAIL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Email\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(3)\r\n\t\terrors[0].column.should.equal('EMAIL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'vladimir.putin@kremlin.ru'\r\n\t\t}, null])\r\n\t})\r\n\r\n\tit('should call .validate()', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NAME'\r\n\t\t\t], [\r\n\t\t\t\t'George Bush'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAME: {\r\n\t\t\t\tprop: 'name',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidate: (value) => {\r\n\t\t\t\t\tif (value === 'George Bush') {\r\n\t\t\t\t\t\tthrow new Error('custom-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'custom-error',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NAME',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'George Bush'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([null])\r\n\t})\r\n\r\n\tit('should validate numbers', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([null])\r\n\t})\r\n\r\n\tit('should validate booleans', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'TRUE',\r\n\t\t\t\t'FALSE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\t'TRUE'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tTRUE: {\r\n\t\t\t\tprop: 'true',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tFALSE: {\r\n\t\t\t\tprop: 'false',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_boolean',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Boolean,\r\n\t\t\tvalue: 'TRUE'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\ttrue: true,\r\n\t\t\tfalse: false\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate dates', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\t43183, // 03/24/2018',\r\n\t\t\t\t'-'\r\n\t\t\t], [\r\n\t\t\t\tdate, // 03/24/2018',,\r\n\t\t\t\t'-'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_date',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_date',\r\n\t\t\trow: 3,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate\r\n\t\t}, {\r\n\t\t\tdate\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should throw parse() errors', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\t'123',\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'PHONE',\r\n\t\t\tvalue: '123'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\tvalue: '123'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([null])\r\n\t})\r\n\r\n\tit('should map row numbers', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\trowIndexMap: [2, 5]\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\trow: 6,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (valid)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'STARTED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(0)\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (not valid)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'SCHEDULED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'unknown',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'STATUS',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'SCHEDULED'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should not include `null` values by default', function() {\r\n\t\tconst { rows } = mapToObjects(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\tA: {\r\n\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tB: {\r\n\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tC: {\r\n\t\t\t\t\tprop: 'c',\r\n \t\t\ttype: {\r\n\t\t\t\t\t\tCA: {\r\n\t\t\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tCB: {\r\n\t\t\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\trows.should.deep.equal([\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca', b: null } },\r\n\t\t\t{ a: 'a', b: null, c: null },\r\n\t\t])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (default) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Legacy behavior.\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14'\r\n\t\t}, {\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForNullCellValue: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForNullCellValue: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\t// column5: undefined\r\n\t\t}, {\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\t// column5: undefined\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null` and `schemaPropertyValueForNullCellValue: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null,\r\n\t\t\tschemaPropertyValueForNullCellValue: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null` and `schemaPropertyValueForNullCellValue: null` and `schemaPropertyShouldSkipRequiredValidationForMissingColumn()` not specified) (`required: true`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null,\r\n\t\t\tschemaPropertyValueForNullCellValue: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}, {\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\terror: 'required',\r\n\t\t\trow: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null` and `schemaPropertyValueForNullCellValue: null` and `schemaPropertyShouldSkipRequiredValidationForMissingColumn: () => false`) (`required: true`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null,\r\n\t\t\tschemaPropertyValueForNullCellValue: null,\r\n\t\t\tschemaPropertyShouldSkipRequiredValidationForMissingColumn: () => false\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}, {\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\terror: 'required',\r\n\t\t\trow: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null` and `schemaPropertyValueForNullCellValue: null` and `schemaPropertyShouldSkipRequiredValidationForMissingColumn: () => true`) (`required: true`)', () => {\r\n\t\tconst { rows, errors } = mapToObjects([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null,\r\n\t\t\tschemaPropertyValueForNullCellValue: null,\r\n\t\t\tschemaPropertyShouldSkipRequiredValidationForMissingColumn: () => true\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n})\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"mappings":"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"}
@@ -1,5 +1,19 @@
1
1
  import fs from 'fs';
2
2
  import Stream, { Readable } from 'stream';
3
+
4
+ // `unzipper` has a bug when it doesn't include "@aws-sdk/client-s3" package in the `dependencies`
5
+ // which causes some "bundlers" throw an error.
6
+ // https://github.com/ZJONSSON/node-unzipper/issues/330
7
+ //
8
+ // One workaround is to install "@aws-sdk/client-s3" package manually, which would still lead to increased bundle size.
9
+ // If the code is bundled for server-side-use only, that is will not be used in a web browser,
10
+ // then the increased bundle size would not be an issue.
11
+ //
12
+ // Another workaround could be to "alias" "@aws-sdk/client-s3" package in a "bundler" configuration file
13
+ // with a path to a `*.js` file containing just "export default null". But that kind of a workaround would also
14
+ // result in errors when using other packages that `import` anything from "@aws-sdk/client-s3" package,
15
+ // so it's not really a workaround but more of a ticking bomb.
16
+ //
3
17
  import unzip from 'unzipper';
4
18
 
5
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileNode.js","names":["fs","Stream","Readable","unzip","unpackXlsxFile","input","entries","stream","Buffer","from","createReadStream","Promise","resolve","reject","entryPromises","on","pipe","Parse","all","then","entry","contents","push","setEncoding","data","toString","path"],"sources":["../../source/read/unpackXlsxFileNode.js"],"sourcesContent":["import fs from 'fs'\r\nimport Stream, { Readable } from 'stream'\r\nimport unzip from 'unzipper'\r\n\r\n/**\r\n * Reads XLSX file in Node.js.\r\n * @param {(string|Stream)} input - A Node.js readable stream or a path to a file.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n // XLSX file is a zip archive.\r\n // The `entries` object stores the files\r\n // and their contents from this XLSX zip archive.\r\n const entries = {}\r\n\r\n const stream = input instanceof Stream\r\n ? input\r\n : (\r\n input instanceof Buffer\r\n ? Readable.from(input)\r\n : fs.createReadStream(input)\r\n )\r\n\r\n return new Promise((resolve, reject) => {\r\n const entryPromises = []\r\n\r\n stream\r\n // This first \"error\" listener is for the original stream errors.\r\n .on('error', reject)\r\n .pipe(unzip.Parse())\r\n // This second \"error\" listener is for the unzip stream errors.\r\n .on('error', reject)\r\n .on('close', () => Promise.all(entryPromises).then(() => resolve(entries)))\r\n .on('entry', (entry) => {\r\n let contents = ''\r\n // To ignore an entry: `entry.autodrain()`.\r\n entryPromises.push(new Promise((resolve) => {\r\n // It's not clear what encoding are the files inside XLSX in.\r\n // https://stackoverflow.com/questions/45194771/are-xlsx-files-utf-8-encoded-by-definition\r\n // For example, for XML files, encoding is specified at the top node:\r\n // `<?xml version=\"1.0\" encoding=\"UTF-8\"/>`.\r\n //\r\n // `unzipper` supports setting encoding when reading an `entry`.\r\n // https://github.com/ZJONSSON/node-unzipper/issues/35\r\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/54\r\n //\r\n // If the `entry.setEncoding('utf8')` line would be commented out,\r\n // there's a `nonAsciiCharacterEncoding` test that wouldn't pass.\r\n //\r\n entry.setEncoding('utf8')\r\n //\r\n entry\r\n .on('data', data => contents += data.toString())\r\n .on('end', () => resolve(entries[entry.path] = contents))\r\n }))\r\n })\r\n })\r\n}\r\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,OAAOC,MAAM,IAAIC,QAAQ,QAAQ,QAAQ;AACzC,OAAOC,KAAK,MAAM,UAAU;;AAE5B;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC5C;EACA;EACA;EACA,IAAMC,OAAO,GAAG,CAAC,CAAC;EAElB,IAAMC,MAAM,GAAGF,KAAK,YAAYJ,MAAM,GAClCI,KAAK,GAELA,KAAK,YAAYG,MAAM,GACnBN,QAAQ,CAACO,IAAI,CAACJ,KAAK,CAAC,GACpBL,EAAE,CAACU,gBAAgB,CAACL,KAAK,CAC9B;EAEH,OAAO,IAAIM,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtC,IAAMC,aAAa,GAAG,EAAE;IAExBP;IACE;IAAA,CACCQ,EAAE,CAAC,OAAO,EAAEF,MAAM,CAAC,CACnBG,IAAI,CAACb,KAAK,CAACc,KAAK,CAAC,CAAC;IACnB;IAAA,CACCF,EAAE,CAAC,OAAO,EAAEF,MAAM,CAAC,CACnBE,EAAE,CAAC,OAAO,EAAE;MAAA,OAAOJ,OAAO,CAACO,GAAG,CAACJ,aAAa,CAAC,CAACK,IAAI,CAAC;QAAA,OAAMP,OAAO,CAACN,OAAO,CAAC;MAAA,EAAC;IAAA,EAAC,CAC3ES,EAAE,CAAC,OAAO,EAAE,UAACK,KAAK,EAAK;MACtB,IAAIC,QAAQ,GAAG,EAAE;MACjB;MACAP,aAAa,CAACQ,IAAI,CAAC,IAAIX,OAAO,CAAC,UAACC,OAAO,EAAK;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAQ,KAAK,CAACG,WAAW,CAAC,MAAM,CAAC;QACzB;QACAH,KAAK,CACFL,EAAE,CAAC,MAAM,EAAE,UAAAS,IAAI;UAAA,OAAIH,QAAQ,IAAIG,IAAI,CAACC,QAAQ,CAAC,CAAC;QAAA,EAAC,CAC/CV,EAAE,CAAC,KAAK,EAAE;UAAA,OAAMH,OAAO,CAACN,OAAO,CAACc,KAAK,CAACM,IAAI,CAAC,GAAGL,QAAQ,CAAC;QAAA,EAAC;MAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;EACN,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"unpackXlsxFileNode.js","names":["fs","Stream","Readable","unzip","unpackXlsxFile","input","entries","stream","Buffer","from","createReadStream","Promise","resolve","reject","entryPromises","on","pipe","Parse","all","then","entry","contents","push","setEncoding","data","toString","path"],"sources":["../../source/read/unpackXlsxFileNode.js"],"sourcesContent":["import fs from 'fs'\r\nimport Stream, { Readable } from 'stream'\r\n\r\n// `unzipper` has a bug when it doesn't include \"@aws-sdk/client-s3\" package in the `dependencies`\r\n// which causes some \"bundlers\" throw an error.\r\n// https://github.com/ZJONSSON/node-unzipper/issues/330\r\n//\r\n// One workaround is to install \"@aws-sdk/client-s3\" package manually, which would still lead to increased bundle size.\r\n// If the code is bundled for server-side-use only, that is will not be used in a web browser,\r\n// then the increased bundle size would not be an issue.\r\n//\r\n// Another workaround could be to \"alias\" \"@aws-sdk/client-s3\" package in a \"bundler\" configuration file\r\n// with a path to a `*.js` file containing just \"export default null\". But that kind of a workaround would also\r\n// result in errors when using other packages that `import` anything from \"@aws-sdk/client-s3\" package,\r\n// so it's not really a workaround but more of a ticking bomb.\r\n//\r\nimport unzip from 'unzipper'\r\n\r\n/**\r\n * Reads XLSX file in Node.js.\r\n * @param {(string|Stream)} input - A Node.js readable stream or a path to a file.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n // XLSX file is a zip archive.\r\n // The `entries` object stores the files\r\n // and their contents from this XLSX zip archive.\r\n const entries = {}\r\n\r\n const stream = input instanceof Stream\r\n ? input\r\n : (\r\n input instanceof Buffer\r\n ? Readable.from(input)\r\n : fs.createReadStream(input)\r\n )\r\n\r\n return new Promise((resolve, reject) => {\r\n const entryPromises = []\r\n\r\n stream\r\n // This first \"error\" listener is for the original stream errors.\r\n .on('error', reject)\r\n .pipe(unzip.Parse())\r\n // This second \"error\" listener is for the unzip stream errors.\r\n .on('error', reject)\r\n .on('close', () => Promise.all(entryPromises).then(() => resolve(entries)))\r\n .on('entry', (entry) => {\r\n let contents = ''\r\n // To ignore an entry: `entry.autodrain()`.\r\n entryPromises.push(new Promise((resolve) => {\r\n // It's not clear what encoding are the files inside XLSX in.\r\n // https://stackoverflow.com/questions/45194771/are-xlsx-files-utf-8-encoded-by-definition\r\n // For example, for XML files, encoding is specified at the top node:\r\n // `<?xml version=\"1.0\" encoding=\"UTF-8\"/>`.\r\n //\r\n // `unzipper` supports setting encoding when reading an `entry`.\r\n // https://github.com/ZJONSSON/node-unzipper/issues/35\r\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/54\r\n //\r\n // If the `entry.setEncoding('utf8')` line would be commented out,\r\n // there's a `nonAsciiCharacterEncoding` test that wouldn't pass.\r\n //\r\n entry.setEncoding('utf8')\r\n //\r\n entry\r\n .on('data', data => contents += data.toString())\r\n .on('end', () => resolve(entries[entry.path] = contents))\r\n }))\r\n })\r\n })\r\n}\r\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,OAAOC,MAAM,IAAIC,QAAQ,QAAQ,QAAQ;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOC,KAAK,MAAM,UAAU;;AAE5B;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC5C;EACA;EACA;EACA,IAAMC,OAAO,GAAG,CAAC,CAAC;EAElB,IAAMC,MAAM,GAAGF,KAAK,YAAYJ,MAAM,GAClCI,KAAK,GAELA,KAAK,YAAYG,MAAM,GACnBN,QAAQ,CAACO,IAAI,CAACJ,KAAK,CAAC,GACpBL,EAAE,CAACU,gBAAgB,CAACL,KAAK,CAC9B;EAEH,OAAO,IAAIM,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtC,IAAMC,aAAa,GAAG,EAAE;IAExBP;IACE;IAAA,CACCQ,EAAE,CAAC,OAAO,EAAEF,MAAM,CAAC,CACnBG,IAAI,CAACb,KAAK,CAACc,KAAK,CAAC,CAAC;IACnB;IAAA,CACCF,EAAE,CAAC,OAAO,EAAEF,MAAM,CAAC,CACnBE,EAAE,CAAC,OAAO,EAAE;MAAA,OAAOJ,OAAO,CAACO,GAAG,CAACJ,aAAa,CAAC,CAACK,IAAI,CAAC;QAAA,OAAMP,OAAO,CAACN,OAAO,CAAC;MAAA,EAAC;IAAA,EAAC,CAC3ES,EAAE,CAAC,OAAO,EAAE,UAACK,KAAK,EAAK;MACtB,IAAIC,QAAQ,GAAG,EAAE;MACjB;MACAP,aAAa,CAACQ,IAAI,CAAC,IAAIX,OAAO,CAAC,UAACC,OAAO,EAAK;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACAQ,KAAK,CAACG,WAAW,CAAC,MAAM,CAAC;QACzB;QACAH,KAAK,CACFL,EAAE,CAAC,MAAM,EAAE,UAAAS,IAAI;UAAA,OAAIH,QAAQ,IAAIG,IAAI,CAACC,QAAQ,CAAC,CAAC;QAAA,EAAC,CAC/CV,EAAE,CAAC,KAAK,EAAE;UAAA,OAAMH,OAAO,CAACN,OAAO,CAACc,KAAK,CAACM,IAAI,CAAC,GAAGL,QAAQ,CAAC;QAAA,EAAC;MAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;EACN,CAAC,CAAC;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "5.8.6",
3
+ "version": "5.8.7",
4
4
  "description": "Read small to medium `*.xlsx` files in a browser or Node.js. Parse to JSON with a strict schema.",
5
5
  "module": "index.js",
6
6
  "main": "index.cjs",
package/schema/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- exports = module.exports = require('../commonjs/read/schema/convertToJson.legacy.js').default
2
- exports['default'] = require('../commonjs/read/schema/convertToJson.legacy.js').default
1
+ exports = module.exports = require('../commonjs/read/schema/mapToObjects.legacy.js').default
2
+ exports['default'] = require('../commonjs/read/schema/mapToObjects.legacy.js').default
@@ -3,5 +3,5 @@
3
3
  // It fixes the issue when some software doesn't see files with `*.cjs` file extensions
4
4
  // when used as the `main` property value in `package.json`.
5
5
 
6
- exports = module.exports = require('../commonjs/read/schema/convertToJson.legacy.js').default
7
- exports['default'] = require('../commonjs/read/schema/convertToJson.legacy.js').default
6
+ exports = module.exports = require('../commonjs/read/schema/mapToObjects.legacy.js').default
7
+ exports['default'] = require('../commonjs/read/schema/mapToObjects.legacy.js').default
package/schema/index.js CHANGED
@@ -1 +1 @@
1
- export { default as default } from '../modules/read/schema/convertToJson.legacy.js'
1
+ export { default as default } from '../modules/read/schema/mapToObjects.legacy.js'
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToJson.js","names":["_Number","_interopRequireDefault","require","_String","_Boolean","_Date","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","r","l","t","Symbol","iterator","e","n","u","a","f","o","call","next","Object","done","push","value","length","Array","isArray","_typeof","constructor","prototype","_createForOfIteratorHelperLoose","allowArrayLike","it","bind","minLen","_arrayLikeToArray","toString","slice","name","from","test","len","arr2","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","DEFAULT_OPTIONS","schemaPropertyValueForMissingColumn","schemaPropertyValueForUndefinedCellValue","schemaPropertyValueForNullCellValue","schemaPropertyShouldSkipRequiredValidationForMissingColumn","getEmptyObjectValue","getEmptyArrayValue","isColumnOriented","arrayValueSeparator","_default","data","schema","options","_options","rowIndexMap","validateSchema","transpose","columns","results","errors","result","read","_iterator","_step","error","row","rows","rowIndex","path","object","isEmptyObject","createError","_ref","column","errorMessage","reason","type","pendingRequiredChecks","_loop","_Object$keys","_i","schemaEntry","isNestedSchema","propertyPath","concat","prop","cellValue","columnIndex","indexOf","isMissingColumn","array","parseArray","map","_value","parseValue","isEmpty","every","isEmptyValue","required","_i2","_pendingRequiredCheck","_pendingRequiredCheck2","skipRequiredValidation","isRequired","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","parsedValue","StringType","NumberType","Date","DateType","properties","Boolean","BooleanType","Error","getBlock","string","endCharacter","startIndex","substring","character","block","blocks","index","_getBlock","_getBlock2","trim","_","_i3","_Object$keys2","entry"],"sources":["../../../source/read/schema/convertToJson.js"],"sourcesContent":["import NumberType from '../../types/Number.js'\r\nimport StringType from '../../types/String.js'\r\nimport BooleanType from '../../types/Boolean.js'\r\nimport DateType from '../../types/Date.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n schemaPropertyValueForMissingColumn: undefined,\r\n schemaPropertyValueForUndefinedCellValue: undefined,\r\n schemaPropertyValueForNullCellValue: null,\r\n schemaPropertyShouldSkipRequiredValidationForMissingColumn: () => false,\r\n // `getEmptyObjectValue(object, { path })` applies to both the top-level object\r\n // and any of its sub-objects.\r\n getEmptyObjectValue: () => null,\r\n getEmptyArrayValue: () => null,\r\n isColumnOriented: false,\r\n arrayValueSeparator: ','\r\n}\r\n\r\n/**\r\n * (this function is exported from `read-excel-file/map`)\r\n * Converts spreadsheet-alike data structure into an array of objects.\r\n * The first row should be the list of column headers.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @param {object} [options]\r\n * @param {null} [options.schemaPropertyValueForMissingColumn] — By default, when some of the `schema` columns are missing in the input `data`, those properties are set to `undefined` in the output objects. Pass `schemaPropertyValueForMissingColumn: null` to set such \"missing column\" properties to `null` in the output objects.\r\n * @param {null} [options.schemaPropertyValueForNullCellValue] — By default, when it encounters a `null` value in a cell in input `data`, it sets it to `undefined` in the output object. Pass `schemaPropertyValueForNullCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {null} [options.schemaPropertyValueForUndefinedCellValue] — By default, when it encounters an `undefined` value in a cell in input `data`, it it sets it to `undefined` in the output object. Pass `schemaPropertyValueForUndefinedCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {boolean} [options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column: string, { object })] — By default, it does apply `required` validation to `schema` properties for which columns are missing in the input `data`. One could pass a custom `schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, { object })` to disable `required` validation for missing columns in some or all cases.\r\n * @param {function} [options.getEmptyObjectValue(object, { path })] — By default, it returns `null` for an \"empty\" resulting object. One could override that value using `getEmptyObjectValue(object, { path })` parameter. The value applies to both top-level object and any nested sub-objects in case of a nested schema, hence the additional `path?: string` parameter.\r\n * @param {function} [getEmptyArrayValue(array, { path })] — By default, it returns `null` for an \"empty\" array value. One could override that value using `getEmptyArrayValue(array, { path })` parameter.\r\n * @param {boolean} [options.isColumnOriented] — By default, the headers are assumed to be the first row in the `data`. Pass `isColumnOriented: true` if the headers are the first column in the `data`. i.e. if `data` is \"transposed\".\r\n * @param {object} [options.rowIndexMap] — Custom row index mapping `data` rows. If present, will overwrite the indexes of `data` rows with the indexes from this `rowIndexMap`.\r\n * @return {object[]}\r\n */\r\nexport default function(data, schema, options) {\r\n if (options) {\r\n options = {\r\n ...DEFAULT_OPTIONS,\r\n ...options\r\n }\r\n } else {\r\n options = DEFAULT_OPTIONS\r\n }\r\n\r\n const {\r\n isColumnOriented,\r\n rowIndexMap\r\n } = options\r\n\r\n validateSchema(schema)\r\n\r\n if (isColumnOriented) {\r\n data = transpose(data)\r\n }\r\n\r\n const columns = data[0]\r\n\r\n const results = []\r\n const errors = []\r\n\r\n for (let i = 1; i < data.length; i++) {\r\n const result = read(schema, data[i], i, undefined, columns, errors, options)\r\n results.push(result)\r\n }\r\n\r\n // Set the correct `row` number in `errors` if a custom `rowIndexMap` is supplied.\r\n if (rowIndexMap) {\r\n for (const error of errors) {\r\n // Convert the `row` index in `data` to the\r\n // actual `row` index in the spreadsheet.\r\n // `- 1` converts row number to row index.\r\n // `+ 1` converts row index to row number.\r\n error.row = rowIndexMap[error.row - 1] + 1\r\n }\r\n }\r\n\r\n return {\r\n rows: results,\r\n errors\r\n }\r\n}\r\n\r\nfunction read(schema, row, rowIndex, path, columns, errors, options) {\r\n const object = {}\r\n let isEmptyObject = true\r\n\r\n const createError = ({\r\n column,\r\n value,\r\n error: errorMessage,\r\n reason\r\n }) => {\r\n const error = {\r\n error: errorMessage,\r\n row: rowIndex + 1,\r\n column,\r\n value\r\n }\r\n if (reason) {\r\n error.reason = reason\r\n }\r\n if (schema[column].type) {\r\n error.type = schema[column].type\r\n }\r\n return error\r\n }\r\n\r\n const pendingRequiredChecks = []\r\n\r\n // For each schema entry.\r\n for (const key of Object.keys(schema)) {\r\n const schemaEntry = schema[key]\r\n const isNestedSchema = typeof schemaEntry.type === 'object' && !Array.isArray(schemaEntry.type)\r\n\r\n // The path of this property inside the resulting object.\r\n const propertyPath = `${path || ''}.${schemaEntry.prop}`\r\n\r\n // Read the cell value for the schema entry.\r\n let cellValue\r\n const columnIndex = columns.indexOf(key)\r\n const isMissingColumn = columnIndex < 0\r\n if (!isMissingColumn) {\r\n cellValue = row[columnIndex]\r\n }\r\n\r\n let value\r\n let error\r\n let reason\r\n\r\n // Get property `value` from cell value.\r\n if (isNestedSchema) {\r\n value = read(schemaEntry.type, row, rowIndex, propertyPath, columns, errors, options)\r\n } else {\r\n if (isMissingColumn) {\r\n value = options.schemaPropertyValueForMissingColumn\r\n }\r\n else if (cellValue === undefined) {\r\n value = options.schemaPropertyValueForUndefinedCellValue\r\n }\r\n else if (cellValue === null) {\r\n value = options.schemaPropertyValueForNullCellValue\r\n }\r\n else if (Array.isArray(schemaEntry.type)) {\r\n const array = parseArray(cellValue, options.arrayValueSeparator).map((_value) => {\r\n if (error) {\r\n return\r\n }\r\n const result = parseValue(_value, schemaEntry, options)\r\n if (result.error) {\r\n // In case of an error, `value` won't be returned and will just be reported\r\n // as part of an `error` object, so it's fine assigning just an element of the array.\r\n value = _value\r\n error = result.error\r\n reason = result.reason\r\n }\r\n return result.value\r\n })\r\n if (!error) {\r\n const isEmpty = array.every(isEmptyValue)\r\n value = isEmpty ? options.getEmptyArrayValue(array, { path: propertyPath }) : array\r\n }\r\n } else {\r\n const result = parseValue(cellValue, schemaEntry, options)\r\n error = result.error\r\n reason = result.reason\r\n value = error ? cellValue : result.value\r\n }\r\n }\r\n\r\n // Apply `required` validation if the value is \"empty\".\r\n if (!error && isEmptyValue(value)) {\r\n if (schemaEntry.required) {\r\n // Will perform this `required()` validation in the end,\r\n // when all properties of the mapped object have been mapped.\r\n pendingRequiredChecks.push({ column: key, value, isMissingColumn })\r\n }\r\n }\r\n\r\n if (error) {\r\n // If there was an error then the property value in the `object` will be `undefined`,\r\n // i.e it won't add the property value to the mapped object.\r\n errors.push(createError({\r\n column: key,\r\n value,\r\n error,\r\n reason\r\n }))\r\n } else {\r\n // Possibly unmark the mapped object as \"empty\".\r\n if (isEmptyObject && !isEmptyValue(value)) {\r\n isEmptyObject = false\r\n }\r\n // Set the value in the mapped object.\r\n // Skip setting `undefined` values because they're already `undefined`.\r\n if (value !== undefined) {\r\n object[schemaEntry.prop] = value\r\n }\r\n }\r\n }\r\n\r\n // Return `null` for an \"empty\" mapped object.\r\n if (isEmptyObject) {\r\n return options.getEmptyObjectValue(object, { path })\r\n }\r\n\r\n // Perform any `required` validations.\r\n for (const { column, value, isMissingColumn } of pendingRequiredChecks) {\r\n // Can optionally skip `required` validation for missing columns.\r\n const skipRequiredValidation = isMissingColumn && options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, { object })\r\n if (!skipRequiredValidation) {\r\n const { required } = schema[column]\r\n const isRequired = typeof required === 'boolean' ? required : required(object)\r\n if (isRequired) {\r\n errors.push(createError({\r\n column,\r\n value,\r\n error: 'required'\r\n }))\r\n }\r\n }\r\n }\r\n\r\n // Return the mapped object.\r\n return object\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\r\nexport function parseValue(value, schemaEntry, options) {\r\n if (value === null) {\r\n return { value: null }\r\n }\r\n let result\r\n if (schemaEntry.parse) {\r\n result = parseCustomValue(value, schemaEntry.parse)\r\n } else if (schemaEntry.type) {\r\n result = parseValueOfType(\r\n value,\r\n // Supports parsing array types.\r\n // See `parseArray()` function for more details.\r\n // Example `type`: String[]\r\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type,\r\n options\r\n )\r\n } else {\r\n result = { value: value }\r\n // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\r\n }\r\n // If errored then return the error.\r\n if (result.error) {\r\n return result\r\n }\r\n if (result.value !== null) {\r\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\r\n return { error: 'invalid', reason: 'unknown' }\r\n }\r\n if (schemaEntry.validate) {\r\n try {\r\n schemaEntry.validate(result.value)\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\r\nfunction parseCustomValue(value, parse) {\r\n try {\r\n const parsedValue = parse(value)\r\n if (parsedValue === undefined) {\r\n return { value: null }\r\n }\r\n return { value: parsedValue }\r\n } catch (error) {\r\n const result = { error: error.message }\r\n if (error.reason) {\r\n result.reason = error.reason;\r\n }\r\n return result\r\n }\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string, reason?: string }}\r\n */\r\nfunction parseValueOfType(value, type, options) {\r\n switch (type) {\r\n case String:\r\n return parseCustomValue(value, StringType)\r\n\r\n case Number:\r\n return parseCustomValue(value, NumberType)\r\n\r\n case Date:\r\n return parseCustomValue(value, (value) => DateType(value, { properties: options.properties }))\r\n\r\n case Boolean:\r\n return parseCustomValue(value, BooleanType)\r\n\r\n default:\r\n if (typeof type === 'function') {\r\n return parseCustomValue(value, type)\r\n }\r\n throw new Error(`Unsupported schema type: ${type && type.name || type}`)\r\n }\r\n}\r\n\r\nexport function getBlock(string, endCharacter, startIndex) {\r\n let i = 0\r\n let substring = ''\r\n let character\r\n while (startIndex + i < string.length) {\r\n const character = string[startIndex + i]\r\n if (character === endCharacter) {\r\n return [substring, i]\r\n }\r\n else if (character === '\"') {\r\n const block = getBlock(string, '\"', startIndex + i + 1)\r\n substring += block[0]\r\n i += '\"'.length + block[1] + '\"'.length\r\n }\r\n else {\r\n substring += character\r\n i++\r\n }\r\n }\r\n return [substring, i]\r\n}\r\n\r\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string — A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\r\nexport function parseArray(string, arrayValueSeparator) {\r\n const blocks = []\r\n let index = 0\r\n while (index < string.length) {\r\n const [substring, length] = getBlock(string, arrayValueSeparator, index)\r\n index += length + arrayValueSeparator.length\r\n blocks.push(substring.trim())\r\n }\r\n return blocks\r\n}\r\n\r\n// Transpose a 2D array.\r\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\r\nconst transpose = array => array[0].map((_, i) => array.map(row => row[i]))\r\n\r\nfunction validateSchema(schema) {\r\n for (const key of Object.keys(schema)) {\r\n const entry = schema[key]\r\n if (!entry.prop) {\r\n throw new Error(`\"prop\" not defined for schema entry \"${key}\".`)\r\n }\r\n }\r\n}\r\n\r\nfunction isEmptyValue(value) {\r\n return value === undefined || value === null\r\n}"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToJson.legacy.js","names":["_convertToJson","_interopRequireDefault","require","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","convertToJsonLegacyBehavior","data","schema","options","includeNullValues","ignoreEmptyRows","isColumnOriented","rowMap","defaultConversionOptions","schemaPropertyValueForMissingColumn","schemaPropertyValueForUndefinedCellValue","schemaPropertyValueForNullCellValue","schemaPropertyShouldSkipRequiredValidationForMissingColumn","column","_ref","path","getEmptyObjectValue","object","_ref2","getEmptyArrayValue","arrayValueSeparator","_ref3","result","convertToJson","rowIndexMap","rows","_"],"sources":["../../../source/read/schema/convertToJson.legacy.js"],"sourcesContent":["import convertToJson from './convertToJson.js'\r\n\r\nexport default function convertToJsonLegacyBehavior(data, schema, options = {}) {\r\n\tconst {\r\n\t\tincludeNullValues,\r\n\t\tignoreEmptyRows,\r\n\t\tisColumnOriented,\r\n\t\trowMap\r\n\t} = options\r\n\tconst defaultConversionOptions = {\r\n\t\tschemaPropertyValueForMissingColumn: undefined,\r\n\t\tschemaPropertyValueForUndefinedCellValue: undefined,\r\n\t\tschemaPropertyValueForNullCellValue: undefined,\r\n\t\tschemaPropertyShouldSkipRequiredValidationForMissingColumn: (column, { path }) => false,\r\n\t\tgetEmptyObjectValue: (object, { path }) => path ? undefined : null,\r\n\t\tgetEmptyArrayValue: () => null,\r\n\t\tarrayValueSeparator: ','\r\n\t}\r\n\tif (includeNullValues) {\r\n\t\tdefaultConversionOptions.schemaPropertyValueForMissingColumn = null\r\n\t\tdefaultConversionOptions.schemaPropertyValueForUndefinedCellValue = null\r\n\t\tdefaultConversionOptions.schemaPropertyValueForNullCellValue = null\r\n\t\tdefaultConversionOptions.getEmptyObjectValue = (object, { path }) => null\r\n\t}\r\n\tconst result = convertToJson(data, schema, {\r\n\t\t...defaultConversionOptions,\r\n\t\trowIndexMap: rowMap,\r\n\t\tisColumnOriented\r\n\t})\r\n\tif (ignoreEmptyRows !== false) {\r\n\t\tresult.rows = result.rows.filter(_ => _ !== defaultConversionOptions.getEmptyObjectValue(_, { path: undefined }))\r\n\t}\r\n\treturn result\r\n}"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToJson.legacy.test.js","names":["_convertToJsonLegacy","_interopRequireDefault","require","_Integer","obj","__esModule","describe","it","_convertToJson","convertToJson","A","prop","type","String","B","C","CA","CB","includeNullValues","rows","should","deep","equal","a","b","c","_convertToJson2","COLUMN_1","required","COLUMN_2","COLUMN_4","COLUMN_5","errors","column2","column4","_convertToJson3","column1","column5","_convertToJson4","NUMBER","Number","STRING","error","row","column","value","undefined","string","_convertToJson5","_convertToJson6","NAMES","names","_convertToJson7","INTEGER","Integer","length","reason","_convertToJson8"],"sources":["../../../source/read/schema/convertToJson.legacy.test.js"],"sourcesContent":["import convertToJson from './convertToJson.legacy.js'\r\n\r\nimport Integer from '../../types/Integer.js'\r\n\r\ndescribe('convertToJson (legacy behavior)', () => {\r\n\tit('should include `null` values when `includeNullValues: true` option is passed', function() {\r\n\t\tconst { rows } = convertToJson(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\tA: {\r\n\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tB: {\r\n\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tC: {\r\n\t\t\t\t\tprop: 'c',\r\n \t\t\ttype: {\r\n\t\t\t\t\t\tCA: {\r\n\t\t\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tCB: {\r\n\t\t\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tincludeNullValues: true\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\trows.should.deep.equal([\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca', b: null } },\r\n\t\t\t{ a: 'a', b: null, c: null },\r\n\t\t])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (default) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Legacy behavior.\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14'\r\n\t\t}, {\r\n\t\t\tcolumn2: '22'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`includeNullValues: true`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tincludeNullValues: true\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should require fields when cell value is empty', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'STRING'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\t// value: null,\r\n\t\t\tvalue: undefined\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('shouldn\\'t require fields when cell value is empty and object is empty too', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should parse arrays (and remove `null` empty objects from result)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NAMES'\r\n\t\t\t], [\r\n\t\t\t\t'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAMES: {\r\n\t\t\t\tprop: 'names',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnames: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse integers (and drop `null` errored objects from result)', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tINTEGER: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].should.deep.equal({\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_integer',\r\n\t\t\trow: 3,\r\n\t\t\tcolumn: 'INTEGER',\r\n\t\t\ttype: Integer,\r\n\t\t\tvalue: '1.2'\r\n\t\t})\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 1\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should not include `null` values by default (and set `null` for an \"empty\" object)', function() {\r\n\t\tconst { rows } = convertToJson(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\tA: {\r\n\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tB: {\r\n\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tC: {\r\n\t\t\t\t\tprop: 'c',\r\n \t\t\ttype: {\r\n\t\t\t\t\t\tCA: {\r\n\t\t\t\t\t\t\tprop: 'a',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tCB: {\r\n\t\t\t\t\t\t\tprop: 'b',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\trows.should.deep.equal([\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca' } },\r\n\t\t\t{ a: 'a' },\r\n\t\t])\r\n\t})\r\n})"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToJson.spreadsheet.js","names":["convertToJsonSpreadsheetBehavior","convertToJson","data","schema","options","arguments","length","undefined","schemaPropertyValueForEmptyCell","restOptions","_objectWithoutProperties","_excluded","_objectSpread","schemaPropertyValueForNullCellValue"],"sources":["../../../source/read/schema/convertToJson.spreadsheet.js"],"sourcesContent":["// Renames some of the `react-excel-file` options to `convertToJson()` options.\r\nexport default function convertToJsonSpreadsheetBehavior(convertToJson, data, schema, options = {}) {\r\n\tconst {\r\n\t\tschemaPropertyValueForEmptyCell,\r\n\t\t...restOptions\r\n\t} = options\r\n\treturn convertToJson(data, schema, {\r\n\t\t...restOptions,\r\n\t\tschemaPropertyValueForNullCellValue: schemaPropertyValueForEmptyCell\r\n\t})\r\n}"],"mappings":";;;;;;;;;;;;;;;AAAA;AACe,SAASA,gCAAgCA,CAACC,aAAa,EAAEC,IAAI,EAAEC,MAAM,EAAgB;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACjG,IACCG,+BAA+B,GAE5BJ,OAAO,CAFVI,+BAA+B;IAC5BC,WAAW,GAAAC,wBAAA,CACXN,OAAO,EAAAO,SAAA;EACX,OAAOV,aAAa,CAACC,IAAI,EAAEC,MAAM,EAAAS,aAAA,CAAAA,aAAA,KAC7BH,WAAW;IACdI,mCAAmC,EAAEL;EAA+B,EACpE,CAAC;AACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertToJson.spreadsheet.test.js","names":["_convertToJson3","_interopRequireDefault","require","_convertToJsonSpreadsheet","obj","__esModule","convertToJson","data","schema","options","convertToJsonSpreadsheetBehavior","convertToJson_","describe","it","_convertToJson","COLUMN_1","prop","type","String","required","COLUMN_2","COLUMN_4","COLUMN_5","schemaPropertyValueForMissingColumn","rows","errors","should","deep","equal","column1","column2","column4","column5","_convertToJson2","schemaPropertyValueForEmptyCell"],"sources":["../../../source/read/schema/convertToJson.spreadsheet.test.js"],"sourcesContent":["import convertToJson_ from './convertToJson.js'\r\nimport convertToJsonSpreadsheetBehavior from './convertToJson.spreadsheet.js'\r\n\r\nfunction convertToJson(data, schema, options) {\r\n\treturn convertToJsonSpreadsheetBehavior(convertToJson_, data, schema, options)\r\n}\r\n\r\ndescribe('convertToJson (spreadsheet behavior)', () => {\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForMissingColumn: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForMissingColumn: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t}, {\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\t// column4: undefined,\r\n\t\t\tcolumn5: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should handle missing columns / empty cells (`schemaPropertyValueForEmptyCell: null`) (`required: false`)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tCOLUMN_1: {\r\n\t\t\t\tprop: 'column1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_2: {\r\n\t\t\t\tprop: 'column2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_4: {\r\n\t\t\t\tprop: 'column4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tCOLUMN_5: {\r\n\t\t\t\tprop: 'column5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tschemaPropertyValueForEmptyCell: null\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\t// column5: undefined\r\n\t\t}, {\r\n\t\t\t// column1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\t// column5: undefined\r\n\t\t}])\r\n\t})\r\n})\r\n"],"mappings":"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"}