diff --git a/CHANGELOG.md b/CHANGELOG.md index ca47c342b17039c088d3f06c7cb0da6589bf0ee6..c89186ffc92d8c34e5855ae8dcc0e01bdaf054ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ This log is intended to keep track of backwards-incompatible changes, including but not limited to API changes and file location changes. Minor behavioral changes may not be included if they are not expected to break existing code. +## v0.16.0 +* Date handling changed +* XLML certain tag tests are now case insensitive +* Fixed potentially vulnerable regular expressions + ## v0.15.6 * CFB prevent infinite loop diff --git a/bits/01_version.js b/bits/01_version.js index f8e5d62c9b679d35380a747462c59d7a20c75dca..3c6a730c222188cda42eac4ce6f8311f6c7989a6 100644 --- a/bits/01_version.js +++ b/bits/01_version.js @@ -1 +1 @@ -XLSX.version = '0.15.6'; +XLSX.version = '0.16.0'; diff --git a/bits/75_xlml.js b/bits/75_xlml.js index c36b954ba9c8986973f4c61d3b24c5590ea99c6d..0e937289dde0d33ddc5a30bd91c0b4e1b860efcb 100644 --- a/bits/75_xlml.js +++ b/bits/75_xlml.js @@ -172,7 +172,7 @@ function xlml_normalize(d)/*:string*/ { /* TODO: Everything */ /* UOS uses CJK in tags */ -var xlmlregex = /<(\/?)([^\s?>!\/:]*:|)([^\s?>:\/]+)[^>]*>/mg; +var xlmlregex = /<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/mg; //var xlmlregex = /<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/mg; function parse_xlml_xml(d, _opts)/*:Workbook*/ { var opts = _opts || {}; diff --git a/bits/90_utils.js b/bits/90_utils.js index f4a9a18972fd6a4fec988be8b36339f5c44d07e1..34a95c9c312d54cb478b66f069da4e5faa3f87fa 100644 --- a/bits/90_utils.js +++ b/bits/90_utils.js @@ -196,7 +196,7 @@ function sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet var _range = safe_decode_range(ws['!ref']); range.e.c = Math.max(range.e.c, _range.e.c); range.e.r = Math.max(range.e.r, _range.e.r); - if(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } + if(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } } var hdr/*:Array*/ = o.header || [], C = 0; diff --git a/dist/xlsx.core.min.js b/dist/xlsx.core.min.js index 8403b00cf1ef6e59b4b0757c4711242bba7fa19c..e219c29ece88b9956c3c3b3d0123d21de7c9e239 100644 Binary files a/dist/xlsx.core.min.js and b/dist/xlsx.core.min.js differ diff --git a/dist/xlsx.core.min.map b/dist/xlsx.core.min.map index efda4c49a8cfe1487ff126f152bb96f0fcde49b9..a05842e09b4e3d6cddacf9a3f16f67a1b72b7815 100644 Binary files a/dist/xlsx.core.min.map and b/dist/xlsx.core.min.map differ diff --git a/dist/xlsx.extendscript.js b/dist/xlsx.extendscript.js index a1762e4562da52842b99256ec89883a5945e1c82..cdb76ea4a8f847a297a6f87b90bb7e7a5b80d9d3 100644 Binary files a/dist/xlsx.extendscript.js and b/dist/xlsx.extendscript.js differ diff --git a/dist/xlsx.full.min.js b/dist/xlsx.full.min.js index c8a759a68c85988001c0b64226254dd65f90ac51..22f7524181133e549b27b32438ef71295df4ab48 100644 Binary files a/dist/xlsx.full.min.js and b/dist/xlsx.full.min.js differ diff --git a/dist/xlsx.full.min.map b/dist/xlsx.full.min.map index 13982e96b39c66d42051936514363cbcb06dfc36..b604eb72ba6840e999df41a57d0ef18009a45c45 100644 Binary files a/dist/xlsx.full.min.map and b/dist/xlsx.full.min.map differ diff --git a/dist/xlsx.js b/dist/xlsx.js index a175f0f8881cc35b1302aedd9a04784da5be42e5..da374d0ddd9bcd67994007980d437c4f1fb6c6b1 100644 Binary files a/dist/xlsx.js and b/dist/xlsx.js differ diff --git a/dist/xlsx.min.js b/dist/xlsx.min.js index fd3aac8ee26ace7378432d3e79e9380ad25f1d02..e58bc808c85b63bac7171b486670a252ca9b23c1 100644 Binary files a/dist/xlsx.min.js and b/dist/xlsx.min.js differ diff --git a/dist/xlsx.min.map b/dist/xlsx.min.map index 5f24285cbc1975397e276695543fae43e19fc974..bff80aafc390e72fa0c33408179e4d662291cbcc 100644 Binary files a/dist/xlsx.min.map and b/dist/xlsx.min.map differ diff --git a/dist/xlsx.mini.min.js b/dist/xlsx.mini.min.js index b454fdb2d2fe470ea95c167cc1530497d17dbac1..0ca6fd70ca78b07b0e3359e23dcdb24602322ec1 100644 Binary files a/dist/xlsx.mini.min.js and b/dist/xlsx.mini.min.js differ diff --git a/dist/xlsx.mini.min.map b/dist/xlsx.mini.min.map index 5ebe7df65ff87f761c0d500c856b395467e58f6e..fd58a26ad2d7fe59b8731436d45fe86a24b4a5c6 100644 Binary files a/dist/xlsx.mini.min.map and b/dist/xlsx.mini.min.map differ diff --git a/package.json b/package.json index e1d814eba5861ed7783108be066d5c791417e122..d9e038cf6dbaa7e3bc43e6eb6d16538331a3fb74 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xlsx", - "version": "0.15.6", + "version": "0.16.0", "author": "sheetjs", "description": "SheetJS Spreadsheet data parser and writer", "keywords": [ diff --git a/test.js b/test.js index 23d3ea803c1d3ae8f886deb81177c40776856d3c..c9e8c8cf521c4073110e038e3befe69c59ba8e10 100644 --- a/test.js +++ b/test.js @@ -1429,6 +1429,7 @@ function datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ { return (epoch - dnthresh) / (24 * 60 * 60 * 1000); } var good_pd_date = new Date('2017-02-19T19:06:09.000Z'); +if(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2017-02-19T19:06:09'); if(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17'); var good_pd = good_pd_date.getFullYear() == 2017; function parseDate(str/*:string|Date*/)/*:Date*/ { diff --git a/tests/core.js b/tests/core.js index e02892af7a1fea6e8a5ca11cb6941fe5a55048e2..260dd54b81daa18a2b24ed0dd66f04bb8269a23b 100644 Binary files a/tests/core.js and b/tests/core.js differ diff --git a/xlsx.flow.js b/xlsx.flow.js index 46077b9086142c8f0fede5f9a66252d75d11b44c..002cb490aab9ad5766c9adf62e0fadf12e0d892c 100644 --- a/xlsx.flow.js +++ b/xlsx.flow.js @@ -4,7 +4,7 @@ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */ var XLSX = {}; function make_xlsx_lib(XLSX){ -XLSX.version = '0.15.6'; +XLSX.version = '0.16.0'; var current_codepage = 1200, current_ansi = 1252; /*:: declare var cptable:any; */ /*global cptable:true, window */ @@ -15724,7 +15724,7 @@ function xlml_normalize(d)/*:string*/ { /* TODO: Everything */ /* UOS uses CJK in tags */ -var xlmlregex = /<(\/?)([^\s?>!\/:]*:|)([^\s?>:\/]+)[^>]*>/mg; +var xlmlregex = /<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/mg; //var xlmlregex = /<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/mg; function parse_xlml_xml(d, _opts)/*:Workbook*/ { var opts = _opts || {}; @@ -21276,7 +21276,7 @@ function sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet var _range = safe_decode_range(ws['!ref']); range.e.c = Math.max(range.e.c, _range.e.c); range.e.r = Math.max(range.e.r, _range.e.r); - if(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } + if(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } } var hdr/*:Array*/ = o.header || [], C = 0; diff --git a/xlsx.js b/xlsx.js index 12c97b71a1a73c050ed1f4adfbd5153159d09f0e..73931f844c8eb63ef7d8ab3ec91e08fb356169e4 100644 Binary files a/xlsx.js and b/xlsx.js differ diff --git a/xlsx.mini.flow.js b/xlsx.mini.flow.js index 8cdc018e987c531cd9c677434d0bfaf7b829aaed..ba40694d54bfa0eaf1eea0a6e64610e5e841fb91 100644 --- a/xlsx.mini.flow.js +++ b/xlsx.mini.flow.js @@ -4,7 +4,7 @@ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */ var XLSX = {}; function make_xlsx_lib(XLSX){ -XLSX.version = '0.15.6'; +XLSX.version = '0.16.0'; var current_codepage = 1200, current_ansi = 1252; var VALID_ANSI = [ 874, 932, 936, 949, 950 ]; @@ -8472,7 +8472,7 @@ function sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet var _range = safe_decode_range(ws['!ref']); range.e.c = Math.max(range.e.c, _range.e.c); range.e.r = Math.max(range.e.r, _range.e.r); - if(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } + if(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } } var hdr/*:Array*/ = o.header || [], C = 0; diff --git a/xlsx.mini.js b/xlsx.mini.js index 3c4aba1a38cea1b1d9d4ecd0e4a9b14f32b2a495..787cfe00ae9752a99568f3ed9e2ea677a96ece1a 100644 --- a/xlsx.mini.js +++ b/xlsx.mini.js @@ -4,7 +4,7 @@ /*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */ var XLSX = {}; function make_xlsx_lib(XLSX){ -XLSX.version = '0.15.6'; +XLSX.version = '0.16.0'; var current_codepage = 1200, current_ansi = 1252; var VALID_ANSI = [ 874, 932, 936, 949, 950 ]; @@ -8368,7 +8368,7 @@ function sheet_add_json(_ws, js, opts) { var _range = safe_decode_range(ws['!ref']); range.e.c = Math.max(range.e.c, _range.e.c); range.e.r = Math.max(range.e.r, _range.e.r); - if(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } + if(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; } } var hdr = o.header || [], C = 0;