@fireproof/core 0.0.6 → 0.0.8
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.
- package/coverage/blockstore.js.html +254 -242
- package/coverage/clock.js.html +203 -266
- package/coverage/db-index.js.html +426 -213
- package/coverage/fireproof.js.html +424 -238
- package/coverage/index.html +69 -84
- package/coverage/listener.js.html +13 -25
- package/coverage/prolly.js.html +267 -219
- package/coverage/tmp/coverage-28490-1680373005621-0.json +1 -0
- package/coverage/tmp/coverage-28494-1680373004502-0.json +1 -0
- package/coverage/tmp/coverage-28500-1680373005593-0.json +1 -0
- package/coverage/tmp/coverage-28504-1680373005559-0.json +1 -0
- package/coverage/valet.js.html +96 -246
- package/hooks/use-fireproof.ts +9 -8
- package/package.json +5 -5
- package/src/blockstore.js +16 -14
- package/src/clock.js +27 -5
- package/src/db-index.js +139 -96
- package/src/fireproof.js +48 -16
- package/src/hydrator.js +10 -0
- package/src/listener.js +0 -6
- package/src/prolly.js +43 -32
- package/src/valet.js +6 -62
- package/{src → test}/block.js +6 -6
- package/test/clock.test.js +0 -5
- package/test/db-index.test.js +11 -10
- package/test/fireproof.test.js +74 -19
- package/test/helpers.js +1 -1
- package/test/hydrator.test.js +75 -0
- package/test/prolly.test.js +2 -2
- package/test/proofs.test.js +5 -5
- package/test/reproduce-fixture-bug.test.js +2 -2
- package/coverage/tmp/coverage-42191-1678146904346-0.json +0 -1
- package/coverage/tmp/coverage-42193-1678146903521-0.json +0 -1
- package/coverage/tmp/coverage-42196-1678146904322-0.json +0 -1
- package/coverage/tmp/coverage-42197-1678146904292-0.json +0 -1
- package/scripts/propernames/gen.sh +0 -3
- package/scripts/randomcid.js +0 -12
- package/scripts/words/gen.js +0 -55
package/coverage/prolly.js.html
CHANGED
@@ -23,9 +23,9 @@
|
|
23
23
|
<div class='clearfix'>
|
24
24
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
26
|
-
<span class="strong">
|
26
|
+
<span class="strong">94.32% </span>
|
27
27
|
<span class="quiet">Statements</span>
|
28
|
-
<span class='fraction'>
|
28
|
+
<span class='fraction'>266/282</span>
|
29
29
|
</div>
|
30
30
|
|
31
31
|
|
@@ -37,16 +37,16 @@
|
|
37
37
|
|
38
38
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
40
|
-
<span class="strong">
|
40
|
+
<span class="strong">92.85% </span>
|
41
41
|
<span class="quiet">Functions</span>
|
42
|
-
<span class='fraction'>
|
42
|
+
<span class='fraction'>13/14</span>
|
43
43
|
</div>
|
44
44
|
|
45
45
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
47
|
-
<span class="strong">
|
47
|
+
<span class="strong">94.32% </span>
|
48
48
|
<span class="quiet">Lines</span>
|
49
|
-
<span class='fraction'>
|
49
|
+
<span class='fraction'>266/282</span>
|
50
50
|
</div>
|
51
51
|
|
52
52
|
|
@@ -329,7 +329,23 @@
|
|
329
329
|
<a name='L264'></a><a href='#L264'>264</a>
|
330
330
|
<a name='L265'></a><a href='#L265'>265</a>
|
331
331
|
<a name='L266'></a><a href='#L266'>266</a>
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
333
349
|
<span class="cline-any cline-yes">1x</span>
|
334
350
|
<span class="cline-any cline-yes">1x</span>
|
335
351
|
<span class="cline-any cline-yes">1x</span>
|
@@ -347,16 +363,24 @@
|
|
347
363
|
<span class="cline-any cline-yes">1x</span>
|
348
364
|
<span class="cline-any cline-yes">1x</span>
|
349
365
|
<span class="cline-any cline-yes">1x</span>
|
366
|
+
<span class="cline-any cline-yes">889x</span>
|
367
|
+
<span class="cline-any cline-yes">889x</span>
|
368
|
+
<span class="cline-any cline-yes">889x</span>
|
369
|
+
<span class="cline-any cline-yes">889x</span>
|
350
370
|
<span class="cline-any cline-yes">1x</span>
|
351
|
-
<span class="cline-any cline-yes">328x</span>
|
352
|
-
<span class="cline-any cline-yes">328x</span>
|
353
|
-
<span class="cline-any cline-yes">328x</span>
|
354
|
-
<span class="cline-any cline-yes">328x</span>
|
355
371
|
<span class="cline-any cline-yes">1x</span>
|
356
372
|
<span class="cline-any cline-yes">1x</span>
|
357
|
-
<span class="cline-any cline-yes">
|
358
|
-
<span class="cline-any cline-yes">
|
359
|
-
<span class="cline-any cline-yes">
|
373
|
+
<span class="cline-any cline-yes">450x</span>
|
374
|
+
<span class="cline-any cline-yes">450x</span>
|
375
|
+
<span class="cline-any cline-yes">889x</span>
|
376
|
+
<span class="cline-any cline-yes">889x</span>
|
377
|
+
<span class="cline-any cline-yes">889x</span>
|
378
|
+
<span class="cline-any cline-yes">889x</span>
|
379
|
+
<span class="cline-any cline-yes">450x</span>
|
380
|
+
<span class="cline-any cline-yes">450x</span>
|
381
|
+
<span class="cline-any cline-yes">450x</span>
|
382
|
+
<span class="cline-any cline-yes">450x</span>
|
383
|
+
<span class="cline-any cline-yes">450x</span>
|
360
384
|
<span class="cline-any cline-yes">1x</span>
|
361
385
|
<span class="cline-any cline-yes">1x</span>
|
362
386
|
<span class="cline-any cline-yes">1x</span>
|
@@ -377,72 +401,73 @@
|
|
377
401
|
<span class="cline-any cline-yes">1x</span>
|
378
402
|
<span class="cline-any cline-yes">1x</span>
|
379
403
|
<span class="cline-any cline-yes">1x</span>
|
380
|
-
<span class="cline-any cline-yes">
|
381
|
-
<span class="cline-any cline-yes">
|
382
|
-
<span class="cline-any cline-yes">
|
383
|
-
<span class="cline-any cline-yes">
|
384
|
-
<span class="cline-any cline-yes">
|
385
|
-
<span class="cline-any cline-yes">
|
386
|
-
<span class="cline-any cline-yes">
|
387
|
-
<span class="cline-any cline-yes">
|
388
|
-
<span class="cline-any cline-yes">
|
389
|
-
<span class="cline-any cline-yes">
|
390
|
-
<span class="cline-any cline-yes">
|
391
|
-
<span class="cline-any cline-yes">
|
392
|
-
<span class="cline-any cline-yes">
|
393
|
-
<span class="cline-any cline-yes">
|
394
|
-
<span class="cline-any cline-yes">
|
395
|
-
<span class="cline-any cline-yes">
|
396
|
-
<span class="cline-any cline-yes">
|
397
|
-
<span class="cline-any cline-yes">
|
398
|
-
<span class="cline-any cline-yes">
|
399
|
-
<span class="cline-any cline-yes">
|
400
|
-
<span class="cline-any cline-yes">
|
401
|
-
<span class="cline-any cline-yes">
|
404
|
+
<span class="cline-any cline-yes">174x</span>
|
405
|
+
<span class="cline-any cline-yes">174x</span>
|
406
|
+
<span class="cline-any cline-yes">174x</span>
|
407
|
+
<span class="cline-any cline-yes">174x</span>
|
408
|
+
<span class="cline-any cline-yes">174x</span>
|
409
|
+
<span class="cline-any cline-yes">174x</span>
|
410
|
+
<span class="cline-any cline-yes">174x</span>
|
411
|
+
<span class="cline-any cline-yes">174x</span>
|
412
|
+
<span class="cline-any cline-yes">174x</span>
|
413
|
+
<span class="cline-any cline-yes">174x</span>
|
414
|
+
<span class="cline-any cline-yes">174x</span>
|
415
|
+
<span class="cline-any cline-yes">174x</span>
|
416
|
+
<span class="cline-any cline-yes">174x</span>
|
417
|
+
<span class="cline-any cline-yes">174x</span>
|
418
|
+
<span class="cline-any cline-yes">174x</span>
|
419
|
+
<span class="cline-any cline-yes">174x</span>
|
420
|
+
<span class="cline-any cline-yes">174x</span>
|
421
|
+
<span class="cline-any cline-yes">174x</span>
|
422
|
+
<span class="cline-any cline-yes">174x</span>
|
423
|
+
<span class="cline-any cline-yes">174x</span>
|
424
|
+
<span class="cline-any cline-yes">174x</span>
|
425
|
+
<span class="cline-any cline-yes">174x</span>
|
402
426
|
<span class="cline-any cline-no"> </span>
|
403
427
|
<span class="cline-any cline-no"> </span>
|
404
|
-
<span class="cline-any cline-yes">
|
405
|
-
<span class="cline-any cline-yes">
|
406
|
-
<span class="cline-any cline-yes">
|
407
|
-
<span class="cline-any cline-yes">
|
408
|
-
<span class="cline-any cline-yes">
|
409
|
-
<span class="cline-any cline-yes">
|
410
|
-
<span class="cline-any cline-yes">
|
411
|
-
<span class="cline-any cline-yes">
|
412
|
-
<span class="cline-any cline-yes">
|
413
|
-
<span class="cline-any cline-yes">
|
414
|
-
<span class="cline-any cline-yes">
|
415
|
-
<span class="cline-any cline-yes">
|
416
|
-
<span class="cline-any cline-yes">
|
417
|
-
<span class="cline-any cline-yes">
|
418
|
-
<span class="cline-any cline-yes">
|
419
|
-
<span class="cline-any cline-yes">
|
420
|
-
<span class="cline-any cline-yes">
|
428
|
+
<span class="cline-any cline-yes">174x</span>
|
429
|
+
<span class="cline-any cline-yes">174x</span>
|
430
|
+
<span class="cline-any cline-yes">174x</span>
|
431
|
+
<span class="cline-any cline-yes">174x</span>
|
432
|
+
<span class="cline-any cline-yes">174x</span>
|
433
|
+
<span class="cline-any cline-yes">174x</span>
|
434
|
+
<span class="cline-any cline-yes">174x</span>
|
435
|
+
<span class="cline-any cline-yes">174x</span>
|
436
|
+
<span class="cline-any cline-yes">174x</span>
|
437
|
+
<span class="cline-any cline-yes">174x</span>
|
438
|
+
<span class="cline-any cline-yes">174x</span>
|
439
|
+
<span class="cline-any cline-yes">174x</span>
|
440
|
+
<span class="cline-any cline-yes">174x</span>
|
441
|
+
<span class="cline-any cline-yes">174x</span>
|
442
|
+
<span class="cline-any cline-yes">174x</span>
|
443
|
+
<span class="cline-any cline-yes">174x</span>
|
444
|
+
<span class="cline-any cline-yes">174x</span>
|
445
|
+
<span class="cline-any cline-yes">174x</span>
|
421
446
|
<span class="cline-any cline-yes">1x</span>
|
422
447
|
<span class="cline-any cline-yes">1x</span>
|
423
|
-
<span class="cline-any cline-yes">
|
424
|
-
<span class="cline-any cline-yes">
|
425
|
-
<span class="cline-any cline-yes">
|
426
|
-
<span class="cline-any cline-yes">
|
427
|
-
<span class="cline-any cline-yes">
|
428
|
-
<span class="cline-any cline-yes">
|
429
|
-
<span class="cline-any cline-yes">
|
430
|
-
<span class="cline-any cline-yes">
|
431
|
-
<span class="cline-any cline-yes">
|
432
|
-
<span class="cline-any cline-yes">
|
433
|
-
<span class="cline-any cline-yes">
|
434
|
-
<span class="cline-any cline-yes">
|
435
|
-
<span class="cline-any cline-yes">
|
436
|
-
<span class="cline-any cline-yes">
|
437
|
-
<span class="cline-any cline-yes">
|
448
|
+
<span class="cline-any cline-yes">410x</span>
|
449
|
+
<span class="cline-any cline-yes">410x</span>
|
450
|
+
<span class="cline-any cline-yes">410x</span>
|
451
|
+
<span class="cline-any cline-yes">410x</span>
|
452
|
+
<span class="cline-any cline-yes">410x</span>
|
453
|
+
<span class="cline-any cline-yes">889x</span>
|
454
|
+
<span class="cline-any cline-yes">889x</span>
|
455
|
+
<span class="cline-any cline-yes">889x</span>
|
456
|
+
<span class="cline-any cline-yes">889x</span>
|
457
|
+
<span class="cline-any cline-yes">889x</span>
|
458
|
+
<span class="cline-any cline-yes">489x</span>
|
459
|
+
<span class="cline-any cline-yes">489x</span>
|
460
|
+
<span class="cline-any cline-yes">889x</span>
|
461
|
+
<span class="cline-any cline-yes">410x</span>
|
462
|
+
<span class="cline-any cline-yes">410x</span>
|
438
463
|
<span class="cline-any cline-yes">1x</span>
|
439
464
|
<span class="cline-any cline-yes">1x</span>
|
440
|
-
<span class="cline-any cline-yes">
|
441
|
-
<span class="cline-any cline-yes">
|
442
|
-
<span class="cline-any cline-yes">
|
443
|
-
<span class="cline-any cline-yes">
|
444
|
-
<span class="cline-any cline-yes">
|
445
|
-
<span class="cline-any cline-yes">
|
465
|
+
<span class="cline-any cline-yes">248x</span>
|
466
|
+
<span class="cline-any cline-yes">784x</span>
|
467
|
+
<span class="cline-any cline-yes">784x</span>
|
468
|
+
<span class="cline-any cline-yes">784x</span>
|
469
|
+
<span class="cline-any cline-yes">784x</span>
|
470
|
+
<span class="cline-any cline-yes">248x</span>
|
446
471
|
<span class="cline-any cline-yes">1x</span>
|
447
472
|
<span class="cline-any cline-yes">1x</span>
|
448
473
|
<span class="cline-any cline-yes">1x</span>
|
@@ -453,12 +478,12 @@
|
|
453
478
|
<span class="cline-any cline-yes">1x</span>
|
454
479
|
<span class="cline-any cline-yes">1x</span>
|
455
480
|
<span class="cline-any cline-yes">1x</span>
|
456
|
-
<span class="cline-any cline-yes">
|
457
|
-
<span class="cline-any cline-yes">
|
458
|
-
<span class="cline-any cline-yes">
|
459
|
-
<span class="cline-any cline-yes">
|
460
|
-
<span class="cline-any cline-yes">
|
461
|
-
<span class="cline-any cline-yes">
|
481
|
+
<span class="cline-any cline-yes">248x</span>
|
482
|
+
<span class="cline-any cline-yes">248x</span>
|
483
|
+
<span class="cline-any cline-yes">248x</span>
|
484
|
+
<span class="cline-any cline-yes">248x</span>
|
485
|
+
<span class="cline-any cline-yes">248x</span>
|
486
|
+
<span class="cline-any cline-yes">248x</span>
|
462
487
|
<span class="cline-any cline-yes">1x</span>
|
463
488
|
<span class="cline-any cline-yes">1x</span>
|
464
489
|
<span class="cline-any cline-yes">1x</span>
|
@@ -471,44 +496,44 @@
|
|
471
496
|
<span class="cline-any cline-yes">1x</span>
|
472
497
|
<span class="cline-any cline-yes">1x</span>
|
473
498
|
<span class="cline-any cline-yes">1x</span>
|
474
|
-
<span class="cline-any cline-yes">
|
475
|
-
<span class="cline-any cline-yes">
|
476
|
-
<span class="cline-any cline-yes">
|
477
|
-
<span class="cline-any cline-yes">
|
478
|
-
<span class="cline-any cline-yes">
|
479
|
-
<span class="cline-any cline-yes">
|
480
|
-
<span class="cline-any cline-yes">
|
481
|
-
<span class="cline-any cline-yes">
|
482
|
-
<span class="cline-any cline-yes">
|
483
|
-
<span class="cline-any cline-yes">
|
484
|
-
<span class="cline-any cline-yes">
|
485
|
-
<span class="cline-any cline-yes">
|
486
|
-
<span class="cline-any cline-yes">
|
487
|
-
<span class="cline-any cline-yes">
|
488
|
-
<span class="cline-any cline-yes">
|
489
|
-
<span class="cline-any cline-yes">
|
490
|
-
<span class="cline-any cline-yes">
|
491
|
-
<span class="cline-any cline-yes">
|
492
|
-
<span class="cline-any cline-yes">
|
493
|
-
<span class="cline-any cline-yes">
|
494
|
-
<span class="cline-any cline-yes">
|
495
|
-
<span class="cline-any cline-yes">
|
496
|
-
<span class="cline-any cline-yes">
|
497
|
-
<span class="cline-any cline-yes">
|
498
|
-
<span class="cline-any cline-yes">
|
499
|
-
<span class="cline-any cline-yes">
|
500
|
-
<span class="cline-any cline-yes">
|
501
|
-
<span class="cline-any cline-yes">
|
502
|
-
<span class="cline-any cline-yes">
|
503
|
-
<span class="cline-any cline-yes">
|
504
|
-
<span class="cline-any cline-yes">
|
505
|
-
<span class="cline-any cline-yes">
|
506
|
-
<span class="cline-any cline-yes">
|
507
|
-
<span class="cline-any cline-yes">
|
508
|
-
<span class="cline-any cline-yes">
|
509
|
-
<span class="cline-any cline-yes">
|
510
|
-
<span class="cline-any cline-yes">
|
511
|
-
<span class="cline-any cline-yes">
|
499
|
+
<span class="cline-any cline-yes">174x</span>
|
500
|
+
<span class="cline-any cline-yes">174x</span>
|
501
|
+
<span class="cline-any cline-yes">174x</span>
|
502
|
+
<span class="cline-any cline-yes">174x</span>
|
503
|
+
<span class="cline-any cline-yes">44x</span>
|
504
|
+
<span class="cline-any cline-yes">44x</span>
|
505
|
+
<span class="cline-any cline-yes">44x</span>
|
506
|
+
<span class="cline-any cline-yes">44x</span>
|
507
|
+
<span class="cline-any cline-yes">44x</span>
|
508
|
+
<span class="cline-any cline-yes">44x</span>
|
509
|
+
<span class="cline-any cline-yes">44x</span>
|
510
|
+
<span class="cline-any cline-yes">44x</span>
|
511
|
+
<span class="cline-any cline-yes">130x</span>
|
512
|
+
<span class="cline-any cline-yes">130x</span>
|
513
|
+
<span class="cline-any cline-yes">130x</span>
|
514
|
+
<span class="cline-any cline-yes">130x</span>
|
515
|
+
<span class="cline-any cline-yes">130x</span>
|
516
|
+
<span class="cline-any cline-yes">130x</span>
|
517
|
+
<span class="cline-any cline-yes">130x</span>
|
518
|
+
<span class="cline-any cline-yes">130x</span>
|
519
|
+
<span class="cline-any cline-yes">130x</span>
|
520
|
+
<span class="cline-any cline-yes">130x</span>
|
521
|
+
<span class="cline-any cline-yes">130x</span>
|
522
|
+
<span class="cline-any cline-yes">130x</span>
|
523
|
+
<span class="cline-any cline-yes">130x</span>
|
524
|
+
<span class="cline-any cline-yes">174x</span>
|
525
|
+
<span class="cline-any cline-yes">315x</span>
|
526
|
+
<span class="cline-any cline-yes">315x</span>
|
527
|
+
<span class="cline-any cline-yes">130x</span>
|
528
|
+
<span class="cline-any cline-yes">130x</span>
|
529
|
+
<span class="cline-any cline-yes">130x</span>
|
530
|
+
<span class="cline-any cline-yes">130x</span>
|
531
|
+
<span class="cline-any cline-yes">130x</span>
|
532
|
+
<span class="cline-any cline-yes">130x</span>
|
533
|
+
<span class="cline-any cline-yes">130x</span>
|
534
|
+
<span class="cline-any cline-yes">130x</span>
|
535
|
+
<span class="cline-any cline-yes">130x</span>
|
536
|
+
<span class="cline-any cline-yes">174x</span>
|
512
537
|
<span class="cline-any cline-yes">1x</span>
|
513
538
|
<span class="cline-any cline-yes">1x</span>
|
514
539
|
<span class="cline-any cline-yes">1x</span>
|
@@ -517,30 +542,29 @@
|
|
517
542
|
<span class="cline-any cline-yes">1x</span>
|
518
543
|
<span class="cline-any cline-yes">1x</span>
|
519
544
|
<span class="cline-any cline-yes">1x</span>
|
520
|
-
<span class="cline-any cline-yes">
|
545
|
+
<span class="cline-any cline-yes">118x</span>
|
521
546
|
<span class="cline-any cline-no"> </span>
|
522
547
|
<span class="cline-any cline-no"> </span>
|
523
|
-
<span class="cline-any cline-yes">
|
524
|
-
<span class="cline-any cline-yes">
|
525
|
-
<span class="cline-any cline-yes">
|
526
|
-
<span class="cline-any cline-yes">
|
527
|
-
<span class="cline-any cline-yes">
|
528
|
-
<span class="cline-any cline-yes">
|
529
|
-
<span class="cline-any cline-yes">
|
530
|
-
<span class="cline-any cline-yes">
|
531
|
-
<span class="cline-any cline-yes">
|
532
|
-
<span class="cline-any cline-yes">
|
533
|
-
<span class="cline-any cline-yes">
|
534
|
-
<span class="cline-any cline-yes">
|
535
|
-
<span class="cline-any cline-yes">
|
536
|
-
<span class="cline-any cline-yes">
|
537
|
-
<span class="cline-any cline-yes">
|
538
|
-
<span class="cline-any cline-yes">
|
539
|
-
<span class="cline-any cline-yes">
|
540
|
-
<span class="cline-any cline-yes">
|
541
|
-
<span class="cline-any cline-yes">
|
542
|
-
<span class="cline-any cline-yes">
|
543
|
-
<span class="cline-any cline-yes">95x</span>
|
548
|
+
<span class="cline-any cline-yes">118x</span>
|
549
|
+
<span class="cline-any cline-yes">118x</span>
|
550
|
+
<span class="cline-any cline-yes">118x</span>
|
551
|
+
<span class="cline-any cline-yes">118x</span>
|
552
|
+
<span class="cline-any cline-yes">118x</span>
|
553
|
+
<span class="cline-any cline-yes">118x</span>
|
554
|
+
<span class="cline-any cline-yes">118x</span>
|
555
|
+
<span class="cline-any cline-yes">118x</span>
|
556
|
+
<span class="cline-any cline-yes">118x</span>
|
557
|
+
<span class="cline-any cline-yes">118x</span>
|
558
|
+
<span class="cline-any cline-yes">118x</span>
|
559
|
+
<span class="cline-any cline-yes">118x</span>
|
560
|
+
<span class="cline-any cline-yes">118x</span>
|
561
|
+
<span class="cline-any cline-yes">118x</span>
|
562
|
+
<span class="cline-any cline-yes">226x</span>
|
563
|
+
<span class="cline-any cline-yes">226x</span>
|
564
|
+
<span class="cline-any cline-yes">118x</span>
|
565
|
+
<span class="cline-any cline-yes">118x</span>
|
566
|
+
<span class="cline-any cline-yes">118x</span>
|
567
|
+
<span class="cline-any cline-yes">118x</span>
|
544
568
|
<span class="cline-any cline-yes">1x</span>
|
545
569
|
<span class="cline-any cline-yes">1x</span>
|
546
570
|
<span class="cline-any cline-yes">1x</span>
|
@@ -550,17 +574,13 @@
|
|
550
574
|
<span class="cline-any cline-yes">1x</span>
|
551
575
|
<span class="cline-any cline-yes">1x</span>
|
552
576
|
<span class="cline-any cline-yes">1x</span>
|
553
|
-
<span class="cline-any cline-yes">
|
577
|
+
<span class="cline-any cline-yes">15x</span>
|
554
578
|
<span class="cline-any cline-no"> </span>
|
555
579
|
<span class="cline-any cline-no"> </span>
|
556
|
-
<span class="cline-any cline-yes">
|
557
|
-
<span class="cline-any cline-yes">
|
558
|
-
<span class="cline-any cline-yes">
|
559
|
-
<span class="cline-any cline-yes">
|
560
|
-
<span class="cline-any cline-yes">10x</span>
|
561
|
-
<span class="cline-any cline-yes">10x</span>
|
562
|
-
<span class="cline-any cline-yes">10x</span>
|
563
|
-
<span class="cline-any cline-yes">10x</span>
|
580
|
+
<span class="cline-any cline-yes">15x</span>
|
581
|
+
<span class="cline-any cline-yes">15x</span>
|
582
|
+
<span class="cline-any cline-yes">15x</span>
|
583
|
+
<span class="cline-any cline-yes">15x</span>
|
564
584
|
<span class="cline-any cline-yes">1x</span>
|
565
585
|
<span class="cline-any cline-yes">1x</span>
|
566
586
|
<span class="cline-any cline-yes">1x</span>
|
@@ -571,15 +591,15 @@
|
|
571
591
|
<span class="cline-any cline-yes">1x</span>
|
572
592
|
<span class="cline-any cline-yes">1x</span>
|
573
593
|
<span class="cline-any cline-yes">1x</span>
|
574
|
-
<span class="cline-any cline-yes">
|
575
|
-
<span class="cline-any cline-yes">
|
576
|
-
<span class="cline-any cline-yes">
|
594
|
+
<span class="cline-any cline-yes">52x</span>
|
595
|
+
<span class="cline-any cline-yes">52x</span>
|
596
|
+
<span class="cline-any cline-yes">52x</span>
|
577
597
|
<span class="cline-any cline-yes">1x</span>
|
578
598
|
<span class="cline-any cline-yes">1x</span>
|
579
|
-
<span class="cline-any cline-yes">
|
580
|
-
<span class="cline-any cline-yes">
|
581
|
-
<span class="cline-any cline-yes">
|
582
|
-
<span class="cline-any cline-yes">
|
599
|
+
<span class="cline-any cline-yes">51x</span>
|
600
|
+
<span class="cline-any cline-yes">51x</span>
|
601
|
+
<span class="cline-any cline-yes">51x</span>
|
602
|
+
<span class="cline-any cline-yes">52x</span>
|
583
603
|
<span class="cline-any cline-yes">1x</span>
|
584
604
|
<span class="cline-any cline-yes">1x</span>
|
585
605
|
<span class="cline-any cline-yes">1x</span>
|
@@ -587,29 +607,40 @@
|
|
587
607
|
<span class="cline-any cline-yes">1x</span>
|
588
608
|
<span class="cline-any cline-yes">1x</span>
|
589
609
|
<span class="cline-any cline-yes">1x</span>
|
590
|
-
<span class="cline-any cline-yes">
|
591
|
-
<span class="cline-any cline-yes">
|
610
|
+
<span class="cline-any cline-yes">66x</span>
|
611
|
+
<span class="cline-any cline-yes">66x</span>
|
592
612
|
<span class="cline-any cline-yes">3x</span>
|
593
613
|
<span class="cline-any cline-yes">3x</span>
|
594
|
-
<span class="cline-any cline-yes">
|
595
|
-
<span class="cline-any cline-yes">
|
596
|
-
<span class="cline-any cline-yes">
|
597
|
-
<span class="cline-any cline-yes">
|
614
|
+
<span class="cline-any cline-yes">63x</span>
|
615
|
+
<span class="cline-any cline-yes">63x</span>
|
616
|
+
<span class="cline-any cline-yes">57x</span>
|
617
|
+
<span class="cline-any cline-yes">66x</span>
|
618
|
+
<span class="cline-any cline-yes">1x</span>
|
619
|
+
<span class="cline-any cline-yes">1x</span>
|
620
|
+
<span class="cline-any cline-no"> </span>
|
621
|
+
<span class="cline-any cline-no"> </span>
|
622
|
+
<span class="cline-any cline-no"> </span>
|
623
|
+
<span class="cline-any cline-no"> </span>
|
624
|
+
<span class="cline-any cline-no"> </span>
|
625
|
+
<span class="cline-any cline-no"> </span>
|
626
|
+
<span class="cline-any cline-no"> </span>
|
627
|
+
<span class="cline-any cline-no"> </span>
|
628
|
+
<span class="cline-any cline-no"> </span>
|
629
|
+
<span class="cline-any cline-no"> </span>
|
598
630
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
599
631
|
advance,
|
600
632
|
EventFetcher,
|
601
633
|
EventBlock,
|
602
634
|
findCommonAncestorWithSortedEvents,
|
603
|
-
|
635
|
+
findEventsToSync
|
604
636
|
} from './clock.js'
|
605
637
|
import { create, load } from 'prolly-trees/map'
|
638
|
+
// import { create, load } from '../../../../prolly-trees/src/map.js'
|
639
|
+
import { nocache as cache } from 'prolly-trees/cache'
|
640
|
+
import { CIDCounter, bf, simpleCompare as compare } from 'prolly-trees/utils'
|
606
641
|
import * as codec from '@ipld/dag-cbor'
|
607
642
|
import { sha256 as hasher } from 'multiformats/hashes/sha2'
|
608
|
-
import { MemoryBlockstore, MultiBlockFetcher } from './block.js'
|
609
643
|
import { doTransaction } from './blockstore.js'
|
610
|
-
|
611
|
-
import { nocache as cache } from 'prolly-trees/cache'
|
612
|
-
import { bf, simpleCompare as compare } from 'prolly-trees/utils'
|
613
644
|
import { create as createBlock } from 'multiformats/block'
|
614
645
|
const opts = { cache, chunker: bf(3), codec, hasher, compare }
|
615
646
|
|
@@ -619,9 +650,18 @@ const withLog = async (label, fn) => {
|
|
619
650
|
return resp
|
620
651
|
}
|
621
652
|
|
622
|
-
|
623
|
-
|
624
|
-
|
653
|
+
// should also return a CIDCounter
|
654
|
+
export const makeGetBlock = (blocks) => {
|
655
|
+
// const cids = new CIDCounter() // this could be used for proofs of mutations
|
656
|
+
const getBlockFn = async (address) => {
|
657
|
+
const { cid, bytes } = await withLog(address, () => blocks.get(address))
|
658
|
+
// cids.add({ address: cid })
|
659
|
+
return createBlock({ cid, bytes, hasher, codec })
|
660
|
+
}
|
661
|
+
return {
|
662
|
+
// cids,
|
663
|
+
getBlock: getBlockFn
|
664
|
+
}
|
625
665
|
}
|
626
666
|
|
627
667
|
/**
|
@@ -632,28 +672,28 @@ const makeGetBlock = (blocks) => async (address) => {
|
|
632
672
|
* @param {Function} bigPut - A function that puts a block.
|
633
673
|
* @param {import('prolly-trees/map').Root} root - The root node.
|
634
674
|
* @param {Object<{ key: string, value: any, del: boolean }>} event - The update event.
|
635
|
-
* @param {
|
675
|
+
* @param {CID[]} head - The head of the event chain.
|
636
676
|
* @param {Array<import('multiformats/block').Block>} additions - A array of additions.
|
637
677
|
* @param {Array<mport('multiformats/block').Block>>} removals - An array of removals.
|
638
678
|
* @returns {Promise<{
|
639
679
|
* root: import('prolly-trees/map').Root,
|
640
680
|
* additions: Map<string, import('multiformats/block').Block>,
|
641
681
|
* removals: Array<string>,
|
642
|
-
* head:
|
643
|
-
* event:
|
682
|
+
* head: CID[],
|
683
|
+
* event: CID[]
|
644
684
|
* }>}
|
645
685
|
*/
|
646
|
-
async function createAndSaveNewEvent (
|
686
|
+
async function createAndSaveNewEvent ({
|
647
687
|
inBlocks,
|
648
|
-
mblocks,
|
649
|
-
getBlock,
|
650
688
|
bigPut,
|
651
689
|
root,
|
652
|
-
|
690
|
+
event: inEvent,
|
653
691
|
head,
|
654
692
|
additions,
|
655
693
|
removals = []
|
656
|
-
) {
|
694
|
+
}) {
|
695
|
+
let cids
|
696
|
+
const { key, value, del } = inEvent
|
657
697
|
const data = {
|
658
698
|
type: 'put',
|
659
699
|
root: {
|
@@ -674,32 +714,33 @@ async function createAndSaveNewEvent (
|
|
674
714
|
|
675
715
|
const event = await EventBlock.create(data, head)
|
676
716
|
bigPut(event)
|
677
|
-
head = await advance(inBlocks, head, event.cid)
|
717
|
+
;({ head, cids } = await advance(inBlocks, head, event.cid))
|
678
718
|
|
679
719
|
return {
|
680
720
|
root,
|
681
721
|
additions,
|
682
722
|
removals,
|
683
723
|
head,
|
724
|
+
clockCIDs: cids,
|
684
725
|
event
|
685
726
|
}
|
686
727
|
}
|
687
728
|
|
688
729
|
const makeGetAndPutBlock = (inBlocks) => {
|
689
|
-
const mblocks = new MemoryBlockstore()
|
690
|
-
const blocks = new MultiBlockFetcher(mblocks, inBlocks)
|
691
|
-
const getBlock = makeGetBlock(
|
730
|
+
// const mblocks = new MemoryBlockstore()
|
731
|
+
// const blocks = new MultiBlockFetcher(mblocks, inBlocks)
|
732
|
+
const { getBlock, cids } = makeGetBlock(inBlocks)
|
692
733
|
const put = inBlocks.put.bind(inBlocks)
|
693
734
|
const bigPut = async (block, additions) => {
|
694
735
|
// console.log('bigPut', block.cid.toString())
|
695
736
|
const { cid, bytes } = block
|
696
737
|
put(cid, bytes)
|
697
|
-
mblocks.putSync(cid, bytes)
|
738
|
+
// mblocks.putSync(cid, bytes)
|
698
739
|
if (additions) {
|
699
740
|
additions.set(cid.toString(), block)
|
700
741
|
}
|
701
742
|
}
|
702
|
-
return { getBlock, bigPut,
|
743
|
+
return { getBlock, bigPut, blocks: inBlocks, cids }
|
703
744
|
}
|
704
745
|
|
705
746
|
const bulkFromEvents = (sorted) =>
|
@@ -729,15 +770,15 @@ const prollyRootFromAncestor = async (events, ancestor, getBlock) => {
|
|
729
770
|
/**
|
730
771
|
* Put a value (a CID) for the given key. If the key exists it's value is overwritten.
|
731
772
|
*
|
732
|
-
* @param {import('
|
773
|
+
* @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
|
733
774
|
* @param {import('./clock').EventLink<EventData>[]} head Merkle clock head.
|
734
775
|
* @param {string} key The key of the value to put.
|
735
|
-
* @param {
|
776
|
+
* @param {CID} value The value to put.
|
736
777
|
* @param {object} [options]
|
737
778
|
* @returns {Promise<Result>}
|
738
779
|
*/
|
739
780
|
export async function put (inBlocks, head, event, options) {
|
740
|
-
const { getBlock, bigPut,
|
781
|
+
const { getBlock, bigPut, blocks } = makeGetAndPutBlock(inBlocks)
|
741
782
|
|
742
783
|
// If the head is empty, we create a new event and return the root and addition blocks
|
743
784
|
if (!head.length) {
|
@@ -747,12 +788,14 @@ export async function put (inBlocks, head, event, options) {
|
|
747
788
|
root = await node.block
|
748
789
|
bigPut(root, additions)
|
749
790
|
}
|
750
|
-
return createAndSaveNewEvent(inBlocks,
|
791
|
+
return createAndSaveNewEvent({ inBlocks, bigPut, root, event, head, additions: Array.from(additions.values()) })
|
751
792
|
}
|
752
793
|
|
753
794
|
// Otherwise, we find the common ancestor and update the root and other blocks
|
754
795
|
const events = new EventFetcher(blocks)
|
796
|
+
// this is returning more events than necessary
|
755
797
|
const { ancestor, sorted } = await findCommonAncestorWithSortedEvents(events, head)
|
798
|
+
// console.log('sorted', JSON.stringify(sorted.map(({ value: { data: { key, value } } }) => ({ key, value }))))
|
756
799
|
const prollyRootNode = await prollyRootFromAncestor(events, ancestor, getBlock)
|
757
800
|
|
758
801
|
const bulkOperations = bulkFromEvents(sorted)
|
@@ -763,23 +806,21 @@ export async function put (inBlocks, head, event, options) {
|
|
763
806
|
for (const nb of newBlocks) {
|
764
807
|
bigPut(nb, additions)
|
765
808
|
}
|
766
|
-
|
767
|
-
return createAndSaveNewEvent(
|
809
|
+
// additions are new blocks
|
810
|
+
return createAndSaveNewEvent({
|
768
811
|
inBlocks,
|
769
|
-
mblocks,
|
770
|
-
getBlock,
|
771
812
|
bigPut,
|
772
|
-
prollyRootBlock,
|
813
|
+
root: prollyRootBlock,
|
773
814
|
event,
|
774
815
|
head,
|
775
|
-
Array.from(additions.values()) /*, Array.from(removals.values()) */
|
776
|
-
)
|
816
|
+
additions: Array.from(additions.values()) /*, todo? Array.from(removals.values()) */
|
817
|
+
})
|
777
818
|
}
|
778
819
|
|
779
820
|
/**
|
780
821
|
* Determine the effective prolly root given the current merkle clock head.
|
781
822
|
*
|
782
|
-
* @param {import('
|
823
|
+
* @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
|
783
824
|
* @param {import('./clock').EventLink<EventData>[]} head Merkle clock head.
|
784
825
|
*/
|
785
826
|
export async function root (inBlocks, head) {
|
@@ -794,23 +835,22 @@ export async function root (inBlocks, head) {
|
|
794
835
|
// Perform bulk operations (put or delete) for each event in the sorted array
|
795
836
|
const bulkOperations = bulkFromEvents(sorted)
|
796
837
|
const { root: newProllyRootNode, blocks: newBlocks } = await prollyRootNode.bulk(bulkOperations)
|
797
|
-
const prollyRootBlock = await newProllyRootNode.block
|
798
|
-
// console.log('
|
838
|
+
// const prollyRootBlock = await newProllyRootNode.block
|
839
|
+
// console.log('newBlocks', newBlocks.map((nb) => nb.cid.toString()))
|
799
840
|
// todo maybe these should go to a temp blockstore?
|
800
841
|
await doTransaction('root', inBlocks, async (transactionBlockstore) => {
|
801
842
|
const { bigPut } = makeGetAndPutBlock(transactionBlockstore)
|
802
843
|
for (const nb of newBlocks) {
|
803
844
|
bigPut(nb)
|
804
845
|
}
|
805
|
-
bigPut(prollyRootBlock)
|
846
|
+
// bigPut(prollyRootBlock)
|
806
847
|
})
|
807
|
-
|
808
|
-
return newProllyRootNode // .block).cid // todo return live object not cid
|
848
|
+
return { cids: events.cids, node: newProllyRootNode }
|
809
849
|
}
|
810
850
|
|
811
851
|
/**
|
812
852
|
* Get the list of events not known by the `since` event
|
813
|
-
* @param {import('
|
853
|
+
* @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
|
814
854
|
* @param {import('./clock').EventLink<EventData>[]} head Merkle clock head.
|
815
855
|
* @param {import('./clock').EventLink<EventData>} since Event to compare against.
|
816
856
|
* @returns {Promise<import('./clock').EventLink<EventData>[]>}
|
@@ -820,17 +860,13 @@ export async function eventsSince (blocks, head, since) {
|
|
820
860
|
<span class="cstat-no" title="statement not covered" > throw new Error('no head')</span>
|
821
861
|
<span class="cstat-no" title="statement not covered" > }</span>
|
822
862
|
const sinceHead = [...since, ...head]
|
823
|
-
const unknownSorted3 = await
|
824
|
-
|
825
|
-
sinceHead,
|
826
|
-
await findCommonAncestorWithSortedEvents(blocks, sinceHead)
|
827
|
-
)
|
828
|
-
return unknownSorted3.map(({ value: { data } }) => data)
|
863
|
+
const { cids, events: unknownSorted3 } = await findEventsToSync(blocks, sinceHead)
|
864
|
+
return { clockCIDs: cids, result: unknownSorted3.map(({ value: { data } }) => data) }
|
829
865
|
}
|
830
866
|
|
831
867
|
/**
|
832
868
|
*
|
833
|
-
* @param {import('
|
869
|
+
* @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
|
834
870
|
* @param {import('./clock').EventLink<EventData>[]} head Merkle clock head.
|
835
871
|
*
|
836
872
|
* @returns {Promise<import('./prolly').Entry[]>}
|
@@ -840,27 +876,39 @@ export async function getAll (blocks, head) {
|
|
840
876
|
// todo use the root node left around from put, etc
|
841
877
|
// move load to a central place
|
842
878
|
if (!head.length) {
|
843
|
-
return []
|
879
|
+
return { clockCIDs: new CIDCounter(), cids: new CIDCounter(), result: [] }
|
844
880
|
}
|
845
|
-
const prollyRootNode = await root(blocks, head)
|
846
|
-
const { result } = await prollyRootNode.getAllEntries()
|
847
|
-
return result.map(({ key, value }) => ({ key, value }))
|
881
|
+
const { node: prollyRootNode, cids: clockCIDs } = await root(blocks, head)
|
882
|
+
const { result, cids } = await prollyRootNode.getAllEntries() // todo params
|
883
|
+
return { clockCIDs, cids, result: result.map(({ key, value }) => ({ key, value })) }
|
848
884
|
}
|
849
885
|
|
850
886
|
/**
|
851
|
-
* @param {import('
|
887
|
+
* @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
|
852
888
|
* @param {import('./clock').EventLink<EventData>[]} head Merkle clock head.
|
853
889
|
* @param {string} key The key of the value to retrieve.
|
854
890
|
*/
|
855
891
|
export async function get (blocks, head, key) {
|
856
892
|
// instead pass root from db? and always update on change
|
857
893
|
if (!head.length) {
|
858
|
-
return null
|
894
|
+
return { cids: new CIDCounter(), result: null }
|
859
895
|
}
|
860
|
-
const prollyRootNode = await root(blocks, head)
|
861
|
-
const { result } = await prollyRootNode.get(key)
|
862
|
-
return result
|
896
|
+
const { node: prollyRootNode, cids: clockCIDs } = await root(blocks, head)
|
897
|
+
const { result, cids } = await prollyRootNode.get(key)
|
898
|
+
return { result, cids, clockCIDs }
|
863
899
|
}
|
900
|
+
|
901
|
+
export <span class="fstat-no" title="function not covered" >async function * vis (blocks, head) {</span>
|
902
|
+
<span class="cstat-no" title="statement not covered" > if (!head.length) {</span>
|
903
|
+
<span class="cstat-no" title="statement not covered" > return { cids: new CIDCounter(), result: null }</span>
|
904
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
905
|
+
<span class="cstat-no" title="statement not covered" > const { node: prollyRootNode, cids } = await root(blocks, head)</span>
|
906
|
+
<span class="cstat-no" title="statement not covered" > const lines = []</span>
|
907
|
+
<span class="cstat-no" title="statement not covered" > for await (const line of prollyRootNode.vis()) {</span>
|
908
|
+
<span class="cstat-no" title="statement not covered" > yield line</span>
|
909
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
910
|
+
<span class="cstat-no" title="statement not covered" > return { vis: lines.join('\n'), cids }</span>
|
911
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
864
912
|
</pre></td></tr></table></pre>
|
865
913
|
|
866
914
|
<div class='push'></div><!-- for sticky footer -->
|
@@ -868,7 +916,7 @@ export async function get (blocks, head, key) {
|
|
868
916
|
<div class='footer quiet pad2 space-top1 center small'>
|
869
917
|
Code coverage generated by
|
870
918
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
871
|
-
at 2023-
|
919
|
+
at 2023-04-01T18:16:45.716Z
|
872
920
|
</div>
|
873
921
|
<script src="prettify.js"></script>
|
874
922
|
<script>
|