@fireproof/core 0.0.7 → 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.
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">97.74% </span>
26
+ <span class="strong">94.32% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>260/266</span>
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">100% </span>
40
+ <span class="strong">92.85% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/12</span>
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">97.74% </span>
47
+ <span class="strong">94.32% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>260/266</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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">328x</span>
358
- <span class="cline-any cline-yes">328x</span>
359
- <span class="cline-any cline-yes">328x</span>
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">131x</span>
381
- <span class="cline-any cline-yes">131x</span>
382
- <span class="cline-any cline-yes">131x</span>
383
- <span class="cline-any cline-yes">131x</span>
384
- <span class="cline-any cline-yes">131x</span>
385
- <span class="cline-any cline-yes">131x</span>
386
- <span class="cline-any cline-yes">131x</span>
387
- <span class="cline-any cline-yes">131x</span>
388
- <span class="cline-any cline-yes">131x</span>
389
- <span class="cline-any cline-yes">131x</span>
390
- <span class="cline-any cline-yes">131x</span>
391
- <span class="cline-any cline-yes">131x</span>
392
- <span class="cline-any cline-yes">131x</span>
393
- <span class="cline-any cline-yes">131x</span>
394
- <span class="cline-any cline-yes">131x</span>
395
- <span class="cline-any cline-yes">131x</span>
396
- <span class="cline-any cline-yes">131x</span>
397
- <span class="cline-any cline-yes">131x</span>
398
- <span class="cline-any cline-yes">131x</span>
399
- <span class="cline-any cline-yes">131x</span>
400
- <span class="cline-any cline-yes">131x</span>
401
- <span class="cline-any cline-yes">131x</span>
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">&nbsp;</span>
403
427
  <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-yes">131x</span>
405
- <span class="cline-any cline-yes">131x</span>
406
- <span class="cline-any cline-yes">131x</span>
407
- <span class="cline-any cline-yes">131x</span>
408
- <span class="cline-any cline-yes">131x</span>
409
- <span class="cline-any cline-yes">131x</span>
410
- <span class="cline-any cline-yes">131x</span>
411
- <span class="cline-any cline-yes">131x</span>
412
- <span class="cline-any cline-yes">131x</span>
413
- <span class="cline-any cline-yes">131x</span>
414
- <span class="cline-any cline-yes">131x</span>
415
- <span class="cline-any cline-yes">131x</span>
416
- <span class="cline-any cline-yes">131x</span>
417
- <span class="cline-any cline-yes">131x</span>
418
- <span class="cline-any cline-yes">131x</span>
419
- <span class="cline-any cline-yes">131x</span>
420
- <span class="cline-any cline-yes">131x</span>
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">321x</span>
424
- <span class="cline-any cline-yes">321x</span>
425
- <span class="cline-any cline-yes">321x</span>
426
- <span class="cline-any cline-yes">321x</span>
427
- <span class="cline-any cline-yes">321x</span>
428
- <span class="cline-any cline-yes">690x</span>
429
- <span class="cline-any cline-yes">690x</span>
430
- <span class="cline-any cline-yes">690x</span>
431
- <span class="cline-any cline-yes">690x</span>
432
- <span class="cline-any cline-yes">690x</span>
433
- <span class="cline-any cline-yes">279x</span>
434
- <span class="cline-any cline-yes">279x</span>
435
- <span class="cline-any cline-yes">690x</span>
436
- <span class="cline-any cline-yes">321x</span>
437
- <span class="cline-any cline-yes">321x</span>
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">197x</span>
441
- <span class="cline-any cline-yes">580x</span>
442
- <span class="cline-any cline-yes">580x</span>
443
- <span class="cline-any cline-yes">580x</span>
444
- <span class="cline-any cline-yes">580x</span>
445
- <span class="cline-any cline-yes">197x</span>
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">197x</span>
457
- <span class="cline-any cline-yes">197x</span>
458
- <span class="cline-any cline-yes">197x</span>
459
- <span class="cline-any cline-yes">197x</span>
460
- <span class="cline-any cline-yes">197x</span>
461
- <span class="cline-any cline-yes">197x</span>
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">131x</span>
475
- <span class="cline-any cline-yes">131x</span>
476
- <span class="cline-any cline-yes">131x</span>
477
- <span class="cline-any cline-yes">131x</span>
478
- <span class="cline-any cline-yes">29x</span>
479
- <span class="cline-any cline-yes">29x</span>
480
- <span class="cline-any cline-yes">29x</span>
481
- <span class="cline-any cline-yes">29x</span>
482
- <span class="cline-any cline-yes">29x</span>
483
- <span class="cline-any cline-yes">29x</span>
484
- <span class="cline-any cline-yes">29x</span>
485
- <span class="cline-any cline-yes">29x</span>
486
- <span class="cline-any cline-yes">102x</span>
487
- <span class="cline-any cline-yes">102x</span>
488
- <span class="cline-any cline-yes">102x</span>
489
- <span class="cline-any cline-yes">102x</span>
490
- <span class="cline-any cline-yes">102x</span>
491
- <span class="cline-any cline-yes">102x</span>
492
- <span class="cline-any cline-yes">102x</span>
493
- <span class="cline-any cline-yes">102x</span>
494
- <span class="cline-any cline-yes">102x</span>
495
- <span class="cline-any cline-yes">102x</span>
496
- <span class="cline-any cline-yes">102x</span>
497
- <span class="cline-any cline-yes">131x</span>
498
- <span class="cline-any cline-yes">148x</span>
499
- <span class="cline-any cline-yes">148x</span>
500
- <span class="cline-any cline-yes">102x</span>
501
- <span class="cline-any cline-yes">102x</span>
502
- <span class="cline-any cline-yes">102x</span>
503
- <span class="cline-any cline-yes">102x</span>
504
- <span class="cline-any cline-yes">102x</span>
505
- <span class="cline-any cline-yes">102x</span>
506
- <span class="cline-any cline-yes">102x</span>
507
- <span class="cline-any cline-yes">102x</span>
508
- <span class="cline-any cline-yes">102x</span>
509
- <span class="cline-any cline-yes">102x</span>
510
- <span class="cline-any cline-yes">102x</span>
511
- <span class="cline-any cline-yes">131x</span>
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">95x</span>
545
+ <span class="cline-any cline-yes">118x</span>
521
546
  <span class="cline-any cline-no">&nbsp;</span>
522
547
  <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-yes">95x</span>
524
- <span class="cline-any cline-yes">95x</span>
525
- <span class="cline-any cline-yes">95x</span>
526
- <span class="cline-any cline-yes">95x</span>
527
- <span class="cline-any cline-yes">95x</span>
528
- <span class="cline-any cline-yes">95x</span>
529
- <span class="cline-any cline-yes">95x</span>
530
- <span class="cline-any cline-yes">95x</span>
531
- <span class="cline-any cline-yes">95x</span>
532
- <span class="cline-any cline-yes">95x</span>
533
- <span class="cline-any cline-yes">95x</span>
534
- <span class="cline-any cline-yes">95x</span>
535
- <span class="cline-any cline-yes">95x</span>
536
- <span class="cline-any cline-yes">95x</span>
537
- <span class="cline-any cline-yes">185x</span>
538
- <span class="cline-any cline-yes">185x</span>
539
- <span class="cline-any cline-yes">95x</span>
540
- <span class="cline-any cline-yes">95x</span>
541
- <span class="cline-any cline-yes">95x</span>
542
- <span class="cline-any cline-yes">95x</span>
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">10x</span>
577
+ <span class="cline-any cline-yes">15x</span>
554
578
  <span class="cline-any cline-no">&nbsp;</span>
555
579
  <span class="cline-any cline-no">&nbsp;</span>
556
- <span class="cline-any cline-yes">10x</span>
557
- <span class="cline-any cline-yes">10x</span>
558
- <span class="cline-any cline-yes">10x</span>
559
- <span class="cline-any cline-yes">10x</span>
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">45x</span>
575
- <span class="cline-any cline-yes">45x</span>
576
- <span class="cline-any cline-yes">45x</span>
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">44x</span>
580
- <span class="cline-any cline-yes">44x</span>
581
- <span class="cline-any cline-yes">44x</span>
582
- <span class="cline-any cline-yes">45x</span>
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">50x</span>
591
- <span class="cline-any cline-yes">50x</span>
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">47x</span>
595
- <span class="cline-any cline-yes">47x</span>
596
- <span class="cline-any cline-yes">41x</span>
597
- <span class="cline-any cline-yes">50x</span>
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">&nbsp;</span>
621
+ <span class="cline-any cline-no">&nbsp;</span>
622
+ <span class="cline-any cline-no">&nbsp;</span>
623
+ <span class="cline-any cline-no">&nbsp;</span>
624
+ <span class="cline-any cline-no">&nbsp;</span>
625
+ <span class="cline-any cline-no">&nbsp;</span>
626
+ <span class="cline-any cline-no">&nbsp;</span>
627
+ <span class="cline-any cline-no">&nbsp;</span>
628
+ <span class="cline-any cline-no">&nbsp;</span>
629
+ <span class="cline-any cline-no">&nbsp;</span>
598
630
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
599
631
  advance,
600
632
  EventFetcher,
601
633
  EventBlock,
602
634
  findCommonAncestorWithSortedEvents,
603
- findUnknownSortedEvents
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
- &nbsp;
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
  &nbsp;
@@ -619,9 +650,18 @@ const withLog = async (label, fn) =&gt; {
619
650
  return resp
620
651
  }
621
652
  &nbsp;
622
- const makeGetBlock = (blocks) =&gt; async (address) =&gt; {
623
- const { cid, bytes } = await withLog(address, () =&gt; blocks.get(address))
624
- return createBlock({ cid, bytes, hasher, codec })
653
+ // should also return a CIDCounter
654
+ export const makeGetBlock = (blocks) =&gt; {
655
+ // const cids = new CIDCounter() // this could be used for proofs of mutations
656
+ const getBlockFn = async (address) =&gt; {
657
+ const { cid, bytes } = await withLog(address, () =&gt; 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
  &nbsp;
627
667
  /**
@@ -632,28 +672,28 @@ const makeGetBlock = (blocks) =&gt; async (address) =&gt; {
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&lt;{ key: string, value: any, del: boolean }&gt;} event - The update event.
635
- * @param {import('./clock').EventLink&lt;import('./crdt').EventData&gt;} head - The head of the event chain.
675
+ * @param {CID[]} head - The head of the event chain.
636
676
  * @param {Array&lt;import('multiformats/block').Block&gt;} additions - A array of additions.
637
677
  * @param {Array&lt;mport('multiformats/block').Block&gt;&gt;} removals - An array of removals.
638
678
  * @returns {Promise&lt;{
639
679
  * root: import('prolly-trees/map').Root,
640
680
  * additions: Map&lt;string, import('multiformats/block').Block&gt;,
641
681
  * removals: Array&lt;string&gt;,
642
- * head: import('./clock').EventLink&lt;import('./crdt').EventData&gt;,
643
- * event: import('./clock').EventLink&lt;import('./crdt').EventData&gt;
682
+ * head: CID[],
683
+ * event: CID[]
644
684
  * }&gt;}
645
685
  */
646
- async function createAndSaveNewEvent (
686
+ async function createAndSaveNewEvent ({
647
687
  inBlocks,
648
- mblocks,
649
- getBlock,
650
688
  bigPut,
651
689
  root,
652
- { key, value, del },
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
  &nbsp;
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
  &nbsp;
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
  &nbsp;
688
729
  const makeGetAndPutBlock = (inBlocks) =&gt; {
689
- const mblocks = new MemoryBlockstore()
690
- const blocks = new MultiBlockFetcher(mblocks, inBlocks)
691
- const getBlock = makeGetBlock(blocks)
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) =&gt; {
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, mblocks, blocks }
743
+ return { getBlock, bigPut, blocks: inBlocks, cids }
703
744
  }
704
745
  &nbsp;
705
746
  const bulkFromEvents = (sorted) =&gt;
@@ -729,15 +770,15 @@ const prollyRootFromAncestor = async (events, ancestor, getBlock) =&gt; {
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('./block').BlockFetcher} blocks Bucket block storage.
773
+ * @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
733
774
  * @param {import('./clock').EventLink&lt;EventData&gt;[]} head Merkle clock head.
734
775
  * @param {string} key The key of the value to put.
735
- * @param {import('./link').AnyLink} value The value to put.
776
+ * @param {CID} value The value to put.
736
777
  * @param {object} [options]
737
778
  * @returns {Promise&lt;Result&gt;}
738
779
  */
739
780
  export async function put (inBlocks, head, event, options) {
740
- const { getBlock, bigPut, mblocks, blocks } = makeGetAndPutBlock(inBlocks)
781
+ const { getBlock, bigPut, blocks } = makeGetAndPutBlock(inBlocks)
741
782
  &nbsp;
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, mblocks, getBlock, bigPut, root, event, head, Array.from(additions.values()))
791
+ return createAndSaveNewEvent({ inBlocks, bigPut, root, event, head, additions: Array.from(additions.values()) })
751
792
  }
752
793
  &nbsp;
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 } } }) =&gt; ({ key, value }))))
756
799
  const prollyRootNode = await prollyRootFromAncestor(events, ancestor, getBlock)
757
800
  &nbsp;
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
- &nbsp;
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
  &nbsp;
779
820
  /**
780
821
  * Determine the effective prolly root given the current merkle clock head.
781
822
  *
782
- * @param {import('./block').BlockFetcher} blocks Bucket block storage.
823
+ * @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
783
824
  * @param {import('./clock').EventLink&lt;EventData&gt;[]} 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('emphemeral blocks', newBlocks.map((nb) =&gt; nb.cid.toString()))
838
+ // const prollyRootBlock = await newProllyRootNode.block
839
+ // console.log('newBlocks', newBlocks.map((nb) =&gt; nb.cid.toString()))
799
840
  // todo maybe these should go to a temp blockstore?
800
841
  await doTransaction('root', inBlocks, async (transactionBlockstore) =&gt; {
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
- &nbsp;
808
- return newProllyRootNode // .block).cid // todo return live object not cid
848
+ return { cids: events.cids, node: newProllyRootNode }
809
849
  }
810
850
  &nbsp;
811
851
  /**
812
852
  * Get the list of events not known by the `since` event
813
- * @param {import('./block').BlockFetcher} blocks Bucket block storage.
853
+ * @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
814
854
  * @param {import('./clock').EventLink&lt;EventData&gt;[]} head Merkle clock head.
815
855
  * @param {import('./clock').EventLink&lt;EventData&gt;} since Event to compare against.
816
856
  * @returns {Promise&lt;import('./clock').EventLink&lt;EventData&gt;[]&gt;}
@@ -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 findUnknownSortedEvents(
824
- blocks,
825
- sinceHead,
826
- await findCommonAncestorWithSortedEvents(blocks, sinceHead)
827
- )
828
- return unknownSorted3.map(({ value: { data } }) =&gt; data)
863
+ const { cids, events: unknownSorted3 } = await findEventsToSync(blocks, sinceHead)
864
+ return { clockCIDs: cids, result: unknownSorted3.map(({ value: { data } }) =&gt; data) }
829
865
  }
830
866
  &nbsp;
831
867
  /**
832
868
  *
833
- * @param {import('./block').BlockFetcher} blocks Bucket block storage.
869
+ * @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
834
870
  * @param {import('./clock').EventLink&lt;EventData&gt;[]} head Merkle clock head.
835
871
  *
836
872
  * @returns {Promise&lt;import('./prolly').Entry[]&gt;}
@@ -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 }) =&gt; ({ 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 }) =&gt; ({ key, value })) }
848
884
  }
849
885
  &nbsp;
850
886
  /**
851
- * @param {import('./block').BlockFetcher} blocks Bucket block storage.
887
+ * @param {import('../test/block.js').BlockFetcher} blocks Bucket block storage.
852
888
  * @param {import('./clock').EventLink&lt;EventData&gt;[]} 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
+ &nbsp;
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
  &nbsp;</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-03-06T23:55:04.435Z
919
+ at 2023-04-01T18:16:45.716Z
872
920
  </div>
873
921
  <script src="prettify.js"></script>
874
922
  <script>