etcher-sdk
Version:
149 lines (148 loc) • 7.36 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { Transform as TransformStream } from 'stream';
import { EventEmitter } from 'events';
import { ReadResult, WriteResult } from 'file-disk';
import { GetPartitionsResult } from 'partitioninfo';
import { AlignedLockableBuffer } from '../aligned-lockable-buffer';
import { BlocksWithChecksum, SparseReadable } from '../sparse-stream/shared';
import { SparseWritable } from '../sparse-stream/shared';
import { Metadata } from './metadata';
import { ProgressEvent } from './progress';
import { SourceSource } from './source-source';
declare class HashStream extends TransformStream {
private _hash;
constructor(seed: Buffer, outEnc: string | Buffer);
_transform(chunk: Buffer, _encoding: string, callback: () => void): void;
_flush(callback: () => void): void;
}
export declare class CountingHashStream extends HashStream {
bytesWritten: number;
__transform(chunk: Buffer | AlignedLockableBuffer, encoding: string): Promise<void>;
_transform(chunk: Buffer | AlignedLockableBuffer, encoding: string, callback: (error?: Error) => void): void;
}
export declare const ProgressHashStream: {
new (...args: any[]): {
[EventEmitter.captureRejectionSymbol]?(error: Error, event: string, ...args: any[]): void;
addListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
on(eventName: string | symbol, listener: (...args: any[]) => void): any;
once(eventName: string | symbol, listener: (...args: any[]) => void): any;
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
off(eventName: string | symbol, listener: (...args: any[]) => void): any;
removeAllListeners(event?: string | symbol | undefined): any;
setMaxListeners(n: number): any;
getMaxListeners(): number;
listeners(eventName: string | symbol): Function[];
rawListeners(eventName: string | symbol): Function[];
emit(eventName: string | symbol, ...args: any[]): boolean;
listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
eventNames(): (string | symbol)[];
};
} & typeof CountingHashStream;
export declare function createHasher(): {
[EventEmitter.captureRejectionSymbol]?(error: Error, event: string, ...args: any[]): void;
addListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
on(eventName: string | symbol, listener: (...args: any[]) => void): any;
once(eventName: string | symbol, listener: (...args: any[]) => void): any;
removeListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
off(eventName: string | symbol, listener: (...args: any[]) => void): any;
removeAllListeners(event?: string | symbol | undefined): any;
setMaxListeners(n: number): any;
getMaxListeners(): number;
listeners(eventName: string | symbol): Function[];
rawListeners(eventName: string | symbol): Function[];
emit(eventName: string | symbol, ...args: any[]): boolean;
listenerCount(eventName: string | symbol, listener?: Function | undefined): number;
prependListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): any;
eventNames(): (string | symbol)[];
} & CountingHashStream;
export declare class SourceDestinationFs {
private source;
constructor(source: SourceDestination);
open(_path: string, _options: any, callback: (error: Error | null, fd?: number) => void): void;
close(_fd: number, callback: (error: Error | null) => void): void;
fstat(_fd: number, callback: (error: Error | null, stats?: {
size: number;
}) => void): void;
read(_fd: number, buffer: Buffer, bufferOffset: number, length: number, sourceOffset: number, callback: (error: Error | null, bytesRead?: number, buffer?: Buffer) => void): void;
}
export declare abstract class Verifier extends EventEmitter {
progress: ProgressEvent;
abstract run(): Promise<void>;
protected handleEventsAndPipe(stream: NodeJS.ReadableStream, meter: NodeJS.WritableStream): void;
}
export declare class StreamVerifier extends Verifier {
private source;
private checksum;
private size;
constructor(source: SourceDestination, checksum: string, size: number);
run(): Promise<void>;
}
export declare class SparseStreamVerifier extends Verifier {
private source;
private blocks;
constructor(source: SourceDestination, blocks: BlocksWithChecksum[]);
run(): Promise<void>;
}
export interface CreateReadStreamOptions {
emitProgress?: boolean;
start?: number;
end?: number;
alignment?: number;
numBuffers?: number;
}
export interface CreateSparseReadStreamOptions {
generateChecksums?: boolean;
alignment?: number;
numBuffers?: number;
}
export declare class SourceDestination extends EventEmitter {
static readonly imageExtensions: string[];
static readonly mimetype?: string;
private static mimetypes;
private metadata;
private isOpen;
static register(Cls: typeof SourceSource): void;
getAlignment(): number | undefined;
canRead(): Promise<boolean>;
canWrite(): Promise<boolean>;
canCreateReadStream(): Promise<boolean>;
canCreateSparseReadStream(): Promise<boolean>;
canCreateWriteStream(): Promise<boolean>;
canCreateSparseWriteStream(): Promise<boolean>;
getMetadata(): Promise<Metadata>;
protected _getMetadata(): Promise<Metadata>;
read(_buffer: Buffer, // eslint-disable-line @typescript-eslint/no-unused-vars
_bufferOffset: number, // eslint-disable-line @typescript-eslint/no-unused-vars
_length: number, // eslint-disable-line @typescript-eslint/no-unused-vars
_sourceOffset: number): Promise<ReadResult>;
write(_buffer: Buffer, // eslint-disable-line @typescript-eslint/no-unused-vars
_bufferOffset: number, // eslint-disable-line @typescript-eslint/no-unused-vars
_length: number, // eslint-disable-line @typescript-eslint/no-unused-vars
_fileOffset: number): Promise<WriteResult>;
createReadStream(_options?: CreateReadStreamOptions): Promise<NodeJS.ReadableStream>;
createSparseReadStream(_options?: CreateSparseReadStreamOptions): Promise<SparseReadable>;
getBlocks(): Promise<BlocksWithChecksum[]>;
createWriteStream(_options?: {
highWaterMark?: number;
}): Promise<NodeJS.WritableStream>;
createSparseWriteStream(_options?: {
highWaterMark?: number;
}): Promise<SparseWritable>;
open(): Promise<void>;
close(): Promise<void>;
protected _open(): Promise<void>;
protected _close(): Promise<void>;
createVerifier(checksumOrBlocks: string | BlocksWithChecksum[], size?: number): Verifier;
private getMimeTypeFromName;
private getMimeTypeFromContent;
private getInnerSourceHelper;
getInnerSource(): Promise<SourceDestination>;
getPartitionTable(): Promise<GetPartitionsResult | undefined>;
}
export {};