forked from sheetjs/sheetjs
		
	properly detect encrypted ODS
This commit is contained in:
		
							parent
							
								
									222995ebdf
								
							
						
					
					
						commit
						ebfb5bc7c9
					
				@ -844,12 +844,10 @@ var XLSBRecordEnum = {
 | 
			
		||||
var XLSBRE = evert_key(XLSBRecordEnum, 'n');
 | 
			
		||||
XLSBRE["BrtFRTArchID$"] = 0x0010;
 | 
			
		||||
 | 
			
		||||
/* [MS-XLS] 2.3 Record Enumeration */
 | 
			
		||||
/* [MS-XLS] 2.3 Record Enumeration (and other sources) */
 | 
			
		||||
var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x0003/*::]*/: { n:"BIFF2NUM", f:parse_BIFF2NUM },
 | 
			
		||||
	/*::[*/0x0004/*::]*/: { n:"BIFF2STR", f:parse_BIFF2STR },
 | 
			
		||||
	/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */
 | 
			
		||||
	/*::[*/0x0006/*::]*/: { n:"Formula", f:parse_Formula },
 | 
			
		||||
	/*::[*/0x0009/*::]*/: { n:'BOF', f:parse_BOF },
 | 
			
		||||
	/*::[*/0x000a/*::]*/: { n:'EOF', f:parsenoop2 },
 | 
			
		||||
	/*::[*/0x000c/*::]*/: { n:"CalcCount", f:parseuint16 },
 | 
			
		||||
	/*::[*/0x000d/*::]*/: { n:"CalcMode", f:parseuint16 },
 | 
			
		||||
@ -870,7 +868,6 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x001d/*::]*/: { n:"Selection" },
 | 
			
		||||
	/*::[*/0x0022/*::]*/: { n:"Date1904", f:parsebool },
 | 
			
		||||
	/*::[*/0x0023/*::]*/: { n:"ExternName", f:parse_ExternName },
 | 
			
		||||
	/*::[*/0x0024/*::]*/: { n:"COLWIDTH" },
 | 
			
		||||
	/*::[*/0x0026/*::]*/: { n:"LeftMargin", f:parse_Xnum },
 | 
			
		||||
	/*::[*/0x0027/*::]*/: { n:"RightMargin", f:parse_Xnum },
 | 
			
		||||
	/*::[*/0x0028/*::]*/: { n:"TopMargin", f:parse_Xnum },
 | 
			
		||||
@ -1040,7 +1037,6 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x0203/*::]*/: { n:"Number", f:parse_Number },
 | 
			
		||||
	/*::[*/0x0204/*::]*/: { n:"Label", f:parse_Label },
 | 
			
		||||
	/*::[*/0x0205/*::]*/: { n:"BoolErr", f:parse_BoolErr },
 | 
			
		||||
	/*::[*/0x0206/*::]*/: { n:"Formula", f:parse_Formula },
 | 
			
		||||
	/*::[*/0x0207/*::]*/: { n:"String", f:parse_String },
 | 
			
		||||
	/*::[*/0x0208/*::]*/: { n:'Row', f:parse_Row },
 | 
			
		||||
	/*::[*/0x020b/*::]*/: { n:"Index" },
 | 
			
		||||
@ -1050,7 +1046,6 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x023e/*::]*/: { n:"Window2", f:parse_Window2 },
 | 
			
		||||
	/*::[*/0x027e/*::]*/: { n:"RK", f:parse_RK },
 | 
			
		||||
	/*::[*/0x0293/*::]*/: { n:"Style" },
 | 
			
		||||
	/*::[*/0x0406/*::]*/: { n:"Formula", f:parse_Formula },
 | 
			
		||||
	/*::[*/0x0418/*::]*/: { n:"BigName" },
 | 
			
		||||
	/*::[*/0x041e/*::]*/: { n:"Format", f:parse_Format },
 | 
			
		||||
	/*::[*/0x043c/*::]*/: { n:"ContinueBigName" },
 | 
			
		||||
@ -1207,20 +1202,49 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x1068/*::]*/: { n:"Fbi2" },
 | 
			
		||||
 | 
			
		||||
	/*::[*/0x0000/*::]*/: { n:"Dimensions", f:parse_Dimensions },
 | 
			
		||||
	/*::[*/0x0001/*::]*/: { n:"BIFF2BLANK" },
 | 
			
		||||
	/*::[*/0x0002/*::]*/: { n:"BIFF2INT", f:parse_BIFF2INT },
 | 
			
		||||
	/*::[*/0x0003/*::]*/: { n:"BIFF2NUM", f:parse_BIFF2NUM },
 | 
			
		||||
	/*::[*/0x0004/*::]*/: { n:"BIFF2STR", f:parse_BIFF2STR },
 | 
			
		||||
	/*::[*/0x0005/*::]*/: { n:"BoolErr", f:parse_BoolErr },
 | 
			
		||||
	/*::[*/0x0007/*::]*/: { n:"String", f:parse_BIFF2STRING },
 | 
			
		||||
	/*::[*/0x0008/*::]*/: { n:"BIFF2ROW" },
 | 
			
		||||
	/*::[*/0x0009/*::]*/: { n:'BOF', f:parse_BOF },
 | 
			
		||||
	/*::[*/0x000b/*::]*/: { n:"Index" },
 | 
			
		||||
	/*::[*/0x0016/*::]*/: { n:"ExternCount", f:parseuint16 },
 | 
			
		||||
	/*::[*/0x001e/*::]*/: { n:"BIFF2FORMAT", f:parse_BIFF2Format },
 | 
			
		||||
	/*::[*/0x001f/*::]*/: { n:"BIFF2FMTCNT" }, /* 16-bit cnt of BIFF2FORMAT records */
 | 
			
		||||
	/*::[*/0x0020/*::]*/: { n:"BIFF2COLINFO" },
 | 
			
		||||
	/*::[*/0x0021/*::]*/: { n:"Array", f:parse_Array },
 | 
			
		||||
	/*::[*/0x0024/*::]*/: { n:"COLWIDTH" },
 | 
			
		||||
	/*::[*/0x0025/*::]*/: { n:"DefaultRowHeight", f:parse_DefaultRowHeight },
 | 
			
		||||
	// 0x2c ??
 | 
			
		||||
	// 0x2d ??
 | 
			
		||||
	// 0x2e ??
 | 
			
		||||
	// 0x30 FONTCOUNT: number of fonts
 | 
			
		||||
	/*::[*/0x0032/*::]*/: { n:"BIFF2FONTXTRA", f:parse_BIFF2FONTXTRA },
 | 
			
		||||
	/*::[*/0x0034/*::]*/: { n:"DDEObjName" },
 | 
			
		||||
	// 0x35: INFOOPTS
 | 
			
		||||
	// 0x36: TABLE (BIFF2 only)
 | 
			
		||||
	// 0x37: TABLE2 (BIFF2 only)
 | 
			
		||||
	// 0x38: WNDESK
 | 
			
		||||
	// 0x39 ??
 | 
			
		||||
	// 0x3a: BEGINPREF
 | 
			
		||||
	// 0x3b: ENDPREF
 | 
			
		||||
	/*::[*/0x003e/*::]*/: { n:"BIFF2WINDOW2" },
 | 
			
		||||
	// 0x3f ??
 | 
			
		||||
	// 0x46: SHOWSCROLL
 | 
			
		||||
	// 0x47: SHOWFORMULA
 | 
			
		||||
	// 0x48: STATUSBAR
 | 
			
		||||
	// 0x49: SHORTMENUS
 | 
			
		||||
	// 0x4A:
 | 
			
		||||
	// 0x4B:
 | 
			
		||||
	// 0x4C:
 | 
			
		||||
	// 0x4E:
 | 
			
		||||
	// 0x4F:
 | 
			
		||||
	// 0x58: TOOLBAR (BIFF3)
 | 
			
		||||
 | 
			
		||||
	/* - - - */
 | 
			
		||||
	/*::[*/0x0034/*::]*/: { n:"DDEObjName" },
 | 
			
		||||
	/*::[*/0x0043/*::]*/: { n:"BIFF2XF" },
 | 
			
		||||
	/*::[*/0x0044/*::]*/: { n:"BIFF2XFINDEX", f:parseuint16 },
 | 
			
		||||
	/*::[*/0x0045/*::]*/: { n:"BIFF2FONTCLR" },
 | 
			
		||||
@ -1230,10 +1254,18 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x0087/*::]*/: { n:"Addin" },
 | 
			
		||||
	/*::[*/0x0088/*::]*/: { n:"Edg" },
 | 
			
		||||
	/*::[*/0x0089/*::]*/: { n:"Pub" },
 | 
			
		||||
	// 0x8A
 | 
			
		||||
	// 0x8B LH: alternate menu key flag (BIFF3/4)
 | 
			
		||||
	// 0x8E
 | 
			
		||||
	// 0x8F
 | 
			
		||||
	/*::[*/0x0091/*::]*/: { n:"Sub" },
 | 
			
		||||
	// 0x93 STYLE
 | 
			
		||||
	/*::[*/0x0094/*::]*/: { n:"LHRecord" },
 | 
			
		||||
	/*::[*/0x0095/*::]*/: { n:"LHNGraph" },
 | 
			
		||||
	/*::[*/0x0096/*::]*/: { n:"Sound" },
 | 
			
		||||
	// 0xA2 FNPROTO: function prototypes (BIFF4)
 | 
			
		||||
	// 0xA3
 | 
			
		||||
	// 0xA8
 | 
			
		||||
	/*::[*/0x00a9/*::]*/: { n:"CoordList" },
 | 
			
		||||
	/*::[*/0x00ab/*::]*/: { n:"GCW" },
 | 
			
		||||
	/*::[*/0x00bc/*::]*/: { n:"ShrFmla" }, /* Not necessarily same as 0x04bc */
 | 
			
		||||
@ -1246,11 +1278,13 @@ var XLSRecordEnum = {
 | 
			
		||||
	/*::[*/0x00ea/*::]*/: { n:"TabIdConf" },
 | 
			
		||||
	/*::[*/0x0162/*::]*/: { n:"XL5Modify" },
 | 
			
		||||
	/*::[*/0x01a5/*::]*/: { n:"FileSharing2" },
 | 
			
		||||
	/*::[*/0x0206/*::]*/: { n:"Formula", f:parse_Formula },
 | 
			
		||||
	/*::[*/0x0209/*::]*/: { n:'BOF', f:parse_BOF },
 | 
			
		||||
	/*::[*/0x0218/*::]*/: { n:"Lbl", f:parse_Lbl },
 | 
			
		||||
	/*::[*/0x0223/*::]*/: { n:"ExternName", f:parse_ExternName },
 | 
			
		||||
	/*::[*/0x0231/*::]*/: { n:"Font" },
 | 
			
		||||
	/*::[*/0x0243/*::]*/: { n:"BIFF3XF" },
 | 
			
		||||
	/*::[*/0x0406/*::]*/: { n:"Formula", f:parse_Formula },
 | 
			
		||||
	/*::[*/0x0409/*::]*/: { n:'BOF', f:parse_BOF },
 | 
			
		||||
	/*::[*/0x0443/*::]*/: { n:"BIFF4XF" },
 | 
			
		||||
	/*::[*/0x086d/*::]*/: { n:"FeatInfo" },
 | 
			
		||||
 | 
			
		||||
@ -556,11 +556,10 @@ var parse_content_xml = (function() {
 | 
			
		||||
 | 
			
		||||
function parse_ods(zip/*:ZIPFile*/, opts/*:?ParseOpts*/)/*:Workbook*/ {
 | 
			
		||||
	opts = opts || ({}/*:any*/);
 | 
			
		||||
	var ods = !!safegetzipfile(zip, 'objectdata');
 | 
			
		||||
	if(ods) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);
 | 
			
		||||
	if(safegetzipfile(zip, 'META-INF/manifest.xml')) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);
 | 
			
		||||
	var content = getzipstr(zip, 'content.xml');
 | 
			
		||||
	if(!content) throw new Error("Missing content.xml in " + (ods ? "ODS" : "UOF")+ " file");
 | 
			
		||||
	var wb = parse_content_xml(ods ? content : utf8read(content), opts);
 | 
			
		||||
	if(!content) throw new Error("Missing content.xml in ODS / UOF file");
 | 
			
		||||
	var wb = parse_content_xml(utf8read(content), opts);
 | 
			
		||||
	if(safegetzipfile(zip, 'meta.xml')) wb.Props = parse_core_props(getzipdata(zip, 'meta.xml'));
 | 
			
		||||
	return wb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -46,10 +46,11 @@
 | 
			
		||||
	"devDependencies": {
 | 
			
		||||
		"@sheetjs/uglify-js": "~2.7.3",
 | 
			
		||||
		"@types/node": "^8.5.9",
 | 
			
		||||
		"acorn": "7.4.1",
 | 
			
		||||
		"alex": "^9.1.0",
 | 
			
		||||
		"blanket": "~1.2.3",
 | 
			
		||||
		"dtslint": "^0.1.2",
 | 
			
		||||
		"eslint": "^7.23.0",
 | 
			
		||||
		"eslint": "7.23.0",
 | 
			
		||||
		"eslint-plugin-html": "^6.1.2",
 | 
			
		||||
		"eslint-plugin-json": "^2.1.2",
 | 
			
		||||
		"jsdom": "~11.1.0",
 | 
			
		||||
 | 
			
		||||
@ -227,7 +227,7 @@ apachepoi_MatrixFormulaEvalTestData.xlsx
 | 
			
		||||
apachepoi_NewStyleConditionalFormattings.xlsx
 | 
			
		||||
apachepoi_NewlineInFormulas.xlsx
 | 
			
		||||
# apachepoi_NumberFormatApproxTests.xlsx # xlml
 | 
			
		||||
apachepoi_NumberFormatTests.xlsx
 | 
			
		||||
apachepoi_NumberFormatTests.xlsx # upstream changed file
 | 
			
		||||
apachepoi_RepeatingRowsCols.xlsx
 | 
			
		||||
apachepoi_SampleSS.strict.xlsx
 | 
			
		||||
apachepoi_SampleSS.xlsx
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user