@peerbit/shared-log 9.2.13 → 10.0.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 (104) hide show
  1. package/dist/benchmark/get-samples.js +190 -64
  2. package/dist/benchmark/get-samples.js.map +1 -1
  3. package/dist/benchmark/index.js +16 -38
  4. package/dist/benchmark/index.js.map +1 -1
  5. package/dist/benchmark/memory/child.js.map +1 -1
  6. package/dist/benchmark/partial-sync.d.ts +3 -0
  7. package/dist/benchmark/partial-sync.d.ts.map +1 -0
  8. package/dist/benchmark/partial-sync.js +121 -0
  9. package/dist/benchmark/partial-sync.js.map +1 -0
  10. package/dist/benchmark/replication-prune.js.map +1 -1
  11. package/dist/benchmark/replication.js.map +1 -1
  12. package/dist/benchmark/to-rebalance.d.ts +2 -0
  13. package/dist/benchmark/to-rebalance.d.ts.map +1 -0
  14. package/dist/benchmark/to-rebalance.js +117 -0
  15. package/dist/benchmark/to-rebalance.js.map +1 -0
  16. package/dist/benchmark/utils.d.ts +24 -0
  17. package/dist/benchmark/utils.d.ts.map +1 -0
  18. package/dist/benchmark/utils.js +47 -0
  19. package/dist/benchmark/utils.js.map +1 -0
  20. package/dist/src/debounce.d.ts +2 -2
  21. package/dist/src/debounce.d.ts.map +1 -1
  22. package/dist/src/debounce.js +17 -47
  23. package/dist/src/debounce.js.map +1 -1
  24. package/dist/src/exchange-heads.d.ts +1 -13
  25. package/dist/src/exchange-heads.d.ts.map +1 -1
  26. package/dist/src/exchange-heads.js +0 -32
  27. package/dist/src/exchange-heads.js.map +1 -1
  28. package/dist/src/index.d.ts +119 -60
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +1116 -762
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/integers.d.ts +22 -0
  33. package/dist/src/integers.d.ts.map +1 -0
  34. package/dist/src/integers.js +76 -0
  35. package/dist/src/integers.js.map +1 -0
  36. package/dist/src/pid.d.ts.map +1 -1
  37. package/dist/src/pid.js +22 -22
  38. package/dist/src/pid.js.map +1 -1
  39. package/dist/src/ranges.d.ts +168 -38
  40. package/dist/src/ranges.d.ts.map +1 -1
  41. package/dist/src/ranges.js +869 -272
  42. package/dist/src/ranges.js.map +1 -1
  43. package/dist/src/replication-domain-hash.d.ts +2 -3
  44. package/dist/src/replication-domain-hash.d.ts.map +1 -1
  45. package/dist/src/replication-domain-hash.js +40 -15
  46. package/dist/src/replication-domain-hash.js.map +1 -1
  47. package/dist/src/replication-domain-time.d.ts +5 -5
  48. package/dist/src/replication-domain-time.d.ts.map +1 -1
  49. package/dist/src/replication-domain-time.js +2 -0
  50. package/dist/src/replication-domain-time.js.map +1 -1
  51. package/dist/src/replication-domain.d.ts +17 -19
  52. package/dist/src/replication-domain.d.ts.map +1 -1
  53. package/dist/src/replication-domain.js +2 -6
  54. package/dist/src/replication-domain.js.map +1 -1
  55. package/dist/src/replication.d.ts +6 -6
  56. package/dist/src/replication.d.ts.map +1 -1
  57. package/dist/src/replication.js +4 -4
  58. package/dist/src/replication.js.map +1 -1
  59. package/dist/src/role.d.ts +3 -6
  60. package/dist/src/role.d.ts.map +1 -1
  61. package/dist/src/role.js +4 -5
  62. package/dist/src/role.js.map +1 -1
  63. package/dist/src/sync/index.d.ts +40 -0
  64. package/dist/src/sync/index.d.ts.map +1 -0
  65. package/dist/src/sync/index.js +2 -0
  66. package/dist/src/sync/index.js.map +1 -0
  67. package/dist/src/sync/rateless-iblt.d.ts +124 -0
  68. package/dist/src/sync/rateless-iblt.d.ts.map +1 -0
  69. package/dist/src/sync/rateless-iblt.js +495 -0
  70. package/dist/src/sync/rateless-iblt.js.map +1 -0
  71. package/dist/src/sync/simple.d.ts +69 -0
  72. package/dist/src/sync/simple.d.ts.map +1 -0
  73. package/dist/src/sync/simple.js +338 -0
  74. package/dist/src/sync/simple.js.map +1 -0
  75. package/dist/src/sync/wasm-init.browser.d.ts +1 -0
  76. package/dist/src/sync/wasm-init.browser.d.ts.map +1 -0
  77. package/dist/src/sync/wasm-init.browser.js +3 -0
  78. package/dist/src/sync/wasm-init.browser.js.map +1 -0
  79. package/dist/src/sync/wasm-init.d.ts +2 -0
  80. package/dist/src/sync/wasm-init.d.ts.map +1 -0
  81. package/dist/src/sync/wasm-init.js +13 -0
  82. package/dist/src/sync/wasm-init.js.map +1 -0
  83. package/dist/src/utils.d.ts +3 -3
  84. package/dist/src/utils.d.ts.map +1 -1
  85. package/dist/src/utils.js +2 -2
  86. package/dist/src/utils.js.map +1 -1
  87. package/package.json +10 -6
  88. package/src/debounce.ts +16 -51
  89. package/src/exchange-heads.ts +1 -23
  90. package/src/index.ts +1532 -1038
  91. package/src/integers.ts +102 -0
  92. package/src/pid.ts +23 -22
  93. package/src/ranges.ts +1204 -413
  94. package/src/replication-domain-hash.ts +43 -18
  95. package/src/replication-domain-time.ts +9 -9
  96. package/src/replication-domain.ts +21 -31
  97. package/src/replication.ts +10 -9
  98. package/src/role.ts +4 -6
  99. package/src/sync/index.ts +51 -0
  100. package/src/sync/rateless-iblt.ts +617 -0
  101. package/src/sync/simple.ts +403 -0
  102. package/src/sync/wasm-init.browser.ts +1 -0
  103. package/src/sync/wasm-init.ts +14 -0
  104. package/src/utils.ts +10 -4
@@ -0,0 +1,117 @@
1
+ // @ts-nocheck
2
+ import { Ed25519Keypair, randomBytes } from "@peerbit/crypto";
3
+ import { create as createIndex } from "@peerbit/indexer-sqlite3";
4
+ import * as B from "tinybench";
5
+ import { ReplicationIntent, toRebalance, } from "../src/ranges.js";
6
+ import { getEntryAndRangeConstructors } from "./utils.js";
7
+ // Run with "node --loader ts-node/esm ./benchmark/to-rebalance.ts"
8
+ const resolutions = ["u32", "u64"];
9
+ for (const resolution of resolutions) {
10
+ const { createEntry, createRange, entryClass, numbers } = getEntryAndRangeConstructors(resolution);
11
+ let create = async (...rects) => {
12
+ const indices = await createIndex();
13
+ await indices.start();
14
+ index = await indices.init({ schema: entryClass });
15
+ for (const rect of rects) {
16
+ await index.put(rect);
17
+ }
18
+ return [index, indices];
19
+ };
20
+ let a = (await Ed25519Keypair.create()).publicKey;
21
+ const suite = new B.Bench({ name: resolution });
22
+ let index;
23
+ let indices = undefined;
24
+ let entryCount = 1e3;
25
+ let rangeboundaryAssigned = 10;
26
+ // this bench tests that the getSamples function can handle overlapping ranges in a more performant way than the sparse ranges
27
+ const consumeAllFromAsyncIterator = async (iter) => {
28
+ const result = [];
29
+ for await (const entry of iter) {
30
+ result.push(entry);
31
+ }
32
+ return result;
33
+ };
34
+ const fullRange = createRange({
35
+ id: randomBytes(32),
36
+ mode: ReplicationIntent.Strict,
37
+ publicKey: a,
38
+ length: 1,
39
+ offset: 0,
40
+ });
41
+ const noRange = createRange({
42
+ id: randomBytes(32),
43
+ mode: ReplicationIntent.Strict,
44
+ publicKey: a,
45
+ length: 0,
46
+ offset: 0,
47
+ });
48
+ const smallRange = createRange({
49
+ id: randomBytes(32),
50
+ mode: ReplicationIntent.Strict,
51
+ publicKey: a,
52
+ length: 0.001,
53
+ offset: 0,
54
+ });
55
+ const anotherSmallRange = createRange({
56
+ id: randomBytes(32),
57
+ mode: ReplicationIntent.Strict,
58
+ publicKey: a,
59
+ length: 0.001,
60
+ offset: 0.5,
61
+ });
62
+ let entries = [];
63
+ for (let i = 0; i < entryCount; i++) {
64
+ entries.push(createEntry({
65
+ coordinate: numbers.denormalize(Math.random()),
66
+ hash: String(i),
67
+ assignedToRangeBoundary: i < rangeboundaryAssigned,
68
+ }));
69
+ }
70
+ const out = await create(...entries);
71
+ index = out[0];
72
+ indices = out[1];
73
+ suite.add("to rebalance all - " + resolution, async () => {
74
+ const samples = await consumeAllFromAsyncIterator(toRebalance([
75
+ {
76
+ range: fullRange,
77
+ type: "added",
78
+ },
79
+ ], index));
80
+ if (samples.length === 0) {
81
+ throw new Error("Expecting samples");
82
+ }
83
+ });
84
+ suite.add("range boundary - " + resolution, async () => {
85
+ const samples = await consumeAllFromAsyncIterator(toRebalance([
86
+ {
87
+ range: noRange,
88
+ type: "added",
89
+ },
90
+ ], index));
91
+ if (samples.length !== rangeboundaryAssigned) {
92
+ throw new Error("Expecting samples: " +
93
+ rangeboundaryAssigned +
94
+ " got " +
95
+ samples.length);
96
+ }
97
+ });
98
+ suite.add("updated - " + resolution, async () => {
99
+ const samples = await consumeAllFromAsyncIterator(toRebalance([
100
+ {
101
+ prev: smallRange,
102
+ range: anotherSmallRange,
103
+ type: "updated",
104
+ },
105
+ ], index));
106
+ if (samples.length === 0) {
107
+ throw new Error("Expecting samples: " +
108
+ rangeboundaryAssigned +
109
+ " got " +
110
+ samples.length);
111
+ }
112
+ });
113
+ await suite.run();
114
+ console.table(suite.table());
115
+ await indices.stop();
116
+ }
117
+ //# sourceMappingURL=to-rebalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-rebalance.js","sourceRoot":"","sources":["../../benchmark/to-rebalance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type PublicSignKey } from "@peerbit/crypto";
2
+ import { Meta } from "@peerbit/log";
3
+ import { type NumberFromType } from "../src/integers.js";
4
+ import { EntryReplicatedU32, EntryReplicatedU64, ReplicationIntent, ReplicationRangeIndexableU32, ReplicationRangeIndexableU64 } from "../src/ranges.js";
5
+ export declare const getEntryAndRangeConstructors: <R extends "u32" | "u64">(resolution: R) => {
6
+ createEntry: (properties: {
7
+ coordinate: NumberFromType<any>;
8
+ hash: string;
9
+ meta?: Meta;
10
+ assignedToRangeBoundary: boolean;
11
+ }) => EntryReplicatedU32 | EntryReplicatedU64;
12
+ createRange: (properties: {
13
+ id?: Uint8Array;
14
+ publicKey: PublicSignKey;
15
+ length: number;
16
+ offset: number;
17
+ timestamp?: bigint;
18
+ mode?: ReplicationIntent;
19
+ }) => ReplicationRangeIndexableU32 | ReplicationRangeIndexableU64;
20
+ entryClass: typeof EntryReplicatedU32 | typeof EntryReplicatedU64;
21
+ rangeClass: typeof ReplicationRangeIndexableU32 | typeof ReplicationRangeIndexableU64;
22
+ numbers: import("../src/integers.js").Numbers<R>;
23
+ };
24
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../benchmark/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAgB,IAAI,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACN,KAAK,cAAc,EAGnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,KAAK,GAAG,KAAK,cACvD,CAAC;8BAY8B;QAC1C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,uBAAuB,EAAE,OAAO,CAAC;KACjC;8BAiByD;QACzD,EAAE,CAAC,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE,aAAa,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,iBAAiB,CAAC;KACzB;;;;CAoBD,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { randomBytes } from "@peerbit/crypto";
2
+ import { LamportClock, Meta } from "@peerbit/log";
3
+ import { createNumbers, denormalizer, } from "../src/integers.js";
4
+ import { EntryReplicatedU32, EntryReplicatedU64, ReplicationIntent, ReplicationRangeIndexableU32, ReplicationRangeIndexableU64, } from "../src/ranges.js";
5
+ export const getEntryAndRangeConstructors = (resolution) => {
6
+ const numbers = createNumbers(resolution);
7
+ const rangeClass = resolution === "u32"
8
+ ? ReplicationRangeIndexableU32
9
+ : ReplicationRangeIndexableU64;
10
+ const denormalizeFn = denormalizer(resolution);
11
+ const entryClass = resolution === "u32" ? EntryReplicatedU32 : EntryReplicatedU64;
12
+ const createEntryReplicated = (properties) => {
13
+ return new entryClass({
14
+ coordinates: [properties.coordinate],
15
+ assignedToRangeBoundary: properties.assignedToRangeBoundary,
16
+ hash: properties.hash,
17
+ meta: properties.meta ||
18
+ new Meta({
19
+ clock: new LamportClock({ id: randomBytes(32) }),
20
+ gid: "a",
21
+ next: [],
22
+ type: 0,
23
+ data: undefined,
24
+ }),
25
+ });
26
+ };
27
+ const createReplicationRangeFromNormalized = (properties) => {
28
+ return new rangeClass({
29
+ id: properties.id,
30
+ publicKey: properties.publicKey,
31
+ mode: properties.mode,
32
+ // @ts-ignore
33
+ length: denormalizeFn(properties.length),
34
+ // @ts-ignore
35
+ offset: denormalizeFn(properties.offset),
36
+ timestamp: properties.timestamp,
37
+ });
38
+ };
39
+ return {
40
+ createEntry: createEntryReplicated,
41
+ createRange: createReplicationRangeFromNormalized,
42
+ entryClass,
43
+ rangeClass,
44
+ numbers,
45
+ };
46
+ };
47
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../benchmark/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAEN,aAAa,EACb,YAAY,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,4BAA4B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC3C,UAAa,EACZ,EAAE;IACH,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,UAAU,GACf,UAAU,KAAK,KAAK;QACnB,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,4BAA4B,CAAC;IACjC,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,UAAU,GACf,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAEhE,MAAM,qBAAqB,GAAG,CAAC,UAK9B,EAAE,EAAE;QACJ,OAAO,IAAI,UAAU,CAAC;YACrB,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YACpC,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EACH,UAAU,CAAC,IAAI;gBACf,IAAI,IAAI,CAAC;oBACR,KAAK,EAAE,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;oBAChD,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,SAAS;iBACf,CAAC;SACI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,oCAAoC,GAAG,CAAC,UAO7C,EAAE,EAAE;QACJ,OAAO,IAAI,UAAU,CAAC;YACrB,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,aAAa;YACb,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;YACxC,aAAa;YACb,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,UAAU,CAAC,SAAS;SAC/B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACN,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,oCAAoC;QACjD,UAAU;QACV,UAAU;QACV,OAAO;KACP,CAAC;AACH,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare const debounceFixedInterval: <T extends (...args: any[]) => any | Promise<any>>(fn: T, delay: number | (() => number), options?: {
2
2
  onError?: (error: Error) => void;
3
3
  }) => T;
4
- export declare const debounceAcculmulator: <K, T, V>(fn: (args: V) => any, create: () => {
4
+ export declare const debounceAccumulator: <K, T, V>(fn: (args: V) => any, create: () => {
5
5
  delete: (string: K) => void;
6
6
  add: (value: T) => void;
7
7
  size: () => number;
@@ -12,7 +12,7 @@ export declare const debounceAcculmulator: <K, T, V>(fn: (args: V) => any, creat
12
12
  size: () => () => number;
13
13
  invoke: () => Promise<void>;
14
14
  };
15
- export declare const debouncedAccumulatorMap: <T>(fn: (args: Map<string, T>) => any, delay: number) => {
15
+ export declare const debouncedAccumulatorMap: <T>(fn: (args: Map<string, T>) => any, delay: number, merge?: (into: T, from: T) => void) => {
16
16
  add: (value: {
17
17
  key: string;
18
18
  value: T;
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/debounce.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,qBAAqB,GACjC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAE5C,CAAC,SACE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,YACpB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAAE,KA4D1B,CACpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MACvC,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,UACZ,MAAM;IACb,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACT,SACM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;iBAahB,CAAC;kBAIA,CAAC;sBApBH,MAAM;;CA0BnB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,MACpC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,SAC1B,MAAM;;aAIL,MAAM;eAAS,CAAC;;;sBAlCX,MAAM;;CAmDnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,UAAU,CAClD,OAAO,uBAAuB,CAAC,CAAC,CAAC,CACjC,CAAC"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../src/debounce.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GACjC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAE5C,CAAC,SACE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,YACpB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAAE,KA4D1B,CACpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MACtC,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,UACZ,MAAM;IACb,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,CAAC;CACT,SACM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;iBAahB,CAAC;kBAIA,CAAC;sBApBH,MAAM;;CA0BnB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,CAAC,MACpC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,SAC1B,MAAM,UACL,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI;;aAEQ,MAAM;eAAS,CAAC;;;sBAjC7C,MAAM;;CA2DnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,UAAU,CAClD,OAAO,uBAAuB,CAAC,CAAC,CAAC,CACjC,CAAC"}
@@ -1,46 +1,3 @@
1
- /* export const debounceFixedInterval = <
2
- T extends (...args: any[]) => any | Promise<any>,
3
- >(
4
- fn: T,
5
- delay: number,
6
- options?: { debug?: boolean, onError?: (error: Error) => void },
7
- ) => {
8
- // a debounce function that will always wait for the delay to pass before invoking the function
9
- // though if delay time has passed it will call the function immediately instead of resetting the timer
10
-
11
- let onError = options?.onError || ((error: Error) => console.error(error));
12
- let timeout: NodeJS.Timeout | null = null;
13
- let lastArgs: any[] = [];
14
- let lastThis: any;
15
- let invokePromise = Promise.resolve();
16
- const invoke = async () => {
17
- const fnCall = fn.apply(lastThis, lastArgs);
18
- invokePromise = Promise.resolve(fnCall ?? {});
19
- await invokePromise.then((res) => {
20
-
21
- timeout = null;
22
- return res;
23
- }).catch(onError);
24
- };
25
-
26
- const debounced = (...args: Parameters<T>) => {
27
- lastArgs = args;
28
- lastThis = this;
29
- if (timeout) {
30
- return;
31
- }
32
- invokePromise.then(() => {
33
- timeout && clearTimeout(timeout);
34
- timeout = setTimeout(invoke, delay);
35
- if (options?.debug) {
36
- console.log("debounceFixedInterval: timeout set", timeout);
37
- }
38
- });
39
- };
40
-
41
- return debounced as T;
42
- };
43
- */
44
1
  export const debounceFixedInterval = (fn, delay, options) => {
45
2
  // A debounce function that waits for the delay after the async function finishes
46
3
  // before invoking the function again
@@ -95,7 +52,7 @@ export const debounceFixedInterval = (fn, delay, options) => {
95
52
  };
96
53
  return debounced;
97
54
  };
98
- export const debounceAcculmulator = (fn, create, delay) => {
55
+ export const debounceAccumulator = (fn, create, delay) => {
99
56
  let accumulator = create();
100
57
  const invoke = async () => {
101
58
  let toSend = accumulator.value;
@@ -115,11 +72,24 @@ export const debounceAcculmulator = (fn, create, delay) => {
115
72
  invoke,
116
73
  };
117
74
  };
118
- export const debouncedAccumulatorMap = (fn, delay) => {
119
- return debounceAcculmulator(fn, () => {
75
+ export const debouncedAccumulatorMap = (fn, delay, merge) => {
76
+ return debounceAccumulator(fn, () => {
120
77
  const map = new Map();
78
+ let add = merge
79
+ ? (props) => {
80
+ let prev = map.get(props.key);
81
+ if (prev != null) {
82
+ merge(prev, props.value);
83
+ }
84
+ else {
85
+ map.set(props.key, props.value);
86
+ }
87
+ }
88
+ : (props) => {
89
+ map.set(props.key, props.value);
90
+ };
121
91
  return {
122
- add: (props) => map.set(props.key, props.value),
92
+ add,
123
93
  delete: (key) => map.delete(key),
124
94
  size: () => map.size,
125
95
  value: map,
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/debounce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/debounce.ts"],"names":[],"mappings":"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"}
@@ -21,18 +21,6 @@ export declare class ExchangeHeadsMessage<T> extends TransportMessage {
21
21
  heads: EntryWithRefs<T>[];
22
22
  });
23
23
  }
24
- export declare class RequestMaybeSync extends TransportMessage {
25
- hashes: string[];
26
- constructor(props: {
27
- hashes: string[];
28
- });
29
- }
30
- export declare class ResponseMaybeSync extends TransportMessage {
31
- hashes: string[];
32
- constructor(props: {
33
- hashes: string[];
34
- });
35
- }
36
24
  export declare class RequestIPrune extends TransportMessage {
37
25
  hashes: string[];
38
26
  constructor(props: {
@@ -45,6 +33,6 @@ export declare class ResponseIPrune extends TransportMessage {
45
33
  hashes: string[];
46
34
  });
47
35
  }
48
- export declare const createExchangeHeadsMessages: (log: Log<any>, heads: Entry<any>[] | string[]) => AsyncGenerator<ExchangeHeadsMessage<any>, void, void>;
36
+ export declare const createExchangeHeadsMessages: (log: Log<any>, heads: Entry<any>[] | string[] | Set<string>) => AsyncGenerator<ExchangeHeadsMessage<any>, void, void>;
49
37
  export declare const allEntriesWithUniqueGids: (log: Log<any>, entry: Entry<any>) => Promise<Entry<any>[]>;
50
38
  //# sourceMappingURL=exchange-heads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-heads.d.ts","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAgC,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;GAIG;AACH,qBACa,aAAa,CAAC,CAAC;IAE3B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAGhB,YAAY,EAAE,MAAM,EAAE,CAAC;gBAEX,UAAU,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE;CAInE;AAED,qBACa,oBAAoB,CAAC,CAAC,CAAE,SAAQ,gBAAgB;IAE5D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAG1B,QAAQ,EAAE,UAAU,CAAqB;gBAE7B,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;KAAE;CAIhD;AAED,qBACa,gBAAiB,SAAQ,gBAAgB;IAErD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,iBAAkB,SAAQ,gBAAgB;IAEtD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,aAAc,SAAQ,gBAAgB;IAGlD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,cAAe,SAAQ,gBAAgB;IAGnD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAID,eAAO,MAAM,2BAA2B,QAClC,GAAG,CAAC,GAAG,CAAC,SACN,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,KAC5B,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CA+CtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAC/B,GAAG,CAAC,GAAG,CAAC,SACN,KAAK,CAAC,GAAG,CAAC,KACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAkCtB,CAAC"}
1
+ {"version":3,"file":"exchange-heads.d.ts","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAgC,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;GAIG;AACH,qBACa,aAAa,CAAC,CAAC;IAE3B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAGhB,YAAY,EAAE,MAAM,EAAE,CAAC;gBAEX,UAAU,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE;CAInE;AAED,qBACa,oBAAoB,CAAC,CAAC,CAAE,SAAQ,gBAAgB;IAE5D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAG1B,QAAQ,EAAE,UAAU,CAAqB;gBAE7B,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;KAAE;CAIhD;AAED,qBACa,aAAc,SAAQ,gBAAgB;IAGlD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,cAAe,SAAQ,gBAAgB;IAGnD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAID,eAAO,MAAM,2BAA2B,QAClC,GAAG,CAAC,GAAG,CAAC,SACN,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAC1C,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CA+CtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAC/B,GAAG,CAAC,GAAG,CAAC,SACN,KAAK,CAAC,GAAG,CAAC,KACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAkCtB,CAAC"}
@@ -60,38 +60,6 @@ ExchangeHeadsMessage = __decorate([
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], ExchangeHeadsMessage);
62
62
  export { ExchangeHeadsMessage };
63
- let RequestMaybeSync = class RequestMaybeSync extends TransportMessage {
64
- hashes;
65
- constructor(props) {
66
- super();
67
- this.hashes = props.hashes;
68
- }
69
- };
70
- __decorate([
71
- field({ type: vec("string") }),
72
- __metadata("design:type", Array)
73
- ], RequestMaybeSync.prototype, "hashes", void 0);
74
- RequestMaybeSync = __decorate([
75
- variant([0, 1]),
76
- __metadata("design:paramtypes", [Object])
77
- ], RequestMaybeSync);
78
- export { RequestMaybeSync };
79
- let ResponseMaybeSync = class ResponseMaybeSync extends TransportMessage {
80
- hashes;
81
- constructor(props) {
82
- super();
83
- this.hashes = props.hashes;
84
- }
85
- };
86
- __decorate([
87
- field({ type: vec("string") }),
88
- __metadata("design:type", Array)
89
- ], ResponseMaybeSync.prototype, "hashes", void 0);
90
- ResponseMaybeSync = __decorate([
91
- variant([0, 2]),
92
- __metadata("design:paramtypes", [Object])
93
- ], ResponseMaybeSync);
94
- export { ResponseMaybeSync };
95
63
  let RequestIPrune = class RequestIPrune extends TransportMessage {
96
64
  // Hashes which I want to prune
97
65
  hashes;
@@ -1 +1 @@
1
- {"version":3,"file":"exchange-heads.js","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange-heads.js","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"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"}