keri-ts 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/esm/keri/npm/src/acdc/chaining.js +223 -89
  2. package/esm/keri/npm/src/acdc/observing.js +2 -2
  3. package/esm/keri/npm/src/acdc/regbasing.js +20 -29
  4. package/esm/keri/npm/src/acdc/regengine.js +4 -6
  5. package/esm/keri/npm/src/acdc/registering.js +13 -10
  6. package/esm/keri/npm/src/acdc/registraring.js +4 -9
  7. package/esm/keri/npm/src/acdc/salting.js +127 -25
  8. package/esm/keri/npm/src/acdc/unblinding.js +2 -4
  9. package/esm/keri/npm/src/app/bootstrap/oobiery.js +1 -1
  10. package/esm/keri/npm/src/app/credentials/root-replicating.js +123 -0
  11. package/esm/keri/npm/src/app/credentials/verifying.js +12 -3
  12. package/esm/keri/npm/src/app/delivery/forwarding.js +49 -7
  13. package/esm/keri/npm/src/app/exchanges/exchanging.js +11 -12
  14. package/esm/keri/npm/src/app/identity/configing.js +17 -43
  15. package/esm/keri/npm/src/app/identity/habbing.js +54 -35
  16. package/esm/keri/npm/src/app/identity/keeping.js +1 -1
  17. package/esm/keri/npm/src/app/identity/lmdb-habery.js +12 -0
  18. package/esm/keri/npm/src/app/ipex/ipex-graph.js +7 -70
  19. package/esm/keri/npm/src/app/ipex/ipex-grouping.js +8 -5
  20. package/esm/keri/npm/src/app/ipex/ipex-v2.js +21 -5
  21. package/esm/keri/npm/src/app/ipex/ipexing.js +1 -1
  22. package/esm/keri/npm/src/app/mailbox/mailboxing.js +5 -9
  23. package/esm/keri/npm/src/app/multisig/group-members.js +14 -0
  24. package/esm/keri/npm/src/app/multisig/grouping.js +4 -3
  25. package/esm/keri/npm/src/app/multisig/multisig-workflows.js +7 -2
  26. package/esm/keri/npm/src/app/notifications/notifying.js +5 -9
  27. package/esm/keri/npm/src/app/protocol/protocol-processing.js +35 -3
  28. package/esm/keri/npm/src/app/queries/witness-inquisitor.js +2 -2
  29. package/esm/keri/npm/src/app/runtime/agent-runtime.js +7 -10
  30. package/esm/keri/npm/src/app/transport/byte-source.js +6 -42
  31. package/esm/keri/npm/src/app/transport/cesr-egress.js +77 -13
  32. package/esm/keri/npm/src/app/transport/file-bytes.js +41 -0
  33. package/esm/keri/npm/src/app/transport/http-messenger.js +14 -9
  34. package/esm/keri/npm/src/app/transport/message-source.js +1 -1
  35. package/esm/keri/npm/src/app/transport/messengering.js +3 -4
  36. package/esm/keri/npm/src/app/transport/node-http-client.js +21 -0
  37. package/esm/keri/npm/src/app/transport/tcp-dialer.js +14 -0
  38. package/esm/keri/npm/src/app/witness/receipt-client.js +2 -2
  39. package/esm/keri/npm/src/cli/common/context.js +2 -2
  40. package/esm/keri/npm/src/cli/common/existing.js +3 -5
  41. package/esm/keri/npm/src/cli/credentials/ipex.js +2 -1
  42. package/esm/keri/npm/src/cli/endpoints/oobi-clean.js +4 -3
  43. package/esm/keri/npm/src/cli/endpoints/oobi.js +2 -2
  44. package/esm/keri/npm/src/cli/identity/challenge.js +2 -2
  45. package/esm/keri/npm/src/cli/identity/incept.js +2 -2
  46. package/esm/keri/npm/src/cli/identity/init.js +4 -3
  47. package/esm/keri/npm/src/cli/identity/interact.js +2 -2
  48. package/esm/keri/npm/src/cli/identity/rotate.js +2 -2
  49. package/esm/keri/npm/src/cli/messaging/exchange.js +2 -2
  50. package/esm/keri/npm/src/cli/messaging/multisig.js +61 -3
  51. package/esm/keri/npm/src/cli/tools/annotate.js +2 -1
  52. package/esm/keri/npm/src/cli/tools/benchmark.js +2 -1
  53. package/esm/keri/npm/src/cli/tools/db-dump.js +1 -4
  54. package/esm/keri/npm/src/core/bytes.js +9 -0
  55. package/esm/keri/npm/src/core/kel/delegation-ancestry.js +92 -0
  56. package/esm/keri/npm/src/core/kel/eventing.js +1 -2
  57. package/esm/keri/npm/src/core/kel/kever.js +11 -9
  58. package/esm/keri/npm/src/core/mailbox/kram-policy.js +2 -3
  59. package/esm/keri/npm/src/core/mailbox/kram-pruning.js +15 -22
  60. package/esm/keri/npm/src/core/mailbox/kram-staging.js +2 -2
  61. package/esm/keri/npm/src/core/routing.js +2 -2
  62. package/esm/keri/npm/src/db/basing.js +149 -203
  63. package/esm/keri/npm/src/db/core/dber.js +1062 -0
  64. package/esm/keri/npm/src/db/core/index.js +4 -2
  65. package/esm/keri/npm/src/db/core/lmdb-opener.js +30 -0
  66. package/esm/keri/npm/src/db/core/lmdber.js +199 -1067
  67. package/esm/keri/npm/src/db/core/memstore.js +532 -0
  68. package/esm/keri/npm/src/db/core/path-manager.js +109 -223
  69. package/esm/keri/npm/src/db/core/store-owner.js +104 -0
  70. package/esm/keri/npm/src/db/core/webdber.js +252 -0
  71. package/esm/keri/npm/src/db/escrowing.js +2 -2
  72. package/esm/keri/npm/src/db/exchange/exchange-nests.js +3 -2
  73. package/esm/keri/npm/src/db/keeping.js +27 -121
  74. package/esm/keri/npm/src/db/koming.js +1 -1
  75. package/esm/keri/npm/src/db/lmdb-stores.js +68 -0
  76. package/esm/keri/npm/src/db/lmdb.js +6 -0
  77. package/esm/keri/npm/src/db/mailbox/mailboxing.js +12 -65
  78. package/esm/keri/npm/src/db/noting.js +11 -55
  79. package/esm/keri/npm/src/db/reger.js +43 -105
  80. package/esm/keri/npm/src/db/replay/witness-replay.js +2 -20
  81. package/esm/keri/npm/src/db/subing.js +1 -1
  82. package/esm/keri/npm/src/npm/db-lmdb.js +3 -0
  83. package/esm/keri/npm/src/npm/runtime-node.js +3 -0
  84. package/esm/keri/npm/src/runtime/index.js +9 -10
  85. package/esm/keri/npm/src/runtime/node.js +14 -0
  86. package/esm/keri/npm/src/vdr/eventing.js +1 -1
  87. package/esm/keri/npm/src/vdr/tel-publication.js +3 -3
  88. package/esm/keri/npm/src/version.js +2 -2
  89. package/package.json +11 -4
  90. package/types/acdc/chaining.d.ts +56 -6
  91. package/types/acdc/chaining.d.ts.map +1 -1
  92. package/types/acdc/regbasing.d.ts +7 -6
  93. package/types/acdc/regbasing.d.ts.map +1 -1
  94. package/types/acdc/regengine.d.ts.map +1 -1
  95. package/types/acdc/registering.d.ts +8 -4
  96. package/types/acdc/registering.d.ts.map +1 -1
  97. package/types/acdc/registraring.d.ts.map +1 -1
  98. package/types/acdc/salting.d.ts +53 -6
  99. package/types/acdc/salting.d.ts.map +1 -1
  100. package/types/acdc/unblinding.d.ts.map +1 -1
  101. package/types/app/credentials/root-replicating.d.ts +85 -0
  102. package/types/app/credentials/root-replicating.d.ts.map +1 -0
  103. package/types/app/credentials/verifying.d.ts +2 -1
  104. package/types/app/credentials/verifying.d.ts.map +1 -1
  105. package/types/app/delivery/forwarding.d.ts +10 -0
  106. package/types/app/delivery/forwarding.d.ts.map +1 -1
  107. package/types/app/exchanges/exchanging.d.ts +2 -0
  108. package/types/app/exchanges/exchanging.d.ts.map +1 -1
  109. package/types/app/identity/configing.d.ts +7 -5
  110. package/types/app/identity/configing.d.ts.map +1 -1
  111. package/types/app/identity/habbing.d.ts +23 -5
  112. package/types/app/identity/habbing.d.ts.map +1 -1
  113. package/types/app/identity/keeping.d.ts +1 -1
  114. package/types/app/identity/lmdb-habery.d.ts +6 -0
  115. package/types/app/identity/lmdb-habery.d.ts.map +1 -0
  116. package/types/app/ipex/ipex-graph.d.ts +4 -4
  117. package/types/app/ipex/ipex-graph.d.ts.map +1 -1
  118. package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
  119. package/types/app/ipex/ipex-v2.d.ts +11 -2
  120. package/types/app/ipex/ipex-v2.d.ts.map +1 -1
  121. package/types/app/ipex/ipexing.d.ts +3 -0
  122. package/types/app/ipex/ipexing.d.ts.map +1 -1
  123. package/types/app/mailbox/mailboxing.d.ts +1 -1
  124. package/types/app/mailbox/mailboxing.d.ts.map +1 -1
  125. package/types/app/multisig/group-members.d.ts +9 -0
  126. package/types/app/multisig/group-members.d.ts.map +1 -1
  127. package/types/app/multisig/grouping.d.ts.map +1 -1
  128. package/types/app/multisig/multisig-workflows.d.ts +2 -1
  129. package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
  130. package/types/app/notifications/notifying.d.ts +1 -1
  131. package/types/app/notifications/notifying.d.ts.map +1 -1
  132. package/types/app/protocol/parsering.d.ts +3 -1
  133. package/types/app/protocol/parsering.d.ts.map +1 -1
  134. package/types/app/protocol/protocol-processing.d.ts +2 -0
  135. package/types/app/protocol/protocol-processing.d.ts.map +1 -1
  136. package/types/app/runtime/agent-runtime.d.ts +7 -0
  137. package/types/app/runtime/agent-runtime.d.ts.map +1 -1
  138. package/types/app/transport/byte-source.d.ts +13 -10
  139. package/types/app/transport/byte-source.d.ts.map +1 -1
  140. package/types/app/transport/cesr-egress.d.ts +21 -7
  141. package/types/app/transport/cesr-egress.d.ts.map +1 -1
  142. package/types/app/transport/file-bytes.d.ts +11 -0
  143. package/types/app/transport/file-bytes.d.ts.map +1 -0
  144. package/types/app/transport/http-client.d.ts +3 -0
  145. package/types/app/transport/http-client.d.ts.map +1 -1
  146. package/types/app/transport/http-messenger.d.ts +15 -10
  147. package/types/app/transport/http-messenger.d.ts.map +1 -1
  148. package/types/app/transport/message-source.d.ts +1 -1
  149. package/types/app/transport/messengering.d.ts +2 -2
  150. package/types/app/transport/messengering.d.ts.map +1 -1
  151. package/types/app/transport/node-http-client.d.ts +10 -0
  152. package/types/app/transport/node-http-client.d.ts.map +1 -0
  153. package/types/app/transport/tcp-dialer.d.ts +21 -0
  154. package/types/app/transport/tcp-dialer.d.ts.map +1 -0
  155. package/types/cli/common/existing.d.ts.map +1 -1
  156. package/types/cli/credentials/ipex.d.ts.map +1 -1
  157. package/types/cli/endpoints/oobi-clean.d.ts.map +1 -1
  158. package/types/cli/identity/init.d.ts.map +1 -1
  159. package/types/cli/index.d.ts +1 -1
  160. package/types/cli/index.d.ts.map +1 -1
  161. package/types/cli/messaging/multisig.d.ts +10 -1
  162. package/types/cli/messaging/multisig.d.ts.map +1 -1
  163. package/types/cli/tools/annotate.d.ts.map +1 -1
  164. package/types/cli/tools/benchmark.d.ts.map +1 -1
  165. package/types/cli/tools/db-dump.d.ts.map +1 -1
  166. package/types/core/bytes.d.ts +2 -0
  167. package/types/core/bytes.d.ts.map +1 -1
  168. package/types/core/kel/delegation-ancestry.d.ts +41 -0
  169. package/types/core/kel/delegation-ancestry.d.ts.map +1 -0
  170. package/types/core/kel/eventing.d.ts.map +1 -1
  171. package/types/core/kel/kever.d.ts +5 -4
  172. package/types/core/kel/kever.d.ts.map +1 -1
  173. package/types/core/mailbox/kram-policy.d.ts.map +1 -1
  174. package/types/core/mailbox/kram-pruning.d.ts +1 -3
  175. package/types/core/mailbox/kram-pruning.d.ts.map +1 -1
  176. package/types/db/basing.d.ts +14 -23
  177. package/types/db/basing.d.ts.map +1 -1
  178. package/types/db/core/dber.d.ts +505 -0
  179. package/types/db/core/dber.d.ts.map +1 -0
  180. package/types/db/core/index.d.ts +4 -2
  181. package/types/db/core/index.d.ts.map +1 -1
  182. package/types/db/core/lmdb-opener.d.ts +17 -0
  183. package/types/db/core/lmdb-opener.d.ts.map +1 -0
  184. package/types/db/core/lmdber.d.ts +60 -383
  185. package/types/db/core/lmdber.d.ts.map +1 -1
  186. package/types/db/core/memstore.d.ts +129 -0
  187. package/types/db/core/memstore.d.ts.map +1 -0
  188. package/types/db/core/path-manager.d.ts +22 -45
  189. package/types/db/core/path-manager.d.ts.map +1 -1
  190. package/types/db/core/store-owner.d.ts +59 -0
  191. package/types/db/core/store-owner.d.ts.map +1 -0
  192. package/types/db/core/webdber.d.ts +127 -0
  193. package/types/db/core/webdber.d.ts.map +1 -0
  194. package/types/db/escrowing.d.ts +3 -3
  195. package/types/db/escrowing.d.ts.map +1 -1
  196. package/types/db/exchange/exchange-nests.d.ts.map +1 -1
  197. package/types/db/keeping.d.ts +9 -23
  198. package/types/db/keeping.d.ts.map +1 -1
  199. package/types/db/koming.d.ts +7 -8
  200. package/types/db/koming.d.ts.map +1 -1
  201. package/types/db/lmdb-stores.d.ts +45 -0
  202. package/types/db/lmdb-stores.d.ts.map +1 -0
  203. package/types/db/lmdb.d.ts +7 -0
  204. package/types/db/lmdb.d.ts.map +1 -0
  205. package/types/db/mailbox/mailboxing.d.ts +7 -21
  206. package/types/db/mailbox/mailboxing.d.ts.map +1 -1
  207. package/types/db/noting.d.ts +7 -12
  208. package/types/db/noting.d.ts.map +1 -1
  209. package/types/db/reger.d.ts +7 -11
  210. package/types/db/reger.d.ts.map +1 -1
  211. package/types/db/replay/witness-replay.d.ts +0 -2
  212. package/types/db/replay/witness-replay.d.ts.map +1 -1
  213. package/types/db/subing.d.ts +24 -25
  214. package/types/db/subing.d.ts.map +1 -1
  215. package/types/npm/db-lmdb.d.ts +4 -0
  216. package/types/npm/db-lmdb.d.ts.map +1 -0
  217. package/types/npm/runtime-node.d.ts +4 -0
  218. package/types/npm/runtime-node.d.ts.map +1 -0
  219. package/types/runtime/index.d.ts +9 -10
  220. package/types/runtime/index.d.ts.map +1 -1
  221. package/types/runtime/node.d.ts +15 -0
  222. package/types/runtime/node.d.ts.map +1 -0
  223. package/types/version.d.ts +2 -2
  224. package/esm/keri/npm/src/acdc/relating.js +0 -59
  225. package/esm/keri/npm/src/db/baser-defaults.js +0 -11
  226. package/types/acdc/relating.d.ts +0 -21
  227. package/types/acdc/relating.d.ts.map +0 -1
  228. package/types/db/baser-defaults.d.ts +0 -5
  229. package/types/db/baser-defaults.d.ts.map +0 -1
@@ -0,0 +1,505 @@
1
+ /**
2
+ * Backend-neutral store contract shared by every `keri-ts` database backend.
3
+ *
4
+ * ADR-0015 owns the semantics. Backends supply row access and transactions;
5
+ * the ordinal, insertion-ordered set and insertion-ordered duplicate families
6
+ * below are built only on those primitives, so every backend shares them.
7
+ */
8
+ import type { Operation } from "effection";
9
+ import type { Logger } from "../../core/logger.js";
10
+ declare const tableBrand: unique symbol;
11
+ /**
12
+ * Opaque handle to one named table in one open store.
13
+ *
14
+ * Valid only until its store closes or reopens. Only the backend that issued a
15
+ * handle can interpret it.
16
+ */
17
+ export interface Table {
18
+ readonly [tableBrand]: "Table";
19
+ }
20
+ /**
21
+ * Backend-neutral identity of one store.
22
+ *
23
+ * `name` and `base` name the store on every backend; where its bytes live is
24
+ * each backend's own concern.
25
+ */
26
+ export interface StoreIdentity {
27
+ name?: string;
28
+ base?: string;
29
+ temp?: boolean;
30
+ readonly?: boolean;
31
+ /** Delete the store's contents on close. */
32
+ clear?: boolean;
33
+ /** Keep an existing store's contents when reopening it. */
34
+ reuse?: boolean;
35
+ /** Open on construction where the backend supports it. */
36
+ reopen?: boolean;
37
+ logger?: Logger;
38
+ }
39
+ /** One physical row. Both arrays are caller-owned copies. */
40
+ export interface TableEntry {
41
+ key: Uint8Array;
42
+ value: Uint8Array;
43
+ }
44
+ /**
45
+ * Ordered scan bounds. `start` is inclusive unless `exclusiveStart` is set and
46
+ * `end` is always exclusive. In reverse, `start` is the upper position and
47
+ * `end` the lower bound. Dupsort entries order by key, then value.
48
+ */
49
+ export interface ScanOptions {
50
+ start?: Uint8Array;
51
+ end?: Uint8Array;
52
+ exclusiveStart?: boolean;
53
+ reverse?: boolean;
54
+ limit?: number;
55
+ }
56
+ /** The pinned lmdb-js limit on keys and dupsort values, shared by every backend (ADR-0015). */
57
+ export declare const MAX_KEY_BYTES = 1978;
58
+ /**
59
+ * Shared base for every store backend.
60
+ *
61
+ * Subclasses implement the abstract row access. Everything concrete here must
62
+ * stay free of backend types so a new backend inherits identical family
63
+ * behavior.
64
+ */
65
+ export declare abstract class BaseDBer {
66
+ /** Logical database name. */
67
+ abstract get name(): string;
68
+ /** Logical base prefix namespacing `name`. */
69
+ abstract get base(): string;
70
+ /** True while the store can serve reads and writes. */
71
+ abstract get opened(): boolean;
72
+ /** True when this store refuses writes. */
73
+ abstract readonly: boolean;
74
+ /** True for a store that does not outlive its handle. */
75
+ abstract get temp(): boolean;
76
+ /** True while a writer is active, so a caller can tell it is borrowing one. */
77
+ abstract get inWriteTransaction(): boolean;
78
+ /** Open or reopen the store, reporting whether it is now usable. */
79
+ abstract reopen(options?: StoreIdentity): Operation<boolean>;
80
+ /** Close the store, optionally deleting its contents. */
81
+ abstract close(clear?: boolean): Operation<boolean>;
82
+ /** Bind a named table; `dupsort` is fixed when the table is created. */
83
+ abstract openTable(name: string, options?: {
84
+ dupsort?: boolean;
85
+ }): Table;
86
+ /**
87
+ * Run `fn` synchronously in one atomic transaction and return its result.
88
+ * A throw rolls back every effect and rethrows. Nesting is a savepoint.
89
+ */
90
+ abstract transaction<T>(fn: () => T): T;
91
+ /** Yield rows in order under `options`. Close the scan before suspending. */
92
+ abstract scan(table: Table, options?: ScanOptions): Iterable<TableEntry>;
93
+ /**
94
+ * Yield keys in order under `options`. A dupsort table yields each key once:
95
+ * `limit` counts distinct keys and `exclusiveStart` skips every duplicate.
96
+ */
97
+ abstract scanKeys(table: Table, options?: ScanOptions): Iterable<Uint8Array>;
98
+ /**
99
+ * Increases on every outermost commit that wrote rows. Comparable only within
100
+ * one open handle; increments need not be one.
101
+ */
102
+ abstract get writeVersion(): number;
103
+ /** Complete when every earlier commit is durable, or fail with the recorded persistence failure. */
104
+ abstract flushed(): Operation<void>;
105
+ /** Discard any retained read view so later reads observe the latest commit. */
106
+ abstract refreshRead(): void;
107
+ /** Report whether a named table exists, without creating it. */
108
+ abstract hasTable(name: string): boolean;
109
+ /** Read the `__version__` marker, or `null` when absent or malformed. */
110
+ abstract getVer(): string | null;
111
+ /** Write the `__version__` marker. */
112
+ abstract setVer(val: string): void;
113
+ abstract getVal(table: Table, key: Uint8Array): Uint8Array | null;
114
+ abstract putVal(table: Table, key: Uint8Array, val: Uint8Array): boolean;
115
+ abstract setVal(table: Table, key: Uint8Array, val: Uint8Array): boolean;
116
+ abstract delVal(table: Table, key: Uint8Array, val?: Uint8Array): boolean;
117
+ abstract cnt(table: Table): number;
118
+ abstract cntAll(table: Table): number;
119
+ abstract cntTop(table: Table, top?: Uint8Array): number;
120
+ abstract delTop(table: Table, top?: Uint8Array): boolean;
121
+ abstract getTopItemIter(table: Table, top?: Uint8Array): Generator<[Uint8Array, Uint8Array]>;
122
+ abstract putVals(table: Table, key: Uint8Array, vals: Iterable<Uint8Array>): boolean;
123
+ abstract addVal(table: Table, key: Uint8Array, val: Uint8Array): boolean;
124
+ abstract getVals(table: Table, key: Uint8Array): Uint8Array[];
125
+ abstract getValLast(table: Table, key: Uint8Array): Uint8Array | null;
126
+ abstract getValsIter(table: Table, key: Uint8Array): Generator<Uint8Array>;
127
+ abstract cntVals(table: Table, key: Uint8Array): number;
128
+ abstract delVals(table: Table, key: Uint8Array): boolean;
129
+ /** Return the first duplicate at `key` not below `start`, or `null`. */
130
+ abstract seekVal(table: Table, key: Uint8Array, start?: Uint8Array): Uint8Array | null;
131
+ /** Throw the backend's not-open error when the store is closed. */
132
+ protected abstract assertOpen(): void;
133
+ /** Write one physical row inside an active `transaction`, without nesting another. */
134
+ protected abstract putRow(table: Table, key: Uint8Array, val: Uint8Array): void;
135
+ /**
136
+ * Remove a key, or one duplicate when `val` is given, reporting whether a row
137
+ * was removed. Outside a transaction the removal commits by itself.
138
+ */
139
+ protected abstract removeRow(table: Table, key: Uint8Array, val?: Uint8Array): boolean;
140
+ /**
141
+ * Write `val` at the ordinal key `onKey(key, on)` only when absent.
142
+ *
143
+ * The ordinal is encoded into the physical key as a fixed-width 32-hex suffix
144
+ * so LMDB key order matches ordinal order. Mirrors KERIpy `putOnVal`.
145
+ */
146
+ putOnVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array | null, sep?: Uint8Array): boolean;
147
+ /**
148
+ * Write `val` at `onKey(key, on)`, overwriting any existing value.
149
+ *
150
+ * TypeScript-local rename of KERIpy `setOnVal`.
151
+ */
152
+ pinOnVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array | null, sep?: Uint8Array): boolean;
153
+ /**
154
+ * Append `val` at the next ordinal slot for `key`.
155
+ *
156
+ * This scans backward from the `key.MaxON` boundary to find the current tail,
157
+ * then writes at the next ordinal. Returns the appended ordinal. Mirrors
158
+ * KERIpy `appendOnVal`.
159
+ */
160
+ appendOnVal(db: Table, key: Uint8Array, val: Uint8Array | null, sep?: Uint8Array): number;
161
+ /**
162
+ * TypeScript-only convenience returning the exact `(key, on, val)` triple.
163
+ *
164
+ * Returns `null` when that exact ordinal entry is missing.
165
+ */
166
+ getOnItem(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): [Uint8Array, number, Uint8Array] | null;
167
+ /**
168
+ * Fetch the value stored exactly at `onKey(key, on)`.
169
+ *
170
+ * Returns `null` when the exact ordinal entry is missing. Empty logical keys
171
+ * are treated as absent. Mirrors KERIpy `getOnVal`.
172
+ */
173
+ getOnVal(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): Uint8Array | null;
174
+ /**
175
+ * Remove the value stored exactly at `onKey(key, on)`.
176
+ *
177
+ * Empty logical keys return `false`. TypeScript-local rename of KERIpy
178
+ * `delOnVal`.
179
+ */
180
+ remOn(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): boolean;
181
+ /**
182
+ * Remove all ordinal entries for `key` starting at ordinal `on`.
183
+ *
184
+ * Empty `key` removes the whole DB branch. TypeScript-only convenience built
185
+ * on the same ordinal-key semantics as KERIpy `delOnVal`.
186
+ */
187
+ remOnAll(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): boolean;
188
+ /**
189
+ * Count ordinal-keyed entries for `key` starting at ordinal `on`.
190
+ *
191
+ * Empty `key` counts the whole DB. TypeScript-local rename of KERIpy
192
+ * `cntOnVals`.
193
+ */
194
+ cntOnAll(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): number;
195
+ /**
196
+ * Iterate `(key, on, val)` triples whose physical keys begin with branch `top`.
197
+ *
198
+ * This is the ordinal-key version of `getTopItemIter`, so branch membership is
199
+ * still a lexicographic key-prefix concept. TypeScript-only convenience.
200
+ */
201
+ getOnTopItemIter(db: Table, top?: Uint8Array, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
202
+ /**
203
+ * Iterate `(key, on, val)` triples for ordinals `>= on`.
204
+ *
205
+ * Empty `key` iterates the whole DB. Ordering follows the fixed-width ordinal
206
+ * encoded in the key. TypeScript-local rename of KERIpy `getOnItemIter`.
207
+ */
208
+ getOnAllItemIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
209
+ /**
210
+ * Add each unique value in `vals` to the insertion-ordered set at `key`.
211
+ *
212
+ * This emulates duplicate-like behavior in keyspace, not native LMDB dupsort:
213
+ * values are stored under hidden suffixed keys `key.<ion>`. Existing logical
214
+ * members are skipped, new members append at the next suffix. Mirrors KERIpy
215
+ * `putIoSetVals`.
216
+ */
217
+ putIoSetVals(db: Table, key: Uint8Array, vals: Iterable<Uint8Array> | null, sep?: Uint8Array): boolean;
218
+ /**
219
+ * Replace the insertion-ordered set at `key` with the provided unique values.
220
+ *
221
+ * This clears the existing synthetic key run for `key`, then rewrites fresh
222
+ * hidden suffixes from zero. TypeScript-local rename of KERIpy `setIoSetVals`.
223
+ */
224
+ pinIoSetVals(db: Table, key: Uint8Array, vals: Iterable<Uint8Array> | null, sep?: Uint8Array): boolean;
225
+ /**
226
+ * Add one value to the insertion-ordered set at `key` if it is not present.
227
+ *
228
+ * Membership is checked by scanning the synthetic key run for `key`; new
229
+ * values append at the next hidden suffix. Mirrors KERIpy `addIoSetVal`.
230
+ */
231
+ addIoSetVal(db: Table, key: Uint8Array, val: Uint8Array | null, sep?: Uint8Array): boolean;
232
+ /**
233
+ * Iterate `(key, val)` pairs for the insertion-ordered set at `key`.
234
+ *
235
+ * Iteration starts at hidden insertion ordinal `ion`. Returned keys are the
236
+ * logical effective key with the hidden suffix removed. TypeScript-local item
237
+ * variant corresponding to KERIpy `getIoSetValsIter`.
238
+ */
239
+ getIoSetItemIter(db: Table, key: Uint8Array, ion?: number, sep?: Uint8Array): Generator<[Uint8Array, Uint8Array]>;
240
+ /**
241
+ * Return the last logical set member at `key`, or `null`.
242
+ *
243
+ * "Last" means the entry stored under the greatest hidden insertion suffix,
244
+ * not the lexicographically greatest value bytes. TypeScript-local item
245
+ * variant corresponding to KERIpy `getIoSetValLast`.
246
+ */
247
+ getIoSetLastItem(db: Table, key: Uint8Array, sep?: Uint8Array): [Uint8Array, Uint8Array] | null;
248
+ /**
249
+ * Remove all insertion-ordered set members at `key`.
250
+ *
251
+ * This deletes the full synthetic key run for the effective key. TypeScript-
252
+ * local rename of KERIpy `delIoSetVals`.
253
+ */
254
+ remIoSet(db: Table, key: Uint8Array, sep?: Uint8Array): boolean;
255
+ /**
256
+ * Remove one logical set member at `key`, or all members when `val` is `null`.
257
+ *
258
+ * Delete-by-value requires a linear search because the caller does not know
259
+ * the hidden insertion suffix. As in KERIpy, suffix ordinals can grow
260
+ * monotonically over time after deletes and reinserts. TypeScript-local rename
261
+ * of KERIpy `delIoSetVal`.
262
+ */
263
+ remIoSetVal(db: Table, key: Uint8Array, val?: Uint8Array | null, sep?: Uint8Array): boolean;
264
+ /**
265
+ * Count logical set members at `key` starting from hidden insertion ordinal `ion`.
266
+ *
267
+ * TypeScript-local item-count variant corresponding to KERIpy `cntIoSetVals`.
268
+ */
269
+ cntIoSet(db: Table, key: Uint8Array, ion?: number, sep?: Uint8Array): number;
270
+ /**
271
+ * Iterate `(key, val)` pairs for all synthetic-set entries in branch `top`.
272
+ *
273
+ * Branch membership is still a lexicographic key-prefix scan over the
274
+ * physical suffixed keys; returned keys have the hidden insertion suffix
275
+ * removed. Mirrors KERIpy `getTopIoSetItemIter`.
276
+ */
277
+ getTopIoSetItemIter(db: Table, top?: Uint8Array, sep?: Uint8Array): Generator<[Uint8Array, Uint8Array]>;
278
+ /**
279
+ * Iterate the last `(key, val)` member for each effective io-set key.
280
+ *
281
+ * Empty `key` iterates the whole DB. "Last" is determined by hidden suffix
282
+ * order. TypeScript-local item variant built from KERIpy `getIoSetValLast`
283
+ * and branch iteration semantics.
284
+ */
285
+ getIoSetLastItemIterAll(db: Table, key?: Uint8Array, sep?: Uint8Array): Generator<[Uint8Array, Uint8Array]>;
286
+ /**
287
+ * Iterate only the last logical values for each effective io-set key `>= key`.
288
+ *
289
+ * TypeScript-only convenience built on `getIoSetLastItemIterAll`.
290
+ */
291
+ getIoSetLastIterAll(db: Table, key?: Uint8Array, sep?: Uint8Array): Generator<Uint8Array>;
292
+ /**
293
+ * TypeScript-only extension. Add set members at ordinal effective key `onKey(key, on)`.
294
+ *
295
+ * This is the `On` + `IoSet` composition: exposed ordinal in keyspace, hidden
296
+ * insertion suffix inside that ordinal bucket.
297
+ */
298
+ putOnIoSetVals(db: Table, key: Uint8Array, on?: number, vals?: Iterable<Uint8Array> | null, sep?: Uint8Array): boolean;
299
+ /**
300
+ * TypeScript-only extension. Replace set members at ordinal effective key.
301
+ *
302
+ * This is the ordinal-bucketed counterpart to `pinIoSetVals`.
303
+ */
304
+ pinOnIoSetVals(db: Table, key: Uint8Array, on?: number, vals?: Iterable<Uint8Array> | null, sep?: Uint8Array): boolean;
305
+ /**
306
+ * TypeScript-only extension. Append a new ordinal bucket for `key`.
307
+ *
308
+ * Returns the newly appended exposed ordinal. Within that bucket, the values
309
+ * are stored as an `IoSet` using hidden insertion suffixes.
310
+ */
311
+ appendOnIoSetVals(db: Table, key: Uint8Array, vals: Iterable<Uint8Array> | null, sep?: Uint8Array): number;
312
+ /**
313
+ * TypeScript-only extension. Add one set member inside an ordinal bucket.
314
+ *
315
+ * This is the ordinal-bucketed counterpart to `addIoSetVal`.
316
+ */
317
+ addOnIoSetVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array | null, sep?: Uint8Array): boolean;
318
+ /**
319
+ * TypeScript-only extension. Iterate `(key, on, val)` members at one exact ordinal.
320
+ *
321
+ * Ordering inside the bucket follows the hidden insertion suffix.
322
+ */
323
+ getOnIoSetItemIter(db: Table, key: Uint8Array, on?: number, ion?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
324
+ /**
325
+ * TypeScript-only extension. Fetch the last member in one ordinal bucket.
326
+ *
327
+ * Returns `null` when that exact ordinal bucket is empty or missing.
328
+ */
329
+ getOnIoSetLastItem(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): [Uint8Array, number, Uint8Array] | null;
330
+ /**
331
+ * TypeScript-only extension. Remove one member from an ordinal bucket.
332
+ *
333
+ * When `val` is `null`, removes the whole ordinal bucket.
334
+ */
335
+ remOnIoSetVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array | null, sep?: Uint8Array): boolean;
336
+ /**
337
+ * TypeScript-only extension. Remove all ordinal buckets for `key` from `on` onward.
338
+ *
339
+ * Empty `key` removes the whole DB branch.
340
+ */
341
+ remOnAllIoSet(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): boolean;
342
+ /**
343
+ * TypeScript-only extension. Count members in one ordinal bucket from insertion ordinal `ion`.
344
+ */
345
+ cntOnIoSet(db: Table, key: Uint8Array, on?: number, ion?: number, sep?: Uint8Array): number;
346
+ /**
347
+ * TypeScript-only extension. Count all members across ordinal buckets for `key` from `on` onward.
348
+ */
349
+ cntOnAllIoSet(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): number;
350
+ /**
351
+ * TypeScript-only extension. Iterate `(key, on, val)` members in branch `top`.
352
+ *
353
+ * This is the branch-scan form of `OnIoSet*`, still based on lexicographic
354
+ * physical key-prefix traversal.
355
+ */
356
+ getOnTopIoSetItemIter(db: Table, top?: Uint8Array, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
357
+ /**
358
+ * TypeScript-only extension. Iterate `(key, on, val)` members for ordinals `>= on`.
359
+ *
360
+ * Empty `key` iterates the whole DB.
361
+ */
362
+ getOnAllIoSetItemIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
363
+ /**
364
+ * TypeScript-only extension. Iterate the last member for each ordinal bucket.
365
+ *
366
+ * Empty `key` iterates all logical keys and ordinals in the DB.
367
+ */
368
+ getOnAllIoSetLastItemIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
369
+ /**
370
+ * TypeScript-only extension. Iterate backward over `(key, on, val)` members.
371
+ *
372
+ * Backward order is materialized from the forward iterator, then reversed.
373
+ */
374
+ getOnAllIoSetItemBackIter(db: Table, key?: Uint8Array, on?: number | null, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
375
+ /**
376
+ * TypeScript-only extension. Iterate backward over the last member per ordinal bucket.
377
+ */
378
+ getOnAllIoSetLastItemBackIter(db: Table, key?: Uint8Array, on?: number | null, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
379
+ /**
380
+ * Add insertion-ordered duplicate values at `key`.
381
+ *
382
+ * Each stored value gets a hidden 33-byte proem (`32 hex chars + '.'`) so
383
+ * LMDB's lexicographic duplicate ordering becomes logical insertion order.
384
+ * Returned values later strip that proem away. Mirrors KERIpy `putIoDupVals`.
385
+ */
386
+ putIoDupVals(db: Table, key: Uint8Array, vals: Iterable<Uint8Array>): boolean;
387
+ /**
388
+ * Add one insertion-ordered duplicate value at `key` if absent.
389
+ *
390
+ * Mirrors KERIpy `addIoDupVal`.
391
+ */
392
+ addIoDupVal(db: Table, key: Uint8Array, val: Uint8Array | null): boolean;
393
+ /**
394
+ * Get insertion-ordered duplicate values at `key`, with the hidden proem removed.
395
+ *
396
+ * Ordering is logical insertion order because the hidden proem controls LMDB
397
+ * dupsort ordering. Mirrors KERIpy `getIoDupVals`.
398
+ */
399
+ getIoDupVals(db: Table, key: Uint8Array): Uint8Array[];
400
+ /**
401
+ * Iterate insertion-ordered duplicate values at `key`, with the hidden proem removed.
402
+ *
403
+ * Mirrors KERIpy `getIoDupValsIter`.
404
+ */
405
+ getIoDupValsIter(db: Table, key: Uint8Array): Generator<Uint8Array>;
406
+ /**
407
+ * Get the most recently inserted logical duplicate value at `key`.
408
+ *
409
+ * This uses the lexicographically last stored proem-prefixed duplicate and
410
+ * strips the hidden proem before returning. Mirrors KERIpy `getIoDupValLast`.
411
+ */
412
+ getIoDupValLast(db: Table, key: Uint8Array): Uint8Array | null;
413
+ /** Delete all insertion-ordered duplicates at `key`. Mirrors KERIpy `delIoDupVals`. */
414
+ delIoDupVals(db: Table, key: Uint8Array): boolean;
415
+ /**
416
+ * Delete one insertion-ordered duplicate value at `key`, matching the stripped logical value.
417
+ *
418
+ * This performs a linear search over stored proem-prefixed duplicates. Mirrors
419
+ * KERIpy `delIoDupVal`.
420
+ */
421
+ delIoDupVal(db: Table, key: Uint8Array, val: Uint8Array): boolean;
422
+ /** Count insertion-ordered duplicates at `key`. Mirrors KERIpy `cntIoDupVals`. */
423
+ cntIoDups(db: Table, key: Uint8Array): number;
424
+ /**
425
+ * Iterate `(key, val)` over branch `top`, stripping the hidden IoDup proem from each value.
426
+ *
427
+ * Mirrors KERIpy `getTopIoDupItemIter`.
428
+ */
429
+ getTopIoDupItemIter(db: Table, top?: Uint8Array): Generator<[Uint8Array, Uint8Array]>;
430
+ /**
431
+ * TypeScript-only convenience adding insertion-ordered duplicates at one exact ordinal key.
432
+ *
433
+ * This is the ordinal-bucketed counterpart to `putIoDupVals`. KERIpy exposes
434
+ * `addOnIoDupVal` and iterator-based accessors instead of this bulk helper.
435
+ */
436
+ putOnIoDupVals(db: Table, key: Uint8Array, on: number | undefined, vals: Iterable<Uint8Array>, sep?: Uint8Array): boolean;
437
+ /** Add one insertion-ordered duplicate at ordinal effective key. Mirrors KERIpy `addOnIoDupVal`. */
438
+ addOnIoDupVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array | null, sep?: Uint8Array): boolean;
439
+ /**
440
+ * Append one insertion-ordered duplicate value at the next ordinal bucket for `key`.
441
+ *
442
+ * Mirrors KERIpy `appendOnIoDupVal`.
443
+ */
444
+ appendOnIoDupVal(db: Table, key: Uint8Array, val: Uint8Array, sep?: Uint8Array): number;
445
+ /**
446
+ * TypeScript-only convenience returning all logical duplicates at one exact ordinal.
447
+ *
448
+ * KERIpy exposes scan-style iterators across ordinals rather than this exact
449
+ * per-ordinal list helper.
450
+ */
451
+ getOnIoDupVals(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): Uint8Array[];
452
+ /**
453
+ * TypeScript-only convenience iterating logical duplicates at one exact ordinal.
454
+ *
455
+ * No direct KERIpy equivalent: KERIpy `getOnIoDupValIter` scans all ordinals
456
+ * from `on` onward, which maps to `getOnIoDupIterAll` here.
457
+ */
458
+ getOnIoDupValsIter(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): Generator<Uint8Array>;
459
+ /**
460
+ * TypeScript-only convenience fetching the last logical duplicate at one exact ordinal.
461
+ */
462
+ getOnIoDupLast(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): Uint8Array | null;
463
+ /** Iterate the last logical duplicate value per ordinal bucket. Mirrors KERIpy `getOnIoDupLastValIter`. */
464
+ getOnIoDupLastValIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<Uint8Array>;
465
+ /** Iterate `(key, on, val)` where `val` is the last logical duplicate per ordinal bucket. Mirrors KERIpy `getOnIoDupLastItemIter`. */
466
+ getOnIoDupLastItemIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
467
+ /**
468
+ * Iterate `(key, on, val)` logical duplicates across a top branch.
469
+ *
470
+ * This mirrors the KERIpy helper added for normalized `OnIoDupSuber`
471
+ * branch iteration and strips the hidden insertion-order proem from each
472
+ * duplicate value before yielding it.
473
+ */
474
+ getOnTopIoDupItemIter(db: Table, top?: Uint8Array, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
475
+ /** Delete all insertion-ordered duplicates at one ordinal effective key. TypeScript-local rename of KERIpy `delOnIoDupVals`. */
476
+ delOnIoDups(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): boolean;
477
+ /** Delete one insertion-ordered duplicate at one ordinal effective key. Mirrors KERIpy `delOnIoDupVal`. */
478
+ delOnIoDupVal(db: Table, key: Uint8Array, on?: number, val?: Uint8Array, sep?: Uint8Array): boolean;
479
+ /**
480
+ * TypeScript-only convenience counting logical duplicates at one exact ordinal.
481
+ *
482
+ * KERIpy does not expose this exact count helper on `LMDBer`.
483
+ */
484
+ cntOnIoDups(db: Table, key: Uint8Array, on?: number, sep?: Uint8Array): number;
485
+ /** Iterate backwards over logical duplicate values. Mirrors KERIpy `getOnIoDupValBackIter`. */
486
+ getOnIoDupValBackIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<Uint8Array>;
487
+ /** Iterate backwards over `(key, on, val)` logical duplicates. Mirrors KERIpy `getOnIoDupItemBackIter`. */
488
+ getOnIoDupItemBackIter(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
489
+ /**
490
+ * Iterate logical duplicate values for ordinals `>= on`.
491
+ *
492
+ * TypeScript-local name for KERIpy `getOnIoDupValIter`.
493
+ */
494
+ getOnIoDupIterAll(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<Uint8Array>;
495
+ /**
496
+ * Iterate `(key, on, val)` logical duplicates for ordinals `>= on`.
497
+ *
498
+ * TypeScript-local name for KERIpy `getOnIoDupItemIter`.
499
+ */
500
+ getOnIoDupItemIterAll(db: Table, key?: Uint8Array, on?: number, sep?: Uint8Array): Generator<[Uint8Array, number, Uint8Array]>;
501
+ }
502
+ /** The public store contract from ADR-0015. Depend on this, not on a backend. */
503
+ export type DBer = Pick<BaseDBer, keyof BaseDBer>;
504
+ export {};
505
+ //# sourceMappingURL=dber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dber.d.ts","sourceRoot":"","sources":["../../../src/db/core/dber.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Core database module exports
3
3
  */
4
+ export * from "./dber.js";
4
5
  export * from "./keys.js";
5
- export * from "./lmdber.js";
6
- export * from "./path-manager.js";
6
+ export * from "./memstore.js";
7
+ export * from "./store-owner.js";
8
+ export * from "./webdber.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** LMDB placement of store families, reproducing each family's established paths. */
2
+ import type { StoreIdentity } from "./dber.js";
3
+ import { LMDBer, type LMDBerDefaults, type LmdbLocation } from "./lmdber.js";
4
+ import type { StoreFamily, StoreOpener } from "./store-owner.js";
5
+ /** Derive the LMDB path defaults for one family. */
6
+ export declare function lmdbDefaultsFor(family: StoreFamily, compat?: boolean): Partial<LMDBerDefaults>;
7
+ /** Where one composition's LMDB stores live. */
8
+ export interface LmdbOpenerLocation extends Pick<LmdbLocation, "headDirPath" | "mapSize"> {
9
+ compat?: boolean;
10
+ }
11
+ /** The default `StoreOpener`: closed LMDB stores at the family's established paths. */
12
+ export declare class LmdbStoreOpener implements StoreOpener {
13
+ readonly location: LmdbOpenerLocation;
14
+ constructor(location?: LmdbOpenerLocation);
15
+ create(family: StoreFamily, identity: StoreIdentity): LMDBer;
16
+ }
17
+ //# sourceMappingURL=lmdb-opener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lmdb-opener.d.ts","sourceRoot":"","sources":["../../../src/db/core/lmdb-opener.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjE,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAW5F;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,uFAAuF;AACvF,qBAAa,eAAgB,YAAW,WAAW;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;gBAA5B,QAAQ,GAAE,kBAAuB;IAEtD,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM;CAI7D"}