vialeys 0.0.1 → 0.0.2

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 (102) hide show
  1. package/README.md +11 -5
  2. package/WAProto/AICommon/AICommon.js +13991 -9169
  3. package/WAProto/AICommon/AICommon.proto +110 -3
  4. package/WAProto/CompanionReg/CompanionReg.js +114 -0
  5. package/WAProto/CompanionReg/CompanionReg.proto +3 -0
  6. package/WAProto/DeviceCapabilities/DeviceCapabilities.js +652 -0
  7. package/WAProto/DeviceCapabilities/DeviceCapabilities.proto +19 -0
  8. package/WAProto/E2E/E2E.js +77193 -51248
  9. package/WAProto/E2E/E2E.proto +68 -12
  10. package/WAProto/HistorySync/HistorySync.js +3375 -178
  11. package/WAProto/HistorySync/HistorySync.proto +3 -3
  12. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.js +98 -49
  13. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.proto +2 -2
  14. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.js +75226 -48422
  15. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.proto +6 -0
  16. package/WAProto/StatusAttributions/StatusAttributions.js +21 -0
  17. package/WAProto/StatusAttributions/StatusAttributions.proto +3 -0
  18. package/WAProto/SyncAction/SyncAction.js +9423 -2023
  19. package/WAProto/SyncAction/SyncAction.proto +208 -15
  20. package/WAProto/Wa6/Wa6.js +83 -0
  21. package/WAProto/Wa6/Wa6.proto +3 -0
  22. package/WAProto/Web/Web.js +92664 -63403
  23. package/WAProto/Web/Web.proto +31 -13
  24. package/engine-requirements.js +9 -7
  25. package/lib/Defaults/baileys-version.json +2 -2
  26. package/lib/Defaults/connection.js +51 -0
  27. package/lib/Defaults/constants.js +62 -0
  28. package/lib/Defaults/history.js +17 -0
  29. package/lib/Defaults/index.js +36 -142
  30. package/lib/Defaults/media.js +48 -0
  31. package/lib/Defaults/prefix.js +18 -0
  32. package/lib/Signal/Group/group-session-builder.js +10 -42
  33. package/lib/Signal/Group/group_cipher.js +9 -6
  34. package/lib/Signal/Group/index.js +39 -53
  35. package/lib/Signal/Group/keyhelper.js +8 -41
  36. package/lib/Signal/Group/sender-chain-key.js +4 -4
  37. package/lib/Signal/Group/sender-key-distribution-message.js +5 -5
  38. package/lib/Signal/Group/sender-key-message.js +12 -8
  39. package/lib/Signal/Group/sender-key-state.js +4 -4
  40. package/lib/Signal/Group/sender-message-key.js +2 -2
  41. package/lib/Signal/libsignal.js +45 -69
  42. package/lib/Signal/lid-mapping.js +15 -11
  43. package/lib/Socket/Client/types.js +2 -2
  44. package/lib/Socket/Client/websocket.js +16 -14
  45. package/lib/Socket/business.js +41 -32
  46. package/lib/Socket/chats.js +123 -98
  47. package/lib/Socket/community.js +50 -40
  48. package/lib/Socket/groups.js +59 -47
  49. package/lib/Socket/index.js +4 -4
  50. package/lib/Socket/messages-recv.js +226 -171
  51. package/lib/Socket/messages-send.js +187 -143
  52. package/lib/Socket/newsletter.js +61 -47
  53. package/lib/Socket/socket.js +133 -90
  54. package/lib/Socket/usync.js +6 -6
  55. package/lib/Store/index.js +27 -11
  56. package/lib/Store/make-cache-manager-store.js +14 -15
  57. package/lib/Store/make-in-memory-store.js +28 -24
  58. package/lib/Types/LabelAssociation.js +2 -2
  59. package/lib/Types/Message.js +6 -6
  60. package/lib/Types/MexUpdates.js +5 -4
  61. package/lib/Types/State.js +4 -4
  62. package/lib/Types/index.js +28 -12
  63. package/lib/Utils/auth-utils.js +28 -26
  64. package/lib/Utils/baileys-event-stream.js +68 -69
  65. package/lib/Utils/business.js +63 -53
  66. package/lib/Utils/chat-utils.js +81 -71
  67. package/lib/Utils/crypto.js +25 -45
  68. package/lib/Utils/decode-wa-message.js +319 -311
  69. package/lib/Utils/event-buffer.js +21 -22
  70. package/lib/Utils/generics.js +103 -73
  71. package/lib/Utils/history.js +21 -21
  72. package/lib/Utils/index.js +27 -13
  73. package/lib/Utils/link-preview.js +7 -30
  74. package/lib/Utils/logger.js +5 -5
  75. package/lib/Utils/lt-hash.js +3 -3
  76. package/lib/Utils/message-retry-manager.js +4 -4
  77. package/lib/Utils/messages-media.js +104 -109
  78. package/lib/Utils/messages.js +203 -171
  79. package/lib/Utils/noise-handler.js +28 -19
  80. package/lib/Utils/process-message.js +370 -136
  81. package/lib/Utils/signal.js +36 -25
  82. package/lib/Utils/use-multi-file-auth-state.js +18 -22
  83. package/lib/Utils/validate-connection.js +52 -45
  84. package/lib/WABinary/decode.js +6 -32
  85. package/lib/WABinary/encode.js +3 -29
  86. package/lib/WABinary/generic-utils.js +4 -4
  87. package/lib/WABinary/index.js +27 -11
  88. package/lib/WAM/encode.js +16 -8
  89. package/lib/WAM/index.js +27 -11
  90. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +20 -16
  91. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  92. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +7 -4
  93. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +2 -2
  94. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -2
  95. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +2 -2
  96. package/lib/WAUSync/Protocols/index.js +27 -11
  97. package/lib/WAUSync/USyncQuery.js +17 -10
  98. package/lib/WAUSync/index.js +27 -11
  99. package/lib/index.js +62 -37
  100. package/package.json +1 -1
  101. package/WAProto/index.d.ts +0 -55
  102. package/lib/index.d.ts +0 -13
@@ -1,61 +1,47 @@
1
1
  "use strict"
2
2
 
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ const __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
5
+
6
+ let desc = Object.getOwnPropertyDescriptor(m, k)
7
+
6
8
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
9
+ desc = {
10
+ enumerable: true,
11
+ get: function() {
12
+ return m[k]
13
+ }
14
+ }
8
15
  }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
16
 
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v })
17
- }) : function(o, v) {
18
- o["default"] = v
19
- })
17
+ Object.defineProperty(o, k2, desc)
20
18
 
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k
21
+ o[k2] = m[k]
36
22
  }
37
- })()
38
-
39
- Object.defineProperty(exports, "__esModule", { value: true })
40
- exports.keyhelper = exports.CiphertextMessage = exports.SenderChainKey = exports.SenderMessageKey = exports.SenderKeyMessage = exports.SenderKeyState = exports.GroupCipher = exports.SenderKeyName = exports.SenderKeyRecord = exports.SenderKeyDistributionMessage = exports.GroupSessionBuilder = void 0
41
- var group_session_builder_1 = require("./group-session-builder")
42
- Object.defineProperty(exports, "GroupSessionBuilder", { enumerable: true, get: function () { return group_session_builder_1.GroupSessionBuilder } })
43
- var sender_key_distribution_message_1 = require("./sender-key-distribution-message")
44
- Object.defineProperty(exports, "SenderKeyDistributionMessage", { enumerable: true, get: function () { return sender_key_distribution_message_1.SenderKeyDistributionMessage } })
45
- var sender_key_record_1 = require("./sender-key-record")
46
- Object.defineProperty(exports, "SenderKeyRecord", { enumerable: true, get: function () { return sender_key_record_1.SenderKeyRecord } })
47
- var sender_key_name_1 = require("./sender-key-name")
48
- Object.defineProperty(exports, "SenderKeyName", { enumerable: true, get: function () { return sender_key_name_1.SenderKeyName } })
49
- var group_cipher_1 = require("./group_cipher")
50
- Object.defineProperty(exports, "GroupCipher", { enumerable: true, get: function () { return group_cipher_1.GroupCipher } })
51
- var sender_key_state_1 = require("./sender-key-state")
52
- Object.defineProperty(exports, "SenderKeyState", { enumerable: true, get: function () { return sender_key_state_1.SenderKeyState } })
53
- var sender_key_message_1 = require("./sender-key-message")
54
- Object.defineProperty(exports, "SenderKeyMessage", { enumerable: true, get: function () { return sender_key_message_1.SenderKeyMessage } })
55
- var sender_message_key_1 = require("./sender-message-key")
56
- Object.defineProperty(exports, "SenderMessageKey", { enumerable: true, get: function () { return sender_message_key_1.SenderMessageKey } })
57
- var sender_chain_key_1 = require("./sender-chain-key")
58
- Object.defineProperty(exports, "SenderChainKey", { enumerable: true, get: function () { return sender_chain_key_1.SenderChainKey } })
59
- var ciphertext_message_1 = require("./ciphertext-message")
60
- Object.defineProperty(exports, "CiphertextMessage", { enumerable: true, get: function () { return ciphertext_message_1.CiphertextMessage } })
61
- exports.keyhelper = __importStar(require("./keyhelper"))
23
+ ))
24
+
25
+ const __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) {
27
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
28
+ __createBinding(exports, m, p)
29
+ }
30
+ }
31
+ }
32
+
33
+ Object.defineProperty(exports, "__esModule", {
34
+ value: true
35
+ })
36
+
37
+ __exportStar(require("./ciphertext-message"), exports)
38
+ __exportStar(require("./group-session-builder"), exports)
39
+ __exportStar(require("./group_cipher"), exports)
40
+ __exportStar(require("./keyhelper"), exports)
41
+ __exportStar(require("./sender-chain-key"), exports)
42
+ __exportStar(require("./sender-key-distribution-message"), exports)
43
+ __exportStar(require("./sender-key-message"), exports)
44
+ __exportStar(require("./sender-key-name"), exports)
45
+ __exportStar(require("./sender-key-record"), exports)
46
+ __exportStar(require("./sender-key-state"), exports)
47
+ __exportStar(require("./sender-message-key"), exports)
@@ -1,57 +1,24 @@
1
1
  "use strict"
2
2
 
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
8
- }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
-
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v })
17
- }) : function(o, v) {
18
- o["default"] = v
19
- })
20
-
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
36
- }
37
- })()
38
-
39
3
  Object.defineProperty(exports, "__esModule", { value: true })
40
4
 
41
- const nodeCrypto = __importStar(require("crypto"))
42
- const curve_1 = require("libsignal-node/src/curve")
5
+ const {
6
+ randomInt,
7
+ randomBytes
8
+ } = require("crypto")
9
+ const { generateKeyPair } = require("libsignal-node/src/curve")
43
10
 
44
11
  function generateSenderKey() {
45
- return nodeCrypto.randomBytes(32)
12
+ return randomBytes(32)
46
13
  }
47
14
 
48
15
  function generateSenderKeyId() {
49
- return nodeCrypto.randomInt(2147483647)
16
+ return randomInt(2147483647)
50
17
  }
51
18
 
52
19
  function generateSenderSigningKey(key) {
53
20
  if (!key) {
54
- key = curve_1.generateKeyPair()
21
+ key = generateKeyPair()
55
22
  }
56
23
  return {
57
24
  public: Buffer.from(key.pubKey),
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const crypto_1 = require("libsignal-node/src/crypto")
6
- const sender_message_key_1 = require("./sender-message-key")
5
+ const { calculateMAC } = require("libsignal-node/src/crypto")
6
+ const { SenderMessageKey } = require("./sender-message-key")
7
7
 
8
8
  class SenderChainKey {
9
9
  constructor(iteration, chainKey) {
@@ -29,7 +29,7 @@ class SenderChainKey {
29
29
  return this.iteration
30
30
  }
31
31
  getSenderMessageKey() {
32
- return new sender_message_key_1.SenderMessageKey(this.iteration, this.getDerivative(this.MESSAGE_KEY_SEED, this.chainKey))
32
+ return new SenderMessageKey(this.iteration, this.getDerivative(this.MESSAGE_KEY_SEED, this.chainKey))
33
33
  }
34
34
  getNext() {
35
35
  return new SenderChainKey(this.iteration + 1, this.getDerivative(this.CHAIN_KEY_SEED, this.chainKey))
@@ -38,7 +38,7 @@ class SenderChainKey {
38
38
  return this.chainKey
39
39
  }
40
40
  getDerivative(seed, key) {
41
- return (0, crypto_1.calculateMAC)(key, seed)
41
+ return calculateMAC(key, seed)
42
42
  }
43
43
  }
44
44
 
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const WAProto_1 = require("../../../WAProto")
6
- const ciphertext_message_1 = require("./ciphertext-message")
5
+ const { proto } = require("../../../WAProto")
6
+ const { CiphertextMessage } = require("./ciphertext-message")
7
7
 
8
- class SenderKeyDistributionMessage extends ciphertext_message_1.CiphertextMessage {
8
+ class SenderKeyDistributionMessage extends CiphertextMessage {
9
9
  constructor(id, iteration, chainKey, signatureKey, serialized) {
10
10
  super()
11
11
  if (serialized) {
12
12
  try {
13
13
  const message = serialized.slice(1)
14
- const distributionMessage = WAProto_1.proto.SenderKeyDistributionMessage.decode(message).toJSON()
14
+ const distributionMessage = proto.SenderKeyDistributionMessage.decode(message).toJSON()
15
15
  this.serialized = serialized
16
16
  this.id = distributionMessage.id
17
17
  this.iteration = distributionMessage.iteration
@@ -34,7 +34,7 @@ class SenderKeyDistributionMessage extends ciphertext_message_1.CiphertextMessag
34
34
  this.iteration = iteration
35
35
  this.chainKey = chainKey
36
36
  this.signatureKey = signatureKey
37
- const message = WAProto_1.proto.SenderKeyDistributionMessage.encode(WAProto_1.proto.SenderKeyDistributionMessage.create({
37
+ const message = proto.SenderKeyDistributionMessage.encode(proto.SenderKeyDistributionMessage.create({
38
38
  id,
39
39
  iteration,
40
40
  chainKey,
@@ -1,11 +1,15 @@
1
1
  "use strict"
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true })
3
4
 
4
- const curve_1 = require("libsignal-node/src/curve")
5
- const WAProto_1 = require("../../../WAProto")
6
- const ciphertext_message_1 = require("./ciphertext-message")
5
+ const {
6
+ verifySignature,
7
+ calculateSignature
8
+ } = require("libsignal-node/src/curve")
9
+ const { proto } = require("../../../WAProto")
10
+ const { CiphertextMessage } = require("./ciphertext-message")
7
11
 
8
- class SenderKeyMessage extends ciphertext_message_1.CiphertextMessage {
12
+ class SenderKeyMessage extends CiphertextMessage {
9
13
  constructor(keyId, iteration, ciphertext, signatureKey, serialized) {
10
14
  super()
11
15
  this.SIGNATURE_LENGTH = 64
@@ -13,7 +17,7 @@ class SenderKeyMessage extends ciphertext_message_1.CiphertextMessage {
13
17
  const version = serialized[0]
14
18
  const message = serialized.slice(1, serialized.length - this.SIGNATURE_LENGTH)
15
19
  const signature = serialized.slice(-1 * this.SIGNATURE_LENGTH)
16
- const senderKeyMessage = WAProto_1.proto.SenderKeyMessage.decode(message).toJSON()
20
+ const senderKeyMessage = proto.SenderKeyMessage.decode(message).toJSON()
17
21
  this.serialized = serialized
18
22
  this.messageVersion = (version & 0xff) >> 4
19
23
  this.keyId = senderKeyMessage.id
@@ -27,7 +31,7 @@ class SenderKeyMessage extends ciphertext_message_1.CiphertextMessage {
27
31
  else {
28
32
  const version = (((this.CURRENT_VERSION << 4) | this.CURRENT_VERSION) & 0xff) % 256
29
33
  const ciphertextBuffer = Buffer.from(ciphertext)
30
- const message = WAProto_1.proto.SenderKeyMessage.encode(WAProto_1.proto.SenderKeyMessage.create({
34
+ const message = proto.SenderKeyMessage.encode(proto.SenderKeyMessage.create({
31
35
  id: keyId,
32
36
  iteration: iteration,
33
37
  ciphertext: ciphertextBuffer
@@ -53,12 +57,12 @@ class SenderKeyMessage extends ciphertext_message_1.CiphertextMessage {
53
57
  verifySignature(signatureKey) {
54
58
  const part1 = this.serialized.slice(0, this.serialized.length - this.SIGNATURE_LENGTH)
55
59
  const part2 = this.serialized.slice(-1 * this.SIGNATURE_LENGTH)
56
- const res = curve_1.verifySignature(signatureKey, part1, part2)
60
+ const res = verifySignature(signatureKey, part1, part2)
57
61
  if (!res)
58
62
  throw new Error('Invalid signature!')
59
63
  }
60
64
  getSignature(signatureKey, serialized) {
61
- return Buffer.from(curve_1.calculateSignature(signatureKey, serialized))
65
+ return Buffer.from(calculateSignature(signatureKey, serialized))
62
66
  }
63
67
  serialize() {
64
68
  return this.serialized
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const sender_chain_key_1 = require("./sender-chain-key")
6
- const sender_message_key_1 = require("./sender-message-key")
5
+ const { SenderChainKey } = require("./sender-chain-key")
6
+ const { SenderMessageKey } = require("./sender-message-key")
7
7
 
8
8
  class SenderKeyState {
9
9
  constructor(id, iteration, chainKey, signatureKeyPair, signatureKeyPublic, signatureKeyPrivate, senderKeyStateStructure) {
@@ -56,7 +56,7 @@ class SenderKeyState {
56
56
  return this.senderKeyStateStructure.senderKeyId
57
57
  }
58
58
  getSenderChainKey() {
59
- return new sender_chain_key_1.SenderChainKey(this.senderKeyStateStructure.senderChainKey.iteration, this.senderKeyStateStructure.senderChainKey.seed)
59
+ return new SenderChainKey(this.senderKeyStateStructure.senderChainKey.iteration, this.senderKeyStateStructure.senderChainKey.seed)
60
60
  }
61
61
  setSenderChainKey(chainKey) {
62
62
  this.senderKeyStateStructure.senderChainKey = {
@@ -133,7 +133,7 @@ class SenderKeyState {
133
133
  if (index !== -1) {
134
134
  const messageKey = this.senderKeyStateStructure.senderMessageKeys[index]
135
135
  this.senderKeyStateStructure.senderMessageKeys.splice(index, 1)
136
- return new sender_message_key_1.SenderMessageKey(messageKey.iteration, messageKey.seed)
136
+ return new SenderMessageKey(messageKey.iteration, messageKey.seed)
137
137
  }
138
138
  return null
139
139
  }
@@ -1,11 +1,11 @@
1
1
  "use strict"
2
2
  Object.defineProperty(exports, "__esModule", { value: true })
3
3
 
4
- const crypto_1 = require("libsignal-node/src/crypto")
4
+ const { deriveSecrets } = require("libsignal-node/src/crypto")
5
5
 
6
6
  class SenderMessageKey {
7
7
  constructor(iteration, seed) {
8
- const derivative = (0, crypto_1.deriveSecrets)(seed, Buffer.alloc(32), Buffer.from('WhisperGroup'))
8
+ const derivative = deriveSecrets(seed, Buffer.alloc(32), Buffer.from('WhisperGroup'))
9
9
  const keys = new Uint8Array(32)
10
10
  keys.set(new Uint8Array(derivative[0].slice(16)))
11
11
  keys.set(new Uint8Array(derivative[1].slice(0, 16)), 16)
@@ -1,53 +1,29 @@
1
1
  "use strict"
2
2
 
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
8
- }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
-
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v })
17
- }) : function(o, v) {
18
- o["default"] = v
19
- })
20
-
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
36
- }
37
- })()
38
-
39
3
  Object.defineProperty(exports, "__esModule", { value: true })
40
4
 
41
- const libsignal = __importStar(require("libsignal-node"))
42
- const Utils_1 = require("../Utils")
43
- const WABinary_1 = require("../WABinary")
44
- const sender_key_name_1 = require("./Group/sender-key-name")
45
- const sender_key_record_1 = require("./Group/sender-key-record")
46
- const Group_1 = require("./Group")
47
- const LIDMappingStore_1 = require("./lid-mapping")
5
+ const {
6
+ SessionCipher,
7
+ SessionBuilder,
8
+ SessionRecord,
9
+ ProtocolAddress
10
+ } = require("libsignal-node")
11
+ const { generateSignalPubKey } = require("../Utils")
12
+ const {
13
+ jidDecode,
14
+ transferDevice
15
+ } = require("../WABinary")
16
+ const { SenderKeyName } = require("./Group/sender-key-name")
17
+ const { SenderKeyRecord } = require("./Group/sender-key-record")
18
+ const {
19
+ GroupCipher,
20
+ GroupSessionBuilder,
21
+ SenderKeyDistributionMessage
22
+ } = require("./Group")
23
+ const { LIDMappingStore } = require("./lid-mapping")
48
24
 
49
25
  function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
50
- const lidMapping = new LIDMappingStore_1.LIDMappingStore(auth.keys, onWhatsAppFunc, logger)
26
+ const lidMapping = new LIDMappingStore(auth.keys, onWhatsAppFunc, logger)
51
27
  const storage = signalStorage(auth, lidMapping)
52
28
  const parsedKeys = auth.keys
53
29
 
@@ -63,35 +39,35 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
63
39
  const repository = {
64
40
  decryptGroupMessage({ group, authorJid, msg }) {
65
41
  const senderName = jidToSignalSenderKeyName(group, authorJid)
66
- const cipher = new Group_1.GroupCipher(storage, senderName)
42
+ const cipher = new GroupCipher(storage, senderName)
67
43
  // Use transaction to ensure atomicity
68
44
  return parsedKeys.transaction(async () => {
69
45
  return cipher.decrypt(msg)
70
46
  }, group)
71
47
  },
72
48
  async processSenderKeyDistributionMessage({ item, authorJid }) {
73
- const builder = new Group_1.GroupSessionBuilder(storage)
49
+ const builder = new GroupSessionBuilder(storage)
74
50
  if (!item.groupId) {
75
51
  throw new Error('Group ID is required for sender key distribution message')
76
52
  }
77
53
  const senderName = jidToSignalSenderKeyName(item.groupId, authorJid)
78
- const senderMsg = new Group_1.SenderKeyDistributionMessage(null, null, null, null, item.axolotlSenderKeyDistributionMessage)
54
+ const senderMsg = new SenderKeyDistributionMessage(null, null, null, null, item.axolotlSenderKeyDistributionMessage)
79
55
  const senderNameStr = senderName.toString()
80
56
  const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr])
81
57
  if (!senderKey) {
82
- await storage.storeSenderKey(senderName, new sender_key_record_1.SenderKeyRecord())
58
+ await storage.storeSenderKey(senderName, new SenderKeyRecord())
83
59
  }
84
60
  return parsedKeys.transaction(async () => {
85
61
  const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr])
86
62
  if (!senderKey) {
87
- await storage.storeSenderKey(senderName, new sender_key_record_1.SenderKeyRecord())
63
+ await storage.storeSenderKey(senderName, new SenderKeyRecord())
88
64
  }
89
65
  await builder.process(senderName, senderMsg)
90
66
  }, item.groupId)
91
67
  },
92
68
  async decryptMessage({ jid, type, ciphertext }) {
93
69
  const addr = jidToSignalProtocolAddress(jid)
94
- const session = new libsignal.SessionCipher(storage, addr)
70
+ const session = new SessionCipher(storage, addr)
95
71
  async function doDecrypt() {
96
72
  let result
97
73
  switch (type) {
@@ -141,7 +117,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
141
117
  }
142
118
  }
143
119
  const addr = jidToSignalProtocolAddress(encryptionJid)
144
- const cipher = new libsignal.SessionCipher(storage, addr)
120
+ const cipher = new SessionCipher(storage, addr)
145
121
  // Use transaction to ensure atomicity
146
122
  return parsedKeys.transaction(async () => {
147
123
  const { type: sigType, body } = await cipher.encrypt(data)
@@ -151,15 +127,15 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
151
127
  },
152
128
  async encryptGroupMessage({ group, meId, data }) {
153
129
  const senderName = jidToSignalSenderKeyName(group, meId)
154
- const builder = new Group_1.GroupSessionBuilder(storage)
130
+ const builder = new GroupSessionBuilder(storage)
155
131
  const senderNameStr = senderName.toString()
156
132
  return parsedKeys.transaction(async () => {
157
133
  const { [senderNameStr]: senderKey } = await auth.keys.get('sender-key', [senderNameStr])
158
134
  if (!senderKey) {
159
- await storage.storeSenderKey(senderName, new sender_key_record_1.SenderKeyRecord())
135
+ await storage.storeSenderKey(senderName, new SenderKeyRecord())
160
136
  }
161
137
  const senderKeyDistributionMessage = await builder.create(senderName)
162
- const session = new Group_1.GroupCipher(storage, senderName)
138
+ const session = new GroupCipher(storage, senderName)
163
139
  const ciphertext = await session.encrypt(data)
164
140
  return {
165
141
  ciphertext,
@@ -168,7 +144,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
168
144
  }, group)
169
145
  },
170
146
  async injectE2ESession({ jid, session }) {
171
- const cipher = new libsignal.SessionBuilder(storage, jidToSignalProtocolAddress(jid))
147
+ const cipher = new SessionBuilder(storage, jidToSignalProtocolAddress(jid))
172
148
  return parsedKeys.transaction(async () => {
173
149
  await cipher.initOutgoing(session)
174
150
  }, jid)
@@ -224,7 +200,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
224
200
  return parsedKeys.transaction(async () => {
225
201
  // 1. Batch store all LID mappings
226
202
  const mappings = validJids.map(jid => ({
227
- lid: WABinary_1.transferDevice(jid, toJid),
203
+ lid: transferDevice(jid, toJid),
228
204
  pn: jid
229
205
  }))
230
206
 
@@ -232,9 +208,9 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
232
208
 
233
209
  // 2. Prepare migration operations
234
210
  const migrationOps = validJids.map(jid => {
235
- const lidWithDevice = WABinary_1.transferDevice(jid, toJid)
236
- const fromDecoded = WABinary_1.jidDecode(jid)
237
- const toDecoded = WABinary_1.jidDecode(lidWithDevice)
211
+ const lidWithDevice = transferDevice(jid, toJid)
212
+ const fromDecoded = jidDecode(jid)
213
+ const toDecoded = jidDecode(lidWithDevice)
238
214
 
239
215
  return {
240
216
  fromJid: jid,
@@ -266,7 +242,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
266
242
  if (fromSession?.haveOpenSession()) {
267
243
  // Copy session to LID address
268
244
  const sessionBytes = fromSession.serialize()
269
- const copiedSession = libsignal.SessionRecord.deserialize(sessionBytes)
245
+ const copiedSession = SessionRecord.deserialize(sessionBytes)
270
246
  await storage.storeSession(op.toAddr.toString(), copiedSession)
271
247
 
272
248
  // Delete PN session
@@ -275,7 +251,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
275
251
  }))
276
252
 
277
253
  return { migrated: opsToMigrate.length, skipped: skippedCount, total: validJids.length }
278
- }, `migrate-${validJids.length}-sessions-${WABinary_1.jidDecode(toJid)?.user}`)
254
+ }, `migrate-${validJids.length}-sessions-${jidDecode(toJid)?.user}`)
279
255
  },
280
256
  async encryptMessageWithWire({ encryptionJid, wireJid, data }) {
281
257
  const result = await repository.encryptMessage({ jid: encryptionJid, data })
@@ -286,7 +262,7 @@ function makeLibSignalRepository(auth, onWhatsAppFunc, logger) {
286
262
  }
287
263
 
288
264
  const jidToSignalProtocolAddress = (jid) => {
289
- const decoded = WABinary_1.jidDecode(jid)
265
+ const decoded = jidDecode(jid)
290
266
  const { user, device, server } = decoded
291
267
 
292
268
  if (!user) {
@@ -297,11 +273,11 @@ const jidToSignalProtocolAddress = (jid) => {
297
273
  const signalUser = server === 'lid' ? `${user}_1` : user
298
274
  const finalDevice = device || 0
299
275
 
300
- return new libsignal.ProtocolAddress(signalUser, finalDevice)
276
+ return new ProtocolAddress(signalUser, finalDevice)
301
277
  }
302
278
 
303
279
  const jidToSignalSenderKeyName = (group, user) => {
304
- return new sender_key_name_1.SenderKeyName(group, jidToSignalProtocolAddress(user))
280
+ return new SenderKeyName(group, jidToSignalProtocolAddress(user))
305
281
  }
306
282
 
307
283
  function signalStorage({ creds, keys }, lidMapping) {
@@ -329,7 +305,7 @@ function signalStorage({ creds, keys }, lidMapping) {
329
305
  }
330
306
  const { [actualId]: sess } = await keys.get('session', [actualId])
331
307
  if (sess) {
332
- return libsignal.SessionRecord.deserialize(sess)
308
+ return SessionRecord.deserialize(sess)
333
309
  }
334
310
  }
335
311
  catch (e) {
@@ -337,7 +313,7 @@ function signalStorage({ creds, keys }, lidMapping) {
337
313
  }
338
314
  return null
339
315
  },
340
- // TODO: Replace with libsignal.SessionRecord when type exports are added to libsignal
316
+ // TODO: Replace with SessionRecord when type exports are added to libsignal
341
317
  storeSession: async (id, session) => {
342
318
  await keys.set({ session: { [id]: session.serialize() } })
343
319
  },
@@ -366,9 +342,9 @@ function signalStorage({ creds, keys }, lidMapping) {
366
342
  const keyId = senderKeyName.toString()
367
343
  const { [keyId]: key } = await keys.get('sender-key', [keyId])
368
344
  if (key) {
369
- return sender_key_record_1.SenderKeyRecord.deserialize(key)
345
+ return SenderKeyRecord.deserialize(key)
370
346
  }
371
- return new sender_key_record_1.SenderKeyRecord()
347
+ return new SenderKeyRecord()
372
348
  },
373
349
  storeSenderKey: async (senderKeyName, key) => {
374
350
  const keyId = senderKeyName.toString()
@@ -380,7 +356,7 @@ function signalStorage({ creds, keys }, lidMapping) {
380
356
  const { signedIdentityKey } = creds
381
357
  return {
382
358
  privKey: Buffer.from(signedIdentityKey.private),
383
- pubKey: Buffer.from(Utils_1.generateSignalPubKey(signedIdentityKey.public))
359
+ pubKey: Buffer.from(generateSignalPubKey(signedIdentityKey.public))
384
360
  }
385
361
  }
386
362
  }
@@ -2,12 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const lru_cache_1 = require("lru-cache")
6
- const WABinary_1 = require("../WABinary")
5
+ const { LRUCache } = require("lru-cache")
6
+ const {
7
+ jidDecode,
8
+ isJidUser,
9
+ isLidUser
10
+ } = require("../WABinary")
7
11
 
8
12
  class LIDMappingStore {
9
13
  constructor(keys, onWhatsAppFunc, logger) {
10
- this.mappingCache = new lru_cache_1.LRUCache({
14
+ this.mappingCache = new LRUCache({
11
15
  ttl: 7 * 24 * 60 * 60 * 1000, // 7 days
12
16
  ttlAutopurge: true,
13
17
  updateAgeOnGet: true
@@ -25,13 +29,13 @@ class LIDMappingStore {
25
29
  const logger = this.logger
26
30
 
27
31
  for (const { lid, pn } of pairs) {
28
- if (!((WABinary_1.isLidUser(lid) && WABinary_1.isJidUser(pn)) || (WABinary_1.isJidUser(lid) && WABinary_1.isLidUser(pn)))) {
32
+ if (!((isLidUser(lid) && isJidUser(pn)) || (isJidUser(lid) && isLidUser(pn)))) {
29
33
  logger.warn(`Invalid LID-PN mapping: ${lid}, ${pn}`)
30
34
  continue
31
35
  }
32
36
 
33
- const lidDecoded = WABinary_1.jidDecode(lid)
34
- const pnDecoded = WABinary_1.jidDecode(pn)
37
+ const lidDecoded = jidDecode(lid)
38
+ const pnDecoded = jidDecode(pn)
35
39
 
36
40
  if (!lidDecoded || !pnDecoded) return
37
41
 
@@ -83,10 +87,10 @@ class LIDMappingStore {
83
87
  * Get LID for PN - Returns device-specific LID based on user mapping
84
88
  */
85
89
  async getLIDForPN(pn) {
86
- if (!WABinary_1.isJidUser(pn)) return null
90
+ if (!isJidUser(pn)) return null
87
91
 
88
92
  const logger = this.logger
89
- const decoded = WABinary_1.jidDecode(pn)
93
+ const decoded = jidDecode(pn)
90
94
 
91
95
  if (!decoded) return null
92
96
 
@@ -113,7 +117,7 @@ class LIDMappingStore {
113
117
  const { exists, lid } = (await this.onWhatsAppFunc?.(pn))?.[0] // this function already adds LIDs to mapping
114
118
 
115
119
  if (exists && lid) {
116
- lidUser = WABinary_1.jidDecode(lid)?.user
120
+ lidUser = jidDecode(lid)?.user
117
121
 
118
122
  if (lidUser) {
119
123
  // Cache the USync result
@@ -144,10 +148,10 @@ class LIDMappingStore {
144
148
  * Get PN for LID - USER LEVEL with device construction
145
149
  */
146
150
  async getPNForLID(lid) {
147
- if (!WABinary_1.isLidUser(lid)) return null
151
+ if (!isLidUser(lid)) return null
148
152
 
149
153
  const logger = this.logger
150
- const decoded = WABinary_1.jidDecode(lid)
154
+ const decoded = jidDecode(lid)
151
155
 
152
156
  if (!decoded) return null
153
157
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const events_1 = require("events")
5
+ const { EventEmitter } = require("events")
6
6
 
7
- class AbstractSocketClient extends events_1.EventEmitter {
7
+ class AbstractSocketClient extends EventEmitter {
8
8
  constructor(url, config) {
9
9
  super()
10
10
  this.url = url