@river-build/sdk
Version:
For more details, visit the following resources:
70 lines • 4.22 kB
TypeScript
import { PersistedSyncedStream, Snapshot } from '@river-build/proto';
import Dexie, { Table } from 'dexie';
import { ParsedMiniblock } from './types';
import { ParsedPersistedSyncedStream } from './streamUtils';
export interface LoadedStream {
persistedSyncedStream: ParsedPersistedSyncedStream;
miniblocks: ParsedMiniblock[];
cleartexts: Record<string, Uint8Array | string> | undefined;
snapshot: Snapshot;
prependedMiniblocks: ParsedMiniblock[];
prevSnapshotMiniblockNum: bigint;
}
export interface IPersistenceStore {
saveCleartext(eventId: string, cleartext: Uint8Array | string): Promise<void>;
getCleartext(eventId: string): Promise<Uint8Array | string | undefined>;
getCleartexts(eventIds: string[]): Promise<Record<string, Uint8Array | string> | undefined>;
getSyncedStream(streamId: string): Promise<ParsedPersistedSyncedStream | undefined>;
saveSyncedStream(streamId: string, syncedStream: PersistedSyncedStream): Promise<void>;
loadStream(streamId: string, inPersistedSyncedStream?: ParsedPersistedSyncedStream): Promise<LoadedStream | undefined>;
loadStreams(streamIds: string[]): Promise<Record<string, LoadedStream | undefined>>;
saveMiniblock(streamId: string, miniblock: ParsedMiniblock): Promise<void>;
saveMiniblocks(streamId: string, miniblocks: ParsedMiniblock[], direction: 'forward' | 'backward'): Promise<void>;
getMiniblock(streamId: string, miniblockNum: bigint): Promise<ParsedMiniblock | undefined>;
getMiniblocks(streamId: string, rangeStart: bigint, randeEnd: bigint): Promise<ParsedMiniblock[]>;
}
export declare class PersistenceStore extends Dexie implements IPersistenceStore {
cleartexts: Table<{
cleartext: Uint8Array | string;
eventId: string;
}>;
syncedStreams: Table<{
streamId: string;
data: Uint8Array;
}>;
miniblocks: Table<{
streamId: string;
miniblockNum: string;
data: Uint8Array;
}>;
constructor(databaseName: string);
saveCleartext(eventId: string, cleartext: Uint8Array | string): Promise<void>;
getCleartext(eventId: string): Promise<string | Uint8Array | undefined>;
getCleartexts(eventIds: string[]): Promise<Record<string, string | Uint8Array> | undefined>;
getSyncedStream(streamId: string): Promise<ParsedPersistedSyncedStream | undefined>;
loadStream(streamId: string, inPersistedSyncedStream?: ParsedPersistedSyncedStream): Promise<LoadedStream | undefined>;
loadStreams(streamIds: string[]): Promise<Record<string, LoadedStream | undefined>>;
private getSyncedStreams;
saveSyncedStream(streamId: string, syncedStream: PersistedSyncedStream): Promise<void>;
saveMiniblock(streamId: string, miniblock: ParsedMiniblock): Promise<void>;
saveMiniblocks(streamId: string, miniblocks: ParsedMiniblock[], direction: 'forward' | 'backward'): Promise<void>;
getMiniblock(streamId: string, miniblockNum: bigint): Promise<ParsedMiniblock | undefined>;
getMiniblocks(streamId: string, rangeStart: bigint, rangeEnd: bigint): Promise<ParsedMiniblock[]>;
private requestPersistentStorage;
private logPersistenceStats;
private cachedScrollback;
}
export declare class StubPersistenceStore implements IPersistenceStore {
saveCleartext(eventId: string, cleartext: Uint8Array): Promise<void>;
getCleartext(eventId: string): Promise<undefined>;
getCleartexts(eventIds: string[]): Promise<undefined>;
getSyncedStream(streamId: string): Promise<undefined>;
loadStream(streamId: string, inPersistedSyncedStream?: ParsedPersistedSyncedStream): Promise<undefined>;
loadStreams(streamIds: string[]): Promise<{}>;
saveSyncedStream(streamId: string, syncedStream: PersistedSyncedStream): Promise<void>;
saveMiniblock(streamId: string, miniblock: ParsedMiniblock): Promise<void>;
saveMiniblocks(streamId: string, miniblocks: ParsedMiniblock[], direction: 'forward' | 'backward'): Promise<void>;
getMiniblock(streamId: string, miniblockNum: bigint): Promise<ParsedMiniblock | undefined>;
getMiniblocks(streamId: string, rangeStart: bigint, rangeEnd: bigint): Promise<ParsedMiniblock[]>;
}
//# sourceMappingURL=persistenceStore.d.ts.map