@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/clock.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare const difference: (a: any, b: any, key: string) => any;
2
+ //# sourceMappingURL=difference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"difference.d.ts","sourceRoot":"","sources":["../../src/difference.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,MAAO,GAAG,KAAK,GAAG,OAAO,MAAM,QAqBrD,CAAC"}
@@ -1,7 +1,8 @@
1
- import { AbstractType } from "@dao-xyz/borsh";
1
+ import { type AbstractType } from "@dao-xyz/borsh";
2
2
  export interface Encoding<T> {
3
3
  encoder: (data: T) => Uint8Array;
4
4
  decoder: (bytes: Uint8Array) => T;
5
5
  }
6
6
  export declare const NO_ENCODING: Encoding<any>;
7
7
  export declare const BORSH_ENCODING: <T>(clazz: AbstractType<T>) => Encoding<T>;
8
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,QAAQ,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC;IACjC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,CAAC;CAClC;AACD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,GAAG,CAarC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAC,CAKpE,CAAC"}
@@ -9,12 +9,12 @@ export const NO_ENCODING = {
9
9
  },
10
10
  decoder: (bytes) => {
11
11
  return bytes;
12
- }
12
+ },
13
13
  };
14
14
  export const BORSH_ENCODING = (clazz) => {
15
15
  return {
16
16
  decoder: (bytes) => deserialize(bytes, clazz),
17
- encoder: (data) => serialize(data)
17
+ encoder: (data) => serialize(data),
18
18
  };
19
19
  };
20
20
  //# sourceMappingURL=encoding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMtE,MAAM,CAAC,MAAM,WAAW,GAAkB;IACzC,OAAO,EAAE,CAAC,GAAe,EAAE,EAAE;QAC5B,IAAI,GAAG,YAAY,UAAU,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACd,2DAA2D;gBAC1D,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAC/C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAsB,EAAe,EAAE;IACxE,OAAO;QACN,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QACzD,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;KACvC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3E,MAAM,CAAC,MAAM,WAAW,GAAkB;IACzC,OAAO,EAAE,CAAC,GAAe,EAAE,EAAE;QAC5B,IAAI,GAAG,YAAY,UAAU,KAAK,KAAK,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACd,2DAA2D;gBAC1D,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAC/C,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAsB,EAAe,EAAE;IACxE,OAAO;QACN,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QACzD,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;KACvC,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { type Blocks } from "@peerbit/blocks-interface";
2
+ import { Cache } from "@peerbit/cache";
3
+ import type { PublicSignKey } from "@peerbit/crypto";
4
+ import { type Index, type Query, type Shape, Sort } from "@peerbit/indexer-interface";
5
+ import { Entry, type ShallowEntry, type ShallowOrFullEntry } from "./entry.js";
6
+ import type { SortFn } from "./log-sorting.js";
7
+ export type ResultsIterator<T> = {
8
+ close: () => void | Promise<void>;
9
+ next: (number: number) => T[] | Promise<T[]>;
10
+ done: () => boolean;
11
+ all(): T[] | Promise<T[]>;
12
+ };
13
+ type ResolveFullyOptions = true | {
14
+ type: "full";
15
+ replicate?: boolean;
16
+ signal?: AbortSignal;
17
+ timeout?: number;
18
+ ignoreMissing?: boolean;
19
+ };
20
+ type ResolveShapeOptions = {
21
+ type: "shape";
22
+ shape: Shape;
23
+ };
24
+ export type MaybeResolveOptions = false | ResolveFullyOptions | ResolveShapeOptions;
25
+ export type ReturnTypeFromResolveOptions<R extends MaybeResolveOptions, T> = R extends false | undefined ? ShallowEntry : R extends {
26
+ type: "shape";
27
+ } ? any : Entry<T>;
28
+ export declare class EntryIndex<T> {
29
+ readonly properties: {
30
+ store: Blocks;
31
+ publicKey: PublicSignKey;
32
+ init: (entry: Entry<T>) => void;
33
+ cache?: Cache<Entry<T>>;
34
+ index: Index<ShallowEntry>;
35
+ sort: SortFn;
36
+ onGidRemoved?: (gid: string[]) => Promise<void> | void;
37
+ };
38
+ private cache;
39
+ private sortReversed;
40
+ private initialied;
41
+ private _length;
42
+ private insertionPromises;
43
+ constructor(properties: {
44
+ store: Blocks;
45
+ publicKey: PublicSignKey;
46
+ init: (entry: Entry<T>) => void;
47
+ cache?: Cache<Entry<T>>;
48
+ index: Index<ShallowEntry>;
49
+ sort: SortFn;
50
+ onGidRemoved?: (gid: string[]) => Promise<void> | void;
51
+ });
52
+ getHeads<R extends MaybeResolveOptions = false>(gid?: string, resolve?: R): ResultsIterator<ReturnTypeFromResolveOptions<R, T>>;
53
+ getHasNext<R extends MaybeResolveOptions>(next: string, resolve?: R): ResultsIterator<ReturnTypeFromResolveOptions<R, T>>;
54
+ countHasNext(next: string, excludeHash?: string | undefined): number | Promise<number>;
55
+ query<R extends MaybeResolveOptions>(query: Query[], sort?: Sort[], options?: R): ResultsIterator<ReturnTypeFromResolveOptions<R, T>>;
56
+ getOldest<T extends boolean, R = T extends true ? Entry<any> : ShallowEntry>(resolve?: T): Promise<R | undefined>;
57
+ getNewest<T extends boolean, R = T extends true ? Entry<any> : ShallowEntry>(resolve?: T): Promise<R | undefined>;
58
+ getBefore<T extends boolean, R = T extends true ? Entry<any> : ShallowEntry>(before: ShallowOrFullEntry<any>, resolve?: T): Promise<R | undefined>;
59
+ getAfter<T extends boolean, R = T extends true ? Entry<any> : ShallowEntry>(before: ShallowOrFullEntry<any>, resolve?: T): Promise<R | undefined>;
60
+ get(k: string, options?: ResolveFullyOptions): Promise<Entry<T> | undefined>;
61
+ getShallow(k: string): Promise<import("@peerbit/indexer-interface").IndexedResult<ShallowEntry> | undefined>;
62
+ has(k: string): Promise<boolean>;
63
+ put(entry: Entry<any>, properties: {
64
+ unique: boolean;
65
+ isHead: boolean;
66
+ toMultiHash: boolean;
67
+ }): Promise<void>;
68
+ delete(k: string): Promise<ShallowEntry | undefined>;
69
+ getMemoryUsage(): Promise<number | bigint>;
70
+ private privateUpdateNextHeadProperty;
71
+ clear(): Promise<void>;
72
+ get length(): number;
73
+ init(): Promise<void>;
74
+ private resolve;
75
+ private resolveFromStore;
76
+ }
77
+ export {};
78
+ //# sourceMappingURL=entry-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-index.d.ts","sourceRoot":"","sources":["../../src/entry-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,316 @@
1
+ import { deserialize, serialize } from "@dao-xyz/borsh";
2
+ import {} from "@peerbit/blocks-interface";
3
+ import { Cache } from "@peerbit/cache";
4
+ import { BoolQuery, CountRequest, DeleteRequest, Not, Or, SearchRequest, Sort, SortDirection, StringMatch, StringMatchMethod, SumRequest, iterate, toId, } from "@peerbit/indexer-interface";
5
+ import { Entry, EntryType, } from "./entry.js";
6
+ import { logger } from "./logger.js";
7
+ const ENTRY_CACHE_MAX_SIZE = 10; // TODO as param for log
8
+ export class EntryIndex {
9
+ properties;
10
+ cache;
11
+ sortReversed;
12
+ initialied = false;
13
+ _length;
14
+ insertionPromises;
15
+ constructor(properties) {
16
+ this.properties = properties;
17
+ this.sortReversed = properties.sort.sort.map((x) => deserialize(serialize(x), Sort));
18
+ this.sortReversed.map((x) => (x.direction =
19
+ x.direction === SortDirection.DESC
20
+ ? SortDirection.ASC
21
+ : SortDirection.DESC));
22
+ this.cache = properties.cache ?? new Cache({ max: ENTRY_CACHE_MAX_SIZE });
23
+ this._length = 0;
24
+ this.insertionPromises = new Map();
25
+ }
26
+ getHeads(gid, resolve = false) {
27
+ const query = [];
28
+ query.push(new BoolQuery({ key: "head", value: true }));
29
+ if (gid) {
30
+ query.push(new StringMatch({
31
+ key: ["meta", "gid"],
32
+ value: gid,
33
+ caseInsensitive: false,
34
+ method: StringMatchMethod.exact,
35
+ }));
36
+ }
37
+ return this.query(query, undefined, resolve);
38
+ }
39
+ getHasNext(next, resolve) {
40
+ const query = [
41
+ new StringMatch({
42
+ key: ["meta", "next"],
43
+ value: next,
44
+ caseInsensitive: false,
45
+ method: StringMatchMethod.exact,
46
+ }),
47
+ ];
48
+ return this.query(query, undefined, resolve);
49
+ }
50
+ countHasNext(next, excludeHash = undefined) {
51
+ const query = [
52
+ new StringMatch({
53
+ key: ["meta", "next"],
54
+ value: next,
55
+ caseInsensitive: false,
56
+ method: StringMatchMethod.exact,
57
+ }),
58
+ ];
59
+ if (excludeHash) {
60
+ query.push(new Not(new StringMatch({
61
+ key: ["hash"],
62
+ value: excludeHash,
63
+ caseInsensitive: false,
64
+ method: StringMatchMethod.exact,
65
+ })));
66
+ }
67
+ return this.properties.index.count(new CountRequest({ query }));
68
+ }
69
+ query(query, sort = this.properties.sort.sort, options) {
70
+ const iterator = iterate(this.properties.index, new SearchRequest({ query, sort }));
71
+ let resolveInFull = options
72
+ ? options === true
73
+ ? true
74
+ : options.type === "full"
75
+ : false;
76
+ let resolveInFullOptions = resolveInFull
77
+ ? options
78
+ : undefined;
79
+ let nextShape = resolveInFull
80
+ ? { hash: true }
81
+ : options?.shape;
82
+ const next = async (amount) => {
83
+ const results = await iterator.next(amount, { shape: nextShape });
84
+ if (resolveInFull) {
85
+ const maybeResolved = await Promise.all(results.results.map((x) => this.resolve(x.value.hash, resolveInFullOptions)));
86
+ return maybeResolved.filter((x) => !!x);
87
+ }
88
+ else {
89
+ return results.results.map((x) => x.value);
90
+ }
91
+ };
92
+ return {
93
+ close: iterator.close,
94
+ done: iterator.done,
95
+ next,
96
+ all: async () => {
97
+ const results = [];
98
+ while (!iterator.done()) {
99
+ for (const element of await next(100)) {
100
+ results.push(element);
101
+ }
102
+ }
103
+ await iterator.close();
104
+ return results;
105
+ },
106
+ };
107
+ }
108
+ async getOldest(resolve) {
109
+ const iterator = this.query([], this.properties.sort.sort, resolve);
110
+ const results = await iterator.next(1);
111
+ await iterator.close();
112
+ return results[0];
113
+ }
114
+ async getNewest(resolve) {
115
+ const iterator = this.query([], this.sortReversed, resolve);
116
+ const results = await iterator.next(1);
117
+ await iterator.close();
118
+ return results[0];
119
+ }
120
+ async getBefore(before, resolve) {
121
+ const iterator = this.query(this.properties.sort.before(before), this.sortReversed, resolve);
122
+ const results = await iterator.next(1);
123
+ await iterator.close();
124
+ return results[0];
125
+ }
126
+ async getAfter(before, resolve) {
127
+ const iterator = this.query(this.properties.sort.after(before), this.properties.sort.sort, resolve);
128
+ const results = await iterator.next(1);
129
+ await iterator.close();
130
+ return results[0];
131
+ }
132
+ async get(k, options) {
133
+ return this.resolve(k, options);
134
+ }
135
+ async getShallow(k) {
136
+ return this.properties.index.get(toId(k));
137
+ }
138
+ async has(k) {
139
+ const result = await this.properties.index.get(toId(k), {
140
+ shape: { hash: true },
141
+ });
142
+ return result != null;
143
+ }
144
+ async put(entry, properties) {
145
+ if (properties.toMultiHash) {
146
+ const existingHash = entry.hash;
147
+ entry.hash = undefined;
148
+ try {
149
+ const hash = await Entry.toMultihash(this.properties.store, entry);
150
+ entry.hash = existingHash;
151
+ if (entry.hash === undefined) {
152
+ entry.hash = hash; // can happen if you sync entries that you load directly from ipfs
153
+ }
154
+ else if (existingHash !== entry.hash) {
155
+ logger.error("Head hash didn't match the contents");
156
+ throw new Error("Head hash didn't match the contents");
157
+ }
158
+ }
159
+ catch (error) {
160
+ logger.error(error);
161
+ throw error;
162
+ }
163
+ }
164
+ else {
165
+ if (!entry.hash) {
166
+ throw new Error("Missing hash");
167
+ }
168
+ }
169
+ const existingPromise = this.insertionPromises.get(entry.hash);
170
+ if (existingPromise) {
171
+ return existingPromise;
172
+ }
173
+ else {
174
+ const fn = async () => {
175
+ this.cache.add(entry.hash, entry);
176
+ if (properties.unique === true || !(await this.has(entry.hash))) {
177
+ this._length++;
178
+ }
179
+ await this.properties.index.put(entry.toShallow(properties.isHead));
180
+ // check if gids has been shadowed, by query all nexts that have a different gid
181
+ if (this.properties.onGidRemoved && entry.meta.next.length > 0) {
182
+ let nextMatches = [];
183
+ for (const next of entry.meta.next) {
184
+ nextMatches.push(new StringMatch({
185
+ key: ["hash"],
186
+ value: next,
187
+ caseInsensitive: false,
188
+ method: StringMatchMethod.exact,
189
+ }));
190
+ }
191
+ const nextsWithOthersGids = await this.query([
192
+ new Or(nextMatches),
193
+ new Not(new StringMatch({
194
+ key: ["meta", "gid"],
195
+ value: entry.meta.gid,
196
+ })),
197
+ ], undefined, { type: "shape", shape: { hash: true, meta: { gid: true } } }).all();
198
+ let shadowedGids = new Set();
199
+ for (const next of nextsWithOthersGids) {
200
+ // check that this entry is not referenced by other
201
+ const nexts = await this.countHasNext(next.hash, entry.hash);
202
+ if (nexts > 0) {
203
+ continue;
204
+ }
205
+ shadowedGids.add(next.meta.gid);
206
+ }
207
+ if (shadowedGids.size > 0) {
208
+ this.properties.onGidRemoved?.([...shadowedGids]);
209
+ }
210
+ }
211
+ // mark all next entries as not heads
212
+ await this.privateUpdateNextHeadProperty(entry, false);
213
+ this.insertionPromises.delete(entry.hash);
214
+ };
215
+ const promise = fn();
216
+ this.insertionPromises.set(entry.hash, promise);
217
+ return promise;
218
+ }
219
+ }
220
+ async delete(k) {
221
+ this.cache.del(k);
222
+ let shallow = (await this.getShallow(k))?.value;
223
+ if (!shallow) {
224
+ return; // already deleted
225
+ }
226
+ let deleted = await this.properties.index.del(new DeleteRequest({ query: { hash: k } }));
227
+ await this.properties.store.rm(k);
228
+ if (deleted.length > 0) {
229
+ this._length -= deleted.length;
230
+ // mark all next entries as new heads
231
+ await this.privateUpdateNextHeadProperty(shallow, true);
232
+ return shallow;
233
+ }
234
+ }
235
+ async getMemoryUsage() {
236
+ return this.properties.index.sum(new SumRequest({ key: "payloadSize" }));
237
+ }
238
+ async privateUpdateNextHeadProperty(from, isHead) {
239
+ if (from.meta.type === EntryType.CUT) {
240
+ // if the next is a cut, we can't update it, since it's not in the index
241
+ return;
242
+ }
243
+ for (const next of from.meta.next) {
244
+ const indexedEntry = await this.properties.index.get(toId(next));
245
+ if (!indexedEntry) {
246
+ continue; // we could end up here because another entry with same next ref is of CUT and has removed it from the index
247
+ }
248
+ if (isHead) {
249
+ const noPointersToNext = (await this.countHasNext(next)) === 0;
250
+ if (noPointersToNext) {
251
+ indexedEntry.value.head = true;
252
+ if (indexedEntry) {
253
+ await this.properties.index.put(indexedEntry.value);
254
+ }
255
+ }
256
+ }
257
+ else {
258
+ indexedEntry.value.head = false;
259
+ if (indexedEntry) {
260
+ await this.properties.index.put(indexedEntry.value);
261
+ }
262
+ }
263
+ }
264
+ }
265
+ async clear() {
266
+ const iterator = await this.query([], undefined, false);
267
+ while (!iterator.done()) {
268
+ const results = await iterator.next(100);
269
+ for (const result of results) {
270
+ await this.delete(result.hash);
271
+ }
272
+ }
273
+ await this.properties.index.drop();
274
+ await this.properties.index.start();
275
+ this.cache.clear();
276
+ }
277
+ get length() {
278
+ if (!this.initialied) {
279
+ throw new Error("Not initialized");
280
+ }
281
+ return this._length;
282
+ }
283
+ async init() {
284
+ this._length = await this.properties.index.getSize();
285
+ this.initialied = true;
286
+ }
287
+ async resolve(k, options) {
288
+ let coercedOptions = typeof options === "object" ? options : undefined;
289
+ if (await this.has(k)) {
290
+ let mem = this.cache.get(k);
291
+ if (mem === undefined) {
292
+ mem = await this.resolveFromStore(k, coercedOptions);
293
+ if (mem) {
294
+ this.properties.init(mem);
295
+ mem.hash = k;
296
+ }
297
+ else if (coercedOptions?.ignoreMissing !== true) {
298
+ throw new Error("Failed to load entry from head with hash: " + k);
299
+ }
300
+ this.cache.add(k, mem ?? undefined);
301
+ }
302
+ return mem ? mem : undefined;
303
+ }
304
+ return undefined;
305
+ }
306
+ async resolveFromStore(k, options) {
307
+ const value = await this.properties.store.get(k, options);
308
+ if (value) {
309
+ const entry = deserialize(value, Entry);
310
+ entry.size = value.length;
311
+ return entry;
312
+ }
313
+ return null;
314
+ }
315
+ }
316
+ //# sourceMappingURL=entry-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-index.js","sourceRoot":"","sources":["../../src/entry-index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { Entry } from "./entry.js";
1
+ import type { Entry } from "./entry.js";
2
2
  export interface EntryWithRefs<T> {
3
3
  entry: Entry<T>;
4
4
  references: Entry<T>[];
5
5
  }
6
+ //# sourceMappingURL=entry-with-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-with-refs.d.ts","sourceRoot":"","sources":["../../src/entry-with-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CACvB"}
@@ -1,8 +1,9 @@
1
+ import { type Blocks } from "@peerbit/blocks-interface";
2
+ import { Ed25519PublicKey, type Identity, MaybeEncrypted, PublicSignKey, SignatureWithKey, X25519Keypair, X25519PublicKey } from "@peerbit/crypto";
3
+ import { type Keychain } from "@peerbit/keychain";
1
4
  import { LamportClock as Clock } from "./clock.js";
2
- import { MaybeEncrypted, PublicSignKey, X25519PublicKey, SignatureWithKey, Ed25519PublicKey, Identity, X25519Keypair } from "@peerbit/crypto";
3
- import { Encoding } from "./encoding.js";
4
- import { Blocks } from "@peerbit/blocks-interface";
5
- import { Keychain } from "@peerbit/keychain";
5
+ import { type Encoding } from "./encoding.js";
6
+ import type { SortableEntry } from "./log-sorting.js";
6
7
  export type MaybeEncryptionPublicKey = X25519PublicKey | X25519PublicKey[] | Ed25519PublicKey | Ed25519PublicKey[] | undefined;
7
8
  export type EncryptionTemplateMaybeEncrypted = EntryEncryptionTemplate<MaybeEncryptionPublicKey, MaybeEncryptionPublicKey, MaybeEncryptionPublicKey | {
8
9
  [key: string]: MaybeEncryptionPublicKey;
@@ -43,7 +44,7 @@ export declare class Meta {
43
44
  next: string[];
44
45
  type: EntryType;
45
46
  data?: Uint8Array;
46
- constructor(properties?: {
47
+ constructor(properties: {
47
48
  gid: string;
48
49
  clock: Clock;
49
50
  type: EntryType;
@@ -58,17 +59,19 @@ export declare class Signatures {
58
59
  });
59
60
  equals(other: Signatures): boolean;
60
61
  }
61
- export interface ShallowEntry {
62
+ export declare class ShallowEntry {
62
63
  hash: string;
63
- meta: {
64
- clock: Clock;
65
- data?: Uint8Array;
66
- gid: string;
67
- next: string[];
68
- type: EntryType;
69
- };
70
- payloadByteLength: number;
64
+ meta: Meta;
65
+ payloadSize: number;
66
+ head: boolean;
67
+ constructor(properties: {
68
+ hash: string;
69
+ meta: Meta;
70
+ payloadSize: number;
71
+ head: boolean;
72
+ });
71
73
  }
74
+ export type ShallowOrFullEntry<T> = ShallowEntry | Entry<T>;
72
75
  export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T>, SignatureWithKey[]> {
73
76
  _meta: MaybeEncrypted<Meta>;
74
77
  _payload: MaybeEncrypted<Payload<T>>;
@@ -89,7 +92,7 @@ export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T
89
92
  init(props: {
90
93
  keychain?: Keychain;
91
94
  encoding: Encoding<T>;
92
- } | Entry<T>): Entry<T>;
95
+ } | Entry<T>): this;
93
96
  get encoding(): Encoding<T>;
94
97
  get meta(): Meta;
95
98
  getMeta(): Promise<Meta>;
@@ -135,7 +138,7 @@ export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T
135
138
  type?: EntryType;
136
139
  gidSeed?: Uint8Array;
137
140
  data?: Uint8Array;
138
- next?: Entry<T>[];
141
+ next?: SortableEntry[];
139
142
  };
140
143
  encoding?: Encoding<T>;
141
144
  canAppend?: CanAppend<T>;
@@ -144,7 +147,7 @@ export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T
144
147
  signers?: ((data: Uint8Array) => Promise<SignatureWithKey> | SignatureWithKey)[];
145
148
  }): Promise<Entry<T>>;
146
149
  get payloadByteLength(): number;
147
- toShallow(): ShallowEntry;
150
+ toShallow(isHead: boolean): ShallowEntry;
148
151
  /**
149
152
  * Get the multihash of an Entry.
150
153
  * @example
@@ -170,7 +173,7 @@ export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T
170
173
  * @param {Entry} b
171
174
  * @returns {number} 1 if a is greater, -1 is b is greater
172
175
  */
173
- static compare<T>(a: Entry<T>, b: Entry<T>): number;
176
+ static compare<T>(a: Entry<T>, b: Entry<T>): any;
174
177
  /**
175
178
  * Check if an entry equals another entry.
176
179
  * @param {Entry} a
@@ -194,3 +197,4 @@ export declare class Entry<T> implements EntryEncryptionTemplate<Meta, Payload<T
194
197
  */
195
198
  static findDirectChildren<T>(entry: Entry<T>, values: Entry<T>[]): Entry<T>[];
196
199
  }
200
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/entry.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAGN,gBAAgB,EAChB,KAAK,QAAQ,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EAGf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,YAAY,IAAI,KAAK,EAAkB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,MAAM,MAAM,wBAAwB,GACjC,eAAe,GACf,eAAe,EAAE,GACjB,gBAAgB,GAChB,gBAAgB,EAAE,GAClB,SAAS,CAAC;AAeb,MAAM,MAAM,gCAAgC,GAAG,uBAAuB,CACrE,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAA;CAAE,CACtE,CAAC;AACF,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,OAAO,EAAE,aAAa,CAAC;CACvB;AAQD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAUjE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAOlD;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE/E,qBACa,OAAO,CAAC,CAAC;IAErB,IAAI,EAAE,UAAU,CAAC;IAEjB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtB,OAAO,CAAC,MAAM,CAAC,CAAI;gBAEP,KAAK,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;KAAE;IAMzE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;IAIlC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,KAAK,IAAI,CAAC,CAKb;IACD,QAAQ,CAAC,QAAQ,GAAE,QAAQ,CAAC,CAAC,CAAgC,GAAG,CAAC;CAMjE;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,CAAC,CAAC;CACd;AAED,oBAAY,SAAS;IACpB,MAAM,IAAI,CAAE,gBAAgB;IAC5B,GAAG,IAAI;CACP;AAGD,qBAAa,IAAI;IAEhB,KAAK,EAAE,KAAK,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,EAAE,CAAC;IAGf,IAAI,EAAE,SAAS,CAAC;IAGhB,IAAI,CAAC,EAAE,UAAU,CAAC;gBAEN,UAAU,EAAE;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KACf;CAOD;AAED,qBACa,UAAU;IAEtB,UAAU,EAAG,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAEpC,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAA;KAAE;IAM3E,MAAM,CAAC,KAAK,EAAE,UAAU;CAWxB;AA2BD,qBAAa,YAAY;IAExB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,IAAI,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,OAAO,CAAC;gBAEF,UAAU,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,IAAI,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC;KACd;CAMD;AACD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,qBACa,KAAK,CAAC,CAAC,CACnB,YAAW,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGxE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAG5B,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAGrC,SAAS,CAAC,EAAE,UAAU,CAAC;IAGvB,WAAW,CAAC,EAAE,UAAU,CAAC;IAGzB,IAAI,EAAG,MAAM,CAAC;IAEd,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAc;gBAEpB,GAAG,EAAE;QAChB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB;IAQD,IAAI,CACH,KAAK,EACF;QACA,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;KACrB,GACD,KAAK,CAAC,CAAC,CAAC,GACT,IAAI;IAWP,IAAI,QAAQ,gBAKX;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;IAIhC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAIxB;IAEK,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IASjC,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC;IAKnC,IAAI,UAAU,IAAI,aAAa,EAAE,CAEhC;IAEK,aAAa,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK/C,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAEK,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIlC,OAAO,CAAC,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAEtB;IAED,IAAI,IAAI,IAAI,MAAM,CAOjB;IACD;;;OAGG;IACH,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAenC;IACD;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAelD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB1C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IAYhD,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC;IAWxB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAShB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;WAIvC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE;QAClC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC;QACR,IAAI,CAAC,EAAE;YACN,KAAK,CAAC,EAAE,KAAK,CAAC;YACd,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,SAAS,CAAC;YACjB,OAAO,CAAC,EAAE,UAAU,CAAC;YACrB,IAAI,CAAC,EAAE,UAAU,CAAC;YAClB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;SACvB,CAAC;QACF,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CACV,IAAI,EAAE,UAAU,KACZ,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC;KACrD,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAoKrB,IAAI,iBAAiB,WAEpB;IAED,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY;IAexC;;;;;;OAMG;WACU,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5E;;;;;;OAMG;WACU,aAAa,CAAC,CAAC,EAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAapD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAQ1C;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAI1C;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAI3D;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAC1B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAChB,KAAK,CAAC,CAAC,CAAC,EAAE;CAYb"}