@fireproof/core 0.20.0-dev-preview-06 → 0.20.0-dev-preview-11

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,18 +4,17 @@ import { CID } from "multiformats/cid";
4
4
 
5
5
  import {
6
6
  ConfigOpts,
7
- Database,
8
- DatabaseFactory,
9
7
  DocResponse,
10
8
  DocWithId,
11
9
  Index,
12
10
  IndexRows,
13
11
  MapFn,
14
12
  bs,
15
- fireproof,
16
13
  index,
17
- isDatabase,
18
14
  ensureSuperThis,
15
+ fireproof,
16
+ Database,
17
+ isDatabase,
19
18
  } from "@fireproof/core";
20
19
 
21
20
  export function carLogIncludesGroup(list: bs.AnyLink[], cid: CID) {
@@ -96,7 +95,7 @@ describe("public API", function () {
96
95
  doc = await db.get("test");
97
96
  query = await db.query<string, Doc>((doc) => doc.foo);
98
97
  });
99
- it("should be a database instance", function () {
98
+ it("should be a ledger instance", function () {
100
99
  expect(db).toBeTruthy();
101
100
  expect(isDatabase(db)).toBeTruthy();
102
101
  });
@@ -115,11 +114,11 @@ describe("public API", function () {
115
114
  });
116
115
  });
117
116
 
118
- describe("basic database", function () {
117
+ describe("basic ledger", function () {
119
118
  interface Doc {
120
119
  foo: string;
121
120
  }
122
- let db: Database<Doc>;
121
+ let db: Database;
123
122
  const sthis = ensureSuperThis();
124
123
  afterEach(async function () {
125
124
  await db.close();
@@ -127,7 +126,7 @@ describe("basic database", function () {
127
126
  });
128
127
  beforeEach(async function () {
129
128
  await sthis.start();
130
- db = DatabaseFactory("test-basic");
129
+ db = fireproof("test-basic");
131
130
  });
132
131
  it("can put with id", async function () {
133
132
  const ok = await db.put({ _id: "test", foo: "bar" });
@@ -201,14 +200,14 @@ describe("benchmarking with compaction", function () {
201
200
  beforeEach(async function () {
202
201
  // erase the existing test data
203
202
  await sthis.start();
204
- db = DatabaseFactory("test-benchmark-compaction", { autoCompact: 3 });
203
+ db = fireproof("test-benchmark-compaction", { autoCompact: 3 });
205
204
  });
206
205
  it.skip("insert during compaction", async function () {
207
206
  const ok = await db.put({ _id: "test", foo: "fast" });
208
207
  expect(ok).toBeTruthy();
209
208
  expect(ok.id).toBe("test");
210
- expect(db.crdt.clock.head).toBeTruthy();
211
- expect(db.crdt.clock.head.length).toBe(1);
209
+ expect(db.ledger.crdt.clock.head).toBeTruthy();
210
+ expect(db.ledger.crdt.clock.head.length).toBe(1);
212
211
 
213
212
  const numDocs = 20;
214
213
  const batchSize = 5;
@@ -229,7 +228,7 @@ describe("benchmarking with compaction", function () {
229
228
  }),
230
229
  );
231
230
  }
232
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
231
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
233
232
  const loader = blocks.loader;
234
233
  expect(loader).toBeTruthy();
235
234
 
@@ -245,8 +244,7 @@ describe("benchmarking with compaction", function () {
245
244
  });
246
245
  });
247
246
 
248
- describe("benchmarking a database", function () {
249
- /** @type {Database} */
247
+ describe("benchmarking a ledger", function () {
250
248
  let db: Database;
251
249
  const sthis = ensureSuperThis();
252
250
  afterEach(async function () {
@@ -256,8 +254,8 @@ describe("benchmarking a database", function () {
256
254
  beforeEach(async function () {
257
255
  await sthis.start();
258
256
  // erase the existing test data
259
- db = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
260
- // db = DatabaseFactory(null, {autoCompact: 100000})
257
+ db = fireproof("test-benchmark", { autoCompact: 100000, public: true });
258
+ // db = fireproof(null, {autoCompact: 100000})
261
259
  });
262
260
 
263
261
  // run benchmarking tests
@@ -270,8 +268,8 @@ describe("benchmarking a database", function () {
270
268
  expect(ok).toBeTruthy();
271
269
  expect(ok.id).toBe("test");
272
270
 
273
- expect(db.crdt.clock.head).toBeTruthy();
274
- expect(db.crdt.clock.head.length).toBe(1);
271
+ expect(db.ledger.crdt.clock.head).toBeTruthy();
272
+ expect(db.ledger.crdt.clock.head.length).toBe(1);
275
273
 
276
274
  const numDocs = 2500;
277
275
  const batchSize = 500;
@@ -307,7 +305,7 @@ describe("benchmarking a database", function () {
307
305
  // equals(allDocsResult2.rows.length, numDocs+1)
308
306
 
309
307
  // console.time("open new DB");
310
- const newDb = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
308
+ const newDb = fireproof("test-benchmark", { autoCompact: 100000, public: true });
311
309
  const doc = await newDb.get<{ foo: string }>("test");
312
310
  expect(doc.foo).toBe("fast");
313
311
  // console.timeEnd("open new DB");
@@ -337,7 +335,7 @@ describe("benchmarking a database", function () {
337
335
  await db.put({ _id: "compacted-test", foo: "bar" });
338
336
 
339
337
  // console.log('car log length', db._crdt.blockstore.loader.carLog.length)
340
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
338
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
341
339
  const loader = blocks.loader;
342
340
  expect(loader).toBeTruthy();
343
341
  expect(loader.carLog.length).toBe(2);
@@ -349,10 +347,10 @@ describe("benchmarking a database", function () {
349
347
  await sleep(100);
350
348
 
351
349
  // console.time("compacted reopen again");
352
- const newDb2 = DatabaseFactory("test-benchmark", { autoCompact: 100000, public: true });
350
+ const newDb2 = fireproof("test-benchmark", { autoCompact: 100000, public: true });
353
351
  const doc21 = await newDb2.get<FooType>("test");
354
352
  expect(doc21.foo).toBe("fast");
355
- const blocks2 = newDb2.crdt.blockstore as bs.EncryptedBlockstore;
353
+ const blocks2 = newDb2.ledger.crdt.blockstore as bs.EncryptedBlockstore;
356
354
  const loader2 = blocks2.loader;
357
355
  expect(loader2).toBeTruthy();
358
356
 
@@ -401,7 +399,7 @@ describe("benchmarking a database", function () {
401
399
  }, 20000000);
402
400
  });
403
401
 
404
- describe("Reopening a database", function () {
402
+ describe("Reopening a ledger", function () {
405
403
  interface Doc {
406
404
  foo: string;
407
405
  }
@@ -415,13 +413,13 @@ describe("Reopening a database", function () {
415
413
  // erase the existing test data
416
414
  await sthis.start();
417
415
 
418
- db = DatabaseFactory("test-reopen", { autoCompact: 100000 });
416
+ db = fireproof("test-reopen", { autoCompact: 100000 });
419
417
  const ok = await db.put({ _id: "test", foo: "bar" });
420
418
  expect(ok).toBeTruthy();
421
419
  expect(ok.id).toBe("test");
422
420
 
423
- expect(db.crdt.clock.head).toBeDefined();
424
- expect(db.crdt.clock.head.length).toBe(1);
421
+ expect(db.ledger.crdt.clock.head).toBeDefined();
422
+ expect(db.ledger.crdt.clock.head.length).toBe(1);
425
423
  });
426
424
 
427
425
  it("should persist data", async function () {
@@ -430,18 +428,18 @@ describe("Reopening a database", function () {
430
428
  });
431
429
 
432
430
  it("should have the same data on reopen", async function () {
433
- const db2 = DatabaseFactory("test-reopen");
431
+ const db2 = fireproof("test-reopen");
434
432
  const doc = await db2.get<FooType>("test");
435
433
  expect(doc.foo).toBe("bar");
436
- expect(db2.crdt.clock.head).toBeDefined();
437
- expect(db2.crdt.clock.head.length).toBe(1);
438
- expect(db2.crdt.clock.head).toEqual(db.crdt.clock.head);
434
+ expect(db2.ledger.crdt.clock.head).toBeDefined();
435
+ expect(db2.ledger.crdt.clock.head.length).toBe(1);
436
+ expect(db2.ledger.crdt.clock.head).toEqual(db.ledger.crdt.clock.head);
439
437
  await db2.close();
440
438
  });
441
439
 
442
440
  it("should have a car in the car log", async function () {
443
- await db.crdt.ready();
444
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
441
+ await db.ledger.crdt.ready();
442
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
445
443
  const loader = blocks.loader;
446
444
  expect(loader).toBeDefined();
447
445
  expect(loader.carLog).toBeDefined();
@@ -449,9 +447,9 @@ describe("Reopening a database", function () {
449
447
  });
450
448
 
451
449
  it("should have carlog after reopen", async function () {
452
- const db2 = DatabaseFactory("test-reopen");
453
- await db2.crdt.ready();
454
- const blocks = db2.crdt.blockstore as bs.EncryptedBlockstore;
450
+ const db2 = fireproof("test-reopen");
451
+ await db2.ledger.crdt.ready();
452
+ const blocks = db2.ledger.crdt.blockstore as bs.EncryptedBlockstore;
455
453
  const loader = blocks.loader;
456
454
  expect(loader).toBeDefined();
457
455
  expect(loader.carLog).toBeDefined();
@@ -462,10 +460,10 @@ describe("Reopening a database", function () {
462
460
  it("faster, should have the same data on reopen after reopen and update", async function () {
463
461
  for (let i = 0; i < 4; i++) {
464
462
  // console.log('iteration', i)
465
- const db = DatabaseFactory("test-reopen");
463
+ const db = fireproof("test-reopen");
466
464
  // assert(db._crdt.xready());
467
- await db.crdt.ready();
468
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
465
+ await db.ready();
466
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
469
467
  const loader = blocks.loader;
470
468
  expect(loader.carLog.length).toBe(i + 1);
471
469
  const ok = await db.put({ _id: `test${i}`, fire: "proof".repeat(50 * 1024) });
@@ -481,11 +479,11 @@ describe("Reopening a database", function () {
481
479
  for (let i = 0; i < 200; i++) {
482
480
  // console.log("iteration", i);
483
481
  // console.time("db open");
484
- const db = DatabaseFactory("test-reopen", { autoCompact: 1000 }); // try with 10
482
+ const db = fireproof("test-reopen", { autoCompact: 1000 }); // try with 10
485
483
  // assert(db._crdt.ready);
486
- await db.crdt.ready();
484
+ await db.ready();
487
485
  // console.timeEnd("db open");
488
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
486
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
489
487
  const loader = blocks.loader;
490
488
  expect(loader).toBeDefined();
491
489
  expect(loader.carLog.length).toBe(i + 1);
@@ -503,7 +501,7 @@ describe("Reopening a database", function () {
503
501
  }, 200000);
504
502
  });
505
503
 
506
- describe("Reopening a database with indexes", function () {
504
+ describe("Reopening a ledger with indexes", function () {
507
505
  interface Doc {
508
506
  foo: string;
509
507
  }
@@ -566,9 +564,9 @@ describe("Reopening a database with indexes", function () {
566
564
  const db2 = fireproof("test-reopen-idx");
567
565
  const doc = await db2.get<FooType>("test");
568
566
  expect(doc.foo).toBe("bar");
569
- expect(db2.crdt.clock.head).toBeTruthy();
570
- expect(db2.crdt.clock.head.length).toBe(1);
571
- expect(db2.crdt.clock.head).toEqual(db.crdt.clock.head);
567
+ expect(db2.ledger.crdt.clock.head).toBeTruthy();
568
+ expect(db2.ledger.crdt.clock.head.length).toBe(1);
569
+ expect(db2.ledger.crdt.clock.head).toEqual(db.ledger.crdt.clock.head);
572
570
  });
573
571
 
574
572
  it("should have the same data on reopen after a query", async function () {
@@ -581,9 +579,9 @@ describe("Reopening a database with indexes", function () {
581
579
  const db2 = fireproof("test-reopen-idx");
582
580
  const doc = await db2.get<FooType>("test");
583
581
  expect(doc.foo).toBe("bar");
584
- expect(db2.crdt.clock.head).toBeTruthy();
585
- expect(db2.crdt.clock.head.length).toBe(1);
586
- expect(db2.crdt.clock.head).toEqual(db.crdt.clock.head);
582
+ expect(db2.ledger.crdt.clock.head).toBeTruthy();
583
+ expect(db2.ledger.crdt.clock.head.length).toBe(1);
584
+ expect(db2.ledger.crdt.clock.head).toEqual(db.ledger.crdt.clock.head);
587
585
  });
588
586
 
589
587
  // it('should query the same data on reopen', async function () {
@@ -618,11 +616,11 @@ describe("basic js verify", function () {
618
616
  expect(ok.id).toBe("test");
619
617
  const ok2 = await db.put({ _id: "test2", foo: ["bar", "bam"] });
620
618
  expect(ok2.id).toBe("test2");
621
- const blocks = db.crdt.blockstore as bs.EncryptedBlockstore;
619
+ const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
622
620
  const loader = blocks.loader;
623
621
  expect(loader).toBeTruthy();
624
622
  const cid = loader.carLog[0][0];
625
- const cid2 = db.crdt.clock.head[0];
623
+ const cid2 = db.ledger.crdt.clock.head[0];
626
624
  expect(cid).not.toBe(cid2);
627
625
  expect(cid).not.toBe(cid2);
628
626
  const cidList = [cid, cid2];
@@ -665,23 +663,23 @@ describe("same workload twice, same CID", function () {
665
663
  beforeEach(async function () {
666
664
  let ok: DocResponse;
667
665
  await sthis.start();
668
- // todo this fails because the test setup doesn't properly configure both databases to use the same key
666
+ // todo this fails because the test setup doesn't properly configure both ledgers to use the same key
669
667
  dbA = fireproof("test-dual-workload-a", configA);
670
668
  for (const doc of docs) {
671
669
  ok = await dbA.put(doc);
672
670
  expect(ok).toBeTruthy();
673
671
  expect(ok.id).toBeTruthy();
674
672
  }
675
- headA = dbA.crdt.clock.head.toString();
673
+ headA = dbA.ledger.crdt.clock.head.toString();
676
674
 
677
- // todo this fails because the test setup doesn't properly configure both databases to use the same key
675
+ // todo this fails because the test setup doesn't properly configure both ledgers to use the same key
678
676
  dbB = fireproof("test-dual-workload-b", configB);
679
677
  for (const doc of docs) {
680
678
  ok = await dbB.put(doc);
681
679
  expect(ok).toBeTruthy();
682
680
  expect(ok.id).toBeTruthy();
683
681
  }
684
- headB = dbB.crdt.clock.head.toString();
682
+ headB = dbB.ledger.crdt.clock.head.toString();
685
683
  });
686
684
  it("should have head A and B", async function () {
687
685
  expect(headA).toBeTruthy();
@@ -690,12 +688,12 @@ describe("same workload twice, same CID", function () {
690
688
  expect(headA.length).toBeGreaterThan(10);
691
689
  });
692
690
  it("should have same car log", async function () {
693
- const logA = dbA.crdt.blockstore.loader?.carLog;
691
+ const logA = dbA.ledger.crdt.blockstore.loader?.carLog;
694
692
  expect(logA).toBeTruthy();
695
693
  assert(logA);
696
694
  expect(logA.length).toBe(docs.length);
697
695
 
698
- const logB = dbB.crdt.blockstore.loader?.carLog;
696
+ const logB = dbB.ledger.crdt.blockstore.loader?.carLog;
699
697
  expect(logB).toBeTruthy();
700
698
  assert(logB);
701
699
  expect(logB.length).toBe(docs.length);
@@ -705,19 +703,19 @@ describe("same workload twice, same CID", function () {
705
703
 
706
704
  expect(logA2.length).toBe(logB2.length);
707
705
 
708
- // todo this fails because the test setup doesn't properly configure both databases to use the same key
706
+ // todo this fails because the test setup doesn't properly configure both ledgers to use the same key
709
707
  // expect(logA2).toEqual(logB2);
710
708
  });
711
709
  it("should have same car log after compact", async function () {
712
710
  await dbA.compact();
713
711
  await dbB.compact();
714
712
 
715
- const cmpLogA = dbA.crdt.blockstore.loader?.carLog;
713
+ const cmpLogA = dbA.ledger.crdt.blockstore.loader?.carLog;
716
714
  expect(cmpLogA).toBeTruthy();
717
715
  assert(cmpLogA);
718
716
  expect(cmpLogA.length).toBe(1);
719
717
 
720
- const cmpLogB = dbB.crdt.blockstore.loader?.carLog;
718
+ const cmpLogB = dbB.ledger.crdt.blockstore.loader?.carLog;
721
719
  expect(cmpLogB).toBeTruthy();
722
720
  assert(cmpLogB);
723
721
  expect(cmpLogB.length).toBe(1);
@@ -727,7 +725,7 @@ describe("same workload twice, same CID", function () {
727
725
 
728
726
  expect(cmpLogA2.length).toBe(cmpLogB2.length);
729
727
 
730
- // todo this fails because the test setup doesn't properly configure both databases to use the same key
728
+ // todo this fails because the test setup doesn't properly configure both ledgers to use the same key
731
729
  // expect(cmpLogA2).toEqual(cmpLogB2);
732
730
  });
733
731
  });
@@ -1,4 +1,4 @@
1
- import { fireproof, Database, DocResponse, DocWithId, index, isDatabase } from "@fireproof/core";
1
+ import { fireproof, DocResponse, DocWithId, index, Database, isDatabase } from "@fireproof/core";
2
2
  import { mockSuperThis } from "../helpers.js";
3
3
 
4
4
  describe("Hello World Test", function () {
@@ -28,7 +28,7 @@ describe("hello public API", () => {
28
28
  ok = await db.put({ _id: "test", foo: "bar" });
29
29
  doc = await db.get("test");
30
30
  });
31
- it("should have a database", function () {
31
+ it("should have a ledger", function () {
32
32
  expect(db).toBeTruthy();
33
33
  expect(isDatabase(db)).toBeTruthy();
34
34
  });
@@ -47,7 +47,7 @@ describe("hello public API", () => {
47
47
  });
48
48
  });
49
49
 
50
- describe("Simplified Reopening a database", function () {
50
+ describe("Simplified Reopening a ledger", function () {
51
51
  let db: Database;
52
52
  afterEach(async function () {
53
53
  await db.close();
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  Index,
3
3
  index,
4
- Database,
5
4
  CRDT,
6
5
  IndexRows,
7
6
  toStoreURIRuntime,
8
7
  bs,
9
8
  rt,
10
- DatabaseFactory,
11
9
  defaultWriteQueueOpts,
12
10
  ensureSuperThis,
13
- DatabaseOpts,
11
+ LedgerOpts,
12
+ Database,
13
+ CRDTImpl,
14
+ fireproof,
14
15
  } from "@fireproof/core";
15
16
 
16
17
  interface TestType {
@@ -19,7 +20,7 @@ interface TestType {
19
20
  }
20
21
 
21
22
  describe("basic Index", () => {
22
- let db: Database<TestType>;
23
+ let db: Database;
23
24
  let indexer: Index<string, TestType>;
24
25
  let didMap: boolean;
25
26
  const sthis = ensureSuperThis();
@@ -31,18 +32,18 @@ describe("basic Index", () => {
31
32
  });
32
33
  beforeEach(async function () {
33
34
  await sthis.start();
34
- db = DatabaseFactory("test-indexer");
35
+ db = fireproof("test-indexer");
35
36
  await db.put({ title: "amazing" });
36
37
  await db.put({ title: "creative" });
37
38
  await db.put({ title: "bazillas" });
38
- indexer = new Index<string, TestType>(sthis, db.crdt, "hello", (doc) => {
39
+ indexer = new Index<string, TestType>(sthis, db.ledger.crdt, "hello", (doc) => {
39
40
  didMap = true;
40
41
  return doc.title;
41
42
  });
42
43
  await indexer.ready();
43
44
  });
44
45
  it("should have properties", function () {
45
- expect(indexer.crdt).toBe(db.crdt);
46
+ expect(indexer.crdt).toBe(db.ledger.crdt);
46
47
  // expect(indexer.crdt.name).toBe("test-indexer");
47
48
  expect(indexer.name).toBe("hello");
48
49
  expect(indexer.mapFn).toBeTruthy();
@@ -107,7 +108,7 @@ describe("basic Index", () => {
107
108
  });
108
109
 
109
110
  describe("Index query with compound key", function () {
110
- let db: Database<TestType>;
111
+ let db: Database;
111
112
  let indexer: Index<[string, number], TestType>;
112
113
  const sthis = ensureSuperThis();
113
114
  afterEach(async function () {
@@ -118,12 +119,12 @@ describe("Index query with compound key", function () {
118
119
  });
119
120
  beforeEach(async function () {
120
121
  await sthis.start();
121
- db = DatabaseFactory("test-indexer");
122
+ db = fireproof("test-indexer");
122
123
  await db.put({ title: "amazing", score: 1 });
123
124
  await db.put({ title: "creative", score: 2 });
124
125
  await db.put({ title: "creative", score: 20 });
125
126
  await db.put({ title: "bazillas", score: 3 });
126
- indexer = new Index<[string, number], TestType>(sthis, db.crdt, "hello", (doc) => {
127
+ indexer = new Index<[string, number], TestType>(sthis, db.ledger.crdt, "hello", (doc) => {
127
128
  return [doc.title, doc.score];
128
129
  });
129
130
  await indexer.ready();
@@ -137,7 +138,7 @@ describe("Index query with compound key", function () {
137
138
  });
138
139
 
139
140
  describe("basic Index with map fun", function () {
140
- let db: Database<TestType>;
141
+ let db: Database;
141
142
  let indexer: Index<string, TestType>;
142
143
  const sthis = ensureSuperThis();
143
144
  afterEach(async function () {
@@ -148,11 +149,11 @@ describe("basic Index with map fun", function () {
148
149
  });
149
150
  beforeEach(async function () {
150
151
  await sthis.start();
151
- db = DatabaseFactory("test-indexer");
152
+ db = fireproof("test-indexer");
152
153
  await db.put({ title: "amazing" });
153
154
  await db.put({ title: "creative" });
154
155
  await db.put({ title: "bazillas" });
155
- indexer = new Index<string, TestType>(sthis, db.crdt, "hello", (doc, map) => {
156
+ indexer = new Index<string, TestType>(sthis, db.ledger.crdt, "hello", (doc, map) => {
156
157
  map(doc.title);
157
158
  });
158
159
  await indexer.ready();
@@ -167,7 +168,7 @@ describe("basic Index with map fun", function () {
167
168
  });
168
169
 
169
170
  describe("basic Index with map fun with value", function () {
170
- let db: Database<TestType>;
171
+ let db: Database;
171
172
  let indexer: Index<string, TestType, number>;
172
173
  const sthis = ensureSuperThis();
173
174
  afterEach(async function () {
@@ -176,11 +177,11 @@ describe("basic Index with map fun with value", function () {
176
177
  });
177
178
  beforeEach(async function () {
178
179
  await sthis.start();
179
- db = DatabaseFactory("test-indexer");
180
+ db = fireproof("test-indexer");
180
181
  await db.put({ title: "amazing" });
181
182
  await db.put({ title: "creative" });
182
183
  await db.put({ title: "bazillas" });
183
- indexer = new Index<string, TestType, number>(sthis, db.crdt, "hello", (doc, map) => {
184
+ indexer = new Index<string, TestType, number>(sthis, db.ledger.crdt, "hello", (doc, map) => {
184
185
  map(doc.title, doc.title.length);
185
186
  });
186
187
  });
@@ -205,7 +206,7 @@ describe("basic Index with map fun with value", function () {
205
206
  });
206
207
 
207
208
  describe("Index query with map and compound key", function () {
208
- let db: Database<TestType>;
209
+ let db: Database;
209
210
  let indexer: Index<[string, number], TestType>;
210
211
  const sthis = ensureSuperThis();
211
212
  afterEach(async function () {
@@ -216,12 +217,12 @@ describe("Index query with map and compound key", function () {
216
217
  });
217
218
  beforeEach(async function () {
218
219
  await sthis.start();
219
- db = DatabaseFactory("test-indexer");
220
+ db = fireproof("test-indexer");
220
221
  await db.put({ title: "amazing", score: 1 });
221
222
  await db.put({ title: "creative", score: 2 });
222
223
  await db.put({ title: "creative", score: 20 });
223
224
  await db.put({ title: "bazillas", score: 3 });
224
- indexer = new Index<[string, number], TestType>(sthis, db.crdt, "hello", (doc, emit) => {
225
+ indexer = new Index<[string, number], TestType>(sthis, db.ledger.crdt, "hello", (doc, emit) => {
225
226
  emit([doc.title, doc.score]);
226
227
  });
227
228
  await indexer.ready();
@@ -235,7 +236,7 @@ describe("Index query with map and compound key", function () {
235
236
  });
236
237
 
237
238
  describe("basic Index with string fun", function () {
238
- let db: Database<TestType>;
239
+ let db: Database;
239
240
  let indexer: Index<string, TestType>;
240
241
  const sthis = ensureSuperThis();
241
242
  afterEach(async function () {
@@ -246,11 +247,11 @@ describe("basic Index with string fun", function () {
246
247
  });
247
248
  beforeEach(async function () {
248
249
  await sthis.start();
249
- db = DatabaseFactory("test-indexer");
250
+ db = fireproof("test-indexer");
250
251
  await db.put({ title: "amazing" });
251
252
  await db.put({ title: "creative" });
252
253
  await db.put({ title: "bazillas" });
253
- indexer = new Index(sthis, db.crdt, "title");
254
+ indexer = new Index<string, TestType>(sthis, db.ledger.crdt, "title");
254
255
  await indexer.ready();
255
256
  });
256
257
  it("should get results", async function () {
@@ -271,13 +272,13 @@ describe("basic Index upon cold start", function () {
271
272
  title: string;
272
273
  score?: number;
273
274
  }
274
- let crdt: CRDT<TestType>;
275
+ let crdt: CRDT;
275
276
  let indexer: Index<string, TestType>;
276
277
  let didMap: number;
277
278
  let mapFn: (doc: TestType) => string;
278
279
  let result: IndexRows<string, TestType>;
279
280
  const sthis = ensureSuperThis();
280
- let dbOpts: DatabaseOpts;
281
+ let dbOpts: LedgerOpts;
281
282
  // result, mapFn;
282
283
  afterEach(async function () {
283
284
  await crdt.close();
@@ -295,7 +296,7 @@ describe("basic Index upon cold start", function () {
295
296
  storeUrls: toStoreURIRuntime(sthis, "test-indexer-cold"),
296
297
  storeEnDe: bs.ensureStoreEnDeFile({}),
297
298
  };
298
- crdt = new CRDT<TestType>(sthis, dbOpts);
299
+ crdt = new CRDTImpl(sthis, dbOpts);
299
300
  await crdt.bulk([
300
301
  { id: "abc1", value: { title: "amazing" } },
301
302
  { id: "abc2", value: { title: "creative" } },
@@ -307,7 +308,7 @@ describe("basic Index upon cold start", function () {
307
308
  didMap++;
308
309
  return doc.title;
309
310
  };
310
- indexer = await index<string, TestType>({ crdt: crdt }, "hello", mapFn);
311
+ indexer = await index<string, TestType>(crdt, "hello", mapFn);
311
312
  logger.Debug().Msg("post index beforeEach");
312
313
  await indexer.ready();
313
314
  logger.Debug().Msg("post indexer.ready beforeEach");
@@ -327,12 +328,12 @@ describe("basic Index upon cold start", function () {
327
328
  expect(result.rows.length).toEqual(3);
328
329
  });
329
330
  it("should work on cold load", async function () {
330
- const crdt2 = new CRDT<TestType>(sthis, dbOpts);
331
+ const crdt2 = new CRDTImpl(sthis, dbOpts);
331
332
  await crdt2.ready();
332
333
  const { result, head } = await crdt2.changes();
333
334
  expect(result).toBeTruthy();
334
335
  await crdt2.ready();
335
- const indexer2 = await index<string, TestType>({ crdt: crdt2 }, "hello", mapFn);
336
+ const indexer2 = await index<string, TestType>(crdt2, "hello", mapFn);
336
337
  await indexer2.ready();
337
338
  const result2 = await indexer2.query();
338
339
  expect(indexer2.indexHead).toEqual(head);
@@ -342,8 +343,8 @@ describe("basic Index upon cold start", function () {
342
343
  });
343
344
  it.skip("should not rerun the map function on seen changes", async function () {
344
345
  didMap = 0;
345
- const crdt2 = new CRDT<TestType>(sthis, dbOpts);
346
- const indexer2 = await index({ crdt: crdt2 }, "hello", mapFn);
346
+ const crdt2 = new CRDTImpl(sthis, dbOpts);
347
+ const indexer2 = await index(crdt2, "hello", mapFn);
347
348
  const { result, head } = await crdt2.changes([]);
348
349
  expect(result.length).toEqual(3);
349
350
  expect(head.length).toEqual(1);
@@ -367,15 +368,15 @@ describe("basic Index upon cold start", function () {
367
368
  expect(didMap).toEqual(1);
368
369
  });
369
370
  it("should ignore meta when map function definiton changes", async function () {
370
- const crdt2 = new CRDT<TestType>(sthis, dbOpts);
371
- const result = await index<string, TestType>({ crdt: crdt2 }, "hello", (doc) => doc.title.split("").reverse().join("")).query();
371
+ const crdt2 = new CRDTImpl(sthis, dbOpts);
372
+ const result = await index<string, TestType>(crdt2, "hello", (doc) => doc.title.split("").reverse().join("")).query();
372
373
  expect(result.rows.length).toEqual(3);
373
374
  expect(result.rows[0].key).toEqual("evitaerc"); // creative
374
375
  });
375
376
  });
376
377
 
377
378
  describe("basic Index with no data", function () {
378
- let db: Database<TestType>;
379
+ let db: Database;
379
380
  let indexer: Index<string, TestType>;
380
381
  let didMap: boolean;
381
382
  const sthis = ensureSuperThis();
@@ -387,15 +388,15 @@ describe("basic Index with no data", function () {
387
388
  });
388
389
  beforeEach(async function () {
389
390
  await sthis.start();
390
- db = DatabaseFactory("test-indexer");
391
- indexer = new Index<string, TestType>(sthis, db.crdt, "hello", (doc) => {
391
+ db = fireproof("test-indexer");
392
+ indexer = new Index<string, TestType>(sthis, db.ledger.crdt, "hello", (doc) => {
392
393
  didMap = true;
393
394
  return doc.title;
394
395
  });
395
396
  await indexer.ready();
396
397
  });
397
398
  it("should have properties", function () {
398
- expect(indexer.crdt).toEqual(db.crdt);
399
+ expect(indexer.crdt).toEqual(db.ledger.crdt);
399
400
  expect(indexer.name).toEqual("hello");
400
401
  expect(indexer.mapFn).toBeTruthy();
401
402
  });