UNPKG

@abextm/cache2

Version:

Utilities for reading OSRS "caches"

57 lines 1.98 kB
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