read-excel-file 5.3.0 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +1 -1
- package/bundle/read-excel-file.min.js +2 -2
- package/bundle/read-excel-file.min.js.map +1 -1
- package/commonjs/read/coordinates.js.map +1 -1
- package/commonjs/read/dropEmptyColumns.js.map +1 -1
- package/commonjs/read/dropEmptyColumns.test.js.map +1 -1
- package/commonjs/read/dropEmptyRows.js.map +1 -1
- package/commonjs/read/dropEmptyRows.test.js.map +1 -1
- package/commonjs/read/getData.js +1 -1
- package/commonjs/read/getData.js.map +1 -1
- package/commonjs/read/parseCell.js.map +1 -1
- package/commonjs/read/parseCellValue.js.map +1 -1
- package/commonjs/read/parseCells.js.map +1 -1
- package/commonjs/read/parseDate.js.map +1 -1
- package/commonjs/read/parseDate.test.js.map +1 -1
- package/commonjs/read/parseDimensions.js +1 -1
- package/commonjs/read/parseDimensions.js.map +1 -1
- package/commonjs/read/parseFilePaths.js.map +1 -1
- package/commonjs/read/parseProperties.js.map +1 -1
- package/commonjs/read/parseSharedStrings.js.map +1 -1
- package/commonjs/read/parseSheet.js.map +1 -1
- package/commonjs/read/parseStyles.js +2 -2
- package/commonjs/read/parseStyles.js.map +1 -1
- package/commonjs/read/readSheetNamesBrowser.js.map +1 -1
- package/commonjs/read/readSheetNamesNode.js.map +1 -1
- package/commonjs/read/readSheetNamesNode.test.js.map +1 -1
- package/commonjs/read/readSheetNamesWebWorker.js.map +1 -1
- package/commonjs/read/readXlsx.js +2 -2
- package/commonjs/read/readXlsx.js.map +1 -1
- package/commonjs/read/readXlsxFileBrowser.js.map +1 -1
- package/commonjs/read/readXlsxFileContents.js +2 -2
- package/commonjs/read/readXlsxFileContents.js.map +1 -1
- package/commonjs/read/readXlsxFileNode.js.map +1 -1
- package/commonjs/read/readXlsxFileNode.test.js.map +1 -1
- package/commonjs/read/readXlsxFileWebWorker.js.map +1 -1
- package/commonjs/read/schema/convertMapToSchema.js +1 -1
- package/commonjs/read/schema/convertMapToSchema.js.map +1 -1
- package/commonjs/read/schema/convertMapToSchema.test.js.map +1 -1
- package/commonjs/read/schema/convertToJson.js +5 -5
- package/commonjs/read/schema/convertToJson.js.map +1 -1
- package/commonjs/read/schema/convertToJson.test.js.map +1 -1
- package/commonjs/read/unpackXlsxFileBrowser.js.map +1 -1
- package/commonjs/read/unpackXlsxFileNode.js.map +1 -1
- package/commonjs/types/Email.js.map +1 -1
- package/commonjs/types/Email.test.js.map +1 -1
- package/commonjs/types/Integer.js.map +1 -1
- package/commonjs/types/Integer.test.js.map +1 -1
- package/commonjs/types/URL.js.map +1 -1
- package/commonjs/types/URL.test.js.map +1 -1
- package/commonjs/xml/dom.js +1 -1
- package/commonjs/xml/dom.js.map +1 -1
- package/commonjs/xml/xlsx-xpath.js +7 -7
- package/commonjs/xml/xlsx-xpath.js.map +1 -1
- package/commonjs/xml/xlsx.js +7 -7
- package/commonjs/xml/xlsx.js.map +1 -1
- package/commonjs/xml/xml.js.map +1 -1
- package/commonjs/xml/xmlBrowser.js.map +1 -1
- package/commonjs/xml/xpathBrowser.js.map +1 -1
- package/commonjs/xml/xpathNode.js.map +1 -1
- package/{index.commonjs.js → index.cjs.js} +3 -2
- package/modules/read/coordinates.js.map +1 -1
- package/modules/read/dropEmptyColumns.js.map +1 -1
- package/modules/read/dropEmptyColumns.test.js.map +1 -1
- package/modules/read/dropEmptyRows.js.map +1 -1
- package/modules/read/dropEmptyRows.test.js.map +1 -1
- package/modules/read/getData.js +1 -1
- package/modules/read/getData.js.map +1 -1
- package/modules/read/parseCell.js.map +1 -1
- package/modules/read/parseCellValue.js.map +1 -1
- package/modules/read/parseCells.js.map +1 -1
- package/modules/read/parseDate.js.map +1 -1
- package/modules/read/parseDate.test.js.map +1 -1
- package/modules/read/parseDimensions.js +1 -1
- package/modules/read/parseDimensions.js.map +1 -1
- package/modules/read/parseFilePaths.js.map +1 -1
- package/modules/read/parseProperties.js.map +1 -1
- package/modules/read/parseSharedStrings.js.map +1 -1
- package/modules/read/parseSheet.js.map +1 -1
- package/modules/read/parseStyles.js +2 -2
- package/modules/read/parseStyles.js.map +1 -1
- package/modules/read/readSheetNamesBrowser.js.map +1 -1
- package/modules/read/readSheetNamesNode.js.map +1 -1
- package/modules/read/readSheetNamesNode.test.js.map +1 -1
- package/modules/read/readSheetNamesWebWorker.js.map +1 -1
- package/modules/read/readXlsx.js +2 -2
- package/modules/read/readXlsx.js.map +1 -1
- package/modules/read/readXlsxFileBrowser.js.map +1 -1
- package/modules/read/readXlsxFileContents.js +2 -2
- package/modules/read/readXlsxFileContents.js.map +1 -1
- package/modules/read/readXlsxFileNode.js.map +1 -1
- package/modules/read/readXlsxFileNode.test.js.map +1 -1
- package/modules/read/readXlsxFileWebWorker.js.map +1 -1
- package/modules/read/schema/convertMapToSchema.js +1 -1
- package/modules/read/schema/convertMapToSchema.js.map +1 -1
- package/modules/read/schema/convertMapToSchema.test.js.map +1 -1
- package/modules/read/schema/convertToJson.js +4 -4
- package/modules/read/schema/convertToJson.js.map +1 -1
- package/modules/read/schema/convertToJson.test.js.map +1 -1
- package/modules/read/unpackXlsxFileBrowser.js.map +1 -1
- package/modules/read/unpackXlsxFileNode.js.map +1 -1
- package/modules/types/Email.js.map +1 -1
- package/modules/types/Email.test.js.map +1 -1
- package/modules/types/Integer.js.map +1 -1
- package/modules/types/Integer.test.js.map +1 -1
- package/modules/types/URL.js.map +1 -1
- package/modules/types/URL.test.js.map +1 -1
- package/modules/xml/dom.js.map +1 -1
- package/modules/xml/xlsx-xpath.js.map +1 -1
- package/modules/xml/xlsx.js.map +1 -1
- package/modules/xml/xml.js.map +1 -1
- package/modules/xml/xmlBrowser.js.map +1 -1
- package/modules/xml/xpathBrowser.js.map +1 -1
- package/modules/xml/xpathNode.js.map +1 -1
- package/node/{index.commonjs.js → index.cjs.js} +3 -3
- package/node/package.json +1 -1
- package/package.json +4 -6
- package/{rollup.config.js → rollup.config.mjs} +0 -0
- package/schema/index.cjs.js +7 -0
- package/schema/package.json +1 -1
- package/web-worker/{index.commonjs.js → index.cjs.js} +3 -2
- package/web-worker/package.json +1 -1
- package/babel.js +0 -5
- package/schema/index.commonjs.js +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"readXlsxFileNode.test.js","names":["describe","it","schema","prop","type","Date","Number","required","Boolean","String","parse","value","rowMap","readXlsxFileNode","path","resolve","then","rows","date","getTime","should","deep","equal","convertToUTCTimezone","numberOfStudents","course","isFree","cost","title","contact","map","errors","getTimezoneOffset"],"sources":["../../source/read/readXlsxFileNode.test.js"],"sourcesContent":["import path from 'path'\r\n\r\nimport readXlsxFileNode from './readXlsxFileNode.js'\r\n\r\ndescribe('readXlsxFileNode', () => {\r\n\tit('should read *.xlsx file on Node.js and parse it to JSON', () => {\r\n\t\tconst schema = {\r\n\t\t\t'START DATE': {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\t'NUMBER OF STUDENTS': {\r\n\t\t\t\tprop: 'numberOfStudents',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\t'COURSE': {\r\n\t\t\t\tprop: 'course',\r\n\t\t\t\ttype: {\r\n\t\t\t\t\t'IS FREE': {\r\n\t\t\t\t\t\tprop: 'isFree',\r\n\t\t\t\t\t\ttype: Boolean\r\n\t\t\t\t\t\t// Excel stored booleans as numbers:\r\n\t\t\t\t\t\t// `1` is `true` and `0` is `false`.\r\n\t\t\t\t\t\t// Such numbers are parsed to booleans.\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'COST': {\r\n\t\t\t\t\t\tprop: 'cost',\r\n\t\t\t\t\t\ttype: Number\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'COURSE TITLE': {\r\n\t\t\t\t\t\tprop: 'title',\r\n\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': {\r\n\t\t\t\tprop: 'contact',\r\n\t\t\t\trequired: true,\r\n\t\t\t\tparse(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst rowMap = []\r\n\r\n\t\treturn readXlsxFileNode(path.resolve('./test/spreadsheets/course.xlsx'), { schema, rowMap }).then(({ rows }) => {\r\n\t\t\trows[0].date = rows[0].date.getTime()\r\n\t\t\trows.should.deep.equal([{\r\n\t\t\t\tdate: convertToUTCTimezone(new Date(2018, 2, 24)).getTime(),\r\n\t\t\t\tnumberOfStudents: 123,\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tisFree: false,\r\n\t\t\t\t\tcost: 210.45,\r\n\t\t\t\t\ttitle: 'Chemistry'\r\n\t\t\t\t},\r\n\t\t\t\tcontact: '+11234567890'\r\n\t\t\t}])\r\n\t\t\trowMap.should.deep.equal([0, 1])\r\n\t\t})\r\n\t})\r\n\r\n\tit('should read *.xlsx file on Node.js and map it to JSON', () => {\r\n\t\tconst map = {\r\n\t\t\t'START DATE': 'date',\r\n\t\t\t'NUMBER OF STUDENTS': 'numberOfStudents',\r\n\t\t\t'COURSE': {\r\n\t\t\t\t'course': {\r\n\t\t\t\t\t'IS FREE': 'isFree',\r\n\t\t\t\t\t'COST': 'cost',\r\n\t\t\t\t\t'COURSE TITLE': 'title'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': 'contact'\r\n\t\t}\r\n\r\n\t\tconst rowMap = []\r\n\r\n\t\treturn readXlsxFileNode(path.resolve('./test/spreadsheets/course.xlsx'), { map, rowMap }).then(({ rows, errors }) => {\r\n\t\t\terrors.should.deep.equal([])\r\n\t\t\trows[0].date = rows[0].date.getTime()\r\n\t\t\trows.should.deep.equal([{\r\n\t\t\t\tdate: convertToUTCTimezone(new Date(2018, 2, 24)).getTime(),\r\n\t\t\t\tnumberOfStudents: 123,\r\n\t\t\t\tcourse: {\r\n\t\t\t\t\tisFree: false,\r\n\t\t\t\t\tcost: 210.45,\r\n\t\t\t\t\ttitle: 'Chemistry'\r\n\t\t\t\t},\r\n\t\t\t\tcontact: '(123) 456-7890'\r\n\t\t\t}])\r\n\t\t\trowMap.should.deep.equal([0, 1])\r\n\t\t})\r\n\t})\r\n})\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"readXlsxFileWebWorker.js","names":["readXlsxFile","file","options","unpackXlsxFile","then","entries","readXlsxFileContents","xml"],"sources":["../../source/read/readXlsxFileWebWorker.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport readXlsxFileContents from './readXlsxFileContents.js'\r\n\r\n/**\r\n * Reads XLSX file into a 2D array of cells in a web worker.\r\n * @param {file} file - The file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\r\nexport default function readXlsxFile(file, options = {}) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((entries) => readXlsxFileContents(entries, xml, options))\r\n}"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,YAAT,CAAsBC,IAAtB,EAA0C;EAAA,IAAdC,OAAc,uEAAJ,EAAI;EACxD,OAAO,IAAAC,iCAAA,EAAeF,IAAf,EACLG,IADK,CACA,UAACC,OAAD;IAAA,OAAa,IAAAC,gCAAA,EAAqBD,OAArB,EAA8BE,eAA9B,EAAmCL,OAAnC,CAAb;EAAA,CADA,CAAP;AAEA"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = convertMapToSchema;
|
|
7
7
|
|
|
8
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
8
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
9
|
|
|
10
10
|
function convertMapToSchema(map) {
|
|
11
11
|
var schema = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"convertMapToSchema.js","names":["convertMapToSchema","map","schema","Object","keys","key","prop","type"],"sources":["../../../source/read/schema/convertMapToSchema.js"],"sourcesContent":["export default function convertMapToSchema(map) {\r\n\tconst schema = {}\r\n\tfor (const key of Object.keys(map)) {\r\n\t\tlet prop = map[key]\r\n\t\tlet type\r\n\t\tif (typeof prop === 'object') {\r\n\t\t\tprop = Object.keys(map[key])[0]\r\n\t\t\ttype = convertMapToSchema(map[key][prop])\r\n\t\t}\r\n\t\tschema[key] = {\r\n\t\t\tprop\r\n\t\t}\r\n\t\tif (type) {\r\n\t\t\tschema[key].type = type\r\n\t\t}\r\n\t}\r\n\treturn schema\r\n}"],"mappings":";;;;;;;;;AAAe,SAASA,kBAAT,CAA4BC,GAA5B,EAAiC;EAC/C,IAAMC,MAAM,GAAG,EAAf;;EACA,gCAAkBC,MAAM,CAACC,IAAP,CAAYH,GAAZ,CAAlB,kCAAoC;IAA/B,IAAMI,GAAG,mBAAT;IACJ,IAAIC,IAAI,GAAGL,GAAG,CAACI,GAAD,CAAd;IACA,IAAIE,IAAI,SAAR;;IACA,IAAI,QAAOD,IAAP,MAAgB,QAApB,EAA8B;MAC7BA,IAAI,GAAGH,MAAM,CAACC,IAAP,CAAYH,GAAG,CAACI,GAAD,CAAf,EAAsB,CAAtB,CAAP;MACAE,IAAI,GAAGP,kBAAkB,CAACC,GAAG,CAACI,GAAD,CAAH,CAASC,IAAT,CAAD,CAAzB;IACA;;IACDJ,MAAM,CAACG,GAAD,CAAN,GAAc;MACbC,IAAI,EAAJA;IADa,CAAd;;IAGA,IAAIC,IAAJ,EAAU;MACTL,MAAM,CAACG,GAAD,CAAN,CAAYE,IAAZ,GAAmBA,IAAnB;IACA;EACD;;EACD,OAAOL,MAAP;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"convertMapToSchema.test.js","names":["describe","it","map","convertMapToSchema","should","deep","equal","prop","type"],"sources":["../../../source/read/schema/convertMapToSchema.test.js"],"sourcesContent":["import convertMapToSchema from './convertMapToSchema.js'\r\n\r\ndescribe('convertMapToSchema', () => {\r\n\tit('should convert map to schema', () => {\r\n\t\tconst map = {\r\n\t\t\t'START DATE': 'date',\r\n\t\t\t'NUMBER OF STUDENTS': 'numberOfStudents',\r\n\t\t\t'COURSE': {\r\n\t\t\t\t'course': {\r\n\t\t\t\t\t'IS FREE': 'isFree',\r\n\t\t\t\t\t'COURSE TITLE': 'title'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': 'contact',\r\n\t\t\t'STATUS': 'status'\r\n\t\t}\r\n\t\tconvertMapToSchema(map).should.deep.equal({\r\n\t\t\t'START DATE': {\r\n\t\t\t\tprop: 'date'\r\n\t\t\t},\r\n\t\t\t'NUMBER OF STUDENTS': {\r\n\t\t\t\tprop: 'numberOfStudents'\r\n\t\t\t},\r\n\t\t\t'COURSE': {\r\n\t\t\t\tprop: 'course',\r\n\t\t\t\ttype: {\r\n\t\t\t\t\t'IS FREE': {\r\n\t\t\t\t\t\tprop: 'isFree'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'COURSE TITLE': {\r\n\t\t\t\t\t\tprop: 'title'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'CONTACT': {\r\n\t\t\t\tprop: 'contact'\r\n\t\t\t},\r\n\t\t\t'STATUS': {\r\n\t\t\t\tprop: 'status'\r\n\t\t\t}\r\n\t\t})\r\n\t})\r\n})"],"mappings":";;AAAA;;;;AAEAA,QAAQ,CAAC,oBAAD,EAAuB,YAAM;EACpCC,EAAE,CAAC,8BAAD,EAAiC,YAAM;IACxC,IAAMC,GAAG,GAAG;MACX,cAAc,MADH;MAEX,sBAAsB,kBAFX;MAGX,UAAU;QACT,UAAU;UACT,WAAW,QADF;UAET,gBAAgB;QAFP;MADD,CAHC;MASX,WAAW,SATA;MAUX,UAAU;IAVC,CAAZ;IAYA,IAAAC,8BAAA,EAAmBD,GAAnB,EAAwBE,MAAxB,CAA+BC,IAA/B,CAAoCC,KAApC,CAA0C;MACzC,cAAc;QACbC,IAAI,EAAE;MADO,CAD2B;MAIzC,sBAAsB;QACrBA,IAAI,EAAE;MADe,CAJmB;MAOzC,UAAU;QACTA,IAAI,EAAE,QADG;QAETC,IAAI,EAAE;UACL,WAAW;YACVD,IAAI,EAAE;UADI,CADN;UAIL,gBAAgB;YACfA,IAAI,EAAE;UADS;QAJX;MAFG,CAP+B;MAkBzC,WAAW;QACVA,IAAI,EAAE;MADI,CAlB8B;MAqBzC,UAAU;QACTA,IAAI,EAAE;MADG;IArB+B,CAA1C;EAyBA,CAtCC,CAAF;AAuCA,CAxCO,CAAR"}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = _default;
|
|
7
|
-
exports.parseValue = parseValue;
|
|
8
7
|
exports.getBlock = getBlock;
|
|
9
8
|
exports.parseArray = parseArray;
|
|
9
|
+
exports.parseValue = parseValue;
|
|
10
10
|
|
|
11
11
|
var _parseDate = _interopRequireDefault(require("../parseDate.js"));
|
|
12
12
|
|
|
@@ -26,11 +26,11 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
|
|
|
26
26
|
|
|
27
27
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
28
28
|
|
|
29
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr
|
|
29
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
30
30
|
|
|
31
31
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
32
32
|
|
|
33
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
33
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
34
34
|
|
|
35
35
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
36
36
|
|
|
@@ -38,9 +38,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
38
38
|
|
|
39
39
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
40
40
|
|
|
41
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
41
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
42
42
|
|
|
43
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
43
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
44
44
|
|
|
45
45
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
46
46
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../source/read/schema/convertToJson.js"],"names":["DEFAULT_OPTIONS","isColumnOriented","data","schema","options","rowMap","validateSchema","transpose","columns","results","errors","i","length","result","read","push","error","row","rows","rowIndex","object","key","schemaEntry","isNestedSchema","type","Array","isArray","rawValue","indexOf","undefined","value","notEmpty","array","parseArray","map","_value","parseValue","required","column","prop","Object","keys","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","String","isFinite","Number","Integer","stringifiedValue","parseFloat","URL","Email","Date","parseInt","date","properties","Boolean","Error","name","getBlock","string","endCharacter","startIndex","substring","character","block","blocks","index","trim","_","entry"],"mappings":"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","sourcesContent":["import parseDate from '../parseDate.js'\r\n\r\nimport Integer, { isInteger } from '../../types/Integer.js'\r\nimport URL, { isURL } from '../../types/URL.js'\r\nimport Email, { isEmail } from '../../types/Email.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n isColumnOriented: false\r\n}\r\n\r\n/**\r\n * Convert 2D array to nested objects.\r\n * If row oriented data, row 0 is dotted key names.\r\n * Column oriented data is transposed.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @return {object[]}\r\n */\r\nexport default function(data, schema, options) {\r\n if (options) {\r\n options = {\r\n ...DEFAULT_OPTIONS,\r\n ...options\r\n }\r\n } else {\r\n options = DEFAULT_OPTIONS\r\n }\r\n\r\n const {\r\n isColumnOriented,\r\n rowMap\r\n } = options\r\n\r\n validateSchema(schema)\r\n\r\n if (isColumnOriented) {\r\n data = transpose(data)\r\n }\r\n\r\n const columns = data[0]\r\n\r\n const results = []\r\n const errors = []\r\n\r\n for (let i = 1; i < data.length; i++) {\r\n const result = read(schema, data[i], i - 1, columns, errors, options)\r\n if (result) {\r\n results.push(result)\r\n }\r\n }\r\n\r\n // Correct error rows.\r\n if (rowMap) {\r\n for (const error of errors) {\r\n // Convert the `row` index in `data` to the\r\n // actual `row` index in the spreadsheet.\r\n // The `1` compensates for the header row.\r\n error.row = rowMap[error.row] + 1\r\n }\r\n }\r\n\r\n return {\r\n rows: results,\r\n errors\r\n }\r\n}\r\n\r\nfunction read(schema, row, rowIndex, columns, errors, options) {\r\n const object = {}\r\n for (const key of Object.keys(schema)) {\r\n const schemaEntry = schema[key]\r\n const isNestedSchema = typeof schemaEntry.type === 'object' && !Array.isArray(schemaEntry.type)\r\n let rawValue = row[columns.indexOf(key)]\r\n if (rawValue === undefined) {\r\n rawValue = null\r\n }\r\n let value\r\n let error\r\n if (isNestedSchema) {\r\n value = read(schemaEntry.type, row, rowIndex, columns, errors, options)\r\n } else {\r\n if (rawValue === null) {\r\n value = null\r\n }\r\n else if (Array.isArray(schemaEntry.type)) {\r\n let notEmpty = false\r\n const array = parseArray(rawValue).map((_value) => {\r\n const result = parseValue(_value, schemaEntry, options)\r\n if (result.error) {\r\n value = _value\r\n error = result.error\r\n }\r\n if (result.value !== null) {\r\n notEmpty = true\r\n }\r\n return result.value\r\n })\r\n if (!error) {\r\n value = notEmpty ? array : null\r\n }\r\n } else {\r\n const result = parseValue(rawValue, schemaEntry, options)\r\n error = result.error\r\n value = error ? rawValue : result.value\r\n }\r\n }\r\n if (!error && value === null && schemaEntry.required) {\r\n error = 'required'\r\n }\r\n if (error) {\r\n error = {\r\n error,\r\n row: rowIndex + 1,\r\n column: key,\r\n value\r\n }\r\n if (schemaEntry.type) {\r\n error.type = schemaEntry.type\r\n }\r\n errors.push(error)\r\n } else if (value !== null) {\r\n object[schemaEntry.prop] = value\r\n }\r\n }\r\n if (Object.keys(object).length > 0) {\r\n return object\r\n }\r\n return null\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\r\nexport function parseValue(value, schemaEntry, options) {\r\n if (value === null) {\r\n return { value: null }\r\n }\r\n let result\r\n if (schemaEntry.parse) {\r\n result = parseCustomValue(value, schemaEntry.parse)\r\n } else if (schemaEntry.type) {\r\n result = parseValueOfType(\r\n value,\r\n // Supports parsing array types.\r\n // See `parseArray()` function for more details.\r\n // Example `type`: String[]\r\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type,\r\n options\r\n )\r\n } else {\r\n result = { value: value }\r\n // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\r\n }\r\n // If errored then return the error.\r\n if (result.error) {\r\n return result\r\n }\r\n if (result.value !== null) {\r\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\r\n return { error: 'invalid' }\r\n }\r\n if (schemaEntry.validate) {\r\n try {\r\n schemaEntry.validate(result.value)\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\r\nfunction parseCustomValue(value, parse) {\r\n try {\r\n value = parse(value)\r\n if (value === undefined) {\r\n return { value: null }\r\n }\r\n return { value }\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string }}\r\n */\r\nfunction parseValueOfType(value, type, options) {\r\n switch (type) {\r\n case String:\r\n if (typeof value === 'string') {\r\n return { value }\r\n }\r\n // The global `isFinite()` function filters out:\r\n // * NaN\r\n // * -Infinity\r\n // * Infinity\r\n // All other values pass (including non-numbers).\r\n if (typeof value === 'number') {\r\n if (isFinite(value)) {\r\n return { value: String(value) }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Number:\r\n case Integer:\r\n // Convert strings to numbers.\r\n // Just an additional feature.\r\n // Won't happen when called from `readXlsx()`.\r\n if (typeof value === 'string') {\r\n const stringifiedValue = value\r\n value = parseFloat(value)\r\n if (String(value) !== stringifiedValue) {\r\n return { error: 'invalid' }\r\n }\r\n } else if (typeof value !== 'number') {\r\n return { error: 'invalid' }\r\n }\r\n // The global `isFinite()` function filters out:\r\n // * NaN\r\n // * -Infinity\r\n // * Infinity\r\n // All other values pass (including non-numbers).\r\n // At this point, `value` can only be a number.\r\n if (!isFinite(value)) {\r\n return { error: 'invalid' }\r\n }\r\n if (type === Integer && !isInteger(value)) {\r\n return { error: 'invalid' }\r\n }\r\n return { value }\r\n\r\n case URL:\r\n if (typeof value === 'string') {\r\n if (isURL(value)) {\r\n return { value }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Email:\r\n if (typeof value === 'string') {\r\n if (isEmail(value)) {\r\n return { value }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Date:\r\n // XLSX has no specific format for dates.\r\n // Sometimes a date can be heuristically detected.\r\n // https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\r\n if (value instanceof Date) {\r\n return { value }\r\n }\r\n if (typeof value === 'number') {\r\n if (!isFinite(value)) {\r\n return { error: 'invalid' }\r\n }\r\n value = parseInt(value)\r\n const date = parseDate(value, options.properties)\r\n if (!date) {\r\n return { error: 'invalid' }\r\n }\r\n return { value: date }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Boolean:\r\n if (typeof value === 'boolean') {\r\n return { value }\r\n }\r\n return { error: 'invalid' }\r\n\r\n default:\r\n if (typeof type === 'function') {\r\n return parseCustomValue(value, type)\r\n }\r\n throw new Error(`Unknown schema type: ${type && type.name || type}`)\r\n }\r\n}\r\n\r\nexport function getBlock(string, endCharacter, startIndex) {\r\n let i = 0\r\n let substring = ''\r\n let character\r\n while (startIndex + i < string.length) {\r\n const character = string[startIndex + i]\r\n if (character === endCharacter) {\r\n return [substring, i]\r\n }\r\n else if (character === '\"') {\r\n const block = getBlock(string, '\"', startIndex + i + 1)\r\n substring += block[0]\r\n i += '\"'.length + block[1] + '\"'.length\r\n }\r\n else {\r\n substring += character\r\n i++\r\n }\r\n }\r\n return [substring, i]\r\n}\r\n\r\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string — A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\r\nexport function parseArray(string) {\r\n const blocks = []\r\n let index = 0\r\n while (index < string.length) {\r\n const [substring, length] = getBlock(string, ',', index)\r\n index += length + ','.length\r\n blocks.push(substring.trim())\r\n }\r\n return blocks\r\n}\r\n\r\n// Transpose a 2D array.\r\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\r\nconst transpose = array => array[0].map((_, i) => array.map(row => row[i]))\r\n\r\nfunction validateSchema(schema) {\r\n for (const key of Object.keys(schema)) {\r\n const entry = schema[key]\r\n if (!entry.prop) {\r\n throw new Error(`\"prop\" not defined for schema entry \"${key}\".`)\r\n }\r\n }\r\n}"],"file":"convertToJson.js"}
|
|
1
|
+
{"version":3,"file":"convertToJson.js","names":["DEFAULT_OPTIONS","isColumnOriented","data","schema","options","rowMap","validateSchema","transpose","columns","results","errors","i","length","result","read","push","error","row","rows","rowIndex","object","key","schemaEntry","isNestedSchema","type","Array","isArray","rawValue","indexOf","undefined","value","notEmpty","array","parseArray","map","_value","parseValue","required","column","prop","Object","keys","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","String","isFinite","Number","Integer","stringifiedValue","parseFloat","isInteger","URL","isURL","Email","isEmail","Date","parseInt","date","parseDate","properties","Boolean","Error","name","getBlock","string","endCharacter","startIndex","substring","character","block","blocks","index","trim","_","entry"],"sources":["../../../source/read/schema/convertToJson.js"],"sourcesContent":["import parseDate from '../parseDate.js'\r\n\r\nimport Integer, { isInteger } from '../../types/Integer.js'\r\nimport URL, { isURL } from '../../types/URL.js'\r\nimport Email, { isEmail } from '../../types/Email.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n isColumnOriented: false\r\n}\r\n\r\n/**\r\n * Convert 2D array to nested objects.\r\n * If row oriented data, row 0 is dotted key names.\r\n * Column oriented data is transposed.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @return {object[]}\r\n */\r\nexport default function(data, schema, options) {\r\n if (options) {\r\n options = {\r\n ...DEFAULT_OPTIONS,\r\n ...options\r\n }\r\n } else {\r\n options = DEFAULT_OPTIONS\r\n }\r\n\r\n const {\r\n isColumnOriented,\r\n rowMap\r\n } = options\r\n\r\n validateSchema(schema)\r\n\r\n if (isColumnOriented) {\r\n data = transpose(data)\r\n }\r\n\r\n const columns = data[0]\r\n\r\n const results = []\r\n const errors = []\r\n\r\n for (let i = 1; i < data.length; i++) {\r\n const result = read(schema, data[i], i - 1, columns, errors, options)\r\n if (result) {\r\n results.push(result)\r\n }\r\n }\r\n\r\n // Correct error rows.\r\n if (rowMap) {\r\n for (const error of errors) {\r\n // Convert the `row` index in `data` to the\r\n // actual `row` index in the spreadsheet.\r\n // The `1` compensates for the header row.\r\n error.row = rowMap[error.row] + 1\r\n }\r\n }\r\n\r\n return {\r\n rows: results,\r\n errors\r\n }\r\n}\r\n\r\nfunction read(schema, row, rowIndex, columns, errors, options) {\r\n const object = {}\r\n for (const key of Object.keys(schema)) {\r\n const schemaEntry = schema[key]\r\n const isNestedSchema = typeof schemaEntry.type === 'object' && !Array.isArray(schemaEntry.type)\r\n let rawValue = row[columns.indexOf(key)]\r\n if (rawValue === undefined) {\r\n rawValue = null\r\n }\r\n let value\r\n let error\r\n if (isNestedSchema) {\r\n value = read(schemaEntry.type, row, rowIndex, columns, errors, options)\r\n } else {\r\n if (rawValue === null) {\r\n value = null\r\n }\r\n else if (Array.isArray(schemaEntry.type)) {\r\n let notEmpty = false\r\n const array = parseArray(rawValue).map((_value) => {\r\n const result = parseValue(_value, schemaEntry, options)\r\n if (result.error) {\r\n value = _value\r\n error = result.error\r\n }\r\n if (result.value !== null) {\r\n notEmpty = true\r\n }\r\n return result.value\r\n })\r\n if (!error) {\r\n value = notEmpty ? array : null\r\n }\r\n } else {\r\n const result = parseValue(rawValue, schemaEntry, options)\r\n error = result.error\r\n value = error ? rawValue : result.value\r\n }\r\n }\r\n if (!error && value === null && schemaEntry.required) {\r\n error = 'required'\r\n }\r\n if (error) {\r\n error = {\r\n error,\r\n row: rowIndex + 1,\r\n column: key,\r\n value\r\n }\r\n if (schemaEntry.type) {\r\n error.type = schemaEntry.type\r\n }\r\n errors.push(error)\r\n } else if (value !== null) {\r\n object[schemaEntry.prop] = value\r\n }\r\n }\r\n if (Object.keys(object).length > 0) {\r\n return object\r\n }\r\n return null\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\r\nexport function parseValue(value, schemaEntry, options) {\r\n if (value === null) {\r\n return { value: null }\r\n }\r\n let result\r\n if (schemaEntry.parse) {\r\n result = parseCustomValue(value, schemaEntry.parse)\r\n } else if (schemaEntry.type) {\r\n result = parseValueOfType(\r\n value,\r\n // Supports parsing array types.\r\n // See `parseArray()` function for more details.\r\n // Example `type`: String[]\r\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type,\r\n options\r\n )\r\n } else {\r\n result = { value: value }\r\n // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\r\n }\r\n // If errored then return the error.\r\n if (result.error) {\r\n return result\r\n }\r\n if (result.value !== null) {\r\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\r\n return { error: 'invalid' }\r\n }\r\n if (schemaEntry.validate) {\r\n try {\r\n schemaEntry.validate(result.value)\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\r\nfunction parseCustomValue(value, parse) {\r\n try {\r\n value = parse(value)\r\n if (value === undefined) {\r\n return { value: null }\r\n }\r\n return { value }\r\n } catch (error) {\r\n return { error: error.message }\r\n }\r\n}\r\n\r\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string }}\r\n */\r\nfunction parseValueOfType(value, type, options) {\r\n switch (type) {\r\n case String:\r\n if (typeof value === 'string') {\r\n return { value }\r\n }\r\n // The global `isFinite()` function filters out:\r\n // * NaN\r\n // * -Infinity\r\n // * Infinity\r\n // All other values pass (including non-numbers).\r\n if (typeof value === 'number') {\r\n if (isFinite(value)) {\r\n return { value: String(value) }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Number:\r\n case Integer:\r\n // Convert strings to numbers.\r\n // Just an additional feature.\r\n // Won't happen when called from `readXlsx()`.\r\n if (typeof value === 'string') {\r\n const stringifiedValue = value\r\n value = parseFloat(value)\r\n if (String(value) !== stringifiedValue) {\r\n return { error: 'invalid' }\r\n }\r\n } else if (typeof value !== 'number') {\r\n return { error: 'invalid' }\r\n }\r\n // The global `isFinite()` function filters out:\r\n // * NaN\r\n // * -Infinity\r\n // * Infinity\r\n // All other values pass (including non-numbers).\r\n // At this point, `value` can only be a number.\r\n if (!isFinite(value)) {\r\n return { error: 'invalid' }\r\n }\r\n if (type === Integer && !isInteger(value)) {\r\n return { error: 'invalid' }\r\n }\r\n return { value }\r\n\r\n case URL:\r\n if (typeof value === 'string') {\r\n if (isURL(value)) {\r\n return { value }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Email:\r\n if (typeof value === 'string') {\r\n if (isEmail(value)) {\r\n return { value }\r\n }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Date:\r\n // XLSX has no specific format for dates.\r\n // Sometimes a date can be heuristically detected.\r\n // https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\r\n if (value instanceof Date) {\r\n return { value }\r\n }\r\n if (typeof value === 'number') {\r\n if (!isFinite(value)) {\r\n return { error: 'invalid' }\r\n }\r\n value = parseInt(value)\r\n const date = parseDate(value, options.properties)\r\n if (!date) {\r\n return { error: 'invalid' }\r\n }\r\n return { value: date }\r\n }\r\n return { error: 'invalid' }\r\n\r\n case Boolean:\r\n if (typeof value === 'boolean') {\r\n return { value }\r\n }\r\n return { error: 'invalid' }\r\n\r\n default:\r\n if (typeof type === 'function') {\r\n return parseCustomValue(value, type)\r\n }\r\n throw new Error(`Unknown schema type: ${type && type.name || type}`)\r\n }\r\n}\r\n\r\nexport function getBlock(string, endCharacter, startIndex) {\r\n let i = 0\r\n let substring = ''\r\n let character\r\n while (startIndex + i < string.length) {\r\n const character = string[startIndex + i]\r\n if (character === endCharacter) {\r\n return [substring, i]\r\n }\r\n else if (character === '\"') {\r\n const block = getBlock(string, '\"', startIndex + i + 1)\r\n substring += block[0]\r\n i += '\"'.length + block[1] + '\"'.length\r\n }\r\n else {\r\n substring += character\r\n i++\r\n }\r\n }\r\n return [substring, i]\r\n}\r\n\r\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string — A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\r\nexport function parseArray(string) {\r\n const blocks = []\r\n let index = 0\r\n while (index < string.length) {\r\n const [substring, length] = getBlock(string, ',', index)\r\n index += length + ','.length\r\n blocks.push(substring.trim())\r\n }\r\n return blocks\r\n}\r\n\r\n// Transpose a 2D array.\r\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\r\nconst transpose = array => array[0].map((_, i) => array.map(row => row[i]))\r\n\r\nfunction validateSchema(schema) {\r\n for (const key of Object.keys(schema)) {\r\n const entry = schema[key]\r\n if (!entry.prop) {\r\n throw new Error(`\"prop\" not defined for schema entry \"${key}\".`)\r\n }\r\n }\r\n}"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../source/read/schema/convertToJson.test.js"],"names":["date","convertToUTCTimezone","Date","describe","it","should","deep","equal","parse","getTimezoneOffset","DATE","prop","type","NUMBER","Number","BOOLEAN","Boolean","STRING","String","PHONE","value","PHONE_TYPE","rows","errors","toISOString","number","phone","phoneType","string","required","error","row","column","NAMES","names","INTEGER","Integer","length","URL","EMAIL","Email","NAME","validate","Error","TRUE","FALSE","INVALID","rowMap","STATUS","oneOf","getTime"],"mappings":"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","sourcesContent":["import convertToJson, { parseArray, getBlock } from './convertToJson.js'\r\n\r\nimport Integer from '../../types/Integer.js'\r\nimport URL from '../../types/URL.js'\r\nimport Email from '../../types/Email.js'\r\n\r\nconst date = convertToUTCTimezone(new Date(2018, 3 - 1, 24))\r\n\r\ndescribe('convertToJson', () => {\r\n\tit('should parse arrays', () => {\r\n\t\tgetBlock('abc\"de,f\"g,h', ',', 0).should.deep.equal(['abcde,fg', 10])\r\n\t\tparseArray(' abc\"de,f\"g , h ').should.deep.equal(['abcde,fg', 'h'])\r\n\t})\r\n\r\n\tit('should convert to json', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING',\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t'123',\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc',\r\n\t\t\t\t'(123) 456-7890',\r\n\t\t\t\t'(123) 456-7890'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean',\r\n\t\t\t\ttype: Boolean\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tphone: '+11234567890',\r\n\t\t\tphoneType: '+11234567890',\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support schema entries with no `type`s', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t123,\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date'\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number'\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean'\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string'\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should require fields', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should parse arrays', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NAMES'\r\n\t\t\t], [\r\n\t\t\t\t'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAMES: {\r\n\t\t\t\tprop: 'names',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnames: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse integers', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tINTEGER: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('INTEGER')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 1\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse URLs', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'URL'\r\n\t\t\t], [\r\n\t\t\t\t'https://kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'kremlin.ru'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tURL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: URL\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('URL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'https://kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse Emails', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'EMAIL'\r\n\t\t\t], [\r\n\t\t\t\t'vladimir.putin@kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tEMAIL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Email\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('EMAIL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'vladimir.putin@kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should call .validate()', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NAME'\r\n\t\t\t], [\r\n\t\t\t\t'George Bush'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAME: {\r\n\t\t\t\tprop: 'name',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidate: (value) => {\r\n\t\t\t\t\tif (value === 'George Bush') {\r\n\t\t\t\t\t\tthrow new Error('custom-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'custom-error',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NAME',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'George Bush'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should validate numbers', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should validate booleans', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'TRUE',\r\n\t\t\t\t'FALSE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\t'TRUE'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tTRUE: {\r\n\t\t\t\tprop: 'true',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tFALSE: {\r\n\t\t\t\tprop: 'false',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Boolean,\r\n\t\t\tvalue: 'TRUE'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\ttrue: true,\r\n\t\t\tfalse: false\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate dates', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\t43183, // 03/24/2018',\r\n\t\t\t\t'-'\r\n\t\t\t], [\r\n\t\t\t\tdate, // 03/24/2018',,\r\n\t\t\t\t'-'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate\r\n\t\t}, {\r\n\t\t\tdate\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should throw parse() errors', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\t'123',\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'PHONE',\r\n\t\t\tvalue: '123'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\tvalue: '123'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should map row numbers', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\trowMap: [2, 5]\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 6,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (valid)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'STARTED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(0)\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (not valid)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'SCHEDULED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'STATUS',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'SCHEDULED'\r\n\t\t}])\r\n\t})\r\n})\r\n\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"file":"convertToJson.test.js"}
|
|
1
|
+
{"version":3,"file":"convertToJson.test.js","names":["date","convertToUTCTimezone","Date","describe","it","getBlock","should","deep","equal","parseArray","convertToJson","parse","getTimezoneOffset","DATE","prop","type","NUMBER","Number","BOOLEAN","Boolean","STRING","String","PHONE","value","PHONE_TYPE","rows","errors","toISOString","number","phone","phoneType","string","required","error","row","column","NAMES","names","INTEGER","Integer","length","URL","EMAIL","Email","NAME","validate","Error","TRUE","FALSE","INVALID","rowMap","STATUS","oneOf","getTime"],"sources":["../../../source/read/schema/convertToJson.test.js"],"sourcesContent":["import convertToJson, { parseArray, getBlock } from './convertToJson.js'\r\n\r\nimport Integer from '../../types/Integer.js'\r\nimport URL from '../../types/URL.js'\r\nimport Email from '../../types/Email.js'\r\n\r\nconst date = convertToUTCTimezone(new Date(2018, 3 - 1, 24))\r\n\r\ndescribe('convertToJson', () => {\r\n\tit('should parse arrays', () => {\r\n\t\tgetBlock('abc\"de,f\"g,h', ',', 0).should.deep.equal(['abcde,fg', 10])\r\n\t\tparseArray(' abc\"de,f\"g , h ').should.deep.equal(['abcde,fg', 'h'])\r\n\t})\r\n\r\n\tit('should convert to json', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING',\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t'123',\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc',\r\n\t\t\t\t'(123) 456-7890',\r\n\t\t\t\t'(123) 456-7890'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean',\r\n\t\t\t\ttype: Boolean\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tphone: '+11234567890',\r\n\t\t\tphoneType: '+11234567890',\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support schema entries with no `type`s', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t123,\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date'\r\n\t\t\t},\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number'\r\n\t\t\t},\r\n\t\t\tBOOLEAN: {\r\n\t\t\t\tprop: 'boolean'\r\n\t\t\t},\r\n\t\t\tSTRING: {\r\n\t\t\t\tprop: 'string'\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\t// Convert `Date` to `String` for equality check.\r\n\t\trows[0].date = rows[0].date.toISOString()\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate: date.toISOString(),\r\n\t\t\tnumber: 123,\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should require fields', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should parse arrays', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NAMES'\r\n\t\t\t], [\r\n\t\t\t\t'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t], [\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAMES: {\r\n\t\t\t\tprop: 'names',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tnames: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse integers', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tINTEGER: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('INTEGER')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 1\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse URLs', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'URL'\r\n\t\t\t], [\r\n\t\t\t\t'https://kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'kremlin.ru'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tURL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: URL\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('URL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'https://kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse Emails', () =>\r\n\t{\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'EMAIL'\r\n\t\t\t], [\r\n\t\t\t\t'vladimir.putin@kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tEMAIL: {\r\n\t\t\t\tprop: 'value',\r\n\t\t\t\ttype: Email\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(1)\r\n\t\terrors[0].row.should.equal(2)\r\n\t\terrors[0].column.should.equal('EMAIL')\r\n\t\terrors[0].error.should.equal('invalid')\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tvalue: 'vladimir.putin@kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should call .validate()', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NAME'\r\n\t\t\t], [\r\n\t\t\t\t'George Bush'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNAME: {\r\n\t\t\t\tprop: 'name',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidate: (value) => {\r\n\t\t\t\t\tif (value === 'George Bush') {\r\n\t\t\t\t\t\tthrow new Error('custom-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'custom-error',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NAME',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'George Bush'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should validate numbers', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should validate booleans', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'TRUE',\r\n\t\t\t\t'FALSE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\t'TRUE'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tTRUE: {\r\n\t\t\t\tprop: 'true',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tFALSE: {\r\n\t\t\t\tprop: 'false',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Boolean,\r\n\t\t\tvalue: 'TRUE'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\ttrue: true,\r\n\t\t\tfalse: false\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate dates', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\t43183, // 03/24/2018',\r\n\t\t\t\t'-'\r\n\t\t\t], [\r\n\t\t\t\tdate, // 03/24/2018',,\r\n\t\t\t\t'-'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tDATE: {\r\n\t\t\t\tprop: 'date',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tINVALID: {\r\n\t\t\t\tprop: 'invalid',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([{\r\n\t\t\tdate\r\n\t\t}, {\r\n\t\t\tdate\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should throw parse() errors', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\t'123',\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tPHONE: {\r\n\t\t\t\tprop: 'phone',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tPHONE_TYPE: {\r\n\t\t\t\tprop: 'phoneType',\r\n\t\t\t\tparse: () => {\r\n\t\t\t\t\tthrow new Error('invalid')\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'PHONE',\r\n\t\t\tvalue: '123'\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\tvalue: '123'\r\n\t\t}])\r\n\r\n\t\trows.should.deep.equal([])\r\n\t})\r\n\r\n\tit('should map row numbers', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tNUMBER: {\r\n\t\t\t\tprop: 'number',\r\n\t\t\t\ttype: Number\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\trowMap: [2, 5]\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 6,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (valid)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'STARTED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.length.should.equal(0)\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (not valid)', () => {\r\n\t\tconst { rows, errors } = convertToJson([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'SCHEDULED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tSTATUS: {\r\n\t\t\t\tprop: 'status',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\terrors.should.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'STATUS',\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'SCHEDULED'\r\n\t\t}])\r\n\t})\r\n})\r\n\r\n\r\n// Converts timezone to UTC while preserving the same time\r\nfunction convertToUTCTimezone(date) {\r\n\t// Doesn't account for leap seconds but I guess that's ok\r\n\t// given that javascript's own `Date()` does not either.\r\n\t// https://www.timeanddate.com/time/leap-seconds-background.html\r\n\t//\r\n\t// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n\t//\r\n\treturn new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000)\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileBrowser.js","names":["unpackXlsxFile","file","files","JSZip","loadAsync","then","zip","forEach","relativePath","zipEntry","dir","push","name","entries","Promise","all","map","async","content"],"sources":["../../source/read/unpackXlsxFileBrowser.js"],"sourcesContent":["import JSZip from 'jszip'\r\n\r\n/**\r\n * Reads XLSX file in a browser.\r\n * @param {file} file - A file being uploaded in the browser.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\r\nexport default function unpackXlsxFile(file) {\r\n\tconst files = {}\r\n\r\n\treturn JSZip.loadAsync(file).then((zip) => {\r\n\t\tconst files = []\r\n\t\tzip.forEach((relativePath, zipEntry) => {\r\n\t\t\tif (!zipEntry.dir) {\r\n\t\t\t\tfiles.push(zipEntry.name)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst entries = {}\r\n\t\treturn Promise.all(files.map((file) => {\r\n\t\t\treturn zip.file(file).async('string').then(content => entries[file] = content)\r\n\t\t}))\r\n\t\t.then(() => entries)\r\n\t})\r\n}"],"mappings":";;;;;;;AAAA;;;;AAEA;AACA;AACA;AACA;AACA;AACe,SAASA,cAAT,CAAwBC,IAAxB,EAA8B;EAC5C,IAAMC,KAAK,GAAG,EAAd;EAEA,OAAOC,iBAAA,CAAMC,SAAN,CAAgBH,IAAhB,EAAsBI,IAAtB,CAA2B,UAACC,GAAD,EAAS;IAC1C,IAAMJ,KAAK,GAAG,EAAd;IACAI,GAAG,CAACC,OAAJ,CAAY,UAACC,YAAD,EAAeC,QAAf,EAA4B;MACvC,IAAI,CAACA,QAAQ,CAACC,GAAd,EAAmB;QAClBR,KAAK,CAACS,IAAN,CAAWF,QAAQ,CAACG,IAApB;MACA;IACD,CAJD;IAMA,IAAMC,OAAO,GAAG,EAAhB;IACA,OAAOC,OAAO,CAACC,GAAR,CAAYb,KAAK,CAACc,GAAN,CAAU,UAACf,IAAD,EAAU;MACtC,OAAOK,GAAG,CAACL,IAAJ,CAASA,IAAT,EAAegB,KAAf,CAAqB,QAArB,EAA+BZ,IAA/B,CAAoC,UAAAa,OAAO;QAAA,OAAIL,OAAO,CAACZ,IAAD,CAAP,GAAgBiB,OAApB;MAAA,CAA3C,CAAP;IACA,CAFkB,CAAZ,EAGNb,IAHM,CAGD;MAAA,OAAMQ,OAAN;IAAA,CAHC,CAAP;EAIA,CAbM,CAAP;AAcA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"unpackXlsxFileNode.js","names":["unpackXlsxFile","input","entries","stream","Stream","fs","createReadStream","Promise","resolve","reject","entryPromises","on","pipe","unzip","Parse","all","then","entry","contents","push","data","toString","path"],"sources":["../../source/read/unpackXlsxFileNode.js"],"sourcesContent":["import fs from 'fs'\r\nimport Stream from 'stream'\r\nimport unzip from 'unzipper'\r\n\r\n/**\r\n * Reads XLSX file in Node.js.\r\n * @param {(string|Stream)} input - A Node.js readable stream or a path to a file.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\r\nexport default function unpackXlsxFile(input) {\r\n // XLSX file is a zip archive.\r\n // The `entries` object stores the files\r\n // and their contents from this XLSX zip archive.\r\n const entries = {}\r\n\r\n const stream = input instanceof Stream ? input : fs.createReadStream(input)\r\n\r\n return new Promise((resolve, reject) => {\r\n const entryPromises = []\r\n\r\n stream\r\n // This first \"error\" listener is for the original stream errors.\r\n .on('error', reject)\r\n .pipe(unzip.Parse())\r\n // This second \"error\" listener is for the unzip stream errors.\r\n .on('error', reject)\r\n .on('close', () => Promise.all(entryPromises).then(() => resolve(entries)))\r\n .on('entry', (entry) => {\r\n let contents = ''\r\n // To ignore an entry: `entry.autodrain()`.\r\n entryPromises.push(new Promise((resolve) => {\r\n entry\r\n .on('data', data => contents += data.toString())\r\n .on('end', () => resolve(entries[entry.path] = contents))\r\n }))\r\n })\r\n })\r\n}\r\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACe,SAASA,cAAT,CAAwBC,KAAxB,EAA+B;EAC5C;EACA;EACA;EACA,IAAMC,OAAO,GAAG,EAAhB;EAEA,IAAMC,MAAM,GAAGF,KAAK,YAAYG,kBAAjB,GAA0BH,KAA1B,GAAkCI,cAAA,CAAGC,gBAAH,CAAoBL,KAApB,CAAjD;EAEA,OAAO,IAAIM,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;IACtC,IAAMC,aAAa,GAAG,EAAtB;IAEAP,MAAM,CACJ;IADI,CAEHQ,EAFH,CAEM,OAFN,EAEeF,MAFf,EAGGG,IAHH,CAGQC,oBAAA,CAAMC,KAAN,EAHR,EAIE;IAJF,CAKGH,EALH,CAKM,OALN,EAKeF,MALf,EAMGE,EANH,CAMM,OANN,EAMe;MAAA,OAAOJ,OAAO,CAACQ,GAAR,CAAYL,aAAZ,EAA2BM,IAA3B,CAAgC;QAAA,OAAMR,OAAO,CAACN,OAAD,CAAb;MAAA,CAAhC,CAAP;IAAA,CANf,EAOGS,EAPH,CAOM,OAPN,EAOe,UAACM,KAAD,EAAW;MACtB,IAAIC,QAAQ,GAAG,EAAf,CADsB,CAEtB;;MACAR,aAAa,CAACS,IAAd,CAAmB,IAAIZ,OAAJ,CAAY,UAACC,OAAD,EAAa;QAC1CS,KAAK,CACFN,EADH,CACM,MADN,EACc,UAAAS,IAAI;UAAA,OAAIF,QAAQ,IAAIE,IAAI,CAACC,QAAL,EAAhB;QAAA,CADlB,EAEGV,EAFH,CAEM,KAFN,EAEa;UAAA,OAAMH,OAAO,CAACN,OAAO,CAACe,KAAK,CAACK,IAAP,CAAP,GAAsBJ,QAAvB,CAAb;QAAA,CAFb;MAGD,CAJkB,CAAnB;IAKD,CAfH;EAgBD,CAnBM,CAAP;AAoBD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Email.js","names":["Email","regexp","isEmail","value","test"],"sources":["../../source/types/Email.js"],"sourcesContent":["export default function Email() {}\r\n\r\nconst regexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i\r\n\r\nexport function isEmail(value) {\r\n\treturn regexp.test(value)\r\n}"],"mappings":";;;;;;;;AAAe,SAASA,KAAT,GAAiB,CAAE;;AAElC,IAAMC,MAAM,GAAG,0CAAf;;AAEO,SAASC,OAAT,CAAiBC,KAAjB,EAAwB;EAC9B,OAAOF,MAAM,CAACG,IAAP,CAAYD,KAAZ,CAAP;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Email.test.js","names":["describe","it","isEmail","should","equal"],"sources":["../../source/types/Email.test.js"],"sourcesContent":["import { isEmail } from './Email.js'\r\n\r\ndescribe('Email', () => {\r\n\tit('should validate an Email', () => {\r\n\t\tisEmail('123').should.equal(false)\r\n\t\tisEmail('vladimir.putin@kremlin.ru').should.equal(true)\r\n\t})\r\n})"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,OAAD,EAAU,YAAM;EACvBC,EAAE,CAAC,0BAAD,EAA6B,YAAM;IACpC,IAAAC,cAAA,EAAQ,KAAR,EAAeC,MAAf,CAAsBC,KAAtB,CAA4B,KAA5B;IACA,IAAAF,cAAA,EAAQ,2BAAR,EAAqCC,MAArC,CAA4CC,KAA5C,CAAkD,IAAlD;EACA,CAHC,CAAF;AAIA,CALO,CAAR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Integer.js","names":["Integer","isInteger","x"],"sources":["../../source/types/Integer.js"],"sourcesContent":["export default function Integer() {}\r\n\r\nexport function isInteger(x) {\r\n\t// https://stackoverflow.com/questions/14636536/how-to-check-if-a-variable-is-an-integer-in-javascript\r\n\treturn (x | 0) === x\r\n}"],"mappings":";;;;;;;;AAAe,SAASA,OAAT,GAAmB,CAAE;;AAE7B,SAASC,SAAT,CAAmBC,CAAnB,EAAsB;EAC5B;EACA,OAAO,CAACA,CAAC,GAAG,CAAL,MAAYA,CAAnB;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Integer.test.js","names":["describe","it","isInteger","should","equal"],"sources":["../../source/types/Integer.test.js"],"sourcesContent":["import { isInteger } from './Integer.js'\r\n\r\ndescribe('Integer', () => {\r\n\tit('should validate an Integer', () => {\r\n\t\t// isInteger('1.2').should.equal(false)\r\n\t\t// isInteger('1').should.equal(true)\r\n\t\tisInteger(1.2).should.equal(false)\r\n\t\tisInteger(1).should.equal(true)\r\n\t})\r\n})"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,SAAD,EAAY,YAAM;EACzBC,EAAE,CAAC,4BAAD,EAA+B,YAAM;IACtC;IACA;IACA,IAAAC,kBAAA,EAAU,GAAV,EAAeC,MAAf,CAAsBC,KAAtB,CAA4B,KAA5B;IACA,IAAAF,kBAAA,EAAU,CAAV,EAAaC,MAAb,CAAoBC,KAApB,CAA0B,IAA1B;EACA,CALC,CAAF;AAMA,CAPO,CAAR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"URL.js","names":["URL","regexp","isURL","value","test"],"sources":["../../source/types/URL.js"],"sourcesContent":["export default function URL() {}\r\n\r\n// URL regexp explanation:\r\n//\r\n// /^\r\n//\r\n// \t(?:\r\n// \t // Matches optional \"http(s):\" or \"ftp:\":\r\n// \t\t(?:\r\n// \t\t\t(?:https?|ftp):\r\n// \t\t)?\r\n//\r\n// \t // Matches \"//\" (required):\r\n// \t\t\\/\\/\r\n// \t)\r\n//\r\n// \t// Matches a valid non-local IP address:\r\n// \t(?:\r\n// \t\t(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])\r\n// \t\t(?:\r\n// \t\t\t\\.\r\n// \t\t\t(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])\r\n// \t\t){2}\r\n// \t\t(?:\r\n// \t\t\t\\.\r\n// \t\t\t(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4])\r\n// \t\t)\r\n//\r\n// \t // Or,\r\n// \t\t|\r\n//\r\n// \t // Matches an alpha-numeric domain name.\r\n// \t\t(?:\r\n// \t\t\t(?:\r\n// \t\t\t\t[a-z0-9\\u00a1-\\uffff]\r\n// \t\t\t\t[a-z0-9\\u00a1-\\uffff_-]{0,62}\r\n// \t\t\t)?\r\n// \t\t\t[a-z0-9\\u00a1-\\uffff]\r\n// \t\t\t\\.\r\n// \t\t)*\r\n// \t\t(?:\r\n// \t // Domain zone: \"com\", \"net\", etc (required):\r\n// \t\t\t[a-z\\u00a1-\\uffff]{2,}\r\n// \t\t)\r\n// \t)\r\n//\r\n// \t// Matches a colon and a port number:\r\n// \t(?::\\d{2,5})?\r\n//\r\n// \t// Matches everything after the \"origin\":\r\n// \t// * pathname\r\n// \t// * query\r\n// \t// * hash\r\n// \t(?:[/?#]\\S*)?\r\n//\r\n// $/i\r\n\r\nconst regexp = /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)*(?:[a-z\\u00a1-\\uffff]{2,}))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i\r\n\r\n// https://stackoverflow.com/questions/8667070/javascript-regular-expression-to-validate-url\r\nexport function isURL(value) {\r\n\treturn regexp.test(value)\r\n}"],"mappings":";;;;;;;;AAAe,SAASA,GAAT,GAAe,CAAE,C,CAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAMC,MAAM,GAAG,+RAAf,C,CAEA;;AACO,SAASC,KAAT,CAAeC,KAAf,EAAsB;EAC5B,OAAOF,MAAM,CAACG,IAAP,CAAYD,KAAZ,CAAP;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"URL.test.js","names":["describe","it","isURL","should","equal"],"sources":["../../source/types/URL.test.js"],"sourcesContent":["import { isURL } from './URL.js'\r\n\r\ndescribe('URL', () => {\r\n\tit('should validate a URL', () => {\r\n\t\tisURL('123').should.equal(false)\r\n\t\tisURL('https://stackoverflow.com/questions/8667070/javascript-regular-expression-to-validate-url').should.equal(true)\r\n\t})\r\n})"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,KAAD,EAAQ,YAAM;EACrBC,EAAE,CAAC,uBAAD,EAA0B,YAAM;IACjC,IAAAC,UAAA,EAAM,KAAN,EAAaC,MAAb,CAAoBC,KAApB,CAA0B,KAA1B;IACA,IAAAF,UAAA,EAAM,2FAAN,EAAmGC,MAAnG,CAA0GC,KAA1G,CAAgH,IAAhH;EACA,CAHC,CAAF;AAIA,CALO,CAAR"}
|
package/commonjs/xml/dom.js
CHANGED
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.findChild = findChild;
|
|
7
7
|
exports.findChildren = findChildren;
|
|
8
8
|
exports.forEach = forEach;
|
|
9
|
-
exports.map = map;
|
|
10
9
|
exports.getTagName = getTagName;
|
|
10
|
+
exports.map = map;
|
|
11
11
|
|
|
12
12
|
function findChild(node, tagName) {
|
|
13
13
|
var i = 0;
|
package/commonjs/xml/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"dom.js","names":["findChild","node","tagName","i","childNodes","length","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","map","NAMESPACE_REG_EXP","element","replace"],"sources":["../../source/xml/dom.js"],"sourcesContent":["export function findChild(node, tagName) {\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\treturn childNode\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function findChildren(node, tagName) {\r\n\tconst results = []\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\t// `nodeType: 1` means \"Element\".\r\n\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\tresults.push(childNode)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn results\r\n}\r\n\r\nexport function forEach(node, tagName, func) {\r\n\t// if (typeof tagName === 'function') {\r\n\t// \tfunc = tagName\r\n\t// \ttagName = undefined\r\n\t// }\r\n\tlet i = 0\r\n\twhile (i < node.childNodes.length) {\r\n\t\tconst childNode = node.childNodes[i]\r\n\t\tif (tagName) {\r\n\t\t\t// `nodeType: 1` means \"Element\".\r\n\t\t\t// https://www.w3schools.com/xml/prop_element_nodetype.asp\r\n\t\t\tif (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\r\n\t\t\t\tfunc(childNode, i)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfunc(childNode, i)\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}\r\n\r\nexport function map(node, tagName, func) {\r\n\tconst results = []\r\n\tforEach(node, tagName, (node, i) => {\r\n\t\tresults.push(func(node, i))\r\n\t})\r\n\treturn results\r\n}\r\n\r\nconst NAMESPACE_REG_EXP = /.+\\:/\r\nexport function getTagName(element) {\r\n\t// For some weird reason, if an element is declared as,\r\n\t// for example, `<x:sheets/>`, then its `.tagName` will be\r\n\t// \"x:sheets\" instead of just \"sheets\".\r\n\t// https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\r\n\t// Its not clear how to tell it to ignore any namespaces\r\n\t// when getting `.tagName`, so just replacing anything\r\n\t// before a colon, if any.\r\n\treturn element.tagName.replace(NAMESPACE_REG_EXP, '')\r\n}"],"mappings":";;;;;;;;;;;AAAO,SAASA,SAAT,CAAmBC,IAAnB,EAAyBC,OAAzB,EAAkC;EACxC,IAAIC,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGF,IAAI,CAACG,UAAL,CAAgBC,MAA3B,EAAmC;IAClC,IAAMC,SAAS,GAAGL,IAAI,CAACG,UAAL,CAAgBD,CAAhB,CAAlB,CADkC,CAElC;IACA;;IACA,IAAIG,SAAS,CAACC,QAAV,KAAuB,CAAvB,IAA4BC,UAAU,CAACF,SAAD,CAAV,KAA0BJ,OAA1D,EAAmE;MAClE,OAAOI,SAAP;IACA;;IACDH,CAAC;EACD;AACD;;AAEM,SAASM,YAAT,CAAsBR,IAAtB,EAA4BC,OAA5B,EAAqC;EAC3C,IAAMQ,OAAO,GAAG,EAAhB;EACA,IAAIP,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGF,IAAI,CAACG,UAAL,CAAgBC,MAA3B,EAAmC;IAClC,IAAMC,SAAS,GAAGL,IAAI,CAACG,UAAL,CAAgBD,CAAhB,CAAlB,CADkC,CAElC;IACA;;IACA,IAAIG,SAAS,CAACC,QAAV,KAAuB,CAAvB,IAA4BC,UAAU,CAACF,SAAD,CAAV,KAA0BJ,OAA1D,EAAmE;MAClEQ,OAAO,CAACC,IAAR,CAAaL,SAAb;IACA;;IACDH,CAAC;EACD;;EACD,OAAOO,OAAP;AACA;;AAEM,SAASE,OAAT,CAAiBX,IAAjB,EAAuBC,OAAvB,EAAgCW,IAAhC,EAAsC;EAC5C;EACA;EACA;EACA;EACA,IAAIV,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGF,IAAI,CAACG,UAAL,CAAgBC,MAA3B,EAAmC;IAClC,IAAMC,SAAS,GAAGL,IAAI,CAACG,UAAL,CAAgBD,CAAhB,CAAlB;;IACA,IAAID,OAAJ,EAAa;MACZ;MACA;MACA,IAAII,SAAS,CAACC,QAAV,KAAuB,CAAvB,IAA4BC,UAAU,CAACF,SAAD,CAAV,KAA0BJ,OAA1D,EAAmE;QAClEW,IAAI,CAACP,SAAD,EAAYH,CAAZ,CAAJ;MACA;IACD,CAND,MAMO;MACNU,IAAI,CAACP,SAAD,EAAYH,CAAZ,CAAJ;IACA;;IACDA,CAAC;EACD;AACD;;AAEM,SAASW,GAAT,CAAab,IAAb,EAAmBC,OAAnB,EAA4BW,IAA5B,EAAkC;EACxC,IAAMH,OAAO,GAAG,EAAhB;EACAE,OAAO,CAACX,IAAD,EAAOC,OAAP,EAAgB,UAACD,IAAD,EAAOE,CAAP,EAAa;IACnCO,OAAO,CAACC,IAAR,CAAaE,IAAI,CAACZ,IAAD,EAAOE,CAAP,CAAjB;EACA,CAFM,CAAP;EAGA,OAAOO,OAAP;AACA;;AAED,IAAMK,iBAAiB,GAAG,MAA1B;;AACO,SAASP,UAAT,CAAoBQ,OAApB,EAA6B;EACnC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAOA,OAAO,CAACd,OAAR,CAAgBe,OAAhB,CAAwBF,iBAAxB,EAA2C,EAA3C,CAAP;AACA"}
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getCells = getCells;
|
|
7
|
-
exports.getMergedCells = getMergedCells;
|
|
8
|
-
exports.getCellValue = getCellValue;
|
|
9
|
-
exports.getCellInlineStringValue = getCellInlineStringValue;
|
|
10
|
-
exports.getDimensions = getDimensions;
|
|
11
6
|
exports.getBaseStyles = getBaseStyles;
|
|
7
|
+
exports.getCellInlineStringValue = getCellInlineStringValue;
|
|
12
8
|
exports.getCellStyles = getCellStyles;
|
|
9
|
+
exports.getCellValue = getCellValue;
|
|
10
|
+
exports.getCells = getCells;
|
|
11
|
+
exports.getDimensions = getDimensions;
|
|
12
|
+
exports.getMergedCells = getMergedCells;
|
|
13
13
|
exports.getNumberFormats = getNumberFormats;
|
|
14
|
-
exports.getSharedStrings = getSharedStrings;
|
|
15
|
-
exports.getWorkbookProperties = getWorkbookProperties;
|
|
16
14
|
exports.getRelationships = getRelationships;
|
|
15
|
+
exports.getSharedStrings = getSharedStrings;
|
|
17
16
|
exports.getSheets = getSheets;
|
|
17
|
+
exports.getWorkbookProperties = getWorkbookProperties;
|
|
18
18
|
|
|
19
19
|
var _xpathNode = _interopRequireDefault(require("./xpathNode"));
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"xlsx-xpath.js","names":["namespaces","a","r","rr","getCells","document","xpath","getMergedCells","getCellValue","node","getCellInlineStringValue","textContent","getDimensions","dimensions","getBaseStyles","getCellStyles","getNumberFormats","getSharedStrings","map","string","_","join","getWorkbookProperties","getRelationships","getSheets"],"sources":["../../source/xml/xlsx-xpath.js"],"sourcesContent":["// 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\nimport xpath from './xpathNode'\r\n\r\nconst namespaces = {\r\n a: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\r\n // This one seems to be for `r:id` attributes on `<sheet>`s.\r\n r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\r\n // This one seems to be for `<Relationships/>` file.\r\n rr: 'http://schemas.openxmlformats.org/package/2006/relationships'\r\n}\r\n\r\nexport function getCells(document) {\r\n return xpath(document, null, '/a:worksheet/a:sheetData/a:row/a:c', namespaces)\r\n}\r\n\r\nexport function getMergedCells(document) {\r\n return xpath(document, null, '/a:worksheet/a:mergedCells/a:mergedCell/@ref', namespaces)\r\n}\r\n\r\nexport function getCellValue(document, node) {\r\n return xpath(document, node, './a:v', namespaces)[0]\r\n}\r\n\r\nexport function getCellInlineStringValue(document, node) {\r\n return xpath(document, node, './a:is/a:t', namespaces)[0].textContent\r\n}\r\n\r\nexport function getDimensions(document) {\r\n const dimensions = xpath(document, null, '/a:worksheet/a:dimension/@ref', namespaces)[0]\r\n if (dimensions) {\r\n return dimensions.textContent\r\n }\r\n}\r\n\r\nexport function getBaseStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellStyleXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getCellStyles(document) {\r\n return xpath(document, null, '/a:styleSheet/a:cellXfs/a:xf', namespaces)\r\n}\r\n\r\nexport function getNumberFormats(document) {\r\n return xpath(document, null, '/a:styleSheet/a:numFmts/a:numFmt', namespaces)\r\n}\r\n\r\nexport function getSharedStrings(document) {\r\n\t// An `<si/>` element can contain a `<t/>` (simplest case) or a set of `<r/>` (\"rich formatting\") elements having `<t/>`.\r\n\t// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1\r\n\t// http://www.datypic.com/sc/ooxml/e-ssml_si-1.html\r\n\r\n // The \".//a:t[not(ancestor::a:rPh)]\" selector means:\r\n // \"select all `<t/>` that are not children of `<rPh/>`\". \r\n\t// https://stackoverflow.com/questions/42773772/xpath-span-what-does-the-dot-mean\r\n // `<rPh><t></t></rPh>` seems to be some \"phonetic data\" added for languages like Japanese that should be ignored.\r\n // https://github.com/doy/spreadsheet-parsexlsx/issues/72\r\n return xpath(document, null, '/a:sst/a:si', namespaces)\r\n .map(string => xpath(document, string, './/a:t[not(ancestor::a:rPh)]', namespaces)\r\n .map(_ => _.textContent).join('')\r\n )\r\n}\r\n\r\nexport function getWorkbookProperties(document) {\r\n return xpath(document, null, '/a:workbook/a:workbookPr', namespaces)[0]\r\n}\r\n\r\nexport function getRelationships(document) {\r\n return xpath(document, null, '/rr:Relationships/rr:Relationship', namespaces)\r\n}\r\n\r\nexport function getSheets(document) {\r\n return xpath(document, null, '/a:workbook/a:sheets/a:sheet', namespaces)\r\n}"],"mappings":"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"}
|
package/commonjs/xml/xlsx.js
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getCells = getCells;
|
|
7
|
-
exports.getMergedCells = getMergedCells;
|
|
8
|
-
exports.getCellValue = getCellValue;
|
|
9
|
-
exports.getCellInlineStringValue = getCellInlineStringValue;
|
|
10
|
-
exports.getDimensions = getDimensions;
|
|
11
6
|
exports.getBaseStyles = getBaseStyles;
|
|
7
|
+
exports.getCellInlineStringValue = getCellInlineStringValue;
|
|
12
8
|
exports.getCellStyles = getCellStyles;
|
|
9
|
+
exports.getCellValue = getCellValue;
|
|
10
|
+
exports.getCells = getCells;
|
|
11
|
+
exports.getDimensions = getDimensions;
|
|
12
|
+
exports.getMergedCells = getMergedCells;
|
|
13
13
|
exports.getNumberFormats = getNumberFormats;
|
|
14
|
-
exports.getSharedStrings = getSharedStrings;
|
|
15
|
-
exports.getWorkbookProperties = getWorkbookProperties;
|
|
16
14
|
exports.getRelationships = getRelationships;
|
|
15
|
+
exports.getSharedStrings = getSharedStrings;
|
|
17
16
|
exports.getSheets = getSheets;
|
|
17
|
+
exports.getWorkbookProperties = getWorkbookProperties;
|
|
18
18
|
|
|
19
19
|
var _dom = require("./dom.js");
|
|
20
20
|
|