@leofcoin/peernet 1.1.31 → 1.1.32

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.
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './peernet-ad3ca002.js';
1
+ import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './peernet-4c63c3a2.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  function commonjsRequire(path) {
@@ -1,30 +1,23 @@
1
1
  export default class DhtEarth {
2
- providerMap: Map<any, any>;
2
+ providerMap: Map<string, Set<string>>;
3
+ /**
4
+ *
5
+ */
6
+ constructor();
3
7
  /**
4
8
  * @param {Object} address
5
9
  * @return {Object} {latitude: lat, longitude: lon}
6
10
  */
7
- getCoordinates(address: any): any;
11
+ getCoordinates(address: object): object;
8
12
  /**
9
13
  * @param {Object} peer
10
14
  * @param {Object} provider
11
15
  * @return {Object} {provider, distance}
12
16
  */
13
- getDistance(peer: any, provider: any): any;
14
- /**
15
- * @param {Array} providers
16
- * @return {Object} closestPeer
17
- */
18
- closestPeer(providers: any[]): any;
19
- /**
20
- * @param {String} hash
21
- * @return {Array} providers
22
- */
23
- providersFor(hash: string): any[];
24
- /**
25
- * @param {String} address
26
- * @param {String} hash
27
- * @return {Array} providers
28
- */
29
- addProvider(address: string, hash: string): any[];
17
+ getDistance(peer: object, provider: object): object;
18
+ closestPeer(providers: Array<any>): object;
19
+ hasProvider(hash: string): boolean;
20
+ providersFor(hash: string): string[];
21
+ addProvider(address: string, hash: string): string[];
22
+ removeProvider(address: string, hash: string): true | undefined;
30
23
  }
@@ -1,4 +1,4 @@
1
- import { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-ad3ca002.js';
1
+ import { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-4c63c3a2.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { F as FormatInterface } from './peernet-ad3ca002.js';
1
+ import { F as FormatInterface } from './peernet-4c63c3a2.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  var proto$b = {
@@ -6226,6 +6226,7 @@ const distanceInKmBetweenEarthCoordinates = (lat1, lon1, lat2, lon2) => {
6226
6226
  return earthRadiusKm * c;
6227
6227
  };
6228
6228
  class DhtEarth {
6229
+ providerMap = new Map;
6229
6230
  /**
6230
6231
  *
6231
6232
  */
@@ -6255,10 +6256,6 @@ class DhtEarth {
6255
6256
  const { latitude, longitude } = await this.getCoordinates(provider.address);
6256
6257
  return { provider, distance: distanceInKmBetweenEarthCoordinates(peer.latitude, peer.longitude, latitude, longitude) };
6257
6258
  }
6258
- /**
6259
- * @param {Array} providers
6260
- * @return {Object} closestPeer
6261
- */
6262
6259
  async closestPeer(providers) {
6263
6260
  let all = [];
6264
6261
  const address = await getAddress();
@@ -6273,25 +6270,31 @@ class DhtEarth {
6273
6270
  all = all.sort((previous, current) => previous.distance - current.distance);
6274
6271
  return all[0].provider;
6275
6272
  }
6276
- /**
6277
- * @param {String} hash
6278
- * @return {Array} providers
6279
- */
6280
- providersFor(hash) {
6281
- return this.providerMap.get(hash);
6273
+ hasProvider(hash) {
6274
+ return this.providerMap.has(hash);
6282
6275
  }
6283
- /**
6284
- * @param {String} address
6285
- * @param {String} hash
6286
- * @return {Array} providers
6287
- */
6288
- async addProvider(address, hash) {
6276
+ providersFor(hash) {
6289
6277
  let providers = [];
6290
6278
  if (this.providerMap.has(hash))
6279
+ providers = [...this.providerMap.get(hash)];
6280
+ return providers;
6281
+ }
6282
+ addProvider(address, hash) {
6283
+ let providers = new Set();
6284
+ if (this.providerMap.has(hash)) {
6291
6285
  providers = this.providerMap.get(hash);
6292
- providers = new Set([...providers, address]);
6286
+ }
6287
+ providers.add(address);
6293
6288
  this.providerMap.set(hash, providers);
6294
- return providers;
6289
+ }
6290
+ removeProvider(address, hash) {
6291
+ let deleted = undefined;
6292
+ if (this.providerMap.has(hash)) {
6293
+ const providers = this.providerMap.get(hash);
6294
+ deleted = providers.delete(address);
6295
+ deleted && this.providerMap.set(hash, providers);
6296
+ }
6297
+ return deleted;
6295
6298
  }
6296
6299
  }
6297
6300
 
@@ -20184,7 +20187,7 @@ class Identity {
20184
20187
  globalThis.peernet.selectedAccount = new TextDecoder().decode(selected);
20185
20188
  }
20186
20189
  else {
20187
- const importee = await import(/* webpackChunkName: "generate-account" */ './index-904b9f85.js');
20190
+ const importee = await import(/* webpackChunkName: "generate-account" */ './index-da3c0bea.js');
20188
20191
  const { identity, accounts } = await importee.default(password, this.network);
20189
20192
  await globalThis.accountStore.put('public', JSON.stringify({ walletId: identity.walletId }));
20190
20193
  await globalThis.walletStore.put('version', String(1));
@@ -20355,7 +20358,7 @@ class Peernet {
20355
20358
  this.root = options.root;
20356
20359
  const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile
20357
20360
  // FolderMessageResponse
20358
- } = await import(/* webpackChunkName: "messages" */ './messages-de2c5670.js');
20361
+ } = await import(/* webpackChunkName: "messages" */ './messages-b4ab65f6.js');
20359
20362
  /**
20360
20363
  * proto Object containing protos
20361
20364
  * @type {Object}
@@ -20434,7 +20437,7 @@ class Peernet {
20434
20437
  if (this.#starting || this.#started)
20435
20438
  return;
20436
20439
  this.#starting = true;
20437
- const importee = await import('./client-d1c29e20.js');
20440
+ const importee = await import('./client-e2df99cf.js');
20438
20441
  /**
20439
20442
  * @access public
20440
20443
  * @type {PeernetClient}
@@ -20624,8 +20627,8 @@ class Peernet {
20624
20627
  if (!closestPeer || !closestPeer.id)
20625
20628
  return this.requestData(hash, store?.name || store);
20626
20629
  const id = closestPeer.id;
20627
- if (this.#connections[id]) {
20628
- const peer = this.#connections[id];
20630
+ const peer = this.#connections[id];
20631
+ if (peer?.connected) {
20629
20632
  let data = await new globalThis.peernet.protos['peernet-data']({ hash, store: store?.name || store });
20630
20633
  const node = await this.prepareMessage(data);
20631
20634
  if (peer)
@@ -20648,6 +20651,9 @@ class Peernet {
20648
20651
  return BufferToUint8Array(proto.decoded.data);
20649
20652
  // this.put(hash, proto.decoded.data)
20650
20653
  }
20654
+ else {
20655
+ this.dht.removeProvider(id, hash);
20656
+ }
20651
20657
  return;
20652
20658
  }
20653
20659
  get message() {
@@ -1,2 +1,2 @@
1
- export { P as default } from './peernet-ad3ca002.js';
1
+ export { P as default } from './peernet-4c63c3a2.js';
2
2
  import './value-157ab062.js';
@@ -1,30 +1,23 @@
1
1
  export default class DhtEarth {
2
- providerMap: Map<any, any>;
2
+ providerMap: Map<string, Set<string>>;
3
+ /**
4
+ *
5
+ */
6
+ constructor();
3
7
  /**
4
8
  * @param {Object} address
5
9
  * @return {Object} {latitude: lat, longitude: lon}
6
10
  */
7
- getCoordinates(address: any): any;
11
+ getCoordinates(address: object): object;
8
12
  /**
9
13
  * @param {Object} peer
10
14
  * @param {Object} provider
11
15
  * @return {Object} {provider, distance}
12
16
  */
13
- getDistance(peer: any, provider: any): any;
14
- /**
15
- * @param {Array} providers
16
- * @return {Object} closestPeer
17
- */
18
- closestPeer(providers: any[]): any;
19
- /**
20
- * @param {String} hash
21
- * @return {Array} providers
22
- */
23
- providersFor(hash: string): any[];
24
- /**
25
- * @param {String} address
26
- * @param {String} hash
27
- * @return {Array} providers
28
- */
29
- addProvider(address: string, hash: string): any[];
17
+ getDistance(peer: object, provider: object): object;
18
+ closestPeer(providers: Array<any>): object;
19
+ hasProvider(hash: string): boolean;
20
+ providersFor(hash: string): string[];
21
+ addProvider(address: string, hash: string): string[];
22
+ removeProvider(address: string, hash: string): true | undefined;
30
23
  }
@@ -187,6 +187,7 @@ const distanceInKmBetweenEarthCoordinates = (lat1, lon1, lat2, lon2) => {
187
187
  return earthRadiusKm * c;
188
188
  };
189
189
  class DhtEarth {
190
+ providerMap = new Map;
190
191
  /**
191
192
  *
192
193
  */
@@ -216,10 +217,6 @@ class DhtEarth {
216
217
  const { latitude, longitude } = await this.getCoordinates(provider.address);
217
218
  return { provider, distance: distanceInKmBetweenEarthCoordinates(peer.latitude, peer.longitude, latitude, longitude) };
218
219
  }
219
- /**
220
- * @param {Array} providers
221
- * @return {Object} closestPeer
222
- */
223
220
  async closestPeer(providers) {
224
221
  let all = [];
225
222
  const address = await getAddress();
@@ -234,25 +231,31 @@ class DhtEarth {
234
231
  all = all.sort((previous, current) => previous.distance - current.distance);
235
232
  return all[0].provider;
236
233
  }
237
- /**
238
- * @param {String} hash
239
- * @return {Array} providers
240
- */
241
- providersFor(hash) {
242
- return this.providerMap.get(hash);
234
+ hasProvider(hash) {
235
+ return this.providerMap.has(hash);
243
236
  }
244
- /**
245
- * @param {String} address
246
- * @param {String} hash
247
- * @return {Array} providers
248
- */
249
- async addProvider(address, hash) {
237
+ providersFor(hash) {
250
238
  let providers = [];
251
239
  if (this.providerMap.has(hash))
240
+ providers = [...this.providerMap.get(hash)];
241
+ return providers;
242
+ }
243
+ addProvider(address, hash) {
244
+ let providers = new Set();
245
+ if (this.providerMap.has(hash)) {
252
246
  providers = this.providerMap.get(hash);
253
- providers = new Set([...providers, address]);
247
+ }
248
+ providers.add(address);
254
249
  this.providerMap.set(hash, providers);
255
- return providers;
250
+ }
251
+ removeProvider(address, hash) {
252
+ let deleted = undefined;
253
+ if (this.providerMap.has(hash)) {
254
+ const providers = this.providerMap.get(hash);
255
+ deleted = providers.delete(address);
256
+ deleted && this.providerMap.set(hash, providers);
257
+ }
258
+ return deleted;
256
259
  }
257
260
  }
258
261
 
@@ -782,8 +785,8 @@ class Peernet {
782
785
  if (!closestPeer || !closestPeer.id)
783
786
  return this.requestData(hash, store?.name || store);
784
787
  const id = closestPeer.id;
785
- if (this.#connections[id]) {
786
- const peer = this.#connections[id];
788
+ const peer = this.#connections[id];
789
+ if (peer?.connected) {
787
790
  let data = await new globalThis.peernet.protos['peernet-data']({ hash, store: store?.name || store });
788
791
  const node = await this.prepareMessage(data);
789
792
  if (peer)
@@ -806,6 +809,9 @@ class Peernet {
806
809
  return BufferToUint8Array(proto.decoded.data);
807
810
  // this.put(hash, proto.decoded.data)
808
811
  }
812
+ else {
813
+ this.dht.removeProvider(id, hash);
814
+ }
809
815
  return;
810
816
  }
811
817
  get message() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/peernet",
3
- "version": "1.1.31",
3
+ "version": "1.1.32",
4
4
  "description": "",
5
5
  "main": "src/peernet.js",
6
6
  "exports": {
@@ -47,18 +47,15 @@ const distanceInKmBetweenEarthCoordinates = (lat1, lon1, lat2, lon2) => {
47
47
  }
48
48
 
49
49
  export default class DhtEarth {
50
+ providerMap = new Map<string, Set<string>>
51
+
50
52
  /**
51
53
  *
52
54
  */
53
55
  constructor() {
54
56
  this.providerMap = new Map();
55
57
  }
56
-
57
- /**
58
- * @param {Object} address
59
- * @return {Object} {latitude: lat, longitude: lon}
60
- */
61
- async getCoordinates(address) {
58
+ async getCoordinates(address: string): Promise<object> {
62
59
  if (!fetchedCoordinates[address]) {
63
60
  const request = `https://whereis.leofcoin.org/?ip=${address}`
64
61
  let response = await fetch(request)
@@ -74,16 +71,12 @@ export default class DhtEarth {
74
71
  * @param {Object} provider
75
72
  * @return {Object} {provider, distance}
76
73
  */
77
- async getDistance(peer, provider) {
74
+ async getDistance(peer: object, provider: object): object {
78
75
  const {latitude, longitude} = await this.getCoordinates(provider.address)
79
76
  return {provider, distance: distanceInKmBetweenEarthCoordinates(peer.latitude, peer.longitude, latitude, longitude)}
80
77
  }
81
78
 
82
- /**
83
- * @param {Array} providers
84
- * @return {Object} closestPeer
85
- */
86
- async closestPeer(providers) {
79
+ async closestPeer(providers: Array<any>): object {
87
80
  let all = []
88
81
  const address = await getAddress();
89
82
  const peerLoc = await this.getCoordinates(address)
@@ -97,25 +90,32 @@ export default class DhtEarth {
97
90
  return all[0].provider;
98
91
  }
99
92
 
100
- /**
101
- * @param {String} hash
102
- * @return {Array} providers
103
- */
104
- providersFor(hash) {
105
- return this.providerMap.get(hash);
93
+ hasProvider(hash: string): boolean {
94
+ return this.providerMap.has(hash)
106
95
  }
107
96
 
108
- /**
109
- * @param {String} address
110
- * @param {String} hash
111
- * @return {Array} providers
112
- */
113
- async addProvider(address, hash) {
114
- let providers = [];
115
- if (this.providerMap.has(hash)) providers = this.providerMap.get(hash)
97
+ providersFor(hash: string): string[] {
98
+ let providers = []
99
+ if (this.providerMap.has(hash)) providers = [...this.providerMap.get(hash)]
100
+ return providers
101
+ }
116
102
 
117
- providers = new Set([...providers, address])
103
+ addProvider(address: string, hash: string): string[] {
104
+ let providers:Set<string> = new Set()
105
+ if (this.providerMap.has(hash)) {
106
+ providers = this.providerMap.get(hash)
107
+ }
108
+ providers.add(address)
118
109
  this.providerMap.set(hash, providers)
119
- return providers;
110
+ }
111
+
112
+ removeProvider(address: string, hash: string): true | undefined {
113
+ let deleted = undefined
114
+ if (this.providerMap.has(hash)) {
115
+ const providers = this.providerMap.get(hash)
116
+ deleted = providers.delete(address)
117
+ deleted && this.providerMap.set(hash, providers)
118
+ }
119
+ return deleted;
120
120
  }
121
121
  }
package/src/peernet.ts CHANGED
@@ -480,9 +480,9 @@ export default class Peernet {
480
480
  if (!closestPeer || !closestPeer.id) return this.requestData(hash, store?.name || store)
481
481
 
482
482
  const id = closestPeer.id
483
-
484
- if (this.#connections[id]) {
485
- const peer = this.#connections[id]
483
+ const peer = this.#connections[id]
484
+
485
+ if (peer?.connected) {
486
486
 
487
487
  let data = await new globalThis.peernet.protos['peernet-data']({hash, store: store?.name || store});
488
488
 
@@ -508,6 +508,8 @@ export default class Peernet {
508
508
  return BufferToUint8Array(proto.decoded.data)
509
509
 
510
510
  // this.put(hash, proto.decoded.data)
511
+ } else {
512
+ this.dht.removeProvider(id, hash)
511
513
  }
512
514
  return
513
515
  }