@peerbit/log 3.0.34-aa577a5 → 3.0.34-cccc078

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 (99) 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/{index.d.ts.map → memory/index.d.ts.map} +1 -1
  6. package/dist/benchmark/memory/index.js +122 -0
  7. package/dist/benchmark/memory/index.js.map +1 -0
  8. package/dist/benchmark/memory/insert.d.ts +2 -0
  9. package/dist/benchmark/memory/insert.d.ts.map +1 -0
  10. package/dist/benchmark/memory/insert.js +59 -0
  11. package/dist/benchmark/memory/insert.js.map +1 -0
  12. package/dist/benchmark/memory/utils.d.ts +13 -0
  13. package/dist/benchmark/memory/utils.d.ts.map +1 -0
  14. package/dist/benchmark/memory/utils.js +2 -0
  15. package/dist/benchmark/memory/utils.js.map +1 -0
  16. package/dist/benchmark/payload.d.ts +2 -0
  17. package/dist/benchmark/payload.d.ts.map +1 -0
  18. package/dist/benchmark/{index.js → payload.js} +14 -14
  19. package/dist/benchmark/payload.js.map +1 -0
  20. package/dist/src/change.d.ts +2 -2
  21. package/dist/src/change.d.ts.map +1 -1
  22. package/dist/src/change.js +1 -1
  23. package/dist/src/change.js.map +1 -1
  24. package/dist/src/clock.d.ts +0 -24
  25. package/dist/src/clock.d.ts.map +1 -1
  26. package/dist/src/clock.js +28 -35
  27. package/dist/src/clock.js.map +1 -1
  28. package/dist/src/encoding.d.ts.map +1 -1
  29. package/dist/src/encoding.js +2 -2
  30. package/dist/src/encoding.js.map +1 -1
  31. package/dist/src/entry-index.d.ts +70 -17
  32. package/dist/src/entry-index.d.ts.map +1 -1
  33. package/dist/src/entry-index.js +281 -41
  34. package/dist/src/entry-index.js.map +1 -1
  35. package/dist/src/entry-with-refs.d.ts +1 -1
  36. package/dist/src/entry-with-refs.d.ts.map +1 -1
  37. package/dist/src/entry-with-refs.js +1 -1
  38. package/dist/src/entry-with-refs.js.map +1 -1
  39. package/dist/src/entry.d.ts +18 -15
  40. package/dist/src/entry.d.ts.map +1 -1
  41. package/dist/src/entry.js +62 -36
  42. package/dist/src/entry.js.map +1 -1
  43. package/dist/src/find-uniques.d.ts.map +1 -1
  44. package/dist/src/heads-cache.d.ts +1 -1
  45. package/dist/src/heads-cache.d.ts.map +1 -1
  46. package/dist/src/heads-cache.js +6 -7
  47. package/dist/src/heads-cache.js.map +1 -1
  48. package/dist/src/log-sorting.d.ts +27 -37
  49. package/dist/src/log-sorting.d.ts.map +1 -1
  50. package/dist/src/log-sorting.js +92 -74
  51. package/dist/src/log-sorting.js.map +1 -1
  52. package/dist/src/log.d.ts +71 -54
  53. package/dist/src/log.d.ts.map +1 -1
  54. package/dist/src/log.js +349 -468
  55. package/dist/src/log.js.map +1 -1
  56. package/dist/src/logger.d.ts.map +1 -1
  57. package/dist/src/logger.js.map +1 -1
  58. package/dist/src/snapshot.d.ts +2 -2
  59. package/dist/src/snapshot.d.ts.map +1 -1
  60. package/dist/src/snapshot.js +5 -5
  61. package/dist/src/snapshot.js.map +1 -1
  62. package/dist/src/trim.d.ts +9 -8
  63. package/dist/src/trim.d.ts.map +1 -1
  64. package/dist/src/trim.js +43 -40
  65. package/dist/src/trim.js.map +1 -1
  66. package/dist/src/utils.d.ts.map +1 -1
  67. package/dist/src/utils.js +1 -1
  68. package/dist/src/utils.js.map +1 -1
  69. package/package.json +15 -13
  70. package/src/change.ts +3 -2
  71. package/src/clock.ts +25 -19
  72. package/src/encoding.ts +3 -3
  73. package/src/entry-index.ts +451 -52
  74. package/src/entry-with-refs.ts +1 -1
  75. package/src/entry.ts +89 -72
  76. package/src/heads-cache.ts +27 -21
  77. package/src/log-sorting.ts +116 -94
  78. package/src/log.ts +465 -564
  79. package/src/logger.ts +1 -0
  80. package/src/snapshot.ts +10 -10
  81. package/src/trim.ts +75 -50
  82. package/src/utils.ts +6 -8
  83. package/dist/benchmark/index.js.map +0 -1
  84. package/dist/src/heads.d.ts +0 -70
  85. package/dist/src/heads.d.ts.map +0 -1
  86. package/dist/src/heads.js +0 -164
  87. package/dist/src/heads.js.map +0 -1
  88. package/dist/src/types.d.ts +0 -7
  89. package/dist/src/types.d.ts.map +0 -1
  90. package/dist/src/types.js +0 -21
  91. package/dist/src/types.js.map +0 -1
  92. package/dist/src/values.d.ts +0 -27
  93. package/dist/src/values.d.ts.map +0 -1
  94. package/dist/src/values.js +0 -134
  95. package/dist/src/values.js.map +0 -1
  96. package/src/heads.ts +0 -233
  97. package/src/types.ts +0 -10
  98. package/src/values.ts +0 -174
  99. /package/dist/benchmark/{index.d.ts → memory/index.d.ts} +0 -0
@@ -1,87 +1,105 @@
1
- import {} from "./entry.js";
2
- import { LamportClock as Clock } from "./clock.js";
3
- import { compare } from "uint8arrays";
4
- const First = (a, b) => a;
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
+ };
5
6
  /**
6
7
  * Sort two entries as Last-Write-Wins (LWW).
7
8
  *
8
9
  * Last Write Wins is a conflict resolution strategy for sorting elements
9
10
  * where the element with a greater clock (latest) is chosen as the winner.
10
11
  *
11
- * @param {Entry} a First entry
12
- * @param {Entry} b Second entry
13
- * @returns {number} 1 if a is latest, -1 if b is latest
14
- */
15
- export const LastWriteWins = (a, b) => {
16
- // Ultimate conflict resolution (take the first/left arg)
17
- // Sort two entries by their clock id, if the same always take the first
18
- const sortById = (a, b) => SortByClockId(a, b, First);
19
- // Sort two entries by their clock time, if concurrent,
20
- // determine sorting using provided conflict resolution function
21
- const sortByEntryClocks = (a, b) => SortByClocks(a, b, sortById);
22
- // Sort entries by clock time as the primary sort criteria
23
- return sortByEntryClocks(a, b);
24
- };
25
- /**
26
- * Sort two entries by their hash.
27
- *
28
- * @param {Entry} a First entry
29
- * @param {Entry} b Second entry
30
- * @returns {number} 1 if a is latest, -1 if b is latest
31
12
  */
32
- export const SortByEntryHash = (a, b) => {
33
- // Ultimate conflict resolution (compare hashes)
34
- const compareHash = (a, b) => a.hash < b.hash ? -1 : 1;
35
- // Sort two entries by their clock id, if the same then compare hashes
36
- const sortById = (a, b) => SortByClockId(a, b, compareHash);
37
- // Sort two entries by their clock time, if concurrent,
38
- // determine sorting using provided conflict resolution function
39
- const sortByEntryClocks = (a, b) => SortByClocks(a, b, sortById);
40
- // Sort entries by clock time as the primary sort criteria
41
- return sortByEntryClocks(a, b);
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
+ ],
42
40
  };
43
- /**
44
- * Sort two entries by their clock time.
45
- * @param {Entry} a First entry to compare
46
- * @param {Entry} b Second entry to compare
47
- * @param {function(a, b)} resolveConflict A function to call if entries are concurrent (happened at the same time). The function should take in two entries and return 1 if the first entry should be chosen and -1 if the second entry should be chosen.
48
- * @returns {number} 1 if a is greater, -1 if b is greater
49
- */
50
- export const SortByClocks = (a, b, resolveConflict) => {
51
- // Compare the clocks
52
- const diff = Clock.compare(a.meta.clock, b.meta.clock);
53
- // If the clocks are concurrent, use the provided
54
- // conflict resolution function to determine which comes first
55
- return diff === 0 ? (resolveConflict || First)(a, b) : diff;
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
+ ],
56
67
  };
57
- /**
58
- * Sort two entries by their clock id.
59
- * @param {Entry} a First entry to compare
60
- * @param {Entry} b Second entry to compare
61
- * @param {function(a, b)} resolveConflict A function to call if the clocks ids are the same. The function should take in two entries and return 1 if the first entry should be chosen and -1 if the second entry should be chosen.
62
- * @returns {number} 1 if a is greater, -1 if b is greater
63
- */
64
- export const SortByClockId = (a, b, resolveConflict) => {
65
- // Sort by ID if clocks are concurrent,
66
- // take the entry with a "greater" clock id
67
- const clockCompare = compare(a.meta.clock.id, b.meta.clock.id);
68
- return clockCompare === 0 ? (resolveConflict || First)(a, b) : clockCompare;
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
+ ],
69
90
  };
70
- /**
71
- * A wrapper function to throw an error if the results of a passed function return zero
72
- * @param {function(a, b)} [tiebreaker] The tiebreaker function to validate.
73
- * @returns {function(a, b)} 1 if a is greater, -1 if b is greater
74
- * @throws {Error} if func ever returns 0
75
- */
76
- export const NoZeroes = (func) => {
77
- const comparator = (a, b) => {
78
- // Validate by calling the function
79
- const result = func(a, b, (a, b) => -1);
80
- if (result === 0) {
81
- throw Error(`Your log's tiebreaker function, ${func.name}, has returned zero and therefore cannot be`);
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;
82
101
  }
83
- return result;
84
- };
85
- return comparator;
102
+ }
103
+ return 0;
86
104
  };
87
105
  //# sourceMappingURL=log-sorting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-sorting.js","sourceRoot":"","sources":["../../src/log-sorting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-sorting.js","sourceRoot":"","sources":["../../src/log-sorting.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EACP,cAAc,EACd,IAAI,EACJ,aAAa,GAEb,MAAM,4BAA4B,CAAC;AAapC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;CACvB,CAAC;AAQX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAW;IACpC,IAAI,EAAE;QACL,sBAAsB;QACtB,IAAI,IAAI,CAAC;YACR,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,SAAS,EAAE,aAAa,CAAC,GAAG;SAC5B,CAAC;QAEF,kBAAkB;QAClB,IAAI,IAAI,CAAC;YACR,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC9C,SAAS,EAAE,aAAa,CAAC,GAAG;SAC5B,CAAC;KACF;IACD,MAAM,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QACjC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;KACF;IACD,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QAChC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC;KACF;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAW;IACrC,IAAI,EAAE;QACL,IAAI,IAAI,CAAC;YACR,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,SAAS,EAAE,aAAa,CAAC,IAAI;SAC7B,CAAC;QAEF,kBAAkB;QAClB,IAAI,IAAI,CAAC;YACR,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;YAC9C,SAAS,EAAE,aAAa,CAAC,IAAI;SAC7B,CAAC;KACF;IACD,MAAM,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QACjC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC;KACF;IACD,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QAChC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;YAC/C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;KACF;CACD,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAW;IACtC,IAAI,EAAE;QACL,sBAAsB;QACtB,IAAI,IAAI,CAAC;YACR,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,SAAS,EAAE,aAAa,CAAC,GAAG;SAC5B,CAAC;KACF;IACD,MAAM,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QACjC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;KACF;IACD,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC;QAChC,IAAI,cAAc,CAAC;YAClB,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC;KACF;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAE,CAAgB,EAAE,MAAc,EAAE,EAAE;IAC7E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,IAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,IAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,UAAU,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,CAAC,CAAC;AACV,CAAC,CAAC"}
package/dist/src/log.d.ts CHANGED
@@ -1,29 +1,29 @@
1
- import { SignatureWithKey, type Identity, X25519Keypair } from "@peerbit/crypto";
2
1
  import { type AnyStore } from "@peerbit/any-store";
3
- import { EntryIndex } from "./entry-index.js";
4
- import * as Sorting from "./log-sorting.js";
5
- import { type EncryptionTemplateMaybeEncrypted, Entry, Payload, type CanAppend, EntryType } from "./entry.js";
2
+ import { type Blocks } from "@peerbit/blocks-interface";
3
+ import { type Identity, SignatureWithKey, X25519Keypair } from "@peerbit/crypto";
4
+ import { type Indices } from "@peerbit/indexer-interface";
5
+ import { type Keychain } from "@peerbit/keychain";
6
+ import { type Change } from "./change.js";
6
7
  import { HLC, LamportClock, Timestamp } from "./clock.js";
7
8
  import { type Encoding } from "./encoding.js";
8
- import { type CacheUpdateOptions, HeadsIndex } from "./heads.js";
9
- import { Values } from "./values.js";
10
- import { type TrimOptions } from "./trim.js";
11
- import { type Change } from "./change.js";
9
+ import { EntryIndex, type MaybeResolveOptions, type ResultsIterator, type ReturnTypeFromResolveOptions } from "./entry-index.js";
12
10
  import { type EntryWithRefs } from "./entry-with-refs.js";
13
- import { type Blocks } from "@peerbit/blocks-interface";
14
- import { type Keychain } from "@peerbit/keychain";
15
- export type LogEvents<T, R = undefined> = {
16
- onChange?: (change: Change<T>, reference?: R) => void;
11
+ import { type CanAppend, type EncryptionTemplateMaybeEncrypted, Entry, EntryType, Payload, ShallowEntry, type ShallowOrFullEntry } from "./entry.js";
12
+ import * as Sorting from "./log-sorting.js";
13
+ import { type TrimOptions } from "./trim.js";
14
+ export type LogEvents<T> = {
15
+ onChange?: (change: Change<T>) => void;
17
16
  onGidRemoved?: (gids: string[]) => Promise<void> | void;
18
17
  };
19
18
  export type MemoryProperties = {
20
- cache?: AnyStore;
19
+ storage?: AnyStore;
20
+ indexer?: Indices;
21
21
  };
22
22
  export type LogProperties<T> = {
23
23
  keychain?: Keychain;
24
24
  encoding?: Encoding<T>;
25
25
  clock?: LamportClock;
26
- sortFn?: Sorting.ISortFunction;
26
+ sortFn?: Sorting.SortFn;
27
27
  trim?: TrimOptions;
28
28
  canAppend?: CanAppend<T>;
29
29
  };
@@ -34,7 +34,7 @@ export type AppendOptions<T> = {
34
34
  gidSeed?: Uint8Array;
35
35
  data?: Uint8Array;
36
36
  timestamp?: Timestamp;
37
- next?: Entry<any>[];
37
+ next?: Entry<any>[] | ShallowEntry[];
38
38
  };
39
39
  identity?: Identity;
40
40
  signers?: ((data: Uint8Array) => Promise<SignatureWithKey> | SignatureWithKey)[];
@@ -47,25 +47,43 @@ export type AppendOptions<T> = {
47
47
  canAppend?: CanAppend<T>;
48
48
  };
49
49
  type OnChange<T> = (change: Change<T>, reference?: undefined) => void | Promise<void>;
50
+ export type JoinableEntry = {
51
+ meta: {
52
+ clock: {
53
+ timestamp: Timestamp;
54
+ };
55
+ next: string[];
56
+ gid: string;
57
+ type: EntryType;
58
+ };
59
+ hash: string;
60
+ };
61
+ export declare const ENTRY_JOIN_SHAPE: {
62
+ readonly hash: true;
63
+ readonly meta: {
64
+ readonly type: true;
65
+ readonly next: true;
66
+ readonly gid: true;
67
+ readonly clock: true;
68
+ };
69
+ };
50
70
  export declare class Log<T> {
51
71
  private _id;
52
- private _sortFn;
53
72
  private _storage;
54
73
  private _hlc;
55
74
  private _identity;
56
75
  private _entryIndex;
57
- private _headsIndex;
58
- private _values;
59
- private _nextsIndex;
60
76
  private _keychain?;
61
77
  private _encoding;
62
78
  private _trim;
63
- private _entryCache;
64
79
  private _canAppend?;
65
80
  private _onChange?;
66
81
  private _closed;
67
- private _memory?;
82
+ private _closeController;
83
+ private _loadedOnce;
84
+ private _indexer;
68
85
  private _joining;
86
+ private _sortFn;
69
87
  constructor(properties?: {
70
88
  id?: Uint8Array;
71
89
  });
@@ -79,14 +97,13 @@ export declare class Log<T> {
79
97
  * Returns the length of the log.
80
98
  */
81
99
  get length(): number;
82
- get values(): Values<T>;
83
100
  get canAppend(): CanAppend<T> | undefined;
84
101
  /**
85
102
  * Checks if a entry is part of the log
86
103
  * @param {string} hash The hash of the entry
87
104
  * @returns {boolean}
88
105
  */
89
- has(cid: string): boolean;
106
+ has(cid: string): Promise<boolean>;
90
107
  /**
91
108
  * Get all entries sorted. Don't use this method anywhere where performance matters
92
109
  */
@@ -94,9 +111,7 @@ export declare class Log<T> {
94
111
  /**
95
112
  * Returns the head index
96
113
  */
97
- get headsIndex(): HeadsIndex<T>;
98
- get memory(): AnyStore | undefined;
99
- getHeads(): Promise<Entry<T>[]>;
114
+ getHeads<R extends MaybeResolveOptions = false>(resolve?: R): ResultsIterator<ReturnTypeFromResolveOptions<R, T>>;
100
115
  /**
101
116
  * Returns an array of Entry objects that reference entries which
102
117
  * are not in the log currently.
@@ -115,11 +130,10 @@ export declare class Log<T> {
115
130
  get hlc(): HLC;
116
131
  get identity(): Identity;
117
132
  get blocks(): Blocks;
118
- get nextsIndex(): Map<string, Set<string>>;
119
133
  get entryIndex(): EntryIndex<T>;
120
134
  get keychain(): Keychain | undefined;
121
135
  get encoding(): Encoding<T>;
122
- get sortFn(): Sorting.ISortFunction;
136
+ get sortFn(): Sorting.SortFn;
123
137
  get closed(): boolean;
124
138
  /**
125
139
  * Set the identity for the log
@@ -127,51 +141,53 @@ export declare class Log<T> {
127
141
  */
128
142
  setIdentity(identity: Identity): void;
129
143
  /**
130
- * Find an entry.
144
+ * Get an entry.
131
145
  * @param {string} [hash] The hashes of the entry
132
146
  */
133
147
  get(hash: string, options?: {
134
148
  timeout?: number;
135
149
  }): Promise<Entry<T> | undefined>;
136
- traverse(rootEntries: Entry<T>[], amount?: number, endHash?: string): Promise<{
137
- [key: string]: Entry<T>;
138
- }>;
150
+ /**
151
+ * Get a entry with shallow representation
152
+ * @param {string} [hash] The hashes of the entry
153
+ */
154
+ getShallow(hash: string, options?: {
155
+ timeout?: number;
156
+ }): Promise<ShallowEntry | undefined>;
139
157
  getReferenceSamples(from: Entry<T>, options?: {
140
158
  pointerCount?: number;
141
159
  memoryLimit?: number;
142
160
  }): Promise<Entry<T>[]>;
143
161
  /**
144
162
  * Append an entry to the log.
145
- * @param {Entry} entry Entry to add
146
- * @return {Log} New Log containing the appended value
163
+ * @param {T} data The data to be appended
164
+ * @param {AppendOptions} [options] The options for the append
165
+ * @returns {{ entry: Entry<T>; removed: ShallowEntry[] }} The appended entry and an array of removed entries
147
166
  */
148
167
  append(data: T, options?: AppendOptions<T>): Promise<{
149
168
  entry: Entry<T>;
150
- removed: Entry<T>[];
169
+ removed: ShallowOrFullEntry<T>[];
151
170
  }>;
152
- reset(entries: Entry<T>[]): Promise<void>;
153
- remove(entry: Entry<T> | Entry<T>[], options?: {
171
+ reset(entries?: Entry<T>[]): Promise<void>;
172
+ remove(entry: ShallowOrFullEntry<T> | ShallowOrFullEntry<T>[], options?: {
154
173
  recursively?: boolean;
155
174
  }): Promise<Change<T>>;
156
- iterator(options?: {
157
- from?: "tail" | "head";
158
- amount?: number;
159
- }): IterableIterator<string>;
160
175
  trim(option?: TrimOptions | undefined): Promise<Entry<T>[] | undefined>;
161
- /**
162
- *
163
- * @param entries
164
- * @returns change
165
- */
166
- join(entriesOrLog: (string | Entry<T> | EntryWithRefs<T>)[] | Log<T>, options?: {
176
+ join(entriesOrLog: (string | Entry<T> | ShallowEntry | EntryWithRefs<T>)[] | Log<T> | ResultsIterator<Entry<any>>, options?: {
167
177
  verifySignatures?: boolean;
168
178
  trim?: TrimOptions;
169
179
  timeout?: number;
170
- } & CacheUpdateOptions): Promise<void>;
171
- private joinEntry;
180
+ }): Promise<void>;
181
+ /**
182
+ * Bottom up join of entries into the log
183
+ * @param entry
184
+ * @param options
185
+ * @returns
186
+ */
187
+ private joinRecursively;
172
188
  private processEntry;
173
- deleteRecursively(from: Entry<any> | Entry<any>[], skipFirst?: boolean): Promise<Entry<T>[]>;
174
- delete(entry: Entry<any>): Promise<void>;
189
+ deleteRecursively(from: ShallowOrFullEntry<T> | ShallowOrFullEntry<T>[], skipFirst?: boolean): Promise<ShallowEntry[]>;
190
+ delete(hash: string): Promise<ShallowEntry | undefined>;
175
191
  /**
176
192
  * Returns the log entries as a formatted string.
177
193
  * @returns {string}
@@ -181,15 +197,16 @@ export declare class Log<T> {
181
197
  * └─three
182
198
  */
183
199
  toString(payloadMapper?: (payload: Payload<T>) => string): Promise<string>;
184
- idle(): Promise<void>;
185
200
  close(): Promise<void>;
186
201
  drop(): Promise<void>;
187
202
  recover(): Promise<void>;
188
203
  load(opts?: {
189
204
  heads?: Entry<T>[];
190
205
  fetchEntryTimeout?: number;
191
- reload: boolean;
206
+ reset?: boolean;
192
207
  ignoreMissing?: boolean;
208
+ timeout?: number;
209
+ reload?: boolean;
193
210
  }): Promise<void>;
194
211
  static fromEntry<T>(store: Blocks, identity: Identity, entryOrHash: string | string[] | Entry<T> | Entry<T>[], options?: {
195
212
  id?: Uint8Array;
@@ -201,7 +218,7 @@ export declare class Log<T> {
201
218
  * Finds entries that are the heads of this collection,
202
219
  * ie. entries that are not referenced by other entries.
203
220
  *
204
- * @param {Array<Entry<T>>} entries Entries to search heads from
221
+ * @param {Array<Entry<T>>} entries - Entries to search heads from
205
222
  * @returns {Array<Entry<T>>}
206
223
  */
207
224
  static findHeads<T>(entries: Entry<T>[]): Entry<T>[];
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"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"}