@leofcoin/peernet 0.16.6 → 0.17.0
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/README.md +1 -0
- package/exports/browser/browser-2f0b2829.js +190 -0
- package/exports/browser/browser-3c1d0477.js +73 -0
- package/exports/browser/browser-store.js +463 -0
- package/exports/browser/client-29660363.js +690 -0
- package/exports/browser/index-019272d8.js +11486 -0
- package/exports/browser/index-3a25de4d.js +34 -0
- package/exports/browser/messages-4850566c.js +303 -0
- package/exports/browser/pako.esm-aa674ebf.js +6876 -0
- package/exports/browser/peernet-379769d5.js +2896 -0
- package/exports/browser/peernet.js +2 -0
- package/exports/browser/value-40634404.js +64 -0
- package/{dist/module/messages-bce1b91d.js → exports/messages-796c4d5c.js} +0 -0
- package/{dist/module → exports}/peernet.js +85 -166
- package/exports/store.js +225 -0
- package/index.html +2 -2
- package/package.json +19 -4
- package/rollup.config.js +30 -0
- package/src/{peernet.js → peernet.ts} +6 -4
- package/tsconfig.json +19 -0
- package/dist/commonjs/dht-response.js +0 -28
- package/dist/commonjs/dht.js +0 -39
- package/dist/commonjs/messages-f46a3ca1.js +0 -194
- package/dist/commonjs/peernet.js +0 -1126
- package/dist/commonjs/peernet2.js +0 -30
- package/dist/commonjs/request.js +0 -27
- package/dist/commonjs/response.js +0 -27
- package/src/server.js +0 -24
package/index.html
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
</script> -->
|
|
10
10
|
|
|
11
11
|
<script type="module">
|
|
12
|
-
import Peernet from './dist/
|
|
12
|
+
import Peernet from './dist/peernet.js';
|
|
13
13
|
(async () => {
|
|
14
|
-
const peernet = await new Peernet()
|
|
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)}))
|
|
16
16
|
})()
|
|
17
17
|
</script>
|
package/package.json
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leofcoin/peernet",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "src/peernet.js",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./exports/peernet.js",
|
|
8
|
+
"./browser": "./exports/browser/peernet.js"
|
|
9
|
+
},
|
|
6
10
|
"type": "module",
|
|
7
11
|
"engines": {
|
|
8
12
|
"node": ">=19.0.0"
|
|
9
13
|
},
|
|
10
14
|
"scripts": {
|
|
15
|
+
"build": "rollup -c",
|
|
16
|
+
"watch": "rollup -c -w",
|
|
11
17
|
"set-flags": "set NODE_OPTIONS=--openssl-legacy-provider",
|
|
12
18
|
"test": "npm run set-flags && node test/index.js",
|
|
13
19
|
"server": "discovery-swarm-webrtc --port=4000",
|
|
@@ -19,20 +25,29 @@
|
|
|
19
25
|
"license": "MIT",
|
|
20
26
|
"dependencies": {
|
|
21
27
|
"@leofcoin/codec-format-interface": "^1.4.0",
|
|
22
|
-
"@leofcoin/generate-account": "^1.0
|
|
23
|
-
"@leofcoin/multi-wallet": "^
|
|
28
|
+
"@leofcoin/generate-account": "^1.2.0",
|
|
29
|
+
"@leofcoin/multi-wallet": "^3.0.1",
|
|
24
30
|
"@leofcoin/peernet-swarm": "^0.5.0",
|
|
25
31
|
"@leofcoin/storage": "^3.0.0",
|
|
32
|
+
"@types/node": "^18.11.18",
|
|
26
33
|
"@vandeurenglenn/base32": "^1.1.0",
|
|
27
34
|
"@vandeurenglenn/base58": "^1.1.0",
|
|
28
35
|
"@vandeurenglenn/debug": "^1.0.0",
|
|
29
36
|
"@vandeurenglenn/is-hex": "^1.0.0",
|
|
30
37
|
"@vandeurenglenn/little-pubsub": "^1.3.1",
|
|
38
|
+
"multi-signature": "^1.3.1",
|
|
31
39
|
"socket-request-client": "^1.5.0",
|
|
32
40
|
"socket-request-server": "^1.5.0"
|
|
33
41
|
},
|
|
34
42
|
"devDependencies": {
|
|
43
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
44
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
45
|
+
"@rollup/plugin-wasm": "^6.1.1",
|
|
46
|
+
"@types/bs58check": "^2.1.0",
|
|
47
|
+
"@types/secp256k1": "^4.0.3",
|
|
48
|
+
"@types/varint": "^6.0.1",
|
|
35
49
|
"eslint": "^8.29.0",
|
|
36
|
-
"eslint-plugin-unicorn": "^45.0.1"
|
|
50
|
+
"eslint-plugin-unicorn": "^45.0.1",
|
|
51
|
+
"rollup": "^3.9.0"
|
|
37
52
|
}
|
|
38
53
|
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import resolve from '@rollup/plugin-node-resolve'
|
|
2
|
+
import commonjs from '@rollup/plugin-commonjs'
|
|
3
|
+
import json from '@rollup/plugin-json'
|
|
4
|
+
import wasm from '@rollup/plugin-wasm'
|
|
5
|
+
import rimraf from 'rimraf'
|
|
6
|
+
|
|
7
|
+
rimraf.sync('./exports/**')
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export default [{
|
|
11
|
+
input: ['./src/peernet.ts', './node_modules/@leofcoin/storage/exports/browser-store.js'],
|
|
12
|
+
output: {
|
|
13
|
+
format: 'es',
|
|
14
|
+
dir: './exports/browser'
|
|
15
|
+
},
|
|
16
|
+
plugins: [
|
|
17
|
+
json(),
|
|
18
|
+
wasm(),
|
|
19
|
+
commonjs(),
|
|
20
|
+
resolve({
|
|
21
|
+
mainFields: ["browser", "module", "main"]
|
|
22
|
+
})
|
|
23
|
+
]
|
|
24
|
+
}, {
|
|
25
|
+
input: ['./src/peernet.ts', './node_modules/@leofcoin/storage/exports/store.js'],
|
|
26
|
+
output: {
|
|
27
|
+
format: 'es',
|
|
28
|
+
dir: './exports'
|
|
29
|
+
}
|
|
30
|
+
}]
|
|
@@ -79,8 +79,10 @@ export default class Peernet {
|
|
|
79
79
|
|
|
80
80
|
this.hasDaemon ? Storage = LeofcoinStorageClient : Storage = LeofcoinStorage
|
|
81
81
|
|
|
82
|
-
globalThis[`${name}Store`]
|
|
83
|
-
|
|
82
|
+
if (!globalThis[`${name}Store`]) {
|
|
83
|
+
globalThis[`${name}Store`] = new Storage(name, root)
|
|
84
|
+
await globalThis[`${name}Store`].init()
|
|
85
|
+
}
|
|
84
86
|
|
|
85
87
|
globalThis[`${name}Store`].private = isPrivate
|
|
86
88
|
if (!isPrivate) this.stores.push(name)
|
|
@@ -188,7 +190,7 @@ export default class Peernet {
|
|
|
188
190
|
|
|
189
191
|
const {daemon, environment} = await target()
|
|
190
192
|
this.hasDaemon = daemon
|
|
191
|
-
|
|
193
|
+
|
|
192
194
|
for (const store of this.defaultStores) {
|
|
193
195
|
await this.addStore(store, options.storePrefix, options.root)
|
|
194
196
|
}
|
|
@@ -251,7 +253,7 @@ export default class Peernet {
|
|
|
251
253
|
* @type {PeernetClient}
|
|
252
254
|
*/
|
|
253
255
|
this.client = new importee.default(this.id, this.networkVersion, this.stars)
|
|
254
|
-
if (globalThis.
|
|
256
|
+
if (globalThis.navigator) {
|
|
255
257
|
globalThis.addEventListener('beforeunload', async () => this.client.close());
|
|
256
258
|
} else {
|
|
257
259
|
process.on('SIGTERM', async () => {
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "ES2022",
|
|
4
|
+
"target": "es2022",
|
|
5
|
+
// "noImplicitAny": true,
|
|
6
|
+
"removeComments": true,
|
|
7
|
+
"preserveConstEnums": true,
|
|
8
|
+
"outDir": ".build/",
|
|
9
|
+
"moduleResolution":"NodeNext",
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"allowJs": true
|
|
12
|
+
},
|
|
13
|
+
"include": [
|
|
14
|
+
"./src/**/*",
|
|
15
|
+
"@vandeurenglenn/little-pubsub",
|
|
16
|
+
"@leofcoin/storage"
|
|
17
|
+
],
|
|
18
|
+
"exclude": ["node_modules", "**/*.spec.ts"]
|
|
19
|
+
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
4
|
-
|
|
5
|
-
var proto = `
|
|
6
|
-
// PeernetDHTMessageResponse
|
|
7
|
-
message PeernetDHTMessageResponse {
|
|
8
|
-
required string hash = 1;
|
|
9
|
-
required bool has = 2;
|
|
10
|
-
}
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
class DHTMessageResponse extends codecFormatInterface.FormatInterface {
|
|
14
|
-
get keys() {
|
|
15
|
-
return ['hash', 'has']
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
get messageName() {
|
|
19
|
-
return 'PeernetDHTMessageResponse'
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
constructor(data) {
|
|
23
|
-
const name = 'peernet-dht-response';
|
|
24
|
-
super(data, proto, {name});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
module.exports = DHTMessageResponse;
|
package/dist/commonjs/dht.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
4
|
-
|
|
5
|
-
var proto = `
|
|
6
|
-
// PeernetDHTMessage
|
|
7
|
-
message PeernetDHTMessage {
|
|
8
|
-
required string hash = 1;
|
|
9
|
-
optional string store = 2;
|
|
10
|
-
}
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @example `
|
|
15
|
-
new DHTMessage(hash, store)
|
|
16
|
-
// store = optional if not set, peernet checks every store
|
|
17
|
-
let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
|
|
18
|
-
message = new DHTMessage('hashmvbs124xcfd...', 'block')
|
|
19
|
-
`
|
|
20
|
-
*/
|
|
21
|
-
class DHTMessage extends codecFormatInterface.FormatInterface {
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
get keys() {
|
|
26
|
-
return ['hash', 'store']
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
get messageName() {
|
|
30
|
-
return 'PeernetDHTMessage'
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
constructor(data) {
|
|
34
|
-
const name = 'peernet-dht';
|
|
35
|
-
super(data, proto, {name});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
module.exports = DHTMessage;
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var peernet = require('./peernet2.js');
|
|
4
|
-
var dht = require('./dht.js');
|
|
5
|
-
var dhtResponse = require('./dht-response.js');
|
|
6
|
-
var codecFormatInterface = require('@leofcoin/codec-format-interface');
|
|
7
|
-
var request = require('./request.js');
|
|
8
|
-
var response = require('./response.js');
|
|
9
|
-
|
|
10
|
-
var proto$6 = `
|
|
11
|
-
// PeernetDataMessage
|
|
12
|
-
message PeernetDataMessage {
|
|
13
|
-
required string hash = 1;
|
|
14
|
-
optional string store = 2;
|
|
15
|
-
}
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @extends {CodecFormat}
|
|
20
|
-
*/
|
|
21
|
-
class DataMessage extends codecFormatInterface.FormatInterface {
|
|
22
|
-
get keys() {
|
|
23
|
-
return ['hash', 'store']
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get messageName() {
|
|
27
|
-
return 'PeernetDataMessage'
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
31
|
-
*/
|
|
32
|
-
constructor(data) {
|
|
33
|
-
super(data, proto$6, {name: 'peernet-data'});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
var proto$5 = `
|
|
38
|
-
// PsMessage
|
|
39
|
-
message PsMessage {
|
|
40
|
-
required bytes data = 1;
|
|
41
|
-
required bytes topic = 2;
|
|
42
|
-
}`;
|
|
43
|
-
|
|
44
|
-
class PsMessage extends codecFormatInterface.FormatInterface {
|
|
45
|
-
get keys() {
|
|
46
|
-
return ['data', 'topic']
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
get messageName() {
|
|
50
|
-
return 'PsMessage'
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
constructor(buffer) {
|
|
54
|
-
const name = 'peernet-ps';
|
|
55
|
-
super(buffer, proto$5, {name});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
var proto$4 = `
|
|
60
|
-
// PeernetPeerMessage
|
|
61
|
-
message PeernetPeerMessage {
|
|
62
|
-
required string id = 1;
|
|
63
|
-
}
|
|
64
|
-
`;
|
|
65
|
-
|
|
66
|
-
class PeerMessage extends codecFormatInterface.FormatInterface {
|
|
67
|
-
get keys() {
|
|
68
|
-
return ['id']
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
get messageName() {
|
|
72
|
-
return 'PeernetPeerMessage'
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
constructor(data) {
|
|
76
|
-
const name = 'peernet-peer';
|
|
77
|
-
super(data, proto$4, {name});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
var proto$3 = `
|
|
82
|
-
// PeernetPeerMessageResponse
|
|
83
|
-
message PeernetPeerMessageResponse {
|
|
84
|
-
required string id = 1;
|
|
85
|
-
}
|
|
86
|
-
`;
|
|
87
|
-
|
|
88
|
-
class PeerMessageResponse extends codecFormatInterface.FormatInterface {
|
|
89
|
-
get keys() {
|
|
90
|
-
return ['id']
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
get messageName() {
|
|
94
|
-
return 'PeernetPeerMessageResponse'
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
constructor(data) {
|
|
98
|
-
const name = 'peernet-peer-response';
|
|
99
|
-
super(data, proto$3, {name});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
var proto$2 = `
|
|
104
|
-
// PeernetDataMessageResponse
|
|
105
|
-
message PeernetDataMessageResponse {
|
|
106
|
-
required string hash = 1;
|
|
107
|
-
required bytes data = 2;
|
|
108
|
-
}
|
|
109
|
-
`;
|
|
110
|
-
|
|
111
|
-
class DataMessageResponse extends codecFormatInterface.FormatInterface {
|
|
112
|
-
get keys() {
|
|
113
|
-
return ['hash', 'data']
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
get messageName() {
|
|
117
|
-
return 'PeernetDataMessageResponse'
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
constructor(data) {
|
|
121
|
-
const name = 'peernet-data-response';
|
|
122
|
-
super(data, proto$2, {name});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
var proto$1 = `
|
|
127
|
-
message ChatMessage {
|
|
128
|
-
required string value = 1;
|
|
129
|
-
required string author = 2;
|
|
130
|
-
required uint64 timestamp = 3;
|
|
131
|
-
repeated string files = 4;
|
|
132
|
-
}`;
|
|
133
|
-
|
|
134
|
-
class ChatMessage extends codecFormatInterface.FormatInterface {
|
|
135
|
-
get keys() {
|
|
136
|
-
return ['author', 'value', 'timestamp', 'files']
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
get messageName() {
|
|
140
|
-
return 'ChatMessage'
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
constructor(buffer) {
|
|
144
|
-
const name = 'chat-message';
|
|
145
|
-
super(buffer, proto$1, {name});
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
var proto = `
|
|
150
|
-
// PeernetFolder
|
|
151
|
-
message PeernetFileLink {
|
|
152
|
-
required string hash = 1;
|
|
153
|
-
required string path = 2;
|
|
154
|
-
optional string size = 3;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
message PeernetFile {
|
|
158
|
-
required string path = 1;
|
|
159
|
-
optional string content = 2;
|
|
160
|
-
repeated PeernetFileLink links = 3;
|
|
161
|
-
}
|
|
162
|
-
`;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* @extends {CodecFormat}
|
|
166
|
-
*/
|
|
167
|
-
class PeernetFile extends codecFormatInterface.FormatInterface {
|
|
168
|
-
get keys() {
|
|
169
|
-
return ['path', 'content', 'links']
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
get messageName() {
|
|
173
|
-
return 'PeernetFile'
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
|
|
177
|
-
*/
|
|
178
|
-
constructor(data) {
|
|
179
|
-
super(data, proto, {name: 'peernet-file'});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
exports.PeernetMessage = peernet;
|
|
184
|
-
exports.DHTMessage = dht;
|
|
185
|
-
exports.DHTMessageResponse = dhtResponse;
|
|
186
|
-
exports.RequestMessage = request;
|
|
187
|
-
exports.ResponseMessage = response;
|
|
188
|
-
exports.ChatMessage = ChatMessage;
|
|
189
|
-
exports.DataMessage = DataMessage;
|
|
190
|
-
exports.DataMessageResponse = DataMessageResponse;
|
|
191
|
-
exports.PeerMessage = PeerMessage;
|
|
192
|
-
exports.PeerMessageResponse = PeerMessageResponse;
|
|
193
|
-
exports.PeernetFile = PeernetFile;
|
|
194
|
-
exports.PsMessage = PsMessage;
|