@peerbit/native-backbone 0.2.10 → 0.2.12

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.
@@ -383,6 +383,7 @@ export class NativePeerbitBackbone {
383
383
  get_entry_coordinates(hash: string): any;
384
384
  get_gid_coordinates(gid: string, count: number): Array<any>;
385
385
  get_grid(from: string, count: number): Array<any>;
386
+ get_routing_full_replica_leaders(replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): any;
386
387
  graph_child_join_entries(hash: string): Array<any>;
387
388
  graph_clear(): void;
388
389
  graph_count_has_next(next: string, exclude_hash?: string | null): number;
@@ -597,10 +598,12 @@ export class NativeRangePlanner {
597
598
  get_full_replica_leaders(replicas: number, role_age_ms: number, now: string, include_strict: boolean, peer_filter: any): any;
598
599
  get_gid_coordinates(gid: string, count: number): Array<any>;
599
600
  get_grid(from: string, count: number): Array<any>;
601
+ get_routing_full_replica_leaders(replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): any;
600
602
  get_samples(cursors: Array<any>, role_age_ms: number, now: string, only_intersecting: boolean, unique_replicators: any, peer_filter: any): Array<any>;
601
603
  include_matured_peers(peer_filter: any, replicas: number, role_age_ms: number, now: string, self_hash: string, include_self: boolean): any;
602
604
  len(): number;
603
605
  constructor(resolution: string);
606
+ plan_leader_samples_for_gids_batch(gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
604
607
  plan_leaders_for_gid(gid: string, replicas: number, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
605
608
  plan_leaders_for_gids_batch(gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
606
609
  plan_local_leaders_for_gids_batch(hashes: Array<any>, gids: Array<any>, replica_counts: Array<any>, role_age_ms: number, now: string, peer_filter: any, expand_peer_filter: boolean, self_hash: string, include_self: boolean, full_replica_fallback: boolean, include_strict_full_replica: boolean): Array<any>;
@@ -1056,6 +1059,7 @@ export interface InitOutput {
1056
1059
  readonly nativepeerbitbackbone_get_entry_coordinates: (a: number, b: number, c: number) => any;
1057
1060
  readonly nativepeerbitbackbone_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
1058
1061
  readonly nativepeerbitbackbone_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
1062
+ readonly nativepeerbitbackbone_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
1059
1063
  readonly nativepeerbitbackbone_mark_entries_known_by_peer: (a: number, b: any, c: number, d: number) => [number, number];
1060
1064
  readonly nativepeerbitbackbone_plan_append_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: any, k: any, l: number, m: number, n: number, o: number, p: any, q: number, r: number, s: number, t: number, u: any, v: number, w: number, x: number, y: number, z: number, a1: number) => [number, number, number];
1061
1065
  readonly nativepeerbitbackbone_plan_append_for_gids_batch: (a: number, b: any, c: any, d: any, e: any, f: any, g: any, h: any, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: any, s: number, t: number, u: number, v: number, w: number, x: number) => [number, number, number];
@@ -1299,10 +1303,12 @@ export interface InitOutput {
1299
1303
  readonly nativerangeplanner_get_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
1300
1304
  readonly nativerangeplanner_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
1301
1305
  readonly nativerangeplanner_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
1306
+ readonly nativerangeplanner_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
1302
1307
  readonly nativerangeplanner_get_samples: (a: number, b: any, c: number, d: number, e: number, f: number, g: any, h: any) => [number, number, number];
1303
1308
  readonly nativerangeplanner_include_matured_peers: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
1304
1309
  readonly nativerangeplanner_len: (a: number) => number;
1305
1310
  readonly nativerangeplanner_new: (a: number, b: number) => number;
1311
+ readonly nativerangeplanner_plan_leader_samples_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
1306
1312
  readonly nativerangeplanner_plan_leaders_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
1307
1313
  readonly nativerangeplanner_plan_leaders_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
1308
1314
  readonly nativerangeplanner_plan_local_leaders_for_gids_batch: (a: number, b: any, c: any, d: any, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
@@ -3272,6 +3272,29 @@ export class NativePeerbitBackbone {
3272
3272
  }
3273
3273
  return takeFromExternrefTable0(ret[0]);
3274
3274
  }
3275
+ /**
3276
+ * @param {number} replicas
3277
+ * @param {number} role_age_ms
3278
+ * @param {string} now
3279
+ * @param {any} peer_filter
3280
+ * @param {boolean} expand_peer_filter
3281
+ * @param {string} self_hash
3282
+ * @param {boolean} include_self
3283
+ * @param {boolean} full_replica_fallback
3284
+ * @param {boolean} include_strict_full_replica
3285
+ * @returns {any}
3286
+ */
3287
+ get_routing_full_replica_leaders(replicas, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
3288
+ const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
3289
+ const len0 = WASM_VECTOR_LEN;
3290
+ const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
3291
+ const len1 = WASM_VECTOR_LEN;
3292
+ const ret = wasm.nativepeerbitbackbone_get_routing_full_replica_leaders(this.__wbg_ptr, replicas, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
3293
+ if (ret[2]) {
3294
+ throw takeFromExternrefTable0(ret[1]);
3295
+ }
3296
+ return takeFromExternrefTable0(ret[0]);
3297
+ }
3275
3298
  /**
3276
3299
  * @param {string} hash
3277
3300
  * @returns {Array<any>}
@@ -7077,6 +7100,29 @@ export class NativeRangePlanner {
7077
7100
  }
7078
7101
  return takeFromExternrefTable0(ret[0]);
7079
7102
  }
7103
+ /**
7104
+ * @param {number} replicas
7105
+ * @param {number} role_age_ms
7106
+ * @param {string} now
7107
+ * @param {any} peer_filter
7108
+ * @param {boolean} expand_peer_filter
7109
+ * @param {string} self_hash
7110
+ * @param {boolean} include_self
7111
+ * @param {boolean} full_replica_fallback
7112
+ * @param {boolean} include_strict_full_replica
7113
+ * @returns {any}
7114
+ */
7115
+ get_routing_full_replica_leaders(replicas, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
7116
+ const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7117
+ const len0 = WASM_VECTOR_LEN;
7118
+ const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7119
+ const len1 = WASM_VECTOR_LEN;
7120
+ const ret = wasm.nativerangeplanner_get_routing_full_replica_leaders(this.__wbg_ptr, replicas, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
7121
+ if (ret[2]) {
7122
+ throw takeFromExternrefTable0(ret[1]);
7123
+ }
7124
+ return takeFromExternrefTable0(ret[0]);
7125
+ }
7080
7126
  /**
7081
7127
  * @param {Array<any>} cursors
7082
7128
  * @param {number} role_age_ms
@@ -7133,6 +7179,30 @@ export class NativeRangePlanner {
7133
7179
  NativeRangePlannerFinalization.register(this, this.__wbg_ptr, this);
7134
7180
  return this;
7135
7181
  }
7182
+ /**
7183
+ * @param {Array<any>} gids
7184
+ * @param {Array<any>} replica_counts
7185
+ * @param {number} role_age_ms
7186
+ * @param {string} now
7187
+ * @param {any} peer_filter
7188
+ * @param {boolean} expand_peer_filter
7189
+ * @param {string} self_hash
7190
+ * @param {boolean} include_self
7191
+ * @param {boolean} full_replica_fallback
7192
+ * @param {boolean} include_strict_full_replica
7193
+ * @returns {Array<any>}
7194
+ */
7195
+ plan_leader_samples_for_gids_batch(gids, replica_counts, role_age_ms, now, peer_filter, expand_peer_filter, self_hash, include_self, full_replica_fallback, include_strict_full_replica) {
7196
+ const ptr0 = passStringToWasm0(now, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7197
+ const len0 = WASM_VECTOR_LEN;
7198
+ const ptr1 = passStringToWasm0(self_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7199
+ const len1 = WASM_VECTOR_LEN;
7200
+ const ret = wasm.nativerangeplanner_plan_leader_samples_for_gids_batch(this.__wbg_ptr, gids, replica_counts, role_age_ms, ptr0, len0, peer_filter, expand_peer_filter, ptr1, len1, include_self, full_replica_fallback, include_strict_full_replica);
7201
+ if (ret[2]) {
7202
+ throw takeFromExternrefTable0(ret[1]);
7203
+ }
7204
+ return takeFromExternrefTable0(ret[0]);
7205
+ }
7136
7206
  /**
7137
7207
  * @param {string} gid
7138
7208
  * @param {number} replicas
Binary file
@@ -44,6 +44,7 @@ export const nativepeerbitbackbone_full_replica_candidates_for: (a: number, b: n
44
44
  export const nativepeerbitbackbone_get_entry_coordinates: (a: number, b: number, c: number) => any;
45
45
  export const nativepeerbitbackbone_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
46
46
  export const nativepeerbitbackbone_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
47
+ export const nativepeerbitbackbone_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
47
48
  export const nativepeerbitbackbone_mark_entries_known_by_peer: (a: number, b: any, c: number, d: number) => [number, number];
48
49
  export const nativepeerbitbackbone_plan_append_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: any, k: any, l: number, m: number, n: number, o: number, p: any, q: number, r: number, s: number, t: number, u: any, v: number, w: number, x: number, y: number, z: number, a1: number) => [number, number, number];
49
50
  export const nativepeerbitbackbone_plan_append_for_gids_batch: (a: number, b: any, c: any, d: any, e: any, f: any, g: any, h: any, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: any, s: number, t: number, u: number, v: number, w: number, x: number) => [number, number, number];
@@ -287,10 +288,12 @@ export const nativerangeplanner_find_leaders_for_gid: (a: number, b: number, c:
287
288
  export const nativerangeplanner_get_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number];
288
289
  export const nativerangeplanner_get_gid_coordinates: (a: number, b: number, c: number, d: number) => any;
289
290
  export const nativerangeplanner_get_grid: (a: number, b: number, c: number, d: number) => [number, number, number];
291
+ export const nativerangeplanner_get_routing_full_replica_leaders: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number];
290
292
  export const nativerangeplanner_get_samples: (a: number, b: any, c: number, d: number, e: number, f: number, g: any, h: any) => [number, number, number];
291
293
  export const nativerangeplanner_include_matured_peers: (a: number, b: any, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
292
294
  export const nativerangeplanner_len: (a: number) => number;
293
295
  export const nativerangeplanner_new: (a: number, b: number) => number;
296
+ export const nativerangeplanner_plan_leader_samples_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
294
297
  export const nativerangeplanner_plan_leaders_for_gid: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
295
298
  export const nativerangeplanner_plan_leaders_for_gids_batch: (a: number, b: any, c: any, d: number, e: number, f: number, g: any, h: number, i: number, j: number, k: number, l: number, m: number) => [number, number, number];
296
299
  export const nativerangeplanner_plan_local_leaders_for_gids_batch: (a: number, b: any, c: any, d: any, e: number, f: number, g: number, h: any, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/native-backbone",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "description": "Native transaction backbone for Peerbit",
5
5
  "sideEffects": [
6
6
  "./dist/wasm/native_backbone.js"
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "classic-level": "^3.0.0",
55
- "@peerbit/blocks-interface": "2.1.6"
55
+ "@peerbit/blocks-interface": "2.1.8"
56
56
  },
57
57
  "author": "Peerbit contributors",
58
58
  "license": "MIT",
package/src/index.ts CHANGED
@@ -706,6 +706,17 @@ type NativePeerbitBackboneHandle = {
706
706
  minReplicas: number,
707
707
  selfHash: string,
708
708
  ) => string[];
709
+ get_routing_full_replica_leaders?: (
710
+ replicas: number,
711
+ roleAgeMs: number,
712
+ now: string,
713
+ peerFilter: string[] | undefined,
714
+ expandPeerFilter: boolean,
715
+ selfHash: string,
716
+ includeSelf: boolean,
717
+ fullReplicaFallback: boolean,
718
+ includeStrictFullReplica: boolean,
719
+ ) => unknown[] | undefined;
709
720
  put_range: (
710
721
  id: string,
711
722
  hash: string,
@@ -7451,6 +7462,21 @@ export class NativePeerbitBackbone {
7451
7462
  return this.native.full_replica_candidates_for(minReplicas, selfHash);
7452
7463
  }
7453
7464
 
7465
+ getRoutingFullReplicaLeaders(
7466
+ replicas: number,
7467
+ options?: NativeBackboneFindLeaderOptions,
7468
+ ): Map<string, NativeBackboneLeaderSample> | undefined {
7469
+ if (!this.native.get_routing_full_replica_leaders) {
7470
+ return undefined;
7471
+ }
7472
+ return rowsToSamples(
7473
+ this.native.get_routing_full_replica_leaders(
7474
+ replicas,
7475
+ ...findLeaderArguments(options),
7476
+ ),
7477
+ );
7478
+ }
7479
+
7454
7480
  clearEntryCoordinates(): void {
7455
7481
  this.native.clear_entry_coordinates();
7456
7482
  }
@@ -391,6 +391,36 @@ impl NativePeerbitBackbone {
391
391
  .full_replica_candidates_for(min_replicas, self_hash)
392
392
  }
393
393
 
394
+ #[allow(clippy::too_many_arguments)]
395
+ pub fn get_routing_full_replica_leaders(
396
+ &self,
397
+ replicas: usize,
398
+ role_age_ms: f64,
399
+ now: String,
400
+ peer_filter: JsValue,
401
+ expand_peer_filter: bool,
402
+ self_hash: String,
403
+ include_self: bool,
404
+ full_replica_fallback: bool,
405
+ include_strict_full_replica: bool,
406
+ ) -> Result<JsValue, JsValue> {
407
+ let leaders = self
408
+ .shared_log
409
+ .plan_routing_full_replica_leaders_core(
410
+ replicas,
411
+ role_age_ms,
412
+ &now,
413
+ peer_filter,
414
+ expand_peer_filter,
415
+ &self_hash,
416
+ include_self,
417
+ full_replica_fallback,
418
+ include_strict_full_replica,
419
+ )
420
+ .map_err(JsValue::from)?;
421
+ Ok(leader_samples_to_optional_rows(&leaders))
422
+ }
423
+
394
424
  #[allow(clippy::too_many_arguments)]
395
425
  pub fn put_range(
396
426
  &mut self,