read-excel-file 9.3.3 → 9.3.5

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 (255) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +32 -2
  3. package/browser/index.cjs +3 -0
  4. package/browser/index.d.ts +16 -0
  5. package/browser/index.js +4 -1
  6. package/bundle/read-excel-file.min.js +1 -1
  7. package/bundle/read-excel-file.min.js.map +1 -1
  8. package/commonjs/export/convertInputToNodeStream.js +0 -12
  9. package/commonjs/export/convertInputToNodeStream.js.map +1 -1
  10. package/commonjs/export/parseSheet.js +14 -7
  11. package/commonjs/export/parseSheet.js.map +1 -1
  12. package/commonjs/export/readSheetBrowser.js +3 -6
  13. package/commonjs/export/readSheetBrowser.js.map +1 -1
  14. package/commonjs/export/readSheetNode.js +3 -6
  15. package/commonjs/export/readSheetNode.js.map +1 -1
  16. package/commonjs/export/readSheetUniversal.js +2 -2
  17. package/commonjs/export/readSheetUniversal.js.map +1 -1
  18. package/commonjs/export/readSheetWebWorker.js +5 -5
  19. package/commonjs/export/readSheetWebWorker.js.map +1 -1
  20. package/commonjs/export/readXlsxFileBrowser.js +3 -6
  21. package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
  22. package/commonjs/export/readXlsxFileNode.js +3 -6
  23. package/commonjs/export/readXlsxFileNode.js.map +1 -1
  24. package/commonjs/export/readXlsxFileUniversal.js +2 -2
  25. package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
  26. package/commonjs/export/readXlsxFileWebWorker.js +5 -5
  27. package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
  28. package/commonjs/export/unpackXlsxFileBrowser.js +15 -4
  29. package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
  30. package/commonjs/export/unpackXlsxFileBrowser.test.js.map +1 -0
  31. package/commonjs/export/unpackXlsxFileNode.js +32 -5
  32. package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
  33. package/commonjs/export/unpackXlsxFileNode.test.js.map +1 -0
  34. package/commonjs/export/unpackXlsxFileUniversal.js +14 -3
  35. package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
  36. package/commonjs/export/unpackXlsxFileUniversal.test.js.map +1 -0
  37. package/commonjs/parseSheetData/parseSheetData.js +9 -6
  38. package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
  39. package/commonjs/saxen/parser.js +1 -1
  40. package/commonjs/saxen/parser.js.map +1 -1
  41. package/commonjs/utility/convertValuesFromUint8ArraysToStrings.js +100 -0
  42. package/commonjs/utility/convertValuesFromUint8ArraysToStrings.js.map +1 -0
  43. package/commonjs/xlsx/InvalidSpreadsheetError.js +55 -0
  44. package/commonjs/xlsx/InvalidSpreadsheetError.js.map +1 -0
  45. package/commonjs/xlsx/SheetNotFoundError.js +55 -0
  46. package/commonjs/xlsx/SheetNotFoundError.js.map +1 -0
  47. package/commonjs/xlsx/file/InputValidationStream.js +101 -0
  48. package/commonjs/xlsx/file/InputValidationStream.js.map +1 -0
  49. package/commonjs/xlsx/file/InputValidationStream.test.js.map +1 -0
  50. package/commonjs/xlsx/file/InvalidInputError.js +105 -0
  51. package/commonjs/xlsx/file/InvalidInputError.js.map +1 -0
  52. package/commonjs/xlsx/file/createFileTypeDetector.js +70 -0
  53. package/commonjs/xlsx/file/createFileTypeDetector.js.map +1 -0
  54. package/commonjs/xlsx/file/createFileTypeDetector.test.js.map +1 -0
  55. package/commonjs/xlsx/file/validateLeadingBytes.js +47 -0
  56. package/commonjs/xlsx/file/validateLeadingBytes.js.map +1 -0
  57. package/commonjs/xlsx/file/validateLeadingBytes.test.js.map +1 -0
  58. package/commonjs/xlsx/isDateFormat.js +32 -27
  59. package/commonjs/xlsx/isDateFormat.js.map +1 -1
  60. package/commonjs/xlsx/isDateFormatStyle.js +19 -21
  61. package/commonjs/xlsx/isDateFormatStyle.js.map +1 -1
  62. package/commonjs/xlsx/parseCell.js +252 -115
  63. package/commonjs/xlsx/parseCell.js.map +1 -1
  64. package/commonjs/xlsx/parseCellAddress.js +22 -18
  65. package/commonjs/xlsx/parseCellAddress.js.map +1 -1
  66. package/commonjs/xlsx/parseExcelDate.js +4 -124
  67. package/commonjs/xlsx/parseExcelDate.js.map +1 -1
  68. package/commonjs/xlsx/parseExcelDate.test.js.map +1 -1
  69. package/commonjs/xlsx/parseExcelTimestamp.js +139 -0
  70. package/commonjs/xlsx/parseExcelTimestamp.js.map +1 -0
  71. package/commonjs/xlsx/parseFilePaths.js +48 -47
  72. package/commonjs/xlsx/parseFilePaths.js.map +1 -1
  73. package/commonjs/xlsx/parseSharedStrings.js +91 -36
  74. package/commonjs/xlsx/parseSharedStrings.js.map +1 -1
  75. package/commonjs/xlsx/parseSheet.js +527 -69
  76. package/commonjs/xlsx/parseSheet.js.map +1 -1
  77. package/commonjs/xlsx/parseSpreadsheetContents.js +154 -83
  78. package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
  79. package/commonjs/xlsx/parseSpreadsheetInfo.js +60 -59
  80. package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -1
  81. package/commonjs/xlsx/parseStyles.js +75 -75
  82. package/commonjs/xlsx/parseStyles.js.map +1 -1
  83. package/commonjs/xml/parseXml.js +112 -0
  84. package/commonjs/xml/parseXml.js.map +1 -0
  85. package/commonjs/xml/parseXml.test.js.map +1 -0
  86. package/commonjs/xml/parseXmlStream.js.map +1 -1
  87. package/commonjs/xml/parseXmlStream.sax.js +69 -28
  88. package/commonjs/xml/parseXmlStream.sax.js.map +1 -1
  89. package/commonjs/xml/parseXmlStream.saxen.js +66 -40
  90. package/commonjs/xml/parseXmlStream.saxen.js.map +1 -1
  91. package/commonjs/zip/UnzipError.js +55 -0
  92. package/commonjs/zip/UnzipError.js.map +1 -0
  93. package/commonjs/zip/unzipFromArrayBuffer.js +21 -1
  94. package/commonjs/zip/unzipFromArrayBuffer.js.map +1 -1
  95. package/commonjs/zip/unzipFromArrayBuffer.test.js.map +1 -0
  96. package/commonjs/zip/unzipFromStream.fflate.js +43 -35
  97. package/commonjs/zip/unzipFromStream.fflate.js.map +1 -1
  98. package/commonjs/zip/unzipFromStream.js +188 -6
  99. package/commonjs/zip/unzipFromStream.js.map +1 -1
  100. package/commonjs/zip/unzipFromStream.unzipper.js +19 -34
  101. package/commonjs/zip/unzipFromStream.unzipper.js.map +1 -1
  102. package/modules/export/convertInputToNodeStream.js +0 -12
  103. package/modules/export/convertInputToNodeStream.js.map +1 -1
  104. package/modules/export/parseSheet.js +13 -6
  105. package/modules/export/parseSheet.js.map +1 -1
  106. package/modules/export/readSheetBrowser.js +3 -5
  107. package/modules/export/readSheetBrowser.js.map +1 -1
  108. package/modules/export/readSheetNode.js +3 -5
  109. package/modules/export/readSheetNode.js.map +1 -1
  110. package/modules/export/readSheetUniversal.js +2 -2
  111. package/modules/export/readSheetUniversal.js.map +1 -1
  112. package/modules/export/readSheetWebWorker.js +7 -8
  113. package/modules/export/readSheetWebWorker.js.map +1 -1
  114. package/modules/export/readXlsxFileBrowser.js +3 -5
  115. package/modules/export/readXlsxFileBrowser.js.map +1 -1
  116. package/modules/export/readXlsxFileNode.js +3 -5
  117. package/modules/export/readXlsxFileNode.js.map +1 -1
  118. package/modules/export/readXlsxFileUniversal.js +2 -2
  119. package/modules/export/readXlsxFileUniversal.js.map +1 -1
  120. package/modules/export/readXlsxFileWebWorker.js +7 -8
  121. package/modules/export/readXlsxFileWebWorker.js.map +1 -1
  122. package/modules/export/unpackXlsxFileBrowser.js +15 -4
  123. package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
  124. package/modules/export/unpackXlsxFileBrowser.test.js.map +1 -0
  125. package/modules/export/unpackXlsxFileNode.js +32 -5
  126. package/modules/export/unpackXlsxFileNode.js.map +1 -1
  127. package/modules/export/unpackXlsxFileNode.test.js.map +1 -0
  128. package/modules/export/unpackXlsxFileUniversal.js +14 -3
  129. package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
  130. package/modules/export/unpackXlsxFileUniversal.test.js.map +1 -0
  131. package/modules/parseSheetData/parseSheetData.js +9 -6
  132. package/modules/parseSheetData/parseSheetData.js.map +1 -1
  133. package/modules/saxen/parser.js +1 -1
  134. package/modules/saxen/parser.js.map +1 -1
  135. package/modules/utility/convertValuesFromUint8ArraysToStrings.js +92 -0
  136. package/modules/utility/convertValuesFromUint8ArraysToStrings.js.map +1 -0
  137. package/modules/xlsx/InvalidSpreadsheetError.js +50 -0
  138. package/modules/xlsx/InvalidSpreadsheetError.js.map +1 -0
  139. package/modules/xlsx/SheetNotFoundError.js +50 -0
  140. package/modules/xlsx/SheetNotFoundError.js.map +1 -0
  141. package/modules/xlsx/file/InputValidationStream.js +96 -0
  142. package/modules/xlsx/file/InputValidationStream.js.map +1 -0
  143. package/modules/xlsx/file/InputValidationStream.test.js.map +1 -0
  144. package/modules/xlsx/file/InvalidInputError.js +100 -0
  145. package/modules/xlsx/file/InvalidInputError.js.map +1 -0
  146. package/modules/xlsx/file/createFileTypeDetector.js +63 -0
  147. package/modules/xlsx/file/createFileTypeDetector.js.map +1 -0
  148. package/modules/xlsx/file/createFileTypeDetector.test.js.map +1 -0
  149. package/modules/xlsx/file/validateLeadingBytes.js +37 -0
  150. package/modules/xlsx/file/validateLeadingBytes.js.map +1 -0
  151. package/modules/xlsx/file/validateLeadingBytes.test.js.map +1 -0
  152. package/modules/xlsx/isDateFormat.js +31 -27
  153. package/modules/xlsx/isDateFormat.js.map +1 -1
  154. package/modules/xlsx/isDateFormatStyle.js +18 -21
  155. package/modules/xlsx/isDateFormatStyle.js.map +1 -1
  156. package/modules/xlsx/parseCell.js +251 -111
  157. package/modules/xlsx/parseCell.js.map +1 -1
  158. package/modules/xlsx/parseCellAddress.js +21 -18
  159. package/modules/xlsx/parseCellAddress.js.map +1 -1
  160. package/modules/xlsx/parseExcelDate.js +4 -124
  161. package/modules/xlsx/parseExcelDate.js.map +1 -1
  162. package/modules/xlsx/parseExcelDate.test.js.map +1 -1
  163. package/modules/xlsx/parseExcelTimestamp.js +133 -0
  164. package/modules/xlsx/parseExcelTimestamp.js.map +1 -0
  165. package/modules/xlsx/parseFilePaths.js +48 -47
  166. package/modules/xlsx/parseFilePaths.js.map +1 -1
  167. package/modules/xlsx/parseSharedStrings.js +91 -37
  168. package/modules/xlsx/parseSharedStrings.js.map +1 -1
  169. package/modules/xlsx/parseSheet.js +526 -68
  170. package/modules/xlsx/parseSheet.js.map +1 -1
  171. package/modules/xlsx/parseSpreadsheetContents.js +153 -81
  172. package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
  173. package/modules/xlsx/parseSpreadsheetInfo.js +60 -59
  174. package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -1
  175. package/modules/xlsx/parseStyles.js +75 -75
  176. package/modules/xlsx/parseStyles.js.map +1 -1
  177. package/modules/xml/parseXml.js +106 -0
  178. package/modules/xml/parseXml.js.map +1 -0
  179. package/modules/xml/parseXml.test.js.map +1 -0
  180. package/modules/xml/parseXmlStream.js +2 -0
  181. package/modules/xml/parseXmlStream.js.map +1 -1
  182. package/modules/xml/parseXmlStream.sax.js +69 -28
  183. package/modules/xml/parseXmlStream.sax.js.map +1 -1
  184. package/modules/xml/parseXmlStream.saxen.js +67 -40
  185. package/modules/xml/parseXmlStream.saxen.js.map +1 -1
  186. package/modules/zip/UnzipError.js +49 -0
  187. package/modules/zip/UnzipError.js.map +1 -0
  188. package/modules/zip/unzipFromArrayBuffer.js +21 -1
  189. package/modules/zip/unzipFromArrayBuffer.js.map +1 -1
  190. package/modules/zip/unzipFromArrayBuffer.test.js.map +1 -0
  191. package/modules/zip/unzipFromStream.fflate.js +41 -35
  192. package/modules/zip/unzipFromStream.fflate.js.map +1 -1
  193. package/modules/zip/unzipFromStream.js +124 -1
  194. package/modules/zip/unzipFromStream.js.map +1 -1
  195. package/modules/zip/unzipFromStream.unzipper.js +19 -35
  196. package/modules/zip/unzipFromStream.unzipper.js.map +1 -1
  197. package/node/index.cjs +3 -0
  198. package/node/index.d.ts +16 -0
  199. package/node/index.js +3 -0
  200. package/package.json +5 -3
  201. package/types/InvalidInputError.d.ts +16 -0
  202. package/types/InvalidSpreadsheetError.d.ts +4 -0
  203. package/types/SheetNotFoundError.d.ts +4 -0
  204. package/universal/index.cjs +3 -0
  205. package/universal/index.d.ts +16 -0
  206. package/universal/index.js +3 -0
  207. package/web-worker/index.cjs +3 -0
  208. package/web-worker/index.d.ts +16 -0
  209. package/web-worker/index.js +3 -0
  210. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js +0 -23
  211. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js.map +0 -1
  212. package/commonjs/xlsx/convertCellsToData2dArray.js +0 -84
  213. package/commonjs/xlsx/convertCellsToData2dArray.js.map +0 -1
  214. package/commonjs/xlsx/dropEmptyColumns.js +0 -40
  215. package/commonjs/xlsx/dropEmptyColumns.js.map +0 -1
  216. package/commonjs/xlsx/dropEmptyColumns.test.js.map +0 -1
  217. package/commonjs/xlsx/dropEmptyRows.js +0 -43
  218. package/commonjs/xlsx/dropEmptyRows.js.map +0 -1
  219. package/commonjs/xlsx/dropEmptyRows.test.js.map +0 -1
  220. package/commonjs/xlsx/parseCellValue.js +0 -186
  221. package/commonjs/xlsx/parseCellValue.js.map +0 -1
  222. package/commonjs/xlsx/parseNumber.js +0 -20
  223. package/commonjs/xlsx/parseNumber.js.map +0 -1
  224. package/commonjs/xlsx/parseSharedString.js +0 -64
  225. package/commonjs/xlsx/parseSharedString.js.map +0 -1
  226. package/commonjs/xlsx/parseSheetData.js +0 -68
  227. package/commonjs/xlsx/parseSheetData.js.map +0 -1
  228. package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js +0 -29
  229. package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +0 -1
  230. package/commonjs/xml/parseXmlStream.saxen.code.js +0 -953
  231. package/commonjs/xml/parseXmlStream.saxen.code.js.map +0 -1
  232. package/commonjs/xml/parseXmlStream.test.js.map +0 -1
  233. package/modules/export/convertValuesFromUint8ArraysToStrings.js +0 -17
  234. package/modules/export/convertValuesFromUint8ArraysToStrings.js.map +0 -1
  235. package/modules/xlsx/convertCellsToData2dArray.js +0 -77
  236. package/modules/xlsx/convertCellsToData2dArray.js.map +0 -1
  237. package/modules/xlsx/dropEmptyColumns.js +0 -34
  238. package/modules/xlsx/dropEmptyColumns.js.map +0 -1
  239. package/modules/xlsx/dropEmptyColumns.test.js.map +0 -1
  240. package/modules/xlsx/dropEmptyRows.js +0 -37
  241. package/modules/xlsx/dropEmptyRows.js.map +0 -1
  242. package/modules/xlsx/dropEmptyRows.test.js.map +0 -1
  243. package/modules/xlsx/parseCellValue.js +0 -180
  244. package/modules/xlsx/parseCellValue.js.map +0 -1
  245. package/modules/xlsx/parseNumber.js +0 -14
  246. package/modules/xlsx/parseNumber.js.map +0 -1
  247. package/modules/xlsx/parseSharedString.js +0 -55
  248. package/modules/xlsx/parseSharedString.js.map +0 -1
  249. package/modules/xlsx/parseSheetData.js +0 -55
  250. package/modules/xlsx/parseSheetData.js.map +0 -1
  251. package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js +0 -23
  252. package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +0 -1
  253. package/modules/xml/parseXmlStream.saxen.code.js +0 -947
  254. package/modules/xml/parseXmlStream.saxen.code.js.map +0 -1
  255. package/modules/xml/parseXmlStream.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpackXlsxFileBrowser.test.js","names":["_mocha","require","_chai","_InvalidInputError","_interopRequireDefault","_unpackXlsxFileBrowser","obj","__esModule","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","_callee","garbage","thrown","_callee$","_context","Buffer","from","unpackXlsxFileBrowser","getArrayBuffer","t0","expect","to","be","an","InvalidInputError","code","equal","_callee2","fileData","_callee2$","_context2","_callee3","invalidZip","_callee3$","_context3","_callee4","empty","_callee4$","_context4","_callee5","xls","_callee5$","_context5","buffer","byteOffset","byteLength"],"sources":["../../source/export/unpackXlsxFileBrowser.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileBrowser from './unpackXlsxFileBrowser.js'\r\n\r\ndescribe('unpackXlsxFileBrowser', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x99, 0x99])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Returns an exact `ArrayBuffer` from a possibly-\"pooled\" `Buffer`.\r\nfunction getArrayBuffer(buffer) {\r\n\treturn buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\r\n}"],"mappings":"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"}
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = unpackXlsxFile;
8
8
  var _unzipFromStream = _interopRequireDefault(require("../zip/unzipFromStream.js"));
9
+ var _UnzipError = _interopRequireDefault(require("../zip/UnzipError.js"));
10
+ var _InvalidInputError = _interopRequireDefault(require("../xlsx/file/InvalidInputError.js"));
9
11
  var _convertInputToNodeStream = _interopRequireDefault(require("./convertInputToNodeStream.js"));
10
- var _convertValuesFromUint8ArraysToStrings = _interopRequireDefault(require("./convertValuesFromUint8ArraysToStrings.js"));
11
12
  var _filterZipArchiveEntry = _interopRequireDefault(require("./filterZipArchiveEntry.js"));
13
+ var _InputValidationStream = _interopRequireDefault(require("../xlsx/file/InputValidationStream.js"));
12
14
  var _checkpoint = _interopRequireWildcard(require("../utility/checkpoint.js"));
13
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -17,14 +19,39 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
17
19
  * Unpacks `*.xlsx` file contents.
18
20
  * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
19
21
  * @param {(string|Stream|Buffer|Blob)} input
20
- * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
22
+ * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.
21
23
  */
22
24
  function unpackXlsxFile(input) {
23
25
  (0, _checkpoint.resetCheckpoint)();
24
26
  (0, _checkpoint["default"])('unpack files');
25
27
  var stream = (0, _convertInputToNodeStream["default"])(input);
26
- return (0, _unzipFromStream["default"])(stream, {
27
- filter: _filterZipArchiveEntry["default"]
28
- }).then(_convertValuesFromUint8ArraysToStrings["default"]);
28
+ return new Promise(function (resolve, reject) {
29
+ var streamWithInputValidation = stream
30
+ // Because the original `stream` reference is going to be replaced,
31
+ // while it still has that reference here, it should set up a listener
32
+ // to catch errors emitted from the input stream (for example, a file read error).
33
+ //
34
+ // That's because the .pipe() method does not automatically propagate errors
35
+ // from a source (input) stream to the destination stream or the end of the pipeline.
36
+ // You would need to attach an 'error' event handler to each stream in the chain.
37
+ //
38
+ // A more convenient alternative would be to use `stream.pipeline()` function:
39
+ // `pipeline(stream1, stream2, (error) => { ... })`
40
+ //
41
+ .on('error', reject)
42
+ // Pipe the input through file type validation stream.
43
+ // If the file type is invalid, the updated `stream` reference will emit
44
+ // an "error" event, which is going to be caught inside `unzipFromStream_()` function.
45
+ .pipe(new _InputValidationStream["default"]());
46
+ (0, _unzipFromStream["default"])(streamWithInputValidation, {
47
+ filter: _filterZipArchiveEntry["default"]
48
+ }).then(resolve, function (error) {
49
+ if (error instanceof _UnzipError["default"]) {
50
+ reject(new _InvalidInputError["default"]('INVALID_ZIP', error.cause));
51
+ } else {
52
+ reject(error);
53
+ }
54
+ });
55
+ });
29
56
  }
30
57
  //# sourceMappingURL=unpackXlsxFileNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileNode.js","names":["_unzipFromStream","_interopRequireDefault","require","_convertInputToNodeStream","_convertValuesFromUint8ArraysToStrings","_filterZipArchiveEntry","_checkpoint","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","unpackXlsxFile","input","resetCheckpoint","checkpoint","stream","convertInputToNodeStream","unzipFromStream","filter","filterZipArchiveEntry","then","convertValuesFromUint8ArraysToStrings"],"sources":["../../source/export/unpackXlsxFileNode.js"],"sourcesContent":["import unzipFromStream from '../zip/unzipFromStream.js'\r\nimport convertInputToNodeStream from './convertInputToNodeStream.js'\r\nimport convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n resetCheckpoint()\r\n checkpoint('unpack files')\r\n const stream = convertInputToNodeStream(input)\r\n return unzipFromStream(stream, { filter: filterZipArchiveEntry })\r\n .then(convertValuesFromUint8ArraysToStrings)\r\n}"],"mappings":";;;;;;;AAAA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,sCAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,sBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,WAAA,GAAAC,uBAAA,CAAAL,OAAA;AAAsE,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAF,wBAAAM,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAlB,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEtE;AACA;AACA;AACA;AACA;AACA;AACe,SAASiB,cAAcA,CAACC,KAAK,EAAE;EAC5C,IAAAC,2BAAe,EAAC,CAAC;EACjB,IAAAC,sBAAU,EAAC,cAAc,CAAC;EAC1B,IAAMC,MAAM,GAAG,IAAAC,oCAAwB,EAACJ,KAAK,CAAC;EAC9C,OAAO,IAAAK,2BAAe,EAACF,MAAM,EAAE;IAAEG,MAAM,EAAEC;EAAsB,CAAC,CAAC,CAC5DC,IAAI,CAACC,iDAAqC,CAAC;AAClD"}
1
+ {"version":3,"file":"unpackXlsxFileNode.js","names":["_unzipFromStream","_interopRequireDefault","require","_UnzipError","_InvalidInputError","_convertInputToNodeStream","_filterZipArchiveEntry","_InputValidationStream","_checkpoint","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","unpackXlsxFile","input","resetCheckpoint","checkpoint","stream","convertInputToNodeStream","Promise","resolve","reject","streamWithInputValidation","on","pipe","InputValidationStream","unzipFromStream","filter","filterZipArchiveEntry","then","error","UnzipError","InvalidInputError","cause"],"sources":["../../source/export/unpackXlsxFileNode.js"],"sourcesContent":["import unzipFromStream from '../zip/unzipFromStream.js'\r\nimport UnzipError from '../zip/UnzipError.js'\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\nimport convertInputToNodeStream from './convertInputToNodeStream.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\nimport InputValidationStream from '../xlsx/file/InputValidationStream.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n resetCheckpoint()\r\n checkpoint('unpack files')\r\n const stream = convertInputToNodeStream(input)\r\n return new Promise((resolve, reject) => {\r\n const streamWithInputValidation = stream\r\n // Because the original `stream` reference is going to be replaced,\r\n // while it still has that reference here, it should set up a listener\r\n // to catch errors emitted from the input stream (for example, a file read error).\r\n //\r\n // That's because the .pipe() method does not automatically propagate errors\r\n // from a source (input) stream to the destination stream or the end of the pipeline.\r\n // You would need to attach an 'error' event handler to each stream in the chain.\r\n //\r\n // A more convenient alternative would be to use `stream.pipeline()` function:\r\n // `pipeline(stream1, stream2, (error) => { ... })`\r\n //\r\n .on('error', reject)\r\n // Pipe the input through file type validation stream.\r\n // If the file type is invalid, the updated `stream` reference will emit\r\n // an \"error\" event, which is going to be caught inside `unzipFromStream_()` function.\r\n .pipe(new InputValidationStream())\r\n\r\n unzipFromStream(streamWithInputValidation, { filter: filterZipArchiveEntry })\r\n .then(\r\n resolve,\r\n (error) => {\r\n if (error instanceof UnzipError) {\r\n reject(new InvalidInputError('INVALID_ZIP', error.cause))\r\n } else {\r\n reject(error)\r\n }\r\n }\r\n )\r\n })\r\n}"],"mappings":";;;;;;;AAAA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,yBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,sBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,sBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,IAAAM,WAAA,GAAAC,uBAAA,CAAAP,OAAA;AAAsE,SAAAQ,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAF,wBAAAM,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAApB,uBAAAc,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEtE;AACA;AACA;AACA;AACA;AACA;AACe,SAASiB,cAAcA,CAACC,KAAK,EAAE;EAC5C,IAAAC,2BAAe,EAAC,CAAC;EACjB,IAAAC,sBAAU,EAAC,cAAc,CAAC;EAC1B,IAAMC,MAAM,GAAG,IAAAC,oCAAwB,EAACJ,KAAK,CAAC;EAC9C,OAAO,IAAIK,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtC,IAAMC,yBAAyB,GAAGL;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAAA,CACCM,EAAE,CAAC,OAAO,EAAEF,MAAM;IACnB;IACA;IACA;IAAA,CACCG,IAAI,CAAC,IAAIC,iCAAqB,CAAC,CAAC,CAAC;IAEpC,IAAAC,2BAAe,EAACJ,yBAAyB,EAAE;MAAEK,MAAM,EAAEC;IAAsB,CAAC,CAAC,CAC1EC,IAAI,CACHT,OAAO,EACP,UAACU,KAAK,EAAK;MACT,IAAIA,KAAK,YAAYC,sBAAU,EAAE;QAC/BV,MAAM,CAAC,IAAIW,6BAAiB,CAAC,aAAa,EAAEF,KAAK,CAACG,KAAK,CAAC,CAAC;MAC3D,CAAC,MAAM;QACLZ,MAAM,CAACS,KAAK,CAAC;MACf;IACF,CACF,CAAC;EACL,CAAC,CAAC;AACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpackXlsxFileNode.test.js","names":["_mocha","require","_chai","_nodeStream","_InvalidInputError","_interopRequireDefault","_unpackXlsxFileNode","obj","__esModule","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","_callee","garbage","thrown","_callee$","_context","Buffer","from","unpackXlsxFileNode","createStreamFromBuffer","t0","expect","to","be","an","InvalidInputError","code","equal","_callee2","_callee2$","_context2","chunkSize","_callee3","fileData","_callee3$","_context3","_callee4","_callee4$","_context4","_callee5","invalidZip","_callee5$","_context5","_callee6","empty","_callee6$","_context6","_callee7","xls","_callee7$","_context7","_callee8","_callee8$","_context8","buffer","_ref9","_ref9$chunkSize","chunks","subarray","Readable","alloc"],"sources":["../../source/export/unpackXlsxFileNode.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport { Readable } from 'node:stream'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileNode from './unpackXlsxFileNode.js'\r\n\r\ndescribe('unpackXlsxFileNode', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should reject on invalid (non-zip) data (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(garbage, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(fileData, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\t// Breakdown of the Structure\r\n\t\t// * Signature (50 4B 03 04): The correct first 4 bytes for a local ZIP file header (\"PK\\x03\\x04\").\r\n\t\t// * Version & Flags (14 00 00 00): Minimum version needed to extract and general purpose flags.\r\n\t\t// * Compression Method (08 00): Set to 8 (deflated).\r\n\t\t// * CRC-32 & Sizes (00 00 00 00 ...): Placeholders for data sizes and checksum.\r\n\t\t// * File Name Length (05 00): Name length set to 5 bytes.\r\n\t\t// * Extra Field Length (00 00): No extra fields.\r\n\t\t// * File Name (61 2E 74 78 75): Encodes the filename \"a.txu\".\r\n\t\t// * Corrupt Data Body (6E 6D 61 74): Invalid or truncated compressed stream payload that fails decompression and triggers an extraction error.\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x03, 0x04, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x61, 0x2E, 0x74, 0x78, 0x75, 0x6E, 0x6D, 0x61, 0x74])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\r\n\t\t// It looks like `fflate`'s `Unzip` doesn't ever complain about whatever data is thrown at it.\r\n\t\t// Due to how `.zip` file format is defined, \"garbage\" data could be placed at various\r\n\t\t// places in it and it'd still be a valid `.zip` archive. It's likely that for this reason\r\n\t\t// `fflate` doesn't ever complain and simply emits no entries when fed any kind of invalid data.\r\n\t\t//\r\n\t\t// So in case of using `unzipFromStream.fflate.js`, `thrown` will be `undefined`.\r\n\t\t// But it won't be `undefined` in case of using `unzipFromStream.unzipper.js`.\r\n\t\t//\r\n\t\tif (thrown) {\r\n\t\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t\t}\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(xls, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Creates a Node.js Stream from a given `buffer` containing the data.\r\n// The stream will split the data into `chunkSize`-byte chunks.\r\n// (this is used to exercise reading across arbitrary chunk boundaries)\r\nfunction createStreamFromBuffer(buffer, { chunkSize = buffer.length } = {}) {\r\n\tconst chunks = []\r\n\tfor (let i = 0; i < buffer.length; i += chunkSize) {\r\n\t\tchunks.push(buffer.subarray(i, i + chunkSize))\r\n\t}\r\n\treturn Readable.from(chunks.length > 0 ? chunks : [Buffer.alloc(0)])\r\n}\r\n"],"mappings":"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"}
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = unpackXlsxFile;
8
8
  var _unzipFromArrayBuffer = _interopRequireDefault(require("../zip/unzipFromArrayBuffer.js"));
9
- var _convertValuesFromUint8ArraysToStrings = _interopRequireDefault(require("./convertValuesFromUint8ArraysToStrings.js"));
9
+ var _UnzipError = _interopRequireDefault(require("../zip/UnzipError.js"));
10
+ var _InvalidInputError = _interopRequireDefault(require("../xlsx/file/InvalidInputError.js"));
10
11
  var _filterZipArchiveEntry = _interopRequireDefault(require("./filterZipArchiveEntry.js"));
12
+ var _validateLeadingBytes = _interopRequireDefault(require("../xlsx/file/validateLeadingBytes.js"));
11
13
  var _checkpoint = _interopRequireWildcard(require("../utility/checkpoint.js"));
12
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -16,16 +18,25 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
16
18
  * Unpacks `*.xlsx` file contents.
17
19
  * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
18
20
  * @param {(Blob|ArrayBuffer)} input
19
- * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
21
+ * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.
20
22
  */
21
23
  function unpackXlsxFile(input) {
22
24
  (0, _checkpoint.resetCheckpoint)();
23
25
  (0, _checkpoint["default"])('unpack files');
24
26
  return getArrayBuffer(input).then(function (arrayBuffer) {
27
+ (0, _validateLeadingBytes["default"])(new Uint8Array(arrayBuffer));
25
28
  return (0, _unzipFromArrayBuffer["default"])(arrayBuffer, {
26
29
  filter: _filterZipArchiveEntry["default"]
30
+ }).then(function (result) {
31
+ return result;
32
+ }, function (error) {
33
+ if (error instanceof _UnzipError["default"]) {
34
+ throw new _InvalidInputError["default"]('INVALID_ZIP', error.cause);
35
+ } else {
36
+ throw error;
37
+ }
27
38
  });
28
- }).then(_convertValuesFromUint8ArraysToStrings["default"]);
39
+ });
29
40
  }
30
41
  function getArrayBuffer(input) {
31
42
  if (input instanceof Blob) {
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileUniversal.js","names":["_unzipFromArrayBuffer","_interopRequireDefault","require","_convertValuesFromUint8ArraysToStrings","_filterZipArchiveEntry","_checkpoint","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","unpackXlsxFile","input","resetCheckpoint","checkpoint","getArrayBuffer","then","arrayBuffer","unzipFromArrayBuffer","filter","filterZipArchiveEntry","convertValuesFromUint8ArraysToStrings","Blob","ArrayBuffer","Promise","resolve","TypeError"],"sources":["../../source/export/unpackXlsxFileUniversal.js"],"sourcesContent":["import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js'\r\nimport convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n\tresetCheckpoint()\r\n\tcheckpoint('unpack files')\r\n\treturn getArrayBuffer(input)\r\n\t\t.then(arrayBuffer => unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry }))\r\n\t\t.then(convertValuesFromUint8ArraysToStrings)\r\n}\r\n\r\nfunction getArrayBuffer(input) {\r\n\tif (input instanceof Blob) {\r\n\t\treturn input.arrayBuffer()\r\n\t}\r\n\tif (input instanceof ArrayBuffer) {\r\n\t\treturn Promise.resolve(input)\r\n\t}\r\n\tthrow new TypeError('Unuspported input. Expected a `Blob` or an `ArrayBuffer`')\r\n}"],"mappings":";;;;;;;AAAA,IAAAA,qBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sCAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,sBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,WAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAAsE,SAAAK,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAF,wBAAAM,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAjB,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEtE;AACA;AACA;AACA;AACA;AACA;AACe,SAASiB,cAAcA,CAACC,KAAK,EAAE;EAC7C,IAAAC,2BAAe,EAAC,CAAC;EACjB,IAAAC,sBAAU,EAAC,cAAc,CAAC;EAC1B,OAAOC,cAAc,CAACH,KAAK,CAAC,CAC1BI,IAAI,CAAC,UAAAC,WAAW;IAAA,OAAI,IAAAC,gCAAoB,EAACD,WAAW,EAAE;MAAEE,MAAM,EAAEC;IAAsB,CAAC,CAAC;EAAA,EAAC,CACzFJ,IAAI,CAACK,iDAAqC,CAAC;AAC9C;AAEA,SAASN,cAAcA,CAACH,KAAK,EAAE;EAC9B,IAAIA,KAAK,YAAYU,IAAI,EAAE;IAC1B,OAAOV,KAAK,CAACK,WAAW,CAAC,CAAC;EAC3B;EACA,IAAIL,KAAK,YAAYW,WAAW,EAAE;IACjC,OAAOC,OAAO,CAACC,OAAO,CAACb,KAAK,CAAC;EAC9B;EACA,MAAM,IAAIc,SAAS,CAAC,0DAA0D,CAAC;AAChF"}
1
+ {"version":3,"file":"unpackXlsxFileUniversal.js","names":["_unzipFromArrayBuffer","_interopRequireDefault","require","_UnzipError","_InvalidInputError","_filterZipArchiveEntry","_validateLeadingBytes","_checkpoint","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","unpackXlsxFile","input","resetCheckpoint","checkpoint","getArrayBuffer","then","arrayBuffer","validateLeadingBytes","Uint8Array","unzipFromArrayBuffer","filter","filterZipArchiveEntry","result","error","UnzipError","InvalidInputError","cause","Blob","ArrayBuffer","Promise","resolve","TypeError"],"sources":["../../source/export/unpackXlsxFileUniversal.js"],"sourcesContent":["import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js'\r\nimport UnzipError from '../zip/UnzipError.js'\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\nimport validateLeadingBytes from '../xlsx/file/validateLeadingBytes.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n\tresetCheckpoint()\r\n\tcheckpoint('unpack files')\r\n\treturn getArrayBuffer(input).then((arrayBuffer) => {\r\n\t\tvalidateLeadingBytes(new Uint8Array(arrayBuffer))\r\n\t\treturn unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry })\r\n\t\t\t.then(\r\n\t\t\t\tresult => result,\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tif (error instanceof UnzipError) {\r\n\t\t\t\t\t\tthrow new InvalidInputError('INVALID_ZIP', error.cause)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow error\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t})\r\n}\r\n\r\nfunction getArrayBuffer(input) {\r\n\tif (input instanceof Blob) {\r\n\t\treturn input.arrayBuffer()\r\n\t}\r\n\tif (input instanceof ArrayBuffer) {\r\n\t\treturn Promise.resolve(input)\r\n\t}\r\n\tthrow new TypeError('Unuspported input. Expected a `Blob` or an `ArrayBuffer`')\r\n}"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpackXlsxFileUniversal.test.js","names":["_mocha","require","_chai","_InvalidInputError","_interopRequireDefault","_unpackXlsxFileUniversal","obj","__esModule","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","_callee","garbage","thrown","_callee$","_context","Buffer","from","unpackXlsxFileUniversal","getArrayBuffer","t0","expect","to","be","an","InvalidInputError","code","equal","_callee2","fileData","_callee2$","_context2","_callee3","invalidZip","_callee3$","_context3","_callee4","empty","_callee4$","_context4","_callee5","xls","_callee5$","_context5","buffer","byteOffset","byteLength"],"sources":["../../source/export/unpackXlsxFileUniversal.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileUniversal from './unpackXlsxFileUniversal.js'\r\n\r\ndescribe('unpackXlsxFileUniversal', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x99, 0x99])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Returns an exact `ArrayBuffer` from a possibly-\"pooled\" `Buffer`.\r\nfunction getArrayBuffer(buffer) {\r\n\treturn buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\r\n}"],"mappings":"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"}
@@ -30,6 +30,9 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
30
30
  function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
31
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
32
32
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
33
+ // An empty cell has `null` value.
34
+ var EMPTY_CELL_VALUE = null;
35
+
33
36
  /**
34
37
  * Converts spreadsheet-alike data structure into an array of JSON objects.
35
38
  *
@@ -302,7 +305,7 @@ function parseCellValue(cellValue, schemaEntry, options) {
302
305
  isEmptyValue: true
303
306
  };
304
307
  }
305
- if (cellValue === null) {
308
+ if (cellValue === EMPTY_CELL_VALUE) {
306
309
  return {
307
310
  value: options.propertyValueWhenCellIsEmpty,
308
311
  isEmptyValue: true
@@ -383,9 +386,9 @@ function parseArrayValue(value, schemaEntry, options) {
383
386
  */
384
387
  function parseValue(value, schemaEntry, options) {
385
388
  // `null` values (i.e. empty cells) don't get parsed.
386
- if (value === null) {
389
+ if (value === EMPTY_CELL_VALUE) {
387
390
  return {
388
- value: null,
391
+ value: value,
389
392
  isEmptyValue: true
390
393
  };
391
394
  }
@@ -416,9 +419,9 @@ function parseValue(value, schemaEntry, options) {
416
419
  }
417
420
 
418
421
  // If the parsed value is empty, return it.
419
- if (value === null) {
422
+ if (value === EMPTY_CELL_VALUE) {
420
423
  return {
421
- value: null,
424
+ value: value,
422
425
  isEmptyValue: true
423
426
  };
424
427
  }
@@ -497,7 +500,7 @@ function parseValueUsingTypeParser(value, type) {
497
500
  // Returning `undefined` from a `type` parser is treated as returning `null`.
498
501
  if (parsedValue === undefined) {
499
502
  return {
500
- value: null
503
+ value: EMPTY_CELL_VALUE
501
504
  };
502
505
  }
503
506
  return {