@ownables/platform-browser 0.1.0 → 0.3.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 (105) hide show
  1. package/dist/core/src/index.d.ts +19 -0
  2. package/dist/core/src/index.d.ts.map +1 -0
  3. package/dist/core/src/index.js +18 -0
  4. package/dist/core/src/index.js.map +1 -0
  5. package/dist/core/src/interfaces/core.d.ts +49 -0
  6. package/dist/core/src/interfaces/core.d.ts.map +1 -0
  7. package/dist/core/src/interfaces/core.js +2 -0
  8. package/dist/core/src/interfaces/core.js.map +1 -0
  9. package/dist/core/src/logger.d.ts +3 -0
  10. package/dist/core/src/logger.d.ts.map +1 -0
  11. package/dist/core/src/logger.js +2 -0
  12. package/dist/core/src/logger.js.map +1 -0
  13. package/dist/core/src/progress.d.ts +3 -0
  14. package/dist/core/src/progress.d.ts.map +1 -0
  15. package/dist/core/src/progress.js +8 -0
  16. package/dist/core/src/progress.js.map +1 -0
  17. package/dist/core/src/services/EventChain.service.d.ts +45 -0
  18. package/dist/core/src/services/EventChain.service.d.ts.map +1 -0
  19. package/dist/core/src/services/EventChain.service.js +112 -0
  20. package/dist/core/src/services/EventChain.service.js.map +1 -0
  21. package/dist/core/src/services/Ownable.service.d.ts +56 -0
  22. package/dist/core/src/services/Ownable.service.d.ts.map +1 -0
  23. package/dist/core/src/services/Ownable.service.js +411 -0
  24. package/dist/core/src/services/Ownable.service.js.map +1 -0
  25. package/dist/core/src/services/Polling.service.d.ts +31 -0
  26. package/dist/core/src/services/Polling.service.d.ts.map +1 -0
  27. package/dist/core/src/services/Polling.service.js +109 -0
  28. package/dist/core/src/services/Polling.service.js.map +1 -0
  29. package/dist/core/src/services/SIWE.service.d.ts +16 -0
  30. package/dist/core/src/services/SIWE.service.d.ts.map +1 -0
  31. package/dist/core/src/services/SIWE.service.js +123 -0
  32. package/dist/core/src/services/SIWE.service.js.map +1 -0
  33. package/dist/core/src/services/StateStoreRecordStore.service.d.ts +13 -0
  34. package/dist/core/src/services/StateStoreRecordStore.service.d.ts.map +1 -0
  35. package/dist/core/src/services/StateStoreRecordStore.service.js +76 -0
  36. package/dist/core/src/services/StateStoreRecordStore.service.js.map +1 -0
  37. package/dist/core/src/types/Authority.d.ts +40 -0
  38. package/dist/core/src/types/Authority.d.ts.map +1 -0
  39. package/dist/core/src/types/Authority.js +2 -0
  40. package/dist/core/src/types/Authority.js.map +1 -0
  41. package/dist/core/src/types/EventChainStore.d.ts +11 -0
  42. package/dist/core/src/types/EventChainStore.d.ts.map +1 -0
  43. package/dist/core/src/types/EventChainStore.js +2 -0
  44. package/dist/core/src/types/EventChainStore.js.map +1 -0
  45. package/dist/core/src/types/MessageInfo.d.ts +19 -0
  46. package/dist/core/src/types/MessageInfo.d.ts.map +1 -0
  47. package/dist/core/src/types/MessageInfo.js +2 -0
  48. package/dist/core/src/types/MessageInfo.js.map +1 -0
  49. package/dist/core/src/types/OwnableRuntime.d.ts +38 -0
  50. package/dist/core/src/types/OwnableRuntime.d.ts.map +1 -0
  51. package/dist/core/src/types/OwnableRuntime.js +2 -0
  52. package/dist/core/src/types/OwnableRuntime.js.map +1 -0
  53. package/dist/core/src/types/Polling.d.ts +14 -0
  54. package/dist/core/src/types/Polling.d.ts.map +1 -0
  55. package/dist/core/src/types/Polling.js +2 -0
  56. package/dist/core/src/types/Polling.js.map +1 -0
  57. package/dist/core/src/types/SIWE.d.ts +30 -0
  58. package/dist/core/src/types/SIWE.d.ts.map +1 -0
  59. package/dist/core/src/types/SIWE.js +2 -0
  60. package/dist/core/src/types/SIWE.js.map +1 -0
  61. package/dist/core/src/types/TypedCosmWasmMsg.d.ts +12 -0
  62. package/dist/core/src/types/TypedCosmWasmMsg.d.ts.map +1 -0
  63. package/dist/core/src/types/TypedCosmWasmMsg.js +2 -0
  64. package/dist/core/src/types/TypedCosmWasmMsg.js.map +1 -0
  65. package/dist/core/src/types/TypedDict.d.ts +4 -0
  66. package/dist/core/src/types/TypedDict.d.ts.map +1 -0
  67. package/dist/core/src/types/TypedDict.js +2 -0
  68. package/dist/core/src/types/TypedDict.js.map +1 -0
  69. package/dist/core/src/types/TypedOwnableInfo.d.ts +34 -0
  70. package/dist/core/src/types/TypedOwnableInfo.d.ts.map +1 -0
  71. package/dist/core/src/types/TypedOwnableInfo.js +2 -0
  72. package/dist/core/src/types/TypedOwnableInfo.js.map +1 -0
  73. package/dist/core/src/types/TypedPackage.d.ts +32 -0
  74. package/dist/core/src/types/TypedPackage.d.ts.map +1 -0
  75. package/dist/core/src/types/TypedPackage.js +2 -0
  76. package/dist/core/src/types/TypedPackage.js.map +1 -0
  77. package/dist/platform-browser/src/index.d.ts +7 -0
  78. package/dist/platform-browser/src/index.d.ts.map +1 -0
  79. package/dist/platform-browser/src/index.js +7 -0
  80. package/dist/platform-browser/src/index.js.map +1 -0
  81. package/dist/platform-browser/src/services/IDB.service.d.ts +29 -0
  82. package/dist/platform-browser/src/services/IDB.service.d.ts.map +1 -0
  83. package/dist/platform-browser/src/services/IDB.service.js +192 -0
  84. package/dist/platform-browser/src/services/IDB.service.js.map +1 -0
  85. package/dist/platform-browser/src/services/LocalStorage.service.d.ts +14 -0
  86. package/dist/platform-browser/src/services/LocalStorage.service.d.ts.map +1 -0
  87. package/dist/platform-browser/src/services/LocalStorage.service.js +57 -0
  88. package/dist/platform-browser/src/services/LocalStorage.service.js.map +1 -0
  89. package/dist/platform-browser/src/services/Package.service.d.ts +48 -0
  90. package/dist/platform-browser/src/services/Package.service.d.ts.map +1 -0
  91. package/dist/platform-browser/src/services/Package.service.js +443 -0
  92. package/dist/platform-browser/src/services/Package.service.js.map +1 -0
  93. package/dist/platform-browser/src/services/Relay.service.d.ts +59 -0
  94. package/dist/platform-browser/src/services/Relay.service.d.ts.map +1 -0
  95. package/dist/platform-browser/src/services/Relay.service.js +289 -0
  96. package/dist/platform-browser/src/services/Relay.service.js.map +1 -0
  97. package/dist/platform-browser/src/services/SessionStorage.service.d.ts +7 -0
  98. package/dist/platform-browser/src/services/SessionStorage.service.d.ts.map +1 -0
  99. package/dist/platform-browser/src/services/SessionStorage.service.js +16 -0
  100. package/dist/platform-browser/src/services/SessionStorage.service.js.map +1 -0
  101. package/dist/platform-browser/src/utils/calculateCid.d.ts +2 -0
  102. package/dist/platform-browser/src/utils/calculateCid.d.ts.map +1 -0
  103. package/dist/platform-browser/src/utils/calculateCid.js +18 -0
  104. package/dist/platform-browser/src/utils/calculateCid.js.map +1 -0
  105. package/package.json +7 -2
@@ -0,0 +1,411 @@
1
+ import { EventChain, Event, Binary } from "eqty-core";
2
+ import { withProgress } from "../progress";
3
+ export default class OwnableService {
4
+ stateStore;
5
+ eventChains;
6
+ eqty;
7
+ packages;
8
+ runtimeSource;
9
+ logger;
10
+ SNAPSHOT_INTERVAL = 50;
11
+ constructor(stateStore, eventChains, eqty, packages, runtimeSource = {
12
+ getWorkerPrelude: () => "",
13
+ }, logger = console) {
14
+ this.stateStore = stateStore;
15
+ this.eventChains = eventChains;
16
+ this.eqty = eqty;
17
+ this.packages = packages;
18
+ this.runtimeSource = runtimeSource;
19
+ this.logger = logger;
20
+ }
21
+ _rpc = new Map();
22
+ get anchoring() {
23
+ return this.eventChains.anchoring;
24
+ }
25
+ async loadAll() {
26
+ return this.eventChains.loadAll();
27
+ }
28
+ isReady(id) {
29
+ return this._rpc.has(id);
30
+ }
31
+ rpc(id) {
32
+ const rpc = this._rpc.get(id);
33
+ if (!rpc)
34
+ throw new Error(`No RPC for ownable ${id}`);
35
+ return rpc;
36
+ }
37
+ clearRpc(id) {
38
+ const rpc = this._rpc.get(id);
39
+ if (!rpc)
40
+ return;
41
+ try {
42
+ delete rpc.handler;
43
+ }
44
+ catch (e) {
45
+ if (e?.name === "Cancelled")
46
+ return;
47
+ this.logger.warn("Unexpected error clearing RPC:", e);
48
+ }
49
+ this._rpc.delete(id);
50
+ }
51
+ async create(pkg, onProgress) {
52
+ const address = this.eqty.address;
53
+ const networkId = this.eqty.chainId;
54
+ const chain = EventChain.create(address, networkId);
55
+ const anchors = [];
56
+ if (pkg.isDynamic || this.anchoring) {
57
+ const msg = {
58
+ "@context": "instantiate_msg.json",
59
+ ownable_id: chain.id,
60
+ package: pkg.cid,
61
+ network_id: networkId,
62
+ keywords: pkg.keywords ?? [],
63
+ };
64
+ await withProgress(onProgress)("signEvent", () => this.eqty.sign(new Event(msg).addTo(chain)));
65
+ }
66
+ if (this.anchoring) {
67
+ const hash = chain.latestHash.hex;
68
+ anchors.push(...chain.startingWith(Binary.fromHex(hash)).anchorMap);
69
+ }
70
+ if (anchors.length > 0) {
71
+ // Queue anchors and submit as single tx
72
+ await this.eqty.anchor(...anchors);
73
+ const txHash = await withProgress(onProgress)("anchorEvent", () => this.eqty.submitAnchors());
74
+ return txHash ? { chain, txHash } : { chain };
75
+ }
76
+ return { chain };
77
+ }
78
+ async init(chain, cid, rpc, uniqueMessageHash) {
79
+ if (this._rpc.has(chain.id)) {
80
+ this.clearRpc(chain.id);
81
+ }
82
+ this._rpc.set(chain.id, rpc);
83
+ const moduleJs = await this.packages.getAssetAsText(cid, "ownable.js");
84
+ const js = this.runtimeSource.getWorkerPrelude() + moduleJs;
85
+ const wasm = (await this.packages.getAsset(cid, "ownable_bg.wasm", (fr, file) => fr.readAsArrayBuffer(file)));
86
+ await rpc.init(chain.id, js, new Uint8Array(wasm));
87
+ const stateDump = await this.apply(chain, []);
88
+ await this.initStore(chain, cid, uniqueMessageHash, stateDump);
89
+ }
90
+ async createSnapshot(chain, stateDump, eventIndex) {
91
+ const chainId = chain.id;
92
+ const storeId = `ownable:${chainId}`;
93
+ const snapshotStoreId = `${storeId}.snapshots`;
94
+ try {
95
+ const snapshot = {
96
+ eventIndex,
97
+ blockHash: chain.latestHash.hex,
98
+ stateDump,
99
+ timestamp: new Date(),
100
+ };
101
+ if (!(await this.stateStore.hasStore(snapshotStoreId))) {
102
+ await this.stateStore.createStore(snapshotStoreId);
103
+ }
104
+ await this.stateStore.set(snapshotStoreId, `snapshot_${eventIndex}`, snapshot);
105
+ // Cleanup old snapshots (keep only last 3)
106
+ const keys = await this.stateStore.keys(snapshotStoreId);
107
+ if (keys.length > 3) {
108
+ const sortedKeys = keys
109
+ .map((key) => parseInt(key.replace("snapshot_", "")))
110
+ .sort((a, b) => b - a);
111
+ // Delete oldest snapshots, keep the 3 most recent
112
+ const keysToDelete = sortedKeys
113
+ .slice(3)
114
+ .map((index) => `snapshot_${index}`);
115
+ for (const key of keysToDelete) {
116
+ await this.stateStore.delete(snapshotStoreId, key);
117
+ }
118
+ }
119
+ }
120
+ catch (error) {
121
+ this.logger.error("Error creating snapshot:", error);
122
+ }
123
+ }
124
+ async getLatestSnapshot(chainId) {
125
+ const storeId = `ownable:${chainId}`;
126
+ const snapshotStoreId = `${storeId}.snapshots`;
127
+ const exist = await this.stateStore.hasStore(snapshotStoreId);
128
+ if (!exist) {
129
+ return null;
130
+ }
131
+ const snapshots = await this.stateStore.keys(snapshotStoreId);
132
+ if (snapshots.length === 0)
133
+ return null;
134
+ const latestKey = snapshots
135
+ .map((key) => parseInt(key.replace("snapshot_", "")))
136
+ .sort((a, b) => b - a)[0];
137
+ return await this.stateStore.get(snapshotStoreId, `snapshot_${latestKey}`);
138
+ }
139
+ async listSnapshots(chainId) {
140
+ const storeId = `ownable:${chainId}`;
141
+ const snapshotStoreId = `${storeId}.snapshots`;
142
+ if (!(await this.stateStore.hasStore(snapshotStoreId))) {
143
+ return [];
144
+ }
145
+ const snapshots = await this.stateStore.keys(snapshotStoreId);
146
+ const sortedKeys = snapshots
147
+ .map((key) => parseInt(key.replace("snapshot_", "")))
148
+ .sort((a, b) => a - b);
149
+ return Promise.all(sortedKeys.map((index) => this.stateStore.get(snapshotStoreId, `snapshot_${index}`)));
150
+ }
151
+ async deleteSnapshots(chainId) {
152
+ const storeId = `ownable:${chainId}`;
153
+ const snapshotStoreId = `${storeId}.snapshots`;
154
+ if (await this.stateStore.hasStore(snapshotStoreId)) {
155
+ await this.stateStore.deleteStore(snapshotStoreId);
156
+ }
157
+ }
158
+ async applyEvent(rpc, event, stateDump, chain, eventIndex) {
159
+ const info = {
160
+ sender: event.signerAddress || this.eqty.address,
161
+ funds: [],
162
+ };
163
+ const { "@context": context, ...msg } = event.parsedData;
164
+ let result;
165
+ switch (context) {
166
+ case "instantiate_msg.json":
167
+ result = await rpc.instantiate(msg, info);
168
+ break;
169
+ case "execute_msg.json":
170
+ result = await rpc.execute(msg, info, stateDump);
171
+ break;
172
+ case "external_event_msg.json":
173
+ const message = {
174
+ msg: {
175
+ event_type: msg.type,
176
+ attributes: msg.attributes,
177
+ network: "",
178
+ },
179
+ };
180
+ result = await rpc.externalEvent(message, info, stateDump);
181
+ break;
182
+ default:
183
+ throw new Error(`Unknown event type`);
184
+ }
185
+ if ((eventIndex + 1) % this.SNAPSHOT_INTERVAL === 0) {
186
+ await this.createSnapshot(chain, result.state, eventIndex);
187
+ }
188
+ return result;
189
+ }
190
+ async apply(partialChain, stateDump) {
191
+ const rpc = this.rpc(partialChain.id);
192
+ const snapshot = await this.getLatestSnapshot(partialChain.id);
193
+ let startIndex = 0;
194
+ if (snapshot) {
195
+ const snapshotEventIndex = partialChain.events.findIndex((e) => e.hash?.hex === snapshot.blockHash);
196
+ if (snapshotEventIndex !== -1) {
197
+ stateDump = snapshot.stateDump;
198
+ startIndex = snapshotEventIndex + 1;
199
+ }
200
+ }
201
+ const BATCH_SIZE = 10;
202
+ const totalEvents = partialChain.events.length;
203
+ for (let batchStart = startIndex; batchStart < totalEvents; batchStart += BATCH_SIZE) {
204
+ const batchEnd = Math.min(batchStart + BATCH_SIZE, totalEvents);
205
+ const batch = partialChain.events.slice(batchStart, batchEnd);
206
+ for (let i = 0; i < batch.length; i++) {
207
+ const globalIndex = batchStart + i;
208
+ const event = batch[i];
209
+ if (!event)
210
+ continue;
211
+ try {
212
+ const result = await this.applyEvent(rpc, event, stateDump, partialChain, globalIndex);
213
+ stateDump = result.state;
214
+ }
215
+ catch (error) {
216
+ this.logger.error(`Error applying event at index ${globalIndex}:`, error);
217
+ if (globalIndex > startIndex) {
218
+ await this.createSnapshot(partialChain, stateDump, globalIndex - 1);
219
+ }
220
+ throw error;
221
+ }
222
+ }
223
+ if (batchEnd < totalEvents) {
224
+ await new Promise((resolve) => setTimeout(resolve, 0));
225
+ }
226
+ }
227
+ return stateDump;
228
+ }
229
+ async execute(chain, msg, stateDump, onProgress) {
230
+ const info = { sender: this.eqty.address, funds: [] };
231
+ const { state: newStateDump } = await this.rpc(chain.id).execute(msg, info, stateDump);
232
+ delete msg["@context"]; // Shouldn't be set
233
+ await withProgress(onProgress)("signEvent", () => this.eqty.sign(new Event({ "@context": "execute_msg.json", ...msg }).addTo(chain)));
234
+ // Store without submitting anchors yet; submission is controlled by caller
235
+ await this.store(chain, newStateDump);
236
+ return newStateDump;
237
+ }
238
+ async submitAnchors(onProgress) {
239
+ if (!this.anchoring)
240
+ return undefined;
241
+ return await withProgress(onProgress)("anchor", () => this.eqty.submitAnchors());
242
+ }
243
+ async canConsume(consumer, info) {
244
+ if (!this.packages.info(consumer.package).isConsumer)
245
+ return false;
246
+ try {
247
+ const state = await this.eventChains.getStateDump(consumer.chain.id, consumer.chain.state.hex);
248
+ if (!state)
249
+ return false;
250
+ const result = await this.rpc(consumer.chain.id).query({
251
+ is_consumer_of: {
252
+ consumable_type: info.ownable_type,
253
+ issuer: info.issuer,
254
+ },
255
+ }, state);
256
+ return result === true;
257
+ }
258
+ catch (error) {
259
+ this.logger.warn("Error checking canConsume:", error);
260
+ return false;
261
+ }
262
+ }
263
+ async consume(consumer, consumable, onProgress) {
264
+ const info = {
265
+ sender: this.eqty.address,
266
+ funds: [],
267
+ };
268
+ const consumeMessage = { consume: {} };
269
+ const consumerState = await this.eventChains.getStateDump(consumer.id, consumer.state.hex);
270
+ const consumableState = await this.eventChains.getStateDump(consumable.id, consumable.state.hex);
271
+ if (!consumerState || !consumableState)
272
+ throw Error("State mismatch for consume");
273
+ const { events, state: consumableStateDump } = await this.rpc(consumable.id).execute(consumeMessage, info, consumableState);
274
+ const consumeEvent = events.find((event) => event.type === "consume");
275
+ if (!consumeEvent)
276
+ throw Error("No consume event emitted");
277
+ consumeEvent.contract = consumable.id;
278
+ const externalEventMsg = {
279
+ msg: {
280
+ attributes: consumeEvent.attributes,
281
+ network: "",
282
+ event_type: consumeEvent.type,
283
+ },
284
+ };
285
+ const { state: consumerStateDump } = await this.rpc(consumer.id).externalEvent(externalEventMsg, info, consumerState);
286
+ await withProgress(onProgress)("signConsumableEvent", () => this.eqty.sign(new Event({ "@context": "execute_msg.json", ...consumeMessage }).addTo(consumable)));
287
+ await withProgress(onProgress)("signConsumerEvent", () => this.eqty.sign(new Event({
288
+ "@context": "external_event_msg.json",
289
+ ...consumeEvent,
290
+ }).addTo(consumer)));
291
+ // Store both chains; emit anchor progress only once to represent anchoring both
292
+ // Queue anchors for both chains without submitting yet
293
+ await this.store(consumable, consumableStateDump);
294
+ await this.store(consumer, consumerStateDump);
295
+ // Submit a single anchor tx for both
296
+ await this.submitAnchors(onProgress);
297
+ }
298
+ async retryOperation(operation, maxRetries = 3, delay = 1000) {
299
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
300
+ try {
301
+ return await operation();
302
+ }
303
+ catch (error) {
304
+ this.logger.warn(`Attempt ${attempt} failed:`, error);
305
+ if (attempt < maxRetries) {
306
+ await new Promise((resolve) => setTimeout(resolve, delay * attempt));
307
+ }
308
+ }
309
+ }
310
+ throw new Error(`Operation failed after ${maxRetries} attempts. Last error: `);
311
+ }
312
+ async initStore(chain, pkg, uniqueMessageHash, stateDump) {
313
+ const storeId = `ownable:${chain.id}`;
314
+ const stateStoreId = `${storeId}.state`;
315
+ const chainData = {
316
+ chain: chain.toJSON(),
317
+ state: chain.state.hex,
318
+ package: pkg,
319
+ created: new Date(),
320
+ latestHash: chain.latestHash.hex,
321
+ keywords: this.packages.info(pkg).keywords,
322
+ uniqueMessageHash: this.packages.info(pkg, uniqueMessageHash)
323
+ .uniqueMessageHash,
324
+ };
325
+ const stores = [storeId];
326
+ if (stateDump)
327
+ stores.push(stateStoreId);
328
+ await this.retryOperation(async () => {
329
+ const hasStore = await this.stateStore.hasStore(storeId);
330
+ if (hasStore) {
331
+ return;
332
+ }
333
+ await this.stateStore.createStore(...stores);
334
+ const data = {
335
+ [storeId]: chainData,
336
+ };
337
+ if (stateDump) {
338
+ data[stateStoreId] = new Map(stateDump);
339
+ }
340
+ try {
341
+ await this.stateStore.setAll(data);
342
+ }
343
+ catch (error) {
344
+ // If setAll fails, attempt to clean up
345
+ this.logger.error("Failed to set data, cleaning up stores...");
346
+ await Promise.all(stores.map((store) => this.stateStore.deleteStore(store).catch(() => { })));
347
+ throw error;
348
+ }
349
+ const verifyData = await Promise.all([
350
+ this.stateStore.get(storeId, "state"),
351
+ stateDump ? this.stateStore.getAll(stateStoreId) : Promise.resolve(null),
352
+ ]);
353
+ if (verifyData[0] !== chainData.state ||
354
+ (stateDump && !verifyData[1]?.length)) {
355
+ throw new Error("Data verification failed after write");
356
+ }
357
+ });
358
+ }
359
+ async store(chain, stateDump) {
360
+ const anchors = [];
361
+ const storeId = `ownable:${chain.id}`;
362
+ const stateStoreId = `${storeId}.state`;
363
+ await this.retryOperation(async () => {
364
+ const storedState = await this.stateStore.get(storeId, "state");
365
+ if (storedState === chain.state)
366
+ return;
367
+ const data = {
368
+ [storeId]: {
369
+ chain: chain.toJSON(),
370
+ state: chain.state.hex,
371
+ latestHash: chain.latestHash.hex,
372
+ },
373
+ [stateStoreId]: new Map(stateDump),
374
+ };
375
+ if (this.anchoring) {
376
+ const previousHash = await this.stateStore.get(`ownable:${chain.id}`, "latestHash");
377
+ anchors.push(...chain.startingAfter(Binary.fromHex(previousHash)).anchorMap);
378
+ }
379
+ if (anchors.length > 0) {
380
+ // Queue anchors only; submission handled separately to allow batching
381
+ await this.eqty.anchor(...anchors);
382
+ }
383
+ await this.stateStore.setAll(data);
384
+ const eventCount = chain.events.length;
385
+ if (eventCount % this.SNAPSHOT_INTERVAL === 0) {
386
+ await this.createSnapshot(chain, stateDump, eventCount - 1);
387
+ }
388
+ // Verify write
389
+ const verifyState = await this.stateStore.get(storeId, "state");
390
+ if (verifyState !== chain.state.hex) {
391
+ throw new Error("State verification failed after write");
392
+ }
393
+ });
394
+ }
395
+ async delete(id) {
396
+ await this.eventChains.delete(id);
397
+ }
398
+ async deleteAll() {
399
+ await this.eventChains.deleteAll();
400
+ }
401
+ async zip(chain) {
402
+ const firstEvent = chain.events[0];
403
+ if (!firstEvent)
404
+ throw new Error("Cannot zip an empty ownable chain");
405
+ const packageCid = firstEvent.parsedData.package;
406
+ const zip = await this.packages.zip(packageCid);
407
+ zip.file("chain.json", JSON.stringify(chain.toJSON()));
408
+ return zip;
409
+ }
410
+ }
411
+ //# sourceMappingURL=Ownable.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ownable.service.js","sourceRoot":"","sources":["../../../../../core/src/services/Ownable.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAoBtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,OAAO,OAAO,cAAc;IAId;IACA;IACA;IACA;IACA;IAGA;IAVF,iBAAiB,GAAG,EAAE,CAAC;IAExC,YACmB,UAAsB,EACtB,WAA8B,EAC9B,IAAoB,EACpB,QAAwB,EACxB,gBAAuC;QACtD,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE;KAC3B,EACgB,SAAqB,OAAO;QAP5B,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAmB;QAC9B,SAAI,GAAJ,IAAI,CAAgB;QACpB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,kBAAa,GAAb,aAAa,CAE7B;QACgB,WAAM,GAAN,MAAM,CAAsB;IAC5C,CAAC;IAEa,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEtD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QASX,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC;YACH,OAAQ,GAAW,CAAC,OAAO,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAAW,EAAE,IAAI,KAAK,WAAW;gBAAE,OAAO;YAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAiB,EACjB,UAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,GAAe,EAAE,CAAC;QAE/B,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,GAAQ;gBACf,UAAU,EAAE,sBAAsB;gBAClC,UAAU,EAAE,KAAK,CAAC,EAAE;gBACpB,OAAO,EAAE,GAAG,CAAC,GAAG;gBAChB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;aAC7B,CAAC;YAEF,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,wCAAwC;YACxC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,GAAG,EAAE,CAChE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAC1B,CAAC;YACF,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAU,EACV,GAAW,EACX,GAAe,EACf,iBAA0B;QAE1B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC;QAE5D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACxC,GAAG,EACH,iBAAiB,EACjB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CACV,EAAiB,CAAC,iBAAiB,CAAC,IAAmB,CAAC,CAC5D,CAAgB,CAAC;QAClB,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAiB,EACjB,SAAoB,EACpB,UAAkB;QAElB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,WAAW,OAAO,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,GAAG,OAAO,YAAY,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAkB;gBAC9B,UAAU;gBACV,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;gBAC/B,SAAS;gBACT,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YAEF,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE/E,2CAA2C;YAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI;qBACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;qBACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEzB,kDAAkD;gBAClD,MAAM,YAAY,GAAG,UAAU;qBAC5B,KAAK,CAAC,CAAC,CAAC;qBACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;gBAEvC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,OAAe;QAEf,MAAM,OAAO,GAAG,WAAW,OAAO,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,GAAG,OAAO,YAAY,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,MAAM,SAAS,GAAG,SAAS;aACxB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;aACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,OAAO,GAAG,WAAW,OAAO,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,GAAG,OAAO,YAAY,CAAC;QAE/C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,SAAS;aACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;aACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,KAAK,EAAE,CAAC,CAC1D,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,OAAO,GAAG,WAAW,OAAO,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,GAAG,OAAO,YAAY,CAAC;QAE/C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,GAAe,EACf,KAAY,EACZ,SAAoB,EACpB,KAAiB,EACjB,UAAkB;QAElB,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAChD,KAAK,EAAE,EAAE;SACa,CAAC;QACzB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAEzD,IAAI,MAAM,CAAC;QACX,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,sBAAsB;gBACzB,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,yBAAyB;gBAC5B,MAAM,OAAO,GAAG;oBACd,GAAG,EAAE;wBACH,UAAU,EAAE,GAAG,CAAC,IAAI;wBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,OAAO,EAAE,EAAE;qBACZ;iBACF,CAAC;gBACF,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,CACT,YAAwB,EACxB,SAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CACtD,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,SAAS,CAC/C,CAAC;YACF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAC/B,UAAU,GAAG,kBAAkB,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAE/C,KACE,IAAI,UAAU,GAAG,UAAU,EAC3B,UAAU,GAAG,WAAW,EACxB,UAAU,IAAI,UAAU,EACxB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK;oBAAE,SAAS;gBAErB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,GAAG,EACH,KAAK,EACL,SAAS,EACT,YAAY,EACZ,WAAW,CACZ,CAAC;oBACF,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;oBAE1E,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;wBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;oBACtE,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAiB,EACjB,GAAc,EACd,SAAoB,EACpB,UAAwB;QAExB,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAyB,CAAC;QAC7E,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAC9D,GAAG,EACH,IAAI,EACJ,SAAS,CACV,CAAC;QAEF,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB;QAE3C,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,KAAK,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CACnE,CACF,CAAC;QAEF,2EAA2E;QAC3E,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAEtC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAwB;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAAgD,EAChD,IAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAEnE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,EACjB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACzB,CAAC;YACF,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CACpD;gBACE,cAAc,EAAE;oBACd,eAAe,EAAE,IAAI,CAAC,YAAY;oBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;aACF,EACD,KAAK,CACN,CAAC;YAEF,OAAO,MAAM,KAAK,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAoB,EACpB,UAAsB,EACtB,UAAwB;QAExB,MAAM,IAAI,GAAwB;YAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YACzB,KAAK,EAAE,EAAE;SACV,CAAC;QACF,MAAM,cAAc,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CACvD,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,KAAK,CAAC,GAAG,CACnB,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CACzD,UAAU,CAAC,EAAE,EACb,UAAU,CAAC,KAAK,CAAC,GAAG,CACrB,CAAC;QACF,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe;YACpC,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE5C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3D,UAAU,CAAC,EAAE,CACd,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAEjD,MAAM,YAAY,GAEF,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY;YAAE,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC3D,YAAY,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC;QAEtC,MAAM,gBAAgB,GAAG;YACvB,GAAG,EAAE;gBACH,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,YAAY,CAAC,IAAI;aAC9B;SACF,CAAC;QAEF,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CACjD,QAAQ,CAAC,EAAE,CACZ,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAEvD,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,qBAAqB,EAAE,GAAG,EAAE,CACzD,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,KAAK,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC,KAAK,CACpE,UAAU,CACX,CACF,CACF,CAAC;QAEF,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,GAAG,EAAE,CACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,KAAK,CAAC;YACR,UAAU,EAAE,yBAAyB;YACrC,GAAG,YAAY;SAChB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACnB,CACF,CAAC;QAEF,gFAAgF;QAChF,uDAAuD;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAE9C,qCAAqC;QACrC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,SAA2B,EAC3B,aAAqB,CAAC,EACtB,QAAgB,IAAI;QAEpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,UAAU,EAAE,KAAK,CAAC,CAAC;gBAEtD,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,yBAAyB,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAiB,EACjB,GAAW,EACX,iBAA0B,EAC1B,SAAqB;QAErB,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,OAAO,QAAQ,CAAC;QAExC,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;YACtB,OAAO,EAAE,GAAG;YACZ,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;YAC1C,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC;iBAC1D,iBAAiB;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC;YAE7C,MAAM,IAAI,GAAc;gBACtB,CAAC,OAAO,CAAC,EAAE,SAAS;aACrB,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uCAAuC;gBACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAC1E,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;gBACrC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACzE,CAAC,CAAC;YAEH,IACE,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK;gBACjC,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EACrC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAiB,EAAE,SAAoB;QACjD,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,OAAO,QAAQ,CAAC;QAExC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,WAAW,KAAK,KAAK,CAAC,KAAK;gBAAE,OAAO;YAExC,MAAM,IAAI,GAAG;gBACX,CAAC,OAAO,CAAC,EAAE;oBACT,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;oBACrB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG;iBACjC;gBACD,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC;aACnC,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAC5C,WAAW,KAAK,CAAC,EAAE,EAAE,EACrB,YAAY,CACb,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,sEAAsE;gBACtE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YACvC,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;YAED,eAAe;YACf,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,WAAW,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAW,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEvD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { KVStore } from "../interfaces/core";
2
+ import type { RelayPollingClient } from "../types/Polling";
3
+ import type { LoggerLike } from "../logger";
4
+ /**
5
+ * @deprecated Relay polling is legacy and will be removed in a future major version.
6
+ * Prefer hub-backed notification flows.
7
+ */
8
+ export declare class PollingService {
9
+ private readonly relay;
10
+ private readonly localStorage;
11
+ private readonly logger;
12
+ private tries;
13
+ private intervalId?;
14
+ private consecutiveFailures;
15
+ private maxConsecutiveFailures;
16
+ constructor(relay: RelayPollingClient, localStorage: KVStore, logger?: LoggerLike);
17
+ /**
18
+ * Fetch new message hashes from the server and compare with client hashes.
19
+ */
20
+ checkForNewHashes(address: string): Promise<any>;
21
+ /**
22
+ * Start polling for message hash updates.
23
+ */
24
+ startPolling(address: string, onUpdate: (count: number) => void, interval?: number): () => void;
25
+ stopPolling(): void;
26
+ /**
27
+ * Clear cached headers and hashes
28
+ */
29
+ clearCache(): void;
30
+ }
31
+ //# sourceMappingURL=Polling.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Polling.service.d.ts","sourceRoot":"","sources":["../../../../../core/src/services/Polling.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;GAGG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,sBAAsB,CAAK;gBAGhB,KAAK,EAAE,kBAAkB,EACzB,YAAY,EAAE,OAAO,EACrB,MAAM,GAAE,UAAoB;IAG/C;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM;IA2EvC;;OAEG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,SAAQ,GACf,MAAM,IAAI;IAwBb,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,UAAU;CAGX"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @deprecated Relay polling is legacy and will be removed in a future major version.
3
+ * Prefer hub-backed notification flows.
4
+ */
5
+ export class PollingService {
6
+ relay;
7
+ localStorage;
8
+ logger;
9
+ tries = 3;
10
+ intervalId;
11
+ consecutiveFailures = 0;
12
+ maxConsecutiveFailures = 5;
13
+ constructor(relay, localStorage, logger = console) {
14
+ this.relay = relay;
15
+ this.localStorage = localStorage;
16
+ this.logger = logger;
17
+ }
18
+ /**
19
+ * Fetch new message hashes from the server and compare with client hashes.
20
+ */
21
+ async checkForNewHashes(address) {
22
+ const pkgs = this.localStorage.get("packages") || [];
23
+ const clientHashes = pkgs.map((msg) => {
24
+ return msg.uniqueMessageHash;
25
+ });
26
+ try {
27
+ const isAvailable = await this.relay.isAvailable();
28
+ if (!isAvailable) {
29
+ return 0;
30
+ }
31
+ await this.relay.ensureAuthenticated();
32
+ const headers = {
33
+ ...this.relay.getAuthHeaders(),
34
+ };
35
+ const lastModified = this.localStorage.get("lastModified");
36
+ if (lastModified) {
37
+ headers["If-Modified-Since"] = lastModified;
38
+ }
39
+ const response = await this.relay.relay.get(`messages/${encodeURIComponent(address)}`, headers);
40
+ // Cast response to handle different response formats
41
+ const responseData = response;
42
+ if (responseData.status === 304) {
43
+ return this.localStorage.get("messageCount") || 0;
44
+ }
45
+ if (responseData.status === 200) {
46
+ const messages = responseData.data?.messages || responseData.messages || [];
47
+ const serverHashes = messages
48
+ .filter((message) => message.hash)
49
+ .map((message) => message.hash);
50
+ const newLastModified = responseData.headers?.["last-modified"];
51
+ if (newLastModified) {
52
+ this.localStorage.set("lastModified", newLastModified);
53
+ }
54
+ const newHashes = serverHashes.filter((hash) => !clientHashes.includes(hash));
55
+ this.localStorage.set("messageCount", newHashes.length);
56
+ return newHashes.length;
57
+ }
58
+ this.consecutiveFailures = 0;
59
+ }
60
+ catch (error) {
61
+ this.logger.error("Error fetching message hashes:", error);
62
+ this.consecutiveFailures++;
63
+ if (this.consecutiveFailures >= this.maxConsecutiveFailures) {
64
+ this.stopPolling();
65
+ return 0;
66
+ }
67
+ if (this.tries-- <= 0) {
68
+ this.tries = 3;
69
+ this.stopPolling();
70
+ }
71
+ }
72
+ return 0;
73
+ }
74
+ /**
75
+ * Start polling for message hash updates.
76
+ */
77
+ startPolling(address, onUpdate, interval = 15000) {
78
+ if (this.intervalId || !this.relay.url) {
79
+ return () => { };
80
+ }
81
+ this.checkForNewHashes(address).then(onUpdate);
82
+ const fetchHashes = async () => {
83
+ try {
84
+ const newCount = await this.checkForNewHashes(address);
85
+ onUpdate(newCount);
86
+ }
87
+ catch (error) {
88
+ this.logger.error("Polling error:", error);
89
+ }
90
+ };
91
+ this.intervalId = setInterval(fetchHashes, interval);
92
+ //cleanup
93
+ return () => {
94
+ clearInterval(this.intervalId);
95
+ };
96
+ }
97
+ stopPolling() {
98
+ if (this.intervalId) {
99
+ clearInterval(this.intervalId);
100
+ }
101
+ }
102
+ /**
103
+ * Clear cached headers and hashes
104
+ */
105
+ clearCache() {
106
+ this.localStorage.remove("lastModified");
107
+ }
108
+ }
109
+ //# sourceMappingURL=Polling.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Polling.service.js","sourceRoot":"","sources":["../../../../../core/src/services/Polling.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ViemSigner } from "eqty-core";
2
+ import type { SIWEMessage, SIWEAuthResult, SIWEClientDeps } from "../types/SIWE";
3
+ export declare class SIWEClient {
4
+ private readonly domain;
5
+ private readonly version;
6
+ private readonly fetchFn;
7
+ private readonly now;
8
+ private readonly nonceGenerator;
9
+ constructor(domain?: string, deps?: SIWEClientDeps);
10
+ generateNonce(): string;
11
+ createMessage(address: string, uri: string, chainId?: number): SIWEMessage;
12
+ signMessage(message: SIWEMessage, signer: ViemSigner): Promise<string>;
13
+ authenticate(signer: ViemSigner, relayUrl: string, chainId?: number): Promise<SIWEAuthResult>;
14
+ getNonce(relayUrl: string): Promise<string>;
15
+ }
16
+ //# sourceMappingURL=SIWE.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SIWE.service.d.ts","sourceRoot":"","sources":["../../../../../core/src/services/SIWE.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwF;IAChH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAEhD,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB;IAOtD,aAAa,IAAI,MAAM;IAQvB,aAAa,CACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAc,GACtB,WAAW;IAaR,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IA0CtE,YAAY,CAChB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,cAAc,CAAC;IA4CpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBlD"}