@celestial-community/baileys 0.0.1-security → 1.0.0

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.

Potentially problematic release.


This version of @celestial-community/baileys might be problematic. Click here for more details.

Files changed (175) hide show
  1. package/WAProto/index.js +138933 -0
  2. package/engine-requirements.js +10 -0
  3. package/lib/Defaults/baileys-version.json +7 -0
  4. package/lib/Defaults/index.js +157 -0
  5. package/lib/Defaults/phonenumber-mcc.json +223 -0
  6. package/lib/Signal/Group/ciphertext-message.js +15 -0
  7. package/lib/Signal/Group/group-session-builder.js +94 -0
  8. package/lib/Signal/Group/group_cipher.js +118 -0
  9. package/lib/Signal/Group/index.js +138 -0
  10. package/lib/Signal/Group/keyhelper.js +75 -0
  11. package/lib/Signal/Group/queue-job.js +54 -0
  12. package/lib/Signal/Group/sender-chain-key.js +39 -0
  13. package/lib/Signal/Group/sender-key-distribution-message.js +71 -0
  14. package/lib/Signal/Group/sender-key-message.js +76 -0
  15. package/lib/Signal/Group/sender-key-name.js +50 -0
  16. package/lib/Signal/Group/sender-key-record.js +65 -0
  17. package/lib/Signal/Group/sender-key-state.js +114 -0
  18. package/lib/Signal/Group/sender-message-key.js +33 -0
  19. package/lib/Signal/libsignal.js +204 -0
  20. package/lib/Signal/lid-mapping.js +267 -0
  21. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  22. package/lib/Socket/Client/index.js +32 -0
  23. package/lib/Socket/Client/mobile-socket-client.js +82 -0
  24. package/lib/Socket/Client/web-socket-client.js +89 -0
  25. package/lib/Socket/Denzy-ZeroDay.js +805 -0
  26. package/lib/Socket/business.js +279 -0
  27. package/lib/Socket/chats.js +1169 -0
  28. package/lib/Socket/community.d.ts +120 -0
  29. package/lib/Socket/community.js +388 -0
  30. package/lib/Socket/graphql.js +1122 -0
  31. package/lib/Socket/groups.js +345 -0
  32. package/lib/Socket/index.js +22 -0
  33. package/lib/Socket/interop.js +265 -0
  34. package/lib/Socket/lid-mapping.js +111 -0
  35. package/lib/Socket/messages-recv.js +1385 -0
  36. package/lib/Socket/messages-send.js +956 -0
  37. package/lib/Socket/mex.js +69 -0
  38. package/lib/Socket/newsletter.js +424 -0
  39. package/lib/Socket/privacy.js +229 -0
  40. package/lib/Socket/registration.js +190 -0
  41. package/lib/Socket/socket.js +783 -0
  42. package/lib/Socket/username.d.ts +185 -0
  43. package/lib/Socket/username.js +168 -0
  44. package/lib/Socket/usync.js +80 -0
  45. package/lib/Store/index.js +14 -0
  46. package/lib/Store/keyed-db.js +158 -0
  47. package/lib/Store/make-cache-manager-store.js +88 -0
  48. package/lib/Store/make-in-memory-store.js +484 -0
  49. package/lib/Store/make-ordered-dictionary.js +78 -0
  50. package/lib/Store/object-repository.js +27 -0
  51. package/lib/Types/Auth.js +2 -0
  52. package/lib/Types/Call.js +2 -0
  53. package/lib/Types/Chat.js +10 -0
  54. package/lib/Types/Contact.js +2 -0
  55. package/lib/Types/Events.js +2 -0
  56. package/lib/Types/GroupMetadata.js +2 -0
  57. package/lib/Types/Label.js +27 -0
  58. package/lib/Types/LabelAssociation.js +9 -0
  59. package/lib/Types/Message.js +14 -0
  60. package/lib/Types/MexUpdates.js +19 -0
  61. package/lib/Types/Newsletter.js +38 -0
  62. package/lib/Types/Product.js +2 -0
  63. package/lib/Types/RichType.js +30 -0
  64. package/lib/Types/Signal.js +2 -0
  65. package/lib/Types/Socket.js +2 -0
  66. package/lib/Types/State.js +2 -0
  67. package/lib/Types/USync.js +2 -0
  68. package/lib/Types/index.js +58 -0
  69. package/lib/Utils/anti-ban.js +339 -0
  70. package/lib/Utils/anti-delete.d.ts +158 -0
  71. package/lib/Utils/anti-delete.js +293 -0
  72. package/lib/Utils/antiban-presets.js +91 -0
  73. package/lib/Utils/antiban-profiles.js +43 -0
  74. package/lib/Utils/auth-utils.js +210 -0
  75. package/lib/Utils/baileys-event-stream.js +66 -0
  76. package/lib/Utils/browser-utils.js +52 -0
  77. package/lib/Utils/business.js +261 -0
  78. package/lib/Utils/chat-control.d.ts +113 -0
  79. package/lib/Utils/chat-control.js +230 -0
  80. package/lib/Utils/chat-utils.js +922 -0
  81. package/lib/Utils/companion-reg-client-utils.js +37 -0
  82. package/lib/Utils/contact-graph-warmer.js +208 -0
  83. package/lib/Utils/crypto.js +196 -0
  84. package/lib/Utils/decode-wa-message.js +208 -0
  85. package/lib/Utils/delivery-tracker.js +110 -0
  86. package/lib/Utils/device-fingerprint.js +135 -0
  87. package/lib/Utils/event-buffer.js +531 -0
  88. package/lib/Utils/generics.js +571 -0
  89. package/lib/Utils/group-operation-guard.js +147 -0
  90. package/lib/Utils/health-monitor.js +207 -0
  91. package/lib/Utils/history.js +122 -0
  92. package/lib/Utils/human-entropy.js +226 -0
  93. package/lib/Utils/identity-change-handler.js +72 -0
  94. package/lib/Utils/index.js +83 -0
  95. package/lib/Utils/interactive-message.d.ts +139 -0
  96. package/lib/Utils/interactive-message.js +273 -0
  97. package/lib/Utils/legitimacy-signal-injector.js +180 -0
  98. package/lib/Utils/link-preview.js +106 -0
  99. package/lib/Utils/logger.d.ts +13 -0
  100. package/lib/Utils/logger.js +9 -0
  101. package/lib/Utils/lt-hash.js +54 -0
  102. package/lib/Utils/make-mutex.js +41 -0
  103. package/lib/Utils/message-composer.d.ts +106 -0
  104. package/lib/Utils/message-composer.js +721 -0
  105. package/lib/Utils/message-retry-manager.d.ts +88 -0
  106. package/lib/Utils/message-retry-manager.js +160 -0
  107. package/lib/Utils/message-search.d.ts +52 -0
  108. package/lib/Utils/message-search.js +226 -0
  109. package/lib/Utils/messages-media.js +899 -0
  110. package/lib/Utils/messages.js +2698 -0
  111. package/lib/Utils/noise-handler.js +175 -0
  112. package/lib/Utils/offline-node-processor.js +45 -0
  113. package/lib/Utils/pre-key-manager.js +131 -0
  114. package/lib/Utils/presence-choreographer.js +438 -0
  115. package/lib/Utils/process-message.js +423 -0
  116. package/lib/Utils/rate-limiter.js +232 -0
  117. package/lib/Utils/reconnect-throttle.js +157 -0
  118. package/lib/Utils/reply-ratio-guard.js +137 -0
  119. package/lib/Utils/reporting-utils.js +307 -0
  120. package/lib/Utils/retry-reason-tracker.js +140 -0
  121. package/lib/Utils/rich-message-utils.d.ts +48 -0
  122. package/lib/Utils/rich-message-utils.js +400 -0
  123. package/lib/Utils/rich-response-utils.js +461 -0
  124. package/lib/Utils/scheduling.d.ts +135 -0
  125. package/lib/Utils/scheduling.js +246 -0
  126. package/lib/Utils/session-fingerprint.js +226 -0
  127. package/lib/Utils/session-stability.js +224 -0
  128. package/lib/Utils/signal.js +188 -0
  129. package/lib/Utils/stanza-ack.js +38 -0
  130. package/lib/Utils/state-manager.js +91 -0
  131. package/lib/Utils/status-posting.d.ts +81 -0
  132. package/lib/Utils/status-posting.js +187 -0
  133. package/lib/Utils/stealth-connect.js +124 -0
  134. package/lib/Utils/sync-action-utils.js +55 -0
  135. package/lib/Utils/tc-token-utils.js +171 -0
  136. package/lib/Utils/templates.d.ts +54 -0
  137. package/lib/Utils/templates.js +244 -0
  138. package/lib/Utils/timelock-guard.js +162 -0
  139. package/lib/Utils/use-mongo-file-auth-state.d.ts +6 -0
  140. package/lib/Utils/use-mongo-file-auth-state.js +81 -0
  141. package/lib/Utils/use-multi-file-auth-state.js +125 -0
  142. package/lib/Utils/use-single-file-auth-state.d.ts +13 -0
  143. package/lib/Utils/use-single-file-auth-state.js +86 -0
  144. package/lib/Utils/use-sqlite-auth-state.js +187 -0
  145. package/lib/Utils/vCard.d.ts +71 -0
  146. package/lib/Utils/vCard.js +196 -0
  147. package/lib/Utils/validate-connection.js +253 -0
  148. package/lib/Utils/warmup.js +154 -0
  149. package/lib/WABinary/constants.js +1303 -0
  150. package/lib/WABinary/decode.js +270 -0
  151. package/lib/WABinary/encode.js +279 -0
  152. package/lib/WABinary/generic-utils.js +223 -0
  153. package/lib/WABinary/index.js +34 -0
  154. package/lib/WABinary/jid-utils.js +84 -0
  155. package/lib/WABinary/types.js +2 -0
  156. package/lib/WAM/BinaryInfo.js +13 -0
  157. package/lib/WAM/constants.js +15254 -0
  158. package/lib/WAM/encode.js +149 -0
  159. package/lib/WAM/index.js +32 -0
  160. package/lib/WAUSync/Protocols/USyncContactProtocol.js +37 -0
  161. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +71 -0
  162. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +32 -0
  163. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +49 -0
  164. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +23 -0
  165. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +58 -0
  166. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +24 -0
  167. package/lib/WAUSync/Protocols/index.js +34 -0
  168. package/lib/WAUSync/USyncQuery.js +99 -0
  169. package/lib/WAUSync/USyncUser.js +26 -0
  170. package/lib/WAUSync/USyncUsernameProtocol.d.ts +9 -0
  171. package/lib/WAUSync/USyncUsernameProtocol.js +37 -0
  172. package/lib/WAUSync/index.js +32 -0
  173. package/lib/index.js +59 -0
  174. package/package.json +105 -5
  175. package/README.md +0 -5
@@ -0,0 +1,111 @@
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.attachLidMapping = void 0
4
+
5
+ const lid_mapping_1 = require('../Signal/lid-mapping')
6
+ const WAUSync_1 = require('../WAUSync')
7
+ const WABinary_1 = require('../WABinary')
8
+
9
+ const isPnJid = (jid) => typeof jid === 'string' && jid.endsWith('@s.whatsapp.net')
10
+ const isLidJid = (jid) => typeof jid === 'string' && jid.endsWith('@lid')
11
+
12
+ /**
13
+ * LID <-> PN helpers, on demand.
14
+ *
15
+ * - Always available, but lazy: nothing is created, listened to or written until
16
+ * one of the helpers is called. A bot that never calls them (JID only) behaves
17
+ * exactly like before.
18
+ * - config.enableLidMapping = true additionally learns mappings passively from
19
+ * events that already exist (never touches decode / send / session code).
20
+ *
21
+ * API: sock.getLIDForPN / getPNForLID / getLIDsForPNs / getPNsForLIDs /
22
+ * storeLIDPNMappings / normalizeJid(jid, 'pn' | 'lid') / sock.lidMapping
23
+ * (also exposed as sock.signalRepository.lidMapping, same shape as baileys master)
24
+ */
25
+ const attachLidMapping = (sock, config) => {
26
+ const logger = config.logger
27
+ let store = null
28
+
29
+ const pnToLIDFunc = async (jids) => {
30
+ const query = new WAUSync_1.USyncQuery().withLIDProtocol().withContext('background')
31
+ for (const jid of jids) {
32
+ if (isLidJid(jid)) continue
33
+ query.withUser(new WAUSync_1.USyncUser().withId(jid))
34
+ }
35
+ if (query.users.length === 0) return []
36
+ const results = await sock.executeUSyncQuery(query)
37
+ if (!results) return []
38
+ return results.list.filter((a) => !!a.lid).map(({ lid, id }) => ({ pn: id, lid }))
39
+ }
40
+
41
+ const getStore = () => {
42
+ if (store) return store
43
+ store = new lid_mapping_1.LIDMappingStore(sock.authState.keys, logger, pnToLIDFunc)
44
+ const end = sock.end
45
+ sock.end = (error) => {
46
+ try {
47
+ store.close()
48
+ } catch (_) {}
49
+ return end(error)
50
+ }
51
+ return store
52
+ }
53
+
54
+ const safeStore = (pairs) =>
55
+ getStore()
56
+ .storeLIDPNMappings(pairs)
57
+ .catch((err) => logger?.warn?.({ err }, 'failed to store LID mapping'))
58
+
59
+ // lookups: lazy store, never throw into the caller's flow
60
+ sock.getLIDForPN = (pn) => getStore().getLIDForPN(pn)
61
+ sock.getPNForLID = (lid) => getStore().getPNForLID(lid)
62
+ sock.getLIDsForPNs = (pns) => getStore().getLIDsForPNs(pns)
63
+ sock.getPNsForLIDs = (lids) => getStore().getPNsForLIDs(lids)
64
+ sock.storeLIDPNMappings = (pairs) => getStore().storeLIDPNMappings(pairs)
65
+
66
+ /** Convert a jid to the wanted form. Unknown or already-correct jids are returned unchanged. */
67
+ sock.normalizeJid = async (jid, to = 'pn') => {
68
+ try {
69
+ if (to === 'pn' && isLidJid(jid)) return (await getStore().getPNForLID(jid)) || jid
70
+ if (to === 'lid' && isPnJid(jid)) return (await getStore().getLIDForPN(jid)) || jid
71
+ } catch (err) {
72
+ logger?.warn?.({ err }, 'normalizeJid failed')
73
+ }
74
+ return jid
75
+ }
76
+
77
+ Object.defineProperty(sock, 'lidMapping', { get: getStore, enumerable: false, configurable: true })
78
+ try {
79
+ if (sock.signalRepository && !('lidMapping' in sock.signalRepository)) {
80
+ Object.defineProperty(sock.signalRepository, 'lidMapping', {
81
+ get: getStore,
82
+ enumerable: false,
83
+ configurable: true
84
+ })
85
+ }
86
+ } catch (_) {}
87
+
88
+ // passive learning, opt-in only
89
+ if (config.enableLidMapping) {
90
+ sock.ev.on('chats.phoneNumberShare', ({ lid, jid }) => {
91
+ if (lid && jid) safeStore([{ lid, pn: jid }])
92
+ })
93
+ sock.ev.on('lid-mapping.update', (pair) => {
94
+ if (pair?.lid && pair?.pn) safeStore([{ lid: pair.lid, pn: pair.pn }])
95
+ })
96
+ sock.ev.on('connection.update', ({ connection }) => {
97
+ if (connection !== 'open') return
98
+ const me = sock.authState.creds.me
99
+ if (me?.id && me?.lid) {
100
+ safeStore([
101
+ {
102
+ pn: (0, WABinary_1.jidNormalizedUser)(me.id),
103
+ lid: (0, WABinary_1.jidNormalizedUser)(me.lid)
104
+ }
105
+ ])
106
+ }
107
+ })
108
+ }
109
+ return sock
110
+ }
111
+ exports.attachLidMapping = attachLidMapping