@leofcoin/peernet 1.1.46 → 1.1.47

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 (87) hide show
  1. package/exports/browser/browser-store.js +62 -1
  2. package/exports/browser/{index-b203939f.js → index-96b718dc.js} +1 -2
  3. package/exports/browser/messages-591e0b2c.js +224 -0
  4. package/exports/browser/{peernet-4dde5a19.js → peernet-20a06ecc.js} +176 -339
  5. package/exports/browser/peernet.d.ts +233 -0
  6. package/exports/browser/peernet.js +1 -2
  7. package/exports/messages-dc960cb3.js +224 -0
  8. package/exports/peernet.js +150 -146
  9. package/exports/types/peernet.d.ts +233 -0
  10. package/package.json +3 -2
  11. package/rollup.config.js +2 -2
  12. package/src/peernet.ts +23 -8
  13. package/tsconfig.json +1 -0
  14. package/exports/browser/discovery/peer-discovery.d.ts +0 -7
  15. package/exports/browser/errors/errors.d.ts +0 -3
  16. package/exports/browser/handlers/data.d.ts +0 -2
  17. package/exports/browser/handlers/message.d.ts +0 -30
  18. package/exports/browser/messages/chat.d.ts +0 -6
  19. package/exports/browser/messages/data-response.d.ts +0 -6
  20. package/exports/browser/messages/data.d.ts +0 -10
  21. package/exports/browser/messages/dht-response.d.ts +0 -6
  22. package/exports/browser/messages/dht.d.ts +0 -14
  23. package/exports/browser/messages/file-link.d.ts +0 -10
  24. package/exports/browser/messages/file.d.ts +0 -10
  25. package/exports/browser/messages/peer-response.d.ts +0 -6
  26. package/exports/browser/messages/peer.d.ts +0 -6
  27. package/exports/browser/messages/peernet.d.ts +0 -6
  28. package/exports/browser/messages/ps.d.ts +0 -6
  29. package/exports/browser/messages/request.d.ts +0 -6
  30. package/exports/browser/messages/response.d.ts +0 -6
  31. package/exports/browser/messages-7138679c.js +0 -205
  32. package/exports/browser/messages.d.ts +0 -12
  33. package/exports/browser/peer-info.d.ts +0 -4
  34. package/exports/browser/prompts/password/browser.d.ts +0 -2
  35. package/exports/browser/prompts/password/node.d.ts +0 -2
  36. package/exports/browser/proto/chat-message.proto.d.ts +0 -7
  37. package/exports/browser/proto/data-response.proto.d.ts +0 -5
  38. package/exports/browser/proto/data.proto.d.ts +0 -5
  39. package/exports/browser/proto/dht-response.proto.d.ts +0 -5
  40. package/exports/browser/proto/dht.proto.d.ts +0 -5
  41. package/exports/browser/proto/file-link.proto.d.ts +0 -6
  42. package/exports/browser/proto/file.proto.d.ts +0 -6
  43. package/exports/browser/proto/peer-response.proto.d.ts +0 -4
  44. package/exports/browser/proto/peer.proto.d.ts +0 -4
  45. package/exports/browser/proto/peernet.proto.d.ts +0 -8
  46. package/exports/browser/proto/ps.proto.d.ts +0 -5
  47. package/exports/browser/proto/request.proto.d.ts +0 -5
  48. package/exports/browser/proto/response.proto.d.ts +0 -4
  49. package/exports/browser/utils/utils.d.ts +0 -7
  50. package/exports/browser/value-157ab062.js +0 -64
  51. package/exports/discovery/peer-discovery.d.ts +0 -7
  52. package/exports/errors/errors.d.ts +0 -3
  53. package/exports/handlers/data.d.ts +0 -2
  54. package/exports/handlers/message.d.ts +0 -30
  55. package/exports/messages/chat.d.ts +0 -6
  56. package/exports/messages/data-response.d.ts +0 -6
  57. package/exports/messages/data.d.ts +0 -10
  58. package/exports/messages/dht-response.d.ts +0 -6
  59. package/exports/messages/dht.d.ts +0 -14
  60. package/exports/messages/file-link.d.ts +0 -10
  61. package/exports/messages/file.d.ts +0 -10
  62. package/exports/messages/peer-response.d.ts +0 -6
  63. package/exports/messages/peer.d.ts +0 -6
  64. package/exports/messages/peernet.d.ts +0 -6
  65. package/exports/messages/ps.d.ts +0 -6
  66. package/exports/messages/request.d.ts +0 -6
  67. package/exports/messages/response.d.ts +0 -6
  68. package/exports/messages-6645d42e.js +0 -204
  69. package/exports/messages.d.ts +0 -12
  70. package/exports/peer-info.d.ts +0 -4
  71. package/exports/prompts/password/browser.d.ts +0 -2
  72. package/exports/prompts/password/node.d.ts +0 -2
  73. package/exports/proto/chat-message.proto.d.ts +0 -7
  74. package/exports/proto/data-response.proto.d.ts +0 -5
  75. package/exports/proto/data.proto.d.ts +0 -5
  76. package/exports/proto/dht-response.proto.d.ts +0 -5
  77. package/exports/proto/dht.proto.d.ts +0 -5
  78. package/exports/proto/file-link.proto.d.ts +0 -6
  79. package/exports/proto/file.proto.d.ts +0 -6
  80. package/exports/proto/peer-response.proto.d.ts +0 -4
  81. package/exports/proto/peer.proto.d.ts +0 -4
  82. package/exports/proto/peernet.proto.d.ts +0 -8
  83. package/exports/proto/ps.proto.d.ts +0 -5
  84. package/exports/proto/request.proto.d.ts +0 -5
  85. package/exports/proto/response.proto.d.ts +0 -4
  86. package/exports/utils/utils.d.ts +0 -7
  87. /package/exports/{dht → types/dht}/dht.d.ts +0 -0
@@ -0,0 +1,233 @@
1
+ /// <reference types="node" />
2
+ import '@vandeurenglenn/debug';
3
+ import PubSub from '@vandeurenglenn/little-pubsub';
4
+ import DHT from './dht/dht.js';
5
+ import MessageHandler from './handlers/message.js';
6
+ import { LeofcoinStorage as LeofcoinStorageClass } from '@leofcoin/storage';
7
+ import Identity from './identity.js';
8
+ declare global {
9
+ var globalSub: PubSub;
10
+ var pubsub: PubSub;
11
+ var peernet: Peernet;
12
+ var LeofcoinStorage: typeof LeofcoinStorageClass;
13
+ var LeofcoinStorageClient: any;
14
+ }
15
+ /**
16
+ * @access public
17
+ * @example
18
+ * const peernet = new Peernet();
19
+ */
20
+ export default class Peernet {
21
+ #private;
22
+ identity: Identity;
23
+ stores: string[];
24
+ /**
25
+ * @type {Object}
26
+ * @property {Object} peer Instance of Peer
27
+ */
28
+ dht: DHT;
29
+ /** @leofcoin/peernet-swarm/client */
30
+ client: {
31
+ connections: [];
32
+ id: string;
33
+ removePeer: (peer: string) => {};
34
+ close: () => {};
35
+ };
36
+ network: string;
37
+ stars: string[];
38
+ networkVersion: string;
39
+ bw: {
40
+ up: number;
41
+ down: number;
42
+ };
43
+ hasDaemon: boolean;
44
+ autoStart: boolean;
45
+ requestProtos: {};
46
+ _messageHandler: MessageHandler;
47
+ protos: {};
48
+ /**
49
+ * @access public
50
+ * @param {Object} options
51
+ * @param {String} options.network - desired network
52
+ * @param {String} options.stars - star list for selected network (these should match, don't mix networks)
53
+ * @param {String} options.root - path to root directory
54
+ * @param {String} options.storePrefix - prefix for datatores (lfc)
55
+ *
56
+ * @return {Promise} instance of Peernet
57
+ *
58
+ * @example
59
+ * const peernet = new Peernet({network: 'leofcoin', root: '.leofcoin'});
60
+ */
61
+ constructor(options: any, password: any);
62
+ get id(): string;
63
+ get accounts(): Promise<[[name: string, externalAddress: string, internalAddress: string]]>;
64
+ get defaultStores(): string[];
65
+ addProto(name: any, proto: any): void;
66
+ addCodec(codec: any): void;
67
+ addStore(name: any, prefix: any, root: any, isPrivate?: boolean): Promise<void>;
68
+ /**
69
+ * @see MessageHandler
70
+ */
71
+ prepareMessage(data: any): Promise<any>;
72
+ /**
73
+ * @access public
74
+ *
75
+ * @return {Array} peerId
76
+ */
77
+ get peers(): [string, unknown][];
78
+ get connections(): unknown[];
79
+ get peerEntries(): unknown[];
80
+ /**
81
+ * @return {String} id - peerId
82
+ */
83
+ getConnection(id: any): never;
84
+ /**
85
+ * @private
86
+ *
87
+ * @param {Object} options
88
+ * @param {String} options.root - path to root directory
89
+ *
90
+ * @return {Promise} instance of Peernet
91
+ */
92
+ _init(options: any, password: any): Peernet;
93
+ start(): Promise<void>;
94
+ addRequestHandler(name: any, method: any): void;
95
+ sendMessage(peer: any, id: any, data: any): Promise<void>;
96
+ handleDHT(peer: any, id: any, proto: any): Promise<void>;
97
+ handleData(peer: any, id: any, proto: any): Promise<void>;
98
+ handleRequest(peer: any, id: any, proto: any): Promise<void>;
99
+ /**
100
+ * @private
101
+ *
102
+ * @param {Buffer} message - peernet message
103
+ * @param {PeernetPeer} peer - peernet peer
104
+ */
105
+ _protoHandler(message: any, peer: any, from: any): Promise<void>;
106
+ /**
107
+ * performs a walk and resolves first encounter
108
+ *
109
+ * @param {String} hash
110
+ */
111
+ walk(hash: any): Promise<any[]>;
112
+ /**
113
+ * Override DHT behavior, try's finding the content three times
114
+ *
115
+ * @param {String} hash
116
+ */
117
+ providersFor(hash: string, store?: undefined): Promise<Set<string>>;
118
+ get block(): {
119
+ get: (hash: any) => Promise<any>;
120
+ put: (hash: any, data: any) => Promise<any>;
121
+ has: (hash: any) => Promise<any>;
122
+ };
123
+ get transaction(): {
124
+ get: (hash: any) => Promise<any>;
125
+ put: (hash: any, data: any) => Promise<any>;
126
+ has: (hash: any) => Promise<any>;
127
+ };
128
+ requestData(hash: any, store: any): any;
129
+ get message(): {
130
+ /**
131
+ * Get content for given message hash
132
+ *
133
+ * @param {String} hash
134
+ */
135
+ get: (hash: any) => Promise<any>;
136
+ /**
137
+ * put message content
138
+ *
139
+ * @param {String} hash
140
+ * @param {Buffer} message
141
+ */
142
+ put: (hash: any, message: any) => Promise<any>;
143
+ /**
144
+ * @param {String} hash
145
+ * @return {Boolean}
146
+ */
147
+ has: (hash: any) => Promise<any>;
148
+ };
149
+ get data(): {
150
+ /**
151
+ * Get content for given data hash
152
+ *
153
+ * @param {String} hash
154
+ */
155
+ get: (hash: any) => Promise<any>;
156
+ /**
157
+ * put data content
158
+ *
159
+ * @param {String} hash
160
+ * @param {Buffer} data
161
+ */
162
+ put: (hash: any, data: any) => Promise<any>;
163
+ /**
164
+ * @param {String} hash
165
+ * @return {Boolean}
166
+ */
167
+ has: (hash: any) => Promise<any>;
168
+ };
169
+ get folder(): {
170
+ /**
171
+ * Get content for given data hash
172
+ *
173
+ * @param {String} hash
174
+ */
175
+ get: (hash: any) => Promise<any>;
176
+ /**
177
+ * put data content
178
+ *
179
+ * @param {String} hash
180
+ * @param {Buffer} data
181
+ */
182
+ put: (hash: any, data: any) => Promise<any>;
183
+ /**
184
+ * @param {String} hash
185
+ * @return {Boolean}
186
+ */
187
+ has: (hash: any) => Promise<any>;
188
+ };
189
+ addFolder(files: any): Promise<any>;
190
+ ls(hash: any, options: any): Promise<any[]>;
191
+ cat(hash: any, options: any): Promise<any>;
192
+ /**
193
+ * goes trough given stores and tries to find data for given hash
194
+ * @param {Array} stores
195
+ * @param {string} hash
196
+ */
197
+ whichStore(stores: any, hash: any): any;
198
+ /**
199
+ * Get content for given hash
200
+ *
201
+ * @param {String} hash - the hash of the wanted data
202
+ * @param {String} store - storeName to access
203
+ */
204
+ get(hash: any, store: any): Promise<any>;
205
+ /**
206
+ * put content
207
+ *
208
+ * @param {String} hash
209
+ * @param {Buffer} data
210
+ * @param {String} store - storeName to access
211
+ */
212
+ put(hash: any, data: any, store?: string): Promise<any>;
213
+ /**
214
+ * @param {String} hash
215
+ * @return {Boolean}
216
+ */
217
+ has(hash: any): Promise<boolean>;
218
+ /**
219
+ *
220
+ * @param {String} topic
221
+ * @param {String|Object|Array|Boolean|Buffer} data
222
+ */
223
+ publish(topic: any, data: any): Promise<void>;
224
+ createHash(data: any, name: any): any;
225
+ /**
226
+ *
227
+ * @param {String} topic
228
+ * @param {Method} cb
229
+ */
230
+ subscribe(topic: any, callback: any): Promise<void>;
231
+ removePeer(peer: any): Promise<any>;
232
+ get Buffer(): BufferConstructor;
233
+ }
@@ -1,2 +1 @@
1
- export { P as default } from './peernet-4dde5a19.js';
2
- import './value-157ab062.js';
1
+ export { P as default } from './peernet-20a06ecc.js';
@@ -0,0 +1,224 @@
1
+ import { FormatInterface } from '@leofcoin/codec-format-interface';
2
+
3
+ var proto$b = {
4
+ data: new Uint8Array(),
5
+ signature: new Uint8Array(),
6
+ 'from?': String(),
7
+ 'to?': String(),
8
+ 'id?': String()
9
+ };
10
+
11
+ class PeernetMessage extends FormatInterface {
12
+
13
+ get messageName() {
14
+ return 'PeernetMessage'
15
+ }
16
+
17
+ constructor(buffer) {
18
+ const name = 'peernet-message';
19
+ super(buffer, proto$b, {name});
20
+ }
21
+ }
22
+
23
+ var proto$a = {
24
+ hash: String(),
25
+ 'store?': String()
26
+ };
27
+
28
+ /**
29
+ * @example `
30
+ new DHTMessage(hash, store)
31
+ // store = optional if not set, peernet checks every store
32
+ let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
33
+ message = new DHTMessage('hashmvbs124xcfd...', 'block')
34
+ `
35
+ */
36
+ class DHTMessage extends FormatInterface {
37
+
38
+ get messageName() {
39
+ return 'PeernetDHTMessage'
40
+ }
41
+
42
+ constructor(data) {
43
+ const name = 'peernet-dht';
44
+ super(data, proto$a, {name});
45
+ }
46
+ }
47
+
48
+ var proto$9 = {
49
+ hash: String(),
50
+ has: Boolean()
51
+ };
52
+
53
+ class DHTMessageResponse extends FormatInterface {
54
+
55
+ get messageName() {
56
+ return 'PeernetDHTMessageResponse'
57
+ }
58
+
59
+ constructor(data) {
60
+ const name = 'peernet-dht-response';
61
+ super(data, proto$9, {name});
62
+ }
63
+ }
64
+
65
+ var proto$8 = {
66
+ hash: String(),
67
+ 'store?': String()
68
+ };
69
+
70
+ /**
71
+ * @extends {CodecFormat}
72
+ */
73
+ class DataMessage extends FormatInterface {
74
+
75
+ get messageName() {
76
+ return 'PeernetDataMessage'
77
+ }
78
+ /**
79
+ * @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
80
+ */
81
+ constructor(data) {
82
+ super(data, proto$8, {name: 'peernet-data'});
83
+ }
84
+ }
85
+
86
+ var proto$7 = {
87
+ data: new Uint8Array(),
88
+ topic: new Uint8Array()
89
+ };
90
+
91
+ class PsMessage extends FormatInterface {
92
+ get messageName() {
93
+ return 'PsMessage'
94
+ }
95
+
96
+ constructor(buffer) {
97
+ const name = 'peernet-ps';
98
+ super(buffer, proto$7, {name});
99
+ }
100
+ }
101
+
102
+ var proto$6 = {
103
+ id: String()
104
+ };
105
+
106
+ class PeerMessage extends FormatInterface {
107
+ get messageName() {
108
+ return 'PeernetPeerMessage'
109
+ }
110
+
111
+ constructor(data) {
112
+ const name = 'peernet-peer';
113
+ super(data, proto$6, {name});
114
+ }
115
+ }
116
+
117
+ var proto$5 = {
118
+ request: String(),
119
+ 'requested?': new Uint8Array()
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: {}
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 };