read-excel-file 9.3.3 → 9.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +32 -2
- package/browser/index.cjs +3 -0
- package/browser/index.d.ts +16 -0
- package/browser/index.js +4 -1
- package/bundle/read-excel-file.min.js +1 -1
- package/bundle/read-excel-file.min.js.map +1 -1
- package/commonjs/export/convertInputToNodeStream.js +0 -12
- package/commonjs/export/convertInputToNodeStream.js.map +1 -1
- package/commonjs/export/parseSheet.js +14 -7
- package/commonjs/export/parseSheet.js.map +1 -1
- package/commonjs/export/readSheetBrowser.js +3 -6
- package/commonjs/export/readSheetBrowser.js.map +1 -1
- package/commonjs/export/readSheetNode.js +3 -6
- package/commonjs/export/readSheetNode.js.map +1 -1
- package/commonjs/export/readSheetUniversal.js +2 -2
- package/commonjs/export/readSheetUniversal.js.map +1 -1
- package/commonjs/export/readSheetWebWorker.js +5 -5
- package/commonjs/export/readSheetWebWorker.js.map +1 -1
- package/commonjs/export/readXlsxFileBrowser.js +3 -6
- package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
- package/commonjs/export/readXlsxFileNode.js +3 -6
- package/commonjs/export/readXlsxFileNode.js.map +1 -1
- package/commonjs/export/readXlsxFileUniversal.js +2 -2
- package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
- package/commonjs/export/readXlsxFileWebWorker.js +5 -5
- package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
- package/commonjs/export/unpackXlsxFileBrowser.js +15 -4
- package/commonjs/export/unpackXlsxFileBrowser.js.map +1 -1
- package/commonjs/export/unpackXlsxFileBrowser.test.js.map +1 -0
- package/commonjs/export/unpackXlsxFileNode.js +32 -5
- package/commonjs/export/unpackXlsxFileNode.js.map +1 -1
- package/commonjs/export/unpackXlsxFileNode.test.js.map +1 -0
- package/commonjs/export/unpackXlsxFileUniversal.js +14 -3
- package/commonjs/export/unpackXlsxFileUniversal.js.map +1 -1
- package/commonjs/export/unpackXlsxFileUniversal.test.js.map +1 -0
- package/commonjs/parseSheetData/parseSheetData.js +9 -6
- package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
- package/commonjs/saxen/parser.js +1 -1
- package/commonjs/saxen/parser.js.map +1 -1
- package/commonjs/utility/convertValuesFromUint8ArraysToStrings.js +100 -0
- package/commonjs/utility/convertValuesFromUint8ArraysToStrings.js.map +1 -0
- package/commonjs/xlsx/InvalidSpreadsheetError.js +55 -0
- package/commonjs/xlsx/InvalidSpreadsheetError.js.map +1 -0
- package/commonjs/xlsx/SheetNotFoundError.js +55 -0
- package/commonjs/xlsx/SheetNotFoundError.js.map +1 -0
- package/commonjs/xlsx/file/InputValidationStream.js +101 -0
- package/commonjs/xlsx/file/InputValidationStream.js.map +1 -0
- package/commonjs/xlsx/file/InputValidationStream.test.js.map +1 -0
- package/commonjs/xlsx/file/InvalidInputError.js +105 -0
- package/commonjs/xlsx/file/InvalidInputError.js.map +1 -0
- package/commonjs/xlsx/file/createFileTypeDetector.js +70 -0
- package/commonjs/xlsx/file/createFileTypeDetector.js.map +1 -0
- package/commonjs/xlsx/file/createFileTypeDetector.test.js.map +1 -0
- package/commonjs/xlsx/file/validateLeadingBytes.js +47 -0
- package/commonjs/xlsx/file/validateLeadingBytes.js.map +1 -0
- package/commonjs/xlsx/file/validateLeadingBytes.test.js.map +1 -0
- package/commonjs/xlsx/isDateFormat.js +32 -27
- package/commonjs/xlsx/isDateFormat.js.map +1 -1
- package/commonjs/xlsx/isDateFormatStyle.js +19 -21
- package/commonjs/xlsx/isDateFormatStyle.js.map +1 -1
- package/commonjs/xlsx/parseCell.js +252 -115
- package/commonjs/xlsx/parseCell.js.map +1 -1
- package/commonjs/xlsx/parseCellAddress.js +22 -18
- package/commonjs/xlsx/parseCellAddress.js.map +1 -1
- package/commonjs/xlsx/parseExcelDate.js +4 -124
- package/commonjs/xlsx/parseExcelDate.js.map +1 -1
- package/commonjs/xlsx/parseExcelDate.test.js.map +1 -1
- package/commonjs/xlsx/parseExcelTimestamp.js +139 -0
- package/commonjs/xlsx/parseExcelTimestamp.js.map +1 -0
- package/commonjs/xlsx/parseFilePaths.js +48 -47
- package/commonjs/xlsx/parseFilePaths.js.map +1 -1
- package/commonjs/xlsx/parseSharedStrings.js +91 -36
- package/commonjs/xlsx/parseSharedStrings.js.map +1 -1
- package/commonjs/xlsx/parseSheet.js +527 -69
- package/commonjs/xlsx/parseSheet.js.map +1 -1
- package/commonjs/xlsx/parseSpreadsheetContents.js +154 -83
- package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/commonjs/xlsx/parseSpreadsheetInfo.js +60 -59
- package/commonjs/xlsx/parseSpreadsheetInfo.js.map +1 -1
- package/commonjs/xlsx/parseStyles.js +75 -75
- package/commonjs/xlsx/parseStyles.js.map +1 -1
- package/commonjs/xml/parseXml.js +112 -0
- package/commonjs/xml/parseXml.js.map +1 -0
- package/commonjs/xml/parseXml.test.js.map +1 -0
- package/commonjs/xml/parseXmlStream.js.map +1 -1
- package/commonjs/xml/parseXmlStream.sax.js +69 -28
- package/commonjs/xml/parseXmlStream.sax.js.map +1 -1
- package/commonjs/xml/parseXmlStream.saxen.js +66 -40
- package/commonjs/xml/parseXmlStream.saxen.js.map +1 -1
- package/commonjs/zip/UnzipError.js +55 -0
- package/commonjs/zip/UnzipError.js.map +1 -0
- package/commonjs/zip/unzipFromArrayBuffer.js +21 -1
- package/commonjs/zip/unzipFromArrayBuffer.js.map +1 -1
- package/commonjs/zip/unzipFromArrayBuffer.test.js.map +1 -0
- package/commonjs/zip/unzipFromStream.fflate.js +43 -35
- package/commonjs/zip/unzipFromStream.fflate.js.map +1 -1
- package/commonjs/zip/unzipFromStream.js +188 -6
- package/commonjs/zip/unzipFromStream.js.map +1 -1
- package/commonjs/zip/unzipFromStream.unzipper.js +19 -34
- package/commonjs/zip/unzipFromStream.unzipper.js.map +1 -1
- package/modules/export/convertInputToNodeStream.js +0 -12
- package/modules/export/convertInputToNodeStream.js.map +1 -1
- package/modules/export/parseSheet.js +13 -6
- package/modules/export/parseSheet.js.map +1 -1
- package/modules/export/readSheetBrowser.js +3 -5
- package/modules/export/readSheetBrowser.js.map +1 -1
- package/modules/export/readSheetNode.js +3 -5
- package/modules/export/readSheetNode.js.map +1 -1
- package/modules/export/readSheetUniversal.js +2 -2
- package/modules/export/readSheetUniversal.js.map +1 -1
- package/modules/export/readSheetWebWorker.js +7 -8
- package/modules/export/readSheetWebWorker.js.map +1 -1
- package/modules/export/readXlsxFileBrowser.js +3 -5
- package/modules/export/readXlsxFileBrowser.js.map +1 -1
- package/modules/export/readXlsxFileNode.js +3 -5
- package/modules/export/readXlsxFileNode.js.map +1 -1
- package/modules/export/readXlsxFileUniversal.js +2 -2
- package/modules/export/readXlsxFileUniversal.js.map +1 -1
- package/modules/export/readXlsxFileWebWorker.js +7 -8
- package/modules/export/readXlsxFileWebWorker.js.map +1 -1
- package/modules/export/unpackXlsxFileBrowser.js +15 -4
- package/modules/export/unpackXlsxFileBrowser.js.map +1 -1
- package/modules/export/unpackXlsxFileBrowser.test.js.map +1 -0
- package/modules/export/unpackXlsxFileNode.js +32 -5
- package/modules/export/unpackXlsxFileNode.js.map +1 -1
- package/modules/export/unpackXlsxFileNode.test.js.map +1 -0
- package/modules/export/unpackXlsxFileUniversal.js +14 -3
- package/modules/export/unpackXlsxFileUniversal.js.map +1 -1
- package/modules/export/unpackXlsxFileUniversal.test.js.map +1 -0
- package/modules/parseSheetData/parseSheetData.js +9 -6
- package/modules/parseSheetData/parseSheetData.js.map +1 -1
- package/modules/saxen/parser.js +1 -1
- package/modules/saxen/parser.js.map +1 -1
- package/modules/utility/convertValuesFromUint8ArraysToStrings.js +92 -0
- package/modules/utility/convertValuesFromUint8ArraysToStrings.js.map +1 -0
- package/modules/xlsx/InvalidSpreadsheetError.js +50 -0
- package/modules/xlsx/InvalidSpreadsheetError.js.map +1 -0
- package/modules/xlsx/SheetNotFoundError.js +50 -0
- package/modules/xlsx/SheetNotFoundError.js.map +1 -0
- package/modules/xlsx/file/InputValidationStream.js +96 -0
- package/modules/xlsx/file/InputValidationStream.js.map +1 -0
- package/modules/xlsx/file/InputValidationStream.test.js.map +1 -0
- package/modules/xlsx/file/InvalidInputError.js +100 -0
- package/modules/xlsx/file/InvalidInputError.js.map +1 -0
- package/modules/xlsx/file/createFileTypeDetector.js +63 -0
- package/modules/xlsx/file/createFileTypeDetector.js.map +1 -0
- package/modules/xlsx/file/createFileTypeDetector.test.js.map +1 -0
- package/modules/xlsx/file/validateLeadingBytes.js +37 -0
- package/modules/xlsx/file/validateLeadingBytes.js.map +1 -0
- package/modules/xlsx/file/validateLeadingBytes.test.js.map +1 -0
- package/modules/xlsx/isDateFormat.js +31 -27
- package/modules/xlsx/isDateFormat.js.map +1 -1
- package/modules/xlsx/isDateFormatStyle.js +18 -21
- package/modules/xlsx/isDateFormatStyle.js.map +1 -1
- package/modules/xlsx/parseCell.js +251 -111
- package/modules/xlsx/parseCell.js.map +1 -1
- package/modules/xlsx/parseCellAddress.js +21 -18
- package/modules/xlsx/parseCellAddress.js.map +1 -1
- package/modules/xlsx/parseExcelDate.js +4 -124
- package/modules/xlsx/parseExcelDate.js.map +1 -1
- package/modules/xlsx/parseExcelDate.test.js.map +1 -1
- package/modules/xlsx/parseExcelTimestamp.js +133 -0
- package/modules/xlsx/parseExcelTimestamp.js.map +1 -0
- package/modules/xlsx/parseFilePaths.js +48 -47
- package/modules/xlsx/parseFilePaths.js.map +1 -1
- package/modules/xlsx/parseSharedStrings.js +91 -37
- package/modules/xlsx/parseSharedStrings.js.map +1 -1
- package/modules/xlsx/parseSheet.js +526 -68
- package/modules/xlsx/parseSheet.js.map +1 -1
- package/modules/xlsx/parseSpreadsheetContents.js +153 -81
- package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/modules/xlsx/parseSpreadsheetInfo.js +60 -59
- package/modules/xlsx/parseSpreadsheetInfo.js.map +1 -1
- package/modules/xlsx/parseStyles.js +75 -75
- package/modules/xlsx/parseStyles.js.map +1 -1
- package/modules/xml/parseXml.js +106 -0
- package/modules/xml/parseXml.js.map +1 -0
- package/modules/xml/parseXml.test.js.map +1 -0
- package/modules/xml/parseXmlStream.js +2 -0
- package/modules/xml/parseXmlStream.js.map +1 -1
- package/modules/xml/parseXmlStream.sax.js +69 -28
- package/modules/xml/parseXmlStream.sax.js.map +1 -1
- package/modules/xml/parseXmlStream.saxen.js +67 -40
- package/modules/xml/parseXmlStream.saxen.js.map +1 -1
- package/modules/zip/UnzipError.js +49 -0
- package/modules/zip/UnzipError.js.map +1 -0
- package/modules/zip/unzipFromArrayBuffer.js +21 -1
- package/modules/zip/unzipFromArrayBuffer.js.map +1 -1
- package/modules/zip/unzipFromArrayBuffer.test.js.map +1 -0
- package/modules/zip/unzipFromStream.fflate.js +41 -35
- package/modules/zip/unzipFromStream.fflate.js.map +1 -1
- package/modules/zip/unzipFromStream.js +124 -1
- package/modules/zip/unzipFromStream.js.map +1 -1
- package/modules/zip/unzipFromStream.unzipper.js +19 -35
- package/modules/zip/unzipFromStream.unzipper.js.map +1 -1
- package/node/index.cjs +3 -0
- package/node/index.d.ts +16 -0
- package/node/index.js +3 -0
- package/package.json +5 -3
- package/types/InvalidInputError.d.ts +16 -0
- package/types/InvalidSpreadsheetError.d.ts +4 -0
- package/types/SheetNotFoundError.d.ts +4 -0
- package/universal/index.cjs +3 -0
- package/universal/index.d.ts +16 -0
- package/universal/index.js +3 -0
- package/web-worker/index.cjs +3 -0
- package/web-worker/index.d.ts +16 -0
- package/web-worker/index.js +3 -0
- package/commonjs/export/convertValuesFromUint8ArraysToStrings.js +0 -23
- package/commonjs/export/convertValuesFromUint8ArraysToStrings.js.map +0 -1
- package/commonjs/xlsx/convertCellsToData2dArray.js +0 -84
- package/commonjs/xlsx/convertCellsToData2dArray.js.map +0 -1
- package/commonjs/xlsx/dropEmptyColumns.js +0 -40
- package/commonjs/xlsx/dropEmptyColumns.js.map +0 -1
- package/commonjs/xlsx/dropEmptyColumns.test.js.map +0 -1
- package/commonjs/xlsx/dropEmptyRows.js +0 -43
- package/commonjs/xlsx/dropEmptyRows.js.map +0 -1
- package/commonjs/xlsx/dropEmptyRows.test.js.map +0 -1
- package/commonjs/xlsx/parseCellValue.js +0 -186
- package/commonjs/xlsx/parseCellValue.js.map +0 -1
- package/commonjs/xlsx/parseNumber.js +0 -20
- package/commonjs/xlsx/parseNumber.js.map +0 -1
- package/commonjs/xlsx/parseSharedString.js +0 -64
- package/commonjs/xlsx/parseSharedString.js.map +0 -1
- package/commonjs/xlsx/parseSheetData.js +0 -68
- package/commonjs/xlsx/parseSheetData.js.map +0 -1
- package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js +0 -29
- package/commonjs/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +0 -1
- package/commonjs/xml/parseXmlStream.saxen.code.js +0 -953
- package/commonjs/xml/parseXmlStream.saxen.code.js.map +0 -1
- package/commonjs/xml/parseXmlStream.test.js.map +0 -1
- package/modules/export/convertValuesFromUint8ArraysToStrings.js +0 -17
- package/modules/export/convertValuesFromUint8ArraysToStrings.js.map +0 -1
- package/modules/xlsx/convertCellsToData2dArray.js +0 -77
- package/modules/xlsx/convertCellsToData2dArray.js.map +0 -1
- package/modules/xlsx/dropEmptyColumns.js +0 -34
- package/modules/xlsx/dropEmptyColumns.js.map +0 -1
- package/modules/xlsx/dropEmptyColumns.test.js.map +0 -1
- package/modules/xlsx/dropEmptyRows.js +0 -37
- package/modules/xlsx/dropEmptyRows.js.map +0 -1
- package/modules/xlsx/dropEmptyRows.test.js.map +0 -1
- package/modules/xlsx/parseCellValue.js +0 -180
- package/modules/xlsx/parseCellValue.js.map +0 -1
- package/modules/xlsx/parseNumber.js +0 -14
- package/modules/xlsx/parseNumber.js.map +0 -1
- package/modules/xlsx/parseSharedString.js +0 -55
- package/modules/xlsx/parseSharedString.js.map +0 -1
- package/modules/xlsx/parseSheetData.js +0 -55
- package/modules/xlsx/parseSheetData.js.map +0 -1
- package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js +0 -23
- package/modules/xlsx/reconstructSheetDimensionsFromSheetCells.js.map +0 -1
- package/modules/xml/parseXmlStream.saxen.code.js +0 -947
- package/modules/xml/parseXmlStream.saxen.code.js.map +0 -1
- package/modules/xml/parseXmlStream.test.js.map +0 -1
|
@@ -21,15 +21,17 @@
|
|
|
21
21
|
//
|
|
22
22
|
// import unzipFromArrayBufferSync from '../zip/unzipFromArrayBufferSync.js'
|
|
23
23
|
import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js';
|
|
24
|
-
import
|
|
24
|
+
import UnzipError from '../zip/UnzipError.js';
|
|
25
|
+
import InvalidInputError from '../xlsx/file/InvalidInputError.js';
|
|
25
26
|
import filterZipArchiveEntry from './filterZipArchiveEntry.js';
|
|
27
|
+
import validateLeadingBytes from '../xlsx/file/validateLeadingBytes.js';
|
|
26
28
|
import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
31
|
* Unpacks `*.xlsx` file contents.
|
|
30
32
|
* An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
|
|
31
33
|
* @param {(File|Blob|ArrayBuffer)} input
|
|
32
|
-
* @return {Promise<Record<string,
|
|
34
|
+
* @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.
|
|
33
35
|
*/
|
|
34
36
|
export default function unpackXlsxFile(input) {
|
|
35
37
|
resetCheckpoint();
|
|
@@ -40,13 +42,22 @@ export default function unpackXlsxFile(input) {
|
|
|
40
42
|
return Promise.resolve(input).then(getResultFromArrayBuffer);
|
|
41
43
|
}
|
|
42
44
|
function getResultFromArrayBuffer(arrayBuffer) {
|
|
45
|
+
validateLeadingBytes(new Uint8Array(arrayBuffer));
|
|
43
46
|
return unzipFromArrayBuffer(arrayBuffer, {
|
|
44
47
|
filter: filterZipArchiveEntry
|
|
45
|
-
}).then(
|
|
48
|
+
}).then(function (result) {
|
|
49
|
+
return result;
|
|
50
|
+
}, function (error) {
|
|
51
|
+
if (error instanceof UnzipError) {
|
|
52
|
+
throw new InvalidInputError('INVALID_ZIP', error.cause);
|
|
53
|
+
} else {
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
46
57
|
}
|
|
47
58
|
|
|
48
59
|
// function getResultFromArrayBuffer(arrayBuffer) {
|
|
49
60
|
// const result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })
|
|
50
|
-
// return Promise.resolve(
|
|
61
|
+
// return Promise.resolve(result)
|
|
51
62
|
// }
|
|
52
63
|
//# sourceMappingURL=unpackXlsxFileBrowser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpackXlsxFileBrowser.js","names":["unzipFromArrayBuffer","
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileBrowser.js","names":["unzipFromArrayBuffer","UnzipError","InvalidInputError","filterZipArchiveEntry","validateLeadingBytes","checkpoint","resetCheckpoint","unpackXlsxFile","input","File","Blob","arrayBuffer","then","getResultFromArrayBuffer","Promise","resolve","Uint8Array","filter","result","error","cause"],"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\nimport UnzipError from '../zip/UnzipError.js'\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\nimport validateLeadingBytes from '../xlsx/file/validateLeadingBytes.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n\tresetCheckpoint()\r\n\tcheckpoint('unpack files')\r\n\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\tvalidateLeadingBytes(new Uint8Array(arrayBuffer))\r\n\treturn unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry })\r\n\t\t.then(\r\n\t\t\tresult => result,\r\n\t\t\t(error) => {\r\n\t\t\t\tif (error instanceof UnzipError) {\r\n\t\t\t\t\tthrow new InvalidInputError('INVALID_ZIP', error.cause)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow error\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n}\r\n\r\n// function getResultFromArrayBuffer(arrayBuffer) {\r\n// \tconst result = unzipFromArrayBufferSync(arrayBuffer, { filter: filterZipArchiveEntry })\r\n// \treturn Promise.resolve(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;AACjE,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,iBAAiB,MAAM,mCAAmC;AACjE,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,oBAAoB,MAAM,sCAAsC;AAEvE,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;EAC9CP,oBAAoB,CAAC,IAAIY,UAAU,CAACL,WAAW,CAAC,CAAC;EACjD,OAAOX,oBAAoB,CAACW,WAAW,EAAE;IAAEM,MAAM,EAAEd;EAAsB,CAAC,CAAC,CACzES,IAAI,CACJ,UAAAM,MAAM;IAAA,OAAIA,MAAM;EAAA,GAChB,UAACC,KAAK,EAAK;IACV,IAAIA,KAAK,YAAYlB,UAAU,EAAE;MAChC,MAAM,IAAIC,iBAAiB,CAAC,aAAa,EAAEiB,KAAK,CAACC,KAAK,CAAC;IACxD,CAAC,MAAM;MACN,MAAMD,KAAK;IACZ;EACD,CACD,CAAC;AACH;;AAEA;AACA;AACA;AACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileBrowser.test.js","names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","expect","InvalidInputError","unpackXlsxFileBrowser","_callee","garbage","thrown","_callee$","_context","Buffer","from","getArrayBuffer","t0","to","be","an","code","equal","_callee2","fileData","_callee2$","_context2","_callee3","invalidZip","_callee3$","_context3","_callee4","empty","_callee4$","_context4","_callee5","xls","_callee5$","_context5","buffer","byteOffset","byteLength"],"sources":["../../source/export/unpackXlsxFileBrowser.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileBrowser from './unpackXlsxFileBrowser.js'\r\n\r\ndescribe('unpackXlsxFileBrowser', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x99, 0x99])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileBrowser(getArrayBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Returns an exact `ArrayBuffer` from a possibly-\"pooled\" `Buffer`.\r\nfunction getArrayBuffer(buffer) {\r\n\treturn buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\r\n}"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,eAAAX,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAkC,SAAA,uCAAA1D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAgE,UAAA,IAAApD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAA+D,IAAA,GAAAjE,CAAA,CAAAkE,OAAA,eAAAhE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAkC,SAAA,sCAAA7D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAgC,aAAAlE,CAAA,QAAAD,CAAA,KAAAoE,MAAA,EAAAnE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAqE,QAAA,GAAApE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAsE,UAAA,GAAArE,CAAA,KAAAD,CAAA,CAAAuE,QAAA,GAAAtE,CAAA,WAAAuE,UAAA,CAAAC,IAAA,CAAAzE,CAAA,cAAA0E,cAAAzE,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA0E,UAAA,QAAA3E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA0E,UAAA,GAAA3E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAuE,UAAA,MAAAJ,MAAA,aAAAnE,CAAA,CAAA4C,OAAA,CAAAsB,YAAA,cAAAS,KAAA,iBAAAlC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAiE,IAAA,SAAAjE,CAAA,OAAA6E,KAAA,CAAA7E,CAAA,CAAA8E,MAAA,SAAAvE,CAAA,OAAAG,CAAA,YAAAuD,KAAA,aAAA1D,CAAA,GAAAP,CAAA,CAAA8E,MAAA,OAAAzE,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA0D,IAAA,CAAAxD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA0D,IAAA,CAAAV,IAAA,OAAAU,IAAA,SAAAA,IAAA,CAAAxD,KAAA,GAAAR,CAAA,EAAAgE,IAAA,CAAAV,IAAA,OAAAU,IAAA,YAAAvD,CAAA,CAAAuD,IAAA,GAAAvD,CAAA,gBAAAqD,SAAA,CAAAd,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA2C,WAAA,GAAA7D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAgF,mBAAA,aAAA/E,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAgF,WAAA,WAAAjF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAA+E,WAAA,IAAA/E,CAAA,CAAAkF,IAAA,OAAAlF,CAAA,CAAAmF,IAAA,aAAAlF,CAAA,WAAAE,MAAA,CAAAiF,cAAA,GAAAjF,MAAA,CAAAiF,cAAA,CAAAnF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAoF,SAAA,GAAAhD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAsF,KAAA,aAAArF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA8E,OAAA,OAAA5E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAgF,mBAAA,CAAA9E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAqD,IAAA,GAAAb,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAqD,IAAA,WAAArB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAAyF,IAAA,aAAAxF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAuE,IAAA,CAAApE,CAAA,UAAAH,CAAA,CAAAwF,OAAA,aAAAzB,KAAA,WAAA/D,CAAA,CAAA4E,MAAA,SAAA7E,CAAA,GAAAC,CAAA,CAAAyF,GAAA,QAAA1F,CAAA,IAAAD,CAAA,SAAAiE,IAAA,CAAAxD,KAAA,GAAAR,CAAA,EAAAgE,IAAA,CAAAV,IAAA,OAAAU,IAAA,WAAAA,IAAA,CAAAV,IAAA,OAAAU,IAAA,QAAAjE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA6E,WAAA,EAAAxD,OAAA,EAAAmD,KAAA,WAAAA,MAAA5E,CAAA,aAAA4F,IAAA,WAAA3B,IAAA,WAAAN,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAuE,UAAA,CAAA3B,OAAA,CAAA6B,aAAA,IAAA1E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA2F,MAAA,OAAAxF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA2E,KAAA,EAAA3E,CAAA,CAAA4F,KAAA,cAAA5F,CAAA,IAAAD,CAAA,MAAA8F,IAAA,WAAAA,KAAA,SAAAxC,IAAA,WAAAtD,CAAA,QAAAuE,UAAA,IAAAG,UAAA,kBAAA1E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAmE,IAAA,KAAAnC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAA+F,OAAA5F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAA+D,IAAA,GAAA5D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAiE,UAAA,CAAAM,MAAA,MAAAvE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA8D,UAAA,CAAAjE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAiE,UAAA,iBAAAjE,CAAA,CAAA0D,MAAA,SAAA6B,MAAA,aAAAvF,CAAA,CAAA0D,MAAA,SAAAwB,IAAA,QAAA9E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA4E,IAAA,GAAAlF,CAAA,CAAA2D,QAAA,SAAA4B,MAAA,CAAAvF,CAAA,CAAA2D,QAAA,gBAAAuB,IAAA,GAAAlF,CAAA,CAAA4D,UAAA,SAAA2B,MAAA,CAAAvF,CAAA,CAAA4D,UAAA,cAAAxD,CAAA,aAAA8E,IAAA,GAAAlF,CAAA,CAAA2D,QAAA,SAAA4B,MAAA,CAAAvF,CAAA,CAAA2D,QAAA,qBAAArD,CAAA,YAAAsC,KAAA,qDAAAsC,IAAA,GAAAlF,CAAA,CAAA4D,UAAA,SAAA2B,MAAA,CAAAvF,CAAA,CAAA4D,UAAA,YAAAR,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAsE,UAAA,CAAAM,MAAA,MAAA5E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAiE,UAAA,CAAAtE,CAAA,OAAAK,CAAA,CAAA6D,MAAA,SAAAwB,IAAA,IAAAvF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAqF,IAAA,GAAArF,CAAA,CAAA+D,UAAA,QAAA5D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA0D,MAAA,IAAApE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA4D,UAAA,KAAA5D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAiE,UAAA,cAAA/D,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAS,IAAA,GAAAvD,CAAA,CAAA4D,UAAA,EAAAnC,CAAA,SAAA+D,QAAA,CAAAtF,CAAA,MAAAsF,QAAA,WAAAA,SAAAjG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAqC,IAAA,GAAAhE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAoE,IAAA,QAAAnE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAS,IAAA,yBAAAhE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAiE,IAAA,GAAAjE,CAAA,GAAAmC,CAAA,KAAAgE,MAAA,WAAAA,OAAAlG,CAAA,aAAAD,CAAA,QAAAwE,UAAA,CAAAM,MAAA,MAAA9E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAsE,UAAA,CAAAxE,CAAA,OAAAE,CAAA,CAAAoE,UAAA,KAAArE,CAAA,cAAAiG,QAAA,CAAAhG,CAAA,CAAAyE,UAAA,EAAAzE,CAAA,CAAAqE,QAAA,GAAAG,aAAA,CAAAxE,CAAA,GAAAiC,CAAA,yBAAAiE,OAAAnG,CAAA,aAAAD,CAAA,QAAAwE,UAAA,CAAAM,MAAA,MAAA9E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAsE,UAAA,CAAAxE,CAAA,OAAAE,CAAA,CAAAkE,MAAA,KAAAnE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAAyE,UAAA,kBAAAtE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA6C,aAAA,CAAAxE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAA+C,aAAA,WAAAA,cAAArG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAgE,UAAA,EAAA9D,CAAA,EAAAgE,OAAA,EAAA7D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAsG,mBAAAC,GAAA,EAAArD,OAAA,EAAAsD,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAA9E,GAAA,cAAA+E,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAA9E,GAAA,OAAApB,KAAA,GAAAmG,IAAA,CAAAnG,KAAA,WAAAoG,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAArD,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAA+E,OAAA,CAAAtC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAqD,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAA1B,OAAA,WAAAtC,OAAA,EAAAsD,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAR,MAAAhG,KAAA,IAAA6F,kBAAA,CAAAC,GAAA,EAAArD,OAAA,EAAAsD,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAjG,KAAA,cAAAiG,OAAAU,GAAA,IAAAd,kBAAA,CAAAC,GAAA,EAAArD,OAAA,EAAAsD,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAU,GAAA,KAAAX,KAAA,CAAAY,SAAA;AADA;AACA;;AAEA,SAASC,QAAQ,EAAEC,EAAE,QAAQ,OAAO;AACpC,SAASC,MAAM,QAAQ,MAAM;AAE7B,OAAOC,iBAAiB,MAAM,mCAAmC;AAEjE,OAAOC,qBAAqB,MAAM,4BAA4B;AAE9DJ,QAAQ,CAAC,uBAAuB,EAAE,YAAM;EACvCC,EAAE,CAAC,yCAAyC,eAAAT,iBAAA,eAAA/G,mBAAA,GAAAoF,IAAA,CAAE,SAAAwC,QAAA;IAAA,IAAAC,OAAA,EAAAC,MAAA;IAAA,OAAA9H,mBAAA,GAAAuB,IAAA,UAAAwG,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAnC,IAAA,GAAAmC,QAAA,CAAA9D,IAAA;QAAA;UACvC2D,OAAO,GAAGI,MAAM,CAACC,IAAI,CAAC,sCAAsC,CAAC;UAAAF,QAAA,CAAAnC,IAAA;UAAAmC,QAAA,CAAA9D,IAAA;UAAA,OAI5DyD,qBAAqB,CAACQ,cAAc,CAACN,OAAO,CAAC,CAAC;QAAA;UAAAG,QAAA,CAAA9D,IAAA;UAAA;QAAA;UAAA8D,QAAA,CAAAnC,IAAA;UAAAmC,QAAA,CAAAI,EAAA,GAAAJ,QAAA;UAEpDF,MAAM,GAAAE,QAAA,CAAAI,EAAS;QAAA;UAEhBX,MAAM,CAACK,MAAM,CAAC,CAACO,EAAE,CAACC,EAAE,CAACC,EAAE,cAAW,CAACb,iBAAiB,CAAC;UACrDD,MAAM,CAACK,MAAM,CAACU,IAAI,CAAC,CAACH,EAAE,CAACI,KAAK,CAAC,oBAAoB,CAAC;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAhC,IAAA;MAAA;IAAA,GAAA4B,OAAA;EAAA,CAClD,GAAC;EAEFJ,EAAE,CAAC,uCAAuC,eAAAT,iBAAA,eAAA/G,mBAAA,GAAAoF,IAAA,CAAE,SAAAsD,SAAA;IAAA,IAAAC,QAAA,EAAAb,MAAA;IAAA,OAAA9H,mBAAA,GAAAuB,IAAA,UAAAqH,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAhD,IAAA,GAAAgD,SAAA,CAAA3E,IAAA;QAAA;UACrCyE,QAAQ,GAAGV,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAAAW,SAAA,CAAAhD,IAAA;UAAAgD,SAAA,CAAA3E,IAAA;UAAA,OAI3JyD,qBAAqB,CAACQ,cAAc,CAACQ,QAAQ,CAAC,CAAC;QAAA;UAAAE,SAAA,CAAA3E,IAAA;UAAA;QAAA;UAAA2E,SAAA,CAAAhD,IAAA;UAAAgD,SAAA,CAAAT,EAAA,GAAAS,SAAA;UAErDf,MAAM,GAAAe,SAAA,CAAAT,EAAS;QAAA;UAEhBX,MAAM,CAACK,MAAM,CAAC,CAACO,EAAE,CAACC,EAAE,CAAChB,SAAS;QAAA;QAAA;UAAA,OAAAuB,SAAA,CAAA7C,IAAA;MAAA;IAAA,GAAA0C,QAAA;EAAA,CAC9B,GAAC;EAEFlB,EAAE,CAAC,iCAAiC,eAAAT,iBAAA,eAAA/G,mBAAA,GAAAoF,IAAA,CAAE,SAAA0D,SAAA;IAAA,IAAAC,UAAA,EAAAjB,MAAA;IAAA,OAAA9H,mBAAA,GAAAuB,IAAA,UAAAyH,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApD,IAAA,GAAAoD,SAAA,CAAA/E,IAAA;QAAA;UAC/B6E,UAAU,GAAGd,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAAAe,SAAA,CAAApD,IAAA;UAAAoD,SAAA,CAAA/E,IAAA;UAAA,OAIjDyD,qBAAqB,CAACQ,cAAc,CAACY,UAAU,CAAC,CAAC;QAAA;UAAAE,SAAA,CAAA/E,IAAA;UAAA;QAAA;UAAA+E,SAAA,CAAApD,IAAA;UAAAoD,SAAA,CAAAb,EAAA,GAAAa,SAAA;UAEvDnB,MAAM,GAAAmB,SAAA,CAAAb,EAAS;QAAA;UAEhBX,MAAM,CAACK,MAAM,CAAC,CAACO,EAAE,CAACC,EAAE,CAACC,EAAE,cAAW,CAACb,iBAAiB,CAAC;UACrDD,MAAM,CAACK,MAAM,CAACU,IAAI,CAAC,CAACH,EAAE,CAACI,KAAK,CAAC,aAAa,CAAC;QAAA;QAAA;UAAA,OAAAQ,SAAA,CAAAjD,IAAA;MAAA;IAAA,GAAA8C,QAAA;EAAA,CAC3C,GAAC;EAEFtB,EAAE,CAAC,2BAA2B,eAAAT,iBAAA,eAAA/G,mBAAA,GAAAoF,IAAA,CAAE,SAAA8D,SAAA;IAAA,IAAAC,KAAA,EAAArB,MAAA;IAAA,OAAA9H,mBAAA,GAAAuB,IAAA,UAAA6H,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAxD,IAAA,GAAAwD,SAAA,CAAAnF,IAAA;QAAA;UACzBiF,KAAK,GAAGlB,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;UAAAmB,SAAA,CAAAxD,IAAA;UAAAwD,SAAA,CAAAnF,IAAA;UAAA,OAItByD,qBAAqB,CAACQ,cAAc,CAACgB,KAAK,CAAC,CAAC;QAAA;UAAAE,SAAA,CAAAnF,IAAA;UAAA;QAAA;UAAAmF,SAAA,CAAAxD,IAAA;UAAAwD,SAAA,CAAAjB,EAAA,GAAAiB,SAAA;UAElDvB,MAAM,GAAAuB,SAAA,CAAAjB,EAAS;QAAA;UAEhBX,MAAM,CAACK,MAAM,CAAC,CAACO,EAAE,CAACC,EAAE,CAACC,EAAE,cAAW,CAACb,iBAAiB,CAAC;UACrDD,MAAM,CAACK,MAAM,CAACU,IAAI,CAAC,CAACH,EAAE,CAACI,KAAK,CAAC,SAAS,CAAC;QAAA;QAAA;UAAA,OAAAY,SAAA,CAAArD,IAAA;MAAA;IAAA,GAAAkD,QAAA;EAAA,CACvC,GAAC;EAEF1B,EAAE,CAAC,2CAA2C,eAAAT,iBAAA,eAAA/G,mBAAA,GAAAoF,IAAA,CAAE,SAAAkE,SAAA;IAAA,IAAAC,GAAA,EAAAzB,MAAA;IAAA,OAAA9H,mBAAA,GAAAuB,IAAA,UAAAiI,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAAvF,IAAA;QAAA;UAC/C;UACMqF,GAAG,GAAGtB,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAAAuB,SAAA,CAAA5D,IAAA;UAAA4D,SAAA,CAAAvF,IAAA;UAAA,OAIlEyD,qBAAqB,CAACQ,cAAc,CAACoB,GAAG,CAAC,CAAC;QAAA;UAAAE,SAAA,CAAAvF,IAAA;UAAA;QAAA;UAAAuF,SAAA,CAAA5D,IAAA;UAAA4D,SAAA,CAAArB,EAAA,GAAAqB,SAAA;UAEhD3B,MAAM,GAAA2B,SAAA,CAAArB,EAAS;QAAA;UAEhBX,MAAM,CAACK,MAAM,CAAC,CAACO,EAAE,CAACC,EAAE,CAACC,EAAE,cAAW,CAACb,iBAAiB,CAAC;UACrDD,MAAM,CAACK,MAAM,CAACU,IAAI,CAAC,CAACH,EAAE,CAACI,KAAK,CAAC,wBAAwB,CAAC;QAAA;QAAA;UAAA,OAAAgB,SAAA,CAAAzD,IAAA;MAAA;IAAA,GAAAsD,QAAA;EAAA,CACtD,GAAC;AACH,CAAC,CAAC;;AAEF;AACA,SAASnB,cAAcA,CAACuB,MAAM,EAAE;EAC/B,OAAOA,MAAM,CAACA,MAAM,CAAC3D,KAAK,CAAC2D,MAAM,CAACC,UAAU,EAAED,MAAM,CAACC,UAAU,GAAGD,MAAM,CAACE,UAAU,CAAC;AACrF"}
|
|
@@ -1,21 +1,48 @@
|
|
|
1
1
|
import unzipFromStream from '../zip/unzipFromStream.js';
|
|
2
|
+
import UnzipError from '../zip/UnzipError.js';
|
|
3
|
+
import InvalidInputError from '../xlsx/file/InvalidInputError.js';
|
|
2
4
|
import convertInputToNodeStream from './convertInputToNodeStream.js';
|
|
3
|
-
import convertValuesFromUint8ArraysToStrings from './convertValuesFromUint8ArraysToStrings.js';
|
|
4
5
|
import filterZipArchiveEntry from './filterZipArchiveEntry.js';
|
|
6
|
+
import InputValidationStream from '../xlsx/file/InputValidationStream.js';
|
|
5
7
|
import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Unpacks `*.xlsx` file contents.
|
|
9
11
|
* An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
|
|
10
12
|
* @param {(string|Stream|Buffer|Blob)} input
|
|
11
|
-
* @return {Promise<Record<string,
|
|
13
|
+
* @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.
|
|
12
14
|
*/
|
|
13
15
|
export default function unpackXlsxFile(input) {
|
|
14
16
|
resetCheckpoint();
|
|
15
17
|
checkpoint('unpack files');
|
|
16
18
|
var stream = convertInputToNodeStream(input);
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
return new Promise(function (resolve, reject) {
|
|
20
|
+
var streamWithInputValidation = stream
|
|
21
|
+
// Because the original `stream` reference is going to be replaced,
|
|
22
|
+
// while it still has that reference here, it should set up a listener
|
|
23
|
+
// to catch errors emitted from the input stream (for example, a file read error).
|
|
24
|
+
//
|
|
25
|
+
// That's because the .pipe() method does not automatically propagate errors
|
|
26
|
+
// from a source (input) stream to the destination stream or the end of the pipeline.
|
|
27
|
+
// You would need to attach an 'error' event handler to each stream in the chain.
|
|
28
|
+
//
|
|
29
|
+
// A more convenient alternative would be to use `stream.pipeline()` function:
|
|
30
|
+
// `pipeline(stream1, stream2, (error) => { ... })`
|
|
31
|
+
//
|
|
32
|
+
.on('error', reject)
|
|
33
|
+
// Pipe the input through file type validation stream.
|
|
34
|
+
// If the file type is invalid, the updated `stream` reference will emit
|
|
35
|
+
// an "error" event, which is going to be caught inside `unzipFromStream_()` function.
|
|
36
|
+
.pipe(new InputValidationStream());
|
|
37
|
+
unzipFromStream(streamWithInputValidation, {
|
|
38
|
+
filter: filterZipArchiveEntry
|
|
39
|
+
}).then(resolve, function (error) {
|
|
40
|
+
if (error instanceof UnzipError) {
|
|
41
|
+
reject(new InvalidInputError('INVALID_ZIP', error.cause));
|
|
42
|
+
} else {
|
|
43
|
+
reject(error);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
20
47
|
}
|
|
21
48
|
//# sourceMappingURL=unpackXlsxFileNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpackXlsxFileNode.js","names":["unzipFromStream","
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileNode.js","names":["unzipFromStream","UnzipError","InvalidInputError","convertInputToNodeStream","filterZipArchiveEntry","InputValidationStream","checkpoint","resetCheckpoint","unpackXlsxFile","input","stream","Promise","resolve","reject","streamWithInputValidation","on","pipe","filter","then","error","cause"],"sources":["../../source/export/unpackXlsxFileNode.js"],"sourcesContent":["import unzipFromStream from '../zip/unzipFromStream.js'\r\nimport UnzipError from '../zip/UnzipError.js'\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\nimport convertInputToNodeStream from './convertInputToNodeStream.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\nimport InputValidationStream from '../xlsx/file/InputValidationStream.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n resetCheckpoint()\r\n checkpoint('unpack files')\r\n const stream = convertInputToNodeStream(input)\r\n return new Promise((resolve, reject) => {\r\n const streamWithInputValidation = stream\r\n // Because the original `stream` reference is going to be replaced,\r\n // while it still has that reference here, it should set up a listener\r\n // to catch errors emitted from the input stream (for example, a file read error).\r\n //\r\n // That's because the .pipe() method does not automatically propagate errors\r\n // from a source (input) stream to the destination stream or the end of the pipeline.\r\n // You would need to attach an 'error' event handler to each stream in the chain.\r\n //\r\n // A more convenient alternative would be to use `stream.pipeline()` function:\r\n // `pipeline(stream1, stream2, (error) => { ... })`\r\n //\r\n .on('error', reject)\r\n // Pipe the input through file type validation stream.\r\n // If the file type is invalid, the updated `stream` reference will emit\r\n // an \"error\" event, which is going to be caught inside `unzipFromStream_()` function.\r\n .pipe(new InputValidationStream())\r\n\r\n unzipFromStream(streamWithInputValidation, { filter: filterZipArchiveEntry })\r\n .then(\r\n resolve,\r\n (error) => {\r\n if (error instanceof UnzipError) {\r\n reject(new InvalidInputError('INVALID_ZIP', error.cause))\r\n } else {\r\n reject(error)\r\n }\r\n }\r\n )\r\n })\r\n}"],"mappings":"AAAA,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,iBAAiB,MAAM,mCAAmC;AACjE,OAAOC,wBAAwB,MAAM,+BAA+B;AACpE,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,qBAAqB,MAAM,uCAAuC;AAEzE,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,OAAO,IAAIE,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;IACtC,IAAMC,yBAAyB,GAAGJ;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAAA,CACCK,EAAE,CAAC,OAAO,EAAEF,MAAM;IACnB;IACA;IACA;IAAA,CACCG,IAAI,CAAC,IAAIX,qBAAqB,CAAC,CAAC,CAAC;IAEpCL,eAAe,CAACc,yBAAyB,EAAE;MAAEG,MAAM,EAAEb;IAAsB,CAAC,CAAC,CAC1Ec,IAAI,CACHN,OAAO,EACP,UAACO,KAAK,EAAK;MACT,IAAIA,KAAK,YAAYlB,UAAU,EAAE;QAC/BY,MAAM,CAAC,IAAIX,iBAAiB,CAAC,aAAa,EAAEiB,KAAK,CAACC,KAAK,CAAC,CAAC;MAC3D,CAAC,MAAM;QACLP,MAAM,CAACM,KAAK,CAAC;MACf;IACF,CACF,CAAC;EACL,CAAC,CAAC;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileNode.test.js","names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","expect","Readable","InvalidInputError","unpackXlsxFileNode","_callee","garbage","thrown","_callee$","_context","Buffer","from","createStreamFromBuffer","t0","to","be","an","code","equal","_callee2","_callee2$","_context2","chunkSize","_callee3","fileData","_callee3$","_context3","_callee4","_callee4$","_context4","_callee5","invalidZip","_callee5$","_context5","_callee6","empty","_callee6$","_context6","_callee7","xls","_callee7$","_context7","_callee8","_callee8$","_context8","buffer","_ref9","_ref9$chunkSize","chunks","subarray","alloc"],"sources":["../../source/export/unpackXlsxFileNode.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport { Readable } from 'node:stream'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileNode from './unpackXlsxFileNode.js'\r\n\r\ndescribe('unpackXlsxFileNode', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should reject on invalid (non-zip) data (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(garbage, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(fileData, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\t// Breakdown of the Structure\r\n\t\t// * Signature (50 4B 03 04): The correct first 4 bytes for a local ZIP file header (\"PK\\x03\\x04\").\r\n\t\t// * Version & Flags (14 00 00 00): Minimum version needed to extract and general purpose flags.\r\n\t\t// * Compression Method (08 00): Set to 8 (deflated).\r\n\t\t// * CRC-32 & Sizes (00 00 00 00 ...): Placeholders for data sizes and checksum.\r\n\t\t// * File Name Length (05 00): Name length set to 5 bytes.\r\n\t\t// * Extra Field Length (00 00): No extra fields.\r\n\t\t// * File Name (61 2E 74 78 75): Encodes the filename \"a.txu\".\r\n\t\t// * Corrupt Data Body (6E 6D 61 74): Invalid or truncated compressed stream payload that fails decompression and triggers an extraction error.\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x03, 0x04, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x61, 0x2E, 0x74, 0x78, 0x75, 0x6E, 0x6D, 0x61, 0x74])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\r\n\t\t// It looks like `fflate`'s `Unzip` doesn't ever complain about whatever data is thrown at it.\r\n\t\t// Due to how `.zip` file format is defined, \"garbage\" data could be placed at various\r\n\t\t// places in it and it'd still be a valid `.zip` archive. It's likely that for this reason\r\n\t\t// `fflate` doesn't ever complain and simply emits no entries when fed any kind of invalid data.\r\n\t\t//\r\n\t\t// So in case of using `unzipFromStream.fflate.js`, `thrown` will be `undefined`.\r\n\t\t// But it won't be `undefined` in case of using `unzipFromStream.unzipper.js`.\r\n\t\t//\r\n\t\tif (thrown) {\r\n\t\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t\t}\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file (when the input is split across one-byte chunks)', async () => {\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileNode(createStreamFromBuffer(xls, { chunkSize: 1 }))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Creates a Node.js Stream from a given `buffer` containing the data.\r\n// The stream will split the data into `chunkSize`-byte chunks.\r\n// (this is used to exercise reading across arbitrary chunk boundaries)\r\nfunction createStreamFromBuffer(buffer, { chunkSize = buffer.length } = {}) {\r\n\tconst chunks = []\r\n\tfor (let i = 0; i < buffer.length; i += chunkSize) {\r\n\t\tchunks.push(buffer.subarray(i, i + chunkSize))\r\n\t}\r\n\treturn Readable.from(chunks.length > 0 ? chunks : [Buffer.alloc(0)])\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js';
|
|
2
|
-
import
|
|
2
|
+
import UnzipError from '../zip/UnzipError.js';
|
|
3
|
+
import InvalidInputError from '../xlsx/file/InvalidInputError.js';
|
|
3
4
|
import filterZipArchiveEntry from './filterZipArchiveEntry.js';
|
|
5
|
+
import validateLeadingBytes from '../xlsx/file/validateLeadingBytes.js';
|
|
4
6
|
import checkpoint, { resetCheckpoint } from '../utility/checkpoint.js';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Unpacks `*.xlsx` file contents.
|
|
8
10
|
* An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.
|
|
9
11
|
* @param {(Blob|ArrayBuffer)} input
|
|
10
|
-
* @return {Promise<Record<string,
|
|
12
|
+
* @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.
|
|
11
13
|
*/
|
|
12
14
|
export default function unpackXlsxFile(input) {
|
|
13
15
|
resetCheckpoint();
|
|
14
16
|
checkpoint('unpack files');
|
|
15
17
|
return getArrayBuffer(input).then(function (arrayBuffer) {
|
|
18
|
+
validateLeadingBytes(new Uint8Array(arrayBuffer));
|
|
16
19
|
return unzipFromArrayBuffer(arrayBuffer, {
|
|
17
20
|
filter: filterZipArchiveEntry
|
|
21
|
+
}).then(function (result) {
|
|
22
|
+
return result;
|
|
23
|
+
}, function (error) {
|
|
24
|
+
if (error instanceof UnzipError) {
|
|
25
|
+
throw new InvalidInputError('INVALID_ZIP', error.cause);
|
|
26
|
+
} else {
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
18
29
|
});
|
|
19
|
-
})
|
|
30
|
+
});
|
|
20
31
|
}
|
|
21
32
|
function getArrayBuffer(input) {
|
|
22
33
|
if (input instanceof Blob) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpackXlsxFileUniversal.js","names":["unzipFromArrayBuffer","
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileUniversal.js","names":["unzipFromArrayBuffer","UnzipError","InvalidInputError","filterZipArchiveEntry","validateLeadingBytes","checkpoint","resetCheckpoint","unpackXlsxFile","input","getArrayBuffer","then","arrayBuffer","Uint8Array","filter","result","error","cause","Blob","ArrayBuffer","Promise","resolve","TypeError"],"sources":["../../source/export/unpackXlsxFileUniversal.js"],"sourcesContent":["import unzipFromArrayBuffer from '../zip/unzipFromArrayBuffer.js'\r\nimport UnzipError from '../zip/UnzipError.js'\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\nimport filterZipArchiveEntry from './filterZipArchiveEntry.js'\r\nimport validateLeadingBytes from '../xlsx/file/validateLeadingBytes.js'\r\n\r\nimport checkpoint, { resetCheckpoint } from '../utility/checkpoint.js'\r\n\r\n/**\r\n * Unpacks `*.xlsx` file contents.\r\n * An `.xlsx` file is really just a `.zip` archive with `.xml` files inside.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @return {Promise<Record<string,Uint8Array>} Resolves to an object holding `*.xlsx` file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n\tresetCheckpoint()\r\n\tcheckpoint('unpack files')\r\n\treturn getArrayBuffer(input).then((arrayBuffer) => {\r\n\t\tvalidateLeadingBytes(new Uint8Array(arrayBuffer))\r\n\t\treturn unzipFromArrayBuffer(arrayBuffer, { filter: filterZipArchiveEntry })\r\n\t\t\t.then(\r\n\t\t\t\tresult => result,\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tif (error instanceof UnzipError) {\r\n\t\t\t\t\t\tthrow new InvalidInputError('INVALID_ZIP', error.cause)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow error\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t})\r\n}\r\n\r\nfunction getArrayBuffer(input) {\r\n\tif (input instanceof Blob) {\r\n\t\treturn input.arrayBuffer()\r\n\t}\r\n\tif (input instanceof ArrayBuffer) {\r\n\t\treturn Promise.resolve(input)\r\n\t}\r\n\tthrow new TypeError('Unuspported input. Expected a `Blob` or an `ArrayBuffer`')\r\n}"],"mappings":"AAAA,OAAOA,oBAAoB,MAAM,gCAAgC;AACjE,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,iBAAiB,MAAM,mCAAmC;AACjE,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,oBAAoB,MAAM,sCAAsC;AAEvE,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,CAACE,IAAI,CAAC,UAACC,WAAW,EAAK;IAClDP,oBAAoB,CAAC,IAAIQ,UAAU,CAACD,WAAW,CAAC,CAAC;IACjD,OAAOX,oBAAoB,CAACW,WAAW,EAAE;MAAEE,MAAM,EAAEV;IAAsB,CAAC,CAAC,CACzEO,IAAI,CACJ,UAAAI,MAAM;MAAA,OAAIA,MAAM;IAAA,GAChB,UAACC,KAAK,EAAK;MACV,IAAIA,KAAK,YAAYd,UAAU,EAAE;QAChC,MAAM,IAAIC,iBAAiB,CAAC,aAAa,EAAEa,KAAK,CAACC,KAAK,CAAC;MACxD,CAAC,MAAM;QACN,MAAMD,KAAK;MACZ;IACD,CACD,CAAC;EACH,CAAC,CAAC;AACH;AAEA,SAASN,cAAcA,CAACD,KAAK,EAAE;EAC9B,IAAIA,KAAK,YAAYS,IAAI,EAAE;IAC1B,OAAOT,KAAK,CAACG,WAAW,CAAC,CAAC;EAC3B;EACA,IAAIH,KAAK,YAAYU,WAAW,EAAE;IACjC,OAAOC,OAAO,CAACC,OAAO,CAACZ,KAAK,CAAC;EAC9B;EACA,MAAM,IAAIa,SAAS,CAAC,0DAA0D,CAAC;AAChF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileUniversal.test.js","names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","it","expect","InvalidInputError","unpackXlsxFileUniversal","_callee","garbage","thrown","_callee$","_context","Buffer","from","getArrayBuffer","t0","to","be","an","code","equal","_callee2","fileData","_callee2$","_context2","_callee3","invalidZip","_callee3$","_context3","_callee4","empty","_callee4$","_context4","_callee5","xls","_callee5$","_context5","buffer","byteOffset","byteLength"],"sources":["../../source/export/unpackXlsxFileUniversal.test.js"],"sourcesContent":["// This code was originally submitted by Etienne Prothon.\r\n// https://gitlab.com/catamphetamine/read-excel-file/-/merge_requests/11\r\n\r\nimport { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport InvalidInputError from '../xlsx/file/InvalidInputError.js'\r\n\r\nimport unpackXlsxFileUniversal from './unpackXlsxFileUniversal.js'\r\n\r\ndescribe('unpackXlsxFileUniversal', () => {\r\n\tit('should reject on invalid (non-zip) data', async () => {\r\n\t\tconst garbage = Buffer.from('this is definitely not a zip archive')\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(garbage))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('FILE_NOT_SUPPORTED')\r\n\t})\r\n\r\n\tit('should not reject on valid (zip) data', async () => {\r\n\t\tconst fileData = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(fileData))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.undefined\r\n\t})\r\n\r\n\r\n\tit('should reject invalid ZIP input', async () => {\r\n\t\tconst invalidZip = Buffer.from([0x50, 0x4B, 0x99, 0x99])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(invalidZip))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('INVALID_ZIP')\r\n\t})\r\n\r\n\tit('should reject empty input', async () => {\r\n\t\tconst empty = Buffer.from([])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(empty))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('NO_DATA')\r\n\t})\r\n\r\n\tit('should reject a legacy binary `.xls` file', async () => {\r\n\t\t// The first bytes of an OLE2 Compound File — the container of a binary `.xls` file.\r\n\t\tconst xls = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])\r\n\r\n\t\tlet thrown\r\n\t\ttry {\r\n\t\t\tawait unpackXlsxFileUniversal(getArrayBuffer(xls))\r\n\t\t} catch (caught) {\r\n\t\t\tthrown = caught\r\n\t\t}\r\n\t\texpect(thrown).to.be.an.instanceof(InvalidInputError)\r\n\t\texpect(thrown.code).to.equal('XLS_FILE_NOT_SUPPORTED')\r\n\t})\r\n})\r\n\r\n// Returns an exact `ArrayBuffer` from a possibly-\"pooled\" `Buffer`.\r\nfunction getArrayBuffer(buffer) {\r\n\treturn buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)\r\n}"],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ import DateType from './types/Date.js';
|
|
|
20
20
|
import isObject from '../utility/isObject.js';
|
|
21
21
|
import checkpoint from '../utility/checkpoint.js';
|
|
22
22
|
|
|
23
|
+
// An empty cell has `null` value.
|
|
24
|
+
var EMPTY_CELL_VALUE = null;
|
|
25
|
+
|
|
23
26
|
/**
|
|
24
27
|
* Converts spreadsheet-alike data structure into an array of JSON objects.
|
|
25
28
|
*
|
|
@@ -292,7 +295,7 @@ function parseCellValue(cellValue, schemaEntry, options) {
|
|
|
292
295
|
isEmptyValue: true
|
|
293
296
|
};
|
|
294
297
|
}
|
|
295
|
-
if (cellValue ===
|
|
298
|
+
if (cellValue === EMPTY_CELL_VALUE) {
|
|
296
299
|
return {
|
|
297
300
|
value: options.propertyValueWhenCellIsEmpty,
|
|
298
301
|
isEmptyValue: true
|
|
@@ -373,9 +376,9 @@ function parseArrayValue(value, schemaEntry, options) {
|
|
|
373
376
|
*/
|
|
374
377
|
export function parseValue(value, schemaEntry, options) {
|
|
375
378
|
// `null` values (i.e. empty cells) don't get parsed.
|
|
376
|
-
if (value ===
|
|
379
|
+
if (value === EMPTY_CELL_VALUE) {
|
|
377
380
|
return {
|
|
378
|
-
value:
|
|
381
|
+
value: value,
|
|
379
382
|
isEmptyValue: true
|
|
380
383
|
};
|
|
381
384
|
}
|
|
@@ -406,9 +409,9 @@ export function parseValue(value, schemaEntry, options) {
|
|
|
406
409
|
}
|
|
407
410
|
|
|
408
411
|
// If the parsed value is empty, return it.
|
|
409
|
-
if (value ===
|
|
412
|
+
if (value === EMPTY_CELL_VALUE) {
|
|
410
413
|
return {
|
|
411
|
-
value:
|
|
414
|
+
value: value,
|
|
412
415
|
isEmptyValue: true
|
|
413
416
|
};
|
|
414
417
|
}
|
|
@@ -487,7 +490,7 @@ function parseValueUsingTypeParser(value, type) {
|
|
|
487
490
|
// Returning `undefined` from a `type` parser is treated as returning `null`.
|
|
488
491
|
if (parsedValue === undefined) {
|
|
489
492
|
return {
|
|
490
|
-
value:
|
|
493
|
+
value: EMPTY_CELL_VALUE
|
|
491
494
|
};
|
|
492
495
|
}
|
|
493
496
|
return {
|