@peerbit/shared-log 9.0.10 → 9.1.0

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.
Files changed (44) hide show
  1. package/dist/benchmark/index.js +2 -2
  2. package/dist/benchmark/index.js.map +1 -1
  3. package/dist/benchmark/replication.js +3 -3
  4. package/dist/benchmark/replication.js.map +1 -1
  5. package/dist/src/index.d.ts +46 -31
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +426 -229
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/pid.d.ts.map +1 -1
  10. package/dist/src/pid.js +20 -19
  11. package/dist/src/pid.js.map +1 -1
  12. package/dist/src/ranges.d.ts +13 -3
  13. package/dist/src/ranges.d.ts.map +1 -1
  14. package/dist/src/ranges.js +207 -335
  15. package/dist/src/ranges.js.map +1 -1
  16. package/dist/src/replication-domain-hash.d.ts +5 -0
  17. package/dist/src/replication-domain-hash.d.ts.map +1 -0
  18. package/dist/src/replication-domain-hash.js +30 -0
  19. package/dist/src/replication-domain-hash.js.map +1 -0
  20. package/dist/src/replication-domain-time.d.ts +14 -0
  21. package/dist/src/replication-domain-time.d.ts.map +1 -0
  22. package/dist/src/replication-domain-time.js +59 -0
  23. package/dist/src/replication-domain-time.js.map +1 -0
  24. package/dist/src/replication-domain.d.ts +33 -0
  25. package/dist/src/replication-domain.d.ts.map +1 -0
  26. package/dist/src/replication-domain.js +6 -0
  27. package/dist/src/replication-domain.js.map +1 -0
  28. package/dist/src/replication.d.ts +10 -8
  29. package/dist/src/replication.d.ts.map +1 -1
  30. package/dist/src/replication.js +64 -46
  31. package/dist/src/replication.js.map +1 -1
  32. package/dist/src/role.d.ts +2 -1
  33. package/dist/src/role.d.ts.map +1 -1
  34. package/dist/src/role.js +6 -5
  35. package/dist/src/role.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/index.ts +604 -310
  38. package/src/pid.ts +20 -19
  39. package/src/ranges.ts +291 -371
  40. package/src/replication-domain-hash.ts +43 -0
  41. package/src/replication-domain-time.ts +85 -0
  42. package/src/replication-domain.ts +50 -0
  43. package/src/replication.ts +50 -46
  44. package/src/role.ts +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACN,GAAG,EACH,cAAc,EACd,OAAO,EAKP,cAAc,EACd,GAAG,EACH,EAAE,EAEF,aAAa,EACb,IAAI,EACJ,aAAa,EACb,WAAW,EACX,OAAO,EACP,gBAAgB,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACN,iBAAiB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,eAAe,GAAG,CACvB,KAAuC,EACvC,KAAa,EACb,YAAoB,EACpB,OAAgB,EAChB,GAAW,EACX,OAEC,EAC0C,EAAE;IAC7C,kHAAkH;IAElH,IAAI,OAAO,GAAG;QACb,IAAI,EAAE,CAAC;YACN,IAAI,GAAG,CAAC;gBACP,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,KAAK,EAAE,KAAK;iBACZ,CAAC;gBACF,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,MAAM;oBACX,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,KAAK;iBACZ,CAAC;aACF,CAAC;YACF,IAAI,GAAG,CAAC;gBACP,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,OAAO,CAAC,WAAW;oBAC5B,KAAK,EAAE,KAAK;iBACZ,CAAC;gBACF,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,MAAM;oBACX,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,KAAK;iBACZ,CAAC;aACF,CAAC;SACF,CAAC;QACF,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YACxD,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC;SACjC,CAAC;KACF,CAAC;IACF,OAAO,OAAO,CACb,KAAK,EACL,IAAI,aAAa,CAAC;QACjB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO,EAAE,IAAI;QACnB,KAAK,EAAE,UAAU;KACjB,CAAC,CACF,CAAC;IACF;;;;;+CAK2C;AAC5C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAClB,SAA4B,EAC5B,KAAuC,EACvC,KAAa,EACb,YAAoB,EACpB,OAAgB,EAChB,GAAW,EACX,aAAsB,EACqB,EAAE;IAC7C,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,QAAiB,EAAE,EAAE;QACtD,IAAI,OAAgB,CAAC;QACrB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG;gBACT,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,MAAM;oBACX,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;oBACtD,KAAK,EAAE,CAAC;iBACR,CAAC;gBACF,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,WAAW;oBAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;oBAC/D,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC;iBACjC,CAAC;aACF,CAAC;QACH,CAAC;aAAM,CAAC;YACP,OAAO,GAAG;gBACT,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;oBAC5D,KAAK,EAAE,CAAC;iBACR,CAAC;gBACF,IAAI,cAAc,CAAC;oBAClB,GAAG,EAAE,WAAW;oBAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;oBAC/D,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG,YAAY,CAAC;iBACjC,CAAC;aACF,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CACX,IAAI,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CACxE,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACX,IAAI,cAAc,CAAC;gBAClB,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,KAAK,EAAE,iBAAiB,CAAC,SAAS;aAClC,CAAC,CACF,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CACvB,KAAK,EACL,IAAI,aAAa,CAAC;QACjB,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;QAClC,IAAI,EACH,SAAS,KAAK,OAAO;YACpB,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAChD,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACnD,CAAC,CACF,CAAC;IACF,MAAM,eAAe,GAAG,OAAO,CAC9B,KAAK,EACL,IAAI,aAAa,CAAC;QACjB,KAAK,EAAE,aAAa,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/D,IAAI,EACH,SAAS,KAAK,OAAO;YACpB,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAChD,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;KACnD,CAAC,CACF,CAAC;IAEF,OAAO,YAAY,CAAC,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACpC,KAAuC,EACvC,KAAgC,EAC/B,EAAE;IACH,OAAO,CACN,CAAC,MAAM,KAAK,CAAC,KAAK,CACjB,IAAI,aAAa,CAAC;QACjB,KAAK,EAAE;YACN,IAAI,EAAE,CAAC;gBACN,IAAI,GAAG,CAAC;oBACP,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,QAAQ;wBACb,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;qBACnB,CAAC;oBACF,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,OAAO,CAAC,cAAc;wBAC/B,KAAK,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;iBACF,CAAC;gBACF,IAAI,GAAG,CAAC;oBACP,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,QAAQ;wBACb,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;qBACnB,CAAC;oBACF,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,OAAO,CAAC,cAAc;wBAC/B,KAAK,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;iBACF,CAAC;aACF,CAAC;YACF,IAAI,EAAE,CAAC;gBACN,IAAI,GAAG,CAAC;oBACP,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,QAAQ;wBACb,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;qBACnB,CAAC;oBACF,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,OAAO,CAAC,cAAc;wBAC/B,KAAK,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;iBACF,CAAC;gBACF,IAAI,GAAG,CAAC;oBACP,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,QAAQ;wBACb,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;qBACnB,CAAC;oBACF,IAAI,cAAc,CAAC;wBAClB,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,OAAO,CAAC,cAAc;wBAC/B,KAAK,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC;iBACF,CAAC;aACF,CAAC;YACF,IAAI,WAAW,CAAC;gBACf,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;YACF,kFAAkF;YAClF,IAAI,GAAG,CACN,IAAI,cAAc,CAAC;gBAClB,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,KAAK,CAAC,EAAE;aACf,CAAC,CACF;SACD;KACD,CAAC,CACF,CAAC,GAAG,CAAC,CACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,IAAY,EACZ,EAAU,EACV,SAAwC,EACxC,GAAG,GAAG,OAAO,EACZ,EAAE;IACH,+EAA+E;IAC/E,yEAAyE;IACzE,8FAA8F;IAC9F,uEAAuE;IAEvE,sEAAsE;IACtE,gFAAgF;IAEhF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACpB,SAAqD,EACrD,KAAa,EACb,SAAwC,EACvC,EAAE;IACH,IAAI,MAAM,GAMJ,EAAE,CAAC;IAET,OAAO;QACN,IAAI,EAAE,KAAK,EACV,KAAa,EACwC,EAAE;YACvD,IAAI,OAAO,GAA8C;gBACxD,IAAI,EAAE,CAAC,EAAE,OAAO;gBAChB,OAAO,EAAE,EAAE;aACX,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAClC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACnB,CAAC;gBACD,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;oBAChE,IAAI,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;oBAEtB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;wBAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;wBAEzB,IAAI,IAAY,CAAC;wBACjB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CACd,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAC7C,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAC3C,CAAC;wBACH,CAAC;6BAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;4BAClC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;wBACtD,CAAC;6BAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;4BAClC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;wBACpD,CAAC;6BAAM,CAAC;4BACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;wBACtC,CAAC;wBAED,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,CAAC;gBACF,CAAC;YACF,CAAC;YAED,6DAA6D;YAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;gBACtB,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,OAAO,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;4BAChC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;4BAC3B,YAAY,GAAG,CAAC,CAAC;wBAClB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzB,MAAM;gBACP,CAAC;gBAED,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrD,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;QACF,CAAC;QACD,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,OAAO,GAA+C,EAAE,CAAC;YAC7D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAClC,IAAI,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACxB,KAAuC,EACvC,KAAa,EACb,OAAe,EACf,GAAW,EACX,kBAA2B,EAC3B,kBAA2B,EAC1B,EAAE;IACH,MAAM,YAAY,GAAG,UAAU,CAC9B,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,kBAAkB,CAClB,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAC9B,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,kBAAkB,CAClB,CAAC;IACF,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAErE,OAAO,gBAAgB,CACtB,UAAU,EACV,YAAY,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAC5D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EACpC,OAAe,EACf,KAAuC,EACvC,SAAsE,EACtE,KAAU,EACV,GAAW,EACX,OAAsB,GAAG,EAAE,CAAC,IAAI,EAC/B,EAAE;IACH,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI,EAAE,EAAE,CAAC;QACZ,OAAO;IACR,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,YAAY,CAClC,CAAC,YAAY,EAAE,YAAY,CAAC,EAC5B,KAAK,EACL,SAAS,CACT,CAAC;IACF,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE,EAAE,CAAC;gBACZ,OAAO;YACR,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAA8B,EAC9B,GAAW,EACX,MAAc,EACb,EAAE;IACH,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC9B,MAAW,EACX,KAAuC,EACvC,MAAc,EACd,OAAe,EACd,EAAE;IACH,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IAEnC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAExB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,qBAAqB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;QAEpE,iDAAiD;QACjD,MAAM,uBAAuB,CAC5B,OAAO,EACP,KAAK,EACL,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,EAAE,CAAC;gBACP,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,EACD,KAAK,EACL,GAAG,EACH,GAAG,EAAE;YACJ,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACb,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CACD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAkD,EAAE,EAAE;IAC7E,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACvC,WAAmB,CAAC,+BAA+B,EAClD,EAAE;IACH,2DAA2D,CAAC,wBAAwB;IAEpF,sBAAsB;IACtB,uFAAuF;IACvF,kFAAkF;IAClF,+BAA+B;IAE/B,IAAI,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;IAC3D,OAAO,kBAAkB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC/B,KAAuC,EACvC,OAAe,EACf,KAAyC,EACzC,kBAA0B,EAC1B,gBAAwB,OAAO,EACR,EAAE;IACzB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CACrE,KAAK,EACL,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,IAAI,CAAC,GAAG,EAAE,EACV,aAAa,CACb,CAAC;IAEF,IAAI,OAAO,GAAgC,EAAE,CAAC;IAE9C,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAEtB,MAAM,YAAY,GAAG,WAAW,IAAI,aAAa,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,qBAAqB,GAAG,KAAK,EAClC,YAAoB,EACpB,OAAe,EACd,EAAE;QACH,IAAI,IAAI,GAAG,MAAM,QAAQ,CACxB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;YACxD,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;SAChE,CAAC,CACF,CAAC,CAAC,wCAAwC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,YAAoB,EAAE,OAAe,EAAE,EAAE;QACxE,gCAAgC;QAChC,IAAI,IAAI,GAAG,MAAM,QAAQ,CACxB,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAClE,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,EACxB,YAAoB,EACpB,OAAe,EACiC,EAAE;QAClD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,MAAM,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,kBAAkB;IAClB,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,WAAW,GAAG,IAAI,CAAC;YACnB,aAAa,IAAI,OAAO,GAAG,IAAI,CAAC;YAChC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,aAAa,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtC,CAAC;IACF,CAAC,CAAC;IACF,SAAS,CAAC,aAAa,CAAC,CAAC;IAEzB,IAAI,oBAAoB,GAAG,aAAa,CAAC;IACzC,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhC,OACC,oBAAoB,GAAG,kBAAkB,IAAI,mDAAmD;QAChG,aAAa,IAAI,OAAO,CAAC,mDAAmD;MAC3E,CAAC;QACF,IAAI,aAAa,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC7D,4BAA4B;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,KAAK,CAAC;YAChB,aAAa,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YACnD,uBAAuB;QACxB,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,MAAM;QACP,CAAC;QAED,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM;QACP,CAAC;QACD,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,cAAc,GAAG,aAAa,CAAC;QAEnC,SAAS,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,MAAM,GACT,cAAc,GAAG,kBAAkB;YACnC,aAAa,IAAI,kBAAkB,CAAC;QAErC,IACC,CAAC,MAAM;YACP,aAAa,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CACP,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EAChD,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAC9C;gBACA,IAAI,CAAC,GAAG,CACP,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EACnD,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CACjD,EACD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAC;YAC1E,MAAM;QACP,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACb,oBAAoB,GAAG,aAAa,CAAC;QACtC,CAAC;QAED,YAAY,GAAG,YAAY;YAC1B,CAAC,CAAC,WAAW;gBACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;gBACrC,CAAC,CAAC,OAAO,CAAC,IAAI;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,KAAK,YAAY,aAAa,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,SAAwB,EACxB,KAAuC,EACvC,OAAe,EACf,GAAW,EACV,EAAE;IACH,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAC7B,IAAI,aAAa,CAAC;QACjB,KAAK,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,KAAK,EAAE,CAAC;KACR,CAAC,CACF,CAAC;IACF,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAC7B,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAChE,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,GAAG,OAAO,CAAC;YAChB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,KAAuC,EACvC,KAAqD,EACrD,kBAA0B,EAC1B,OAAe,EACf,GAAW,EACX,aAAqB,EACpB,EAAE;IACH,6BAA6B;IAC7B,IAAI,SAAS,GAA0C,SAAS,CAAC;IACjE,IAAI,aAAa,GAAuB,SAAS,CAAC;IAElD,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjE,aAAa,GAAG,KAAK,CAAC;QACtB,SAAS,GAAG,MAAM,eAAe,CAChC,KAAK,EACL,aAAa,EACb,OAAO,EACP,GAAG,EACH,KAAK,EACL,IAAI,CACJ,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACpC,kCAAkC;QAClC,SAAS,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,iBAAiB;YACjB,MAAM,aAAa,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACP,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;QAClC,CAAC;IACF,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACP,MAAM,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,WAAW,GAAG,aAAa,GAAG,kBAAkB,CAAC;IACrD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC3B,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IAC3C,CAAC;IAED,oIAAoI;IACpI,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,SAAS,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACtC,sBAAsB,IAAI,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;IAC5E,CAAC;SAAM,CAAC;QACP,sBAAsB,IAAI,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;IAC5D,CAAC;IAED,IACC,SAAS,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM;QAC3C,sBAAsB,GAAG,kBAAkB,EAC1C,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,OAAO;QACN,SAAS;QACT,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;KACpC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAuC,EACvC,KAAa,EACb,OAAe,EACf,GAAW,EACX,kBAA2B,EAC3B,kBAA2B,EAC1B,EAAE;IACH,OAAO,QAAQ,CACd,gBAAgB,CACf,KAAK,EACL,KAAK,EACL,OAAO,EACP,GAAG,EACH,kBAAkB,EAClB,kBAAkB,CAClB,CACD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ReplicationDomain } from "./replication-domain.js";
2
+ export declare const hashToU32: (hash: Uint8Array) => number;
3
+ export type ReplicationDomainHash = ReplicationDomain<undefined, any>;
4
+ export declare const createReplicationDomainHash: () => ReplicationDomainHash;
5
+ //# sourceMappingURL=replication-domain-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain-hash.d.ts","sourceRoot":"","sources":["../../src/replication-domain-hash.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,iBAAiB,EAEtB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,SAAS,SAAU,UAAU,WAKzC,CAAC;AAiBF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACtE,eAAO,MAAM,2BAA2B,EAAE,MAAM,qBAU/C,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
2
+ import { sha256 } from "@peerbit/crypto";
3
+ import {} from "./replication-domain.js";
4
+ export const hashToU32 = (hash) => {
5
+ const seedNumber = new BinaryReader(hash.subarray(hash.length - 4, hash.length)).u32();
6
+ return seedNumber;
7
+ };
8
+ const hashTransformer = async (entry) => {
9
+ // For a fixed set or members, the choosen leaders will always be the same (address invariant)
10
+ // This allows for that same content is always chosen to be distributed to same peers, to remove unecessary copies
11
+ // Convert this thing we wan't to distribute to 8 bytes so we get can convert it into a u64
12
+ // modulus into an index
13
+ const utf8writer = new BinaryWriter();
14
+ utf8writer.string(entry.meta.gid);
15
+ const seed = await sha256(utf8writer.finalize());
16
+ // convert hash of slot to a number
17
+ return hashToU32(seed);
18
+ };
19
+ export const createReplicationDomainHash = () => {
20
+ return {
21
+ type: "hash",
22
+ fromEntry: hashTransformer,
23
+ fromArgs: async (args, log) => {
24
+ return {
25
+ offset: log.node.identity.publicKey,
26
+ };
27
+ },
28
+ };
29
+ };
30
+ //# sourceMappingURL=replication-domain-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain-hash.js","sourceRoot":"","sources":["../../src/replication-domain-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAIN,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,IAAI,YAAY,CAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAC3C,CAAC,GAAG,EAAE,CAAC;IACR,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAiC,KAAK,EAC1D,KAA8B,EAC7B,EAAE;IACH,8FAA8F;IAC9F,kHAAkH;IAElH,2FAA2F;IAC3F,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;IACtC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEjD,mCAAmC;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAgC,GAAG,EAAE;IAC5E,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,KAAK,EAAE,IAAe,EAAE,GAAQ,EAAE,EAAE;YAC7C,OAAO;gBACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type ReplicationDomain, type ReplicationDomainMapper, type u32 } from "./replication-domain.js";
2
+ type TimeUnit = "seconds" | "milliseconds" | "microseconds" | "nanoseconds";
3
+ export declare const fromEntry: (origin: Date, unit?: TimeUnit) => ReplicationDomainMapper<any>;
4
+ type TimeRange = {
5
+ from: number;
6
+ to: number;
7
+ };
8
+ export type ReplicationDomainTime = ReplicationDomain<TimeRange, any> & {
9
+ fromTime: (time: number | Date) => u32;
10
+ fromDuration: (duration: number) => u32;
11
+ };
12
+ export declare const createReplicationDomainTime: (origin: Date, unit?: TimeUnit) => ReplicationDomainTime;
13
+ export {};
14
+ //# sourceMappingURL=replication-domain-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain-time.d.ts","sourceRoot":"","sources":["../../src/replication-domain-time.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EACR,MAAM,yBAAyB,CAAC;AAEjC,KAAK,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;AAe5E,eAAO,MAAM,SAAS,WACb,IAAI,SACN,QAAQ,KACZ,uBAAuB,CAAC,GAAG,CAS7B,CAAC;AAEF,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,GAAG,CAAC;IACvC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAC/B,IAAI,SACN,QAAQ,KACZ,qBAsCF,CAAC"}
@@ -0,0 +1,59 @@
1
+ import {} from "./replication-domain.js";
2
+ const scalarNanoToUnit = {
3
+ seconds: BigInt(1e9),
4
+ milliseconds: BigInt(1e6),
5
+ microseconds: BigInt(1e3),
6
+ nanoseconds: BigInt(1),
7
+ };
8
+ const scalarMilliToUnit = {
9
+ seconds: 1e3,
10
+ milliseconds: 1,
11
+ microseconds: 1e-3,
12
+ nanoseconds: 1e-6,
13
+ };
14
+ export const fromEntry = (origin, unit = "milliseconds") => {
15
+ const scalar = scalarNanoToUnit[unit];
16
+ const originTime = +origin / scalarMilliToUnit[unit];
17
+ const fn = (entry) => {
18
+ const cursor = entry.meta.clock.timestamp.wallTime / scalar;
19
+ return Math.round(Number(cursor) - originTime);
20
+ };
21
+ return fn;
22
+ };
23
+ export const createReplicationDomainTime = (origin, unit = "milliseconds") => {
24
+ const originScaled = +origin * scalarMilliToUnit[unit];
25
+ const fromMilliToUnit = scalarMilliToUnit[unit];
26
+ const fromTime = (time) => {
27
+ return ((typeof time === "number" ? time : +time * fromMilliToUnit) - originScaled);
28
+ };
29
+ const fromDuration = (duration) => {
30
+ return duration;
31
+ };
32
+ return {
33
+ type: "time",
34
+ fromTime,
35
+ fromDuration,
36
+ fromEntry: fromEntry(origin, unit),
37
+ fromArgs: async (args, log) => {
38
+ if (!args) {
39
+ return {
40
+ offset: log.node.identity.publicKey,
41
+ };
42
+ }
43
+ return {
44
+ offset: fromTime(args.from),
45
+ length: fromDuration(args.to - args.from),
46
+ };
47
+ /* roleAge = roleAge ?? (await log.getDefaultMinRoleAge());
48
+ const ranges = await getCoverSet(
49
+ log.replicationIndex,
50
+ roleAge,
51
+ fromTime(args.from),
52
+ fromDuration(args.to - args.from),
53
+ undefined,
54
+ );
55
+ return [...ranges]; */
56
+ },
57
+ };
58
+ };
59
+ //# sourceMappingURL=replication-domain-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain-time.js","sourceRoot":"","sources":["../../src/replication-domain-time.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,MAAM,yBAAyB,CAAC;AAIjC,MAAM,gBAAgB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACtB,CAAC;AACF,MAAM,iBAAiB,GAAG;IACzB,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,MAAY,EACZ,OAAiB,cAAc,EACA,EAAE;IACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,CAAC,KAA8B,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC;IACF,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,MAAY,EACZ,OAAiB,cAAc,EACP,EAAE;IAC1B,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAC,IAAmB,EAAO,EAAE;QAC7C,OAAO,CACN,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,YAAY,CAC1E,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAO,EAAE;QAC9C,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ;QACR,YAAY;QACZ,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;QAClC,QAAQ,EAAE,KAAK,EAAE,IAA2B,EAAE,GAAG,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO;oBACN,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;iBACnC,CAAC;YACH,CAAC;YACD,OAAO;gBACN,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3B,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;aACzC,CAAC;YACF;;;;;;;;sCAQuB;QACxB,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { PublicSignKey } from "@peerbit/crypto";
2
+ import { type Index } from "@peerbit/indexer-interface";
3
+ import type { Entry, ShallowEntry } from "@peerbit/log";
4
+ import type { ReplicationLimits, ReplicationRangeIndexable } from "./replication.js";
5
+ export type u32 = number;
6
+ export type ReplicationDomainMapper<T> = (entry: Entry<T> | ShallowEntry) => Promise<u32> | u32;
7
+ export type Log = {
8
+ replicas: ReplicationLimits;
9
+ node: {
10
+ identity: {
11
+ publicKey: PublicSignKey;
12
+ };
13
+ };
14
+ syncInFlight: Map<string, Map<string, {
15
+ timestamp: number;
16
+ }>>;
17
+ replicationIndex: Index<ReplicationRangeIndexable>;
18
+ getDefaultMinRoleAge: () => Promise<number>;
19
+ };
20
+ export type ReplicationDomainCoverSet<Args> = (log: Log, roleAge: number | undefined, args: Args) => Promise<string[]> | string[];
21
+ type CoverRange = {
22
+ offset: number | PublicSignKey;
23
+ length?: number;
24
+ };
25
+ export type ReplicationDomain<Args, T> = {
26
+ type: string;
27
+ fromEntry: ReplicationDomainMapper<T>;
28
+ fromArgs: (args: Args | undefined, log: Log) => Promise<CoverRange> | CoverRange;
29
+ };
30
+ export declare const uniformToU32: (cursor: number) => number;
31
+ export type ExtractDomainArgs<T> = T extends ReplicationDomain<infer Args, any> ? Args : never;
32
+ export {};
33
+ //# sourceMappingURL=replication-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain.d.ts","sourceRoot":"","sources":["../../src/replication-domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACX,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AACzB,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CACxC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,KAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAExB,MAAM,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE;QACL,QAAQ,EAAE;YACT,SAAS,EAAE,aAAa,CAAC;SACzB,CAAC;KACF,CAAC;IACF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC9D,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnD,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,yBAAyB,CAAC,IAAI,IAAI,CAC7C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,IAAI,KACN,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;AAElC,KAAK,UAAU,GAAG;IACjB,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,CACT,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,GAAG,EAAE,GAAG,KACJ,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,MAAM,WAE1C,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC9B,CAAC,SAAS,iBAAiB,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC"}
@@ -0,0 +1,6 @@
1
+ import {} from "@peerbit/indexer-interface";
2
+ import { MAX_U32 } from "./role.js";
3
+ export const uniformToU32 = (cursor) => {
4
+ return cursor * MAX_U32;
5
+ };
6
+ //# sourceMappingURL=replication-domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-domain.js","sourceRoot":"","sources":["../../src/replication-domain.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,4BAA4B,CAAC;AAMxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;IAC9C,OAAO,MAAM,GAAG,OAAO,CAAC;AACzB,CAAC,CAAC"}
@@ -7,8 +7,8 @@ export type ReplicationLimits = {
7
7
  max?: MinReplicas;
8
8
  };
9
9
  export declare enum ReplicationIntent {
10
- Explicit = 0,
11
- Automatic = 1
10
+ NonStrict = 0,// indicates that the segment will be replicated and nearby data might be replicated as well
11
+ Strict = 1
12
12
  }
13
13
  export declare const getSegmentsFromOffsetAndRange: (offset: number, factor: number) => [[number, number], [number, number]];
14
14
  export declare class ReplicationRange {
@@ -16,11 +16,13 @@ export declare class ReplicationRange {
16
16
  timestamp: bigint;
17
17
  private _offset;
18
18
  private _factor;
19
+ mode: ReplicationIntent;
19
20
  constructor(properties: {
20
21
  id: Uint8Array;
21
22
  offset: number;
22
23
  factor: number;
23
24
  timestamp: bigint;
25
+ mode: ReplicationIntent;
24
26
  });
25
27
  get factor(): number;
26
28
  get offset(): number;
@@ -35,12 +37,13 @@ export declare class ReplicationRangeIndexable {
35
37
  start2: number;
36
38
  end2: number;
37
39
  width: number;
38
- replicationIntent: ReplicationIntent;
40
+ mode: ReplicationIntent;
39
41
  constructor(properties: {
40
42
  id?: Uint8Array;
43
+ normalized?: boolean;
41
44
  offset: number;
42
45
  length: number;
43
- replicationIntent?: ReplicationIntent;
46
+ mode?: ReplicationIntent;
44
47
  timestamp?: bigint;
45
48
  } & ({
46
49
  publicKeyHash: string;
@@ -77,15 +80,15 @@ export declare class ResponseRoleMessage extends TransportMessage {
77
80
  constructor(properties: {
78
81
  role: Observer | Replicator;
79
82
  });
80
- toReplicationInfoMessage(): ResponseReplicationInfoMessage;
83
+ toReplicationInfoMessage(): AllReplicatingSegmentsMessage;
81
84
  }
82
- export declare class ResponseReplicationInfoMessage extends TransportMessage {
85
+ export declare class AllReplicatingSegmentsMessage extends TransportMessage {
83
86
  segments: ReplicationRange[];
84
87
  constructor(properties: {
85
88
  segments: ReplicationRange[];
86
89
  });
87
90
  }
88
- export declare class StartedReplicating extends TransportMessage {
91
+ export declare class AddedReplicationSegmentMessage extends TransportMessage {
89
92
  segments: ReplicationRange[];
90
93
  constructor(properties: {
91
94
  segments: ReplicationRange[];
@@ -115,6 +118,5 @@ export declare const maxReplicas: (log: SharedLog, entries: {
115
118
  data?: Uint8Array;
116
119
  };
117
120
  }>) => number;
118
- export declare const hashToUniformNumber: (hash: Uint8Array) => number;
119
121
  export {};
120
122
  //# sourceMappingURL=replication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAuB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,KAAK,KAAK,EAAM,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAW,QAAQ,EAAE,UAAU,EAAoB,MAAM,WAAW,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,GAAG,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAExE,oBAAY,iBAAiB;IAC5B,SAAS,IAAI,CAAE,4FAA4F;IAC3G,MAAM,IAAI;CACV;AAED,eAAO,MAAM,6BAA6B,WACjC,MAAM,UACN,MAAM,KACZ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAUrC,CAAC;AAEF,qBACa,gBAAgB;IAE5B,OAAO,CAAC,EAAE,CAAa;IAGvB,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,OAAO,CAAS;IAGxB,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,UAAU,EAAE;QACvB,EAAE,EAAE,UAAU,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,iBAAiB,CAAC;KACxB;IASD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2BAA2B,CAAC,GAAG,EAAE,aAAa,GAAG,yBAAyB;CAU1E;AAED,qBAAa,yBAAyB;IAErC,EAAE,EAAE,UAAU,CAAC;IAGf,IAAI,EAAE,MAAM,CAAC;IAGb,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,EAAE,iBAAiB,CAAC;gBAGvB,UAAU,EAAE;QACX,EAAE,CAAC,EAAE,UAAU,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,iBAAiB,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC;IAmB/D,OAAO,CAAC,SAAS;IA2BjB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAOtB,QAAQ,CAAC,KAAK,EAAE,yBAAyB,EAAE,UAAU,UAAO,GAAG,OAAO;IAetE,kBAAkB;IAUlB,UAAU,CAAC,KAAK,EAAE,MAAM;IASxB,IAAI,OAAO,YAEV;IAED,IAAI,eAAe,WAElB;IAED,MAAM,CAAC,KAAK,EAAE,yBAAyB;IAkBvC,QAAQ;CAQR;AAED,UAAU,SAAS;IAClB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED,qBAAa,WAAW;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM;CAGhC;AAED,qBACa,gBAAiB,SAAQ,WAAW;IAEhD,MAAM,EAAE,MAAM,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;CAGjC;AAED,qBACa,6BAA8B,SAAQ,gBAAgB;;CAIlE;AAGD,qBACa,mBAAoB,SAAQ,gBAAgB;IAExD,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAEhB,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE;IAKvD,wBAAwB,IAAI,6BAA6B;CAgBzD;AAED,qBACa,6BAA8B,SAAQ,gBAAgB;IAElE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;gBAEjB,UAAU,EAAE;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE;CAIxD;AAED,qBACa,8BAA+B,SAAQ,gBAAgB;IAEnE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;gBAEjB,UAAU,EAAE;QAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;KAAE;CAIxD;AAED,qBACa,kBAAmB,SAAQ,gBAAgB;IAEvD,UAAU,EAAE,UAAU,EAAE,CAAC;gBAEb,UAAU,EAAE;QAAE,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE;CAIpD;AAiBD,eAAO,MAAM,cAAc,gBAAiB,WAAW,KAAG,UAEzD,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAG3B;AACD,eAAO,MAAM,cAAc,UAAW;IACrC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;CAC5B,KAAG,WAKH,CAAC;AAEF,eAAO,MAAM,WAAW,QAClB,SAAS,WAEX;IAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,EAAE,GACjC,gBAAgB,CAAC;IAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,CAAC,WAUpD,CAAC"}
@@ -7,44 +7,46 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { BinaryReader, deserialize, field, option, serialize, variant, vec, } from "@dao-xyz/borsh";
10
+ import { deserialize, field, option, serialize, variant, vec, } from "@dao-xyz/borsh";
11
11
  import { PublicSignKey, equals, randomBytes } from "@peerbit/crypto";
12
12
  import { id } from "@peerbit/indexer-interface";
13
13
  import { TransportMessage } from "./message.js";
14
- import { Observer, Replicator, Role, SEGMENT_COORDINATE_SCALE, } from "./role.js";
14
+ import { MAX_U32, Observer, Replicator, Role, scaleToU32 } from "./role.js";
15
15
  export var ReplicationIntent;
16
16
  (function (ReplicationIntent) {
17
- ReplicationIntent[ReplicationIntent["Explicit"] = 0] = "Explicit";
18
- ReplicationIntent[ReplicationIntent["Automatic"] = 1] = "Automatic";
17
+ ReplicationIntent[ReplicationIntent["NonStrict"] = 0] = "NonStrict";
18
+ ReplicationIntent[ReplicationIntent["Strict"] = 1] = "Strict";
19
19
  })(ReplicationIntent || (ReplicationIntent = {}));
20
20
  export const getSegmentsFromOffsetAndRange = (offset, factor) => {
21
21
  let start1 = offset;
22
22
  let end1Unscaled = offset + factor; // only add factor if it is not 1 to prevent numerical issues (like (0.9 + 1) % 1 => 0.8999999)
23
- let end1 = Math.min(end1Unscaled, 1);
23
+ let end1 = Math.min(end1Unscaled, MAX_U32);
24
24
  return [
25
25
  [start1, end1],
26
- end1Unscaled > 1
27
- ? [0, (factor !== 1 ? offset + factor : offset) % 1]
26
+ end1Unscaled > MAX_U32
27
+ ? [0, (factor !== MAX_U32 ? offset + factor : offset) % MAX_U32]
28
28
  : [start1, end1],
29
29
  ];
30
30
  };
31
- export class ReplicationRange {
31
+ let ReplicationRange = class ReplicationRange {
32
32
  id;
33
33
  timestamp;
34
34
  _offset;
35
35
  _factor;
36
+ mode;
36
37
  constructor(properties) {
37
- const { id, offset, factor, timestamp } = properties;
38
+ const { id, offset, factor, timestamp, mode } = properties;
38
39
  this.id = id;
39
- this._offset = Math.round(offset * SEGMENT_COORDINATE_SCALE);
40
- this._factor = Math.round(factor * SEGMENT_COORDINATE_SCALE);
40
+ this._offset = offset;
41
+ this._factor = factor;
41
42
  this.timestamp = timestamp;
43
+ this.mode = mode;
42
44
  }
43
45
  get factor() {
44
- return this._factor / SEGMENT_COORDINATE_SCALE;
46
+ return this._factor;
45
47
  }
46
48
  get offset() {
47
- return this._offset / SEGMENT_COORDINATE_SCALE;
49
+ return this._offset;
48
50
  }
49
51
  toReplicationRangeIndexable(key) {
50
52
  return new ReplicationRangeIndexable({
@@ -53,9 +55,10 @@ export class ReplicationRange {
53
55
  offset: this.offset,
54
56
  length: this.factor,
55
57
  timestamp: this.timestamp,
58
+ mode: this.mode,
56
59
  });
57
60
  }
58
- }
61
+ };
59
62
  __decorate([
60
63
  field({ type: Uint8Array }),
61
64
  __metadata("design:type", Uint8Array)
@@ -72,6 +75,15 @@ __decorate([
72
75
  field({ type: "u32" }),
73
76
  __metadata("design:type", Number)
74
77
  ], ReplicationRange.prototype, "_factor", void 0);
78
+ __decorate([
79
+ field({ type: "u8" }),
80
+ __metadata("design:type", Number)
81
+ ], ReplicationRange.prototype, "mode", void 0);
82
+ ReplicationRange = __decorate([
83
+ variant(0),
84
+ __metadata("design:paramtypes", [Object])
85
+ ], ReplicationRange);
86
+ export { ReplicationRange };
75
87
  export class ReplicationRangeIndexable {
76
88
  id;
77
89
  hash;
@@ -81,23 +93,30 @@ export class ReplicationRangeIndexable {
81
93
  start2;
82
94
  end2;
83
95
  width;
84
- replicationIntent;
96
+ mode;
85
97
  constructor(properties) {
86
98
  this.id = properties.id ?? randomBytes(32);
87
99
  this.hash =
88
100
  properties.publicKeyHash ||
89
101
  properties.publicKey.hashcode();
90
- this.transform({ length: properties.length, offset: properties.offset });
91
- this.replicationIntent =
92
- properties.replicationIntent ?? ReplicationIntent.Explicit;
102
+ if (!properties.normalized) {
103
+ this.transform({ length: properties.length, offset: properties.offset });
104
+ }
105
+ else {
106
+ this.transform({
107
+ length: scaleToU32(properties.length),
108
+ offset: scaleToU32(properties.offset),
109
+ });
110
+ }
111
+ this.mode = properties.mode ?? ReplicationIntent.NonStrict;
93
112
  this.timestamp = properties.timestamp || BigInt(0);
94
113
  }
95
114
  transform(properties) {
96
115
  const ranges = getSegmentsFromOffsetAndRange(properties.offset, properties.length);
97
- this.start1 = Math.round(ranges[0][0] * SEGMENT_COORDINATE_SCALE);
98
- this.end1 = Math.round(ranges[0][1] * SEGMENT_COORDINATE_SCALE);
99
- this.start2 = Math.round(ranges[1][0] * SEGMENT_COORDINATE_SCALE);
100
- this.end2 = Math.round(ranges[1][1] * SEGMENT_COORDINATE_SCALE);
116
+ this.start1 = Math.round(ranges[0][0]);
117
+ this.end1 = Math.round(ranges[0][1]);
118
+ this.start2 = Math.round(ranges[1][0]);
119
+ this.end2 = Math.round(ranges[1][1]);
101
120
  this.width =
102
121
  this.end1 -
103
122
  this.start1 +
@@ -106,7 +125,8 @@ export class ReplicationRangeIndexable {
106
125
  this.end1 > 0xffffffff ||
107
126
  this.start2 > 0xffffffff ||
108
127
  this.end2 > 0xffffffff ||
109
- this.width > 0xffffffff) {
128
+ this.width > 0xffffffff ||
129
+ this.width < 0) {
110
130
  throw new Error("Segment coordinate out of bounds");
111
131
  }
112
132
  }
@@ -129,26 +149,27 @@ export class ReplicationRangeIndexable {
129
149
  toReplicationRange() {
130
150
  return new ReplicationRange({
131
151
  id: this.id,
132
- offset: this.start1 / SEGMENT_COORDINATE_SCALE,
133
- factor: this.width / SEGMENT_COORDINATE_SCALE,
152
+ offset: this.start1,
153
+ factor: this.width,
134
154
  timestamp: this.timestamp,
155
+ mode: this.mode,
135
156
  });
136
157
  }
137
158
  distanceTo(point) {
138
- let wrappedPoint = SEGMENT_COORDINATE_SCALE - point;
159
+ let wrappedPoint = MAX_U32 - point;
139
160
  return Math.min(Math.abs(this.start1 - point), Math.abs(this.end2 - point), Math.abs(this.start1 - wrappedPoint), Math.abs(this.end2 - wrappedPoint));
140
161
  }
141
162
  get wrapped() {
142
163
  return this.end2 < this.end1;
143
164
  }
144
165
  get widthNormalized() {
145
- return this.width / SEGMENT_COORDINATE_SCALE;
166
+ return this.width / MAX_U32;
146
167
  }
147
168
  equals(other) {
148
169
  if (equals(this.id, other.id) &&
149
170
  this.hash === other.hash &&
150
171
  this.timestamp === other.timestamp &&
151
- this.replicationIntent === other.replicationIntent &&
172
+ this.mode === other.mode &&
152
173
  this.start1 === other.start1 &&
153
174
  this.end1 === other.end1 &&
154
175
  this.start2 === other.start2 &&
@@ -161,9 +182,9 @@ export class ReplicationRangeIndexable {
161
182
  toString() {
162
183
  let roundToTwoDecimals = (num) => Math.round(num * 100) / 100;
163
184
  if (Math.abs(this.start1 - this.start2) < 0.0001) {
164
- return `([${roundToTwoDecimals(this.start1 / SEGMENT_COORDINATE_SCALE)}, ${roundToTwoDecimals(this.end1 / SEGMENT_COORDINATE_SCALE)}])`;
185
+ return `([${roundToTwoDecimals(this.start1 / MAX_U32)}, ${roundToTwoDecimals(this.end1 / MAX_U32)}])`;
165
186
  }
166
- return `([${roundToTwoDecimals(this.start1 / SEGMENT_COORDINATE_SCALE)}, ${roundToTwoDecimals(this.end1 / SEGMENT_COORDINATE_SCALE)}] [${roundToTwoDecimals(this.start2 / SEGMENT_COORDINATE_SCALE)}, ${roundToTwoDecimals(this.end2 / SEGMENT_COORDINATE_SCALE)}])`;
187
+ return `([${roundToTwoDecimals(this.start1 / MAX_U32)}, ${roundToTwoDecimals(this.end1 / MAX_U32)}] [${roundToTwoDecimals(this.start2 / MAX_U32)}, ${roundToTwoDecimals(this.end2 / MAX_U32)}])`;
167
188
  }
168
189
  }
169
190
  __decorate([
@@ -201,7 +222,7 @@ __decorate([
201
222
  __decorate([
202
223
  field({ type: "u8" }),
203
224
  __metadata("design:type", Number)
204
- ], ReplicationRangeIndexable.prototype, "replicationIntent", void 0);
225
+ ], ReplicationRangeIndexable.prototype, "mode", void 0);
205
226
  export class MinReplicas {
206
227
  getValue(log) {
207
228
  throw new Error("Not implemented");
@@ -244,7 +265,7 @@ let ResponseRoleMessage = class ResponseRoleMessage extends TransportMessage {
244
265
  this.role = properties.role;
245
266
  }
246
267
  toReplicationInfoMessage() {
247
- return new ResponseReplicationInfoMessage({
268
+ return new AllReplicatingSegmentsMessage({
248
269
  segments: this.role instanceof Replicator
249
270
  ? this.role.segments.map((x) => {
250
271
  return new ReplicationRange({
@@ -252,6 +273,7 @@ let ResponseRoleMessage = class ResponseRoleMessage extends TransportMessage {
252
273
  offset: x.offset,
253
274
  factor: x.factor,
254
275
  timestamp: x.timestamp,
276
+ mode: ReplicationIntent.NonStrict,
255
277
  });
256
278
  })
257
279
  : [],
@@ -267,7 +289,7 @@ ResponseRoleMessage = __decorate([
267
289
  __metadata("design:paramtypes", [Object])
268
290
  ], ResponseRoleMessage);
269
291
  export { ResponseRoleMessage };
270
- let ResponseReplicationInfoMessage = class ResponseReplicationInfoMessage extends TransportMessage {
292
+ let AllReplicatingSegmentsMessage = class AllReplicatingSegmentsMessage extends TransportMessage {
271
293
  segments;
272
294
  constructor(properties) {
273
295
  super();
@@ -277,13 +299,13 @@ let ResponseReplicationInfoMessage = class ResponseReplicationInfoMessage extend
277
299
  __decorate([
278
300
  field({ type: vec(ReplicationRange) }),
279
301
  __metadata("design:type", Array)
280
- ], ResponseReplicationInfoMessage.prototype, "segments", void 0);
281
- ResponseReplicationInfoMessage = __decorate([
302
+ ], AllReplicatingSegmentsMessage.prototype, "segments", void 0);
303
+ AllReplicatingSegmentsMessage = __decorate([
282
304
  variant([1, 2]),
283
305
  __metadata("design:paramtypes", [Object])
284
- ], ResponseReplicationInfoMessage);
285
- export { ResponseReplicationInfoMessage };
286
- let StartedReplicating = class StartedReplicating extends TransportMessage {
306
+ ], AllReplicatingSegmentsMessage);
307
+ export { AllReplicatingSegmentsMessage };
308
+ let AddedReplicationSegmentMessage = class AddedReplicationSegmentMessage extends TransportMessage {
287
309
  segments;
288
310
  constructor(properties) {
289
311
  super();
@@ -293,12 +315,12 @@ let StartedReplicating = class StartedReplicating extends TransportMessage {
293
315
  __decorate([
294
316
  field({ type: vec(ReplicationRange) }),
295
317
  __metadata("design:type", Array)
296
- ], StartedReplicating.prototype, "segments", void 0);
297
- StartedReplicating = __decorate([
318
+ ], AddedReplicationSegmentMessage.prototype, "segments", void 0);
319
+ AddedReplicationSegmentMessage = __decorate([
298
320
  variant([1, 3]),
299
321
  __metadata("design:paramtypes", [Object])
300
- ], StartedReplicating);
301
- export { StartedReplicating };
322
+ ], AddedReplicationSegmentMessage);
323
+ export { AddedReplicationSegmentMessage };
302
324
  let StoppedReplicating = class StoppedReplicating extends TransportMessage {
303
325
  segmentIds;
304
326
  constructor(properties) {
@@ -353,8 +375,4 @@ export const maxReplicas = (log, entries) => {
353
375
  const numberOfLeaders = Math.max(Math.min(higher, max), lower);
354
376
  return numberOfLeaders;
355
377
  };
356
- export const hashToUniformNumber = (hash) => {
357
- const seedNumber = new BinaryReader(hash.subarray(hash.length - 4, hash.length)).u32();
358
- return seedNumber / 0xffffffff; // bounded between 0 and 1
359
- };
360
378
  //# sourceMappingURL=replication.js.map