@neykoor/libsignal-node 1.0.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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +130 -0
  3. package/lib/base-key-type.d.ts +4 -0
  4. package/lib/base-key-type.js +5 -0
  5. package/lib/chain-type.d.ts +4 -0
  6. package/lib/chain-type.js +5 -0
  7. package/lib/crypto.d.ts +6 -0
  8. package/lib/crypto.js +73 -0
  9. package/lib/curve.d.ts +9 -0
  10. package/lib/curve.js +112 -0
  11. package/lib/direction.d.ts +4 -0
  12. package/lib/direction.js +5 -0
  13. package/lib/errors.d.ts +16 -0
  14. package/lib/errors.js +28 -0
  15. package/lib/index.d.ts +20 -0
  16. package/lib/index.js +16 -0
  17. package/lib/keyhelper.d.ts +18 -0
  18. package/lib/keyhelper.js +52 -0
  19. package/lib/logger.d.ts +6 -0
  20. package/lib/logger.js +11 -0
  21. package/lib/memory-storage.d.ts +25 -0
  22. package/lib/memory-storage.js +68 -0
  23. package/lib/numeric-fingerprint.d.ts +5 -0
  24. package/lib/numeric-fingerprint.js +54 -0
  25. package/lib/prekey-bundle-validator.d.ts +2 -0
  26. package/lib/prekey-bundle-validator.js +44 -0
  27. package/lib/protobufs.d.ts +5 -0
  28. package/lib/protobufs.js +3 -0
  29. package/lib/protocol-address.d.ts +8 -0
  30. package/lib/protocol-address.js +31 -0
  31. package/lib/queue-job.d.ts +3 -0
  32. package/lib/queue-job.js +49 -0
  33. package/lib/session-builder.d.ts +12 -0
  34. package/lib/session-builder.js +153 -0
  35. package/lib/session-cipher.d.ts +29 -0
  36. package/lib/session-cipher.js +326 -0
  37. package/lib/session-record.d.ts +109 -0
  38. package/lib/session-record.js +286 -0
  39. package/lib/types.d.ts +42 -0
  40. package/lib/types.js +1 -0
  41. package/lib/util.d.ts +2 -0
  42. package/lib/util.js +10 -0
  43. package/lib/whisper-text-protocol.d.ts +3 -0
  44. package/lib/whisper-text-protocol.js +483 -0
  45. package/package.json +38 -0
@@ -0,0 +1,483 @@
1
+ import $protobuf from 'protobufjs/minimal.js';
2
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
3
+ var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
4
+ $root.textsecure = (function () {
5
+ var textsecure = {};
6
+ textsecure.WhisperMessage = (function () {
7
+ function WhisperMessage(properties) {
8
+ if (properties)
9
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
10
+ if (properties[keys[i]] != null)
11
+ this[keys[i]] = properties[keys[i]];
12
+ }
13
+ WhisperMessage.prototype.ephemeralKey = $util.newBuffer([]);
14
+ WhisperMessage.prototype.counter = 0;
15
+ WhisperMessage.prototype.previousCounter = 0;
16
+ WhisperMessage.prototype.ciphertext = $util.newBuffer([]);
17
+ WhisperMessage.create = function create(properties) {
18
+ return new WhisperMessage(properties);
19
+ };
20
+ WhisperMessage.encode = function encode(message, writer) {
21
+ if (!writer)
22
+ writer = $Writer.create();
23
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
24
+ writer.uint32(10).bytes(message.ephemeralKey);
25
+ if (message.counter != null && message.hasOwnProperty("counter"))
26
+ writer.uint32(16).uint32(message.counter);
27
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
28
+ writer.uint32(24).uint32(message.previousCounter);
29
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
30
+ writer.uint32(34).bytes(message.ciphertext);
31
+ return writer;
32
+ };
33
+ WhisperMessage.encodeDelimited = function encodeDelimited(message, writer) {
34
+ return this.encode(message, writer).ldelim();
35
+ };
36
+ WhisperMessage.decode = function decode(reader, length) {
37
+ if (!(reader instanceof $Reader))
38
+ reader = $Reader.create(reader);
39
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.textsecure.WhisperMessage();
40
+ while (reader.pos < end) {
41
+ var tag = reader.uint32();
42
+ switch (tag >>> 3) {
43
+ case 1:
44
+ message.ephemeralKey = reader.bytes();
45
+ break;
46
+ case 2:
47
+ message.counter = reader.uint32();
48
+ break;
49
+ case 3:
50
+ message.previousCounter = reader.uint32();
51
+ break;
52
+ case 4:
53
+ message.ciphertext = reader.bytes();
54
+ break;
55
+ default:
56
+ reader.skipType(tag & 7);
57
+ break;
58
+ }
59
+ }
60
+ return message;
61
+ };
62
+ WhisperMessage.decodeDelimited = function decodeDelimited(reader) {
63
+ if (!(reader instanceof $Reader))
64
+ reader = new $Reader(reader);
65
+ return this.decode(reader, reader.uint32());
66
+ };
67
+ WhisperMessage.verify = function verify(message) {
68
+ if (typeof message !== "object" || message === null)
69
+ return "object expected";
70
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
71
+ if (!(message.ephemeralKey && typeof message.ephemeralKey.length === "number" || $util.isString(message.ephemeralKey)))
72
+ return "ephemeralKey: buffer expected";
73
+ if (message.counter != null && message.hasOwnProperty("counter"))
74
+ if (!$util.isInteger(message.counter))
75
+ return "counter: integer expected";
76
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
77
+ if (!$util.isInteger(message.previousCounter))
78
+ return "previousCounter: integer expected";
79
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
80
+ if (!(message.ciphertext && typeof message.ciphertext.length === "number" || $util.isString(message.ciphertext)))
81
+ return "ciphertext: buffer expected";
82
+ return null;
83
+ };
84
+ WhisperMessage.fromObject = function fromObject(object) {
85
+ if (object instanceof $root.textsecure.WhisperMessage)
86
+ return object;
87
+ var message = new $root.textsecure.WhisperMessage();
88
+ if (object.ephemeralKey != null)
89
+ if (typeof object.ephemeralKey === "string")
90
+ $util.base64.decode(object.ephemeralKey, message.ephemeralKey = $util.newBuffer($util.base64.length(object.ephemeralKey)), 0);
91
+ else if (object.ephemeralKey.length)
92
+ message.ephemeralKey = object.ephemeralKey;
93
+ if (object.counter != null)
94
+ message.counter = object.counter >>> 0;
95
+ if (object.previousCounter != null)
96
+ message.previousCounter = object.previousCounter >>> 0;
97
+ if (object.ciphertext != null)
98
+ if (typeof object.ciphertext === "string")
99
+ $util.base64.decode(object.ciphertext, message.ciphertext = $util.newBuffer($util.base64.length(object.ciphertext)), 0);
100
+ else if (object.ciphertext.length)
101
+ message.ciphertext = object.ciphertext;
102
+ return message;
103
+ };
104
+ WhisperMessage.toObject = function toObject(message, options) {
105
+ if (!options)
106
+ options = {};
107
+ var object = {};
108
+ if (options.defaults) {
109
+ if (options.bytes === String)
110
+ object.ephemeralKey = "";
111
+ else {
112
+ object.ephemeralKey = [];
113
+ if (options.bytes !== Array)
114
+ object.ephemeralKey = $util.newBuffer(object.ephemeralKey);
115
+ }
116
+ object.counter = 0;
117
+ object.previousCounter = 0;
118
+ if (options.bytes === String)
119
+ object.ciphertext = "";
120
+ else {
121
+ object.ciphertext = [];
122
+ if (options.bytes !== Array)
123
+ object.ciphertext = $util.newBuffer(object.ciphertext);
124
+ }
125
+ }
126
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
127
+ object.ephemeralKey = options.bytes === String ? $util.base64.encode(message.ephemeralKey, 0, message.ephemeralKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.ephemeralKey) : message.ephemeralKey;
128
+ if (message.counter != null && message.hasOwnProperty("counter"))
129
+ object.counter = message.counter;
130
+ if (message.previousCounter != null && message.hasOwnProperty("previousCounter"))
131
+ object.previousCounter = message.previousCounter;
132
+ if (message.ciphertext != null && message.hasOwnProperty("ciphertext"))
133
+ object.ciphertext = options.bytes === String ? $util.base64.encode(message.ciphertext, 0, message.ciphertext.length) : options.bytes === Array ? Array.prototype.slice.call(message.ciphertext) : message.ciphertext;
134
+ return object;
135
+ };
136
+ WhisperMessage.prototype.toJSON = function toJSON() {
137
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
138
+ };
139
+ return WhisperMessage;
140
+ })();
141
+ textsecure.PreKeyWhisperMessage = (function () {
142
+ function PreKeyWhisperMessage(properties) {
143
+ if (properties)
144
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
145
+ if (properties[keys[i]] != null)
146
+ this[keys[i]] = properties[keys[i]];
147
+ }
148
+ PreKeyWhisperMessage.prototype.registrationId = 0;
149
+ PreKeyWhisperMessage.prototype.preKeyId = 0;
150
+ PreKeyWhisperMessage.prototype.signedPreKeyId = 0;
151
+ PreKeyWhisperMessage.prototype.baseKey = $util.newBuffer([]);
152
+ PreKeyWhisperMessage.prototype.identityKey = $util.newBuffer([]);
153
+ PreKeyWhisperMessage.prototype.message = $util.newBuffer([]);
154
+ PreKeyWhisperMessage.create = function create(properties) {
155
+ return new PreKeyWhisperMessage(properties);
156
+ };
157
+ PreKeyWhisperMessage.encode = function encode(message, writer) {
158
+ if (!writer)
159
+ writer = $Writer.create();
160
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
161
+ writer.uint32(8).uint32(message.preKeyId);
162
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
163
+ writer.uint32(18).bytes(message.baseKey);
164
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
165
+ writer.uint32(26).bytes(message.identityKey);
166
+ if (message.message != null && message.hasOwnProperty("message"))
167
+ writer.uint32(34).bytes(message.message);
168
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
169
+ writer.uint32(40).uint32(message.registrationId);
170
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
171
+ writer.uint32(48).uint32(message.signedPreKeyId);
172
+ return writer;
173
+ };
174
+ PreKeyWhisperMessage.encodeDelimited = function encodeDelimited(message, writer) {
175
+ return this.encode(message, writer).ldelim();
176
+ };
177
+ PreKeyWhisperMessage.decode = function decode(reader, length) {
178
+ if (!(reader instanceof $Reader))
179
+ reader = $Reader.create(reader);
180
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.textsecure.PreKeyWhisperMessage();
181
+ while (reader.pos < end) {
182
+ var tag = reader.uint32();
183
+ switch (tag >>> 3) {
184
+ case 5:
185
+ message.registrationId = reader.uint32();
186
+ break;
187
+ case 1:
188
+ message.preKeyId = reader.uint32();
189
+ break;
190
+ case 6:
191
+ message.signedPreKeyId = reader.uint32();
192
+ break;
193
+ case 2:
194
+ message.baseKey = reader.bytes();
195
+ break;
196
+ case 3:
197
+ message.identityKey = reader.bytes();
198
+ break;
199
+ case 4:
200
+ message.message = reader.bytes();
201
+ break;
202
+ default:
203
+ reader.skipType(tag & 7);
204
+ break;
205
+ }
206
+ }
207
+ return message;
208
+ };
209
+ PreKeyWhisperMessage.decodeDelimited = function decodeDelimited(reader) {
210
+ if (!(reader instanceof $Reader))
211
+ reader = new $Reader(reader);
212
+ return this.decode(reader, reader.uint32());
213
+ };
214
+ PreKeyWhisperMessage.verify = function verify(message) {
215
+ if (typeof message !== "object" || message === null)
216
+ return "object expected";
217
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
218
+ if (!$util.isInteger(message.registrationId))
219
+ return "registrationId: integer expected";
220
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
221
+ if (!$util.isInteger(message.preKeyId))
222
+ return "preKeyId: integer expected";
223
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
224
+ if (!$util.isInteger(message.signedPreKeyId))
225
+ return "signedPreKeyId: integer expected";
226
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
227
+ if (!(message.baseKey && typeof message.baseKey.length === "number" || $util.isString(message.baseKey)))
228
+ return "baseKey: buffer expected";
229
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
230
+ if (!(message.identityKey && typeof message.identityKey.length === "number" || $util.isString(message.identityKey)))
231
+ return "identityKey: buffer expected";
232
+ if (message.message != null && message.hasOwnProperty("message"))
233
+ if (!(message.message && typeof message.message.length === "number" || $util.isString(message.message)))
234
+ return "message: buffer expected";
235
+ return null;
236
+ };
237
+ PreKeyWhisperMessage.fromObject = function fromObject(object) {
238
+ if (object instanceof $root.textsecure.PreKeyWhisperMessage)
239
+ return object;
240
+ var message = new $root.textsecure.PreKeyWhisperMessage();
241
+ if (object.registrationId != null)
242
+ message.registrationId = object.registrationId >>> 0;
243
+ if (object.preKeyId != null)
244
+ message.preKeyId = object.preKeyId >>> 0;
245
+ if (object.signedPreKeyId != null)
246
+ message.signedPreKeyId = object.signedPreKeyId >>> 0;
247
+ if (object.baseKey != null)
248
+ if (typeof object.baseKey === "string")
249
+ $util.base64.decode(object.baseKey, message.baseKey = $util.newBuffer($util.base64.length(object.baseKey)), 0);
250
+ else if (object.baseKey.length)
251
+ message.baseKey = object.baseKey;
252
+ if (object.identityKey != null)
253
+ if (typeof object.identityKey === "string")
254
+ $util.base64.decode(object.identityKey, message.identityKey = $util.newBuffer($util.base64.length(object.identityKey)), 0);
255
+ else if (object.identityKey.length)
256
+ message.identityKey = object.identityKey;
257
+ if (object.message != null)
258
+ if (typeof object.message === "string")
259
+ $util.base64.decode(object.message, message.message = $util.newBuffer($util.base64.length(object.message)), 0);
260
+ else if (object.message.length)
261
+ message.message = object.message;
262
+ return message;
263
+ };
264
+ PreKeyWhisperMessage.toObject = function toObject(message, options) {
265
+ if (!options)
266
+ options = {};
267
+ var object = {};
268
+ if (options.defaults) {
269
+ object.preKeyId = 0;
270
+ if (options.bytes === String)
271
+ object.baseKey = "";
272
+ else {
273
+ object.baseKey = [];
274
+ if (options.bytes !== Array)
275
+ object.baseKey = $util.newBuffer(object.baseKey);
276
+ }
277
+ if (options.bytes === String)
278
+ object.identityKey = "";
279
+ else {
280
+ object.identityKey = [];
281
+ if (options.bytes !== Array)
282
+ object.identityKey = $util.newBuffer(object.identityKey);
283
+ }
284
+ if (options.bytes === String)
285
+ object.message = "";
286
+ else {
287
+ object.message = [];
288
+ if (options.bytes !== Array)
289
+ object.message = $util.newBuffer(object.message);
290
+ }
291
+ object.registrationId = 0;
292
+ object.signedPreKeyId = 0;
293
+ }
294
+ if (message.preKeyId != null && message.hasOwnProperty("preKeyId"))
295
+ object.preKeyId = message.preKeyId;
296
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
297
+ object.baseKey = options.bytes === String ? $util.base64.encode(message.baseKey, 0, message.baseKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKey) : message.baseKey;
298
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
299
+ object.identityKey = options.bytes === String ? $util.base64.encode(message.identityKey, 0, message.identityKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityKey) : message.identityKey;
300
+ if (message.message != null && message.hasOwnProperty("message"))
301
+ object.message = options.bytes === String ? $util.base64.encode(message.message, 0, message.message.length) : options.bytes === Array ? Array.prototype.slice.call(message.message) : message.message;
302
+ if (message.registrationId != null && message.hasOwnProperty("registrationId"))
303
+ object.registrationId = message.registrationId;
304
+ if (message.signedPreKeyId != null && message.hasOwnProperty("signedPreKeyId"))
305
+ object.signedPreKeyId = message.signedPreKeyId;
306
+ return object;
307
+ };
308
+ PreKeyWhisperMessage.prototype.toJSON = function toJSON() {
309
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
310
+ };
311
+ return PreKeyWhisperMessage;
312
+ })();
313
+ textsecure.KeyExchangeMessage = (function () {
314
+ function KeyExchangeMessage(properties) {
315
+ if (properties)
316
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
317
+ if (properties[keys[i]] != null)
318
+ this[keys[i]] = properties[keys[i]];
319
+ }
320
+ KeyExchangeMessage.prototype.id = 0;
321
+ KeyExchangeMessage.prototype.baseKey = $util.newBuffer([]);
322
+ KeyExchangeMessage.prototype.ephemeralKey = $util.newBuffer([]);
323
+ KeyExchangeMessage.prototype.identityKey = $util.newBuffer([]);
324
+ KeyExchangeMessage.prototype.baseKeySignature = $util.newBuffer([]);
325
+ KeyExchangeMessage.create = function create(properties) {
326
+ return new KeyExchangeMessage(properties);
327
+ };
328
+ KeyExchangeMessage.encode = function encode(message, writer) {
329
+ if (!writer)
330
+ writer = $Writer.create();
331
+ if (message.id != null && message.hasOwnProperty("id"))
332
+ writer.uint32(8).uint32(message.id);
333
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
334
+ writer.uint32(18).bytes(message.baseKey);
335
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
336
+ writer.uint32(26).bytes(message.ephemeralKey);
337
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
338
+ writer.uint32(34).bytes(message.identityKey);
339
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
340
+ writer.uint32(42).bytes(message.baseKeySignature);
341
+ return writer;
342
+ };
343
+ KeyExchangeMessage.encodeDelimited = function encodeDelimited(message, writer) {
344
+ return this.encode(message, writer).ldelim();
345
+ };
346
+ KeyExchangeMessage.decode = function decode(reader, length) {
347
+ if (!(reader instanceof $Reader))
348
+ reader = $Reader.create(reader);
349
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.textsecure.KeyExchangeMessage();
350
+ while (reader.pos < end) {
351
+ var tag = reader.uint32();
352
+ switch (tag >>> 3) {
353
+ case 1:
354
+ message.id = reader.uint32();
355
+ break;
356
+ case 2:
357
+ message.baseKey = reader.bytes();
358
+ break;
359
+ case 3:
360
+ message.ephemeralKey = reader.bytes();
361
+ break;
362
+ case 4:
363
+ message.identityKey = reader.bytes();
364
+ break;
365
+ case 5:
366
+ message.baseKeySignature = reader.bytes();
367
+ break;
368
+ default:
369
+ reader.skipType(tag & 7);
370
+ break;
371
+ }
372
+ }
373
+ return message;
374
+ };
375
+ KeyExchangeMessage.decodeDelimited = function decodeDelimited(reader) {
376
+ if (!(reader instanceof $Reader))
377
+ reader = new $Reader(reader);
378
+ return this.decode(reader, reader.uint32());
379
+ };
380
+ KeyExchangeMessage.verify = function verify(message) {
381
+ if (typeof message !== "object" || message === null)
382
+ return "object expected";
383
+ if (message.id != null && message.hasOwnProperty("id"))
384
+ if (!$util.isInteger(message.id))
385
+ return "id: integer expected";
386
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
387
+ if (!(message.baseKey && typeof message.baseKey.length === "number" || $util.isString(message.baseKey)))
388
+ return "baseKey: buffer expected";
389
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
390
+ if (!(message.ephemeralKey && typeof message.ephemeralKey.length === "number" || $util.isString(message.ephemeralKey)))
391
+ return "ephemeralKey: buffer expected";
392
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
393
+ if (!(message.identityKey && typeof message.identityKey.length === "number" || $util.isString(message.identityKey)))
394
+ return "identityKey: buffer expected";
395
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
396
+ if (!(message.baseKeySignature && typeof message.baseKeySignature.length === "number" || $util.isString(message.baseKeySignature)))
397
+ return "baseKeySignature: buffer expected";
398
+ return null;
399
+ };
400
+ KeyExchangeMessage.fromObject = function fromObject(object) {
401
+ if (object instanceof $root.textsecure.KeyExchangeMessage)
402
+ return object;
403
+ var message = new $root.textsecure.KeyExchangeMessage();
404
+ if (object.id != null)
405
+ message.id = object.id >>> 0;
406
+ if (object.baseKey != null)
407
+ if (typeof object.baseKey === "string")
408
+ $util.base64.decode(object.baseKey, message.baseKey = $util.newBuffer($util.base64.length(object.baseKey)), 0);
409
+ else if (object.baseKey.length)
410
+ message.baseKey = object.baseKey;
411
+ if (object.ephemeralKey != null)
412
+ if (typeof object.ephemeralKey === "string")
413
+ $util.base64.decode(object.ephemeralKey, message.ephemeralKey = $util.newBuffer($util.base64.length(object.ephemeralKey)), 0);
414
+ else if (object.ephemeralKey.length)
415
+ message.ephemeralKey = object.ephemeralKey;
416
+ if (object.identityKey != null)
417
+ if (typeof object.identityKey === "string")
418
+ $util.base64.decode(object.identityKey, message.identityKey = $util.newBuffer($util.base64.length(object.identityKey)), 0);
419
+ else if (object.identityKey.length)
420
+ message.identityKey = object.identityKey;
421
+ if (object.baseKeySignature != null)
422
+ if (typeof object.baseKeySignature === "string")
423
+ $util.base64.decode(object.baseKeySignature, message.baseKeySignature = $util.newBuffer($util.base64.length(object.baseKeySignature)), 0);
424
+ else if (object.baseKeySignature.length)
425
+ message.baseKeySignature = object.baseKeySignature;
426
+ return message;
427
+ };
428
+ KeyExchangeMessage.toObject = function toObject(message, options) {
429
+ if (!options)
430
+ options = {};
431
+ var object = {};
432
+ if (options.defaults) {
433
+ object.id = 0;
434
+ if (options.bytes === String)
435
+ object.baseKey = "";
436
+ else {
437
+ object.baseKey = [];
438
+ if (options.bytes !== Array)
439
+ object.baseKey = $util.newBuffer(object.baseKey);
440
+ }
441
+ if (options.bytes === String)
442
+ object.ephemeralKey = "";
443
+ else {
444
+ object.ephemeralKey = [];
445
+ if (options.bytes !== Array)
446
+ object.ephemeralKey = $util.newBuffer(object.ephemeralKey);
447
+ }
448
+ if (options.bytes === String)
449
+ object.identityKey = "";
450
+ else {
451
+ object.identityKey = [];
452
+ if (options.bytes !== Array)
453
+ object.identityKey = $util.newBuffer(object.identityKey);
454
+ }
455
+ if (options.bytes === String)
456
+ object.baseKeySignature = "";
457
+ else {
458
+ object.baseKeySignature = [];
459
+ if (options.bytes !== Array)
460
+ object.baseKeySignature = $util.newBuffer(object.baseKeySignature);
461
+ }
462
+ }
463
+ if (message.id != null && message.hasOwnProperty("id"))
464
+ object.id = message.id;
465
+ if (message.baseKey != null && message.hasOwnProperty("baseKey"))
466
+ object.baseKey = options.bytes === String ? $util.base64.encode(message.baseKey, 0, message.baseKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKey) : message.baseKey;
467
+ if (message.ephemeralKey != null && message.hasOwnProperty("ephemeralKey"))
468
+ object.ephemeralKey = options.bytes === String ? $util.base64.encode(message.ephemeralKey, 0, message.ephemeralKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.ephemeralKey) : message.ephemeralKey;
469
+ if (message.identityKey != null && message.hasOwnProperty("identityKey"))
470
+ object.identityKey = options.bytes === String ? $util.base64.encode(message.identityKey, 0, message.identityKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.identityKey) : message.identityKey;
471
+ if (message.baseKeySignature != null && message.hasOwnProperty("baseKeySignature"))
472
+ object.baseKeySignature = options.bytes === String ? $util.base64.encode(message.baseKeySignature, 0, message.baseKeySignature.length) : options.bytes === Array ? Array.prototype.slice.call(message.baseKeySignature) : message.baseKeySignature;
473
+ return object;
474
+ };
475
+ KeyExchangeMessage.prototype.toJSON = function toJSON() {
476
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
477
+ };
478
+ return KeyExchangeMessage;
479
+ })();
480
+ return textsecure;
481
+ })();
482
+ export default $root;
483
+ export const textsecure = $root.textsecure;
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@neykoor/libsignal-node",
3
+ "version": "1.0.1",
4
+ "description": "TypeScript port of libsignal-node, compatible with BaileysX",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/index.d.ts",
11
+ "import": "./lib/index.js"
12
+ },
13
+ "./lib/*.js": {
14
+ "types": "./lib/*.d.ts",
15
+ "import": "./lib/*.js"
16
+ },
17
+ "./package.json": "./package.json"
18
+ },
19
+ "files": [
20
+ "lib/**/*"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc -P tsconfig.json && tsc-esm-fix --tsconfig=tsconfig.json --ext=.js"
24
+ },
25
+ "dependencies": {
26
+ "curve25519-js": "^0.0.4",
27
+ "pino": "^9.0.0",
28
+ "protobufjs": "^7.5.5"
29
+ },
30
+ "devDependencies": {
31
+ "typescript": "5.6.3",
32
+ "@types/node": "22.9.3",
33
+ "tsc-esm-fix": "^3.1.2"
34
+ },
35
+ "engines": {
36
+ "node": ">=20.0.0"
37
+ }
38
+ }