@peerbit/blocks 4.1.9 → 4.2.1

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.
@@ -38,13 +38,12 @@ import { checkDecodeBlock, cidifyString, codecCodes, stringifyCid, } from "@peer
38
38
  import { Cache } from "@peerbit/cache";
39
39
  import { PublicSignKey } from "@peerbit/crypto";
40
40
  import { logger as loggerFn } from "@peerbit/logger";
41
- import { dontThrowIfDeliveryError } from "@peerbit/stream";
41
+ import { dontThrowIfDeliveryError, } from "@peerbit/stream";
42
42
  import { SilentDelivery, } from "@peerbit/stream-interface";
43
43
  import { AbortError } from "@peerbit/time";
44
44
  import { CID } from "multiformats";
45
45
  import {} from "multiformats/block";
46
46
  import PQueue from "p-queue";
47
- import { AnyBlockStore } from "./any-blockstore.js";
48
47
  export const logger = loggerFn("peerbit:transport:blocks");
49
48
  const warn = logger.newScope("warn");
50
49
  export class BlockMessage {
@@ -119,15 +118,23 @@ export { BlockResponse };
119
118
  export class RemoteBlocks {
120
119
  options;
121
120
  localStore;
121
+ // Assigned in the constructor only when the local store supports it:
122
+ // callers feature-detect this method (the log's columnar raw-receive
123
+ // fast path), so it must not exist without a delegation target.
124
+ putKnownManyColumns;
122
125
  _responseHandler;
123
126
  _resolvers;
124
127
  _blockCache;
125
128
  _providerCache;
129
+ _rustProviderCache;
130
+ rustExchange;
126
131
  publicKeyHash;
127
132
  maxProviderHintsPerCid;
128
133
  maxRequeryOnReachable;
129
134
  _loadFetchQueue;
130
135
  _readFromPeersPromises;
136
+ _deferredStoredNotificationCids;
137
+ _deferredStoredNotificationTimer;
131
138
  _open = false;
132
139
  _events = new TypedEventEmitter();
133
140
  closeController = new AbortController();
@@ -135,31 +142,50 @@ export class RemoteBlocks {
135
142
  this.options = options;
136
143
  const localTimeout = options?.localTimeout || 1000;
137
144
  this.publicKeyHash = options.publicKey.hashcode();
145
+ this.rustExchange = options.rust?.exchange;
138
146
  this._loadFetchQueue = new PQueue({
139
147
  concurrency: options?.messageProcessingConcurrency || 10,
140
148
  });
141
149
  this.localStore = options?.local;
150
+ const localPutKnownManyColumns = this.localStore?.putKnownManyColumns;
151
+ if (typeof localPutKnownManyColumns === "function") {
152
+ this.putKnownManyColumns = (cids, bytes) => {
153
+ const stored = localPutKnownManyColumns.call(this.localStore, cids, bytes);
154
+ void this.notifyPuts(stored);
155
+ return stored;
156
+ };
157
+ }
142
158
  this._resolvers = new Map();
143
159
  this._readFromPeersPromises = new Map();
144
- this._blockCache = options?.eagerBlocks
145
- ? new Cache({
146
- max: typeof options.eagerBlocks === "boolean"
147
- ? 1e3
148
- : (options.eagerBlocks.cacheSize ?? 1e3),
149
- ttl: 1e4,
150
- })
151
- : undefined;
160
+ if (options?.eagerBlocks) {
161
+ const eagerBlocksMax = typeof options.eagerBlocks === "boolean"
162
+ ? 1e3
163
+ : (options.eagerBlocks.cacheSize ?? 1e3);
164
+ this._blockCache = this.rustExchange
165
+ ? this.rustExchange.createEagerCache({ max: eagerBlocksMax, ttl: 1e4 })
166
+ : new Cache({ max: eagerBlocksMax, ttl: 1e4 });
167
+ }
152
168
  const providerCache = options.providerCache === false
153
169
  ? undefined
154
170
  : typeof options.providerCache === "object"
155
171
  ? options.providerCache
156
172
  : {};
157
- this._providerCache = providerCache
158
- ? new Cache({
159
- max: providerCache.maxEntries ?? 2048,
160
- ttl: providerCache.ttlMs ?? 10 * 60 * 1000,
161
- })
162
- : undefined;
173
+ if (providerCache) {
174
+ if (this.rustExchange) {
175
+ this._rustProviderCache = this.rustExchange.createProviderCache({
176
+ me: this.publicKeyHash,
177
+ maxEntries: providerCache.maxEntries ?? 2048,
178
+ ttlMs: providerCache.ttlMs ?? 10 * 60 * 1000,
179
+ maxProvidersPerCid: providerCache.maxProvidersPerCid ?? 8,
180
+ });
181
+ }
182
+ else {
183
+ this._providerCache = new Cache({
184
+ max: providerCache.maxEntries ?? 2048,
185
+ ttl: providerCache.ttlMs ?? 10 * 60 * 1000,
186
+ });
187
+ }
188
+ }
163
189
  this.maxProviderHintsPerCid = providerCache?.maxProvidersPerCid ?? 8;
164
190
  this.maxRequeryOnReachable = options.requeryOnReachable ?? 4;
165
191
  this._responseHandler = async (message, context) => {
@@ -199,9 +225,15 @@ export class RemoteBlocks {
199
225
  }
200
226
  };
201
227
  }
228
+ getNativeLogBlockStoreHandle() {
229
+ return this.localStore.getNativeLogBlockStoreHandle?.();
230
+ }
202
231
  normalizeProviderHints(providers, limit = this.maxProviderHintsPerCid || 8) {
203
232
  if (!providers || providers.length === 0)
204
233
  return [];
234
+ if (this.rustExchange) {
235
+ return this.rustExchange.normalizeProviderHints(providers, this.publicKeyHash, limit);
236
+ }
205
237
  const out = [];
206
238
  for (const p of providers) {
207
239
  if (!p)
@@ -218,6 +250,10 @@ export class RemoteBlocks {
218
250
  return out;
219
251
  }
220
252
  rememberProvider(cidString, providerHash) {
253
+ if (this._rustProviderCache) {
254
+ this._rustProviderCache.rememberProvider(cidString, providerHash);
255
+ return;
256
+ }
221
257
  if (!this._providerCache)
222
258
  return;
223
259
  if (!providerHash || providerHash === this.publicKeyHash)
@@ -236,6 +272,10 @@ export class RemoteBlocks {
236
272
  this._providerCache.add(cidString, next);
237
273
  }
238
274
  rememberProviderHints(cidString, providers) {
275
+ if (this._rustProviderCache) {
276
+ this._rustProviderCache.rememberHints(cidString, providers);
277
+ return;
278
+ }
239
279
  if (!this._providerCache)
240
280
  return;
241
281
  const normalized = this.normalizeProviderHints(providers);
@@ -243,7 +283,15 @@ export class RemoteBlocks {
243
283
  return;
244
284
  this._providerCache.add(cidString, normalized);
245
285
  }
286
+ getCachedProviders(cidString) {
287
+ return this._rustProviderCache
288
+ ? this._rustProviderCache.get(cidString)
289
+ : (this._providerCache?.get(cidString) ?? undefined);
290
+ }
246
291
  pickRequestBatch(providers, attempt) {
292
+ if (this.rustExchange) {
293
+ return this.rustExchange.pickRequestBatch(providers, this.publicKeyHash, attempt);
294
+ }
247
295
  if (providers.length <= 1) {
248
296
  return providers;
249
297
  }
@@ -259,7 +307,7 @@ export class RemoteBlocks {
259
307
  // Priority:
260
308
  // 1. cached providers (from previous reads)
261
309
  // 2. resolveProviders hook (e.g. program-level replicators, DHT, tracker)
262
- const cached = this.normalizeProviderHints(this._providerCache?.get(cidString) ?? undefined);
310
+ const cached = this.normalizeProviderHints(this.getCachedProviders(cidString));
263
311
  if (!this.options.resolveProviders)
264
312
  return cached;
265
313
  if (cached.length > 0 && !options?.refresh)
@@ -281,17 +329,130 @@ export class RemoteBlocks {
281
329
  throw new Error("Local store not set");
282
330
  }
283
331
  const cid = await this.localStore.put(bytes);
332
+ await this.notifyPut(cid);
333
+ return cid;
334
+ }
335
+ async putMany(blocks) {
336
+ if (!this.localStore) {
337
+ throw new Error("Local store not set");
338
+ }
339
+ const cids = await this.localStore.putMany(blocks);
340
+ await this.notifyPuts(cids);
341
+ return cids;
342
+ }
343
+ async putKnown(cid, bytes) {
344
+ if (!this.localStore) {
345
+ throw new Error("Local store not set");
346
+ }
347
+ const storedCid = await this.localStore.putKnown(cid, bytes);
348
+ await this.notifyPut(storedCid);
349
+ return storedCid;
350
+ }
351
+ async putKnownMany(blocks) {
352
+ if (!this.localStore) {
353
+ throw new Error("Local store not set");
354
+ }
355
+ const cids = await this.localStore.putKnownMany(blocks);
356
+ await this.notifyPuts(cids);
357
+ return cids;
358
+ }
359
+ hasNotifyStoredHook() {
360
+ return !!this.options.onPut;
361
+ }
362
+ notifyStored(cid) {
363
+ return this.notifyPut(cid);
364
+ }
365
+ notifyStoredMany(cids) {
366
+ return this.notifyPuts(cids);
367
+ }
368
+ notifyStoredDeferred(cid) {
369
+ this.notifyStoredManyDeferred([cid]);
370
+ }
371
+ notifyStoredManyDeferred(cids) {
372
+ if (!this.options.onPut || cids.length === 0) {
373
+ return;
374
+ }
375
+ let pending = this._deferredStoredNotificationCids;
376
+ if (!pending) {
377
+ pending = new Set();
378
+ this._deferredStoredNotificationCids = pending;
379
+ }
380
+ for (const cid of cids) {
381
+ if (cid) {
382
+ pending.add(cid);
383
+ }
384
+ }
385
+ if (pending.size === 0 || this._deferredStoredNotificationTimer) {
386
+ return;
387
+ }
388
+ this._deferredStoredNotificationTimer = setTimeout(() => {
389
+ this._deferredStoredNotificationTimer = undefined;
390
+ const flushed = this.flushDeferredStoredNotifications();
391
+ if (flushed && typeof flushed.catch === "function") {
392
+ flushed.catch(() => undefined);
393
+ }
394
+ }, 0);
395
+ }
396
+ flushDeferredStoredNotifications() {
397
+ const pending = this._deferredStoredNotificationCids;
398
+ if (!pending || pending.size === 0) {
399
+ return;
400
+ }
401
+ this._deferredStoredNotificationCids = undefined;
402
+ const waits = [];
403
+ for (const cid of pending) {
404
+ try {
405
+ const result = this.notifyStored(cid);
406
+ if (result && typeof result.then === "function") {
407
+ waits.push(result);
408
+ }
409
+ }
410
+ catch {
411
+ // ignore best-effort hooks
412
+ }
413
+ }
414
+ if (waits.length > 0) {
415
+ return Promise.all(waits).then(() => undefined);
416
+ }
417
+ }
418
+ notifyPut(cid) {
419
+ const onPut = this.options.onPut;
420
+ if (!onPut) {
421
+ return;
422
+ }
284
423
  try {
285
- await this.options.onPut?.(cid);
424
+ const result = onPut(cid);
425
+ if (result && typeof result.then === "function") {
426
+ return result.catch(() => undefined);
427
+ }
286
428
  }
287
429
  catch {
288
430
  // ignore best-effort hooks
289
431
  }
290
- return cid;
432
+ }
433
+ notifyPuts(cids) {
434
+ const onPut = this.options.onPut;
435
+ if (!onPut || cids.length === 0) {
436
+ return;
437
+ }
438
+ if (cids.length === 1) {
439
+ return this.notifyPut(cids[0]);
440
+ }
441
+ return Promise.all(cids.map(async (cid) => {
442
+ try {
443
+ await onPut(cid);
444
+ }
445
+ catch {
446
+ // ignore best-effort hooks
447
+ }
448
+ })).then(() => undefined);
291
449
  }
292
450
  async has(cid) {
293
451
  return this.localStore.has(cid);
294
452
  }
453
+ async hasMany(cids) {
454
+ return this.localStore.hasMany(cids);
455
+ }
295
456
  async get(cid, options) {
296
457
  let value = this.localStore
297
458
  ? await this.localStore.get(cid, options)
@@ -309,6 +470,12 @@ export class RemoteBlocks {
309
470
  }
310
471
  return value;
311
472
  }
473
+ async getMany(cids, options) {
474
+ if (!options?.remote) {
475
+ return this.localStore.getMany(cids, options);
476
+ }
477
+ return Promise.all(cids.map((cid) => this.get(cid, options)));
478
+ }
312
479
  hintProviders(cid, providers) {
313
480
  const cidString = stringifyCid(cid);
314
481
  this.rememberProviderHints(cidString, providers);
@@ -317,6 +484,9 @@ export class RemoteBlocks {
317
484
  async rm(cid) {
318
485
  await this.localStore?.rm(cid);
319
486
  }
487
+ async rmMany(cids) {
488
+ await this.localStore?.rmMany(cids);
489
+ }
320
490
  async *iterator() {
321
491
  for await (const [key, value] of this.localStore.iterator()) {
322
492
  yield [key, value];
@@ -341,6 +511,20 @@ export class RemoteBlocks {
341
511
  return;
342
512
  }
343
513
  const cid = stringifyCid(request.cid);
514
+ const publishRaw = this.options.rust?.publishRaw;
515
+ if (publishRaw) {
516
+ // Native-store-served response: the borsh BlockResponse payload is
517
+ // serialized inside wasm straight from the native log block store,
518
+ // so the block bytes never materialize as a JS value.
519
+ const payload = this.localStore.getBlockResponsePayload?.(cid);
520
+ if (payload) {
521
+ const responsePublishOptions = context?.transport
522
+ ? context.transport.withResponseOptions({ to: [from] })
523
+ : { to: [from] };
524
+ await publishRaw(payload, responsePublishOptions).catch(dontThrowIfDeliveryError);
525
+ return;
526
+ }
527
+ }
344
528
  let bytes = await this.localStore.get(cid, {
345
529
  remote: {
346
530
  timeout: localTimeout,
@@ -657,6 +841,11 @@ export class RemoteBlocks {
657
841
  // Dont listen for more incoming messages
658
842
  // Wait for processing request
659
843
  this.closeController.abort();
844
+ if (this._deferredStoredNotificationTimer) {
845
+ clearTimeout(this._deferredStoredNotificationTimer);
846
+ this._deferredStoredNotificationTimer = undefined;
847
+ }
848
+ await this.flushDeferredStoredNotifications();
660
849
  this._loadFetchQueue.clear();
661
850
  await this._loadFetchQueue.onIdle(); // wait for pending
662
851
  await this.localStore?.stop();
@@ -664,6 +853,7 @@ export class RemoteBlocks {
664
853
  this._resolvers.clear();
665
854
  this._blockCache?.clear();
666
855
  this._providerCache?.clear();
856
+ this._rustProviderCache?.clear();
667
857
  this._open = false;
668
858
  // we dont cleanup subscription because we dont know if someone else is sbuscribing also
669
859
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAGN,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAuB,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAGN,cAAc,GAId,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAErC,MAAM,OAAO,YAAY;CAAG;IAGf,YAAY;4BADxB,OAAO,CAAC,CAAC,CAAC;;;;sBACuB,YAAY;;;;4BAApB,SAAQ,WAAY;;;;+BAC5C,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC1B,2JAAA,GAAG,6BAAH,GAAG,iFAAS;YAFb,6KAQC;;;YARY,uDAAY;;QAExB,GAAG,sDAAS;QAEZ,YAAY,GAAW;YACtB,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SACf;;;;SAPW,YAAY;IAWZ,aAAa;4BADzB,OAAO,CAAC,CAAC,CAAC;;;;sBACwB,YAAY;;;;;;;6BAApB,SAAQ,WAAY;;;;+BAC7C,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iCAGzB,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAF5B,2JAAA,GAAG,6BAAH,GAAG,iFAAS;YAGZ,iKAAA,KAAK,6BAAL,KAAK,qFAAa;YALnB,6KAYC;;;YAZY,uDAAa;;QAEzB,GAAG,sDAAS;QAGZ,KAAK,2GAAa;QAElB,YAAY,GAAW,EAAE,KAAiB;YACzC,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACnB;;;;SAXW,aAAa;AA4B1B,MAAM,OAAO,YAAY;IAwBd;IAvBV,UAAU,CAAa;IAEf,gBAAgB,CAGf;IACD,UAAU,CAAmD;IAC7D,WAAW,CAAqB;IAChC,cAAc,CAAmB;IACxB,aAAa,CAAS;IACtB,sBAAsB,CAAS;IAC/B,qBAAqB,CAAS;IAEvC,eAAe,CAAS;IACxB,sBAAsB,CAA4B;IAC1D,KAAK,GAAG,KAAK,CAAC;IACN,OAAO,GAGV,IAAI,iBAAiB,EAAE,CAAC;IACrB,eAAe,GAAoB,IAAI,eAAe,EAAE,CAAC;IAEjE,YACU,OA8DR;QA9DQ,YAAO,GAAP,OAAO,CA8Df;QAED,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC;YACjC,WAAW,EAAE,OAAO,EAAE,4BAA4B,IAAI,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW;YACtC,CAAC,CAAC,IAAI,KAAK,CAAa;gBACtB,GAAG,EACF,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS;oBACvC,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC;gBAC1C,GAAG,EAAE,GAAG;aACR,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAMb,MAAM,aAAa,GAClB,OAAO,CAAC,aAAa,KAAK,KAAK;YAC9B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;gBAC1C,CAAC,CAAC,OAAO,CAAC,aAAa;gBACvB,CAAC,CAAC,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,aAAa;YAClC,CAAC,CAAC,IAAI,KAAK,CAAW;gBACpB,GAAG,EAAE,aAAa,CAAC,UAAU,IAAI,IAAI;gBACrC,GAAG,EAAE,aAAa,CAAC,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;aAC1C,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,CAAC,sBAAsB,GAAG,aAAa,EAAE,kBAAkB,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAE7D,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAC5B,OAAqB,EACrB,OAA6B,EAC5B,EAAE;YACH,IAAI,CAAC;gBACJ,IAAI,OAAO,YAAY,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxD,IAAI,CAAC,eAAe;yBAClB,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;yBAClE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;wBACZ,IAAI,CAAC;4BACJ,wBAAwB,CAAC,CAAC,CAAC,CAAC;wBAC7B,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BAChB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;wBAC/D,CAAC;oBACF,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,YAAY,aAAa,EAAE,CAAC;oBAC7C,qFAAqF;oBACrF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;oBACD,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;4BACzB,gCAAgC;4BAChC,IAAI,CAAC,WAAY,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;wBACnD,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;gBAC9D,0BAA0B;YAC3B,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC7B,SAA+B,EAC/B,KAAK,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC;QAExC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;gBAAE,SAAS;YACvC,0DAA0D;YAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QAChC,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAEO,gBAAgB,CAAC,SAAiB,EAAE,YAAoB;QAC/D,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,IAAI,GAAa,CAAC,YAAY,CAAC,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,YAAY;gBAAE,SAAS;YACjC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,sBAAsB;gBAAE,MAAM;QACvD,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,qBAAqB,CAAC,SAAiB,EAAE,SAAmB;QACnE,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAEO,gBAAgB,CAAC,SAAmB,EAAE,OAAe;QAC5D,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACvD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CACnC,SAAiB,EACjB,OAAqD;QAErD,YAAY;QACZ,4CAA4C;QAC5C,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACzC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAChD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAAE,OAAO,MAAM,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,OAAO,MAAM,CAAC;QAC1D,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,UAAU,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CACR,KAAqE;QAErE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACR,2BAA2B;QAC5B,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CACR,GAAW,EACX,OAAgC;QAEhC,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU;YAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QAEb,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,0BAA0B;YAC1B,MAAM,aAAa,GAAG,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;YACtE,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpC,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;gBACjE,IAAI,aAAa,EAAE,SAAS,IAAI,KAAK,EAAE,CAAC;oBACvC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,SAAmB;QAC7C,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,aAAa,CACzB,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAClE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,GAAW;QACnB,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ;QACd,IAAI,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,IAAkB,EAAE,OAA6B;QAC1D,OAAO,IAAI,CAAC,gBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,WAAW,CAAC,SAAwB;QACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CACzB,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACxD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC/B,OAAqB,EACrB,YAAoB,EACpB,OAA6B;QAE7B,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAC1C,MAAM,EAAE;gBACP,OAAO,EAAE,YAAY;aACrB;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,+EAA+E;YAC/E,gEAAgE;YAChE,EAAE;YACF,2EAA2E;YAC3E,0EAA0E;YAC1E,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,kBAAkB,GAAG,OAAO,EAAE,SAAS;oBAC5C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC/C,CAAC,CAAC,SAAS,CAAC;gBACb,IAAI,kBAAkB,IAAI,IAAI,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;oBAC3D,OAAO;gBACR,CAAC;gBACD,MAAM,cAAc,GACnB,kBAAkB,IAAI,IAAI;oBACzB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACJ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;wBACzD,MAAM,EAAE,UAAU,CAAC,MAAM;qBACzB,CAAC,CAAC;oBACH,2EAA2E;oBAC3E,MAAM,SAAS,GAAG,UAAU;yBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;yBAC9B,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBACxC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE;4BACjD,MAAM,EAAE,UAAU,CAAC,MAAM;4BACzB,OAAO,EAAE,cAAc;4BACvB,IAAI,EAAE,SAAS;yBACf,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;wBAAS,CAAC;oBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,wBAAwB;YACzB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,sBAAsB,GAAG,OAAO,EAAE,SAAS;YAChD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,OAAO;aAChB,OAAO,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,sBAAsB,CAAC;aAC9D,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,cAAc,CAC3B,SAAiB,EACjB,SAAc,EACd,UAA6B,EAAE;QAE/B,MAAM,KAAK,GAAI,UAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,EAAE,KAAiB,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE;gBACtD,KAAK;gBACL,MAAM,EAAE,OAAO,EAAE,MAAM;aACvB,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;YAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,WAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS;YACV,CAAC;QACF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,SAAS,GACZ,YAAY,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,UAAU,CAAC;QAC5E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,4EAA4E;YAC5E,0EAA0E;YAC1E,+DAA+D;YAC/D,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,0BAA0B,GAAkC,GAAG,EAAE,GAAE,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,IAAI,OAAO,CAC1B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnB,IAAI,eAA0D,CAAC;gBAC/D,MAAM,YAAY,GAAG,GAAG,EAAE;oBACzB,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBAEF,MAAM,OAAO,GAAG,GAAG,EAAE;oBACpB,IAAI,eAAe;wBAAE,YAAY,CAAC,eAAe,CAAC,CAAC;oBACnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAC9C,OAAO,EACP,YAAY,CACZ,CAAC;oBACF,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC7D,CAAC,CAAC;gBAEF,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,SAAS,CAAC,CAAC;gBACpB,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBAEjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAEzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAiB,EAAE,EAAE;oBAC1D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;oBACrC,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACJ,CAAC,CACD,CAAC;YAEF,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5D,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CACtC,KAAK,EACL,IAAI,CAAC,GAAG,CACP,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAClE,CACD,CAAC;YACF,MAAM,gCAAgC,GAAG,IAAI,CAAC,GAAG,CAChD,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,CACvD,CAAC;YACF,IAAI,YAAuD,CAAC;YAC5D,IAAI,qBAGoB,CAAC;YACzB,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE;gBAChD,IAAI,CAAC,eAAe;oBAAE,OAAO;gBAC7B,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO;gBAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;oBAC7D,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACtE,CAAC;YACF,CAAC,CAAC;YACF,MAAM,iBAAiB,GAAG,KAAK,EAAE,UAIhC,EAAE,EAAE;gBACJ,IAAI,YAAY,IAAI,WAAW,IAAI,CAAC,UAAU,EAAE,KAAK;oBAAE,OAAO;gBAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,EAAE,gBAAgB,EAAE,CAAC;oBAC5D,MAAM,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACnC,IAAI,CAAC;oBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;oBAC3D,MAAM,gBAAgB,GACrB,UAAU,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;wBACvD,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,SAAS,CAAC;wBACnD,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBACnD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACzB,IAAI,YAAY,CAAC,SAAS,CAAC,EAC3B;wBACC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,gBAAgB,EAAE,OAAO,CAAC,QAAQ;wBAClC,SAAS;wBACT,IAAI,EAAE,IAAI,cAAc,CAAC;4BACxB,EAAE,EAAE,gBAAgB;4BACpB,UAAU,EAAE,gBAAgB,CAAC,MAAM;yBACnC,CAAC;qBACF,CACD,CAAC;oBACF,YAAY,IAAI,CAAC,CAAC;gBACnB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,wBAAwB,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACF,CAAC,CAAC;YACF,0BAA0B,GAAG,CAAC,aAAuB,EAAE,EAAE;gBACxD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,OAAO;gBAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBACpE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC;oBAC1C,GAAG,gBAAgB;oBACnB,GAAG,SAAS;iBACZ,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAChC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC;gBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChC,OAAO,GAAG,IAAI,CAAC;4BACf,MAAM;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,SAAS,GAAG,MAAM,CAAC;gBACnB,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,KAAK,CACpE,wBAAwB,CACxB,CAAC;YACH,CAAC,CAAC;YACF,QAAQ,GAAG;gBACV,OAAO;gBACP,YAAY,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,0BAA0B,CAAC,aAAa,CAAC;aAC1E,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,GAAG,EAAE;gBAC1B,IAAI,YAAY,EAAE,CAAC;oBAClB,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,YAAY,IAAI,WAAW;oBAAE,OAAO;gBACxC,MAAM,eAAe,GACpB,SAAS,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC,sBAAsB;oBACxB,CAAC,CAAC,gCAAgC,CAAC;gBACrC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,OAAO;oBAC5C,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;yBAC3C,KAAK,CAAC,wBAAwB,CAAC;yBAC/B,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC1B,CAAC,EAAE,eAAe,CAAC,CAAC;YACrB,CAAC,CAAC;YAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;gBAC9B,qEAAqE;gBACrE,4DAA4D;gBAC5D,IAAI,YAAY,IAAI,WAAW;oBAAE,OAAO;gBACxC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAClD,wBAAwB,CACxB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,sBAAsB,GAAG,CAAC,EAAgC,EAAE,EAAE;gBACnE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG;oBAAE,OAAO;gBAC7B,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS;oBAAE,OAAO;gBACxC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAC/D,wBAAwB,CACxB,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,eAAe,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACjF,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE;oBAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE;wBAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;4BAAE,OAAO;wBAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;wBAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;4BAAE,OAAO;wBACpC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;wBAClD,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;wBACvE,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAC9D,wBAAwB,CACxB,CAAC;oBACH,CAAC;iBACD,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;YACzE,IAAI,CAAC;gBACJ,MAAM,iBAAiB,EAAE,CAAC;gBAC1B,aAAa,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;gBAC7B,OAAO,MAAM,EAAE,KAAK,CAAC;YACtB,CAAC;oBAAS,CAAC;gBACV,IAAI,YAAY,EAAE,CAAC;oBAClB,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;gBACtE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;gBAC5E,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;oBACjD,qBAAqB,EAAE,CAAC;gBACzB,CAAC;qBAAM,IAAI,qBAAqB,EAAE,CAAC;oBAClC,qBAAqB,EAAE,KAAK,EAAE,CAAC;gBAChC,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAEO,mBAAmB,CAC1B,QAAsB,EACtB,OAA0B;QAE1B,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,OAAkD,CAAC;YAEvD,MAAM,OAAO,GAAG,GAAG,EAAE;gBACpB,IAAI,OAAO;oBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,CAAC,QAAoB,EAAE,EAAE;gBACvC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,EAAE;gBAClB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC7B,KAAK,EAAE,CAAC;gBACR,OAAO;YACR,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC7B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACzB,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,QAAQ,CAAC,OAAO,CAAC,IAAI,CACpB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAChD,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACT,yCAAyC;QAEzC,8BAA8B;QAC9B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,mBAAmB;QACxD,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,wFAAwF;IACzF,CAAC;IAED,OAAO,CACN,IAAc,EACd,OAA6C;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,MAAM;QACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC;IAC9C,CAAC;CACD"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/blocks",
3
- "version": "4.1.9",
3
+ "version": "4.2.1",
4
4
  "description": "Block store streaming",
5
5
  "type": "module",
6
6
  "types": "./dist/src/index.d.ts",
@@ -69,7 +69,8 @@
69
69
  "dao.xyz"
70
70
  ],
71
71
  "devDependencies": {
72
- "@peerbit/libp2p-test-utils": "3.0.5"
72
+ "@peerbit/any-store-rust": "0.1.1",
73
+ "@peerbit/libp2p-test-utils": "3.0.6"
73
74
  },
74
75
  "dependencies": {
75
76
  "@dao-xyz/borsh": "^6.0.0",
@@ -81,19 +82,20 @@
81
82
  "p-defer": "^4.0.0",
82
83
  "p-queue": "^8.0.1",
83
84
  "uint8arrays": "^5.1.0",
84
- "@peerbit/any-store": "2.2.9",
85
85
  "@peerbit/any-store-interface": "1.1.0",
86
- "@peerbit/blocks-interface": "2.0.12",
87
- "@peerbit/crypto": "3.1.1",
88
- "@peerbit/cache": "3.0.0",
86
+ "@peerbit/any-store": "2.2.10",
87
+ "@peerbit/blocks-interface": "2.1.0",
88
+ "@peerbit/cache": "3.1.0",
89
+ "@peerbit/crypto": "3.1.2",
90
+ "@peerbit/stream": "5.1.0",
89
91
  "@peerbit/logger": "2.0.1",
90
- "@peerbit/stream": "5.0.17",
91
- "@peerbit/stream-interface": "6.0.10",
92
- "@peerbit/time": "3.0.0"
92
+ "@peerbit/time": "3.0.0",
93
+ "@peerbit/stream-interface": "6.0.11"
93
94
  },
94
95
  "scripts": {
95
96
  "clean": "aegir clean",
96
97
  "build": "aegir build --no-bundle",
98
+ "benchmark:any-store": "npm run build && node ./dist/benchmark/any-store.js",
97
99
  "test": "aegir test --target node",
98
100
  "lint": "aegir lint",
99
101
  "test:cov": "aegir test -t node --cov"