@abextm/cache2
Version:
Utilities for reading OSRS "caches"
57 lines • 1.98 kB
TypeScript
import { CompressionType, XTEAKey } from "./types.js";
import { XTEAKeyManager } from "./xtea.js";
export interface CacheProvider {
getIndex(index: number): Promise<IndexData | undefined>;
getArchive(index: number, archive: number): Promise<ArchiveData | undefined>;
getArchiveByName(index: number, name: string | number): Promise<ArchiveData | undefined>;
getArchives(index: number): Promise<number[] | undefined>;
getVersion(index: number): Promise<CacheVersion>;
getKeys?(): Promise<XTEAKeyManager>;
}
export interface FileProvider {
getFile(name: string): Promise<Uint8Array | undefined>;
}
export interface IndexData {
id: number;
protocol?: number;
revision: number;
compression: number;
crc: number;
named: boolean;
}
export declare class ArchiveFile {
readonly id: number;
readonly namehash: number;
data: Uint8Array;
constructor(id: number, namehash: number);
}
export declare class ArchiveData {
readonly index: number;
readonly archive: number;
constructor(index: number, archive: number);
compressedData: Uint8Array;
namehash: number;
revision: number;
crc: number;
decompressedSize?: number;
compressedSize?: number;
/**@internal*/ files: Map<number, ArchiveFile>;
key: XTEAKey | undefined;
/**@internal*/ decryptedData: Uint8Array | undefined;
maxFile: number;
/**@internal*/ addFile(id: number, nameHash: number): void;
get compression(): CompressionType;
/**@internal*/ getCryptedBlob(): Uint8Array;
getDecryptedData(): Uint8Array;
getFile(id: number): ArchiveFile | undefined;
getFiles(): Map<number, ArchiveFile>;
}
export declare function hash(name: string | number): number;
export interface CacheVersion {
era: "osrs";
indexRevision: number;
}
export declare namespace CacheVersion {
function isAfter(prev: CacheVersion | undefined, after: CacheVersion): boolean;
}
//# sourceMappingURL=Cache.d.ts.map