@fireproof/core 0.15.1 → 0.16.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. package/LICENSE.md +232 -0
  2. package/README.md +16 -7
  3. package/dist/browser/fireproof.cjs +626 -21124
  4. package/dist/browser/fireproof.cjs.map +1 -7
  5. package/dist/browser/fireproof.d.cts +286 -0
  6. package/dist/browser/fireproof.d.ts +286 -0
  7. package/dist/browser/{fireproof.iife.js → fireproof.global.js} +12710 -13071
  8. package/dist/browser/fireproof.global.js.map +1 -0
  9. package/dist/browser/fireproof.js +1114 -0
  10. package/dist/browser/fireproof.js.map +1 -0
  11. package/dist/browser/metafile-cjs.json +1 -0
  12. package/dist/browser/metafile-esm.json +1 -0
  13. package/dist/browser/metafile-iife.json +1 -0
  14. package/dist/memory/fireproof.cjs +1143 -0
  15. package/dist/memory/fireproof.cjs.map +1 -0
  16. package/dist/memory/fireproof.d.cts +286 -0
  17. package/dist/memory/fireproof.d.ts +286 -0
  18. package/dist/memory/fireproof.global.js +21282 -0
  19. package/dist/memory/fireproof.global.js.map +1 -0
  20. package/dist/memory/fireproof.js +1114 -0
  21. package/dist/memory/fireproof.js.map +1 -0
  22. package/dist/memory/metafile-cjs.json +1 -0
  23. package/dist/memory/metafile-esm.json +1 -0
  24. package/dist/memory/metafile-iife.json +1 -0
  25. package/dist/node/fireproof.cjs +614 -30532
  26. package/dist/node/fireproof.cjs.map +1 -7
  27. package/dist/node/fireproof.d.cts +286 -0
  28. package/dist/node/fireproof.d.ts +286 -0
  29. package/dist/node/fireproof.global.js +21338 -0
  30. package/dist/node/fireproof.global.js.map +1 -0
  31. package/dist/node/fireproof.js +1114 -0
  32. package/dist/node/fireproof.js.map +1 -0
  33. package/dist/node/metafile-cjs.json +1 -0
  34. package/dist/node/metafile-esm.json +1 -0
  35. package/dist/node/metafile-iife.json +1 -0
  36. package/package.json +56 -50
  37. package/dist/browser/fireproof.esm.js +0 -21635
  38. package/dist/browser/fireproof.esm.js.map +0 -7
  39. package/dist/browser/fireproof.iife.js.map +0 -7
  40. package/dist/memory/fireproof.esm.js +0 -21349
  41. package/dist/memory/fireproof.esm.js.map +0 -7
  42. package/dist/node/fireproof.esm.js +0 -31055
  43. package/dist/node/fireproof.esm.js.map +0 -7
  44. package/dist/types/apply-head-queue.d.ts +0 -15
  45. package/dist/types/commit-queue.d.ts +0 -6
  46. package/dist/types/crdt-clock.d.ts +0 -20
  47. package/dist/types/crdt-helpers.d.ts +0 -19
  48. package/dist/types/crdt.d.ts +0 -28
  49. package/dist/types/crypto-ipld.d.ts +0 -20
  50. package/dist/types/crypto-node.d.ts +0 -4
  51. package/dist/types/crypto-web.d.ts +0 -4
  52. package/dist/types/database.d.ts +0 -48
  53. package/dist/types/encrypt-helpers.d.ts +0 -8
  54. package/dist/types/encrypted-block.d.ts +0 -44
  55. package/dist/types/files.d.ts +0 -12
  56. package/dist/types/fireproof.d.ts +0 -7
  57. package/dist/types/index.d.ts +0 -31
  58. package/dist/types/indexer-helpers.d.ts +0 -57
  59. package/dist/types/loader-helpers.d.ts +0 -5
  60. package/dist/types/loader.d.ts +0 -62
  61. package/dist/types/loaders.d.ts +0 -51
  62. package/dist/types/remote-wal.d.ts +0 -26
  63. package/dist/types/store-browser.d.ts +0 -24
  64. package/dist/types/store-fs.d.ts +0 -26
  65. package/dist/types/store-memory.d.ts +0 -24
  66. package/dist/types/store.d.ts +0 -28
  67. package/dist/types/transaction.d.ts +0 -50
  68. package/dist/types/types.d.ts +0 -170
  69. package/dist/types/version.d.ts +0 -1
  70. package/dist/types/write-queue.d.ts +0 -7
@@ -1,15 +0,0 @@
1
- import { ClockHead, DocUpdate } from './types';
2
- type ApplyHeadWorkerFunction = (newHead: ClockHead, prevHead: ClockHead) => Promise<void>;
3
- type ApplyHeadTask = {
4
- newHead: ClockHead;
5
- prevHead: ClockHead;
6
- updates: DocUpdate[] | null;
7
- };
8
- export type ApplyHeadQueue = {
9
- push(task: ApplyHeadTask): AsyncGenerator<{
10
- updates: DocUpdate[];
11
- all: boolean;
12
- }, void, unknown>;
13
- };
14
- export declare function applyHeadQueue(worker: ApplyHeadWorkerFunction): ApplyHeadQueue;
15
- export {};
@@ -1,6 +0,0 @@
1
- export declare class CommitQueue<T = void> {
2
- private queue;
3
- private processing;
4
- enqueue(fn: () => Promise<T>): Promise<T>;
5
- private processNext;
6
- }
@@ -1,20 +0,0 @@
1
- import { TransactionBlockstore } from './transaction';
2
- import type { DocUpdate, ClockHead } from './types';
3
- import { ApplyHeadQueue } from './apply-head-queue';
4
- export declare class CRDTClock {
5
- head: ClockHead;
6
- zoomers: Set<() => void>;
7
- watchers: Set<(updates: DocUpdate[]) => void>;
8
- emptyWatchers: Set<() => void>;
9
- blocks: TransactionBlockstore | null;
10
- applyHeadQueue: ApplyHeadQueue;
11
- constructor();
12
- setHead(head: ClockHead): void;
13
- applyHead(newHead: ClockHead, prevHead: ClockHead, updates?: DocUpdate[] | null): Promise<void>;
14
- processUpdates(updatesAcc: DocUpdate[], all: boolean, prevHead: ClockHead): Promise<void>;
15
- notifyWatchers(updates: DocUpdate[]): void;
16
- onTick(fn: (updates: DocUpdate[]) => void): void;
17
- onTock(fn: () => void): void;
18
- onZoom(fn: () => void): void;
19
- int_applyHead(newHead: ClockHead, prevHead: ClockHead): Promise<void>;
20
- }
@@ -1,19 +0,0 @@
1
- import { Block } from 'multiformats/block';
2
- import { LoggingFetcher, Transaction } from './transaction';
3
- import type { TransactionBlockstore } from './transaction';
4
- import type { DocUpdate, ClockHead, AnyLink, DocValue, BulkResult, ChangesOptions, BlockFetcher } from './types';
5
- export declare function applyBulkUpdateToCrdt(tblocks: Transaction, head: ClockHead, updates: DocUpdate[], options?: object): Promise<BulkResult>;
6
- export declare function getValueFromCrdt(blocks: TransactionBlockstore, head: ClockHead, key: string): Promise<DocValue>;
7
- export declare function readFiles(blocks: TransactionBlockstore | LoggingFetcher, { doc }: DocValue): void;
8
- export declare function clockChangesSince(blocks: TransactionBlockstore | LoggingFetcher, head: ClockHead, since: ClockHead, opts: ChangesOptions): Promise<{
9
- result: DocUpdate[];
10
- head: ClockHead;
11
- }>;
12
- export declare function getAllEntries(blocks: TransactionBlockstore | LoggingFetcher, head: ClockHead): AsyncGenerator<DocUpdate, void, unknown>;
13
- export declare function clockVis(blocks: TransactionBlockstore, head: ClockHead): AsyncGenerator<string, void, unknown>;
14
- export declare function doCompact(blocks: TransactionBlockstore, head: ClockHead): Promise<AnyLink | undefined>;
15
- export declare function getThatBlock({ bytes }: {
16
- cid: string;
17
- bytes: string;
18
- }): Promise<Block<unknown, 113, 18, 1>>;
19
- export declare function getBlock(blocks: BlockFetcher, cidString: string): Promise<Block<unknown, 113, 18, 1>>;
@@ -1,28 +0,0 @@
1
- import { TransactionBlockstore, IndexBlockstore } from './transaction';
2
- import type { DocUpdate, BulkResult, ClockHead, FireproofOptions, ChangesOptions } from './types';
3
- import type { Index } from './index';
4
- import { CRDTClock } from './crdt-clock';
5
- export declare class CRDT {
6
- name: string | null;
7
- opts: FireproofOptions;
8
- ready: Promise<void>;
9
- blocks: TransactionBlockstore;
10
- indexBlocks: IndexBlockstore;
11
- indexers: Map<string, Index>;
12
- clock: CRDTClock;
13
- constructor(name?: string, opts?: FireproofOptions);
14
- bulk(updates: DocUpdate[], options?: object): Promise<BulkResult>;
15
- allDocs(): Promise<{
16
- result: DocUpdate[];
17
- head: ClockHead;
18
- }>;
19
- vis(): Promise<string>;
20
- getBlock(cidString: string): Promise<import("multiformats/dist/types/src/block").Block<unknown, 113, 18, 1>>;
21
- getThatBlock(): Promise<import("multiformats/dist/types/src/block").Block<unknown, 113, 18, 1>>;
22
- get(key: string): Promise<import("./types").DocValue | null>;
23
- changes(since?: ClockHead, opts?: ChangesOptions): Promise<{
24
- result: DocUpdate[];
25
- head: ClockHead;
26
- }>;
27
- compact(): Promise<void>;
28
- }
@@ -1,20 +0,0 @@
1
- import type { AnyBlock, AnyLink } from './types.js';
2
- import type { MultihashHasher } from 'multiformats';
3
- declare const encrypt: ({ get, cids, hasher, key, cache, chunker, root }: {
4
- get: (cid: AnyLink) => Promise<AnyBlock | undefined>;
5
- key: ArrayBuffer;
6
- cids: AnyLink[];
7
- hasher: MultihashHasher<number>;
8
- chunker: (bytes: Uint8Array) => AsyncGenerator<Uint8Array>;
9
- cache: (cid: AnyLink) => Promise<AnyBlock>;
10
- root: AnyLink;
11
- }) => AsyncGenerator<any, void, unknown>;
12
- declare const decrypt: ({ root, get, key, cache, chunker, hasher }: {
13
- root: AnyLink;
14
- get: (cid: AnyLink) => Promise<AnyBlock | undefined>;
15
- key: ArrayBuffer;
16
- cache: (cid: AnyLink) => Promise<AnyBlock>;
17
- chunker: (bytes: Uint8Array) => AsyncGenerator<Uint8Array>;
18
- hasher: MultihashHasher<number>;
19
- }) => AsyncGenerator<AnyBlock, void, undefined>;
20
- export { encrypt, decrypt };
@@ -1,4 +0,0 @@
1
- import { Crypto } from '@peculiar/webcrypto';
2
- export declare function getCrypto(): Crypto | null;
3
- export declare const crypto: Crypto | null;
4
- export declare function randomBytes(size: number): Uint8Array;
@@ -1,4 +0,0 @@
1
- export declare function getCrypto(): Crypto | null;
2
- declare const gotCrypto: Crypto | null;
3
- export { gotCrypto as crypto };
4
- export declare function randomBytes(size: number): Uint8Array;
@@ -1,48 +0,0 @@
1
- import { WriteQueue } from './write-queue';
2
- import { CRDT } from './crdt';
3
- import type { DocUpdate, ClockHead, Doc, FireproofOptions, MapFn, QueryOpts, ChangesOptions } from './types';
4
- import { DbResponse, ChangesResponse } from './types';
5
- type DbName = string | null;
6
- export declare class Database {
7
- static databases: Map<string, Database>;
8
- name: DbName;
9
- opts: FireproofOptions;
10
- _listening: boolean;
11
- _listeners: Set<ListenerFn>;
12
- _noupdate_listeners: Set<ListenerFn>;
13
- _crdt: CRDT;
14
- _writeQueue: WriteQueue;
15
- constructor(name?: string, opts?: FireproofOptions);
16
- get(id: string): Promise<Doc>;
17
- put(doc: Doc): Promise<DbResponse>;
18
- del(id: string): Promise<DbResponse>;
19
- changes(since?: ClockHead, opts?: ChangesOptions): Promise<ChangesResponse>;
20
- allDocs(): Promise<{
21
- rows: {
22
- key: string;
23
- value: Doc;
24
- }[];
25
- clock: ClockHead;
26
- }>;
27
- allDocuments(): Promise<{
28
- rows: {
29
- key: string;
30
- value: Doc;
31
- }[];
32
- clock: ClockHead;
33
- }>;
34
- subscribe(listener: ListenerFn | NoUpdateListenerFn, updates?: boolean): () => void;
35
- query(field: string | MapFn, opts?: QueryOpts): Promise<{
36
- rows: import("./types").IndexRow[];
37
- }>;
38
- compact(): Promise<void>;
39
- getDashboardURL(compact?: boolean): Promise<URL>;
40
- openDashboard(): void;
41
- _notify(updates: DocUpdate[]): Promise<void>;
42
- _no_update_notify(): Promise<void>;
43
- }
44
- type UpdateListenerFn = (docs: Doc[]) => Promise<void> | void;
45
- type NoUpdateListenerFn = () => Promise<void> | void;
46
- type ListenerFn = UpdateListenerFn | NoUpdateListenerFn;
47
- export declare function fireproof(name: string, opts?: FireproofOptions): Database;
48
- export {};
@@ -1,8 +0,0 @@
1
- import type { CarReader } from '@ipld/car';
2
- import type { AnyBlock, CarMakeable, AnyLink } from './types';
3
- import { MemoryBlockstore } from '@alanshaw/pail/block';
4
- export declare function encryptedEncodeCarFile(key: string, rootCid: AnyLink, t: CarMakeable): Promise<AnyBlock>;
5
- export declare function decodeEncryptedCar(key: string, reader: CarReader): Promise<{
6
- blocks: MemoryBlockstore;
7
- root: AnyLink;
8
- }>;
@@ -1,44 +0,0 @@
1
- import type { AnyLink } from './types';
2
- declare const encode: ({ iv, bytes }: {
3
- iv: Uint8Array;
4
- bytes: Uint8Array;
5
- }) => Uint8Array;
6
- declare const decode: (bytes: Uint8Array) => {
7
- iv: Uint8Array;
8
- bytes: Uint8Array;
9
- };
10
- declare const code: number;
11
- declare const decrypt: ({ key, value }: {
12
- key: ArrayBuffer;
13
- value: {
14
- bytes: Uint8Array;
15
- iv: Uint8Array;
16
- };
17
- }) => Promise<{
18
- cid: AnyLink;
19
- bytes: Uint8Array;
20
- }>;
21
- declare const encrypt: ({ key, cid, bytes }: {
22
- key: ArrayBuffer;
23
- cid: AnyLink;
24
- bytes: Uint8Array;
25
- }) => Promise<{
26
- value: {
27
- bytes: Uint8Array;
28
- iv: Uint8Array;
29
- };
30
- }>;
31
- declare const cryptoFn: (key: Uint8Array) => {
32
- encrypt: (opts: any) => Promise<{
33
- value: {
34
- bytes: Uint8Array;
35
- iv: Uint8Array;
36
- };
37
- }>;
38
- decrypt: (opts: any) => Promise<{
39
- cid: AnyLink;
40
- bytes: Uint8Array;
41
- }>;
42
- };
43
- declare const name = "jchris@encrypted-block:aes-gcm";
44
- export { encode, decode, code, name, encrypt, decrypt, cryptoFn as crypto };
@@ -1,12 +0,0 @@
1
- import { AnyBlock, AnyLink, DocFileMeta } from './types';
2
- export declare function encodeFile(blob: BlobLike): Promise<{
3
- cid: AnyLink;
4
- blocks: AnyBlock[];
5
- }>;
6
- export declare function decodeFile(blocks: unknown, cid: AnyLink, meta: DocFileMeta): Promise<File>;
7
- export interface BlobLike {
8
- /**
9
- * Returns a ReadableStream which yields the Blob data.
10
- */
11
- stream: () => ReadableStream;
12
- }
@@ -1,7 +0,0 @@
1
- export * from './database';
2
- export * from './index';
3
- export * from './loader-helpers';
4
- export * from './store';
5
- export * from './loader';
6
-
7
- export * from './types';
@@ -1,31 +0,0 @@
1
- import type { ClockHead, MapFn, QueryOpts, IdxMeta } from './types';
2
- import { IndexBlockstore } from './transaction';
3
- import { IndexTree } from './indexer-helpers';
4
- import { CRDT } from './crdt';
5
- export declare function index({ _crdt }: {
6
- _crdt: CRDT;
7
- }, name: string, mapFn?: MapFn, meta?: IdxMeta): Index;
8
- export declare class Index {
9
- blocks: IndexBlockstore;
10
- crdt: CRDT;
11
- name: string | null;
12
- mapFn: MapFn | null;
13
- mapFnString: string;
14
- byKey: IndexTree;
15
- byId: IndexTree;
16
- indexHead: ClockHead | undefined;
17
- includeDocsDefault: boolean;
18
- initError: Error | null;
19
- ready: Promise<void>;
20
- constructor(crdt: CRDT, name: string, mapFn?: MapFn, meta?: IdxMeta);
21
- applyMapFn(name: string, mapFn?: MapFn, meta?: IdxMeta): void;
22
- query(opts?: QueryOpts): Promise<{
23
- rows: import("./types").IndexRow[];
24
- }>;
25
- _resetIndex(): void;
26
- _hydrateIndex(): Promise<void>;
27
- _updateIndex(): Promise<(IdxMeta & import("./types").CarCommit) | {
28
- byId: IndexTree;
29
- byKey: IndexTree;
30
- }>;
31
- }
@@ -1,57 +0,0 @@
1
- import type { Block, Link } from 'multiformats';
2
- import { ProllyNode as BaseNode } from 'prolly-trees/base';
3
- import { AnyLink, DocUpdate, MapFn, DocFragment, BlockFetcher, IndexKey, IndexUpdate, QueryOpts, IndexRow } from './types';
4
- import { Transaction } from './transaction';
5
- import { CRDT } from './crdt';
6
- export declare class IndexTree {
7
- cid: AnyLink | null;
8
- root: ProllyNode | null;
9
- }
10
- export declare const byKeyOpts: StaticProllyOptions;
11
- export declare const byIdOpts: StaticProllyOptions;
12
- export declare function indexEntriesForChanges(changes: DocUpdate[], mapFn: MapFn): {
13
- key: [string, string];
14
- value: DocFragment;
15
- }[];
16
- export declare function bulkIndex(tblocks: Transaction, inIndex: IndexTree, indexEntries: IndexUpdate[], opts: StaticProllyOptions): Promise<IndexTree>;
17
- export declare function loadIndex(tblocks: BlockFetcher, cid: AnyLink, opts: StaticProllyOptions): Promise<ProllyNode>;
18
- export declare function applyQuery(crdt: CRDT, resp: {
19
- result: IndexRow[];
20
- }, query: QueryOpts): Promise<{
21
- rows: IndexRow[];
22
- }>;
23
- export declare function encodeRange(range: [DocFragment, DocFragment]): [IndexKey, IndexKey];
24
- export declare function encodeKey(key: DocFragment): string;
25
- interface ProllyNode extends BaseNode {
26
- getAllEntries(): PromiseLike<{
27
- [x: string]: any;
28
- result: IndexRow[];
29
- }>;
30
- getMany(removeIds: string[]): Promise<{
31
- [x: string]: any;
32
- result: IndexKey[];
33
- }>;
34
- range(a: IndexKey, b: IndexKey): Promise<{
35
- result: IndexRow[];
36
- }>;
37
- get(key: string): Promise<{
38
- result: IndexRow[];
39
- }>;
40
- bulk(bulk: IndexUpdate[]): PromiseLike<{
41
- root: ProllyNode | null;
42
- blocks: Block[];
43
- }>;
44
- address: Promise<Link>;
45
- distance: number;
46
- compare: (a: any, b: any) => number;
47
- cache: any;
48
- block: Promise<Block>;
49
- }
50
- interface StaticProllyOptions {
51
- cache: any;
52
- chunker: (entry: any, distance: number) => boolean;
53
- codec: any;
54
- hasher: any;
55
- compare: (a: any, b: any) => number;
56
- }
57
- export {};
@@ -1,5 +0,0 @@
1
- import { CarReader } from '@ipld/car';
2
- import { AnyBlock, AnyCarHeader, AnyLink, CarMakeable } from './types';
3
- export declare function encodeCarFile(roots: AnyLink[], t: CarMakeable): Promise<AnyBlock>;
4
- export declare function encodeCarHeader(fp: AnyCarHeader): Promise<AnyBlock>;
5
- export declare function parseCarFile(reader: CarReader): Promise<AnyCarHeader>;
@@ -1,62 +0,0 @@
1
- import { CarReader } from '@ipld/car';
2
- import { DataStore, MetaStore, RemoteWAL } from './store-browser';
3
- import { DataStore as AbstractDataStore, MetaStore as AbstractMetaStore } from './store';
4
- import type { Transaction } from './transaction';
5
- import type { AnyBlock, AnyCarHeader, AnyLink, BulkResult, CarLoaderHeader, CommitOpts, DbMeta, FileCarHeader, FileResult, FireproofOptions } from './types';
6
- import { type IndexerResult } from './loaders';
7
- import { CommitQueue } from './commit-queue';
8
- export declare function cidListIncludes(list: AnyLink[], cid: AnyLink): boolean;
9
- export declare function uniqueCids(list: AnyLink[], remove?: Set<string>): AnyLink[];
10
- export declare function toHexString(byteArray: Uint8Array): string;
11
- declare abstract class AbstractRemoteMetaStore extends AbstractMetaStore {
12
- abstract handleByteHeads(byteHeads: Uint8Array[], branch?: string): Promise<DbMeta[]>;
13
- }
14
- export declare abstract class Loader {
15
- name: string;
16
- opts: FireproofOptions;
17
- commitQueue: CommitQueue<AnyLink>;
18
- isCompacting: boolean;
19
- isWriting: boolean;
20
- remoteMetaLoading: Promise<void> | undefined;
21
- remoteMetaStore: AbstractRemoteMetaStore | undefined;
22
- remoteCarStore: AbstractDataStore | undefined;
23
- remoteWAL: RemoteWAL;
24
- metaStore: MetaStore;
25
- carStore: DataStore;
26
- carLog: AnyLink[];
27
- carReaders: Map<string, Promise<CarReader>>;
28
- ready: Promise<void>;
29
- key: string | undefined;
30
- keyId: string | undefined;
31
- seenCompacted: Set<string>;
32
- private getBlockCache;
33
- private seenMeta;
34
- static defaultHeader: AnyCarHeader;
35
- abstract defaultHeader: AnyCarHeader;
36
- constructor(name: string, opts?: FireproofOptions);
37
- snapToCar(carCid: AnyLink | string): Promise<void>;
38
- _readyForMerge(): Promise<void>;
39
- _setWaitForWrite(_writing: () => Promise<void>): Promise<void>;
40
- handleDbMetasFromStore(metas: DbMeta[]): Promise<void>;
41
- mergeDbMetaIntoClock(meta: DbMeta): Promise<void>;
42
- protected ingestKeyFromMeta(meta: DbMeta): Promise<void>;
43
- loadCarHeaderFromMeta({ car: cid }: DbMeta): Promise<CarLoaderHeader>;
44
- protected abstract _applyCarHeader(_carHeader: CarLoaderHeader, snap?: boolean): Promise<void>;
45
- _getKey(): Promise<string | undefined>;
46
- commit(t: Transaction, done: IndexerResult | BulkResult | FileResult, opts?: CommitOpts): Promise<AnyLink>;
47
- _commitInternal(t: Transaction, done: IndexerResult | BulkResult | FileResult, opts?: CommitOpts): Promise<AnyLink>;
48
- flushCars(): Promise<void>;
49
- entries(): AsyncIterableIterator<AnyBlock>;
50
- getBlock(cid: AnyLink): Promise<AnyBlock | undefined>;
51
- protected abstract makeCarHeader(_result: BulkResult | IndexerResult | FileResult, _cars: AnyLink[], _compact: boolean): AnyCarHeader | FileCarHeader;
52
- protected loadCar(cid: AnyLink): Promise<CarReader>;
53
- protected storesLoadCar(cid: AnyLink, local: AbstractDataStore, remote?: AbstractDataStore, publicFiles?: boolean): Promise<CarReader>;
54
- protected ensureDecryptedReader(reader: CarReader): Promise<CarReader>;
55
- protected setKey(key: string): Promise<void>;
56
- protected getMoreReaders(cids: AnyLink[]): Promise<void>;
57
- }
58
- export interface Connection {
59
- loader: Loader;
60
- loaded: Promise<void>;
61
- }
62
- export {};
@@ -1,51 +0,0 @@
1
- import type { CarReader } from '@ipld/car';
2
- import type { AnyLink, BulkResult, CarCommit, DbCarHeader, FileCarHeader, FileResult, FireproofOptions, IdxCarHeader, IdxMeta, IdxMetaMap } from './types';
3
- import type { CRDT } from './crdt';
4
- import type { CRDTClock } from './crdt-clock';
5
- import { Loader } from './loader';
6
- import type { DataStore as AbstractDataStore } from './store';
7
- import { DataStore } from './store-browser';
8
- import { TransactionBlockstore } from './transaction';
9
- export declare class IdxLoader extends Loader {
10
- crdt: CRDT;
11
- static defaultHeader: {
12
- cars: never[];
13
- compact: never[];
14
- indexes: Map<string, IdxMeta>;
15
- };
16
- defaultHeader: {
17
- cars: never[];
18
- compact: never[];
19
- indexes: Map<string, IdxMeta>;
20
- };
21
- constructor(name: string, crdt: CRDT, opts?: FireproofOptions);
22
- _applyCarHeader(header: IdxCarHeader): Promise<void>;
23
- protected makeCarHeader({ indexes }: IndexerResult, cars: AnyLink[], compact?: boolean): IdxCarHeader;
24
- }
25
- export type IndexerResult = CarCommit & IdxMetaMap;
26
- export declare class DbLoader extends Loader {
27
- static defaultHeader: {
28
- cars: never[];
29
- compact: never[];
30
- head: never[];
31
- };
32
- defaultHeader: {
33
- cars: never[];
34
- compact: never[];
35
- head: never[];
36
- };
37
- clock: CRDTClock;
38
- awaitingCompact: boolean;
39
- compacting: Promise<AnyLink | void>;
40
- writing: Promise<BulkResult | void>;
41
- remoteFileStore: AbstractDataStore | undefined;
42
- fileStore: DataStore;
43
- constructor(name: string, clock: CRDTClock, opts?: FireproofOptions);
44
- _readyForMerge(): Promise<void>;
45
- _setWaitForWrite(_writingFn: () => Promise<any>): Promise<void>;
46
- compact(blocks: TransactionBlockstore): Promise<void>;
47
- loadFileCar(cid: AnyLink, isPublic?: boolean): Promise<CarReader>;
48
- protected _applyCarHeader(carHeader: DbCarHeader, snap?: boolean): Promise<void>;
49
- protected makeCarHeader(result: BulkResult | FileResult, cars: AnyLink[], compact?: boolean): DbCarHeader | FileCarHeader;
50
- }
51
- export declare function isFileResult(result: IndexerResult | BulkResult | FileResult): result is FileResult;
@@ -1,26 +0,0 @@
1
- import { AnyLink, CommitOpts, DbMeta } from './types';
2
- import { type Loader } from './loader';
3
- export type WALState = {
4
- operations: DbMeta[];
5
- noLoaderOps: DbMeta[];
6
- fileOperations: {
7
- cid: AnyLink;
8
- public: boolean;
9
- }[];
10
- };
11
- export declare abstract class RemoteWAL {
12
- tag: string;
13
- STORAGE_VERSION: string;
14
- loader: Loader;
15
- ready: Promise<void>;
16
- walState: WALState;
17
- processing: Promise<void> | undefined;
18
- private processQueue;
19
- constructor(loader: Loader);
20
- enqueue(dbMeta: DbMeta, opts: CommitOpts): Promise<void>;
21
- enqueueFile(fileCid: AnyLink, publicFile?: boolean): Promise<void>;
22
- _process(): Promise<void>;
23
- _doProcess(): Promise<void>;
24
- abstract load(branch?: string): Promise<WALState | null>;
25
- abstract save(state: WALState, branch?: string): Promise<void>;
26
- }
@@ -1,24 +0,0 @@
1
- import { IDBPDatabase } from 'idb';
2
- import { AnyBlock, AnyLink, DbMeta } from './types';
3
- import { DataStore as DataStoreBase, MetaStore as MetaStoreBase } from './store';
4
- import { RemoteWAL as RemoteWALBase, WALState } from './remote-wal';
5
- export declare class DataStore extends DataStoreBase {
6
- tag: string;
7
- idb: IDBPDatabase<unknown> | null;
8
- _withDB(dbWorkFun: (arg0: any) => any): Promise<any>;
9
- load(cid: AnyLink): Promise<AnyBlock>;
10
- save(car: AnyBlock): Promise<void>;
11
- remove(cid: AnyLink): Promise<void>;
12
- }
13
- export declare class RemoteWAL extends RemoteWALBase {
14
- tag: string;
15
- headerKey(branch: string): string;
16
- load(branch?: string): Promise<WALState | null>;
17
- save(state: WALState, branch?: string): Promise<void>;
18
- }
19
- export declare class MetaStore extends MetaStoreBase {
20
- tag: string;
21
- headerKey(branch: string): string;
22
- load(branch?: string): Promise<DbMeta[] | null>;
23
- save(meta: DbMeta, branch?: string): Promise<null>;
24
- }
@@ -1,26 +0,0 @@
1
- import type { AnyBlock, AnyLink, DbMeta } from './types';
2
- import { MetaStore as MetaStoreBase, DataStore as DataStoreBase } from './store';
3
- import { RemoteWAL as RemoteWALBase, WALState } from './remote-wal';
4
- export declare class RemoteWAL extends RemoteWALBase {
5
- filePathForBranch(branch: string): string;
6
- load(branch?: string): Promise<WALState | null>;
7
- save(state: WALState, branch?: string): Promise<void>;
8
- }
9
- export declare class MetaStore extends MetaStoreBase {
10
- tag: string;
11
- static dataDir: string;
12
- filePathForBranch(branch: string): string;
13
- load(branch?: string): Promise<DbMeta[] | null>;
14
- save(meta: DbMeta, branch?: string): Promise<null>;
15
- }
16
- export declare const testConfig: {
17
- dataDir: string;
18
- };
19
- export declare class DataStore extends DataStoreBase {
20
- tag: string;
21
- static dataDir: string;
22
- save(car: AnyBlock): Promise<void>;
23
- private cidPath;
24
- load(cid: AnyLink): Promise<AnyBlock>;
25
- remove(cid: AnyLink): Promise<void>;
26
- }
@@ -1,24 +0,0 @@
1
- import { AnyBlock, AnyLink, DbMeta } from './types';
2
- import { DataStore as DataStoreBase, MetaStore as MetaStoreBase } from './store';
3
- import { RemoteWAL as RemoteWALBase, WALState } from './remote-wal';
4
- export declare class DataStore extends DataStoreBase {
5
- tag: string;
6
- store: Map<string, Uint8Array>;
7
- load(cid: AnyLink): Promise<AnyBlock>;
8
- save(car: AnyBlock): Promise<void>;
9
- remove(cid: AnyLink): Promise<void>;
10
- }
11
- export declare class MetaStore extends MetaStoreBase {
12
- tag: string;
13
- store: Map<string, string>;
14
- headerKey(branch: string): string;
15
- load(branch?: string): Promise<DbMeta[] | null>;
16
- save(meta: DbMeta, branch?: string): Promise<null>;
17
- }
18
- export declare class RemoteWAL extends RemoteWALBase {
19
- tag: string;
20
- store: Map<string, string>;
21
- headerKey(branch: string): string;
22
- load(branch?: string): Promise<WALState | null>;
23
- save(state: WALState, branch?: string): Promise<void>;
24
- }
@@ -1,28 +0,0 @@
1
- import { ToString } from '@ipld/dag-json';
2
- import { AnyBlock, AnyLink, DbMeta } from './types';
3
- export declare const STORAGE_VERSION: string;
4
- declare abstract class VersionedStore {
5
- STORAGE_VERSION: string;
6
- name: string;
7
- constructor(name: string);
8
- }
9
- export declare abstract class MetaStore extends VersionedStore {
10
- tag: string;
11
- makeHeader({ car, key }: DbMeta): ToString<DbMeta>;
12
- parseHeader(headerData: ToString<DbMeta>): DbMeta;
13
- abstract load(branch?: string): Promise<DbMeta[] | null>;
14
- abstract save(dbMeta: DbMeta, branch?: string): Promise<DbMeta[] | null>;
15
- }
16
- type DataSaveOpts = {
17
- public?: boolean;
18
- };
19
- export declare abstract class DataStore {
20
- tag: string;
21
- STORAGE_VERSION: string;
22
- name: string;
23
- constructor(name: string);
24
- abstract load(cid: AnyLink): Promise<AnyBlock>;
25
- abstract save(car: AnyBlock, opts?: DataSaveOpts): Promise<void | AnyLink>;
26
- abstract remove(cid: AnyLink): Promise<void>;
27
- }
28
- export {};
@@ -1,50 +0,0 @@
1
- import { MemoryBlockstore } from '@alanshaw/pail/block';
2
- import { BlockFetcher, AnyBlock, AnyLink, BulkResult, ClockHead, IdxMeta, CarCommit, CarMakeable, FireproofOptions } from './types';
3
- import { DbLoader, IdxLoader } from './loaders';
4
- import { CRDT } from './crdt';
5
- import { CRDTClock } from './crdt-clock';
6
- export declare class Transaction extends MemoryBlockstore implements CarMakeable {
7
- parent: FireproofBlockstore;
8
- constructor(parent: FireproofBlockstore);
9
- get(cid: AnyLink): Promise<AnyBlock | undefined>;
10
- superGet(cid: AnyLink): Promise<AnyBlock | undefined>;
11
- }
12
- declare abstract class FireproofBlockstore implements BlockFetcher {
13
- ready: Promise<void>;
14
- name: string | null;
15
- loader: DbLoader | IdxLoader | null;
16
- opts: FireproofOptions;
17
- transactions: Set<Transaction>;
18
- constructor(name: string | null, loader?: DbLoader | IdxLoader, opts?: FireproofOptions);
19
- abstract transaction(fn: (t: Transaction) => Promise<IdxMeta | BulkResult>, indexes?: Map<string, IdxMeta>, opts?: {
20
- noLoader: boolean;
21
- }): Promise<BulkResultCar | IdxMetaCar>;
22
- put(): Promise<void>;
23
- get(cid: AnyLink): Promise<AnyBlock | undefined>;
24
- commitCompaction(t: Transaction, head: ClockHead): Promise<AnyLink>;
25
- entries(): AsyncIterableIterator<AnyBlock>;
26
- protected executeTransaction<T, R>(fn: (t: Transaction) => Promise<T>, commitHandler: (t: Transaction, done: T) => Promise<{
27
- car?: AnyLink;
28
- done: R;
29
- }>): Promise<R>;
30
- }
31
- export declare class IndexBlockstore extends FireproofBlockstore {
32
- constructor(name: string | null, crdt: CRDT, opts?: FireproofOptions);
33
- transaction(fn: (t: Transaction) => Promise<IdxMeta>, indexes: Map<string, IdxMeta>): Promise<IdxMetaCar>;
34
- }
35
- export declare class TransactionBlockstore extends FireproofBlockstore {
36
- constructor(name: string | null, clock: CRDTClock, opts?: FireproofOptions);
37
- transaction(fn: (t: Transaction) => Promise<BulkResult>, _indexes?: undefined, opts?: {
38
- noLoader: boolean;
39
- }): Promise<BulkResultCar>;
40
- }
41
- type IdxMetaCar = IdxMeta & CarCommit;
42
- type BulkResultCar = BulkResult & CarCommit;
43
- export declare class LoggingFetcher implements BlockFetcher {
44
- blocks: TransactionBlockstore;
45
- loader: DbLoader | IdxLoader | null;
46
- loggedBlocks: Transaction;
47
- constructor(blocks: TransactionBlockstore);
48
- get(cid: AnyLink): Promise<AnyBlock | undefined>;
49
- }
50
- export {};