@leofcoin/peernet 0.16.7 → 0.17.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.
@@ -0,0 +1,2 @@
1
+ export { P as default } from './peernet-379769d5.js';
2
+ import './value-40634404.js';
@@ -0,0 +1,64 @@
1
+ // import base32 from '@vandeurenglenn/base32'
2
+ // import base58 from '@vandeurenglenn/base58'
3
+
4
+ // export const encodings = {
5
+ // base58,
6
+ // base32
7
+ // }
8
+
9
+ const encode = (string, encoding = 'utf-8') => {
10
+ if (typeof string === 'string') {
11
+ let encoded;
12
+
13
+ // if (encodings[encoding]) encoded = encodings[encoding].encode(encoded)
14
+ encoded = new TextEncoder().encode(string);
15
+ return encoded
16
+ }
17
+ throw Error(`expected typeof String instead got ${string}`)
18
+ };
19
+
20
+ const decode = (uint8Array, encoding) => {
21
+ if (uint8Array instanceof Uint8Array) {
22
+ let decoded;
23
+ // if (encodings[encoding]) decoded = encodings[encoding].decode(decoded)
24
+ decoded = new TextDecoder().decode(uint8Array);
25
+
26
+ return decoded
27
+ }
28
+ throw Error(`expected typeof uint8Array instead got ${uint8Array}`)
29
+ };
30
+
31
+ class KeyValue {
32
+
33
+ /**
34
+ * @param {string | Uint8Array} input
35
+ */
36
+ constructor(input) {
37
+ if (typeof input === 'string') {
38
+ this.uint8Array = encode(input);
39
+ } else if (input instanceof Uint8Array) {
40
+ this.uint8Array = input;
41
+ } else if (input instanceof KeyValue) {
42
+ this.uint8Array = input.uint8Array;
43
+ } else {
44
+ throw new Error('Invalid KeyValue, should be a String, Uint8Array or KeyValue')
45
+ }
46
+ }
47
+
48
+ isKeyValue() {
49
+ return true
50
+ }
51
+
52
+ /**
53
+ * Convert to the string representation
54
+ *
55
+ * @param {import('uint8arrays/to-string').SupportedEncodings} [encoding='utf8'] - The encoding to use.
56
+ * @returns {string}
57
+ */
58
+ toString(encoding = 'utf8') {
59
+ return decode(this.uint8Array)
60
+ }
61
+
62
+ }
63
+
64
+ export { KeyValue as K };
@@ -0,0 +1,302 @@
1
+ import { FormatInterface } from '@leofcoin/codec-format-interface';
2
+
3
+ var proto$b = `
4
+ // PeernetMessage
5
+ message PeernetMessage {
6
+ required bytes data = 1;
7
+ required bytes signature = 2;
8
+ optional string from = 3;
9
+ optional string to = 4;
10
+ optional string id = 5;
11
+ }`;
12
+
13
+ class PeernetMessage extends FormatInterface {
14
+ get keys() {
15
+ return ['data', 'signature', 'from', 'to', 'id']
16
+ }
17
+
18
+ get messageName() {
19
+ return 'PeernetMessage'
20
+ }
21
+
22
+ constructor(buffer) {
23
+ const name = 'peernet-message';
24
+ super(buffer, proto$b, {name});
25
+ }
26
+ }
27
+
28
+ var proto$a = `
29
+ // PeernetDHTMessage
30
+ message PeernetDHTMessage {
31
+ required string hash = 1;
32
+ optional string store = 2;
33
+ }
34
+ `;
35
+
36
+ /**
37
+ * @example `
38
+ new DHTMessage(hash, store)
39
+ // store = optional if not set, peernet checks every store
40
+ let message = new DHTMessage('hashmvbs124xcfd...', 'transaction')
41
+ message = new DHTMessage('hashmvbs124xcfd...', 'block')
42
+ `
43
+ */
44
+ class DHTMessage extends FormatInterface {
45
+ /**
46
+ *
47
+ */
48
+ get keys() {
49
+ return ['hash', 'store']
50
+ }
51
+
52
+ get messageName() {
53
+ return 'PeernetDHTMessage'
54
+ }
55
+
56
+ constructor(data) {
57
+ const name = 'peernet-dht';
58
+ super(data, proto$a, {name});
59
+ }
60
+ }
61
+
62
+ var proto$9 = `
63
+ // PeernetDHTMessageResponse
64
+ message PeernetDHTMessageResponse {
65
+ required string hash = 1;
66
+ required bool has = 2;
67
+ }
68
+ `;
69
+
70
+ class DHTMessageResponse extends FormatInterface {
71
+ get keys() {
72
+ return ['hash', 'has']
73
+ }
74
+
75
+ get messageName() {
76
+ return 'PeernetDHTMessageResponse'
77
+ }
78
+
79
+ constructor(data) {
80
+ const name = 'peernet-dht-response';
81
+ super(data, proto$9, {name});
82
+ }
83
+ }
84
+
85
+ var proto$8 = `
86
+ // PeernetDataMessage
87
+ message PeernetDataMessage {
88
+ required string hash = 1;
89
+ optional string store = 2;
90
+ }
91
+ `;
92
+
93
+ /**
94
+ * @extends {CodecFormat}
95
+ */
96
+ class DataMessage extends FormatInterface {
97
+ get keys() {
98
+ return ['hash', 'store']
99
+ }
100
+
101
+ get messageName() {
102
+ return 'PeernetDataMessage'
103
+ }
104
+ /**
105
+ * @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
106
+ */
107
+ constructor(data) {
108
+ super(data, proto$8, {name: 'peernet-data'});
109
+ }
110
+ }
111
+
112
+ var proto$7 = `
113
+ // PsMessage
114
+ message PsMessage {
115
+ required bytes data = 1;
116
+ required bytes topic = 2;
117
+ }`;
118
+
119
+ class PsMessage extends FormatInterface {
120
+ get keys() {
121
+ return ['data', 'topic']
122
+ }
123
+
124
+ get messageName() {
125
+ return 'PsMessage'
126
+ }
127
+
128
+ constructor(buffer) {
129
+ const name = 'peernet-ps';
130
+ super(buffer, proto$7, {name});
131
+ }
132
+ }
133
+
134
+ var proto$6 = `
135
+ // PeernetPeerMessage
136
+ message PeernetPeerMessage {
137
+ required string id = 1;
138
+ }
139
+ `;
140
+
141
+ class PeerMessage extends FormatInterface {
142
+ get keys() {
143
+ return ['id']
144
+ }
145
+
146
+ get messageName() {
147
+ return 'PeernetPeerMessage'
148
+ }
149
+
150
+ constructor(data) {
151
+ const name = 'peernet-peer';
152
+ super(data, proto$6, {name});
153
+ }
154
+ }
155
+
156
+ var proto$5 = `
157
+ // PeernetRequestMessage
158
+ message PeernetRequestMessage {
159
+ required string request = 1;
160
+ }
161
+ `;
162
+
163
+ class RequestMessage extends FormatInterface {
164
+ get keys() {
165
+ return ['request']
166
+ }
167
+
168
+ get messageName() {
169
+ return 'PeernetRequestMessage'
170
+ }
171
+
172
+ constructor(data) {
173
+ const name = 'peernet-request';
174
+ super(data, proto$5, {name});
175
+ }
176
+ }
177
+
178
+ var proto$4 = `
179
+ // PeernetResponseMessage
180
+ message PeernetResponseMessage {
181
+ required bytes response = 1;
182
+ }
183
+ `;
184
+
185
+ class ResponseMessage extends FormatInterface {
186
+ get keys() {
187
+ return ['response']
188
+ }
189
+
190
+ get messageName() {
191
+ return 'PeernetResponseMessage'
192
+ }
193
+
194
+ constructor(data) {
195
+ const name = 'peernet-response';
196
+ super(data, proto$4, {name});
197
+ }
198
+ }
199
+
200
+ var proto$3 = `
201
+ // PeernetPeerMessageResponse
202
+ message PeernetPeerMessageResponse {
203
+ required string id = 1;
204
+ }
205
+ `;
206
+
207
+ class PeerMessageResponse extends FormatInterface {
208
+ get keys() {
209
+ return ['id']
210
+ }
211
+
212
+ get messageName() {
213
+ return 'PeernetPeerMessageResponse'
214
+ }
215
+
216
+ constructor(data) {
217
+ const name = 'peernet-peer-response';
218
+ super(data, proto$3, {name});
219
+ }
220
+ }
221
+
222
+ var proto$2 = `
223
+ // PeernetDataMessageResponse
224
+ message PeernetDataMessageResponse {
225
+ required string hash = 1;
226
+ required bytes data = 2;
227
+ }
228
+ `;
229
+
230
+ class DataMessageResponse extends FormatInterface {
231
+ get keys() {
232
+ return ['hash', 'data']
233
+ }
234
+
235
+ get messageName() {
236
+ return 'PeernetDataMessageResponse'
237
+ }
238
+
239
+ constructor(data) {
240
+ const name = 'peernet-data-response';
241
+ super(data, proto$2, {name});
242
+ }
243
+ }
244
+
245
+ var proto$1 = `
246
+ message ChatMessage {
247
+ required string value = 1;
248
+ required string author = 2;
249
+ required uint64 timestamp = 3;
250
+ repeated string files = 4;
251
+ }`;
252
+
253
+ class ChatMessage extends FormatInterface {
254
+ get keys() {
255
+ return ['author', 'value', 'timestamp', 'files']
256
+ }
257
+
258
+ get messageName() {
259
+ return 'ChatMessage'
260
+ }
261
+
262
+ constructor(buffer) {
263
+ const name = 'chat-message';
264
+ super(buffer, proto$1, {name});
265
+ }
266
+ }
267
+
268
+ var proto = `
269
+ // PeernetFolder
270
+ message PeernetFileLink {
271
+ required string hash = 1;
272
+ required string path = 2;
273
+ optional string size = 3;
274
+ }
275
+
276
+ message PeernetFile {
277
+ required string path = 1;
278
+ optional string content = 2;
279
+ repeated PeernetFileLink links = 3;
280
+ }
281
+ `;
282
+
283
+ /**
284
+ * @extends {CodecFormat}
285
+ */
286
+ class PeernetFile extends FormatInterface {
287
+ get keys() {
288
+ return ['path', 'content', 'links']
289
+ }
290
+
291
+ get messageName() {
292
+ return 'PeernetFile'
293
+ }
294
+ /**
295
+ * @param {Buffer|String|Object|DataMessage} data - The data needed to create the DataMessage
296
+ */
297
+ constructor(data) {
298
+ super(data, proto, {name: 'peernet-file'});
299
+ }
300
+ }
301
+
302
+ export { ChatMessage, DHTMessage, DHTMessageResponse, DataMessage, DataMessageResponse, PeerMessage, PeerMessageResponse, PeernetFile, PeernetMessage, PsMessage, RequestMessage, ResponseMessage };