@badzz88/baileys 8.5.2 → 8.5.4

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 (110) hide show
  1. package/README.md +1 -1
  2. package/WAProto/WAProto.proto +1256 -75
  3. package/WAProto/index.d.ts +36042 -19649
  4. package/WAProto/index.js +181990 -135645
  5. package/engine-requirements.js +7 -15
  6. package/lib/Defaults/index.js +22 -17
  7. package/lib/Signal/Group/group_cipher.js +5 -5
  8. package/lib/Signal/Group/keyhelper.js +4 -4
  9. package/lib/Signal/Group/sender-chain-key.js +2 -2
  10. package/lib/Signal/Group/sender-key-distribution-message.js +1 -1
  11. package/lib/Signal/Group/sender-key-message.js +3 -3
  12. package/lib/Signal/Group/sender-key-record.js +1 -1
  13. package/lib/Signal/Group/sender-message-key.js +5 -5
  14. package/lib/Signal/libsignal.js +39 -59
  15. package/lib/Signal/lid-mapping.js +28 -10
  16. package/lib/Socket/aigroups.js +5 -5
  17. package/lib/Socket/business.js +3 -11
  18. package/lib/Socket/chats.js +668 -319
  19. package/lib/Socket/communities.js +85 -89
  20. package/lib/Socket/graphql.js +435 -228
  21. package/lib/Socket/groups.js +132 -211
  22. package/lib/Socket/index.js +9 -7
  23. package/lib/Socket/interactive-handler.js +117 -60
  24. package/lib/Socket/interop.js +56 -175
  25. package/lib/Socket/managed-account.js +79 -48
  26. package/lib/Socket/messages-recv.js +898 -340
  27. package/lib/Socket/messages-send.js +462 -160
  28. package/lib/Socket/mex.js +40 -53
  29. package/lib/Socket/newsletter.js +291 -291
  30. package/lib/Socket/privacy.js +77 -265
  31. package/lib/Socket/registration.js +164 -157
  32. package/lib/Socket/socket.js +181 -199
  33. package/lib/Socket/username.js +144 -227
  34. package/lib/Store/make-cache-manager-store.js +2 -2
  35. package/lib/Store/make-in-memory-store.js +25 -141
  36. package/lib/Types/Auth.js +3 -3
  37. package/lib/Types/Label.js +1 -1
  38. package/lib/Types/LabelAssociation.js +1 -1
  39. package/lib/Types/Newsletter.js +96 -65
  40. package/lib/Types/State.js +4 -4
  41. package/lib/Types/index.js +1 -1
  42. package/lib/Utils/auth-utils.js +52 -57
  43. package/lib/Utils/browser-utils.js +1 -1
  44. package/lib/Utils/business.js +2 -6
  45. package/lib/Utils/chat-utils.js +102 -38
  46. package/lib/Utils/crypto.js +54 -84
  47. package/lib/Utils/decode-wa-message.js +316 -83
  48. package/lib/Utils/event-buffer.js +37 -61
  49. package/lib/Utils/generics.js +157 -103
  50. package/lib/Utils/group-history.js +3 -12
  51. package/lib/Utils/history.js +15 -15
  52. package/lib/Utils/index.js +1 -5
  53. package/lib/Utils/link-preview.js +3 -8
  54. package/lib/Utils/lt-hash.js +2 -35
  55. package/lib/Utils/make-mutex.js +1 -1
  56. package/lib/Utils/message-inspect.js +393 -0
  57. package/lib/Utils/message-retry-manager.js +27 -92
  58. package/lib/Utils/messages-media.js +159 -130
  59. package/lib/Utils/messages.js +144 -566
  60. package/lib/Utils/meta-ai-msmsg.js +62 -202
  61. package/lib/Utils/noise-handler.js +19 -21
  62. package/lib/Utils/offline-node-processor.js +3 -8
  63. package/lib/Utils/pre-key-manager.js +13 -23
  64. package/lib/Utils/process-message.js +197 -106
  65. package/lib/Utils/reporting-utils.js +2 -2
  66. package/lib/Utils/signal.js +28 -63
  67. package/lib/Utils/stanza-ack.js +39 -12
  68. package/lib/Utils/sync-action-utils.js +4 -7
  69. package/lib/Utils/tc-token-utils.js +20 -25
  70. package/lib/Utils/use-multi-file-auth-state.js +30 -14
  71. package/lib/Utils/validate-connection.js +59 -19
  72. package/lib/WABinary/decode.js +50 -16
  73. package/lib/WABinary/encode.js +54 -224
  74. package/lib/WABinary/generic-utils.js +7 -97
  75. package/lib/WABinary/jid-utils.js +27 -14
  76. package/lib/WAM/encode.js +7 -7
  77. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +58 -1
  78. package/lib/WAUSync/Protocols/USyncContactProtocol.js +7 -1
  79. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +13 -5
  80. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -4
  81. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +20 -7
  82. package/lib/WAUSync/Protocols/USyncNewsletterProtocol.js +865 -0
  83. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +1 -1
  84. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +2 -2
  85. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +7 -2
  86. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +1 -1
  87. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +2 -1
  88. package/lib/WAUSync/Protocols/index.js +1 -0
  89. package/lib/WAUSync/USyncBackoff.js +26 -0
  90. package/lib/WAUSync/USyncQuery.js +77 -6
  91. package/lib/WAUSync/USyncUser.js +16 -8
  92. package/lib/WAUSync/index.js +1 -0
  93. package/lib/antiban.js +608 -854
  94. package/lib/index.js +3 -3
  95. package/package.json +16 -19
  96. package/lib/Socket/luxu.js +0 -387
  97. package/lib/Socket/text-router.js +0 -83
  98. package/lib/Store/keyed-db.js +0 -108
  99. package/lib/Types/Mex.js +0 -112
  100. package/lib/Utils/command-loader.d.ts +0 -31
  101. package/lib/Utils/command-loader.js +0 -100
  102. package/lib/Utils/companion-reg-client-utils.js +0 -42
  103. package/lib/Utils/curve25519-js.js +0 -275
  104. package/lib/Utils/native-bridge.js +0 -82
  105. package/lib/Utils/session-pool.d.ts +0 -16
  106. package/lib/Utils/session-pool.js +0 -94
  107. package/lib/Utils/sticker.d.ts +0 -17
  108. package/lib/Utils/sticker.js +0 -145
  109. package/lib/Utils/view-once-cache.d.ts +0 -9
  110. package/lib/Utils/view-once-cache.js +0 -79
@@ -14,11 +14,19 @@ class USyncDeviceProtocol {
14
14
  }
15
15
  }
16
16
  }
17
- getUserElement(/* user: USyncUser */) {
18
- //TODO: Implement device phashing, ts and expectedTs
19
- //TODO: if all are not present, return null <- current behavior
20
- //TODO: otherwise return a node w tag 'devices' w those as attrs
21
- return null
17
+ getUserElement(user) {
18
+ const { deviceHash, ts, expectedTs } = user
19
+ if (deviceHash == null && ts == null && expectedTs == null) {
20
+ return null
21
+ }
22
+ const attrs = {}
23
+ if (deviceHash != null) attrs.device_hash = deviceHash
24
+ if (ts != null) attrs.ts = String(ts)
25
+ if (expectedTs != null) attrs.expected_ts = String(expectedTs)
26
+ return {
27
+ tag: 'devices',
28
+ attrs
29
+ }
22
30
  }
23
31
  parser(node) {
24
32
  const deviceList = []
@@ -20,10 +20,7 @@ class USyncDisappearingModeProtocol {
20
20
  ;(0, WABinary_1.assertNodeErrorFree)(node)
21
21
  const duration = +node?.attrs.duration
22
22
  const setAt = new Date(+(node?.attrs.t || 0) * 1000)
23
- return {
24
- duration,
25
- setAt
26
- }
23
+ return { duration, setAt }
27
24
  }
28
25
  }
29
26
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, '__esModule', { value: true })
3
3
  exports.USyncFeatureProtocol = exports.USYNC_FEATURES = void 0
4
4
  const WABinary_1 = require('../../WABinary')
5
- // Device feature flags that can be queried, ported from WhatsApp Web's
6
- // WAWebUsyncFeature module.
5
+
6
+
7
7
  exports.USYNC_FEATURES = [
8
8
  'document',
9
9
  'encrypt',
@@ -15,12 +15,12 @@ exports.USYNC_FEATURES = [
15
15
  'encrypt_url',
16
16
  'encrypt_v2',
17
17
  'voip',
18
- 'multi_agent'
18
+ 'voip_legacy',
19
+ 'multi_agent',
20
+ 'bot_eligible'
19
21
  ]
20
22
  class USyncFeatureProtocol {
21
- /**
22
- * @param {string[]} [features] feature names to query (defaults to all known)
23
- */
23
+
24
24
  constructor(features) {
25
25
  this.name = 'feature'
26
26
  this.features = features && features.length ? features : exports.USYNC_FEATURES
@@ -46,11 +46,24 @@ class USyncFeatureProtocol {
46
46
  errorText: errorNode.attrs?.text
47
47
  }
48
48
  }
49
+ const CAMEL_MAP = {
50
+ encrypt_v2: 'encryptV2',
51
+ voip_legacy: 'voipLegacy',
52
+ multi_agent: 'multiAgent',
53
+ bot_eligible: 'botEligible',
54
+ encrypt_blist: 'encryptBlist',
55
+ encrypt_contact: 'encryptContact',
56
+ encrypt_group_gen2: 'encryptGroupGen2',
57
+ encrypt_image: 'encryptImage',
58
+ encrypt_location: 'encryptLocation',
59
+ encrypt_url: 'encryptUrl'
60
+ }
49
61
  const features = {}
50
62
  const children = Array.isArray(node.content) ? node.content : []
51
63
  for (const child of children) {
52
64
  if (child?.attrs && child.attrs.value !== undefined) {
53
- features[child.tag] = child.attrs.value
65
+ const key = CAMEL_MAP[child.tag] || child.tag
66
+ features[key] = child.attrs.value
54
67
  }
55
68
  }
56
69
  return features