@leofcoin/peernet 0.11.14 → 0.11.17

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/src/peernet.js CHANGED
@@ -18,7 +18,7 @@ import DHT from './dht/dht.js'
18
18
  import Hash from './hash/hash'
19
19
  import codecs from './codec/codecs'
20
20
  import { protoFor, target } from './utils/utils.js'
21
- import generateAccount from '@leofcoin/generate-account'
21
+ import generateAccount from './../node_modules/@leofcoin/generate-account/dist/module/generate-account'
22
22
  import MessageHandler from './handlers/message.js'
23
23
  import { encapsulatedError, dhtError,
24
24
  nothingFoundError } from './errors/errors.js'
@@ -86,7 +86,7 @@ export default class Peernet {
86
86
  if (this.hasDaemon) {
87
87
  Storage = LeofcoinStorageClient
88
88
  } else {
89
- Storage = globalThis.LeofcoinStorage?.default ? globalThis.LeofcoinStorage.default : LeofcoinStorage
89
+ Storage = globalThis.LeofcoinStorage ? globalThis.LeofcoinStorage : LeofcoinStorage
90
90
  }
91
91
  globalThis[`${name}Store`] = globalThis[`${name}Store`] ||
92
92
  await new Storage(name, root)
@@ -249,6 +249,16 @@ export default class Peernet {
249
249
  this.requestProtos[name] = method
250
250
  }
251
251
 
252
+ sendMessage(peer, id, data) {
253
+ if (peer.readyState === 'open') {
254
+ peer.send(new TextEncoder().encode(JSON.stringify({id, data})))
255
+ this.bw.up += data.length
256
+ } else if (peer.readyState === 'closed') {
257
+ this.removePeer(peer)
258
+ }
259
+
260
+ }
261
+
252
262
  /**
253
263
  * @private
254
264
  *
@@ -273,8 +283,7 @@ export default class Peernet {
273
283
  const data = new DHTMessageResponse({hash, has})
274
284
  const node = await this.prepareMessage(from, data.encoded)
275
285
 
276
- peer.send(new TextEncoder().encode(JSON.stringify({id, data: node.encoded})))
277
- this.bw.up += node.encoded.length
286
+ this.sendMessage(peer, id, node.encoded)
278
287
  } else if (proto.name === 'peernet-data') {
279
288
  let { hash, store } = proto.decoded
280
289
  let data
@@ -287,26 +296,21 @@ export default class Peernet {
287
296
  data = await store.get(hash)
288
297
 
289
298
  if (data) {
290
- data = new DataMessageResponse({hash, data: data.decoded ? new TextEncoder().encode(JSON.stringify(data.decoded)) : data});
299
+ data = new DataMessageResponse({hash, data});
291
300
 
292
301
  const node = await this.prepareMessage(from, data.encoded)
293
- peer.send(new TextEncoder().encode(JSON.stringify({id, data: node.encoded})))
294
- this.bw.up += node.encoded.length
302
+ this.sendMessage(peer, id, node.encoded)
295
303
  }
296
304
  } else {
297
305
  // ban (trying to access private st)
298
306
  }
299
307
 
300
308
  } else if (proto.name === 'peernet-request') {
301
- // TODO: make dynamic
302
- // exposeddevapi[proto.decoded.request](proto.decoded.params)
303
309
  const method = this.requestProtos[proto.decoded.request]
304
310
  if (method) {
305
311
  const data = await method()
306
312
  const node = await this.prepareMessage(from, data.encoded)
307
- peer.send(new TextEncoder().encode(JSON.stringify({id, data: node.encoded})))
308
-
309
- this.bw.up += node.encoded.length
313
+ this.sendMessage(peer, id, node.encoded)
310
314
  }
311
315
  } else if (proto.name === 'peernet-ps' && peer.peerId !== this.id) {
312
316
  globalSub.publish(new TextDecoder().decode(proto.decoded.topic), proto.decoded.data)
@@ -577,13 +581,9 @@ export default class Peernet {
577
581
  const id = Math.random().toString(36).slice(-12)
578
582
  data = new PsMessage({data, topic})
579
583
  for (const peer of this.connections) {
580
- if (peer.connected) {
581
- if (peer.peerId !== this.peerId) {
582
- const node = await this.prepareMessage(peer.peerId, data.encoded)
583
- peer.send(new TextEncoder().encode(JSON.stringify({id, data: node.encoded})))
584
- }
585
- } else {
586
- this.removePeer(peer)
584
+ if (peer.peerId !== this.peerId) {
585
+ const node = await this.prepareMessage(peer.peerId, data.encoded)
586
+ this.sendMessage(peer, id, node.encoded)
587
587
  }
588
588
  // TODO: if peer subscribed
589
589
  }
@@ -604,7 +604,7 @@ export default class Peernet {
604
604
  }
605
605
 
606
606
  async removePeer(peer) {
607
- delete this.client.connections[peer.peerId]
607
+ return this.client.removePeer(peer)
608
608
  }
609
609
 
610
610
  get Buffer() {
package/webpack.config.js CHANGED
@@ -1,7 +1,8 @@
1
1
  const path = require('path');
2
2
  const webpack = require('webpack');
3
3
  module.exports = [{
4
- entry: './src/peernet.js',
4
+ entry: './dist/browser/peernet.js',
5
+ mode: 'production',
5
6
  plugins: [
6
7
  // Work around for Buffer is undefined:
7
8
  // https://github.com/webpack/changelog-v5/issues/10
@@ -14,7 +15,13 @@ module.exports = [{
14
15
  new webpack.DefinePlugin({
15
16
  HTTP_IMPORT: '',
16
17
  "import fetch from 'node-fetch'": ''
17
- })
18
+ }),
19
+ new webpack.IgnorePlugin({
20
+ checkResource(resource, context) {
21
+ if (resource.includes('./wordlists') && !resource.includes('english')) return true
22
+ // console.log(resource, context);
23
+ }
24
+ }) // bi39 wordlist (mnemonic) only english
18
25
  ],
19
26
  optimization: {
20
27
  minimize: false
@@ -27,7 +34,9 @@ resolve: {
27
34
  "stream": require.resolve("stream-browserify"),
28
35
  "buffer": require.resolve("buffer"),
29
36
  "path": require.resolve("path-browserify"),
30
- "os": require.resolve("os-browserify")
37
+ "os": require.resolve("os-browserify"),
38
+ "crypto": require.resolve("crypto-browserify"),
39
+ "vm": require.resolve("vm-browserify")
31
40
  }
32
41
  },
33
42
  output: {
@@ -1,29 +0,0 @@
1
- "use strict";
2
- (self["webpackChunkPeernet"] = self["webpackChunkPeernet"] || []).push([[326],{
3
-
4
- /***/ 9326:
5
- /***/ (function(__unused_webpack_module, exports) {
6
-
7
-
8
-
9
- exports.MediaStream = window.MediaStream;
10
- exports.MediaStreamTrack = window.MediaStreamTrack;
11
- exports.RTCDataChannel = window.RTCDataChannel;
12
- exports.RTCDataChannelEvent = window.RTCDataChannelEvent;
13
- exports.RTCDtlsTransport = window.RTCDtlsTransport;
14
- exports.RTCIceCandidate = window.RTCIceCandidate;
15
- exports.RTCIceTransport = window.RTCIceTransport;
16
- exports.RTCPeerConnection = window.RTCPeerConnection;
17
- exports.RTCPeerConnectionIceEvent = window.RTCPeerConnectionIceEvent;
18
- exports.RTCRtpReceiver = window.RTCRtpReceiver;
19
- exports.RTCRtpSender = window.RTCRtpSender;
20
- exports.RTCRtpTransceiver = window.RTCRtpTransceiver;
21
- exports.RTCSctpTransport = window.RTCSctpTransport;
22
- exports.RTCSessionDescription = window.RTCSessionDescription;
23
- exports.getUserMedia = window.getUserMedia;
24
- exports.mediaDevices = navigator.mediaDevices;
25
-
26
-
27
- /***/ })
28
-
29
- }]);