UNPKG

jinaga

Version:

Data management for web and mobile applications.

64 lines 2.39 kB
import { Specification } from "./specification/specification"; export type FactReference = { type: string; hash: string; }; export interface FactTuple { facts: FactReference[]; bookmark: string; } export interface FactFeed { tuples: FactTuple[]; bookmark: string; } export type PredecessorCollection = { [role: string]: FactReference[] | FactReference; }; export type FactRecord = { type: string; hash: string; predecessors: PredecessorCollection; fields: { [field: string]: any; }; }; export type FactSignature = { publicKey: string; signature: string; }; export type FactEnvelope = { fact: FactRecord; signatures: FactSignature[]; }; export type ReferencesByName = { [name: string]: FactReference; }; export interface ProjectedResult { tuple: ReferencesByName; result: any; } export interface Storage { close(): Promise<void>; save(envelopes: FactEnvelope[]): Promise<FactEnvelope[]>; read(start: FactReference[], specification: Specification): Promise<ProjectedResult[]>; feed(feed: Specification, start: FactReference[], bookmark: string): Promise<FactFeed>; whichExist(references: FactReference[]): Promise<FactReference[]>; load(references: FactReference[]): Promise<FactEnvelope[]>; purge(purgeConditions: Specification[]): Promise<number>; purgeDescendants(purgeRoot: FactReference, triggers: FactReference[]): Promise<number>; loadBookmark(feed: string): Promise<string>; saveBookmark(feed: string, bookmark: string): Promise<void>; getMruDate(specificationHash: string): Promise<Date | null>; setMruDate(specificationHash: string, mruDate: Date): Promise<void>; } export interface Queue { peek(): Promise<FactEnvelope[]>; enqueue(envelopes: FactEnvelope[]): Promise<void>; dequeue(envelopes: FactEnvelope[]): Promise<void>; } export declare function factReferenceEquals(a: FactReference): (r: FactReference) => boolean; export declare function factEnvelopeEquals(r: FactReference): (e: FactEnvelope) => boolean; export declare function uniqueFactReferences(references: FactReference[]): FactReference[]; export declare function computeTupleSubsetHash(tuple: ReferencesByName, subset: string[]): string; export declare function validateGiven(start: FactReference[], specification: Specification): void; //# sourceMappingURL=storage.d.ts.map