@leofcoin/peernet 1.1.7 → 1.1.9

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 { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-b4c44d17.js';
1
+ import { M as MultiWallet, e as encrypt, b as base58$1 } from './peernet-3281374b.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { F as FormatInterface } from './peernet-b4c44d17.js';
1
+ import { F as FormatInterface } from './peernet-3281374b.js';
2
2
  import './value-157ab062.js';
3
3
 
4
4
  var proto$b = {
@@ -2190,9 +2190,9 @@ class MessageHandler {
2190
2190
  const dataHandler = async (message) => {
2191
2191
  if (!message)
2192
2192
  return;
2193
- const { data, id, from } = message;
2193
+ const { data, id, from, peer } = message;
2194
2194
  const proto = await protoFor(data);
2195
- peernet._protoHandler({ id, proto }, peernet.client.connections[from], from);
2195
+ peernet._protoHandler({ id, proto }, peernet.connections[from] || peer, from);
2196
2196
  };
2197
2197
 
2198
2198
  const dhtError = (proto) => {
@@ -2600,6 +2600,10 @@ var index = {
2600
2600
 
2601
2601
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
2602
2602
 
2603
+ function getDefaultExportFromCjs (x) {
2604
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
2605
+ }
2606
+
2603
2607
  function getAugmentedNamespace(n) {
2604
2608
  if (n.__esModule) return n;
2605
2609
  var f = n.default;
@@ -16082,7 +16086,7 @@ class Identity {
16082
16086
  globalThis.peernet.selectedAccount = new TextDecoder().decode(selected);
16083
16087
  }
16084
16088
  else {
16085
- const importee = await import(/* webpackChunkName: "generate-account" */ './index-543bc6a3.js');
16089
+ const importee = await import(/* webpackChunkName: "generate-account" */ './index-59ec4d46.js');
16086
16090
  const { identity, accounts } = await importee.default(password, this.network);
16087
16091
  await globalThis.accountStore.put('public', JSON.stringify({ walletId: identity.walletId }));
16088
16092
  await globalThis.walletStore.put('version', String(1));
@@ -16146,6 +16150,7 @@ class Peernet {
16146
16150
  autoStart = true;
16147
16151
  #starting = false;
16148
16152
  #started = false;
16153
+ #connections = {};
16149
16154
  /**
16150
16155
  * @access public
16151
16156
  * @param {Object} options
@@ -16224,13 +16229,13 @@ class Peernet {
16224
16229
  * @return {Array} peerId
16225
16230
  */
16226
16231
  get peers() {
16227
- return Object.keys(this.client.connections);
16232
+ return Object.values(this.#connections);
16228
16233
  }
16229
16234
  get connections() {
16230
- return Object.values(this.client.connections);
16235
+ return Object.values(this.#connections);
16231
16236
  }
16232
16237
  get peerEntries() {
16233
- return Object.entries(this.client.connections);
16238
+ return Object.values(this.#connections);
16234
16239
  }
16235
16240
  /**
16236
16241
  * @return {String} id - peerId
@@ -16252,7 +16257,7 @@ class Peernet {
16252
16257
  this.root = options.root;
16253
16258
  const { RequestMessage, ResponseMessage, PeerMessage, PeerMessageResponse, PeernetMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PsMessage, ChatMessage, PeernetFile
16254
16259
  // FolderMessageResponse
16255
- } = await import(/* webpackChunkName: "messages" */ './messages-48deb2c3.js');
16260
+ } = await import(/* webpackChunkName: "messages" */ './messages-c720a8ba.js');
16256
16261
  /**
16257
16262
  * proto Object containing protos
16258
16263
  * @type {Object}
@@ -16286,15 +16291,19 @@ class Peernet {
16286
16291
  await this.identity.load(password);
16287
16292
  this._peerHandler = new PeerDiscovery(this.id);
16288
16293
  this.peerId = this.id;
16289
- pubsub.subscribe('peer:connected', async (peer) => {
16294
+ this.addRequestHandler('handshake', () => {
16295
+ return new peernet.protos['peernet-response']({ response: { peerId: this.id } });
16296
+ });
16297
+ pubsub.subscribe('peer:discovered', async (peer) => {
16290
16298
  // console.log(peer);
16291
- // console.log({connected: peer.id, as: this._getPeerId(peer.id) });
16292
- // peer.on('peernet.data', async (message) => {
16293
- // const id = message.id
16294
- // message = new PeernetMessage(Buffer.from(message.data.data))
16295
- // const proto = protoFor(message.decoded.data)
16296
- // this._protoHandler({id, proto}, peer)
16297
- // })
16299
+ let data = await new globalThis.peernet.protos['peernet-request']({ request: 'handshake' });
16300
+ let node = await globalThis.peernet.prepareMessage(data);
16301
+ let response = await peer.request(node.encoded);
16302
+ response = await new globalThis.peernet.protos['peernet-response'](new Uint8Array(Object.values(response)));
16303
+ // todo: response.decoded should be the response and not response.peerId
16304
+ this.#connections[response.decoded.response.peerId] = peer;
16305
+ pubsub.publish('peer:connected', peer);
16306
+ // todo: cleanup discovered
16298
16307
  });
16299
16308
  /**
16300
16309
  * converts data -> message -> proto
@@ -16319,7 +16328,7 @@ class Peernet {
16319
16328
  if (this.#starting || this.#started)
16320
16329
  return;
16321
16330
  this.#starting = true;
16322
- const importee = await import('./client-21cee984.js');
16331
+ const importee = await import('./client-6f8b633a.js');
16323
16332
  /**
16324
16333
  * @access public
16325
16334
  * @type {PeernetClient}
@@ -16331,12 +16340,13 @@ class Peernet {
16331
16340
  addRequestHandler(name, method) {
16332
16341
  this.requestProtos[name] = method;
16333
16342
  }
16334
- sendMessage(peer, id, data) {
16335
- if (peer.readyState === 'open') {
16336
- peer.send(data, id);
16337
- this.bw.up += data.length;
16338
- }
16339
- else if (peer.readyState === 'closed') ;
16343
+ async sendMessage(peer, id, data) {
16344
+ // if (peer.readyState === 'open') {
16345
+ await peer.send(data, id);
16346
+ this.bw.up += data.length;
16347
+ // } else if (peer.readyState === 'closed') {
16348
+ // this.removePeer(peer)
16349
+ // }
16340
16350
  }
16341
16351
  async handleDHT(peer, id, proto) {
16342
16352
  let { hash, store } = proto.decoded;
@@ -16393,6 +16403,7 @@ class Peernet {
16393
16403
  }
16394
16404
  case 'peernet-request': {
16395
16405
  this.handleRequest(peer, id, proto);
16406
+ break;
16396
16407
  }
16397
16408
  case 'peernet-ps': {
16398
16409
  if (peer.peerId !== this.id)
@@ -16754,4 +16765,4 @@ class Peernet {
16754
16765
  }
16755
16766
  globalThis.Peernet = Peernet;
16756
16767
 
16757
- export { FormatInterface as F, LittlePubSub as L, MultiWallet as M, Peernet as P, base58$1 as b, commonjsGlobal as c, encrypt as e };
16768
+ export { FormatInterface as F, MultiWallet as M, Peernet as P, base58$1 as b, commonjsGlobal as c, encrypt as e, getDefaultExportFromCjs as g };
@@ -1,2 +1,2 @@
1
- export { P as default } from './peernet-b4c44d17.js';
1
+ export { P as default } from './peernet-3281374b.js';
2
2
  import './value-157ab062.js';
@@ -290,9 +290,9 @@ class MessageHandler {
290
290
  const dataHandler = async (message) => {
291
291
  if (!message)
292
292
  return;
293
- const { data, id, from } = message;
293
+ const { data, id, from, peer } = message;
294
294
  const proto = await protoFor(data);
295
- peernet._protoHandler({ id, proto }, peernet.client.connections[from], from);
295
+ peernet._protoHandler({ id, proto }, peernet.connections[from] || peer, from);
296
296
  };
297
297
 
298
298
  const dhtError = (proto) => {
@@ -404,6 +404,7 @@ class Peernet {
404
404
  autoStart = true;
405
405
  #starting = false;
406
406
  #started = false;
407
+ #connections = {};
407
408
  /**
408
409
  * @access public
409
410
  * @param {Object} options
@@ -482,13 +483,13 @@ class Peernet {
482
483
  * @return {Array} peerId
483
484
  */
484
485
  get peers() {
485
- return Object.keys(this.client.connections);
486
+ return Object.values(this.#connections);
486
487
  }
487
488
  get connections() {
488
- return Object.values(this.client.connections);
489
+ return Object.values(this.#connections);
489
490
  }
490
491
  get peerEntries() {
491
- return Object.entries(this.client.connections);
492
+ return Object.values(this.#connections);
492
493
  }
493
494
  /**
494
495
  * @return {String} id - peerId
@@ -544,15 +545,19 @@ class Peernet {
544
545
  await this.identity.load(password);
545
546
  this._peerHandler = new PeerDiscovery(this.id);
546
547
  this.peerId = this.id;
547
- pubsub.subscribe('peer:connected', async (peer) => {
548
+ this.addRequestHandler('handshake', () => {
549
+ return new peernet.protos['peernet-response']({ response: { peerId: this.id } });
550
+ });
551
+ pubsub.subscribe('peer:discovered', async (peer) => {
548
552
  // console.log(peer);
549
- // console.log({connected: peer.id, as: this._getPeerId(peer.id) });
550
- // peer.on('peernet.data', async (message) => {
551
- // const id = message.id
552
- // message = new PeernetMessage(Buffer.from(message.data.data))
553
- // const proto = protoFor(message.decoded.data)
554
- // this._protoHandler({id, proto}, peer)
555
- // })
553
+ let data = await new globalThis.peernet.protos['peernet-request']({ request: 'handshake' });
554
+ let node = await globalThis.peernet.prepareMessage(data);
555
+ let response = await peer.request(node.encoded);
556
+ response = await new globalThis.peernet.protos['peernet-response'](new Uint8Array(Object.values(response)));
557
+ // todo: response.decoded should be the response and not response.peerId
558
+ this.#connections[response.decoded.response.peerId] = peer;
559
+ pubsub.publish('peer:connected', peer);
560
+ // todo: cleanup discovered
556
561
  });
557
562
  /**
558
563
  * converts data -> message -> proto
@@ -577,7 +582,7 @@ class Peernet {
577
582
  if (this.#starting || this.#started)
578
583
  return;
579
584
  this.#starting = true;
580
- const importee = await import('@leofcoin/peernet-swarm/client');
585
+ const importee = await import('@netpeer/p2pt-swarm/client.js');
581
586
  /**
582
587
  * @access public
583
588
  * @type {PeernetClient}
@@ -589,12 +594,13 @@ class Peernet {
589
594
  addRequestHandler(name, method) {
590
595
  this.requestProtos[name] = method;
591
596
  }
592
- sendMessage(peer, id, data) {
593
- if (peer.readyState === 'open') {
594
- peer.send(data, id);
595
- this.bw.up += data.length;
596
- }
597
- else if (peer.readyState === 'closed') ;
597
+ async sendMessage(peer, id, data) {
598
+ // if (peer.readyState === 'open') {
599
+ await peer.send(data, id);
600
+ this.bw.up += data.length;
601
+ // } else if (peer.readyState === 'closed') {
602
+ // this.removePeer(peer)
603
+ // }
598
604
  }
599
605
  async handleDHT(peer, id, proto) {
600
606
  let { hash, store } = proto.decoded;
@@ -651,6 +657,7 @@ class Peernet {
651
657
  }
652
658
  case 'peernet-request': {
653
659
  this.handleRequest(peer, id, proto);
660
+ break;
654
661
  }
655
662
  case 'peernet-ps': {
656
663
  if (peer.peerId !== this.id)
package/index.html CHANGED
@@ -9,7 +9,7 @@
9
9
  </script> -->
10
10
 
11
11
  <script type="module">
12
- import Peernet from './dist/peernet.js';
12
+ import Peernet from './exports/browser/peernet.js';
13
13
  (async () => {
14
14
  const peernet = await new Peernet({network: 'leofcoin:peach', networkVersion: 'peach'})
15
15
  peernet.addRequestHandler('lastBlock', () => new peernet.protos['peernet-response']({response: new TextEncoder().encode(100)}))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leofcoin/peernet",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "",
5
5
  "main": "src/peernet.js",
6
6
  "exports": {
@@ -31,6 +31,7 @@
31
31
  "@leofcoin/multi-wallet": "^3.0.1",
32
32
  "@leofcoin/peernet-swarm": "^1.1.0",
33
33
  "@leofcoin/storage": "^3.0.0",
34
+ "@netpeer/p2pt-swarm": "^1.1.5",
34
35
  "@types/node": "^18.11.18",
35
36
  "@vandeurenglenn/base32": "^1.1.0",
36
37
  "@vandeurenglenn/base58": "^1.1.0",
@@ -3,10 +3,9 @@ import { protoFor } from './../utils/utils.js'
3
3
  const dataHandler = async message => {
4
4
  if (!message) return
5
5
 
6
- const {data, id, from} = message
6
+ const {data, id, from, peer} = message
7
7
  const proto = await protoFor(data)
8
-
9
- peernet._protoHandler({id, proto}, peernet.client.connections[from], from)
8
+ peernet._protoHandler({id, proto}, peernet.connections[from] || peer, from)
10
9
  }
11
10
 
12
11
  export default dataHandler
package/src/peernet.ts CHANGED
@@ -46,6 +46,7 @@ export default class Peernet {
46
46
  autoStart: boolean = true
47
47
  #starting: boolean = false
48
48
  #started: boolean = false
49
+ #connections = {}
49
50
 
50
51
  /**
51
52
  * @access public
@@ -135,15 +136,15 @@ export default class Peernet {
135
136
  * @return {Array} peerId
136
137
  */
137
138
  get peers() {
138
- return Object.keys(this.client.connections)
139
+ return Object.values(this.#connections)
139
140
  }
140
141
 
141
142
  get connections() {
142
- return Object.values(this.client.connections)
143
+ return Object.values(this.#connections)
143
144
  }
144
145
 
145
146
  get peerEntries() {
146
- return Object.entries(this.client.connections)
147
+ return Object.values(this.#connections)
147
148
  }
148
149
 
149
150
  /**
@@ -223,15 +224,22 @@ export default class Peernet {
223
224
  this._peerHandler = new PeerDiscovery(this.id)
224
225
  this.peerId = this.id
225
226
 
226
- pubsub.subscribe('peer:connected', async (peer) => {
227
+ this.addRequestHandler('handshake', ( ) => {
228
+ return new peernet.protos['peernet-response']({response: {peerId: this.id}})
229
+ })
230
+
231
+ pubsub.subscribe('peer:discovered', async (peer) => {
227
232
  // console.log(peer);
228
- // console.log({connected: peer.id, as: this._getPeerId(peer.id) });
229
- // peer.on('peernet.data', async (message) => {
230
- // const id = message.id
231
- // message = new PeernetMessage(Buffer.from(message.data.data))
232
- // const proto = protoFor(message.decoded.data)
233
- // this._protoHandler({id, proto}, peer)
234
- // })
233
+
234
+ let data = await new globalThis.peernet.protos['peernet-request']({request: 'handshake'});
235
+ let node = await globalThis.peernet.prepareMessage(data);
236
+ let response = await peer.request(node.encoded)
237
+
238
+ response = await new globalThis.peernet.protos['peernet-response'](new Uint8Array(Object.values(response)))
239
+ // todo: response.decoded should be the response and not response.peerId
240
+ this.#connections[response.decoded.response.peerId] = peer
241
+ pubsub.publish('peer:connected', peer)
242
+ // todo: cleanup discovered
235
243
  })
236
244
 
237
245
  /**
@@ -257,7 +265,7 @@ export default class Peernet {
257
265
  if (this.#starting || this.#started) return
258
266
 
259
267
  this.#starting = true
260
- const importee = await import('@leofcoin/peernet-swarm/client')
268
+ const importee = await import('@netpeer/p2pt-swarm/client.js')
261
269
  /**
262
270
  * @access public
263
271
  * @type {PeernetClient}
@@ -271,13 +279,14 @@ export default class Peernet {
271
279
  this.requestProtos[name] = method
272
280
  }
273
281
 
274
- sendMessage(peer, id, data) {
275
- if (peer.readyState === 'open') {
276
- peer.send(data, id)
282
+ async sendMessage(peer, id, data) {
283
+
284
+ // if (peer.readyState === 'open') {
285
+ await peer.send(data, id)
277
286
  this.bw.up += data.length
278
- } else if (peer.readyState === 'closed') {
287
+ // } else if (peer.readyState === 'closed') {
279
288
  // this.removePeer(peer)
280
- }
289
+ // }
281
290
 
282
291
  }
283
292
 
@@ -334,6 +343,7 @@ export default class Peernet {
334
343
  */
335
344
  async _protoHandler(message, peer, from) {
336
345
  const {id, proto} = message
346
+
337
347
  this.bw.down += proto.encoded.length
338
348
  switch(proto.name) {
339
349
  case 'peernet-dht': {
@@ -346,6 +356,7 @@ export default class Peernet {
346
356
  }
347
357
  case 'peernet-request': {
348
358
  this.handleRequest(peer, id, proto)
359
+ break
349
360
  }
350
361
 
351
362
  case 'peernet-ps': {
package/test.js CHANGED
@@ -12,36 +12,36 @@ import Client from './exports/peernet.js'
12
12
  // content: Buffer.from('html')
13
13
  // }]).then(hash => peernet.ls(hash).then(paths => peernet.cat(paths[0].hash).then(content => console.log(content))))
14
14
 
15
- pubsub.subscribe('peer:connected', async peer => {
16
- chainStore.put('localBlock', '00000')
17
- const request = await new globalThis.peernet.protos['peernet-request']({
18
- request:'lastBlock'
19
- })
20
- const to = peer.id
21
- await peernet.data.put('hello', 'hi')
22
- console.log({request});
23
- const node = await peernet.prepareMessage(request)
24
- console.log({node});
25
- let response = await peer.request(node.encoded)
26
- console.log({response});
27
- const keys = Object.keys(response)
28
- const uint8Array = new Uint8Array(keys.length)
29
- for (const key of keys) {
30
- uint8Array[Number(key)] = response[key]
31
- }
32
- // const proto = await new globalThis.peernet.protos['peernet-message'](uint8Array)
33
- // console.log(proto.decoded.data);
34
- response = await new globalThis.peernet.protos['peernet-response'](uint8Array)
35
- console.log({response});
36
-
37
- const block = new TextDecoder().decode(response.decoded.response)
38
- console.log(block);
39
- const task = () => setTimeout(() => {
40
- console.log(peernet.connections[0]?.connected);
41
- console.log(pubsub.subscribers);
42
- task()
43
- }, 5000);
44
- task()
45
- })
15
+ // pubsub.subscribe('peer:connected', async peer => {
16
+ // chainStore.put('localBlock', '00000')
17
+ // const request = await new globalThis.peernet.protos['peernet-request']({
18
+ // request:'lastBlock'
19
+ // })
20
+ // const to = peer.id
21
+ // await peernet.data.put('hello', 'hi')
22
+ // console.log({request});
23
+ // const node = await peernet.prepareMessage(request)
24
+ // console.log({node});
25
+ // let response = await peer.request(node.encoded)
26
+ // console.log({response});
27
+ // const keys = Object.keys(response)
28
+ // const uint8Array = new Uint8Array(keys.length)
29
+ // for (const key of keys) {
30
+ // uint8Array[Number(key)] = response[key]
31
+ // }
32
+ // // const proto = await new globalThis.peernet.protos['peernet-message'](uint8Array)
33
+ // // console.log(proto.decoded.data);
34
+ // response = await new globalThis.peernet.protos['peernet-response'](uint8Array)
35
+ // console.log({response});
36
+
37
+ // const block = new TextDecoder().decode(response.decoded.response)
38
+ // console.log(block);
39
+ // const task = () => setTimeout(() => {
40
+ // console.log(peernet.connections[0]?.connected);
41
+ // console.log(pubsub.subscribers);
42
+ // task()
43
+ // }, 5000);
44
+ // task()
45
+ // })
46
46
 
47
47
 
@@ -1,56 +0,0 @@
1
- function _mergeNamespaces(n, m) {
2
- m.forEach(function (e) {
3
- e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
4
- if (k !== 'default' && !(k in n)) {
5
- var d = Object.getOwnPropertyDescriptor(e, k);
6
- Object.defineProperty(n, k, d.get ? d : {
7
- enumerable: true,
8
- get: function () { return e[k]; }
9
- });
10
- }
11
- });
12
- });
13
- return Object.freeze(n);
14
- }
15
-
16
- var browser$1 = {};
17
-
18
- var MediaStream = browser$1.MediaStream = window.MediaStream;
19
- var MediaStreamTrack = browser$1.MediaStreamTrack = window.MediaStreamTrack;
20
- var RTCDataChannel = browser$1.RTCDataChannel = window.RTCDataChannel;
21
- var RTCDataChannelEvent = browser$1.RTCDataChannelEvent = window.RTCDataChannelEvent;
22
- var RTCDtlsTransport = browser$1.RTCDtlsTransport = window.RTCDtlsTransport;
23
- var RTCIceCandidate = browser$1.RTCIceCandidate = window.RTCIceCandidate;
24
- var RTCIceTransport = browser$1.RTCIceTransport = window.RTCIceTransport;
25
- var RTCPeerConnection = browser$1.RTCPeerConnection = window.RTCPeerConnection;
26
- var RTCPeerConnectionIceEvent = browser$1.RTCPeerConnectionIceEvent = window.RTCPeerConnectionIceEvent;
27
- var RTCRtpReceiver = browser$1.RTCRtpReceiver = window.RTCRtpReceiver;
28
- var RTCRtpSender = browser$1.RTCRtpSender = window.RTCRtpSender;
29
- var RTCRtpTransceiver = browser$1.RTCRtpTransceiver = window.RTCRtpTransceiver;
30
- var RTCSctpTransport = browser$1.RTCSctpTransport = window.RTCSctpTransport;
31
- var RTCSessionDescription = browser$1.RTCSessionDescription = window.RTCSessionDescription;
32
- var getUserMedia = browser$1.getUserMedia = window.getUserMedia;
33
- var mediaDevices = browser$1.mediaDevices = navigator.mediaDevices;
34
-
35
- var browser = /*#__PURE__*/_mergeNamespaces({
36
- __proto__: null,
37
- MediaStream: MediaStream,
38
- MediaStreamTrack: MediaStreamTrack,
39
- RTCDataChannel: RTCDataChannel,
40
- RTCDataChannelEvent: RTCDataChannelEvent,
41
- RTCDtlsTransport: RTCDtlsTransport,
42
- RTCIceCandidate: RTCIceCandidate,
43
- RTCIceTransport: RTCIceTransport,
44
- RTCPeerConnection: RTCPeerConnection,
45
- RTCPeerConnectionIceEvent: RTCPeerConnectionIceEvent,
46
- RTCRtpReceiver: RTCRtpReceiver,
47
- RTCRtpSender: RTCRtpSender,
48
- RTCRtpTransceiver: RTCRtpTransceiver,
49
- RTCSctpTransport: RTCSctpTransport,
50
- RTCSessionDescription: RTCSessionDescription,
51
- default: browser$1,
52
- getUserMedia: getUserMedia,
53
- mediaDevices: mediaDevices
54
- }, [browser$1]);
55
-
56
- export { browser as b };