securityos/node_modules/7z-wasm/index.d.ts

209 lines
5.9 KiB
TypeScript

export interface SevenZipModuleFactory {
(opts?: Partial<SevenZipModuleOptions>): Promise<SevenZipModule>;
}
export interface SevenZipModuleOptions {
noFSInit: boolean;
stdin(): number;
stdout(charCode: number): void;
stderr(charCode: number): void;
preInit: Array<{ (): void }>;
preRun: Array<{ (): void }>;
postRun: Array<{ (): void }>;
locateFile(url: string, scriptDirectory: string): string;
print(str: string): void;
printErr(str: string): void;
quit(code: number, exitStatus: ExitStatus): void;
onAbort(what: string | number): void;
onExit(code: number): void;
onRuntimeInitialized(): void;
noExitRuntime: boolean;
logReadFiles: boolean;
wasmBinary: ArrayBuffer;
}
export interface ExitStatus {
name: string;
message: string;
status: number;
}
export interface SevenZipModule {
FS: FileSystem;
NODEFS: FileSystem;
WORKERFS: FileSystem;
callMain(args: string[]): void;
}
export interface FileSystem {
//
// paths
//
lookupPath(path: string, opts?: FSLookupOpts): FSLookup;
getPath(node: FSNode): string;
//
// nodes
//
isFile(mode: number): boolean;
isDir(mode: number): boolean;
isLink(mode: number): boolean;
isChrdev(mode: number): boolean;
isBlkdev(mode: number): boolean;
isFIFO(mode: number): boolean;
isSocket(mode: number): boolean;
//
// devices
//
major(dev: number): number;
minor(dev: number): number;
makedev(ma: number, mi: number): number;
registerDevice(dev: number, ops: any): void;
//
// core
//
syncfs(populate: boolean, callback: (e: number | null) => void): void;
syncfs(callback: (e: number | null) => void, populate?: boolean): void;
mount(type: FileSystem, opts: any, mountpoint: string): FSNode;
unmount(mountpoint: string): void;
mkdir(path: string, mode?: number): FSNode;
mkdev(path: string, mode?: number, dev?: number): FSNode;
symlink(oldpath: string, newpath: string): FSNode;
rename(old_path: string, new_path: string): void;
rmdir(path: string): void;
readdir(path: string): string[];
unlink(path: string): void;
readlink(path: string): string;
stat(path: string, dontFollow?: boolean): FSNodeAttr;
lstat(path: string): FSNodeAttr;
chmod(path: string, mode: number, dontFollow?: boolean): void;
lchmod(path: string, mode: number): void;
fchmod(fd: number, mode: number): void;
chown(path: string, uid: number, gid: number, dontFollow?: boolean): void;
lchown(path: string, uid: number, gid: number): void;
fchown(fd: number, uid: number, gid: number): void;
truncate(path: string, len: number): void;
ftruncate(fd: number, len: number): void;
utime(path: string, atime: number, mtime: number): void;
open(path: string, flags: string, mode?: number, fd_start?: number, fd_end?: number): FSStream;
close(stream: FSStream): void;
llseek(stream: FSStream, offset: number, whence: number): number;
read(stream: FSStream, buffer: ArrayBufferView, offset: number, length: number, position?: number): number;
write(
stream: FSStream,
buffer: ArrayBufferView,
offset: number,
length: number,
position?: number,
canOwn?: boolean,
): number;
allocate(stream: FSStream, offset: number, length: number): void;
mmap(
stream: FSStream,
buffer: ArrayBufferView,
offset: number,
length: number,
position: number,
prot: number,
flags: number,
): any;
readFile(path: string, opts: { encoding: 'binary'; flags?: string | undefined }): Uint8Array;
readFile(path: string, opts: { encoding: 'utf8'; flags?: string | undefined }): string;
readFile(path: string, opts?: { flags?: string | undefined }): Uint8Array;
writeFile(path: string, data: string | ArrayBufferView, opts?: { flags?: string | undefined }): void;
//
// module-level FS code
//
cwd(): string;
chdir(path: string): void;
init(
input?: null | (() => number | null),
output?: null | ((c: number) => any),
error?: null | ((c: number) => any),
): void;
createLazyFile(
parent: string | FSNode,
name: string,
url: string,
canRead: boolean,
canWrite: boolean,
): FSNode;
createPreloadedFile(
parent: string | FSNode,
name: string,
url: string,
canRead: boolean,
canWrite: boolean,
onload?: () => void,
onerror?: () => void,
dontCreateFile?: boolean,
canOwn?: boolean,
): void;
createDataFile(
parent: string | FSNode,
name: string,
data: ArrayBufferView,
canRead: boolean,
canWrite: boolean,
canOwn: boolean,
): FSNode;
}
export interface FSLookupOpts {
follow?: boolean;
follow_mount?: boolean;
parent?: boolean;
}
export interface FSLookup {
path: string;
node: FSNode;
}
export interface FSStream {
object: FSNode;
isRead: boolean;
isWrite: boolean;
isAppend: boolean;
}
export interface FSNode {
contents: Record<string, FSNode>;
id: number;
mode: number;
mount: unknown;
name: string;
parent: FSNode | undefined;
rdev: number;
timestamp: number;
isDevice: boolean;
isFolder: boolean;
read: boolean;
write: boolean;
}
export interface FSNodeAttr {
dev: number;
ino: number;
mode: number;
nlink: number;
uid: number;
gid: number;
rdev: unknown;
size: number;
atime: Date;
mtime: Date;
ctime: Date;
blksize: number;
blocks: number;
}
declare const factory: SevenZipModuleFactory;
export default factory;