@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.
- package/exports/browser/{client-d1c29e20.js → client-e2df99cf.js} +1 -1
- package/exports/browser/dht/dht.d.ts +12 -19
- package/exports/browser/{index-904b9f85.js → index-da3c0bea.js} +1 -1
- package/exports/browser/{messages-de2c5670.js → messages-b4ab65f6.js} +1 -1
- package/exports/browser/{peernet-ad3ca002.js → peernet-4c63c3a2.js} +29 -23
- package/exports/browser/peernet.js +1 -1
- package/exports/dht/dht.d.ts +12 -19
- package/exports/peernet.js +26 -20
- package/package.json +1 -1
- package/src/dht/{dht.js → dht.ts} +28 -28
- package/src/peernet.ts +5 -3
|
@@ -1,30 +1,23 @@
|
|
|
1
1
|
export default class DhtEarth {
|
|
2
|
-
providerMap: Map<
|
|
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:
|
|
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:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
6286
|
+
}
|
|
6287
|
+
providers.add(address);
|
|
6293
6288
|
this.providerMap.set(hash, providers);
|
|
6294
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
20628
|
-
|
|
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-
|
|
1
|
+
export { P as default } from './peernet-4c63c3a2.js';
|
|
2
2
|
import './value-157ab062.js';
|
package/exports/dht/dht.d.ts
CHANGED
|
@@ -1,30 +1,23 @@
|
|
|
1
1
|
export default class DhtEarth {
|
|
2
|
-
providerMap: Map<
|
|
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:
|
|
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:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
}
|
package/exports/peernet.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
247
|
+
}
|
|
248
|
+
providers.add(address);
|
|
254
249
|
this.providerMap.set(hash, providers);
|
|
255
|
-
|
|
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
|
-
|
|
786
|
-
|
|
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
|
@@ -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
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
485
|
-
|
|
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
|
}
|