@fireproof/core-base 0.0.2-dev-test → 0.22.0-keybag

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,63 @@
1
+ import { anyBlock2FPBlock } from "@fireproof/core-blockstore/loader-helpers.js";
2
+ import { clockChangesSince, getAllEntries, toPailFetcher } from "./crdt-helpers.js";
3
+ import { vis } from "@web3-storage/pail/clock";
4
+ import { root } from "@web3-storage/pail/crdt";
5
+ import { registerCompactStrategy, timerEnd, timerStart } from "@fireproof/core-runtime";
6
+ registerCompactStrategy({
7
+ name: "fireproof",
8
+ compact: async (ctx) => {
9
+ const head = ctx.clock?.head || [];
10
+ timerStart(ctx, "compact head");
11
+ for (const cid of head) {
12
+ const bl = await ctx.get(cid);
13
+ if (!bl)
14
+ throw ctx.logger.Error().Ref("cid", cid).Msg("Missing head block").AsError();
15
+ }
16
+ timerEnd(ctx, "compact head");
17
+ timerStart(ctx, "compact all entries");
18
+ for await (const _entry of getAllEntries(ctx, head, ctx.logger)) {
19
+ }
20
+ timerEnd(ctx, "compact all entries");
21
+ timerStart(ctx, "compact clock vis");
22
+ for await (const _line of vis(toPailFetcher(ctx), head)) {
23
+ void 1;
24
+ }
25
+ timerEnd(ctx, "compact clock vis");
26
+ timerStart(ctx, "compact root");
27
+ const result = await root(toPailFetcher(ctx), head);
28
+ timerEnd(ctx, "compact root");
29
+ timerStart(ctx, "compact root blocks");
30
+ for (const block of [...result.additions, ...result.removals]) {
31
+ ctx.loggedBlocks.putSync(await anyBlock2FPBlock(block));
32
+ }
33
+ timerEnd(ctx, "compact root blocks");
34
+ timerStart(ctx, "compact changes");
35
+ await clockChangesSince(ctx, head, [], {}, ctx.logger);
36
+ timerEnd(ctx, "compact changes");
37
+ return { head: ctx.clock?.head };
38
+ },
39
+ });
40
+ registerCompactStrategy({
41
+ name: "full",
42
+ compact: async (ctx) => {
43
+ if (!ctx.lastTxMeta) {
44
+ throw ctx.logger.Error().Msg("no lastTxMeta").AsError();
45
+ }
46
+ for await (const blk of ctx.loader.entries(false)) {
47
+ ctx.loggedBlocks.putSync(blk);
48
+ }
49
+ for (const t of ctx.transactions) {
50
+ for await (const blk of t.entries()) {
51
+ ctx.loggedBlocks.putSync(blk);
52
+ }
53
+ }
54
+ return ctx.lastTxMeta;
55
+ },
56
+ });
57
+ registerCompactStrategy({
58
+ name: "no-op",
59
+ compact: async () => {
60
+ return {};
61
+ },
62
+ });
63
+ //# sourceMappingURL=compact-strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-strategies.js","sourceRoot":"","sources":["compact-strategies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { CompactStrategyContext, TransactionMeta } from "@fireproof/core-types-base";
2
+ import { anyBlock2FPBlock } from "@fireproof/core-blockstore/loader-helpers.js";
3
+ import { clockChangesSince, getAllEntries, toPailFetcher } from "./crdt-helpers.js";
4
+ import { vis } from "@web3-storage/pail/clock";
5
+ import { root } from "@web3-storage/pail/crdt";
6
+ import { registerCompactStrategy, timerEnd, timerStart } from "@fireproof/core-runtime";
7
+
8
+ registerCompactStrategy({
9
+ name: "fireproof",
10
+ compact: async (ctx: CompactStrategyContext) => {
11
+ const head = ctx.clock?.head || [];
12
+ timerStart(ctx, "compact head");
13
+ for (const cid of head) {
14
+ const bl = await ctx.get(cid);
15
+ if (!bl) throw ctx.logger.Error().Ref("cid", cid).Msg("Missing head block").AsError();
16
+ }
17
+ timerEnd(ctx, "compact head");
18
+
19
+ // for await (const blk of blocks.entries()) {
20
+ // const bl = await blockLog.get(blk.cid)
21
+ // if (!bl) throw new Error('Missing tblock: ' + blk.cid.toString())
22
+ // }
23
+
24
+ // todo maybe remove
25
+ // for await (const blk of blocks.loader!.entries()) {
26
+ // const bl = await blockLog.get(blk.cid)
27
+ // if (!bl) throw new Error('Missing db block: ' + blk.cid.toString())
28
+ // }
29
+
30
+ timerStart(ctx, "compact all entries");
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
+ for await (const _entry of getAllEntries(ctx, head, ctx.logger)) {
33
+ // result.push(entry)
34
+ // void 1;
35
+ // continue;
36
+ }
37
+ timerEnd(ctx, "compact all entries");
38
+
39
+ // timerStart("compact crdt entries")
40
+ // for await (const [, link] of entries(blockLog, head)) {
41
+ // const bl = await blockLog.get(link)
42
+ // if (!bl) throw new Error('Missing entry block: ' + link.toString())
43
+ // }
44
+ // timerEnd("compact crdt entries")
45
+
46
+ timerStart(ctx, "compact clock vis");
47
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
+ for await (const _line of vis(toPailFetcher(ctx), head)) {
49
+ void 1;
50
+ }
51
+ timerEnd(ctx, "compact clock vis");
52
+
53
+ timerStart(ctx, "compact root");
54
+ const result = await root(toPailFetcher(ctx), head);
55
+ timerEnd(ctx, "compact root");
56
+
57
+ timerStart(ctx, "compact root blocks");
58
+ for (const block of [...result.additions, ...result.removals]) {
59
+ ctx.loggedBlocks.putSync(await anyBlock2FPBlock(block));
60
+ }
61
+ timerEnd(ctx, "compact root blocks");
62
+
63
+ timerStart(ctx, "compact changes");
64
+ await clockChangesSince(ctx, head, [], {}, ctx.logger);
65
+ timerEnd(ctx, "compact changes");
66
+
67
+ return { head: ctx.clock?.head } as TransactionMeta;
68
+ },
69
+ });
70
+
71
+ registerCompactStrategy({
72
+ name: "full",
73
+ compact: async (ctx: CompactStrategyContext) => {
74
+ if (!ctx.lastTxMeta) {
75
+ throw ctx.logger.Error().Msg("no lastTxMeta").AsError();
76
+ }
77
+ for await (const blk of ctx.loader.entries(false)) {
78
+ ctx.loggedBlocks.putSync(blk);
79
+ }
80
+ for (const t of ctx.transactions) {
81
+ for await (const blk of t.entries()) {
82
+ ctx.loggedBlocks.putSync(blk);
83
+ }
84
+ }
85
+ return ctx.lastTxMeta as TransactionMeta;
86
+ },
87
+ });
88
+
89
+ registerCompactStrategy({
90
+ name: "no-op",
91
+ compact: async () => {
92
+ // do nothing
93
+ return {} as TransactionMeta;
94
+ },
95
+ });
package/crdt-helpers.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Block } from "multiformats/block";
2
2
  import { BlockFetcher as PailBlockFetcher } from "@web3-storage/pail/crdt/api";
3
- import { BlockFetcher, StoreRuntime, CompactFetcher } from "@fireproof/core-types-blockstore";
3
+ import { BlockFetcher, StoreRuntime } from "@fireproof/core-types-blockstore";
4
4
  import { type DocUpdate, type ClockHead, type DocValue, type CRDTMeta, type ChangesOptions, type DocTypes, CarTransaction, BaseBlockstore } from "@fireproof/core-types-base";
5
5
  import { Logger } from "@adviser/cement";
6
6
  export declare function toPailFetcher(tblocks: BlockFetcher): PailBlockFetcher;
@@ -14,5 +14,4 @@ export declare function clockChangesSince<T extends DocTypes>(blocks: BlockFetch
14
14
  }>;
15
15
  export declare function getAllEntries<T extends DocTypes>(blocks: BlockFetcher, head: ClockHead, logger: Logger): AsyncGenerator<DocUpdate<T>, void, unknown>;
16
16
  export declare function clockVis(blocks: BlockFetcher, head: ClockHead): AsyncGenerator<string, void, unknown>;
17
- export declare function doCompact(blockLog: CompactFetcher, head: ClockHead, logger: Logger): Promise<void>;
18
17
  export declare function getBlock(blocks: BlockFetcher, cidString: string): Promise<Block<unknown, 113, 18, 1>>;
package/crdt-helpers.js CHANGED
@@ -3,15 +3,11 @@ import { parse } from "multiformats/link";
3
3
  import { Block } from "multiformats/block";
4
4
  import { sha256 as hasher } from "multiformats/hashes/sha2";
5
5
  import * as codec from "@ipld/dag-cbor";
6
- import { put, get, entries, root } from "@web3-storage/pail/crdt";
6
+ import { put, get, entries } from "@web3-storage/pail/crdt";
7
7
  import { EventFetcher, vis } from "@web3-storage/pail/clock";
8
8
  import * as Batch from "@web3-storage/pail/crdt/batch";
9
9
  import { CarTransactionImpl, anyBlock2FPBlock, doc2FPBlock, fileBlock2FPBlock, } from "@fireproof/core-blockstore";
10
10
  import { throwFalsy, PARAM, NotFoundError, } from "@fireproof/core-types-base";
11
- function time(tag) {
12
- }
13
- function timeEnd(tag) {
14
- }
15
11
  function toString(key, logger) {
16
12
  switch (typeof key) {
17
13
  case "string":
@@ -286,41 +282,6 @@ export async function* clockVis(blocks, head) {
286
282
  yield line;
287
283
  }
288
284
  }
289
- let isCompacting = false;
290
- export async function doCompact(blockLog, head, logger) {
291
- if (isCompacting) {
292
- return;
293
- }
294
- isCompacting = true;
295
- time("compact head");
296
- for (const cid of head) {
297
- const bl = await blockLog.get(cid);
298
- if (!bl)
299
- throw logger.Error().Ref("cid", cid).Msg("Missing head block").AsError();
300
- }
301
- timeEnd("compact head");
302
- time("compact all entries");
303
- for await (const _entry of getAllEntries(blockLog, head, logger)) {
304
- }
305
- timeEnd("compact all entries");
306
- time("compact clock vis");
307
- for await (const _line of vis(toPailFetcher(blockLog), head)) {
308
- void 1;
309
- }
310
- timeEnd("compact clock vis");
311
- time("compact root");
312
- const result = await root(toPailFetcher(blockLog), head);
313
- timeEnd("compact root");
314
- time("compact root blocks");
315
- for (const block of [...result.additions, ...result.removals]) {
316
- blockLog.loggedBlocks.putSync(await anyBlock2FPBlock(block));
317
- }
318
- timeEnd("compact root blocks");
319
- time("compact changes");
320
- await clockChangesSince(blockLog, head, [], {}, logger);
321
- timeEnd("compact changes");
322
- isCompacting = false;
323
- }
324
285
  export async function getBlock(blocks, cidString) {
325
286
  const block = await blocks.get(parse(cidString));
326
287
  if (!block)
@@ -1 +1 @@
1
- {"version":3,"file":"crdt-helpers.js","sourceRoot":"","sources":["crdt-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crdt-helpers.js","sourceRoot":"","sources":["crdt-helpers.ts"],"names":[],"mappings":"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"}
package/crdt-helpers.ts CHANGED
@@ -3,7 +3,7 @@ import { parse } from "multiformats/link";
3
3
  import { Block } from "multiformats/block";
4
4
  import { sha256 as hasher } from "multiformats/hashes/sha2";
5
5
  import * as codec from "@ipld/dag-cbor";
6
- import { put, get, entries, root } from "@web3-storage/pail/crdt";
6
+ import { put, get, entries } from "@web3-storage/pail/crdt";
7
7
  import {
8
8
  EventBlockView,
9
9
  EventLink,
@@ -14,7 +14,7 @@ import {
14
14
  } from "@web3-storage/pail/crdt/api";
15
15
  import { EventFetcher, vis } from "@web3-storage/pail/clock";
16
16
  import * as Batch from "@web3-storage/pail/crdt/batch";
17
- import { BlockFetcher, TransactionMeta, AnyLink, StoreRuntime, CompactFetcher } from "@fireproof/core-types-blockstore";
17
+ import { BlockFetcher, TransactionMeta, AnyLink, StoreRuntime } from "@fireproof/core-types-blockstore";
18
18
  import {
19
19
  type EncryptedBlockstore,
20
20
  CarTransactionImpl,
@@ -43,16 +43,6 @@ import {
43
43
  import { Logger } from "@adviser/cement";
44
44
  import { Link, Version } from "multiformats";
45
45
 
46
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
- function time(tag: string) {
48
- // console.time(tag)
49
- }
50
-
51
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
52
- function timeEnd(tag: string) {
53
- // console.timeEnd(tag)
54
- }
55
-
56
46
  function toString<K extends IndexKeyType>(key: K, logger: Logger): string {
57
47
  switch (typeof key) {
58
48
  case "string":
@@ -410,72 +400,6 @@ export async function* clockVis(blocks: BlockFetcher, head: ClockHead) {
410
400
  }
411
401
  }
412
402
 
413
- let isCompacting = false;
414
- export async function doCompact(blockLog: CompactFetcher, head: ClockHead, logger: Logger) {
415
- if (isCompacting) {
416
- // console.log('already compacting')
417
- return;
418
- }
419
- isCompacting = true;
420
-
421
- time("compact head");
422
- for (const cid of head) {
423
- const bl = await blockLog.get(cid);
424
- if (!bl) throw logger.Error().Ref("cid", cid).Msg("Missing head block").AsError();
425
- }
426
- timeEnd("compact head");
427
-
428
- // for await (const blk of blocks.entries()) {
429
- // const bl = await blockLog.get(blk.cid)
430
- // if (!bl) throw new Error('Missing tblock: ' + blk.cid.toString())
431
- // }
432
-
433
- // todo maybe remove
434
- // for await (const blk of blocks.loader!.entries()) {
435
- // const bl = await blockLog.get(blk.cid)
436
- // if (!bl) throw new Error('Missing db block: ' + blk.cid.toString())
437
- // }
438
-
439
- time("compact all entries");
440
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
441
- for await (const _entry of getAllEntries(blockLog, head, logger)) {
442
- // result.push(entry)
443
- // void 1;
444
- // continue;
445
- }
446
- timeEnd("compact all entries");
447
-
448
- // time("compact crdt entries")
449
- // for await (const [, link] of entries(blockLog, head)) {
450
- // const bl = await blockLog.get(link)
451
- // if (!bl) throw new Error('Missing entry block: ' + link.toString())
452
- // }
453
- // timeEnd("compact crdt entries")
454
-
455
- time("compact clock vis");
456
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
457
- for await (const _line of vis(toPailFetcher(blockLog), head)) {
458
- void 1;
459
- }
460
- timeEnd("compact clock vis");
461
-
462
- time("compact root");
463
- const result = await root(toPailFetcher(blockLog), head);
464
- timeEnd("compact root");
465
-
466
- time("compact root blocks");
467
- for (const block of [...result.additions, ...result.removals]) {
468
- blockLog.loggedBlocks.putSync(await anyBlock2FPBlock(block));
469
- }
470
- timeEnd("compact root blocks");
471
-
472
- time("compact changes");
473
- await clockChangesSince(blockLog, head, [], {}, logger);
474
- timeEnd("compact changes");
475
-
476
- isCompacting = false;
477
- }
478
-
479
403
  export async function getBlock(blocks: BlockFetcher, cidString: string) {
480
404
  const block = await blocks.get(parse(cidString));
481
405
  if (!block) throw new Error(`Missing block ${cidString}`);
package/crdt.js CHANGED
@@ -1,10 +1,33 @@
1
1
  import { ResolveOnce } from "@adviser/cement";
2
2
  import { EncryptedBlockstore, toStoreRuntime } from "@fireproof/core-blockstore";
3
- import { clockChangesSince, applyBulkUpdateToCrdt, getValueFromCrdt, readFiles, getAllEntries, clockVis, getBlock, doCompact, sanitizeDocumentFields, } from "./crdt-helpers.js";
3
+ import { clockChangesSince, applyBulkUpdateToCrdt, getValueFromCrdt, readFiles, getAllEntries, clockVis, getBlock, sanitizeDocumentFields, } from "./crdt-helpers.js";
4
4
  import { PARAM, } from "@fireproof/core-types-base";
5
5
  import { index } from "./indexer.js";
6
- import { ensureLogger } from "@fireproof/core-runtime";
6
+ import { ensureLogger, getCompactStrategy } from "@fireproof/core-runtime";
7
7
  import { CRDTClockImpl } from "./crdt-clock.js";
8
+ function tracerAction(opts, parent) {
9
+ return (event) => {
10
+ switch (event.event) {
11
+ case "idleFromCommitQueue":
12
+ opts.tracer({
13
+ event: "idleFromBlockstore",
14
+ blockstore: "data",
15
+ ledger: parent,
16
+ });
17
+ break;
18
+ case "busyFromCommitQueue":
19
+ opts.tracer({
20
+ event: "busyFromBlockstore",
21
+ blockstore: "data",
22
+ ledger: parent,
23
+ queueLen: event.queueLen,
24
+ });
25
+ break;
26
+ default:
27
+ return opts.tracer(event);
28
+ }
29
+ };
30
+ }
8
31
  export class CRDTImpl {
9
32
  opts;
10
33
  blockstore;
@@ -21,44 +44,31 @@ export class CRDTImpl {
21
44
  this.crdt = this;
22
45
  this.logger = ensureLogger(sthis, "CRDTImpl");
23
46
  this.opts = opts;
24
- this.blockstore = new EncryptedBlockstore(sthis, {
25
- tracer: (event) => {
26
- switch (event.event) {
27
- case "idleFromCommitQueue":
28
- opts.tracer({
29
- event: "idleFromBlockstore",
30
- blockstore: "data",
31
- ledger: parent,
32
- });
33
- break;
34
- case "busyFromCommitQueue":
35
- opts.tracer({
36
- event: "busyFromBlockstore",
37
- blockstore: "data",
38
- ledger: parent,
39
- queueLen: event.queueLen,
40
- });
41
- break;
42
- default:
43
- return opts.tracer(event);
44
- }
45
- },
47
+ const rCompactStrategy = getCompactStrategy(this.opts.compactStrategy);
48
+ if (rCompactStrategy.isErr()) {
49
+ throw this.logger
50
+ .Error()
51
+ .Err(rCompactStrategy.Err())
52
+ .Str("compactorName", this.opts.compactStrategy)
53
+ .Msg("compactor not found")
54
+ .AsError();
55
+ }
56
+ const blockstoreOpts = {
57
+ tracer: tracerAction(opts, parent),
46
58
  applyMeta: async (meta) => {
47
59
  const crdtMeta = meta;
48
60
  if (!crdtMeta.head)
49
61
  throw this.logger.Error().Msg("missing head").AsError();
50
62
  await this.clock.applyHead(crdtMeta.head, []);
51
63
  },
52
- compact: async (blocks) => {
53
- await doCompact(blocks, this.clock.head, this.logger);
54
- return { head: this.clock.head };
55
- },
64
+ compactStrategy: rCompactStrategy.Ok(),
56
65
  gatewayInterceptor: opts.gatewayInterceptor,
57
66
  storeRuntime: toStoreRuntime(this.sthis, this.opts.storeEnDe),
58
67
  storeUrls: this.opts.storeUrls.data,
59
68
  keyBag: this.opts.keyBag,
60
69
  meta: this.opts.meta,
61
- }, this);
70
+ };
71
+ this.blockstore = new EncryptedBlockstore(sthis, blockstoreOpts, this);
62
72
  if (this.opts.storeUrls.idx) {
63
73
  this.indexBlockstore = new EncryptedBlockstore(sthis, {
64
74
  tracer: opts.tracer,
package/crdt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"crdt.js","sourceRoot":"","sources":["crdt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crdt.js","sourceRoot":"","sources":["crdt.ts"],"names":[],"mappings":"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"}
package/crdt.ts CHANGED
@@ -9,7 +9,6 @@ import {
9
9
  getAllEntries,
10
10
  clockVis,
11
11
  getBlock,
12
- doCompact,
13
12
  sanitizeDocumentFields,
14
13
  } from "./crdt-helpers.js";
15
14
  import {
@@ -35,9 +34,9 @@ import {
35
34
  } from "@fireproof/core-types-base";
36
35
  import { index, type Index } from "./indexer.js";
37
36
  // import { blockstoreFactory } from "./blockstore/transaction.js";
38
- import { ensureLogger } from "@fireproof/core-runtime";
37
+ import { ensureLogger, getCompactStrategy } from "@fireproof/core-runtime";
39
38
  import { CRDTClockImpl } from "./crdt-clock.js";
40
- import { TransactionMeta, CompactFetcher } from "@fireproof/core-types-blockstore";
39
+ import { TransactionMeta, BlockstoreOpts } from "@fireproof/core-types-blockstore";
41
40
 
42
41
  export type CRDTOpts = Omit<LedgerOpts, "storeUrls"> & {
43
42
  readonly storeUrls: {
@@ -46,6 +45,30 @@ export type CRDTOpts = Omit<LedgerOpts, "storeUrls"> & {
46
45
  };
47
46
  };
48
47
 
48
+ function tracerAction(opts: CRDTOpts, parent?: Ledger) {
49
+ return (event: TraceEvent) => {
50
+ switch (event.event) {
51
+ case "idleFromCommitQueue":
52
+ opts.tracer({
53
+ event: "idleFromBlockstore",
54
+ blockstore: "data",
55
+ ledger: parent,
56
+ });
57
+ break;
58
+ case "busyFromCommitQueue":
59
+ opts.tracer({
60
+ event: "busyFromBlockstore",
61
+ blockstore: "data",
62
+ ledger: parent,
63
+ queueLen: event.queueLen,
64
+ });
65
+ break;
66
+ default:
67
+ return opts.tracer(event);
68
+ }
69
+ };
70
+ }
71
+
49
72
  export class CRDTImpl implements CRDT {
50
73
  readonly opts: CRDTOpts;
51
74
 
@@ -68,52 +91,36 @@ export class CRDTImpl implements CRDT {
68
91
  this.crdt = this;
69
92
  this.logger = ensureLogger(sthis, "CRDTImpl");
70
93
  this.opts = opts;
71
- this.blockstore = new EncryptedBlockstore(
72
- sthis,
73
- {
74
- tracer: (event: TraceEvent) => {
75
- switch (event.event) {
76
- case "idleFromCommitQueue":
77
- opts.tracer({
78
- event: "idleFromBlockstore",
79
- blockstore: "data",
80
- ledger: parent,
81
- });
82
- break;
83
- case "busyFromCommitQueue":
84
- opts.tracer({
85
- event: "busyFromBlockstore",
86
- blockstore: "data",
87
- ledger: parent,
88
- queueLen: event.queueLen,
89
- });
90
- break;
91
- default:
92
- return opts.tracer(event);
93
- }
94
- },
95
- applyMeta: async (meta: TransactionMeta) => {
96
- const crdtMeta = meta as CRDTMeta;
97
- if (!crdtMeta.head) throw this.logger.Error().Msg("missing head").AsError();
98
- // console.log("applyMeta-pre", crdtMeta.head, this.clock.head);
99
- await this.clock.applyHead(crdtMeta.head, []);
100
- // console.log("applyMeta-post", crdtMeta.head, this.clock.head);
101
- },
102
- compact: async (blocks: CompactFetcher) => {
103
- await doCompact(blocks, this.clock.head, this.logger);
104
- return { head: this.clock.head } as TransactionMeta;
105
- },
106
- gatewayInterceptor: opts.gatewayInterceptor,
107
- // autoCompact: this.opts.autoCompact || 100,
108
- storeRuntime: toStoreRuntime(this.sthis, this.opts.storeEnDe),
109
- storeUrls: this.opts.storeUrls.data,
110
- keyBag: this.opts.keyBag,
111
- // public: this.opts.public,
112
- meta: this.opts.meta,
113
- // threshold: this.opts.threshold,
94
+ const rCompactStrategy = getCompactStrategy(this.opts.compactStrategy);
95
+ if (rCompactStrategy.isErr()) {
96
+ throw this.logger
97
+ .Error()
98
+ .Err(rCompactStrategy.Err())
99
+ .Str("compactorName", this.opts.compactStrategy)
100
+ .Msg("compactor not found")
101
+ .AsError();
102
+ }
103
+ const blockstoreOpts = {
104
+ tracer: tracerAction(opts, parent),
105
+ applyMeta: async (meta: TransactionMeta) => {
106
+ const crdtMeta = meta as CRDTMeta;
107
+ if (!crdtMeta.head) throw this.logger.Error().Msg("missing head").AsError();
108
+ // console.log("applyMeta-pre", crdtMeta.head, this.clock.head);
109
+ await this.clock.applyHead(crdtMeta.head, []);
110
+ // console.log("applyMeta-post", crdtMeta.head, this.clock.head);
114
111
  },
115
- this,
116
- );
112
+ compactStrategy: rCompactStrategy.Ok(),
113
+ gatewayInterceptor: opts.gatewayInterceptor,
114
+ // autoCompact: this.opts.autoCompact || 100,
115
+ storeRuntime: toStoreRuntime(this.sthis, this.opts.storeEnDe),
116
+ storeUrls: this.opts.storeUrls.data,
117
+ keyBag: this.opts.keyBag,
118
+ // public: this.opts.public,
119
+ meta: this.opts.meta,
120
+ // threshold: this.opts.threshold,
121
+ } satisfies BlockstoreOpts;
122
+
123
+ this.blockstore = new EncryptedBlockstore(sthis, blockstoreOpts, this);
117
124
  if (this.opts.storeUrls.idx) {
118
125
  this.indexBlockstore = new EncryptedBlockstore(
119
126
  sthis,
package/index.d.ts CHANGED
@@ -4,3 +4,6 @@ export * from "./crdt.js";
4
4
  export * from "./indexer.js";
5
5
  export * from "./indexer-helpers.js";
6
6
  export * from "./version.js";
7
+ import "./compact-strategies.js";
8
+ export { getCompactStrategy, registerCompactStrategy, getCompactStrategyThrow } from "@fireproof/core-runtime";
9
+ export { registerStoreProtocol } from "@fireproof/core-blockstore";
package/index.js CHANGED
@@ -4,4 +4,7 @@ export * from "./crdt.js";
4
4
  export * from "./indexer.js";
5
5
  export * from "./indexer-helpers.js";
6
6
  export * from "./version.js";
7
+ import "./compact-strategies.js";
8
+ export { getCompactStrategy, registerCompactStrategy, getCompactStrategyThrow } from "@fireproof/core-runtime";
9
+ export { registerStoreProtocol } from "@fireproof/core-blockstore";
7
10
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC;AAE1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AAErC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC;AAE1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AAErC,cAAc,cAAc,CAAC;AAE7B,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
package/index.ts CHANGED
@@ -7,3 +7,9 @@ export * from "./indexer.js";
7
7
  export * from "./indexer-helpers.js";
8
8
 
9
9
  export * from "./version.js";
10
+
11
+ import "./compact-strategies.js";
12
+
13
+ export { getCompactStrategy, registerCompactStrategy, getCompactStrategyThrow } from "@fireproof/core-runtime";
14
+
15
+ export { registerStoreProtocol } from "@fireproof/core-blockstore";
package/ledger.js CHANGED
@@ -28,6 +28,7 @@ export function LedgerFactory(name, opts) {
28
28
  keyBag: defaultKeyBagOpts(sthis, opts?.keyBag),
29
29
  storeUrls: toStoreURIRuntime(sthis, name, opts?.storeUrls),
30
30
  gatewayInterceptor: opts?.gatewayInterceptor,
31
+ compactStrategy: opts?.compactStrategy,
31
32
  writeQueue: defaultWriteQueueOpts(opts?.writeQueue),
32
33
  ctx: opts?.ctx ?? new AppContext(),
33
34
  storeEnDe: {
package/ledger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["ledger.ts"],"names":[],"mappings":"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"}
package/ledger.ts CHANGED
@@ -60,6 +60,7 @@ export function LedgerFactory(name: string, opts?: ConfigOpts): Ledger {
60
60
  keyBag: defaultKeyBagOpts(sthis, opts?.keyBag),
61
61
  storeUrls: toStoreURIRuntime(sthis, name, opts?.storeUrls),
62
62
  gatewayInterceptor: opts?.gatewayInterceptor,
63
+ compactStrategy: opts?.compactStrategy,
63
64
  writeQueue: defaultWriteQueueOpts(opts?.writeQueue),
64
65
  ctx: opts?.ctx ?? new AppContext(),
65
66
  storeEnDe: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fireproof/core-base",
3
- "version": "0.0.2-dev-test",
3
+ "version": "0.22.0-keybag",
4
4
  "description": "Live ledger for the web.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -20,7 +20,7 @@
20
20
  "Meno Abels"
21
21
  ],
22
22
  "author": "J Chris Anderson",
23
- "license": "Apache-2.0 OR MIT",
23
+ "license": "AFL-2.0",
24
24
  "homepage": "https://use-fireproof.com",
25
25
  "gptdoc": "import { fireproof } from 'use-fireproof'; const db = fireproof('app-db-name'); const ok = await db.put({ anyField: ['any','json'] }); const doc = await db.get(ok.id); await db.del(doc._id); db.subscribe(myRedrawFn); const result = await db.query('anyField', {range : ['a', 'z']}); result.rows.map(({ key }) => key);",
26
26
  "repository": {
@@ -32,21 +32,21 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@adviser/cement": "^0.4.20",
35
- "@fireproof/core-blockstore": "0.0.2-dev-test",
36
- "@fireproof/core-keybag": "0.0.2-dev-test",
37
- "@fireproof/core-runtime": "0.0.2-dev-test",
38
- "@fireproof/core-types-base": "0.0.2-dev-test",
39
- "@fireproof/core-types-blockstore": "0.0.2-dev-test",
40
- "@fireproof/core-types-protocols-cloud": "0.0.2-dev-test",
41
- "@fireproof/vendor": "0.0.2-dev-test",
35
+ "@fireproof/core-blockstore": "0.22.0-keybag",
36
+ "@fireproof/core-keybag": "0.22.0-keybag",
37
+ "@fireproof/core-runtime": "0.22.0-keybag",
38
+ "@fireproof/core-types-base": "0.22.0-keybag",
39
+ "@fireproof/core-types-blockstore": "0.22.0-keybag",
40
+ "@fireproof/core-types-protocols-cloud": "0.22.0-keybag",
41
+ "@fireproof/vendor": "0.22.0-keybag",
42
42
  "@ipld/dag-cbor": "^9.2.4",
43
43
  "@web3-storage/pail": "^0.6.2",
44
44
  "charwise": "^3.0.1",
45
45
  "prolly-trees": "^1.0.4"
46
46
  },
47
47
  "devDependencies": {
48
- "@fireproof/core-cli": "0.0.2-dev-test",
49
- "@types/node": "^24.0.13"
48
+ "@fireproof/core-cli": "0.22.0-keybag",
49
+ "@types/node": "^24.1.0"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc"