@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.
Files changed (82) hide show
  1. package/exports/browser/{client-13d9b3de.js → client-1c52a169.js} +1 -1
  2. package/exports/browser/dht/dht.d.ts +30 -0
  3. package/exports/browser/discovery/peer-discovery.d.ts +7 -0
  4. package/exports/browser/errors/errors.d.ts +3 -0
  5. package/exports/browser/handlers/data.d.ts +2 -0
  6. package/exports/browser/handlers/message.d.ts +30 -0
  7. package/exports/browser/{index-19803d3b.js → index-4a0fc4ea.js} +1 -1
  8. package/exports/browser/{index-73b8d9b9.js → index-639f2260.js} +2 -2
  9. package/exports/browser/messages/chat.d.ts +6 -0
  10. package/exports/browser/messages/data-response.d.ts +6 -0
  11. package/exports/browser/messages/data.d.ts +10 -0
  12. package/exports/browser/messages/dht-response.d.ts +6 -0
  13. package/exports/browser/messages/dht.d.ts +14 -0
  14. package/exports/browser/messages/file-link.d.ts +10 -0
  15. package/exports/browser/messages/file.d.ts +10 -0
  16. package/exports/browser/messages/peer-response.d.ts +6 -0
  17. package/exports/browser/messages/peer.d.ts +6 -0
  18. package/exports/browser/messages/peernet.d.ts +6 -0
  19. package/exports/browser/messages/ps.d.ts +6 -0
  20. package/exports/browser/messages/request.d.ts +6 -0
  21. package/exports/browser/messages/response.d.ts +6 -0
  22. package/exports/browser/messages-6db1f01d.js +204 -0
  23. package/exports/browser/messages.d.ts +12 -0
  24. package/exports/browser/peer-info.d.ts +4 -0
  25. package/exports/browser/{peernet-24ed8563.js → peernet-3b3933a5.js} +1100 -982
  26. package/exports/browser/peernet.js +1 -1
  27. package/exports/browser/proto/chat-message.proto.d.ts +7 -0
  28. package/exports/browser/proto/data-response.proto.d.ts +5 -0
  29. package/exports/browser/proto/data.proto.d.ts +5 -0
  30. package/exports/browser/proto/dht-response.proto.d.ts +5 -0
  31. package/exports/browser/proto/dht.proto.d.ts +5 -0
  32. package/exports/browser/proto/file-link.proto.d.ts +6 -0
  33. package/exports/browser/proto/file.proto.d.ts +6 -0
  34. package/exports/browser/proto/peer-response.proto.d.ts +4 -0
  35. package/exports/browser/proto/peer.proto.d.ts +4 -0
  36. package/exports/browser/proto/peernet.proto.d.ts +8 -0
  37. package/exports/browser/proto/ps.proto.d.ts +5 -0
  38. package/exports/browser/proto/request.proto.d.ts +4 -0
  39. package/exports/browser/proto/response.proto.d.ts +4 -0
  40. package/exports/browser/utils/utils.d.ts +7 -0
  41. package/exports/dht/dht.d.ts +30 -0
  42. package/exports/discovery/peer-discovery.d.ts +7 -0
  43. package/exports/errors/errors.d.ts +3 -0
  44. package/exports/handlers/data.d.ts +2 -0
  45. package/exports/handlers/message.d.ts +30 -0
  46. package/exports/messages/chat.d.ts +6 -0
  47. package/exports/messages/data-response.d.ts +6 -0
  48. package/exports/messages/data.d.ts +10 -0
  49. package/exports/messages/dht-response.d.ts +6 -0
  50. package/exports/messages/dht.d.ts +14 -0
  51. package/exports/messages/file-link.d.ts +10 -0
  52. package/exports/messages/file.d.ts +10 -0
  53. package/exports/messages/peer-response.d.ts +6 -0
  54. package/exports/messages/peer.d.ts +6 -0
  55. package/exports/messages/peernet.d.ts +6 -0
  56. package/exports/messages/ps.d.ts +6 -0
  57. package/exports/messages/request.d.ts +6 -0
  58. package/exports/messages/response.d.ts +6 -0
  59. package/exports/messages-ebdc8c69.js +203 -0
  60. package/exports/messages.d.ts +12 -0
  61. package/exports/peer-info.d.ts +4 -0
  62. package/exports/peernet.js +863 -930
  63. package/exports/proto/chat-message.proto.d.ts +7 -0
  64. package/exports/proto/data-response.proto.d.ts +5 -0
  65. package/exports/proto/data.proto.d.ts +5 -0
  66. package/exports/proto/dht-response.proto.d.ts +5 -0
  67. package/exports/proto/dht.proto.d.ts +5 -0
  68. package/exports/proto/file-link.proto.d.ts +6 -0
  69. package/exports/proto/file.proto.d.ts +6 -0
  70. package/exports/proto/peer-response.proto.d.ts +4 -0
  71. package/exports/proto/peer.proto.d.ts +4 -0
  72. package/exports/proto/peernet.proto.d.ts +8 -0
  73. package/exports/proto/ps.proto.d.ts +5 -0
  74. package/exports/proto/request.proto.d.ts +4 -0
  75. package/exports/proto/response.proto.d.ts +4 -0
  76. package/exports/utils/utils.d.ts +7 -0
  77. package/package.json +3 -2
  78. package/rollup.config.js +9 -3
  79. package/src/peernet.ts +26 -20
  80. package/tsconfig.json +3 -9
  81. package/exports/browser/messages-bb950ed7.js +0 -224
  82. package/exports/messages-d8852e16.js +0 -223
@@ -0,0 +1,7 @@
1
+ declare namespace _default {
2
+ const value: string;
3
+ const author: string;
4
+ const timestamp: number;
5
+ const files: string[];
6
+ }
7
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare namespace _default {
2
+ const hash: string;
3
+ const data: Uint8Array;
4
+ }
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ hash: string;
3
+ 'store?': string;
4
+ };
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare namespace _default {
2
+ const hash: string;
3
+ const has: boolean;
4
+ }
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ hash: string;
3
+ 'store?': string;
4
+ };
5
+ export default _default;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ hash: string;
3
+ path: string;
4
+ 'size?': number;
5
+ };
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ path: string;
3
+ 'content?': string;
4
+ 'links?': any[];
5
+ };
6
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ const id: string;
3
+ }
4
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ const id: string;
3
+ }
4
+ export default _default;
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ data: Uint8Array;
3
+ signature: Uint8Array;
4
+ 'from?': string;
5
+ 'to?': string;
6
+ 'id?': string;
7
+ };
8
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare namespace _default {
2
+ const data: Uint8Array;
3
+ const topic: Uint8Array;
4
+ }
5
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ const request: string;
3
+ }
4
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare namespace _default {
2
+ const response: Uint8Array;
3
+ }
4
+ export default _default;
@@ -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.0",
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.9.0"
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({verbose: true})
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(name, codec) {
71
- if (!this.codecs[name]) this.codecs[name] = codec
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(/* webpackChunkName: "peernet-swarm" */ '@leofcoin/peernet-swarm/client')
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
- // "noImplicitAny": true,
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", "**/*.spec.ts"]
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 };