@peerbit/log 3.0.34 → 4.0.0-55cebfe

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 (133) hide show
  1. package/dist/benchmark/append.d.ts +2 -0
  2. package/dist/benchmark/append.d.ts.map +1 -0
  3. package/dist/benchmark/append.js +40 -0
  4. package/dist/benchmark/append.js.map +1 -0
  5. package/dist/benchmark/memory/index.d.ts +2 -0
  6. package/dist/benchmark/memory/index.d.ts.map +1 -0
  7. package/dist/benchmark/memory/index.js +122 -0
  8. package/dist/benchmark/memory/index.js.map +1 -0
  9. package/dist/benchmark/memory/insert.d.ts +2 -0
  10. package/dist/benchmark/memory/insert.d.ts.map +1 -0
  11. package/dist/benchmark/memory/insert.js +59 -0
  12. package/dist/benchmark/memory/insert.js.map +1 -0
  13. package/dist/benchmark/memory/utils.d.ts +13 -0
  14. package/dist/benchmark/memory/utils.d.ts.map +1 -0
  15. package/dist/benchmark/memory/utils.js +2 -0
  16. package/dist/benchmark/memory/utils.js.map +1 -0
  17. package/dist/benchmark/payload.d.ts +2 -0
  18. package/dist/benchmark/payload.d.ts.map +1 -0
  19. package/{lib/esm/__benchmark__/index.js → dist/benchmark/payload.js} +20 -22
  20. package/dist/benchmark/payload.js.map +1 -0
  21. package/dist/src/change.d.ts +6 -0
  22. package/dist/src/change.d.ts.map +1 -0
  23. package/{lib/esm → dist/src}/clock.d.ts +3 -26
  24. package/dist/src/clock.d.ts.map +1 -0
  25. package/{lib/esm → dist/src}/clock.js +30 -39
  26. package/dist/src/clock.js.map +1 -0
  27. package/{lib/esm → dist/src}/difference.d.ts +1 -0
  28. package/dist/src/difference.d.ts.map +1 -0
  29. package/{lib/esm → dist/src}/encoding.d.ts +2 -1
  30. package/dist/src/encoding.d.ts.map +1 -0
  31. package/{lib/esm → dist/src}/encoding.js +2 -2
  32. package/{lib/esm → dist/src}/encoding.js.map +1 -1
  33. package/dist/src/entry-index.d.ts +78 -0
  34. package/dist/src/entry-index.d.ts.map +1 -0
  35. package/dist/src/entry-index.js +316 -0
  36. package/dist/src/entry-index.js.map +1 -0
  37. package/{lib/esm → dist/src}/entry-with-refs.d.ts +2 -1
  38. package/dist/src/entry-with-refs.d.ts.map +1 -0
  39. package/{lib/esm → dist/src}/entry.d.ts +22 -18
  40. package/dist/src/entry.d.ts.map +1 -0
  41. package/{lib/esm → dist/src}/entry.js +69 -42
  42. package/dist/src/entry.js.map +1 -0
  43. package/{lib/esm → dist/src}/find-uniques.d.ts +1 -0
  44. package/dist/src/find-uniques.d.ts.map +1 -0
  45. package/{lib/esm → dist/src}/heads-cache.d.ts +4 -3
  46. package/dist/src/heads-cache.d.ts.map +1 -0
  47. package/{lib/esm → dist/src}/heads-cache.js +9 -10
  48. package/dist/src/heads-cache.js.map +1 -0
  49. package/{lib/esm → dist/src}/index.d.ts +1 -0
  50. package/dist/src/index.d.ts.map +1 -0
  51. package/{lib/esm → dist/src}/log-errors.d.ts +1 -0
  52. package/dist/src/log-errors.d.ts.map +1 -0
  53. package/dist/src/log-sorting.d.ts +35 -0
  54. package/dist/src/log-sorting.d.ts.map +1 -0
  55. package/dist/src/log-sorting.js +105 -0
  56. package/dist/src/log-sorting.js.map +1 -0
  57. package/{lib/esm → dist/src}/log.d.ts +78 -56
  58. package/dist/src/log.d.ts.map +1 -0
  59. package/{lib/esm → dist/src}/log.js +355 -465
  60. package/dist/src/log.js.map +1 -0
  61. package/{lib/esm → dist/src}/logger.d.ts +1 -0
  62. package/dist/src/logger.d.ts.map +1 -0
  63. package/{lib/esm → dist/src}/logger.js.map +1 -1
  64. package/{lib/esm → dist/src}/snapshot.d.ts +5 -4
  65. package/dist/src/snapshot.d.ts.map +1 -0
  66. package/{lib/esm → dist/src}/snapshot.js +10 -10
  67. package/dist/src/snapshot.js.map +1 -0
  68. package/{lib/esm → dist/src}/trim.d.ts +11 -9
  69. package/dist/src/trim.d.ts.map +1 -0
  70. package/{lib/esm → dist/src}/trim.js +46 -35
  71. package/dist/src/trim.js.map +1 -0
  72. package/dist/src/utils.d.ts +4 -0
  73. package/dist/src/utils.d.ts.map +1 -0
  74. package/dist/src/utils.js +12 -0
  75. package/dist/src/utils.js.map +1 -0
  76. package/package.json +104 -78
  77. package/src/change.ts +3 -2
  78. package/src/clock.ts +22 -22
  79. package/src/encoding.ts +4 -4
  80. package/src/entry-index.ts +451 -52
  81. package/src/entry-with-refs.ts +1 -1
  82. package/src/entry.ts +95 -81
  83. package/src/heads-cache.ts +33 -29
  84. package/src/log-sorting.ts +116 -94
  85. package/src/log.ts +482 -571
  86. package/src/logger.ts +1 -0
  87. package/src/snapshot.ts +15 -17
  88. package/src/trim.ts +81 -50
  89. package/src/utils.ts +10 -0
  90. package/lib/esm/__benchmark__/index.d.ts +0 -1
  91. package/lib/esm/__benchmark__/index.js.map +0 -1
  92. package/lib/esm/change.d.ts +0 -5
  93. package/lib/esm/clock.js.map +0 -1
  94. package/lib/esm/entry-index.d.ts +0 -24
  95. package/lib/esm/entry-index.js +0 -74
  96. package/lib/esm/entry-index.js.map +0 -1
  97. package/lib/esm/entry.js.map +0 -1
  98. package/lib/esm/heads-cache.js.map +0 -1
  99. package/lib/esm/heads.d.ts +0 -69
  100. package/lib/esm/heads.js +0 -157
  101. package/lib/esm/heads.js.map +0 -1
  102. package/lib/esm/log-sorting.d.ts +0 -44
  103. package/lib/esm/log-sorting.js +0 -86
  104. package/lib/esm/log-sorting.js.map +0 -1
  105. package/lib/esm/log.js.map +0 -1
  106. package/lib/esm/snapshot.js.map +0 -1
  107. package/lib/esm/trim.js.map +0 -1
  108. package/lib/esm/types.d.ts +0 -6
  109. package/lib/esm/types.js +0 -23
  110. package/lib/esm/types.js.map +0 -1
  111. package/lib/esm/utils.d.ts +0 -2
  112. package/lib/esm/utils.js +0 -3
  113. package/lib/esm/utils.js.map +0 -1
  114. package/lib/esm/values.d.ts +0 -26
  115. package/lib/esm/values.js +0 -131
  116. package/lib/esm/values.js.map +0 -1
  117. package/src/__benchmark__/index.ts +0 -130
  118. package/src/heads.ts +0 -233
  119. package/src/types.ts +0 -12
  120. package/src/values.ts +0 -174
  121. /package/{lib/esm → dist/src}/change.js +0 -0
  122. /package/{lib/esm → dist/src}/change.js.map +0 -0
  123. /package/{lib/esm → dist/src}/difference.js +0 -0
  124. /package/{lib/esm → dist/src}/difference.js.map +0 -0
  125. /package/{lib/esm → dist/src}/entry-with-refs.js +0 -0
  126. /package/{lib/esm → dist/src}/entry-with-refs.js.map +0 -0
  127. /package/{lib/esm → dist/src}/find-uniques.js +0 -0
  128. /package/{lib/esm → dist/src}/find-uniques.js.map +0 -0
  129. /package/{lib/esm → dist/src}/index.js +0 -0
  130. /package/{lib/esm → dist/src}/index.js.map +0 -0
  131. /package/{lib/esm → dist/src}/log-errors.js +0 -0
  132. /package/{lib/esm → dist/src}/log-errors.js.map +0 -0
  133. /package/{lib/esm → dist/src}/logger.js +0 -0
@@ -8,13 +8,17 @@ 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
10
  var Entry_1;
11
- import { HLC, LamportClock as Clock, Timestamp } from "./clock.js";
12
- import { variant, field, serialize, deserialize, option, vec, fixedArray } from "@dao-xyz/borsh";
13
- import { DecryptedThing, MaybeEncrypted, X25519PublicKey, SignatureWithKey, AccessError, Ed25519PublicKey, sha256Base64, randomBytes } from "@peerbit/crypto";
11
+ import { deserialize, field, fixedArray, option, serialize, variant, vec, } from "@dao-xyz/borsh";
12
+ import {} from "@peerbit/blocks-interface";
13
+ import { AccessError, DecryptedThing, Ed25519PublicKey, MaybeEncrypted, PublicSignKey, SignatureWithKey, X25519Keypair, X25519PublicKey, randomBytes, sha256Base64, } from "@peerbit/crypto";
14
14
  import { verify } from "@peerbit/crypto";
15
- import { compare, equals } from "@peerbit/uint8arrays";
15
+ import { id } from "@peerbit/indexer-interface";
16
+ import {} from "@peerbit/keychain";
17
+ import { compare } from "uint8arrays";
18
+ import { LamportClock as Clock, HLC, Timestamp } from "./clock.js";
16
19
  import { NO_ENCODING } from "./encoding.js";
17
20
  import { logger } from "./logger.js";
21
+ import { equals } from "./utils.js";
18
22
  const isMaybeEryptionPublicKey = (o) => {
19
23
  if (!o) {
20
24
  return true;
@@ -73,7 +77,7 @@ let Payload = class Payload {
73
77
  return this._value;
74
78
  }
75
79
  getValue(encoding = this.encoding || NO_ENCODING) {
76
- if (this._value != undefined) {
80
+ if (this._value !== undefined) {
77
81
  return this._value;
78
82
  }
79
83
  return encoding.decoder(this.data);
@@ -91,24 +95,23 @@ export { Payload };
91
95
  export var EntryType;
92
96
  (function (EntryType) {
93
97
  EntryType[EntryType["APPEND"] = 0] = "APPEND";
94
- EntryType[EntryType["CUT"] = 1] = "CUT"; // Delete or Create tombstone ... delete all nexts, i
98
+ EntryType[EntryType["CUT"] = 1] = "CUT";
95
99
  })(EntryType || (EntryType = {}));
96
- let Meta = class Meta {
100
+ /* @variant(0) */
101
+ export class Meta {
97
102
  clock;
98
103
  gid; // graph id
99
104
  next;
100
105
  type;
101
106
  data; // Optional metadata
102
107
  constructor(properties) {
103
- if (properties) {
104
- this.gid = properties.gid;
105
- this.clock = properties.clock;
106
- this.type = properties.type;
107
- this.data = properties.data;
108
- this.next = properties.next;
109
- }
108
+ this.gid = properties.gid;
109
+ this.clock = properties.clock;
110
+ this.type = properties.type;
111
+ this.data = properties.data;
112
+ this.next = properties.next;
110
113
  }
111
- };
114
+ }
112
115
  __decorate([
113
116
  field({ type: Clock }),
114
117
  __metadata("design:type", Clock)
@@ -129,11 +132,6 @@ __decorate([
129
132
  field({ type: option(Uint8Array) }),
130
133
  __metadata("design:type", Uint8Array)
131
134
  ], Meta.prototype, "data", void 0);
132
- Meta = __decorate([
133
- variant(0),
134
- __metadata("design:paramtypes", [Object])
135
- ], Meta);
136
- export { Meta };
137
135
  let Signatures = class Signatures {
138
136
  signatures;
139
137
  constructor(properties) {
@@ -174,14 +172,42 @@ const maybeEncrypt = (thing, keypair, receiver) => {
174
172
  }
175
173
  return new DecryptedThing({
176
174
  data: serialize(thing),
177
- value: thing
175
+ value: thing,
178
176
  }).encrypt(keypair, receivers);
179
177
  }
180
178
  return new DecryptedThing({
181
179
  data: serialize(thing),
182
- value: thing
180
+ value: thing,
183
181
  });
184
182
  };
183
+ export class ShallowEntry {
184
+ hash;
185
+ meta;
186
+ payloadSize;
187
+ head;
188
+ constructor(properties) {
189
+ this.hash = properties.hash;
190
+ this.meta = properties.meta;
191
+ this.payloadSize = properties.payloadSize;
192
+ this.head = properties.head;
193
+ }
194
+ }
195
+ __decorate([
196
+ id({ type: "string" }),
197
+ __metadata("design:type", String)
198
+ ], ShallowEntry.prototype, "hash", void 0);
199
+ __decorate([
200
+ field({ type: Meta }),
201
+ __metadata("design:type", Meta)
202
+ ], ShallowEntry.prototype, "meta", void 0);
203
+ __decorate([
204
+ field({ type: "u32" }),
205
+ __metadata("design:type", Number)
206
+ ], ShallowEntry.prototype, "payloadSize", void 0);
207
+ __decorate([
208
+ field({ type: "bool" }),
209
+ __metadata("design:type", Boolean)
210
+ ], ShallowEntry.prototype, "head", void 0);
185
211
  let Entry = Entry_1 = class Entry {
186
212
  _meta;
187
213
  _payload;
@@ -277,6 +303,7 @@ let Entry = Entry_1 = class Entry {
277
303
  get signatures() {
278
304
  const signatures = this._signatures.signatures.filter((x) => {
279
305
  try {
306
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
280
307
  x.decrypted;
281
308
  return true;
282
309
  }
@@ -330,7 +357,7 @@ let Entry = Entry_1 = class Entry {
330
357
  payload: entry._payload,
331
358
  reserved: entry._reserved,
332
359
  signatures: undefined,
333
- hash: undefined
360
+ hash: undefined,
334
361
  });
335
362
  return trimmed;
336
363
  }
@@ -364,9 +391,9 @@ let Entry = Entry_1 = class Entry {
364
391
  ...properties,
365
392
  meta: {
366
393
  ...properties?.meta,
367
- next: properties.meta?.next ? properties.meta?.next : []
394
+ next: properties.meta?.next ? properties.meta?.next : [],
368
395
  },
369
- encoding: properties.encoding ? properties.encoding : NO_ENCODING
396
+ encoding: properties.encoding ? properties.encoding : NO_ENCODING,
370
397
  };
371
398
  }
372
399
  if (!properties.encoding) {
@@ -381,7 +408,7 @@ let Entry = Entry_1 = class Entry {
381
408
  const payloadToSave = new Payload({
382
409
  data: properties.encoding.encoder(properties.data),
383
410
  value: properties.data,
384
- encoding: properties.encoding
411
+ encoding: properties.encoding,
385
412
  });
386
413
  let clock = properties.meta?.clock;
387
414
  if (!clock) {
@@ -395,7 +422,7 @@ let Entry = Entry_1 = class Entry {
395
422
  }
396
423
  clock = new Clock({
397
424
  id: properties.identity.publicKey.bytes,
398
- timestamp: hlc.now()
425
+ timestamp: hlc.now(),
399
426
  });
400
427
  }
401
428
  else {
@@ -442,7 +469,7 @@ let Entry = Entry_1 = class Entry {
442
469
  gid: gid,
443
470
  type: properties.meta?.type ?? EntryType.APPEND,
444
471
  data: properties.meta?.data,
445
- next: nextHashes
472
+ next: nextHashes,
446
473
  }), properties.encryption?.keypair, properties.encryption?.receiver.meta);
447
474
  const payload = await maybeEncrypt(payloadToSave, properties.encryption?.keypair, properties.encryption?.receiver.payload);
448
475
  // Sign id, encrypted payload, clock, nexts, refs
@@ -450,10 +477,10 @@ let Entry = Entry_1 = class Entry {
450
477
  meta: metadataEncrypted,
451
478
  payload,
452
479
  signatures: undefined,
453
- createdLocally: true
480
+ createdLocally: true,
454
481
  });
455
482
  const signers = properties.signers || [
456
- properties.identity.sign.bind(properties.identity)
483
+ properties.identity.sign.bind(properties.identity),
457
484
  ];
458
485
  const signable = entry.toSignable();
459
486
  const signableBytes = serialize(signable);
@@ -464,12 +491,12 @@ let Entry = Entry_1 = class Entry {
464
491
  for (const signature of signatures) {
465
492
  const encryptionRecievers = encryptAllSignaturesWithSameKey
466
493
  ? properties.encryption?.receiver?.signatures
467
- : properties.encryption?.receiver?.signatures?.[signature.publicKey.hashcode()];
494
+ : properties.encryption?.receiver?.signatures?.[signature.publicKey.hashcode()]; // TODO types
468
495
  const signatureEncrypted = await maybeEncrypt(signature, properties.encryption?.keypair, encryptionRecievers);
469
496
  encryptedSignatures.push(signatureEncrypted);
470
497
  }
471
498
  entry._signatures = new Signatures({
472
- signatures: encryptedSignatures
499
+ signatures: encryptedSignatures,
473
500
  });
474
501
  if (properties.canAppend && !(await properties.canAppend(entry))) {
475
502
  throw new AccessError();
@@ -482,18 +509,19 @@ let Entry = Entry_1 = class Entry {
482
509
  get payloadByteLength() {
483
510
  return this._payload.byteLength;
484
511
  }
485
- toShallow() {
486
- return {
512
+ toShallow(isHead) {
513
+ return new ShallowEntry({
487
514
  hash: this.hash,
488
- payloadByteLength: this._payload.byteLength,
489
- meta: {
515
+ payloadSize: this._payload.byteLength,
516
+ head: isHead,
517
+ meta: new Meta({
490
518
  gid: this.meta.gid,
491
519
  data: this.meta.data,
492
520
  clock: this.meta.clock,
493
521
  next: this.meta.next,
494
- type: this.meta.type
495
- }
496
- };
522
+ type: this.meta.type,
523
+ }),
524
+ });
497
525
  }
498
526
  /**
499
527
  * Get the multihash of an Entry.
@@ -508,8 +536,7 @@ let Entry = Entry_1 = class Entry {
508
536
  }
509
537
  const bytes = serialize(entry);
510
538
  entry.size = bytes.length;
511
- const result = store.put(bytes);
512
- return result;
539
+ return store.put(bytes);
513
540
  }
514
541
  /**
515
542
  * Create an Entry from a hash.
@@ -560,7 +587,7 @@ let Entry = Entry_1 = class Entry {
560
587
  * @returns {boolean}
561
588
  */
562
589
  static isDirectParent(entry1, entry2) {
563
- return entry2.next.indexOf(entry1.hash) > -1; // TODO fix types
590
+ return entry2.next.includes(entry1.hash); // TODO fix types
564
591
  }
565
592
  /**
566
593
  * Find entry's children from an Array of entries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/entry.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare const findUniques: <T>(value: T[], key?: string) => T[];
2
+ //# sourceMappingURL=find-uniques.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-uniques.d.ts","sourceRoot":"","sources":["../../src/find-uniques.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,MAAM,KAAG,CAAC,EAa1D,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Entry } from "./entry";
2
- import { AnyStore } from "@peerbit/any-store";
1
+ import { type AnyStore } from "@peerbit/any-store";
2
+ import { Entry } from "./entry.js";
3
3
  export declare const logger: import("pino").Logger<never>;
4
4
  export declare class CachedValue {
5
5
  }
@@ -9,7 +9,7 @@ export declare class CachePath {
9
9
  }
10
10
  export declare class UnsfinishedReplication {
11
11
  hashes: string[];
12
- constructor(opts?: {
12
+ constructor(opts: {
13
13
  hashes: string[];
14
14
  });
15
15
  }
@@ -62,3 +62,4 @@ export declare class HeadsCache<T> {
62
62
  }, reset?: boolean): Promise<void> | undefined;
63
63
  }
64
64
  export {};
65
+ //# sourceMappingURL=heads-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heads-cache.d.ts","sourceRoot":"","sources":["../../src/heads-cache.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,MAAM,8BAAsC,CAAC;AAC1D,qBAAa,WAAW;CAAG;AAS3B,qBACa,SAAS;IAErB,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM;CAGxB;AAED,qBACa,sBAAsB;IAElC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAGtC;AAED,qBACa,qBAAqB;IAEjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3D;AA4BD,UAAU,UAAU;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AACD,qBAAa,UAAU,CAAC,CAAC;IAExB,SAAS,EAAG,MAAM,CAAC;IACnB,gBAAgB,EAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,eAAe,CAAM;IAE7B,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,sBAAsB,CAAM;IAEpC,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAE5C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAc;gBAEhB,KAAK,EAAE,UAAU;IAI7B,IAAI,KAAK,IAAI,QAAQ,GAAG,SAAS,CAEhC;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAEK,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3C,IAAI,MAAM,IAAI,OAAO,CAEpB;YAEa,kBAAkB;IA+E1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,cAAc,CACnB,aAAa,GAAE,MAAM,GAAG,SAA+B,EACvD,oBAAoB,GAAE,MAAM,GAAG,SAAsC,GACnE,OAAO,CAAC,MAAM,EAAE,CAAC;IA8CpB,IAAI,MAAM,YAET;IAEK,KAAK;IAUX;;OAEG;IACG,IAAI;YAiBI,UAAU;IAalB,IAAI;IAcJ,iBAAiB;IAcjB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvD,YAAY;IAcX,KAAK,CACX,OAAO,EAAE;QACR,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;KAChC,EACD,KAAK,CAAC,EAAE,OAAO;CAMhB"}
@@ -7,12 +7,13 @@ 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 PQueue from "p-queue";
11
- import { v4 as uuid } from "uuid";
12
- import { variant, option, field, vec } from "@dao-xyz/borsh";
13
- import { serialize, deserialize } from "@dao-xyz/borsh";
10
+ import { deserialize, field, option, serialize, variant, vec, } from "@dao-xyz/borsh";
11
+ import {} from "@peerbit/any-store";
14
12
  import { logger as loggerFn } from "@peerbit/logger";
13
+ import PQueue from "p-queue";
15
14
  import path from "path-browserify";
15
+ import { v4 as uuid } from "uuid";
16
+ import { Entry } from "./entry.js";
16
17
  export const logger = loggerFn({ module: "heads-cache" });
17
18
  export class CachedValue {
18
19
  }
@@ -41,9 +42,7 @@ export { CachePath };
41
42
  let UnsfinishedReplication = class UnsfinishedReplication {
42
43
  hashes;
43
44
  constructor(opts) {
44
- if (opts) {
45
- this.hashes = opts.hashes;
46
- }
45
+ this.hashes = opts.hashes;
47
46
  }
48
47
  };
49
48
  __decorate([
@@ -87,7 +86,7 @@ const updateHashes = async (headCache, headsPath, lastCid, lastCounter, hashes)
87
86
  const counter = lastCounter + BigInt(hashes.length);
88
87
  await Promise.all([
89
88
  headCache.cache?.put(headsPath, serialize(new CachePath(newHeadsPath.toString()))),
90
- headCache.cache?.put(newHeadsPath, serialize(new HeadsCacheToSerialize(hashes, counter, lastCid)))
89
+ headCache.cache?.put(newHeadsPath, serialize(new HeadsCacheToSerialize(hashes, counter, lastCid))),
91
90
  ]);
92
91
  return { counter, newPath: newHeadsPath };
93
92
  };
@@ -95,7 +94,7 @@ export class HeadsCache {
95
94
  // An access controller that is note part of the store manifest, usefull for circular store -> access controller -> store structures
96
95
  headsPath;
97
96
  removedHeadsPath;
98
- initialized;
97
+ initialized = false;
99
98
  _headsPathCounter = 0;
100
99
  _lastHeadsPath;
101
100
  _lastHeadsCount = 0n;
@@ -202,7 +201,7 @@ export class HeadsCache {
202
201
  const cache = bytes && deserialize(bytes, HeadsCacheToSerialize);
203
202
  next = cache?.last;
204
203
  cache?.heads.forEach((head) => {
205
- if (filter && filter.has(head)) {
204
+ if (filter?.has(head)) {
206
205
  return;
207
206
  }
208
207
  result.push(head);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heads-cache.js","sourceRoot":"","sources":["../../src/heads-cache.ts"],"names":[],"mappings":"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"}
@@ -9,3 +9,4 @@ export * from "./encoding.js";
9
9
  export * from "./trim.js";
10
10
  export * from "./change.js";
11
11
  export type { TrimToByteLengthOption, TrimToLengthOption } from "./trim.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -3,3 +3,4 @@ export declare const LogNotDefinedError: () => Error;
3
3
  export declare const NotALogError: () => Error;
4
4
  export declare const CannotJoinWithDifferentId: () => Error;
5
5
  export declare const LtOrLteMustBeStringOrArray: () => Error;
6
+ //# sourceMappingURL=log-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-errors.d.ts","sourceRoot":"","sources":["../../src/log-errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,aACD,CAAC;AACtC,eAAO,MAAM,kBAAkB,aAA8C,CAAC;AAC9E,eAAO,MAAM,YAAY,aAC6B,CAAC;AACvD,eAAO,MAAM,yBAAyB,aACU,CAAC;AACjD,eAAO,MAAM,0BAA0B,aACqB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Sort, type StateFieldQuery } from "@peerbit/indexer-interface";
2
+ import type { Timestamp } from "./clock";
3
+ export type SortableEntry = {
4
+ meta: {
5
+ clock: {
6
+ timestamp: Timestamp;
7
+ };
8
+ gid: string;
9
+ };
10
+ hash: string;
11
+ };
12
+ export declare const ENTRY_SORT_SHAPE: {
13
+ readonly hash: true;
14
+ readonly meta: {
15
+ readonly gid: true;
16
+ readonly clock: true;
17
+ };
18
+ };
19
+ export type SortFn = {
20
+ sort: Sort[];
21
+ before: (entry: SortableEntry) => StateFieldQuery[];
22
+ after: (entry: SortableEntry) => StateFieldQuery[];
23
+ };
24
+ /**
25
+ * Sort two entries as Last-Write-Wins (LWW).
26
+ *
27
+ * Last Write Wins is a conflict resolution strategy for sorting elements
28
+ * where the element with a greater clock (latest) is chosen as the winner.
29
+ *
30
+ */
31
+ export declare const LastWriteWins: SortFn;
32
+ export declare const FirstWriteWins: SortFn;
33
+ export declare const SortByEntryHash: SortFn;
34
+ export declare const compare: (a: SortableEntry, b: SortableEntry, sortFn: SortFn) => number;
35
+ //# sourceMappingURL=log-sorting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-sorting.d.ts","sourceRoot":"","sources":["../../src/log-sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,IAAI,EAEJ,KAAK,eAAe,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE;QACL,KAAK,EAAE;YACN,SAAS,EAAE,SAAS,CAAC;SACrB,CAAC;QACF,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;CAGnB,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,eAAe,EAAE,CAAC;IACpD,KAAK,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,eAAe,EAAE,CAAC;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,MA4B3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MA2B5B,CAAC;AACF,eAAO,MAAM,eAAe,EAAE,MAsB7B,CAAC;AAEF,eAAO,MAAM,OAAO,MAAO,aAAa,KAAK,aAAa,UAAU,MAAM,WAczE,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { Compare, IntegerCompare, Sort, SortDirection, } from "@peerbit/indexer-interface";
2
+ export const ENTRY_SORT_SHAPE = {
3
+ hash: true,
4
+ meta: { gid: true, clock: true },
5
+ };
6
+ /**
7
+ * Sort two entries as Last-Write-Wins (LWW).
8
+ *
9
+ * Last Write Wins is a conflict resolution strategy for sorting elements
10
+ * where the element with a greater clock (latest) is chosen as the winner.
11
+ *
12
+ */
13
+ export const LastWriteWins = {
14
+ sort: [
15
+ // sort first by clock
16
+ new Sort({
17
+ key: ["meta", "clock", "timestamp", "wallTime"],
18
+ direction: SortDirection.ASC,
19
+ }),
20
+ // then by logical
21
+ new Sort({
22
+ key: ["meta", "clock", "timestamp", "logical"],
23
+ direction: SortDirection.ASC,
24
+ }),
25
+ ],
26
+ before: (entry) => [
27
+ new IntegerCompare({
28
+ key: ["meta", "clock", "timestamp", "wallTime"],
29
+ value: entry.meta.clock.timestamp.wallTime,
30
+ compare: Compare.Less,
31
+ }),
32
+ ],
33
+ after: (entry) => [
34
+ new IntegerCompare({
35
+ key: ["meta", "clock", "timestamp", "wallTime"],
36
+ value: entry.meta.clock.timestamp.wallTime,
37
+ compare: Compare.Greater,
38
+ }),
39
+ ],
40
+ };
41
+ export const FirstWriteWins = {
42
+ sort: [
43
+ new Sort({
44
+ key: ["meta", "clock", "timestamp", "wallTime"],
45
+ direction: SortDirection.DESC,
46
+ }),
47
+ // then by logical
48
+ new Sort({
49
+ key: ["meta", "clock", "timestamp", "logical"],
50
+ direction: SortDirection.DESC,
51
+ }),
52
+ ],
53
+ before: (entry) => [
54
+ new IntegerCompare({
55
+ key: ["meta", "clock", "timestamp", "wallTime"],
56
+ value: entry.meta.clock.timestamp.wallTime,
57
+ compare: Compare.Greater,
58
+ }),
59
+ ],
60
+ after: (entry) => [
61
+ new IntegerCompare({
62
+ key: ["meta", "clock", "timestamp", "wallTime"],
63
+ value: entry.meta.clock.timestamp.wallTime,
64
+ compare: Compare.Less,
65
+ }),
66
+ ],
67
+ };
68
+ export const SortByEntryHash = {
69
+ sort: [
70
+ // sort first by clock
71
+ new Sort({
72
+ key: ["hash"],
73
+ direction: SortDirection.ASC,
74
+ }),
75
+ ],
76
+ before: (entry) => [
77
+ new IntegerCompare({
78
+ key: ["hash"],
79
+ value: entry.meta.clock.timestamp.wallTime,
80
+ compare: Compare.Less,
81
+ }),
82
+ ],
83
+ after: (entry) => [
84
+ new IntegerCompare({
85
+ key: ["hash"],
86
+ value: entry.meta.clock.timestamp.wallTime,
87
+ compare: Compare.Greater,
88
+ }),
89
+ ],
90
+ };
91
+ export const compare = (a, b, sortFn) => {
92
+ for (const sort of sortFn.sort) {
93
+ const aVal = sort.key.reduce((prev, curr) => prev[curr], a);
94
+ const bVal = sort.key.reduce((prev, curr) => prev[curr], b);
95
+ let multiplier = sort.direction === SortDirection.ASC ? 1 : -1;
96
+ if (aVal < bVal) {
97
+ return -1 * multiplier;
98
+ }
99
+ if (aVal > bVal) {
100
+ return 1 * multiplier;
101
+ }
102
+ }
103
+ return 0;
104
+ };
105
+ //# sourceMappingURL=log-sorting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-sorting.js","sourceRoot":"","sources":["../../src/log-sorting.ts"],"names":[],"mappings":"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"}