forked from sheetjs/sheetjs
105 lines
2.3 KiB
TypeScript
105 lines
2.3 KiB
TypeScript
declare enum CFBEntryType { unknown, storage, stream, lockbytes, property, root }
|
|
declare enum CFBStorageType { fat, minifat }
|
|
|
|
/* CFB Entry Object demanded by write functions */
|
|
interface CFBEntryMin {
|
|
|
|
/* Raw Content (Buffer when available, Array of bytes otherwise) */
|
|
content:any;
|
|
}
|
|
|
|
/* CFB Entry Object returned by parse functions */
|
|
interface CFBEntry extends CFBEntryMin {
|
|
|
|
/* Case-sensitive internal name */
|
|
name:string;
|
|
|
|
/* CFB type (salient types: stream, storage) -- see CFBEntryType */
|
|
type:string;
|
|
|
|
/* Creation Time */
|
|
ct:Date;
|
|
/* Modification Time */
|
|
mt:Date;
|
|
|
|
|
|
/* Raw creation time -- see [MS-DTYP] 2.3.3 FILETIME */
|
|
mtime:string;
|
|
/* Raw modification time -- see [MS-DTYP] 2.3.3 FILETIME */
|
|
ctime:string;
|
|
|
|
/* RBT color: 0 = red, 1 = black */
|
|
color:number;
|
|
|
|
/* Class ID represented as hex string */
|
|
clsid:string;
|
|
|
|
/* User-Defined State Bits */
|
|
state:number;
|
|
|
|
/* Starting Sector */
|
|
start:number;
|
|
|
|
/* Data Size */
|
|
size:number;
|
|
|
|
/* Storage location -- see CFBStorageType */
|
|
storage:string;
|
|
}
|
|
|
|
|
|
/* cfb.FullPathDir as demanded by write functions */
|
|
interface CFBDirectoryMin {
|
|
|
|
/* keys are unix-style paths */
|
|
[key:string]: CFBEntryMin;
|
|
}
|
|
|
|
/* cfb.FullPathDir Directory object */
|
|
interface CFBDirectory extends CFBDirectoryMin {
|
|
|
|
/* cfb.FullPathDir keys are paths; cfb.Directory keys are file names */
|
|
[key:string]: CFBEntry;
|
|
}
|
|
|
|
|
|
/* cfb object demanded by write functions */
|
|
interface CFBContainerMin {
|
|
|
|
/* Path -> CFB object mapping */
|
|
FullPathDir:CFBDirectoryMin;
|
|
}
|
|
|
|
/* cfb object returned by read and parse functions */
|
|
interface CFBContainer extends CFBContainerMin {
|
|
|
|
/* search by path or file name */
|
|
find(string):CFBEntry;
|
|
|
|
/* list of streams and storages */
|
|
FullPaths:string[];
|
|
|
|
/* Path -> CFB object mapping */
|
|
FullPathDir:CFBDirectory;
|
|
|
|
/* Array of entries in the same order as FullPaths */
|
|
FileIndex:CFBEntry[];
|
|
|
|
/* Raw Content, in chunks (Buffer when available, Array of bytes otherwise) */
|
|
raw:any[];
|
|
}
|
|
|
|
|
|
interface CFB {
|
|
read(f:any, options:any):CFBContainer;
|
|
parse(f:any):CFBContainer;
|
|
utils: {
|
|
ReadShift(size:any,t?:any):any;
|
|
WarnField(hexstr:string,fld?:string);
|
|
CheckField(hexstr:string,fld?:string);
|
|
prep_blob(blob:any, pos?:number):any;
|
|
bconcat(bufs:any[]):any;
|
|
};
|
|
main;
|
|
}
|