@leofcoin/peernet 1.1.81 → 1.1.83

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.
Files changed (43) hide show
  1. package/exports/browser/{browser-DQJ6xf_F.js → browser-BogfGRzB.js} +2 -74
  2. package/exports/browser/browser-store.js +80 -76
  3. package/exports/browser/{client-C0VVXIWm.js → client-DD7vhDK_.js} +31 -8
  4. package/exports/browser/{identity-CQ_ieRiz.js → identity--VAIVSMm.js} +233 -213
  5. package/exports/browser/identity.js +1 -1
  6. package/exports/browser/{index-CEwkDK9g.js → index-Vgr1JQcP.js} +73 -52
  7. package/exports/browser/{index-BeqbCwUk.js → index-Vl0cNziw.js} +1 -1
  8. package/exports/browser/{messages-BdevLRCA.js → messages-CW17jRdc.js} +2 -2
  9. package/exports/browser/{peernet-DEIKLS2i.js → peernet-CuzuXSJb.js} +301 -4571
  10. package/exports/browser/peernet.d.ts +0 -1
  11. package/exports/browser/peernet.js +2 -2
  12. package/exports/browser/proto/data-response.proto.d.ts +1 -1
  13. package/exports/browser/proto/peernet.proto.d.ts +2 -2
  14. package/exports/browser/proto/ps.proto.d.ts +2 -2
  15. package/exports/browser/proto/request.proto.d.ts +1 -1
  16. package/exports/peernet.js +1 -6
  17. package/exports/store.js +12 -1
  18. package/exports/types/peernet.d.ts +0 -1
  19. package/exports/types/proto/data-response.proto.d.ts +1 -1
  20. package/exports/types/proto/peernet.proto.d.ts +2 -2
  21. package/exports/types/proto/ps.proto.d.ts +2 -2
  22. package/exports/types/proto/request.proto.d.ts +1 -1
  23. package/package.json +1 -2
  24. package/exports/browser/messages/chat.d.ts +0 -6
  25. package/exports/browser/messages/data-response.d.ts +0 -6
  26. package/exports/browser/messages/dht-response.d.ts +0 -6
  27. package/exports/browser/messages/dht.d.ts +0 -14
  28. package/exports/browser/messages/peer-response.d.ts +0 -6
  29. package/exports/browser/messages/peer.d.ts +0 -6
  30. package/exports/browser/messages/peernet.d.ts +0 -6
  31. package/exports/browser/messages/ps.d.ts +0 -6
  32. package/exports/browser/messages/request.d.ts +0 -6
  33. package/exports/browser/messages/response.d.ts +0 -6
  34. package/exports/types/messages/chat.d.ts +0 -6
  35. package/exports/types/messages/data-response.d.ts +0 -6
  36. package/exports/types/messages/dht-response.d.ts +0 -6
  37. package/exports/types/messages/dht.d.ts +0 -14
  38. package/exports/types/messages/peer-response.d.ts +0 -6
  39. package/exports/types/messages/peer.d.ts +0 -6
  40. package/exports/types/messages/peernet.d.ts +0 -6
  41. package/exports/types/messages/ps.d.ts +0 -6
  42. package/exports/types/messages/request.d.ts +0 -6
  43. package/exports/types/messages/response.d.ts +0 -6
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs } from './identity-CQ_ieRiz.js';
1
+ import { g as getDefaultExportFromCjs } from './identity--VAIVSMm.js';
2
2
 
3
3
  var global;
4
4
  var hasRequiredGlobal;
@@ -44,81 +44,9 @@ function requireGlobal () {
44
44
  return global;
45
45
  }
46
46
 
47
- var name = "websocket";
48
- var description = "Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.";
49
- var keywords = [
50
- "websocket",
51
- "websockets",
52
- "socket",
53
- "networking",
54
- "comet",
55
- "push",
56
- "RFC-6455",
57
- "realtime",
58
- "server",
59
- "client"
60
- ];
61
- var author = "Brian McKelvey <theturtle32@gmail.com> (https://github.com/theturtle32)";
62
- var contributors = [
63
- "Iñaki Baz Castillo <ibc@aliax.net> (http://dev.sipdoc.net)"
64
- ];
65
47
  var version$1 = "1.0.35";
66
- var repository = {
67
- type: "git",
68
- url: "https://github.com/theturtle32/WebSocket-Node.git"
69
- };
70
- var homepage = "https://github.com/theturtle32/WebSocket-Node";
71
- var engines = {
72
- node: ">=4.0.0"
73
- };
74
- var dependencies = {
75
- bufferutil: "^4.0.1",
76
- debug: "^2.2.0",
77
- "es5-ext": "^0.10.63",
78
- "typedarray-to-buffer": "^3.1.5",
79
- "utf-8-validate": "^5.0.2",
80
- yaeti: "^0.0.6"
81
- };
82
- var devDependencies = {
83
- "buffer-equal": "^1.0.0",
84
- gulp: "^4.0.2",
85
- "gulp-jshint": "^2.0.4",
86
- "jshint-stylish": "^2.2.1",
87
- jshint: "^2.0.0",
88
- tape: "^4.9.1"
89
- };
90
- var config = {
91
- verbose: false
92
- };
93
- var scripts = {
94
- test: "tape test/unit/*.js",
95
- gulp: "gulp"
96
- };
97
- var main = "index";
98
- var directories = {
99
- lib: "./lib"
100
- };
101
- var browser$3 = "lib/browser.js";
102
- var license = "Apache-2.0";
103
48
  var require$$0 = {
104
- name: name,
105
- description: description,
106
- keywords: keywords,
107
- author: author,
108
- contributors: contributors,
109
- version: version$1,
110
- repository: repository,
111
- homepage: homepage,
112
- engines: engines,
113
- dependencies: dependencies,
114
- devDependencies: devDependencies,
115
- config: config,
116
- scripts: scripts,
117
- main: main,
118
- directories: directories,
119
- browser: browser$3,
120
- license: license
121
- };
49
+ version: version$1};
122
50
 
123
51
  var version = require$$0.version;
124
52
 
@@ -1,30 +1,39 @@
1
1
  import { K as KeyPath, a as KeyValue } from './value-C3vAp-wb.js';
2
2
 
3
- if (!globalThis.DEBUG) {
4
- let DEBUG = [];
5
- if (globalThis.localStorage) {
6
- DEBUG = globalThis.localStorage.getItem('DEBUG');
7
- globalThis.DEBUG = DEBUG ? DEBUG.split(',') : [DEBUG];
8
- }
9
- }
10
-
11
- const debug$1 = (target, text) => {
12
- if (!globalThis.DEBUG && globalThis.DEBUG.length === 0) return;
13
- if (
14
- globalThis.DEBUG === 'true' ||
15
- globalThis.DEBUG === true ||
16
- globalThis.DEBUG?.indexOf(target) !== -1 ||
17
- globalThis.DEBUG?.indexOf('*') !== -1 ||
18
- globalThis.DEBUG?.indexOf(target.split('/')[0]) !== -1
19
- )
20
- if (text) console.log('\x1b[34m\x1b[1m%s', `${target}: ${text}`, '\x1b[0m');
21
- else console.log('\x1b[34m\x1b[1m%s', `${target}`, '\x1b[0m');
22
- };
23
-
24
- if (!globalThis.debug) {
25
- globalThis.debug = debug$1;
26
-
27
- globalThis.createDebugger = (target) => (text) => debug$1(target, text);
3
+ if (!globalThis.DEBUG) {
4
+ globalThis.DEBUG = [];
5
+ if (globalThis.localStorage) {
6
+ const DEBUG = globalThis.localStorage.getItem("DEBUG");
7
+ if (DEBUG) {
8
+ globalThis.DEBUG = DEBUG.startsWith("[")
9
+ ? JSON.parse(DEBUG).split(",")
10
+ : [DEBUG];
11
+ }
12
+ }
13
+ }
14
+
15
+ const getLogger = (trace) => (trace ? console.trace : console.log);
16
+
17
+ const debug$1 = (target, text, trace) => {
18
+ const _logger = getLogger(trace);
19
+ if (!globalThis.DEBUG || globalThis.DEBUG?.length === 0) return;
20
+ if (
21
+ globalThis.DEBUG === "true" ||
22
+ globalThis.DEBUG === true ||
23
+ globalThis.DEBUG?.indexOf(target) !== -1 ||
24
+ globalThis.DEBUG?.indexOf("*") !== -1 ||
25
+ globalThis.DEBUG?.indexOf(target.split("/")[0]) !== -1
26
+ )
27
+ if (text) _logger("\x1b[34m\x1b[1m%s", `${target}: ${text}`, "\x1b[0m");
28
+ else _logger("\x1b[34m\x1b[1m%s", `${target}`, "\x1b[0m");
29
+ };
30
+
31
+ const createDebugger = (target) => (text) => debug$1(target, text);
32
+
33
+ if (!globalThis.debug) {
34
+ globalThis.debug = debug$1;
35
+ // todo: deprecate
36
+ globalThis.createDebugger = createDebugger;
28
37
  }
29
38
 
30
39
  const debug = globalThis.createDebugger('leofcoin/storage');
@@ -80,15 +89,9 @@ class BrowerStore {
80
89
  }
81
90
  }
82
91
  async get(key) {
83
- let promiseResolve;
84
- let promiseReject;
85
- let result = new Promise((resolve, reject) => {
86
- promiseResolve = resolve;
87
- promiseReject = reject;
88
- });
89
- const promise = () => new Promise(async (resolve, reject) => {
90
- debug(`get ${this.toKeyPath(key)}`);
91
- setTimeout(async () => {
92
+ return new Promise((resolve, reject) => {
93
+ const task = async () => {
94
+ debug(`get ${this.toKeyPath(key)}`);
92
95
  try {
93
96
  let handle = await this.db.getFileHandle(this.toKeyPath(key));
94
97
  let readBuffer;
@@ -109,30 +112,20 @@ class BrowerStore {
109
112
  const file = await handle.getFile();
110
113
  readBuffer = await file.arrayBuffer();
111
114
  }
112
- this.runQueue();
113
- promiseResolve(new Uint8Array(readBuffer));
114
115
  resolve(new Uint8Array(readBuffer));
115
116
  }
116
117
  catch (error) {
117
- promiseReject(error);
118
- resolve(false);
118
+ reject(error);
119
119
  }
120
- }, 1);
120
+ };
121
+ this.queue.push(task);
122
+ this.runQueue();
121
123
  });
122
- this.queue.push(promise);
123
- this.runQueue();
124
- return result;
125
124
  }
126
125
  async put(key, value) {
127
- let promiseResolve;
128
- let promiseReject;
129
- let result = new Promise((resolve, reject) => {
130
- promiseResolve = resolve;
131
- promiseReject = reject;
132
- });
133
- const promise = () => new Promise(async (resolve, reject) => {
134
- debug(`put ${this.toKeyPath(key)}`);
135
- setTimeout(async () => {
126
+ return new Promise((resolve, reject) => {
127
+ const task = async () => {
128
+ debug(`put ${this.toKeyPath(key)}`);
136
129
  try {
137
130
  let handle = await this.db.getFileHandle(this.toKeyPath(key), { create: true });
138
131
  let writeable;
@@ -144,22 +137,17 @@ class BrowerStore {
144
137
  else {
145
138
  writeable = await handle.createWritable();
146
139
  }
147
- ;
148
- (await writeable).write(this.toKeyValue(value));
149
- (await writeable).close();
150
- this.runQueue();
140
+ await (await writeable).write(this.toKeyValue(value));
141
+ await (await writeable).close();
151
142
  resolve(true);
152
- promiseResolve(true);
153
143
  }
154
144
  catch (error) {
155
- promiseReject(error);
156
- resolve(false);
145
+ reject(error);
157
146
  }
158
- }, 5);
147
+ };
148
+ this.queue.push(task);
149
+ this.runQueue();
159
150
  });
160
- this.queue.push(promise);
161
- this.runQueue();
162
- return result;
163
151
  }
164
152
  async runQueue() {
165
153
  if (this.queue.length > 0 && !this.busy) {
@@ -174,24 +162,28 @@ class BrowerStore {
174
162
  }
175
163
  }
176
164
  async delete(key) {
177
- debug(`delete ${this.toKeyPath(key)}`);
178
- return new Promise(async (resolve, reject) => {
179
- try {
180
- await this.db.getFileHandle(`${this.toKeyPath(key)}.crswap`);
181
- setTimeout(() => resolve(this.delete(key)), 5);
182
- }
183
- catch (error) {
165
+ return new Promise((resolve, reject) => {
166
+ const task = async () => {
167
+ debug(`delete ${this.toKeyPath(key)}`);
184
168
  try {
185
- await this.db.removeEntry(this.toKeyPath(key));
186
- resolve(true);
169
+ await this.db.getFileHandle(`${this.toKeyPath(key)}.crswap`);
170
+ setTimeout(() => resolve(this.delete(key)), 5);
187
171
  }
188
172
  catch (error) {
189
- if (error.name === 'NoModificationAllowedError')
190
- setTimeout(() => resolve(this.delete(key)), 5);
191
- else
192
- reject(error);
173
+ try {
174
+ await this.db.removeEntry(this.toKeyPath(key));
175
+ resolve(true);
176
+ }
177
+ catch (error) {
178
+ if (error.name === 'NoModificationAllowedError')
179
+ setTimeout(() => resolve(this.delete(key)), 5);
180
+ else
181
+ reject(error);
182
+ }
193
183
  }
194
- }
184
+ };
185
+ this.queue.push(task);
186
+ this.runQueue();
195
187
  });
196
188
  }
197
189
  async clear() {
@@ -229,6 +221,18 @@ class BrowerStore {
229
221
  async iterate() {
230
222
  return this.db.entries();
231
223
  }
224
+ async entries() {
225
+ let values = [];
226
+ for await (const [key, cursor] of this.db.entries()) {
227
+ values.push((async () => {
228
+ // huh? Outdated typings?
229
+ // @ts-ignore
230
+ const file = await cursor.getFile();
231
+ return [key, new Uint8Array(await file.arrayBuffer())];
232
+ })());
233
+ }
234
+ return Promise.all(values);
235
+ }
232
236
  }
233
237
 
234
238
  export { BrowerStore as default };
@@ -1,5 +1,5 @@
1
- import { L as LittlePubSub } from './peernet-DEIKLS2i.js';
2
- import './identity-CQ_ieRiz.js';
1
+ import { L as LittlePubSub } from './peernet-CuzuXSJb.js';
2
+ import './identity--VAIVSMm.js';
3
3
  import './value-C3vAp-wb.js';
4
4
 
5
5
  class Api {
@@ -210,7 +210,7 @@ class SocketRequestClient {
210
210
  const init = async () => {
211
211
  // @ts-ignore
212
212
  if (!globalThis.WebSocket && !this.#experimentalWebsocket)
213
- globalThis.WebSocket = (await import('./browser-DQJ6xf_F.js').then(function (n) { return n.b; })).default.w3cwebsocket;
213
+ globalThis.WebSocket = (await import('./browser-BogfGRzB.js').then(function (n) { return n.b; })).default.w3cwebsocket;
214
214
  const client = new WebSocket(this.#url, this.#protocol);
215
215
  if (this.#experimentalWebsocket) {
216
216
  client.addEventListener('error', this.onerror);
@@ -314,7 +314,7 @@ const iceServers = [
314
314
  credential: 'openrelayproject'
315
315
  }
316
316
  ];
317
- const SimplePeer = (await import('./index-CEwkDK9g.js').then(function (n) { return n.i; })).default;
317
+ const SimplePeer = (await import('./index-Vgr1JQcP.js').then(function (n) { return n.i; })).default;
318
318
  class Peer extends SimplePeer {
319
319
  peerId;
320
320
  channelName;
@@ -391,6 +391,14 @@ class Peer extends SimplePeer {
391
391
  this.send(data, id);
392
392
  });
393
393
  }
394
+ toJSON() {
395
+ return {
396
+ peerId: this.peerId,
397
+ channelName: this.channelName,
398
+ version: this.version,
399
+ bw: this.bw
400
+ };
401
+ }
394
402
  }
395
403
 
396
404
  const debug = globalThis.createDebugger('@netpeer/swarm/client');
@@ -538,8 +546,8 @@ class Client {
538
546
  this.#connections[peerId].destroy();
539
547
  delete this.#connections[peerId];
540
548
  }
541
- // RTCPeerConnection
542
- this.#createRTCPeerConnection(peerId, star, version, true);
549
+ if (this.peerId !== peerId)
550
+ this.#createRTCPeerConnection(peerId, star, version, true);
543
551
  debug(`peer ${peerId} joined`);
544
552
  };
545
553
  #inComingSignal = async ({ from, signal, channelName, version }, star) => {
@@ -547,13 +555,28 @@ class Client {
547
555
  console.warn(`${from} joined using the wrong version.\nexpected: ${this.version} but got:${version}`);
548
556
  return;
549
557
  }
558
+ if (from === this.peerId) {
559
+ console.warn(`${from} tried to connect to itself.`);
560
+ return;
561
+ }
550
562
  let peer = this.#connections[from];
551
563
  if (!peer) {
552
564
  this.#createRTCPeerConnection(from, star, version);
553
565
  peer = this.#connections[from];
554
566
  }
555
- if (String(peer.channelName) !== String(channelName))
556
- console.warn(`channelNames don't match: got ${peer.channelName}, expected: ${channelName}`);
567
+ if (peer.connected) {
568
+ debug(`peer ${from} already connected`);
569
+ return;
570
+ }
571
+ if (String(peer.channelName) !== String(channelName)) {
572
+ console.warn(`channelNames don't match: got ${peer.channelName}, expected: ${channelName}. Recreating connection.`);
573
+ // Destroy the existing peer connection
574
+ peer.destroy();
575
+ delete this.#connections[from];
576
+ // Create a new peer connection with the correct configuration
577
+ this.#createRTCPeerConnection(from, star, version, false);
578
+ peer = this.#connections[from];
579
+ }
557
580
  peer.signal(signal);
558
581
  };
559
582
  #peerSignal = (peer, signal, star, version) => {