read-excel-file 9.2.0 → 9.3.1

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 (205) hide show
  1. package/.gitlab-ci.yml +1 -1
  2. package/CHANGELOG.md +5 -0
  3. package/README.md +153 -50
  4. package/bundle/read-excel-file.min.js +1 -1
  5. package/bundle/read-excel-file.min.js.map +1 -1
  6. package/bundle/read-excel-file.min.old.js +2 -0
  7. package/bundle/read-excel-file.min.old.js.map +1 -0
  8. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js +3 -0
  9. package/commonjs/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
  10. package/commonjs/export/parseSheet.js +12 -9
  11. package/commonjs/export/parseSheet.js.map +1 -1
  12. package/commonjs/export/readSheetBrowser.js +6 -2
  13. package/commonjs/export/readSheetBrowser.js.map +1 -1
  14. package/commonjs/export/readSheetNode.js +6 -2
  15. package/commonjs/export/readSheetNode.js.map +1 -1
  16. package/commonjs/export/readSheetUniversal.js +14 -2
  17. package/commonjs/export/readSheetUniversal.js.map +1 -1
  18. package/commonjs/export/readSheetWebWorker.js +12 -2
  19. package/commonjs/export/readSheetWebWorker.js.map +1 -1
  20. package/commonjs/export/readXlsxFileBrowser.js +6 -2
  21. package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
  22. package/commonjs/export/readXlsxFileNode.js +6 -2
  23. package/commonjs/export/readXlsxFileNode.js.map +1 -1
  24. package/commonjs/export/readXlsxFileUniversal.js +14 -2
  25. package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
  26. package/commonjs/export/readXlsxFileWebWorker.js +12 -2
  27. package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
  28. package/commonjs/export/unpackXlsxFileBrowser.js +29 -6
  29. package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
  30. package/commonjs/export/unpackXlsxFileNode.js +6 -0
  31. package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
  32. package/commonjs/export/unpackXlsxFileUniversal.js +6 -0
  33. package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
  34. package/commonjs/export/unpackXlsxFileWebWorker.js +14 -0
  35. package/commonjs/export/unpackXlsxFileWebWorker.js.map +1 -0
  36. package/commonjs/parseSheetData/parseSheetData.js +6 -6
  37. package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
  38. package/commonjs/utility/checkpoint.js +33 -0
  39. package/commonjs/utility/checkpoint.js.map +1 -0
  40. package/commonjs/utility/isObject.js +15 -0
  41. package/commonjs/utility/isObject.js.map +1 -0
  42. package/commonjs/utility/isPromise.js +18 -0
  43. package/commonjs/utility/isPromise.js.map +1 -0
  44. package/commonjs/xlsx/convertCellsToData2dArray.js +0 -3
  45. package/commonjs/xlsx/convertCellsToData2dArray.js.map +1 -1
  46. package/commonjs/xlsx/isDateFormatStyle.js +2 -2
  47. package/commonjs/xlsx/isDateFormatStyle.js.map +1 -1
  48. package/commonjs/xlsx/parseCell.js +89 -24
  49. package/commonjs/xlsx/parseCell.js.map +1 -1
  50. package/{modules/xlsx/parseCellCoordinates.js → commonjs/xlsx/parseCellAddress.js} +18 -7
  51. package/commonjs/xlsx/parseCellAddress.js.map +1 -0
  52. package/commonjs/xlsx/parseCellValue.js +7 -23
  53. package/commonjs/xlsx/parseCellValue.js.map +1 -1
  54. package/commonjs/xlsx/parseFilePaths.js +31 -32
  55. package/commonjs/xlsx/parseFilePaths.js.map +1 -1
  56. package/commonjs/xlsx/parseNumber.js +20 -0
  57. package/commonjs/xlsx/parseNumber.js.map +1 -0
  58. package/commonjs/xlsx/parseSharedString.js +64 -0
  59. package/commonjs/xlsx/parseSharedString.js.map +1 -0
  60. package/commonjs/xlsx/parseSharedStrings.js +45 -5
  61. package/commonjs/xlsx/parseSharedStrings.js.map +1 -1
  62. package/commonjs/xlsx/parseSheet.js +93 -9
  63. package/commonjs/xlsx/parseSheet.js.map +1 -1
  64. package/commonjs/xlsx/parseSheetData.js +68 -0
  65. package/commonjs/xlsx/parseSheetData.js.map +1 -0
  66. package/commonjs/xlsx/parseSpreadsheetContents.js +244 -43
  67. package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
  68. package/commonjs/xlsx/parseSpreadsheetInfo.js +67 -36
  69. package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -1
  70. package/commonjs/xlsx/parseStyles.js +89 -36
  71. package/commonjs/xlsx/parseStyles.js.map +1 -1
  72. package/commonjs/xml/dom.js +2 -1
  73. package/commonjs/xml/dom.js.map +1 -1
  74. package/commonjs/xml/parseXmlStream.js +14 -0
  75. package/commonjs/xml/parseXmlStream.js.map +1 -0
  76. package/commonjs/xml/parseXmlStream.sax.js +109 -0
  77. package/commonjs/xml/parseXmlStream.sax.js.map +1 -0
  78. package/commonjs/xml/parseXmlStream.saxen.code.js +953 -0
  79. package/commonjs/xml/parseXmlStream.saxen.code.js.map +1 -0
  80. package/commonjs/xml/parseXmlStream.saxen.js +85 -0
  81. package/commonjs/xml/parseXmlStream.saxen.js.map +1 -0
  82. package/commonjs/xml/xlsx.js +75 -40
  83. package/commonjs/xml/xlsx.js.map +1 -1
  84. package/commonjs/zip/unzipFromArrayBuffer.js +5 -14
  85. package/commonjs/zip/unzipFromArrayBuffer.js.map +1 -1
  86. package/commonjs/zip/unzipFromStream.fflate.js +154 -25
  87. package/commonjs/zip/unzipFromStream.fflate.js.map +1 -1
  88. package/commonjs/zip/unzipFromStream.js.map +1 -1
  89. package/commonjs/zip/unzipFromStream.unzipper.js +37 -26
  90. package/commonjs/zip/unzipFromStream.unzipper.js.map +1 -1
  91. package/modules/export/convertValuesFromUint8ArraysToStrings.js +2 -0
  92. package/modules/export/convertValuesFromUint8ArraysToStrings.js.map +1 -1
  93. package/modules/export/parseSheet.js +12 -9
  94. package/modules/export/parseSheet.js.map +1 -1
  95. package/modules/export/readSheetBrowser.js +5 -2
  96. package/modules/export/readSheetBrowser.js.map +1 -1
  97. package/modules/export/readSheetNode.js +5 -2
  98. package/modules/export/readSheetNode.js.map +1 -1
  99. package/modules/export/readSheetUniversal.js +14 -2
  100. package/modules/export/readSheetUniversal.js.map +1 -1
  101. package/modules/export/readSheetWebWorker.js +12 -2
  102. package/modules/export/readSheetWebWorker.js.map +1 -1
  103. package/modules/export/readXlsxFileBrowser.js +5 -2
  104. package/modules/export/readXlsxFileBrowser.js.map +1 -1
  105. package/modules/export/readXlsxFileNode.js +5 -2
  106. package/modules/export/readXlsxFileNode.js.map +1 -1
  107. package/modules/export/readXlsxFileUniversal.js +14 -2
  108. package/modules/export/readXlsxFileUniversal.js.map +1 -1
  109. package/modules/export/readXlsxFileWebWorker.js +12 -2
  110. package/modules/export/readXlsxFileWebWorker.js.map +1 -1
  111. package/modules/export/unpackXlsxFileBrowser.js +26 -6
  112. package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
  113. package/modules/export/unpackXlsxFileNode.js +3 -0
  114. package/modules/export/unpackXlsxFileNode.js.map +1 -1
  115. package/modules/export/unpackXlsxFileUniversal.js +3 -0
  116. package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
  117. package/modules/export/unpackXlsxFileWebWorker.js +6 -0
  118. package/modules/export/unpackXlsxFileWebWorker.js.map +1 -0
  119. package/modules/parseSheetData/parseSheetData.js +4 -4
  120. package/modules/parseSheetData/parseSheetData.js.map +1 -1
  121. package/modules/utility/checkpoint.js +25 -0
  122. package/modules/utility/checkpoint.js.map +1 -0
  123. package/modules/utility/isObject.js +9 -0
  124. package/modules/utility/isObject.js.map +1 -0
  125. package/modules/utility/isPromise.js +12 -0
  126. package/modules/utility/isPromise.js.map +1 -0
  127. package/modules/xlsx/convertCellsToData2dArray.js +0 -3
  128. package/modules/xlsx/convertCellsToData2dArray.js.map +1 -1
  129. package/modules/xlsx/isDateFormatStyle.js +2 -2
  130. package/modules/xlsx/isDateFormatStyle.js.map +1 -1
  131. package/modules/xlsx/parseCell.js +85 -24
  132. package/modules/xlsx/parseCell.js.map +1 -1
  133. package/{commonjs/xlsx/parseCellCoordinates.js → modules/xlsx/parseCellAddress.js} +12 -13
  134. package/modules/xlsx/parseCellAddress.js.map +1 -0
  135. package/modules/xlsx/parseCellValue.js +7 -23
  136. package/modules/xlsx/parseCellValue.js.map +1 -1
  137. package/modules/xlsx/parseFilePaths.js +31 -33
  138. package/modules/xlsx/parseFilePaths.js.map +1 -1
  139. package/modules/xlsx/parseNumber.js +14 -0
  140. package/modules/xlsx/parseNumber.js.map +1 -0
  141. package/modules/xlsx/parseSharedString.js +55 -0
  142. package/modules/xlsx/parseSharedString.js.map +1 -0
  143. package/modules/xlsx/parseSharedStrings.js +46 -5
  144. package/modules/xlsx/parseSharedStrings.js.map +1 -1
  145. package/modules/xlsx/parseSheet.js +91 -9
  146. package/modules/xlsx/parseSheet.js.map +1 -1
  147. package/modules/xlsx/parseSheetData.js +55 -0
  148. package/modules/xlsx/parseSheetData.js.map +1 -0
  149. package/modules/xlsx/parseSpreadsheetContents.js +242 -43
  150. package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
  151. package/modules/xlsx/parseSpreadsheetInfo.js +67 -37
  152. package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -1
  153. package/modules/xlsx/parseStyles.js +88 -36
  154. package/modules/xlsx/parseStyles.js.map +1 -1
  155. package/modules/xml/dom.js +2 -1
  156. package/modules/xml/dom.js.map +1 -1
  157. package/modules/xml/parseXmlStream.js +18 -0
  158. package/modules/xml/parseXmlStream.js.map +1 -0
  159. package/modules/xml/parseXmlStream.sax.js +103 -0
  160. package/modules/xml/parseXmlStream.sax.js.map +1 -0
  161. package/modules/xml/parseXmlStream.saxen.code.js +947 -0
  162. package/modules/xml/parseXmlStream.saxen.code.js.map +1 -0
  163. package/modules/xml/parseXmlStream.saxen.js +79 -0
  164. package/modules/xml/parseXmlStream.saxen.js.map +1 -0
  165. package/modules/xml/xlsx.js +72 -36
  166. package/modules/xml/xlsx.js.map +1 -1
  167. package/modules/zip/unzipFromArrayBuffer.js +5 -14
  168. package/modules/zip/unzipFromArrayBuffer.js.map +1 -1
  169. package/modules/zip/unzipFromStream.fflate.js +157 -24
  170. package/modules/zip/unzipFromStream.fflate.js.map +1 -1
  171. package/modules/zip/unzipFromStream.js +56 -2
  172. package/modules/zip/unzipFromStream.js.map +1 -1
  173. package/modules/zip/unzipFromStream.unzipper.js +38 -26
  174. package/modules/zip/unzipFromStream.unzipper.js.map +1 -1
  175. package/package.json +4 -6
  176. package/commonjs/xlsx/parseCellCoordinates.js.map +0 -1
  177. package/commonjs/xlsx/parseCells.js +0 -34
  178. package/commonjs/xlsx/parseCells.js.map +0 -1
  179. package/commonjs/xlsx/parseSheetDimensions.js +0 -43
  180. package/commonjs/xlsx/parseSheetDimensions.js.map +0 -1
  181. package/commonjs/xml/xml.js +0 -13
  182. package/commonjs/xml/xml.js.map +0 -1
  183. package/commonjs/xml/xmlBrowser.js +0 -17
  184. package/commonjs/xml/xmlBrowser.js.map +0 -1
  185. package/commonjs/xml/xpath/xlsx-xpath.js +0 -92
  186. package/commonjs/xml/xpath/xlsx-xpath.js.map +0 -1
  187. package/commonjs/xml/xpath/xpathBrowser.js +0 -33
  188. package/commonjs/xml/xpath/xpathBrowser.js.map +0 -1
  189. package/commonjs/xml/xpath/xpathNode.js +0 -16
  190. package/commonjs/xml/xpath/xpathNode.js.map +0 -1
  191. package/modules/xlsx/parseCellCoordinates.js.map +0 -1
  192. package/modules/xlsx/parseCells.js +0 -27
  193. package/modules/xlsx/parseCells.js.map +0 -1
  194. package/modules/xlsx/parseSheetDimensions.js +0 -37
  195. package/modules/xlsx/parseSheetDimensions.js.map +0 -1
  196. package/modules/xml/xml.js +0 -7
  197. package/modules/xml/xml.js.map +0 -1
  198. package/modules/xml/xmlBrowser.js +0 -11
  199. package/modules/xml/xmlBrowser.js.map +0 -1
  200. package/modules/xml/xpath/xlsx-xpath.js +0 -73
  201. package/modules/xml/xpath/xlsx-xpath.js.map +0 -1
  202. package/modules/xml/xpath/xpathBrowser.js +0 -27
  203. package/modules/xml/xpath/xpathBrowser.js.map +0 -1
  204. package/modules/xml/xpath/xpathNode.js +0 -9
  205. package/modules/xml/xpath/xpathNode.js.map +0 -1
@@ -1,6 +1,9 @@
1
- import xml from '../xml/xmlBrowser.js';
1
+ // import createWorkerFunction from 'worker-f/browser'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileBrowser.js';
3
5
  import parseSheet from './parseSheet.js';
6
+ var createWorkerFunction = undefined;
4
7
 
5
8
  /**
6
9
  * Reads a single sheet from an `.xlsx` file.
@@ -17,7 +20,7 @@ export default function readSheet(input, sheet, options) {
17
20
  sheet = undefined;
18
21
  }
19
22
  return unpackXlsxFile(input).then(function (contents) {
20
- return parseSheet(contents, xml, sheet, options);
23
+ return parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options);
21
24
  });
22
25
  }
23
26
  //# sourceMappingURL=readSheetBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readSheetBrowser.js","names":["xml","unpackXlsxFile","parseSheet","readSheet","input","sheet","options","undefined","then","contents"],"sources":["../../source/export/readSheetBrowser.js"],"sourcesContent":["import xml from '../xml/xmlBrowser.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(contents, xml, sheet, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,sBAAsB;AAEtC,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGE,SAAS;EAClB;EACA,OAAON,cAAc,CAACG,KAAK,CAAC,CAC1BI,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,UAAU,CAACO,QAAQ,EAAET,GAAG,EAAEK,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AAChE"}
1
+ {"version":3,"file":"readSheetBrowser.js","names":["parseXmlStream","unpackXlsxFile","parseSheet","createWorkerFunction","undefined","readSheet","input","sheet","options","then","contents"],"sources":["../../source/export/readSheetBrowser.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/browser'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\n\r\nimport parseSheet from './parseSheet.js'\r\n\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,4BAA4B;AAEvD,OAAOC,UAAU,MAAM,iBAAiB;AAExC,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGH,SAAS;EAClB;EACA,OAAOH,cAAc,CAACK,KAAK,CAAC,CAC1BG,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKR,UAAU,CAACC,oBAAoB,EAAEH,cAAc,EAAEU,QAAQ,EAAEH,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AACjG"}
@@ -1,6 +1,9 @@
1
- import xml from '../xml/xml.js';
1
+ // import createWorkerFunction from 'worker-f/node'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileNode.js';
3
5
  import parseSheet from './parseSheet.js';
6
+ var createWorkerFunction = undefined;
4
7
 
5
8
  /**
6
9
  * Reads a single sheet from an `.xlsx` file.
@@ -17,7 +20,7 @@ export default function readSheet(input, sheet, options) {
17
20
  sheet = undefined;
18
21
  }
19
22
  return unpackXlsxFile(input).then(function (contents) {
20
- return parseSheet(contents, xml, sheet, options);
23
+ return parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options);
21
24
  });
22
25
  }
23
26
  //# sourceMappingURL=readSheetNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readSheetNode.js","names":["xml","unpackXlsxFile","parseSheet","readSheet","input","sheet","options","undefined","then","contents"],"sources":["../../source/export/readSheetNode.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(contents, xml, sheet, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGE,SAAS;EAClB;EACA,OAAON,cAAc,CAACG,KAAK,CAAC,CAC1BI,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,UAAU,CAACO,QAAQ,EAAET,GAAG,EAAEK,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AAChE"}
1
+ {"version":3,"file":"readSheetNode.js","names":["parseXmlStream","unpackXlsxFile","parseSheet","createWorkerFunction","undefined","readSheet","input","sheet","options","then","contents"],"sources":["../../source/export/readSheetNode.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/node'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\n\r\nimport parseSheet from './parseSheet.js'\r\n\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,yBAAyB;AAEpD,OAAOC,UAAU,MAAM,iBAAiB;AAExC,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGH,SAAS;EAClB;EACA,OAAOH,cAAc,CAACK,KAAK,CAAC,CAC1BG,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKR,UAAU,CAACC,oBAAoB,EAAEH,cAAc,EAAEU,QAAQ,EAAEH,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AACjG"}
@@ -1,7 +1,19 @@
1
- import xml from '../xml/xml.js';
1
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
2
  import unpackXlsxFile from './unpackXlsxFileUniversal.js';
3
3
  import parseSheet from './parseSheet.js';
4
4
 
5
+ // There seems to be no way to access Node.js `Worker`
6
+ // other than explicitly `import`ing it from the "worker_threads" module.
7
+ // It's in contrast to web browsers where the `Worker` class is accessible through a global variable.
8
+ //
9
+ // The requirement for an explicit `import` of a "native" module in Node.js
10
+ // means that it's not really possible to write a "universal" worker implementation
11
+ // because what works in Node.js won't work in a web browser due to the absence of the "native" module.
12
+ //
13
+ // So there seems to be no way to use `Worker` in a "universal" export.
14
+ //
15
+ var createWorkerFunction = undefined;
16
+
5
17
  /**
6
18
  * Reads a single sheet from an `.xlsx` file.
7
19
  * @param {(Blob|ArrayBuffer)} input
@@ -17,7 +29,7 @@ export default function readSheet(input, sheet, options) {
17
29
  sheet = undefined;
18
30
  }
19
31
  return unpackXlsxFile(input).then(function (contents) {
20
- return parseSheet(contents, xml, sheet, options);
32
+ return parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options);
21
33
  });
22
34
  }
23
35
  //# sourceMappingURL=readSheetUniversal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readSheetUniversal.js","names":["xml","unpackXlsxFile","parseSheet","readSheet","input","sheet","options","undefined","then","contents"],"sources":["../../source/export/readSheetUniversal.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(contents, xml, sheet, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGE,SAAS;EAClB;EACA,OAAON,cAAc,CAACG,KAAK,CAAC,CAC1BI,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,UAAU,CAACO,QAAQ,EAAET,GAAG,EAAEK,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AAChE"}
1
+ {"version":3,"file":"readSheetUniversal.js","names":["parseXmlStream","unpackXlsxFile","parseSheet","createWorkerFunction","undefined","readSheet","input","sheet","options","then","contents"],"sources":["../../source/export/readSheetUniversal.js"],"sourcesContent":["import parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\n\r\nimport parseSheet from './parseSheet.js'\r\n\r\n// There seems to be no way to access Node.js `Worker`\r\n// other than explicitly `import`ing it from the \"worker_threads\" module.\r\n// It's in contrast to web browsers where the `Worker` class is accessible through a global variable.\r\n//\r\n// The requirement for an explicit `import` of a \"native\" module in Node.js\r\n// means that it's not really possible to write a \"universal\" worker implementation\r\n// because what works in Node.js won't work in a web browser due to the absence of the \"native\" module.\r\n//\r\n// So there seems to be no way to use `Worker` in a \"universal\" export.\r\n//\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options))\r\n}"],"mappings":"AAAA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,8BAA8B;AAEzD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGH,SAAS;EAClB;EACA,OAAOH,cAAc,CAACK,KAAK,CAAC,CAC1BG,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKR,UAAU,CAACC,oBAAoB,EAAEH,cAAc,EAAEU,QAAQ,EAAEH,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AACjG"}
@@ -1,7 +1,17 @@
1
- import xml from '../xml/xml.js';
1
+ // import createWorkerFunction from 'worker-f/browser'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileBrowser.js';
3
5
  import parseSheet from './parseSheet.js';
4
6
 
7
+ // Unzipper is multi-threaded and it spawns a separate worker for each individual file
8
+ // inside the archive that is large-enough to justify spawning a worker.
9
+ //
10
+ // XML parser is itself single-threaded but it could spawn a separate worker for each
11
+ // individual `.xml` file that is large-enough to justify spawning a worker.
12
+ //
13
+ var createWorkerFunction = undefined;
14
+
5
15
  /**
6
16
  * Reads a single sheet from an `.xlsx` file.
7
17
  * @param {(File|Blob|ArrayBuffer)} input
@@ -17,7 +27,7 @@ export default function readSheet(input, sheet, options) {
17
27
  sheet = undefined;
18
28
  }
19
29
  return unpackXlsxFile(input).then(function (contents) {
20
- return parseSheet(contents, xml, sheet, options);
30
+ return parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options);
21
31
  });
22
32
  }
23
33
  //# sourceMappingURL=readSheetWebWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readSheetWebWorker.js","names":["xml","unpackXlsxFile","parseSheet","readSheet","input","sheet","options","undefined","then","contents"],"sources":["../../source/export/readSheetWebWorker.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(contents, xml, sheet, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGE,SAAS;EAClB;EACA,OAAON,cAAc,CAACG,KAAK,CAAC,CAC1BI,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,UAAU,CAACO,QAAQ,EAAET,GAAG,EAAEK,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AAChE"}
1
+ {"version":3,"file":"readSheetWebWorker.js","names":["parseXmlStream","unpackXlsxFile","parseSheet","createWorkerFunction","undefined","readSheet","input","sheet","options","then","contents"],"sources":["../../source/export/readSheetWebWorker.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/browser'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\n\r\nimport parseSheet from './parseSheet.js'\r\n\r\n// Unzipper is multi-threaded and it spawns a separate worker for each individual file\r\n// inside the archive that is large-enough to justify spawning a worker.\r\n//\r\n// XML parser is itself single-threaded but it could spawn a separate worker for each\r\n// individual `.xml` file that is large-enough to justify spawning a worker.\r\n//\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads a single sheet from an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {(number|string)} [sheet] — Sheet number or sheet name\r\n * @param {object} [options]\r\n * @return {Promise<SheetData>}\r\n */\r\nexport default function readSheet(input, sheet, options) {\r\n\t// `sheet` argument is optional.\r\n\t// It could be omitted while `options` argument is passed.\r\n\tif (!options && sheet && typeof sheet !== 'number' && typeof sheet !== 'string') {\r\n\t\toptions = sheet\r\n\t\tsheet = undefined\r\n\t}\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSheet(createWorkerFunction, parseXmlStream, contents, sheet, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,4BAA4B;AAEvD,OAAOC,UAAU,MAAM,iBAAiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACxD;EACA;EACA,IAAI,CAACA,OAAO,IAAID,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChFC,OAAO,GAAGD,KAAK;IACfA,KAAK,GAAGH,SAAS;EAClB;EACA,OAAOH,cAAc,CAACK,KAAK,CAAC,CAC1BG,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKR,UAAU,CAACC,oBAAoB,EAAEH,cAAc,EAAEU,QAAQ,EAAEH,KAAK,EAAEC,OAAO,CAAC;EAAA,EAAC;AACjG"}
@@ -1,6 +1,9 @@
1
- import xml from '../xml/xmlBrowser.js';
1
+ // import createWorkerFunction from 'worker-f/browser'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileBrowser.js';
3
5
  import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
6
+ var createWorkerFunction = undefined;
4
7
 
5
8
  /**
6
9
  * Reads an `.xlsx` file.
@@ -10,7 +13,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
10
13
  */
11
14
  export default function readXlsxFile(input, options) {
12
15
  return unpackXlsxFile(input).then(function (contents) {
13
- return parseSpreadsheetContents(contents, xml, options);
16
+ return parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options);
14
17
  });
15
18
  }
16
19
  //# sourceMappingURL=readXlsxFileBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileBrowser.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileBrowser.js"],"sourcesContent":["import xml from '../xml/xmlBrowser.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,sBAAsB;AAEtC,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
1
+ {"version":3,"file":"readXlsxFileBrowser.js","names":["parseXmlStream","unpackXlsxFile","parseSpreadsheetContents","createWorkerFunction","undefined","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileBrowser.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/browser'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\n\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,4BAA4B;AAEvD,OAAOC,wBAAwB,MAAM,qCAAqC;AAE1E,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAON,cAAc,CAACK,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,wBAAwB,CAACC,oBAAoB,EAAEH,cAAc,EAAES,QAAQ,EAAEF,OAAO,CAAC;EAAA,EAAC;AACxG"}
@@ -1,6 +1,9 @@
1
- import xml from '../xml/xml.js';
1
+ // import createWorkerFunction from 'worker-f/node'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileNode.js';
3
5
  import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
6
+ var createWorkerFunction = undefined;
4
7
 
5
8
  /**
6
9
  * Reads an `.xlsx` file.
@@ -10,7 +13,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
10
13
  */
11
14
  export default function readXlsxFile(input, options) {
12
15
  return unpackXlsxFile(input).then(function (contents) {
13
- return parseSpreadsheetContents(contents, xml, options);
16
+ return parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options);
14
17
  });
15
18
  }
16
19
  //# sourceMappingURL=readXlsxFileNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileNode.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileNode.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
1
+ {"version":3,"file":"readXlsxFileNode.js","names":["parseXmlStream","unpackXlsxFile","parseSpreadsheetContents","createWorkerFunction","undefined","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileNode.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/node'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\n\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,yBAAyB;AAEpD,OAAOC,wBAAwB,MAAM,qCAAqC;AAE1E,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAON,cAAc,CAACK,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,wBAAwB,CAACC,oBAAoB,EAAEH,cAAc,EAAES,QAAQ,EAAEF,OAAO,CAAC;EAAA,EAAC;AACxG"}
@@ -1,7 +1,19 @@
1
- import xml from '../xml/xml.js';
1
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
2
  import unpackXlsxFile from './unpackXlsxFileUniversal.js';
3
3
  import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
4
4
 
5
+ // There seems to be no way to access Node.js `Worker`
6
+ // other than explicitly `import`ing it from the "worker_threads" module.
7
+ // It's in contrast to web browsers where the `Worker` class is accessible through a global variable.
8
+ //
9
+ // The requirement for an explicit `import` of a "native" module in Node.js
10
+ // means that it's not really possible to write a "universal" worker implementation
11
+ // because what works in Node.js won't work in a web browser due to the absence of the "native" module.
12
+ //
13
+ // So there seems to be no way to use `Worker` in a "universal" export.
14
+ //
15
+ var createWorkerFunction = undefined;
16
+
5
17
  /**
6
18
  * Reads an `.xlsx` file.
7
19
  * @param {(Blob|ArrayBuffer)} input
@@ -10,7 +22,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
10
22
  */
11
23
  export default function readXlsxFile(input, options) {
12
24
  return unpackXlsxFile(input).then(function (contents) {
13
- return parseSpreadsheetContents(contents, xml, options);
25
+ return parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options);
14
26
  });
15
27
  }
16
28
  //# sourceMappingURL=readXlsxFileUniversal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileUniversal.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileUniversal.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
1
+ {"version":3,"file":"readXlsxFileUniversal.js","names":["parseXmlStream","unpackXlsxFile","parseSpreadsheetContents","createWorkerFunction","undefined","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileUniversal.js"],"sourcesContent":["import parseXmlStream from '../xml/parseXmlStream.js'\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\n\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n// There seems to be no way to access Node.js `Worker`\r\n// other than explicitly `import`ing it from the \"worker_threads\" module.\r\n// It's in contrast to web browsers where the `Worker` class is accessible through a global variable.\r\n//\r\n// The requirement for an explicit `import` of a \"native\" module in Node.js\r\n// means that it's not really possible to write a \"universal\" worker implementation\r\n// because what works in Node.js won't work in a web browser due to the absence of the \"native\" module.\r\n//\r\n// So there seems to be no way to use `Worker` in a \"universal\" export.\r\n//\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options))\r\n}"],"mappings":"AAAA,OAAOA,cAAc,MAAM,0BAA0B;AACrD,OAAOC,cAAc,MAAM,8BAA8B;AAEzD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAON,cAAc,CAACK,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,wBAAwB,CAACC,oBAAoB,EAAEH,cAAc,EAAES,QAAQ,EAAEF,OAAO,CAAC;EAAA,EAAC;AACxG"}
@@ -1,7 +1,17 @@
1
- import xml from '../xml/xml.js';
1
+ // import createWorkerFunction from 'worker-f/browser'
2
+
3
+ import parseXmlStream from '../xml/parseXmlStream.js';
2
4
  import unpackXlsxFile from './unpackXlsxFileBrowser.js';
3
5
  import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
4
6
 
7
+ // Unzipper is multi-threaded and it spawns a separate worker for each individual file
8
+ // inside the archive that is large-enough to justify spawning a worker.
9
+ //
10
+ // XML parser is itself single-threaded but it could spawn a separate worker for each
11
+ // individual `.xml` file that is large-enough to justify spawning a worker.
12
+ //
13
+ var createWorkerFunction = undefined;
14
+
5
15
  /**
6
16
  * Reads an `.xlsx` file.
7
17
  * @param {(File|Blob|ArrayBuffer)} input
@@ -10,7 +20,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
10
20
  */
11
21
  export default function readXlsxFile(file, options) {
12
22
  return unpackXlsxFile(file).then(function (contents) {
13
- return parseSpreadsheetContents(contents, xml, options);
23
+ return parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options);
14
24
  });
15
25
  }
16
26
  //# sourceMappingURL=readXlsxFileWebWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readXlsxFileWebWorker.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","file","options","then","contents"],"sources":["../../source/export/readXlsxFileWebWorker.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(file, options) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,IAAI,EAAEC,OAAO,EAAE;EACnD,OAAOJ,cAAc,CAACG,IAAI,CAAC,CACzBE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
1
+ {"version":3,"file":"readXlsxFileWebWorker.js","names":["parseXmlStream","unpackXlsxFile","parseSpreadsheetContents","createWorkerFunction","undefined","readXlsxFile","file","options","then","contents"],"sources":["../../source/export/readXlsxFileWebWorker.js"],"sourcesContent":["// import createWorkerFunction from 'worker-f/browser'\r\n\r\nimport parseXmlStream from '../xml/parseXmlStream.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n// Unzipper is multi-threaded and it spawns a separate worker for each individual file\r\n// inside the archive that is large-enough to justify spawning a worker.\r\n//\r\n// XML parser is itself single-threaded but it could spawn a separate worker for each\r\n// individual `.xml` file that is large-enough to justify spawning a worker.\r\n//\r\nconst createWorkerFunction = undefined\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(file, options) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((contents) => parseSpreadsheetContents(createWorkerFunction, parseXmlStream, contents, options))\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,cAAc,MAAM,0BAA0B;AAErD,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,oBAAoB,GAAGC,SAAS;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,IAAI,EAAEC,OAAO,EAAE;EACnD,OAAON,cAAc,CAACK,IAAI,CAAC,CACzBE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKP,wBAAwB,CAACC,oBAAoB,EAAEH,cAAc,EAAES,QAAQ,EAAEF,OAAO,CAAC;EAAA,EAAC;AACxG"}
@@ -1,11 +1,29 @@
1
- // Uses an "async" function of the unzipper function
2
- // just because it feels more correct to use it over the "sync" one
3
- // because it isn't supposed to ever freeze the "main thread" (GUI).
1
+ // Here it uses the "async" version of the unzipper function
2
+ // just because it unzips the files inside an archive in parallel
3
+ // rather than sequentially. It uses web workers for that.
4
+ // Smaller files are still handled synchronously under the hood.
5
+ //
6
+ // It did condict a couple of basic manual tests in a web browser
7
+ // and the results showed that a `1 MB` `.xlsx` file is read in `100 ms`
8
+ // both using "sync" and "async" versions of the unzipper function,
9
+ // and reading a `200 KB` `.xlsx` file is done in `70 ms` when using
10
+ // the "sync" version and in `80 ms" when using the "async" verison.
11
+ //
12
+ // So the "sync" version of the unzipper function is faster on smaller file sizes
13
+ // of about < 1 MB. Still, the rest of the parsing code smoothes out this difference,
14
+ // and the end result is not much different. Does the difference of `10 ms` justify
15
+ // the mental overhead of choosing the right variant for a file of a given size?
16
+ // I'd say "not really". Sure, performance fans wouldn't scuff on those `10 ms`
17
+ // but it's literally "a blink of an eye" and about a duration of a single frame
18
+ // on a 120 FPS screen.
19
+ //
20
+ // Hence, it simply uses the "async" variant of the unzipper function in any case.
4
21
  //
5
22
  // import unzipFromArrayBufferSync from '../zip/unzipFromArrayBufferSync.js'
6
23
  import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js';
7
24
  import convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js';
8
25
  import filterZipArchiveEntry from './filterZipArchiveEntry.js';
26
+ import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
9
27
 
10
28
  /**
11
29
  * Unpacks `*.xlsx` file contents.
@@ -14,6 +32,8 @@ import filterZipArchiveEntry from './filterZipArchiveEntry.js';
14
32
  * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
15
33
  */
16
34
  export default function unpackXlsxFile(input) {
35
+ resetCheckpoint();
36
+ checkpoint('unpack files');
17
37
  if (input instanceof File || input instanceof Blob) {
18
38
  return input.arrayBuffer().then(getResultFromArrayBuffer);
19
39
  }
@@ -25,8 +45,8 @@ function getResultFromArrayBuffer(arrayBuffer) {
25
45
  }).then(convertValuesFromUint8ArraysToStrings);
26
46
  }
27
47
 
28
- // function getResultFromArrayBufferSync(arrayBuffer) {
29
- // const result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })
30
- // return convertValuesFromUint8ArraysToStrings(result)
48
+ // function getResultFromArrayBuffer(arrayBuffer) {
49
+ // const result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })
50
+ // return Promise.resolve(convertValuesFromUint8ArraysToStrings(result))
31
51
  // }
32
52
  //# sourceMappingURL=unpackXlsxFileBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileBrowser.js","names":["unzipFromArrayBuffer","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","unpackXlsxFile","input","File","Blob","arrayBuffer","then","getResultFromArrayBuffer","Promise","resolve","filter"],"sources":["../../source/export/unpackXlsxFileBrowser.js"],"sourcesContent":["// Uses an \"async\" function of the unzipper function\r\n// just because it feels more correct to use it over the \"sync\" one\r\n// because it isn't supposed to ever freeze the \"main thread\" (GUI).\r\n//\r\n// import unzipFromArrayBufferSync from '../zip/unzipFromArrayBufferSync.js'\r\nimport unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js'\r\n\r\nimport convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.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 {(File|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\tif (input instanceof File || input instanceof Blob) {\r\n\t\treturn input.arrayBuffer().then(getResultFromArrayBuffer)\r\n\t}\r\n\treturn Promise.resolve(input).then(getResultFromArrayBuffer)\r\n}\r\n\r\nfunction getResultFromArrayBuffer(arrayBuffer) {\r\n\treturn unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry }).then(\r\n\t\tconvertValuesFromUint8ArraysToStrings\r\n\t)\r\n}\r\n\r\n// function getResultFromArrayBufferSync(arrayBuffer) {\r\n// const result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })\r\n// \treturn convertValuesFromUint8ArraysToStrings(result)\r\n// }"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,oBAAoB,MAAM,gCAAgC;AAEjE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7C,IAAIA,KAAK,YAAYC,IAAI,IAAID,KAAK,YAAYE,IAAI,EAAE;IACnD,OAAOF,KAAK,CAACG,WAAW,CAAC,CAAC,CAACC,IAAI,CAACC,wBAAwB,CAAC;EAC1D;EACA,OAAOC,OAAO,CAACC,OAAO,CAACP,KAAK,CAAC,CAACI,IAAI,CAACC,wBAAwB,CAAC;AAC7D;AAEA,SAASA,wBAAwBA,CAACF,WAAW,EAAE;EAC9C,OAAOP,oBAAoB,CAACO,WAAW,EAAE;IAAEK,MAAM,EAAEV;EAAsB,CAAC,CAAC,CAACM,IAAI,CAC/EP,qCACD,CAAC;AACF;;AAEA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"unpackXlsxFileBrowser.js","names":["unzipFromArrayBuffer","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","checkpoint","resetCheckpoint","unpackXlsxFile","input","File","Blob","arrayBuffer","then","getResultFromArrayBuffer","Promise","resolve","filter"],"sources":["../../source/export/unpackXlsxFileBrowser.js"],"sourcesContent":["// Here it uses the \"async\" version of the unzipper function\r\n// just because it unzips the files inside an archive in parallel\r\n// rather than sequentially. It uses web workers for that.\r\n// Smaller files are still handled synchronously under the hood.\r\n//\r\n// It did condict a couple of basic manual tests in a web browser\r\n// and the results showed that a `1 MB` `.xlsx` file is read in `100 ms`\r\n// both using \"sync\" and \"async\" versions of the unzipper function,\r\n// and reading a `200 KB` `.xlsx` file is done in `70 ms` when using\r\n// the \"sync\" version and in `80 ms\" when using the \"async\" verison.\r\n//\r\n// So the \"sync\" version of the unzipper function is faster on smaller file sizes\r\n// of about < 1 MB. Still, the rest of the parsing code smoothes out this difference,\r\n// and the end result is not much different. Does the difference of `10 ms` justify\r\n// the mental overhead of choosing the right variant for a file of a given size?\r\n// I'd say \"not really\". Sure, performance fans wouldn't scuff on those `10 ms`\r\n// but it's literally \"a blink of an eye\" and about a duration of a single frame\r\n// on a 120 FPS screen.\r\n//\r\n// Hence, it simply uses the \"async\" variant of the unzipper function in any case.\r\n//\r\n// import unzipFromArrayBufferSync from '../zip/unzipFromArrayBufferSync.js'\r\nimport unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js'\r\n\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 {(File|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\tif (input instanceof File || input instanceof Blob) {\r\n\t\treturn input.arrayBuffer().then(getResultFromArrayBuffer)\r\n\t}\r\n\treturn Promise.resolve(input).then(getResultFromArrayBuffer)\r\n}\r\n\r\nfunction getResultFromArrayBuffer(arrayBuffer) {\r\n\treturn unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry }).then(\r\n\t\tconvertValuesFromUint8ArraysToStrings\r\n\t)\r\n}\r\n\r\n// function getResultFromArrayBuffer(arrayBuffer) {\r\n// \tconst result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })\r\n// \treturn Promise.resolve(convertValuesFromUint8ArraysToStrings(result))\r\n// }"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,oBAAoB,MAAM,gCAAgC;AAEjE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;AAE9D,OAAOC,UAAU,IAAIC,eAAe,QAAQ,0BAA0B;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7CF,eAAe,CAAC,CAAC;EACjBD,UAAU,CAAC,cAAc,CAAC;EAC1B,IAAIG,KAAK,YAAYC,IAAI,IAAID,KAAK,YAAYE,IAAI,EAAE;IACnD,OAAOF,KAAK,CAACG,WAAW,CAAC,CAAC,CAACC,IAAI,CAACC,wBAAwB,CAAC;EAC1D;EACA,OAAOC,OAAO,CAACC,OAAO,CAACP,KAAK,CAAC,CAACI,IAAI,CAACC,wBAAwB,CAAC;AAC7D;AAEA,SAASA,wBAAwBA,CAACF,WAAW,EAAE;EAC9C,OAAOT,oBAAoB,CAACS,WAAW,EAAE;IAAEK,MAAM,EAAEZ;EAAsB,CAAC,CAAC,CAACQ,IAAI,CAC/ET,qCACD,CAAC;AACF;;AAEA;AACA;AACA;AACA"}
@@ -2,6 +2,7 @@ import unzipFromStream from '../zip/unzipFromStream.js';
2
2
  import convertInputToNodeStream from './convertInputToNodeStream.js';
3
3
  import convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js';
4
4
  import filterZipArchiveEntry from './filterZipArchiveEntry.js';
5
+ import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
5
6
 
6
7
  /**
7
8
  * Unpacks `*.xlsx` file contents.
@@ -10,6 +11,8 @@ import filterZipArchiveEntry from './filterZipArchiveEntry.js';
10
11
  * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
11
12
  */
12
13
  export default function unpackXlsxFile(input) {
14
+ resetCheckpoint();
15
+ checkpoint('unpack files');
13
16
  var stream = convertInputToNodeStream(input);
14
17
  return unzipFromStream(stream, {
15
18
  filter: filterZipArchiveEntry
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileNode.js","names":["unzipFromStream","convertInputToNodeStream","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","unpackXlsxFile","input","stream","filter","then"],"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\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 const stream = convertInputToNodeStream(input)\r\n return unzipFromStream(stream, { filter: filterZipArchiveEntry })\r\n .then(convertValuesFromUint8ArraysToStrings)\r\n}"],"mappings":"AAAA,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC5C,IAAMC,MAAM,GAAGL,wBAAwB,CAACI,KAAK,CAAC;EAC9C,OAAOL,eAAe,CAACM,MAAM,EAAE;IAAEC,MAAM,EAAEJ;EAAsB,CAAC,CAAC,CAC5DK,IAAI,CAACN,qCAAqC,CAAC;AAClD"}
1
+ {"version":3,"file":"unpackXlsxFileNode.js","names":["unzipFromStream","convertInputToNodeStream","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","checkpoint","resetCheckpoint","unpackXlsxFile","input","stream","filter","then"],"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,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;AAE9D,OAAOC,UAAU,IAAIC,eAAe,QAAQ,0BAA0B;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC5CF,eAAe,CAAC,CAAC;EACjBD,UAAU,CAAC,cAAc,CAAC;EAC1B,IAAMI,MAAM,GAAGP,wBAAwB,CAACM,KAAK,CAAC;EAC9C,OAAOP,eAAe,CAACQ,MAAM,EAAE;IAAEC,MAAM,EAAEN;EAAsB,CAAC,CAAC,CAC5DO,IAAI,CAACR,qCAAqC,CAAC;AAClD"}
@@ -1,6 +1,7 @@
1
1
  import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js';
2
2
  import convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js';
3
3
  import filterZipArchiveEntry from './filterZipArchiveEntry.js';
4
+ import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
4
5
 
5
6
  /**
6
7
  * Unpacks `*.xlsx` file contents.
@@ -9,6 +10,8 @@ import filterZipArchiveEntry from './filterZipArchiveEntry.js';
9
10
  * @return {Promise<Record<string,string>} Resolves to an object holding `*.xlsx` file entries.
10
11
  */
11
12
  export default function unpackXlsxFile(input) {
13
+ resetCheckpoint();
14
+ checkpoint('unpack files');
12
15
  return getArrayBuffer(input).then(function (arrayBuffer) {
13
16
  return unzipFromArrayBuffer(arrayBuffer, {
14
17
  filter: filterZipArchiveEntry
@@ -1 +1 @@
1
- {"version":3,"file":"unpackXlsxFileUniversal.js","names":["unzipFromArrayBuffer","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","unpackXlsxFile","input","getArrayBuffer","then","arrayBuffer","filter","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\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\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,OAAOA,oBAAoB,MAAM,gCAAgC;AACjE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7C,OAAOC,cAAc,CAACD,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAAAC,WAAW;IAAA,OAAIP,oBAAoB,CAACO,WAAW,EAAE;MAAEC,MAAM,EAAEN;IAAsB,CAAC,CAAC;EAAA,EAAC,CACzFI,IAAI,CAACL,qCAAqC,CAAC;AAC9C;AAEA,SAASI,cAAcA,CAACD,KAAK,EAAE;EAC9B,IAAIA,KAAK,YAAYK,IAAI,EAAE;IAC1B,OAAOL,KAAK,CAACG,WAAW,CAAC,CAAC;EAC3B;EACA,IAAIH,KAAK,YAAYM,WAAW,EAAE;IACjC,OAAOC,OAAO,CAACC,OAAO,CAACR,KAAK,CAAC;EAC9B;EACA,MAAM,IAAIS,SAAS,CAAC,0DAA0D,CAAC;AAChF"}
1
+ {"version":3,"file":"unpackXlsxFileUniversal.js","names":["unzipFromArrayBuffer","convertValuesFromUint8ArraysToStrings","filterZipArchiveEntry","checkpoint","resetCheckpoint","unpackXlsxFile","input","getArrayBuffer","then","arrayBuffer","filter","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,OAAOA,oBAAoB,MAAM,gCAAgC;AACjE,OAAOC,qCAAqC,MAAM,4CAA4C;AAC9F,OAAOC,qBAAqB,MAAM,4BAA4B;AAE9D,OAAOC,UAAU,IAAIC,eAAe,QAAQ,0BAA0B;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7CF,eAAe,CAAC,CAAC;EACjBD,UAAU,CAAC,cAAc,CAAC;EAC1B,OAAOI,cAAc,CAACD,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAAAC,WAAW;IAAA,OAAIT,oBAAoB,CAACS,WAAW,EAAE;MAAEC,MAAM,EAAER;IAAsB,CAAC,CAAC;EAAA,EAAC,CACzFM,IAAI,CAACP,qCAAqC,CAAC;AAC9C;AAEA,SAASM,cAAcA,CAACD,KAAK,EAAE;EAC9B,IAAIA,KAAK,YAAYK,IAAI,EAAE;IAC1B,OAAOL,KAAK,CAACG,WAAW,CAAC,CAAC;EAC3B;EACA,IAAIH,KAAK,YAAYM,WAAW,EAAE;IACjC,OAAOC,OAAO,CAACC,OAAO,CAACR,KAAK,CAAC;EAC9B;EACA,MAAM,IAAIS,SAAS,CAAC,0DAA0D,CAAC;AAChF"}
@@ -0,0 +1,6 @@
1
+ // Even though this code is meant to be run in a web worker,
2
+ // it still uses the "async" unzipper because it unzips the files
3
+ // inside a `.zip` archive in parallel rather than sequentially,
4
+ // which is going to be faster on huge `.xlsx` files.
5
+ export { default } from './unpackXlsxFileBrowser.js';
6
+ //# sourceMappingURL=unpackXlsxFileWebWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpackXlsxFileWebWorker.js","names":["default"],"sources":["../../source/export/unpackXlsxFileWebWorker.js"],"sourcesContent":["// Even though this code is meant to be run in a web worker,\r\n// it still uses the \"async\" unzipper because it unzips the files\r\n// inside a `.zip` archive in parallel rather than sequentially,\r\n// which is going to be faster on huge `.xlsx` files.\r\nexport { default as default } from './unpackXlsxFileBrowser.js'"],"mappings":"AAAA;AACA;AACA;AACA;AACA,SAASA,OAAkB,QAAQ,4BAA4B"}
@@ -17,6 +17,8 @@ import NumberType from './types/Number.js';
17
17
  import StringType from './types/String.js';
18
18
  import BooleanType from './types/Boolean.js';
19
19
  import DateType from './types/Date.js';
20
+ import isObject from '../utility/isObject.js';
21
+ import checkpoint from '../utility/checkpoint.js';
20
22
 
21
23
  /**
22
24
  * Converts spreadsheet-alike data structure into an array of JSON objects.
@@ -47,6 +49,7 @@ import DateType from './types/Date.js';
47
49
  * @return {object} — An object of shape `{ objects, errors }`. Either `objects` or `errors` is going to be `undefined`.
48
50
  */
49
51
  export default function parseSheetData(data, schema, optionsCustom) {
52
+ checkpoint('parse sheet data using schema');
50
53
  var objects = [];
51
54
  var errors = [];
52
55
  var parsedRows = parseSheetDataWithPerRowErrors(data, schema, optionsCustom);
@@ -68,6 +71,7 @@ export default function parseSheetData(data, schema, optionsCustom) {
68
71
  }
69
72
  parsedRowIndex++;
70
73
  }
74
+ checkpoint('end');
71
75
  if (errors.length > 0) {
72
76
  return {
73
77
  errors: errors
@@ -721,8 +725,4 @@ function applyDefaultOptions(options) {
721
725
 
722
726
  // This `value` marks the start of a tree structure that is parsed from a given data row.
723
727
  var PARSED_OBJECT_TREE_START = {};
724
- var objectConstructor = {}.constructor;
725
- function isObject(object) {
726
- return object !== undefined && object !== null && object.constructor === objectConstructor;
727
- }
728
728
  //# sourceMappingURL=parseSheetData.js.map