@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
package/lib/esm/heads.js DELETED
@@ -1,157 +0,0 @@
1
- import { HeadsCache } from "./heads-cache.js";
2
- import { logger } from "./logger.js";
3
- export class HeadsIndex {
4
- _id;
5
- _index = new Set();
6
- _gids; // gid -> hash -> entry
7
- _headsCache;
8
- _config;
9
- _onGidRemoved;
10
- constructor(id) {
11
- this._gids = new Map();
12
- this._id = id;
13
- }
14
- async init(log, options = {}) {
15
- this._config = log;
16
- this._onGidRemoved = options.onGidRemoved;
17
- await this.reset(options?.entries || []);
18
- if (log.memory) {
19
- this._headsCache = new HeadsCache(this);
20
- return this._headsCache.init(await log.memory.sublevel("heads"));
21
- }
22
- }
23
- async load(options) {
24
- if (!this._headsCache || (this._headsCache.loaded && !options?.reload)) {
25
- return;
26
- }
27
- // TODO make below into a promise that concurrenct caklls can wait on?
28
- const heads = await this._headsCache?.load();
29
- if (!heads) {
30
- return;
31
- }
32
- const entries = await Promise.all(heads.map(async (x) => {
33
- const entry = await this._config.entryIndex.get(x, { load: true });
34
- if (!entry) {
35
- if (options?.ignoreMissing) {
36
- logger.error("Failed to load entry from head with hash: " + x);
37
- return;
38
- }
39
- else {
40
- throw new Error("Failed to load entry from head with hash: " + x);
41
- }
42
- }
43
- await entry.getMeta(); // TODO types,decrypt gid
44
- return entry;
45
- }));
46
- const filtered = entries.filter((x) => !!x);
47
- await this.reset(filtered);
48
- return filtered;
49
- }
50
- get headsCache() {
51
- return this._headsCache;
52
- }
53
- close() {
54
- return this._headsCache?.close();
55
- }
56
- drop() {
57
- return this._headsCache?.drop();
58
- }
59
- get id() {
60
- return this._id;
61
- }
62
- get index() {
63
- return this._index;
64
- }
65
- get gids() {
66
- return this._gids;
67
- }
68
- get size() {
69
- return this._index.size;
70
- }
71
- async reset(entries, options = { cache: { reset: true, update: true } }) {
72
- this._index.clear();
73
- const gidKeys = [...this._gids.keys()];
74
- this._gids = new Map();
75
- if (entries?.length > 0) {
76
- await this.putAll(entries, options); // reset cache = true
77
- }
78
- if (gidKeys.length > 0) {
79
- this._onGidRemoved?.(gidKeys);
80
- }
81
- }
82
- has(cid) {
83
- return this._index.has(cid);
84
- }
85
- async put(entry, options) {
86
- await this._putOne(entry);
87
- if (!options?.cache || options?.cache?.update) {
88
- await this._headsCache?.queue({ added: [entry] }, options?.cache?.reset);
89
- }
90
- }
91
- async putAll(entries, options) {
92
- await this._putAll(entries);
93
- if (!options?.cache || options?.cache?.update) {
94
- await this._headsCache?.queue({ added: entries }, options?.cache?.reset);
95
- }
96
- }
97
- async resetHeadsCache() {
98
- await this._headsCache?.queue({ added: [...this._index], removed: [] }, true);
99
- }
100
- async updateHeadsCache(change = {}, reset) {
101
- await this._headsCache?.queue(change, reset);
102
- }
103
- async _putOne(entry) {
104
- if (!entry.hash) {
105
- throw new Error("Missing hash");
106
- }
107
- if (this._index.has(entry.hash)) {
108
- return;
109
- }
110
- this._index.add(entry.hash);
111
- const map = this._gids.get(entry.meta.gid);
112
- if (!map) {
113
- const newMap = new Map();
114
- this._gids.set(entry.meta.gid, newMap);
115
- newMap.set(entry.hash, entry);
116
- }
117
- else {
118
- map.set(entry.hash, entry);
119
- }
120
- for (const next of entry.next) {
121
- const indexedEntry = this._config.entryIndex.getShallow(next);
122
- if (indexedEntry) {
123
- await this.del(indexedEntry, { cache: { update: false } }); // we dont update cache here because the put will update the cache that is calling _putOne
124
- }
125
- }
126
- }
127
- async _putAll(entries) {
128
- for (const entry of entries) {
129
- await this._putOne(entry);
130
- }
131
- }
132
- async del(entry, options) {
133
- const wasHead = this._index.delete(entry.hash);
134
- if (!wasHead) {
135
- return false;
136
- }
137
- let removedGids = undefined;
138
- const map = this._gids.get(entry.meta.gid);
139
- map.delete(entry.hash);
140
- if (map.size <= 0) {
141
- this._gids.delete(entry.meta.gid);
142
- (removedGids || (removedGids = new Set())).add(entry.meta.gid);
143
- }
144
- if (!entry.hash) {
145
- throw new Error("Missing hash");
146
- }
147
- if (removedGids) {
148
- await this._onGidRemoved?.([...removedGids]);
149
- }
150
- if (wasHead && !(options?.cache || options?.cache?.update)) {
151
- await this._headsCache?.queue({ removed: [entry.hash] }, options?.cache?.reset);
152
- }
153
- return wasHead;
154
- // this._headsCache = undefined; // TODO do smarter things here, only remove the element needed (?)
155
- }
156
- }
157
- //# sourceMappingURL=heads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heads.js","sourceRoot":"","sources":["../../src/heads.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { ShallowEntry } from "./entry.js";
2
- export type ISortFunction = <T>(a: ShallowEntry, b: ShallowEntry, resolveConflict?: (a: ShallowEntry, b: ShallowEntry) => number) => number;
3
- /**
4
- * Sort two entries as Last-Write-Wins (LWW).
5
- *
6
- * Last Write Wins is a conflict resolution strategy for sorting elements
7
- * where the element with a greater clock (latest) is chosen as the winner.
8
- *
9
- * @param {Entry} a First entry
10
- * @param {Entry} b Second entry
11
- * @returns {number} 1 if a is latest, -1 if b is latest
12
- */
13
- export declare const LastWriteWins: ISortFunction;
14
- /**
15
- * Sort two entries by their hash.
16
- *
17
- * @param {Entry} a First entry
18
- * @param {Entry} b Second entry
19
- * @returns {number} 1 if a is latest, -1 if b is latest
20
- */
21
- export declare const SortByEntryHash: ISortFunction;
22
- /**
23
- * Sort two entries by their clock time.
24
- * @param {Entry} a First entry to compare
25
- * @param {Entry} b Second entry to compare
26
- * @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.
27
- * @returns {number} 1 if a is greater, -1 if b is greater
28
- */
29
- export declare const SortByClocks: ISortFunction;
30
- /**
31
- * Sort two entries by their clock id.
32
- * @param {Entry} a First entry to compare
33
- * @param {Entry} b Second entry to compare
34
- * @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.
35
- * @returns {number} 1 if a is greater, -1 if b is greater
36
- */
37
- export declare const SortByClockId: ISortFunction;
38
- /**
39
- * A wrapper function to throw an error if the results of a passed function return zero
40
- * @param {function(a, b)} [tiebreaker] The tiebreaker function to validate.
41
- * @returns {function(a, b)} 1 if a is greater, -1 if b is greater
42
- * @throws {Error} if func ever returns 0
43
- */
44
- export declare const NoZeroes: (func: ISortFunction) => <T>(a: ShallowEntry, b: ShallowEntry) => number;
@@ -1,86 +0,0 @@
1
- import { LamportClock as Clock } from "./clock.js";
2
- import { compare } from "@peerbit/uint8arrays";
3
- const First = (a, b) => a;
4
- /**
5
- * Sort two entries as Last-Write-Wins (LWW).
6
- *
7
- * Last Write Wins is a conflict resolution strategy for sorting elements
8
- * where the element with a greater clock (latest) is chosen as the winner.
9
- *
10
- * @param {Entry} a First entry
11
- * @param {Entry} b Second entry
12
- * @returns {number} 1 if a is latest, -1 if b is latest
13
- */
14
- export const LastWriteWins = (a, b) => {
15
- // Ultimate conflict resolution (take the first/left arg)
16
- // Sort two entries by their clock id, if the same always take the first
17
- const sortById = (a, b) => SortByClockId(a, b, First);
18
- // Sort two entries by their clock time, if concurrent,
19
- // determine sorting using provided conflict resolution function
20
- const sortByEntryClocks = (a, b) => SortByClocks(a, b, sortById);
21
- // Sort entries by clock time as the primary sort criteria
22
- return sortByEntryClocks(a, b);
23
- };
24
- /**
25
- * Sort two entries by their hash.
26
- *
27
- * @param {Entry} a First entry
28
- * @param {Entry} b Second entry
29
- * @returns {number} 1 if a is latest, -1 if b is latest
30
- */
31
- export const SortByEntryHash = (a, b) => {
32
- // Ultimate conflict resolution (compare hashes)
33
- const compareHash = (a, b) => a.hash < b.hash ? -1 : 1;
34
- // Sort two entries by their clock id, if the same then compare hashes
35
- const sortById = (a, b) => SortByClockId(a, b, compareHash);
36
- // Sort two entries by their clock time, if concurrent,
37
- // determine sorting using provided conflict resolution function
38
- const sortByEntryClocks = (a, b) => SortByClocks(a, b, sortById);
39
- // Sort entries by clock time as the primary sort criteria
40
- return sortByEntryClocks(a, b);
41
- };
42
- /**
43
- * Sort two entries by their clock time.
44
- * @param {Entry} a First entry to compare
45
- * @param {Entry} b Second entry to compare
46
- * @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.
47
- * @returns {number} 1 if a is greater, -1 if b is greater
48
- */
49
- export const SortByClocks = (a, b, resolveConflict) => {
50
- // Compare the clocks
51
- const diff = Clock.compare(a.meta.clock, b.meta.clock);
52
- // If the clocks are concurrent, use the provided
53
- // conflict resolution function to determine which comes first
54
- return diff === 0 ? (resolveConflict || First)(a, b) : diff;
55
- };
56
- /**
57
- * Sort two entries by their clock id.
58
- * @param {Entry} a First entry to compare
59
- * @param {Entry} b Second entry to compare
60
- * @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.
61
- * @returns {number} 1 if a is greater, -1 if b is greater
62
- */
63
- export const SortByClockId = (a, b, resolveConflict) => {
64
- // Sort by ID if clocks are concurrent,
65
- // take the entry with a "greater" clock id
66
- const clockCompare = compare(a.meta.clock.id, b.meta.clock.id);
67
- return clockCompare === 0 ? (resolveConflict || First)(a, b) : clockCompare;
68
- };
69
- /**
70
- * A wrapper function to throw an error if the results of a passed function return zero
71
- * @param {function(a, b)} [tiebreaker] The tiebreaker function to validate.
72
- * @returns {function(a, b)} 1 if a is greater, -1 if b is greater
73
- * @throws {Error} if func ever returns 0
74
- */
75
- export const NoZeroes = (func) => {
76
- const comparator = (a, b) => {
77
- // Validate by calling the function
78
- const result = func(a, b, (a, b) => -1);
79
- if (result === 0) {
80
- throw Error(`Your log's tiebreaker function, ${func.name}, has returned zero and therefore cannot be`);
81
- }
82
- return result;
83
- };
84
- return comparator;
85
- };
86
- //# sourceMappingURL=log-sorting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-sorting.js","sourceRoot":"","sources":["../../src/log-sorting.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"trim.js","sourceRoot":"","sources":["../../src/trim.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export declare class StringArray {
2
- arr: string[];
3
- constructor(properties?: {
4
- arr: string[];
5
- });
6
- }
package/lib/esm/types.js DELETED
@@ -1,23 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { field, vec } from "@dao-xyz/borsh";
11
- export class StringArray {
12
- arr;
13
- constructor(properties) {
14
- if (properties) {
15
- this.arr = properties.arr;
16
- }
17
- }
18
- }
19
- __decorate([
20
- field({ type: vec("string") }),
21
- __metadata("design:type", Array)
22
- ], StringArray.prototype, "arr", void 0);
23
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,OAAO,WAAW;IAEvB,GAAG,CAAW;IAEd,YAAY,UAA8B;QACzC,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAC3B,CAAC;IACF,CAAC;CACD;AAPA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;;wCACjB"}
@@ -1,2 +0,0 @@
1
- export declare const max: <T>(...args: T[]) => T;
2
- export declare const min: <T>(...args: T[]) => T;
package/lib/esm/utils.js DELETED
@@ -1,3 +0,0 @@
1
- export const max = (...args) => args.reduce((m, e) => (e > m ? e : m));
2
- export const min = (...args) => args.reduce((m, e) => (e < m ? e : m));
3
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,GAAG,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAI,GAAG,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,26 +0,0 @@
1
- import { Entry } from "./entry";
2
- import { ISortFunction } from "./log-sorting";
3
- import yallist from "yallist";
4
- import { EntryIndex } from "./entry-index";
5
- export type EntryNode = yallist.Node<string>;
6
- export declare class Values<T> {
7
- /**
8
- * Keep track of sorted elements in descending sort order (i.e. newest elements)
9
- */
10
- private _values;
11
- private _sortFn;
12
- private _byteLength;
13
- private _entryIndex;
14
- constructor(entryIndex: EntryIndex<T>, sortFn: ISortFunction, entries?: Entry<T>[]);
15
- toArray(): Promise<Entry<T>[]>;
16
- get head(): yallist.Node<string> | null;
17
- get tail(): yallist.Node<string> | null;
18
- get length(): number;
19
- get entryIndex(): EntryIndex<T>;
20
- put(value: Entry<T>): void;
21
- _put(value: Entry<T>): void;
22
- delete(value: Entry<T> | string): Promise<void>;
23
- deleteNode(node: EntryNode): void;
24
- pop(): string | undefined;
25
- get byteLength(): number;
26
- }
package/lib/esm/values.js DELETED
@@ -1,131 +0,0 @@
1
- import yallist from "yallist";
2
- export class Values {
3
- /**
4
- * Keep track of sorted elements in descending sort order (i.e. newest elements)
5
- */
6
- _values;
7
- _sortFn;
8
- _byteLength;
9
- _entryIndex;
10
- constructor(entryIndex, sortFn, entries = []) {
11
- this._values = yallist.create(entries
12
- .slice()
13
- .sort(sortFn)
14
- .reverse()
15
- .map((x) => {
16
- if (!x.hash)
17
- throw new Error("Unexpected");
18
- return x.hash; /* {
19
- hash: x.hash,
20
- byteLength: x._payload.byteLength,
21
- meta: {
22
- gids: x.gids,
23
- gid: x.gid,
24
- data: x.meta.data,
25
- },
26
- }; */
27
- }));
28
- this._byteLength = 0;
29
- entries.forEach((entry) => {
30
- this._byteLength += entry._payload.byteLength;
31
- });
32
- this._sortFn = sortFn;
33
- this._entryIndex = entryIndex;
34
- }
35
- toArray() {
36
- return Promise.all(this._values.toArrayReverse().map((x) => this._entryIndex.get(x))).then((arr) => arr.filter((x) => !!x)); // we do reverse because we assume the log is only meaningful if we read it from start to end
37
- }
38
- get head() {
39
- return this._values.head;
40
- }
41
- get tail() {
42
- return this._values.tail;
43
- }
44
- get length() {
45
- return this._values.length;
46
- }
47
- get entryIndex() {
48
- return this._entryIndex;
49
- }
50
- put(value) {
51
- return this._put(value);
52
- }
53
- _put(value) {
54
- // assume we want to insert at head (or somehere close)
55
- let walker = this._values.head;
56
- let last = undefined;
57
- while (walker) {
58
- const walkerValue = this._entryIndex.getShallow(walker.value);
59
- if (!walkerValue) {
60
- throw new Error("Missing walker value");
61
- }
62
- if (walkerValue.hash === value.hash) {
63
- return; // already exist!
64
- }
65
- if (this._sortFn(walkerValue, value) < 0) {
66
- break;
67
- }
68
- last = walker;
69
- walker = walker.next;
70
- continue;
71
- }
72
- this._byteLength += value._payload.byteLength;
73
- if (!value.hash) {
74
- throw new Error("Unexpected");
75
- }
76
- _insertAfter(this._values, last, value.hash);
77
- }
78
- async delete(value) {
79
- const hash = typeof value === "string" ? value : value.hash;
80
- // Assume we want to delete at tail (or somwhere close)
81
- let walker = this._values.tail;
82
- while (walker) {
83
- const walkerValue = this._entryIndex.getShallow(walker.value);
84
- if (!walkerValue) {
85
- throw new Error("Missing walker value");
86
- }
87
- if (walkerValue.hash === hash) {
88
- this._values.removeNode(walker);
89
- this._byteLength -= walkerValue.payloadByteLength;
90
- return;
91
- }
92
- walker = walker.prev; // prev will be undefined if you do removeNode(walker)
93
- }
94
- throw new Error("Failed to delete, entry does not exist" +
95
- " ??? " +
96
- this.length +
97
- " ??? " +
98
- hash);
99
- }
100
- deleteNode(node) {
101
- this._values.removeNode(node);
102
- this._byteLength -= this._entryIndex.getShallow(node.value).payloadByteLength;
103
- return;
104
- }
105
- pop() {
106
- const value = this._values.pop();
107
- if (value) {
108
- this._byteLength -= this._entryIndex.getShallow(value).payloadByteLength;
109
- }
110
- return value;
111
- }
112
- get byteLength() {
113
- return this._byteLength;
114
- }
115
- }
116
- function _insertAfter(self, node, value) {
117
- const inserted = !node
118
- ? new yallist.Node(value, null, self.head, self)
119
- : new yallist.Node(value, node, node.next, self);
120
- // is tail
121
- if (inserted.next === null) {
122
- self.tail = inserted;
123
- }
124
- // is head
125
- if (inserted.prev === null) {
126
- self.head = inserted;
127
- }
128
- self.length++;
129
- return inserted;
130
- }
131
- //# sourceMappingURL=values.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/values.ts"],"names":[],"mappings":"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"}