@leofcoin/peernet 0.18.0 → 0.18.1
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-13d9b3de.js → client-1c52a169.js} +1 -1
- package/exports/browser/dht/dht.d.ts +30 -0
- package/exports/browser/discovery/peer-discovery.d.ts +7 -0
- package/exports/browser/errors/errors.d.ts +3 -0
- package/exports/browser/handlers/data.d.ts +2 -0
- package/exports/browser/handlers/message.d.ts +30 -0
- package/exports/browser/{index-19803d3b.js → index-4a0fc4ea.js} +1 -1
- package/exports/browser/{index-73b8d9b9.js → index-639f2260.js} +2 -2
- package/exports/browser/messages/chat.d.ts +6 -0
- package/exports/browser/messages/data-response.d.ts +6 -0
- package/exports/browser/messages/data.d.ts +10 -0
- package/exports/browser/messages/dht-response.d.ts +6 -0
- package/exports/browser/messages/dht.d.ts +14 -0
- package/exports/browser/messages/file-link.d.ts +10 -0
- package/exports/browser/messages/file.d.ts +10 -0
- package/exports/browser/messages/peer-response.d.ts +6 -0
- package/exports/browser/messages/peer.d.ts +6 -0
- package/exports/browser/messages/peernet.d.ts +6 -0
- package/exports/browser/messages/ps.d.ts +6 -0
- package/exports/browser/messages/request.d.ts +6 -0
- package/exports/browser/messages/response.d.ts +6 -0
- package/exports/browser/messages-6db1f01d.js +204 -0
- package/exports/browser/messages.d.ts +12 -0
- package/exports/browser/peer-info.d.ts +4 -0
- package/exports/browser/{peernet-24ed8563.js → peernet-3b3933a5.js} +1100 -982
- package/exports/browser/peernet.js +1 -1
- package/exports/browser/proto/chat-message.proto.d.ts +7 -0
- package/exports/browser/proto/data-response.proto.d.ts +5 -0
- package/exports/browser/proto/data.proto.d.ts +5 -0
- package/exports/browser/proto/dht-response.proto.d.ts +5 -0
- package/exports/browser/proto/dht.proto.d.ts +5 -0
- package/exports/browser/proto/file-link.proto.d.ts +6 -0
- package/exports/browser/proto/file.proto.d.ts +6 -0
- package/exports/browser/proto/peer-response.proto.d.ts +4 -0
- package/exports/browser/proto/peer.proto.d.ts +4 -0
- package/exports/browser/proto/peernet.proto.d.ts +8 -0
- package/exports/browser/proto/ps.proto.d.ts +5 -0
- package/exports/browser/proto/request.proto.d.ts +4 -0
- package/exports/browser/proto/response.proto.d.ts +4 -0
- package/exports/browser/utils/utils.d.ts +7 -0
- package/exports/dht/dht.d.ts +30 -0
- package/exports/discovery/peer-discovery.d.ts +7 -0
- package/exports/errors/errors.d.ts +3 -0
- package/exports/handlers/data.d.ts +2 -0
- package/exports/handlers/message.d.ts +30 -0
- package/exports/messages/chat.d.ts +6 -0
- package/exports/messages/data-response.d.ts +6 -0
- package/exports/messages/data.d.ts +10 -0
- package/exports/messages/dht-response.d.ts +6 -0
- package/exports/messages/dht.d.ts +14 -0
- package/exports/messages/file-link.d.ts +10 -0
- package/exports/messages/file.d.ts +10 -0
- package/exports/messages/peer-response.d.ts +6 -0
- package/exports/messages/peer.d.ts +6 -0
- package/exports/messages/peernet.d.ts +6 -0
- package/exports/messages/ps.d.ts +6 -0
- package/exports/messages/request.d.ts +6 -0
- package/exports/messages/response.d.ts +6 -0
- package/exports/messages-ebdc8c69.js +203 -0
- package/exports/messages.d.ts +12 -0
- package/exports/peer-info.d.ts +4 -0
- package/exports/peernet.js +863 -930
- package/exports/proto/chat-message.proto.d.ts +7 -0
- package/exports/proto/data-response.proto.d.ts +5 -0
- package/exports/proto/data.proto.d.ts +5 -0
- package/exports/proto/dht-response.proto.d.ts +5 -0
- package/exports/proto/dht.proto.d.ts +5 -0
- package/exports/proto/file-link.proto.d.ts +6 -0
- package/exports/proto/file.proto.d.ts +6 -0
- package/exports/proto/peer-response.proto.d.ts +4 -0
- package/exports/proto/peer.proto.d.ts +4 -0
- package/exports/proto/peernet.proto.d.ts +8 -0
- package/exports/proto/ps.proto.d.ts +5 -0
- package/exports/proto/request.proto.d.ts +4 -0
- package/exports/proto/response.proto.d.ts +4 -0
- package/exports/utils/utils.d.ts +7 -0
- package/package.json +3 -2
- package/rollup.config.js +9 -3
- package/src/peernet.ts +26 -20
- package/tsconfig.json +3 -9
- package/exports/browser/messages-bb950ed7.js +0 -224
- package/exports/messages-d8852e16.js +0 -223
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function BufferToUint8Array(data: any): any;
|
|
2
|
+
export function expected(expected: any, actual: any): string;
|
|
3
|
+
export function protoFor(message: any): any;
|
|
4
|
+
export function hasDaemon(): boolean;
|
|
5
|
+
export function https(): boolean;
|
|
6
|
+
export function environment(): string;
|
|
7
|
+
export function target(): any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leofcoin/peernet",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "src/peernet.js",
|
|
6
6
|
"exports": {
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@leofcoin/codec-format-interface": "^1.6.0",
|
|
28
|
+
"@leofcoin/codecs": "^1.0.0",
|
|
28
29
|
"@leofcoin/generate-account": "^1.2.0",
|
|
29
30
|
"@leofcoin/multi-wallet": "^3.0.1",
|
|
30
31
|
"@leofcoin/peernet-swarm": "^0.5.0",
|
|
@@ -48,6 +49,6 @@
|
|
|
48
49
|
"@types/varint": "^6.0.1",
|
|
49
50
|
"eslint": "^8.29.0",
|
|
50
51
|
"eslint-plugin-unicorn": "^45.0.1",
|
|
51
|
-
"rollup": "^3.
|
|
52
|
+
"rollup": "^3.10.0"
|
|
52
53
|
}
|
|
53
54
|
}
|
package/rollup.config.js
CHANGED
|
@@ -2,7 +2,9 @@ import resolve from '@rollup/plugin-node-resolve'
|
|
|
2
2
|
import commonjs from '@rollup/plugin-commonjs'
|
|
3
3
|
import json from '@rollup/plugin-json'
|
|
4
4
|
import wasm from '@rollup/plugin-wasm'
|
|
5
|
-
import rimraf from 'rimraf'
|
|
5
|
+
import rimraf from 'rimraf';
|
|
6
|
+
import typescript from '@rollup/plugin-typescript';
|
|
7
|
+
import tsconfig from './tsconfig.json' assert { type: 'json'}
|
|
6
8
|
|
|
7
9
|
rimraf.sync('./exports/**')
|
|
8
10
|
|
|
@@ -19,12 +21,16 @@ export default [{
|
|
|
19
21
|
commonjs(),
|
|
20
22
|
resolve({
|
|
21
23
|
mainFields: ["browser", "module", "main"]
|
|
22
|
-
})
|
|
24
|
+
}),
|
|
25
|
+
typescript({...tsconfig, outDir: './exports/browser'})
|
|
23
26
|
]
|
|
24
27
|
}, {
|
|
25
28
|
input: ['./src/peernet.ts', './node_modules/@leofcoin/storage/exports/store.js'],
|
|
26
29
|
output: {
|
|
27
30
|
format: 'es',
|
|
28
31
|
dir: './exports'
|
|
29
|
-
}
|
|
32
|
+
},
|
|
33
|
+
plugins: [
|
|
34
|
+
typescript({...tsconfig, outDir: './exports'})
|
|
35
|
+
]
|
|
30
36
|
}]
|
package/src/peernet.ts
CHANGED
|
@@ -2,7 +2,6 @@ import '@vandeurenglenn/debug'
|
|
|
2
2
|
import PubSub from '@vandeurenglenn/little-pubsub'
|
|
3
3
|
import PeerDiscovery from './discovery/peer-discovery.js'
|
|
4
4
|
import DHT from './dht/dht.js'
|
|
5
|
-
import { codecs } from '@leofcoin/codec-format-interface'
|
|
6
5
|
import { BufferToUint8Array, protoFor, target } from './utils/utils.js'
|
|
7
6
|
import MessageHandler from './handlers/message.js'
|
|
8
7
|
import dataHandler from './handlers/data.js'
|
|
@@ -10,18 +9,38 @@ import { encapsulatedError, dhtError,
|
|
|
10
9
|
nothingFoundError } from './errors/errors.js'
|
|
11
10
|
|
|
12
11
|
import LeofcoinStorage from '@leofcoin/storage'
|
|
12
|
+
import { utils as codecUtils } from '@leofcoin/codecs'
|
|
13
13
|
globalThis.LeofcoinStorage = LeofcoinStorage
|
|
14
14
|
|
|
15
15
|
globalThis.leofcoin = globalThis.leofcoin || {}
|
|
16
16
|
globalThis.pubsub = globalThis.pubsub || new PubSub()
|
|
17
|
-
globalThis.globalSub = globalThis.globalSub || new PubSub(
|
|
18
|
-
|
|
17
|
+
globalThis.globalSub = globalThis.globalSub || new PubSub(true)
|
|
19
18
|
/**
|
|
20
19
|
* @access public
|
|
21
20
|
* @example
|
|
22
21
|
* const peernet = new Peernet();
|
|
23
22
|
*/
|
|
24
23
|
export default class Peernet {
|
|
24
|
+
stores: [] = []
|
|
25
|
+
/**
|
|
26
|
+
* @type {Object}
|
|
27
|
+
* @property {Object} peer Instance of Peer
|
|
28
|
+
*/
|
|
29
|
+
dht: DHT = new DHT()
|
|
30
|
+
/** @leofcoin/peernet-swarm/client */
|
|
31
|
+
client: {
|
|
32
|
+
connections: [],
|
|
33
|
+
id: string,
|
|
34
|
+
removePeer: (peer: string) => {},
|
|
35
|
+
close: () => {}
|
|
36
|
+
}
|
|
37
|
+
network: string
|
|
38
|
+
stars: string[]
|
|
39
|
+
networkVersion: string
|
|
40
|
+
bw: {
|
|
41
|
+
up: number
|
|
42
|
+
down: number
|
|
43
|
+
}
|
|
25
44
|
/**
|
|
26
45
|
* @access public
|
|
27
46
|
* @param {Object} options
|
|
@@ -35,8 +54,7 @@ export default class Peernet {
|
|
|
35
54
|
* @example
|
|
36
55
|
* const peernet = new Peernet({network: 'leofcoin', root: '.leofcoin'});
|
|
37
56
|
*/
|
|
38
|
-
constructor(options
|
|
39
|
-
this._discovered = []
|
|
57
|
+
constructor(options: options) {
|
|
40
58
|
/**
|
|
41
59
|
* @property {String} network - current network
|
|
42
60
|
*/
|
|
@@ -67,8 +85,8 @@ export default class Peernet {
|
|
|
67
85
|
if (!globalThis.peernet.protos[name]) globalThis.peernet.protos[name] = proto
|
|
68
86
|
}
|
|
69
87
|
|
|
70
|
-
addCodec(
|
|
71
|
-
|
|
88
|
+
addCodec(codec: codec) {
|
|
89
|
+
return codecUtils.addCodec(codec)
|
|
72
90
|
}
|
|
73
91
|
|
|
74
92
|
async addStore(name, prefix, root, isPrivate = true) {
|
|
@@ -129,18 +147,6 @@ export default class Peernet {
|
|
|
129
147
|
* @return {Promise} instance of Peernet
|
|
130
148
|
*/
|
|
131
149
|
async _init(options) {
|
|
132
|
-
// peernetDHT aka closesPeer by coordinates
|
|
133
|
-
/**
|
|
134
|
-
* @type {Object}
|
|
135
|
-
* @property {Object} peer Instance of Peer
|
|
136
|
-
*/
|
|
137
|
-
this.dht = new DHT()
|
|
138
|
-
/**
|
|
139
|
-
* @type {Map}
|
|
140
|
-
* @property {Object} peer Instance of Peer
|
|
141
|
-
*/
|
|
142
|
-
this.stores = []
|
|
143
|
-
this.codecs = {...codecs}
|
|
144
150
|
this.requestProtos = {}
|
|
145
151
|
this.storePrefix = options.storePrefix
|
|
146
152
|
this.root = options.root
|
|
@@ -247,7 +253,7 @@ export default class Peernet {
|
|
|
247
253
|
pubsub.subscribe('peer:data', dataHandler)
|
|
248
254
|
|
|
249
255
|
|
|
250
|
-
const importee = await import(
|
|
256
|
+
const importee = await import('@leofcoin/peernet-swarm/client')
|
|
251
257
|
/**
|
|
252
258
|
* @access public
|
|
253
259
|
* @type {PeernetClient}
|
package/tsconfig.json
CHANGED
|
@@ -2,18 +2,12 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"module": "ES2022",
|
|
4
4
|
"target": "es2022",
|
|
5
|
-
|
|
6
|
-
"removeComments": true,
|
|
7
|
-
"preserveConstEnums": true,
|
|
8
|
-
"outDir": ".build/",
|
|
5
|
+
"declaration": true,
|
|
9
6
|
"moduleResolution":"NodeNext",
|
|
10
|
-
"sourceMap": true,
|
|
11
7
|
"allowJs": true
|
|
12
8
|
},
|
|
13
9
|
"include": [
|
|
14
|
-
"./src/**/*"
|
|
15
|
-
"@vandeurenglenn/little-pubsub",
|
|
16
|
-
"@leofcoin/storage"
|
|
10
|
+
"./src/**/*"
|
|
17
11
|
],
|
|
18
|
-
"exclude": ["node_modules"
|
|
12
|
+
"exclude": ["node_modules"]
|
|
19
13
|
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import { F as FormatInterface } from './peernet-24ed8563.js';
|
|
2
|
-
import './value-40634404.js';
|
|
3
|
-
|
|
4
|
-
var proto$b = {
|
|
5
|
-
data: new Uint8Array(),
|
|
6
|
-
signature: new Uint8Array(),
|
|
7
|
-
'from?': String(),
|
|
8
|
-
'to?': String(),
|
|
9
|
-
'id?': String()
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
class PeernetMessage extends FormatInterface {
|
|
13
|
-
|
|
14
|
-
get messageName() {
|
|
15
|
-
return 'PeernetMessage'
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(buffer) {
|
|
19
|
-
const name = 'peernet-message';
|
|
20
|
-
super(buffer, proto$b, {name});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
var proto$a = {
|
|
25
|
-
hash: String(),
|
|
26
|
-
'store?': String()
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @example `
|
|
31
|
-
new DHTMessage(hash, store)
|
|
32
|
-
// store = optional if not set, peernet checks every store
|
|
33
|
-
let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
|
|
34
|
-
message = new DHTMessage('hashmvbs124xcfd...', 'block')
|
|
35
|
-
`
|
|
36
|
-
*/
|
|
37
|
-
class DHTMessage extends FormatInterface {
|
|
38
|
-
|
|
39
|
-
get messageName() {
|
|
40
|
-
return 'PeernetDHTMessage'
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
constructor(data) {
|
|
44
|
-
const name = 'peernet-dht';
|
|
45
|
-
super(data, proto$a, {name});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
var proto$9 = {
|
|
50
|
-
hash: String(),
|
|
51
|
-
has: Boolean()
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
class DHTMessageResponse extends FormatInterface {
|
|
55
|
-
|
|
56
|
-
get messageName() {
|
|
57
|
-
return 'PeernetDHTMessageResponse'
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
constructor(data) {
|
|
61
|
-
const name = 'peernet-dht-response';
|
|
62
|
-
super(data, proto$9, {name});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
var proto$8 = {
|
|
67
|
-
hash: String(),
|
|
68
|
-
'store?': String()
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @extends {CodecFormat}
|
|
73
|
-
*/
|
|
74
|
-
class DataMessage extends FormatInterface {
|
|
75
|
-
|
|
76
|
-
get messageName() {
|
|
77
|
-
return 'PeernetDataMessage'
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
81
|
-
*/
|
|
82
|
-
constructor(data) {
|
|
83
|
-
super(data, proto$8, {name: 'peernet-data'});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
var proto$7 = {
|
|
88
|
-
data: new Uint8Array(),
|
|
89
|
-
topic: new Uint8Array()
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
class PsMessage extends FormatInterface {
|
|
93
|
-
get messageName() {
|
|
94
|
-
return 'PsMessage'
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
constructor(buffer) {
|
|
98
|
-
const name = 'peernet-ps';
|
|
99
|
-
super(buffer, proto$7, {name});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
var proto$6 = {
|
|
104
|
-
id: String()
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
class PeerMessage extends FormatInterface {
|
|
108
|
-
get messageName() {
|
|
109
|
-
return 'PeernetPeerMessage'
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
constructor(data) {
|
|
113
|
-
const name = 'peernet-peer';
|
|
114
|
-
super(data, proto$6, {name});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
var proto$5 = {
|
|
119
|
-
request: String()
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
class RequestMessage extends FormatInterface {
|
|
123
|
-
|
|
124
|
-
get messageName() {
|
|
125
|
-
return 'PeernetRequestMessage'
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
constructor(data) {
|
|
129
|
-
const name = 'peernet-request';
|
|
130
|
-
super(data, proto$5, {name});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
var proto$4 = {
|
|
135
|
-
response: new Uint8Array()
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
class ResponseMessage extends FormatInterface {
|
|
139
|
-
|
|
140
|
-
get messageName() {
|
|
141
|
-
return 'PeernetResponseMessage'
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
constructor(data) {
|
|
145
|
-
const name = 'peernet-response';
|
|
146
|
-
super(data, proto$4, {name});
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
var proto$3 = {
|
|
151
|
-
id: String()
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
class PeerMessageResponse extends FormatInterface {
|
|
155
|
-
|
|
156
|
-
get messageName() {
|
|
157
|
-
return 'PeernetPeerMessageResponse'
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
constructor(data) {
|
|
161
|
-
const name = 'peernet-peer-response';
|
|
162
|
-
super(data, proto$3, {name});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
var proto$2 = {
|
|
167
|
-
hash: String(),
|
|
168
|
-
data: new Uint8Array(),
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
class DataMessageResponse extends FormatInterface {
|
|
172
|
-
|
|
173
|
-
get messageName() {
|
|
174
|
-
return 'PeernetDataMessageResponse'
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
constructor(data) {
|
|
178
|
-
const name = 'peernet-data-response';
|
|
179
|
-
super(data, proto$2, {name});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
var proto$1 = {
|
|
184
|
-
value: String(),
|
|
185
|
-
author: String(),
|
|
186
|
-
timestamp: Number(),
|
|
187
|
-
files: [String()],
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
class ChatMessage extends FormatInterface {
|
|
191
|
-
|
|
192
|
-
get messageName() {
|
|
193
|
-
return 'ChatMessage'
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
constructor(buffer) {
|
|
197
|
-
const name = 'chat-message';
|
|
198
|
-
super(buffer, proto$1, {name});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
var proto = {
|
|
203
|
-
path: String(),
|
|
204
|
-
'content?': '',
|
|
205
|
-
'links?': []
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* @extends {CodecFormat}
|
|
210
|
-
*/
|
|
211
|
-
class PeernetFile extends FormatInterface {
|
|
212
|
-
|
|
213
|
-
get messageName() {
|
|
214
|
-
return 'PeernetFile'
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
218
|
-
*/
|
|
219
|
-
constructor(data) {
|
|
220
|
-
super(data, proto, {name: 'peernet-file'});
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export { ChatMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PeerMessage, PeerMessageResponse, PeernetFile, PeernetMessage, PsMessage, RequestMessage, ResponseMessage };
|