read-excel-file 7.0.3 → 8.0.0

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 (266) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +212 -205
  3. package/browser/index.cjs +8 -5
  4. package/browser/index.d.ts +58 -16
  5. package/browser/index.js +7 -5
  6. package/browser/input.d.ts +1 -0
  7. package/bundle/read-excel-file.min.js +1 -1
  8. package/bundle/read-excel-file.min.js.map +1 -1
  9. package/commonjs/export/parseSheet.js +20 -0
  10. package/commonjs/export/parseSheet.js.map +1 -0
  11. package/commonjs/export/readSheetBrowser.js +29 -0
  12. package/commonjs/export/readSheetBrowser.js.map +1 -0
  13. package/commonjs/export/readSheetNode.js +29 -0
  14. package/commonjs/export/readSheetNode.js.map +1 -0
  15. package/commonjs/export/readSheetUniversal.js +29 -0
  16. package/commonjs/export/readSheetUniversal.js.map +1 -0
  17. package/commonjs/export/readSheetWebWorker.js +29 -0
  18. package/commonjs/export/readSheetWebWorker.js.map +1 -0
  19. package/commonjs/export/readXlsxFileBrowser.js +6 -8
  20. package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
  21. package/commonjs/export/readXlsxFileNode.js +7 -9
  22. package/commonjs/export/readXlsxFileNode.js.map +1 -1
  23. package/commonjs/export/readXlsxFileUniversal.js +7 -9
  24. package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
  25. package/commonjs/export/readXlsxFileWebWorker.js +6 -8
  26. package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
  27. package/commonjs/export/unpackXlsxFileBrowser.js +2 -1
  28. package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
  29. package/commonjs/export/unpackXlsxFileNode.js +4 -3
  30. package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
  31. package/commonjs/export/unpackXlsxFileUniversal.js +13 -3
  32. package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
  33. package/commonjs/parseData/InvalidError.js.map +1 -0
  34. package/commonjs/parseData/parseData.js +503 -0
  35. package/commonjs/parseData/parseData.js.map +1 -0
  36. package/commonjs/parseData/parseData.test.js.map +1 -0
  37. package/commonjs/{types → parseData/types}/Boolean.js +1 -1
  38. package/commonjs/parseData/types/Boolean.js.map +1 -0
  39. package/commonjs/parseData/types/Date.js +21 -0
  40. package/commonjs/parseData/types/Date.js.map +1 -0
  41. package/commonjs/{types → parseData/types}/Number.js +1 -1
  42. package/commonjs/parseData/types/Number.js.map +1 -0
  43. package/commonjs/{types → parseData/types}/String.js +1 -1
  44. package/commonjs/parseData/types/String.js.map +1 -0
  45. package/commonjs/{types → parseData/types/additional}/Email.js +3 -3
  46. package/commonjs/parseData/types/additional/Email.js.map +1 -0
  47. package/commonjs/parseData/types/additional/Email.test.js.map +1 -0
  48. package/commonjs/{types → parseData/types/additional}/Integer.js +2 -2
  49. package/commonjs/parseData/types/additional/Integer.js.map +1 -0
  50. package/commonjs/parseData/types/additional/Integer.test.js.map +1 -0
  51. package/commonjs/{types → parseData/types/additional}/URL.js +3 -3
  52. package/commonjs/parseData/types/additional/URL.js.map +1 -0
  53. package/commonjs/parseData/types/additional/URL.test.js.map +1 -0
  54. package/commonjs/xlsx/{getData.js → convertCellsToData2dArray.js} +16 -37
  55. package/commonjs/xlsx/convertCellsToData2dArray.js.map +1 -0
  56. package/commonjs/xlsx/{isDateTimestamp.js → isDateFormat.js} +58 -56
  57. package/commonjs/xlsx/isDateFormat.js.map +1 -0
  58. package/commonjs/xlsx/isDateFormat.test.js.map +1 -0
  59. package/commonjs/xlsx/isDateFormatStyle.js +193 -0
  60. package/commonjs/xlsx/isDateFormatStyle.js.map +1 -0
  61. package/commonjs/xlsx/parseCell.js +16 -18
  62. package/commonjs/xlsx/parseCell.js.map +1 -1
  63. package/commonjs/xlsx/parseCellCoordinates.js +44 -0
  64. package/commonjs/xlsx/parseCellCoordinates.js.map +1 -0
  65. package/commonjs/xlsx/parseCellValue.js +14 -11
  66. package/commonjs/xlsx/parseCellValue.js.map +1 -1
  67. package/commonjs/xlsx/parseCells.js +14 -6
  68. package/commonjs/xlsx/parseCells.js.map +1 -1
  69. package/commonjs/xlsx/parseExcelDate.js +139 -0
  70. package/commonjs/xlsx/parseExcelDate.js.map +1 -0
  71. package/commonjs/xlsx/parseExcelDate.test.js.map +1 -0
  72. package/commonjs/xlsx/parseSheet.js +9 -11
  73. package/commonjs/xlsx/parseSheet.js.map +1 -1
  74. package/commonjs/xlsx/{parseDimensions.js → parseSheetDimensions.js} +7 -6
  75. package/commonjs/xlsx/parseSheetDimensions.js.map +1 -0
  76. package/commonjs/xlsx/parseSpreadsheetContents.js +96 -0
  77. package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -0
  78. package/commonjs/xlsx/parseSpreadsheetInfo.js +47 -0
  79. package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -0
  80. package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js +29 -0
  81. package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +1 -0
  82. package/commonjs/xml/xlsx.js +9 -9
  83. package/commonjs/xml/xlsx.js.map +1 -1
  84. package/commonjs/xml/xpath/xlsx-xpath.js +8 -8
  85. package/commonjs/xml/xpath/xlsx-xpath.js.map +1 -1
  86. package/commonjs/xml/xpath/xpathBrowser.js +4 -4
  87. package/commonjs/xml/xpath/xpathBrowser.js.map +1 -1
  88. package/commonjs/xml/xpath/xpathNode.js +2 -2
  89. package/commonjs/xml/xpath/xpathNode.js.map +1 -1
  90. package/modules/export/parseSheet.js +13 -0
  91. package/modules/export/parseSheet.js.map +1 -0
  92. package/modules/export/readSheetBrowser.js +23 -0
  93. package/modules/export/readSheetBrowser.js.map +1 -0
  94. package/modules/export/readSheetNode.js +23 -0
  95. package/modules/export/readSheetNode.js.map +1 -0
  96. package/modules/export/readSheetUniversal.js +23 -0
  97. package/modules/export/readSheetUniversal.js.map +1 -0
  98. package/modules/export/readSheetWebWorker.js +23 -0
  99. package/modules/export/readSheetWebWorker.js.map +1 -0
  100. package/modules/export/readXlsxFileBrowser.js +6 -8
  101. package/modules/export/readXlsxFileBrowser.js.map +1 -1
  102. package/modules/export/readXlsxFileNode.js +7 -9
  103. package/modules/export/readXlsxFileNode.js.map +1 -1
  104. package/modules/export/readXlsxFileUniversal.js +7 -9
  105. package/modules/export/readXlsxFileUniversal.js.map +1 -1
  106. package/modules/export/readXlsxFileWebWorker.js +6 -8
  107. package/modules/export/readXlsxFileWebWorker.js.map +1 -1
  108. package/modules/export/unpackXlsxFileBrowser.js +3 -1
  109. package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
  110. package/modules/export/unpackXlsxFileNode.js +4 -3
  111. package/modules/export/unpackXlsxFileNode.js.map +1 -1
  112. package/modules/export/unpackXlsxFileUniversal.js +13 -3
  113. package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
  114. package/modules/parseData/InvalidError.js.map +1 -0
  115. package/modules/parseData/parseData.js +494 -0
  116. package/modules/parseData/parseData.js.map +1 -0
  117. package/modules/parseData/parseData.test.js.map +1 -0
  118. package/modules/{types → parseData/types}/Boolean.js +1 -1
  119. package/modules/parseData/types/Boolean.js.map +1 -0
  120. package/modules/parseData/types/Date.js +14 -0
  121. package/modules/parseData/types/Date.js.map +1 -0
  122. package/modules/{types → parseData/types}/Number.js +1 -1
  123. package/modules/parseData/types/Number.js.map +1 -0
  124. package/modules/{types → parseData/types}/String.js +1 -1
  125. package/modules/parseData/types/String.js.map +1 -0
  126. package/modules/{types → parseData/types/additional}/Email.js +3 -3
  127. package/modules/parseData/types/additional/Email.js.map +1 -0
  128. package/modules/parseData/types/additional/Email.test.js.map +1 -0
  129. package/modules/{types → parseData/types/additional}/Integer.js +2 -2
  130. package/modules/parseData/types/additional/Integer.js.map +1 -0
  131. package/modules/parseData/types/additional/Integer.test.js.map +1 -0
  132. package/modules/{types → parseData/types/additional}/URL.js +3 -3
  133. package/modules/parseData/types/additional/URL.js.map +1 -0
  134. package/modules/parseData/types/additional/URL.test.js.map +1 -0
  135. package/modules/xlsx/{getData.js → convertCellsToData2dArray.js} +15 -36
  136. package/modules/xlsx/convertCellsToData2dArray.js.map +1 -0
  137. package/modules/xlsx/{isDateTimestamp.js → isDateFormat.js} +57 -55
  138. package/modules/xlsx/isDateFormat.js.map +1 -0
  139. package/modules/xlsx/isDateFormat.test.js.map +1 -0
  140. package/modules/xlsx/isDateFormatStyle.js +186 -0
  141. package/modules/xlsx/isDateFormatStyle.js.map +1 -0
  142. package/modules/xlsx/parseCell.js +17 -19
  143. package/modules/xlsx/parseCell.js.map +1 -1
  144. package/modules/xlsx/parseCellCoordinates.js +38 -0
  145. package/modules/xlsx/parseCellCoordinates.js.map +1 -0
  146. package/modules/xlsx/parseCellValue.js +14 -11
  147. package/modules/xlsx/parseCellValue.js.map +1 -1
  148. package/modules/xlsx/parseCells.js +14 -6
  149. package/modules/xlsx/parseCells.js.map +1 -1
  150. package/modules/xlsx/parseExcelDate.js +133 -0
  151. package/modules/xlsx/parseExcelDate.js.map +1 -0
  152. package/modules/xlsx/parseExcelDate.test.js.map +1 -0
  153. package/modules/xlsx/parseSheet.js +9 -11
  154. package/modules/xlsx/parseSheet.js.map +1 -1
  155. package/modules/xlsx/{parseDimensions.js → parseSheetDimensions.js} +4 -4
  156. package/modules/xlsx/parseSheetDimensions.js.map +1 -0
  157. package/modules/xlsx/parseSpreadsheetContents.js +91 -0
  158. package/modules/xlsx/parseSpreadsheetContents.js.map +1 -0
  159. package/modules/xlsx/parseSpreadsheetInfo.js +42 -0
  160. package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -0
  161. package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js +23 -0
  162. package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +1 -0
  163. package/modules/xml/xlsx.js +6 -6
  164. package/modules/xml/xlsx.js.map +1 -1
  165. package/modules/xml/xpath/xlsx-xpath.js +6 -6
  166. package/modules/xml/xpath/xlsx-xpath.js.map +1 -1
  167. package/modules/xml/xpath/xpathBrowser.js +4 -4
  168. package/modules/xml/xpath/xpathBrowser.js.map +1 -1
  169. package/modules/xml/xpath/xpathNode.js +2 -2
  170. package/modules/xml/xpath/xpathNode.js.map +1 -1
  171. package/node/index.cjs +8 -5
  172. package/node/index.d.ts +56 -21
  173. package/node/index.js +7 -5
  174. package/node/input.d.ts +5 -0
  175. package/package.json +1 -1
  176. package/rollup.config.mjs +1 -1
  177. package/types/parseData/parseData.d.ts +38 -0
  178. package/types/parseData/parseDataError.d.ts +239 -0
  179. package/types/parseData/parseDataSchema.d.ts +48 -0
  180. package/types/parseData/parseDataValueType.d.ts +45 -0
  181. package/types/types.d.ts +20 -0
  182. package/universal/index.cjs +8 -5
  183. package/universal/index.d.ts +58 -16
  184. package/universal/index.js +7 -5
  185. package/universal/input.d.ts +1 -0
  186. package/web-worker/index.cjs +8 -5
  187. package/web-worker/index.d.ts +58 -16
  188. package/web-worker/index.js +7 -5
  189. package/web-worker/input.d.ts +1 -0
  190. package/commonjs/export/readSheetNamesBrowser.js +0 -23
  191. package/commonjs/export/readSheetNamesBrowser.js.map +0 -1
  192. package/commonjs/export/readSheetNamesNode.js +0 -23
  193. package/commonjs/export/readSheetNamesNode.js.map +0 -1
  194. package/commonjs/export/readSheetNamesUniversal.js +0 -23
  195. package/commonjs/export/readSheetNamesUniversal.js.map +0 -1
  196. package/commonjs/export/readSheetNamesWebWorker.js +0 -23
  197. package/commonjs/export/readSheetNamesWebWorker.js.map +0 -1
  198. package/commonjs/types/Boolean.js.map +0 -1
  199. package/commonjs/types/Date.js +0 -36
  200. package/commonjs/types/Date.js.map +0 -1
  201. package/commonjs/types/Email.js.map +0 -1
  202. package/commonjs/types/Email.test.js.map +0 -1
  203. package/commonjs/types/Integer.js.map +0 -1
  204. package/commonjs/types/Integer.test.js.map +0 -1
  205. package/commonjs/types/InvalidError.js.map +0 -1
  206. package/commonjs/types/Number.js.map +0 -1
  207. package/commonjs/types/String.js.map +0 -1
  208. package/commonjs/types/URL.js.map +0 -1
  209. package/commonjs/types/URL.test.js.map +0 -1
  210. package/commonjs/xlsx/coordinates.js +0 -55
  211. package/commonjs/xlsx/coordinates.js.map +0 -1
  212. package/commonjs/xlsx/getData.js.map +0 -1
  213. package/commonjs/xlsx/isDateTimestamp.js.map +0 -1
  214. package/commonjs/xlsx/parseDate.js +0 -73
  215. package/commonjs/xlsx/parseDate.js.map +0 -1
  216. package/commonjs/xlsx/parseDate.test.js.map +0 -1
  217. package/commonjs/xlsx/parseDimensions.js.map +0 -1
  218. package/commonjs/xlsx/parseProperties.js +0 -46
  219. package/commonjs/xlsx/parseProperties.js.map +0 -1
  220. package/commonjs/xlsx/parseXlsxFileContents.js +0 -119
  221. package/commonjs/xlsx/parseXlsxFileContents.js.map +0 -1
  222. package/commonjs/xlsx/parseXlsxFileContentsWithOptionalSchema.js +0 -45
  223. package/commonjs/xlsx/parseXlsxFileContentsWithOptionalSchema.js.map +0 -1
  224. package/commonjs/xlsx/schema/mapToObjects.js +0 -482
  225. package/commonjs/xlsx/schema/mapToObjects.js.map +0 -1
  226. package/commonjs/xlsx/schema/mapToObjects.test.js.map +0 -1
  227. package/modules/export/readSheetNamesBrowser.js +0 -17
  228. package/modules/export/readSheetNamesBrowser.js.map +0 -1
  229. package/modules/export/readSheetNamesNode.js +0 -17
  230. package/modules/export/readSheetNamesNode.js.map +0 -1
  231. package/modules/export/readSheetNamesUniversal.js +0 -17
  232. package/modules/export/readSheetNamesUniversal.js.map +0 -1
  233. package/modules/export/readSheetNamesWebWorker.js +0 -17
  234. package/modules/export/readSheetNamesWebWorker.js.map +0 -1
  235. package/modules/types/Boolean.js.map +0 -1
  236. package/modules/types/Date.js +0 -29
  237. package/modules/types/Date.js.map +0 -1
  238. package/modules/types/Email.js.map +0 -1
  239. package/modules/types/Email.test.js.map +0 -1
  240. package/modules/types/Integer.js.map +0 -1
  241. package/modules/types/Integer.test.js.map +0 -1
  242. package/modules/types/InvalidError.js.map +0 -1
  243. package/modules/types/Number.js.map +0 -1
  244. package/modules/types/String.js.map +0 -1
  245. package/modules/types/URL.js.map +0 -1
  246. package/modules/types/URL.test.js.map +0 -1
  247. package/modules/xlsx/coordinates.js +0 -48
  248. package/modules/xlsx/coordinates.js.map +0 -1
  249. package/modules/xlsx/getData.js.map +0 -1
  250. package/modules/xlsx/isDateTimestamp.js.map +0 -1
  251. package/modules/xlsx/parseDate.js +0 -67
  252. package/modules/xlsx/parseDate.js.map +0 -1
  253. package/modules/xlsx/parseDate.test.js.map +0 -1
  254. package/modules/xlsx/parseDimensions.js.map +0 -1
  255. package/modules/xlsx/parseProperties.js +0 -41
  256. package/modules/xlsx/parseProperties.js.map +0 -1
  257. package/modules/xlsx/parseXlsxFileContents.js +0 -114
  258. package/modules/xlsx/parseXlsxFileContents.js.map +0 -1
  259. package/modules/xlsx/parseXlsxFileContentsWithOptionalSchema.js +0 -39
  260. package/modules/xlsx/parseXlsxFileContentsWithOptionalSchema.js.map +0 -1
  261. package/modules/xlsx/schema/mapToObjects.js +0 -472
  262. package/modules/xlsx/schema/mapToObjects.js.map +0 -1
  263. package/modules/xlsx/schema/mapToObjects.test.js.map +0 -1
  264. package/types.d.ts +0 -121
  265. /package/commonjs/{types → parseData}/InvalidError.js +0 -0
  266. /package/modules/{types → parseData}/InvalidError.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"xpathBrowser.js","names":["xpath","document","node","path","namespaces","arguments","length","undefined","nodes","evaluate","prefix","XPathResult","ANY_TYPE","results","result","iterateNext","push"],"sources":["../../../source/xml/xpath/xpathBrowser.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nexport default function xpath(document, node, path, namespaces = {}) {\r\n\tconst nodes = document.evaluate(\r\n\t\tpath,\r\n\t\tnode || document,\r\n\t\tprefix => namespaces[prefix],\r\n\t\tXPathResult.ANY_TYPE,\r\n\t\tnull\r\n\t)\r\n\t// Convert iterator to an array.\r\n\tconst results = []\r\n\tlet result = nodes.iterateNext()\r\n\twhile (result) {\r\n\t\tresults.push(result)\r\n\t\tresult = nodes.iterateNext()\r\n\t}\r\n\treturn results\r\n}"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,KAAKA,CAACC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClE,IAAMG,KAAK,GAAGP,QAAQ,CAACQ,QAAQ,CAC9BN,IAAI,EACJD,IAAI,IAAID,QAAQ,EAChB,UAAAS,MAAM;IAAA,OAAIN,UAAU,CAACM,MAAM,CAAC;EAAA,GAC5BC,WAAW,CAACC,QAAQ,EACpB,IACD,CAAC;EACD;EACA,IAAMC,OAAO,GAAG,EAAE;EAClB,IAAIC,MAAM,GAAGN,KAAK,CAACO,WAAW,CAAC,CAAC;EAChC,OAAOD,MAAM,EAAE;IACdD,OAAO,CAACG,IAAI,CAACF,MAAM,CAAC;IACpBA,MAAM,GAAGN,KAAK,CAACO,WAAW,CAAC,CAAC;EAC7B;EACA,OAAOF,OAAO;AACf"}
1
+ {"version":3,"file":"xpathBrowser.js","names":["xpath","document","element","path","namespaces","arguments","length","undefined","elements","evaluate","prefix","XPathResult","ANY_TYPE","results","result","iterateNext","push"],"sources":["../../../source/xml/xpath/xpathBrowser.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nexport default function xpath(document, element, path, namespaces = {}) {\r\n\tconst elements = document.evaluate(\r\n\t\tpath,\r\n\t\telement || document,\r\n\t\tprefix => namespaces[prefix],\r\n\t\tXPathResult.ANY_TYPE,\r\n\t\tnull\r\n\t)\r\n\t// Convert iterator to an array.\r\n\tconst results = []\r\n\tlet result = elements.iterateNext()\r\n\twhile (result) {\r\n\t\tresults.push(result)\r\n\t\tresult = elements.iterateNext()\r\n\t}\r\n\treturn results\r\n}"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,KAAKA,CAACC,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACrE,IAAMG,QAAQ,GAAGP,QAAQ,CAACQ,QAAQ,CACjCN,IAAI,EACJD,OAAO,IAAID,QAAQ,EACnB,UAAAS,MAAM;IAAA,OAAIN,UAAU,CAACM,MAAM,CAAC;EAAA,GAC5BC,WAAW,CAACC,QAAQ,EACpB,IACD,CAAC;EACD;EACA,IAAMC,OAAO,GAAG,EAAE;EAClB,IAAIC,MAAM,GAAGN,QAAQ,CAACO,WAAW,CAAC,CAAC;EACnC,OAAOD,MAAM,EAAE;IACdD,OAAO,CAACG,IAAI,CAACF,MAAM,CAAC;IACpBA,MAAM,GAAGN,QAAQ,CAACO,WAAW,CAAC,CAAC;EAChC;EACA,OAAOF,OAAO;AACf"}
@@ -1,9 +1,9 @@
1
1
  // This file is no longer used.
2
2
 
3
3
  import xpath from 'xpath';
4
- export default function (document, node, path) {
4
+ export default function (document, element, path) {
5
5
  var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
6
6
  var select = xpath.useNamespaces(namespaces);
7
- return select(path, node || document);
7
+ return select(path, element || document);
8
8
  }
9
9
  //# sourceMappingURL=xpathNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xpathNode.js","names":["xpath","document","node","path","namespaces","arguments","length","undefined","select","useNamespaces"],"sources":["../../../source/xml/xpath/xpathNode.js"],"sourcesContent":["// This file is no longer used.\r\n\r\nimport xpath from 'xpath'\r\n\r\nexport default function(document, node, path, namespaces = {}) {\r\n\tconst select = xpath.useNamespaces(namespaces)\r\n\treturn select(path, node || document)\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,eAAe,UAASC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC5D,IAAMG,MAAM,GAAGR,KAAK,CAACS,aAAa,CAACL,UAAU,CAAC;EAC9C,OAAOI,MAAM,CAACL,IAAI,EAAED,IAAI,IAAID,QAAQ,CAAC;AACtC"}
1
+ {"version":3,"file":"xpathNode.js","names":["xpath","document","element","path","namespaces","arguments","length","undefined","select","useNamespaces"],"sources":["../../../source/xml/xpath/xpathNode.js"],"sourcesContent":["// This file is no longer used.\r\n\r\nimport xpath from 'xpath'\r\n\r\nexport default function(document, element, path, namespaces = {}) {\r\n\tconst select = xpath.useNamespaces(namespaces)\r\n\treturn select(path, element || document)\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,eAAe,UAASC,QAAQ,EAAEC,OAAO,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/D,IAAMG,MAAM,GAAGR,KAAK,CAACS,aAAa,CAACL,UAAU,CAAC;EAC9C,OAAOI,MAAM,CAACL,IAAI,EAAED,OAAO,IAAID,QAAQ,CAAC;AACzC"}
package/node/index.cjs CHANGED
@@ -1,7 +1,10 @@
1
1
  exports = module.exports = require('../commonjs/export/readXlsxFileNode.js').default
2
2
  exports['default'] = require('../commonjs/export/readXlsxFileNode.js').default
3
- exports.readSheetNames = require('../commonjs/export/readSheetNamesNode.js').default
4
- exports.parseExcelDate = require('../commonjs/xlsx/parseDate.js').default
5
- exports.Integer = require('../commonjs/types/Integer.js').default
6
- exports.Email = require('../commonjs/types/Email.js').default
7
- exports.URL = require('../commonjs/types/URL.js').default
3
+
4
+ exports.readSheet = require('../commonjs/export/readSheetNode.js').default
5
+
6
+ // `parseData()`
7
+ exports.parseData = require('../commonjs/parseData/parseData.js').default
8
+ exports.Integer = require('../commonjs/parseData/types/additional/Integer.js').default
9
+ exports.Email = require('../commonjs/parseData/types/additional/Email.js').default
10
+ exports.URL = require('../commonjs/parseData/types/additional/URL.js').default
package/node/index.d.ts CHANGED
@@ -1,36 +1,71 @@
1
- // See the discussion:
2
- // https://github.com/catamphetamine/read-excel-file/issues/71
1
+ // The contents of this file is identical between the different exports:
2
+ // `/node`, `/browser`, etc.
3
3
 
4
- import { PathLike } from 'fs';
5
- import { Stream } from 'stream';
6
- import { Blob } from 'buffer'
4
+ import { Input } from './input.d.js'
7
5
 
8
6
  import {
9
- ParseWithSchemaOptions,
10
- ParseWithoutSchemaOptions,
11
- ParsedObjectsResult,
12
- Row
13
- } from '../types.d.js';
7
+ SheetData,
8
+ ReadOptions,
9
+ ReadFileResult
10
+ } from '../types/types.d.js';
11
+
12
+ import {
13
+ ParseDataOptions,
14
+ ParseDataResult
15
+ } from '../types/parseData/parseData.d.js';
16
+
17
+ import {
18
+ Schema
19
+ } from '../types/parseData/parseDataSchema.d.js';
14
20
 
15
21
  export {
16
- Schema,
17
- ParsedObjectsResult,
18
- SchemaParseCellValueError,
19
- CellValueRequiredError,
20
22
  CellValue,
21
23
  Row,
24
+ SheetData
25
+ } from '../types/types.d.js';
26
+
27
+ export {
28
+ ParseDataValueCustomType as ParseDataValueType,
29
+ // Additional built-in `type`s when parsing data.
22
30
  Integer,
23
31
  Email,
24
32
  URL
25
- } from '../types.d.js';
33
+ } from '../types/parseData/parseDataValueType.d.js';
26
34
 
27
- export function parseExcelDate(excelSerialDate: number) : typeof Date;
35
+ export {
36
+ ParseDataError,
37
+ ParseDataValueRequiredError
38
+ } from '../types/parseData/parseDataError.d.js';
39
+
40
+ export {
41
+ ParseDataResult
42
+ } from '../types/parseData/parseData.d.js';
43
+
44
+ export {
45
+ Schema
46
+ } from '../types/parseData/parseDataSchema.d.js';
28
47
 
29
- type Input = Stream | Buffer | PathLike | Blob;
48
+ export default function readXlsxFile<ParsedNumber = number>(
49
+ input: Input,
50
+ options?: ReadOptions<ParsedNumber>
51
+ ): Promise<ReadFileResult<ParsedNumber>>;
30
52
 
31
- export function readXlsxFile<T extends object>(input: Input, options: ParseWithSchemaOptions<T>) : Promise<ParsedObjectsResult<T>>;
32
- export function readXlsxFile(input: Input, options?: ParseWithoutSchemaOptions) : Promise<Row[]>;
53
+ export function readSheet<ParsedNumber = number>(
54
+ input: Input,
55
+ sheet?: number | string,
56
+ options?: ReadOptions<ParsedNumber>
57
+ ): Promise<SheetData<ParsedNumber>>;
33
58
 
34
- export function readSheetNames(input: Input) : Promise<string[]>;
59
+ export function readSheet<ParsedNumber = number>(
60
+ input: Input,
61
+ options?: ReadOptions<ParsedNumber>
62
+ ): Promise<SheetData<ParsedNumber>>;
35
63
 
36
- export default readXlsxFile;
64
+ export function parseData<
65
+ Object extends object,
66
+ ColumnTitle extends string
67
+ >(
68
+ data: SheetData,
69
+ schema: Schema<Object, ColumnTitle>,
70
+ options?: ParseDataOptions
71
+ ): ParseDataResult<Object>;
package/node/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  export { default as default } from '../modules/export/readXlsxFileNode.js'
2
- export { default as readSheetNames } from '../modules/export/readSheetNamesNode.js'
3
- export { default as parseExcelDate } from '../modules/xlsx/parseDate.js'
4
- export { default as Integer } from '../modules/types/Integer.js'
5
- export { default as Email } from '../modules/types/Email.js'
6
- export { default as URL } from '../modules/types/URL.js'
2
+ export { default as readSheet } from '../modules/export/readSheetNode.js'
3
+
4
+ // `parseData()`
5
+ export { default as parseData } from '../modules/parseData/parseData.js'
6
+ export { default as Integer } from '../modules/parseData/types/additional/Integer.js'
7
+ export { default as Email } from '../modules/parseData/types/additional/Email.js'
8
+ export { default as URL } from '../modules/parseData/types/additional/URL.js'
@@ -0,0 +1,5 @@
1
+ import { Stream } from 'stream';
2
+ import { Blob } from 'buffer';
3
+
4
+ // FYI: `Buffer` is also an `ArrayBuffer`.
5
+ export type Input = string | Stream | Blob | Buffer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "7.0.3",
3
+ "version": "8.0.0",
4
4
  "description": "Read `.xlsx` files in a web browser or in Node.js",
5
5
  "type": "module",
6
6
  "exports": {
package/rollup.config.mjs CHANGED
@@ -22,7 +22,7 @@ export default [
22
22
  ],
23
23
  output: {
24
24
  format: 'umd',
25
- name: 'readXlsxFile',
25
+ name: 'readExcelFile',
26
26
  file: 'bundle/read-excel-file.min.js',
27
27
  sourcemap: true,
28
28
  globals: {
@@ -0,0 +1,38 @@
1
+ import { ParseDataPossibleError } from './parseDataError.d.js'
2
+ import { ParseDataValueCustomType } from './parseDataValueType.d.js'
3
+
4
+ export type ParseDataResult<
5
+ Object,
6
+ ParseDataValueCustomType_ extends ParseDataValueCustomType<unknown> = never
7
+ > = ParseDataResultItem<
8
+ Object,
9
+ ParseDataValueCustomType_
10
+ >[]
11
+
12
+ type ParseDataResultItem<
13
+ Object,
14
+ ParseDataValueCustomType_ extends ParseDataValueCustomType<unknown> = never
15
+ > =
16
+ | ParseDataResultItemSuccess<Object>
17
+ | ParseDataResultItemError<ParseDataValueCustomType_>
18
+
19
+ interface ParseDataResultItemSuccess<Object> {
20
+ object: Object;
21
+ errors: undefined;
22
+ }
23
+
24
+ interface ParseDataResultItemError<
25
+ ParseDataValueCustomType_ extends ParseDataValueCustomType<unknown> = never
26
+ > {
27
+ object: undefined;
28
+ errors: ParseDataPossibleError<ParseDataValueCustomType_>[];
29
+ }
30
+
31
+ export interface ParseDataOptions {
32
+ propertyValueWhenColumnIsMissing?: any;
33
+ propertyValueWhenCellIsEmpty?: any;
34
+ transformEmptyArray?(arrayPropertyValue: never[], parameters: { path: string }): any;
35
+ transformEmptyObject?(object: Record<string, undefined | null>, parameters: { path?: string }): any;
36
+ // shouldSkipRequiredValidationWhenColumnIsMissing?(columnTitle: string, parameters: { object: Record<string, any> }): boolean;
37
+ arrayValueSeparator?: string;
38
+ }
@@ -0,0 +1,239 @@
1
+ import { CellValue } from '../types.d.js'
2
+
3
+ import {
4
+ Constructor,
5
+ ParseDataValueCustomType,
6
+ ParseDataValueType,
7
+ Integer,
8
+ Email,
9
+ URL
10
+ } from './parseDataValueType.d.js'
11
+
12
+ // When `error` is `"required"`, `value` could only be `null` or `undefined`.
13
+ export interface ParseDataValueRequiredError<
14
+ ParseDataValueType = unknown,
15
+ ColumnTitle = string
16
+ > {
17
+ // row: number;
18
+ column: ColumnTitle;
19
+ type?: ParseDataValueType;
20
+ error: 'required';
21
+ reason: undefined;
22
+ value: null | undefined;
23
+ }
24
+
25
+ // When `error` is not `"required"`, `value` is known to not be `null` or `undefined`
26
+ // because when `value` is `null` or `undefined`, it won't be parsed at all,
27
+ // so there can't be any error thrown during parsing phase.
28
+ interface ParseDataError_<
29
+ ParseDataValueType extends ParseDataValueCustomType<unknown> | undefined = ParseDataValueCustomType<unknown>,
30
+ ColumnTitle = string,
31
+ ErrorMessage extends string = string,
32
+ ErrorReason extends string | undefined = string | undefined
33
+ > {
34
+ // row: number;
35
+ column: ColumnTitle;
36
+ type: ParseDataValueType;
37
+ error: ErrorMessage;
38
+ reason: ErrorReason;
39
+ value: CellValue;
40
+ }
41
+
42
+ export interface ParseDataError<
43
+ ParseDataValueType extends ParseDataValueCustomType<unknown> = ParseDataValueCustomType<unknown>,
44
+ ColumnTitle = string,
45
+ ErrorMessage extends string = string,
46
+ ErrorReason extends string | undefined = string | undefined
47
+ > extends ParseDataError_<
48
+ ParseDataValueType,
49
+ ColumnTitle,
50
+ ErrorMessage,
51
+ ErrorReason
52
+ > {}
53
+
54
+ interface ParseDataErrorNotABoolean<ColumnTitle = string> extends ParseDataError_<
55
+ Constructor<Boolean>,
56
+ ColumnTitle,
57
+ 'not_a_boolean',
58
+ undefined
59
+ > {
60
+ value: Exclude<CellValue, boolean>;
61
+ }
62
+
63
+ interface ParseDataErrorNotADate<ColumnTitle = string> extends ParseDataError_<
64
+ Constructor<Date>,
65
+ ColumnTitle,
66
+ 'not_a_date',
67
+ undefined
68
+ > {
69
+ value: Exclude<CellValue, typeof Date | number>;
70
+ }
71
+
72
+ interface ParseDataErrorDateOutOfBounds<ColumnTitle = string> extends ParseDataError_<
73
+ Constructor<Date>,
74
+ ColumnTitle,
75
+ 'out_of_bounds',
76
+ undefined
77
+ > {
78
+ value: typeof Date;
79
+ }
80
+
81
+ interface ParseDataErrorNotAString<ColumnTitle = string> extends ParseDataError_<
82
+ Constructor<String> | undefined,
83
+ ColumnTitle,
84
+ 'not_a_string',
85
+ undefined
86
+ > {
87
+ value: Exclude<CellValue, string | number>;
88
+ }
89
+
90
+ interface ParseDataErrorStringInvalidNumber<ColumnTitle = string> extends ParseDataError_<
91
+ Constructor<String> | undefined,
92
+ ColumnTitle,
93
+ 'invalid_number',
94
+ undefined
95
+ > {
96
+ value: number;
97
+ }
98
+
99
+ interface ParseDataErrorStringNumberOutOfBounds<ColumnTitle = string> extends ParseDataError_<
100
+ Constructor<String> | undefined,
101
+ ColumnTitle,
102
+ 'out_of_bounds',
103
+ undefined
104
+ > {
105
+ value: number;
106
+ }
107
+
108
+ interface ParseDataErrorNotANumber<
109
+ Type extends ParseDataValueCustomType<unknown> | undefined = Constructor<Number>,
110
+ ColumnTitle = string
111
+ > extends ParseDataError_<
112
+ Type,
113
+ ColumnTitle,
114
+ 'not_a_number',
115
+ undefined
116
+ > {
117
+ value: Exclude<CellValue, number | string>;
118
+ }
119
+
120
+ interface ParseDataErrorNotANumberString<
121
+ Type extends ParseDataValueCustomType<unknown> | undefined = Constructor<Number>,
122
+ ColumnTitle = string
123
+ > extends ParseDataError_<
124
+ Type,
125
+ ColumnTitle,
126
+ 'not_a_number',
127
+ undefined
128
+ > {
129
+ value: string;
130
+ }
131
+
132
+ interface ParseDataErrorNumberInvalid<
133
+ Type extends ParseDataValueCustomType<unknown> | undefined = Constructor<Number>,
134
+ ColumnTitle = string
135
+ > extends ParseDataError_<
136
+ Type,
137
+ ColumnTitle,
138
+ 'invalid_number',
139
+ undefined
140
+ > {
141
+ value: number | string;
142
+ }
143
+
144
+ interface ParseDataErrorNumberOutOfBounds<
145
+ Type extends ParseDataValueCustomType<unknown> | undefined = Constructor<Number>,
146
+ ColumnTitle = string
147
+ > extends ParseDataError_<
148
+ Type,
149
+ ColumnTitle,
150
+ 'out_of_bounds',
151
+ undefined
152
+ > {
153
+ value: number | string;
154
+ }
155
+
156
+ type ParseDataBaseValueTypeError<ColumnTitle = string> =
157
+ | ParseDataErrorNotABoolean<ColumnTitle>
158
+ | ParseDataErrorNotADate<ColumnTitle>
159
+ | ParseDataErrorDateOutOfBounds<ColumnTitle>
160
+ | ParseDataErrorNotAString<ColumnTitle>
161
+ | ParseDataErrorStringInvalidNumber<ColumnTitle>
162
+ | ParseDataErrorStringNumberOutOfBounds<ColumnTitle>
163
+ | ParseDataErrorNotANumber<Constructor<Number>, ColumnTitle>
164
+ | ParseDataErrorNotANumberString<Constructor<Number>, ColumnTitle>
165
+ | ParseDataErrorNumberInvalid<Constructor<Number>, ColumnTitle>
166
+ | ParseDataErrorNumberOutOfBounds<Constructor<Number>, ColumnTitle>;
167
+
168
+ interface ParseDataErrorNotAnInteger<ColumnTitle = string> extends ParseDataError_<
169
+ typeof Integer,
170
+ ColumnTitle,
171
+ 'not_an_integer',
172
+ undefined
173
+ > {
174
+ value: number | string;
175
+ }
176
+
177
+ interface ParseDataErrorIntegerNotANumber<ColumnTitle = string> extends ParseDataErrorNotANumber<typeof Integer, ColumnTitle> {}
178
+ interface ParseDataErrorIntegerNotANumberString<ColumnTitle = string> extends ParseDataErrorNotANumberString<typeof Integer, ColumnTitle> {}
179
+ interface ParseDataErrorIntegerNumberInvalid<ColumnTitle = string> extends ParseDataErrorNumberInvalid<typeof Integer, ColumnTitle> {}
180
+ interface ParseDataErrorIntegerNumberOutOfBounds<ColumnTitle = string> extends ParseDataErrorNumberOutOfBounds<typeof Integer, ColumnTitle> {}
181
+
182
+ interface ParseDataErrorNotAUrl<ColumnTitle = string> extends ParseDataError_<
183
+ typeof URL,
184
+ ColumnTitle,
185
+ 'not_a_url',
186
+ undefined
187
+ > {
188
+ value: string;
189
+ }
190
+
191
+ interface ParseDataErrorUrlNotAString<ColumnTitle = string> extends ParseDataError_<
192
+ typeof URL,
193
+ ColumnTitle,
194
+ 'not_a_string',
195
+ undefined
196
+ > {
197
+ value: Exclude<CellValue, string>;
198
+ }
199
+
200
+ interface ParseDataErrorNotAnEmail<ColumnTitle = string> extends ParseDataError_<
201
+ typeof Email,
202
+ ColumnTitle,
203
+ 'not_an_email',
204
+ undefined
205
+ > {
206
+ value: string;
207
+ }
208
+
209
+ interface ParseDataErrorEmailNotAString<ColumnTitle = string> extends ParseDataError_<
210
+ typeof Email,
211
+ ColumnTitle,
212
+ 'not_a_string',
213
+ undefined
214
+ > {
215
+ value: Exclude<CellValue, string>;
216
+ }
217
+
218
+ type ParseDataAdditionalBuiltInValueTypeError<ColumnTitle = string> =
219
+ | ParseDataErrorNotAnInteger<ColumnTitle>
220
+ | ParseDataErrorIntegerNotANumber<ColumnTitle>
221
+ | ParseDataErrorIntegerNotANumberString<ColumnTitle>
222
+ | ParseDataErrorIntegerNumberInvalid<ColumnTitle>
223
+ | ParseDataErrorIntegerNumberOutOfBounds<ColumnTitle>
224
+ | ParseDataErrorNotAUrl<ColumnTitle>
225
+ | ParseDataErrorUrlNotAString<ColumnTitle>
226
+ | ParseDataErrorNotAnEmail<ColumnTitle>
227
+ | ParseDataErrorEmailNotAString<ColumnTitle>;
228
+
229
+ type ParseDataBuiltInValueTypeError<ColumnTitle = string> =
230
+ | ParseDataBaseValueTypeError<ColumnTitle>
231
+ | ParseDataAdditionalBuiltInValueTypeError<ColumnTitle>;
232
+
233
+ export type ParseDataPossibleError<
234
+ ParseDataValueCustomType_ extends ParseDataValueCustomType<unknown>,
235
+ ColumnTitle = string
236
+ > =
237
+ | ParseDataBuiltInValueTypeError<ColumnTitle>
238
+ | ParseDataValueRequiredError<ParseDataValueType<ParseDataValueCustomType_>, ColumnTitle>
239
+ | ParseDataError<ParseDataValueType<ParseDataValueCustomType_>, ColumnTitle>;
@@ -0,0 +1,48 @@
1
+ import { ParseDataValueType, ParseDataValueCustomType } from './parseDataValueType.js'
2
+
3
+ type SchemaEntryRequiredOrNot<Object> = boolean | ((row: Object) => boolean);
4
+
5
+ interface SchemaEntryForValue<
6
+ Key extends keyof Object,
7
+ Object,
8
+ TopLevelObject,
9
+ ColumnTitle extends string
10
+ > {
11
+ column: ColumnTitle;
12
+ type?: ParseDataValueType<ParseDataValueCustomType<Object[Key]>>;
13
+ oneOf?: Object[Key][];
14
+ required?: SchemaEntryRequiredOrNot<TopLevelObject>;
15
+ validate?(value: Object[Key]): void;
16
+ }
17
+
18
+ // Implementing recursive types in TypeScript:
19
+ // https://dev.to/busypeoples/notes-on-typescript-recursive-types-and-immutability-5ck1
20
+ interface SchemaEntryRecursive<
21
+ Key extends keyof Object,
22
+ Object,
23
+ TopLevelObject,
24
+ ColumnTitle extends string
25
+ > {
26
+ schema: Record<
27
+ keyof Object[Key],
28
+ SchemaEntry<keyof Object[Key], Object[Key], TopLevelObject, ColumnTitle>
29
+ >;
30
+ required?: SchemaEntryRequiredOrNot<TopLevelObject>;
31
+ }
32
+
33
+ type SchemaEntry<
34
+ Key extends keyof Object,
35
+ Object,
36
+ TopLevelObject,
37
+ ColumnTitle extends string
38
+ > =
39
+ | SchemaEntryForValue<Key, Object, TopLevelObject, ColumnTitle>
40
+ | SchemaEntryRecursive<Key, Object, TopLevelObject, ColumnTitle>;
41
+
42
+ export type Schema<
43
+ Object = Record<string, any>,
44
+ ColumnTitle extends string = string
45
+ > = Record<
46
+ keyof Object,
47
+ SchemaEntry<keyof Object, Object, Object, ColumnTitle>
48
+ >
@@ -0,0 +1,45 @@
1
+ import { CellValue } from '../types.d.js';
2
+
3
+ // A way to define a `type = String` or `type = Number` variable in TypeScript
4
+ // is by defining it as `type: StringConstructor` or `type: NumberConstructor`.
5
+ // https://gitlab.com/catamphetamine/write-excel-file/-/issues/4#note_715204034
6
+ // https://www.typescriptlang.org/docs/handbook/2/conditional-types.html
7
+ export type Constructor<Type> =
8
+ Type extends String
9
+ ? StringConstructor
10
+ : Type extends Date
11
+ ? DateConstructor
12
+ : Type extends Number
13
+ ? NumberConstructor
14
+ : Type extends Boolean
15
+ ? BooleanConstructor
16
+ : never;
17
+
18
+ // Parsed value `type` (foundational ones).
19
+ type BaseType =
20
+ Constructor<String> |
21
+ Constructor<Date> |
22
+ Constructor<Number> |
23
+ Constructor<Boolean>;
24
+
25
+ // Parsed value `type` (custom one).
26
+ // A function that receives a cell `value` and returns a "parsed" value.
27
+ // Returning `undefined` will have same effect as returning `null`.
28
+ // When cell value is `undefined` or `null`, its `type` is completely ignored (skipped).
29
+ export type ParseDataValueCustomType<ParsedValue> = (value: CellValue) => ParsedValue | undefined | null;
30
+
31
+ // Parsed value `type` (additional built-in ones).
32
+ export function Integer(value: CellValue): number;
33
+ export function URL(value: CellValue): string;
34
+ export function Email(value: CellValue): string;
35
+
36
+ type AdditionalBuiltInParseDataValueType =
37
+ | typeof Integer
38
+ | typeof URL
39
+ | typeof Email;
40
+
41
+ // Schema entry `type`: foundational ones, additional ones, custom ones.
42
+ export type ParseDataValueType<ParseDataValueCustomType> =
43
+ | BaseType
44
+ | AdditionalBuiltInParseDataValueType
45
+ | ParseDataValueCustomType;
@@ -0,0 +1,20 @@
1
+ export type CellValue<ParsedNumber = number> =
2
+ | string
3
+ | ParsedNumber
4
+ | boolean
5
+ | typeof Date
6
+
7
+ export type Row<ParsedNumber = number> = (CellValue<ParsedNumber> | null)[]
8
+
9
+ export type SheetData<ParsedNumber = number> = Row<ParsedNumber>[]
10
+
11
+ export type ReadFileResult<ParsedNumber = number> = {
12
+ sheet: string;
13
+ data: SheetData<ParsedNumber>;
14
+ }[]
15
+
16
+ export interface ReadOptions<ParsedNumber = number> {
17
+ trim?: boolean;
18
+ parseNumber?: (string: string) => ParsedNumber;
19
+ dateFormat?: string;
20
+ }
@@ -1,7 +1,10 @@
1
1
  exports = module.exports = require('../commonjs/export/readXlsxFileUniversal.js').default
2
2
  exports['default'] = require('../commonjs/export/readXlsxFileUniversal.js').default
3
- exports.readSheetNames = require('../commonjs/export/readSheetNamesUniversal.js').default
4
- exports.parseExcelDate = require('../commonjs/xlsx/parseDate.js').default
5
- exports.Integer = require('../commonjs/types/Integer.js').default
6
- exports.Email = require('../commonjs/types/Email.js').default
7
- exports.URL = require('../commonjs/types/URL.js').default
3
+
4
+ exports.readSheet = require('../commonjs/export/readSheetUniversal.js').default
5
+
6
+ // `parseData()`
7
+ exports.parseData = require('../commonjs/parseData/parseData.js').default
8
+ exports.Integer = require('../commonjs/parseData/types/additional/Integer.js').default
9
+ exports.Email = require('../commonjs/parseData/types/additional/Email.js').default
10
+ exports.URL = require('../commonjs/parseData/types/additional/URL.js').default