@ubedsockets/baileys 1.7.3 → 1.7.5

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 (375) hide show
  1. package/WAProto/AICommon.js +27981 -0
  2. package/WAProto/AICommon.proto +713 -0
  3. package/WAProto/Ephemeral.js +295 -0
  4. package/WAProto/Ephemeral.proto +7 -0
  5. package/WAProto/GenerateStatics.sh +59 -16
  6. package/WAProto/WAProto.proto +44 -0
  7. package/WAProto/fix-imports.js +85 -0
  8. package/WAProto/index.d.ts +14017 -0
  9. package/WAProto/index.js +155308 -82430
  10. package/WAProto/vyzen.js +7 -0
  11. package/lib/Defaults/baileys-version.json +1 -0
  12. package/lib/Defaults/index.d.ts +75 -0
  13. package/lib/Defaults/index.d.ts.map +1 -0
  14. package/lib/Defaults/index.js +3 -28
  15. package/lib/Defaults/index.js.map +1 -0
  16. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  17. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  18. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  19. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  20. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  21. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  22. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  23. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  24. package/lib/Signal/Group/group_cipher.js +1 -1
  25. package/lib/Signal/Group/group_cipher.js.map +1 -0
  26. package/lib/Signal/Group/index.d.ts +12 -0
  27. package/lib/Signal/Group/index.d.ts.map +1 -0
  28. package/lib/Signal/Group/index.js.map +1 -0
  29. package/lib/Signal/Group/keyhelper.d.ts +11 -0
  30. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  31. package/lib/Signal/Group/keyhelper.js +34 -8
  32. package/lib/Signal/Group/keyhelper.js.map +1 -0
  33. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  34. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  35. package/lib/Signal/Group/sender-chain-key.js +1 -1
  36. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  37. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  38. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  39. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  40. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  42. package/lib/Signal/Group/sender-key-message.js +1 -1
  43. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  44. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  46. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  47. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  48. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  50. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  51. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  52. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  53. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  54. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  55. package/lib/Signal/Group/sender-message-key.js +1 -1
  56. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  57. package/lib/Signal/libsignal.d.ts +5 -0
  58. package/lib/Signal/libsignal.d.ts.map +1 -0
  59. package/lib/Signal/libsignal.js +1 -1
  60. package/lib/Signal/libsignal.js.map +1 -0
  61. package/lib/Signal/lid-mapping.d.ts +23 -0
  62. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  63. package/lib/Signal/lid-mapping.js +277 -0
  64. package/lib/Signal/lid-mapping.js.map +1 -0
  65. package/lib/Socket/Client/index.d.ts +3 -0
  66. package/lib/Socket/Client/index.d.ts.map +1 -0
  67. package/lib/Socket/Client/index.js.map +1 -0
  68. package/lib/Socket/Client/types.d.ts +16 -0
  69. package/lib/Socket/Client/types.d.ts.map +1 -0
  70. package/lib/Socket/Client/types.js.map +1 -0
  71. package/lib/Socket/Client/websocket.d.ts +13 -0
  72. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  73. package/lib/Socket/Client/websocket.js.map +1 -0
  74. package/lib/Socket/business.d.ts +217 -0
  75. package/lib/Socket/business.d.ts.map +1 -0
  76. package/lib/Socket/business.js.map +1 -0
  77. package/lib/Socket/chats.d.ts +124 -0
  78. package/lib/Socket/chats.d.ts.map +1 -0
  79. package/lib/Socket/chats.js.map +1 -0
  80. package/lib/Socket/communities.d.ts +273 -0
  81. package/lib/Socket/communities.d.ts.map +1 -0
  82. package/lib/Socket/communities.js +431 -0
  83. package/lib/Socket/communities.js.map +1 -0
  84. package/lib/Socket/groups.d.ts +161 -0
  85. package/lib/Socket/groups.d.ts.map +1 -0
  86. package/lib/Socket/groups.js.map +1 -0
  87. package/lib/Socket/index.d.ts +260 -0
  88. package/lib/Socket/index.d.ts.map +1 -0
  89. package/lib/Socket/index.js.map +1 -0
  90. package/lib/Socket/messages-recv.d.ts +203 -0
  91. package/lib/Socket/messages-recv.d.ts.map +1 -0
  92. package/lib/Socket/messages-recv.js +229 -46
  93. package/lib/Socket/messages-recv.js.map +1 -0
  94. package/lib/Socket/messages-send.d.ts +199 -0
  95. package/lib/Socket/messages-send.d.ts.map +1 -0
  96. package/lib/Socket/messages-send.js +394 -53
  97. package/lib/Socket/messages-send.js.map +1 -0
  98. package/lib/Socket/mex.d.ts +3 -0
  99. package/lib/Socket/mex.d.ts.map +1 -0
  100. package/lib/Socket/mex.js +42 -0
  101. package/lib/Socket/mex.js.map +1 -0
  102. package/lib/Socket/newsletter.d.ts +170 -0
  103. package/lib/Socket/newsletter.d.ts.map +1 -0
  104. package/lib/Socket/newsletter.js.map +1 -0
  105. package/lib/Socket/passkey-handler.js +134 -0
  106. package/lib/Socket/passkey.js +186 -0
  107. package/lib/Socket/setup.js +433 -0
  108. package/lib/Socket/socket.d.ts +59 -0
  109. package/lib/Socket/socket.d.ts.map +1 -0
  110. package/lib/Socket/socket.js +28 -35
  111. package/lib/Socket/socket.js.map +1 -0
  112. package/lib/Types/Auth.d.ts +117 -0
  113. package/lib/Types/Auth.d.ts.map +1 -0
  114. package/lib/Types/Auth.js.map +1 -0
  115. package/lib/Types/Bussines.d.ts +25 -0
  116. package/lib/Types/Bussines.d.ts.map +1 -0
  117. package/lib/Types/Bussines.js +2 -0
  118. package/lib/Types/Bussines.js.map +1 -0
  119. package/lib/Types/Call.d.ts +15 -0
  120. package/lib/Types/Call.d.ts.map +1 -0
  121. package/lib/Types/Call.js.map +1 -0
  122. package/lib/Types/Chat.d.ts +124 -0
  123. package/lib/Types/Chat.d.ts.map +1 -0
  124. package/lib/Types/Chat.js.map +1 -0
  125. package/lib/Types/Contact.d.ts +26 -0
  126. package/lib/Types/Contact.d.ts.map +1 -0
  127. package/lib/Types/Contact.js.map +1 -0
  128. package/lib/Types/Events.d.ts +256 -0
  129. package/lib/Types/Events.d.ts.map +1 -0
  130. package/lib/Types/Events.js.map +1 -0
  131. package/lib/Types/GroupMetadata.d.ts +71 -0
  132. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  133. package/lib/Types/GroupMetadata.js.map +1 -0
  134. package/lib/Types/Label.d.ts +47 -0
  135. package/lib/Types/Label.d.ts.map +1 -0
  136. package/lib/Types/Label.js.map +1 -0
  137. package/lib/Types/LabelAssociation.d.ts +30 -0
  138. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  139. package/lib/Types/LabelAssociation.js.map +1 -0
  140. package/lib/Types/Message.d.ts +320 -0
  141. package/lib/Types/Message.d.ts.map +1 -0
  142. package/lib/Types/Message.js.map +1 -0
  143. package/lib/Types/Mex.d.ts +141 -0
  144. package/lib/Types/Mex.d.ts.map +1 -0
  145. package/lib/Types/Mex.js +37 -0
  146. package/lib/Types/Mex.js.map +1 -0
  147. package/lib/Types/Product.d.ts +79 -0
  148. package/lib/Types/Product.d.ts.map +1 -0
  149. package/lib/Types/Product.js.map +1 -0
  150. package/lib/Types/RichType.d.ts +3 -0
  151. package/lib/Types/RichType.d.ts.map +1 -0
  152. package/lib/Types/RichType.js +31 -0
  153. package/lib/Types/Signal.d.ts +87 -0
  154. package/lib/Types/Signal.d.ts.map +1 -0
  155. package/lib/Types/Signal.js.map +1 -0
  156. package/lib/Types/Socket.d.ts +136 -0
  157. package/lib/Types/Socket.d.ts.map +1 -0
  158. package/lib/Types/Socket.js.map +1 -0
  159. package/lib/Types/State.d.ts +97 -0
  160. package/lib/Types/State.d.ts.map +1 -0
  161. package/lib/Types/State.js.map +1 -0
  162. package/lib/Types/USync.d.ts +26 -0
  163. package/lib/Types/USync.d.ts.map +1 -0
  164. package/lib/Types/USync.js.map +1 -0
  165. package/lib/Types/index.d.ts +65 -0
  166. package/lib/Types/index.d.ts.map +1 -0
  167. package/lib/Types/index.js.map +1 -0
  168. package/lib/Utils/Tiktok.js +80 -0
  169. package/lib/Utils/auth-utils.d.ts +24 -0
  170. package/lib/Utils/auth-utils.d.ts.map +1 -0
  171. package/lib/Utils/auth-utils.js.map +1 -0
  172. package/lib/Utils/{elaina-event-stream.js → baileys-event-stream.js} +1 -1
  173. package/lib/Utils/browser-utils.d.ts +4 -0
  174. package/lib/Utils/browser-utils.d.ts.map +1 -0
  175. package/lib/Utils/browser-utils.js.map +1 -0
  176. package/lib/Utils/business.d.ts +23 -0
  177. package/lib/Utils/business.d.ts.map +1 -0
  178. package/lib/Utils/business.js.map +1 -0
  179. package/lib/Utils/chaanel/vyzen.js +0 -0
  180. package/lib/Utils/chat-utils.d.ts +100 -0
  181. package/lib/Utils/chat-utils.d.ts.map +1 -0
  182. package/lib/Utils/chat-utils.js.map +1 -0
  183. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  184. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  185. package/lib/Utils/companion-reg-client-utils.js +35 -0
  186. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  187. package/lib/Utils/crypto.d.ts +37 -0
  188. package/lib/Utils/crypto.d.ts.map +1 -0
  189. package/lib/Utils/crypto.js +1 -1
  190. package/lib/Utils/crypto.js.map +1 -0
  191. package/lib/Utils/decode-wa-message.d.ts +66 -0
  192. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  193. package/lib/Utils/decode-wa-message.js.map +1 -0
  194. package/lib/Utils/event-buffer.d.ts +36 -0
  195. package/lib/Utils/event-buffer.d.ts.map +1 -0
  196. package/lib/Utils/event-buffer.js +2 -2
  197. package/lib/Utils/event-buffer.js.map +1 -0
  198. package/lib/Utils/facebook.js +48 -0
  199. package/lib/Utils/generics.d.ts +91 -0
  200. package/lib/Utils/generics.d.ts.map +1 -0
  201. package/lib/Utils/generics.js +11 -11
  202. package/lib/Utils/generics.js.map +1 -0
  203. package/lib/Utils/history.d.ts +24 -0
  204. package/lib/Utils/history.d.ts.map +1 -0
  205. package/lib/Utils/history.js.map +1 -0
  206. package/lib/Utils/identity-change-handler.d.ts +44 -0
  207. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  208. package/lib/Utils/identity-change-handler.js +50 -0
  209. package/lib/Utils/identity-change-handler.js.map +1 -0
  210. package/lib/Utils/index.d.ts +22 -0
  211. package/lib/Utils/index.d.ts.map +1 -0
  212. package/lib/Utils/index.js +2 -1
  213. package/lib/Utils/index.js.map +1 -0
  214. package/lib/Utils/instagram.js +50 -0
  215. package/lib/Utils/link-preview.d.ts +21 -0
  216. package/lib/Utils/link-preview.d.ts.map +1 -0
  217. package/lib/Utils/link-preview.js.map +1 -0
  218. package/lib/Utils/logger.d.ts +12 -0
  219. package/lib/Utils/logger.d.ts.map +1 -0
  220. package/lib/Utils/logger.js.map +1 -0
  221. package/lib/Utils/lt-hash.d.ts +8 -0
  222. package/lib/Utils/lt-hash.d.ts.map +1 -0
  223. package/lib/Utils/lt-hash.js.map +1 -0
  224. package/lib/Utils/make-mutex.d.ts +9 -0
  225. package/lib/Utils/make-mutex.d.ts.map +1 -0
  226. package/lib/Utils/make-mutex.js.map +1 -0
  227. package/lib/Utils/message-retry-manager.d.ts +115 -0
  228. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  229. package/lib/Utils/message-retry-manager.js.map +1 -0
  230. package/lib/Utils/messages-media.d.ts +133 -0
  231. package/lib/Utils/messages-media.d.ts.map +1 -0
  232. package/lib/Utils/messages-media.js +16 -77
  233. package/lib/Utils/messages-media.js.map +1 -0
  234. package/lib/Utils/messages.d.ts +91 -0
  235. package/lib/Utils/messages.d.ts.map +1 -0
  236. package/lib/Utils/messages.js +158 -728
  237. package/lib/Utils/messages.js.map +1 -0
  238. package/lib/Utils/noise-handler.d.ts +20 -0
  239. package/lib/Utils/noise-handler.d.ts.map +1 -0
  240. package/lib/Utils/noise-handler.js.map +1 -0
  241. package/lib/Utils/offline-node-processor.d.ts +17 -0
  242. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  243. package/lib/Utils/offline-node-processor.js +40 -0
  244. package/lib/Utils/offline-node-processor.js.map +1 -0
  245. package/lib/Utils/pre-key-manager.d.ts +28 -0
  246. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  247. package/lib/Utils/pre-key-manager.js +106 -0
  248. package/lib/Utils/pre-key-manager.js.map +1 -0
  249. package/lib/Utils/process-message.d.ts +60 -0
  250. package/lib/Utils/process-message.d.ts.map +1 -0
  251. package/lib/Utils/process-message.js.map +1 -0
  252. package/lib/Utils/protocol-debug.js +81 -0
  253. package/lib/Utils/reporting-utils.d.ts +11 -0
  254. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  255. package/lib/Utils/reporting-utils.js +258 -0
  256. package/lib/Utils/reporting-utils.js.map +1 -0
  257. package/lib/Utils/rich-message-utils.js +387 -0
  258. package/lib/Utils/signal.d.ts +47 -0
  259. package/lib/Utils/signal.d.ts.map +1 -0
  260. package/lib/Utils/signal.js.map +1 -0
  261. package/lib/Utils/stanza-ack.d.ts +11 -0
  262. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  263. package/lib/Utils/stanza-ack.js +38 -0
  264. package/lib/Utils/stanza-ack.js.map +1 -0
  265. package/lib/Utils/sync-action-utils.d.ts +19 -0
  266. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  267. package/lib/Utils/sync-action-utils.js +49 -0
  268. package/lib/Utils/sync-action-utils.js.map +1 -0
  269. package/lib/Utils/tc-token-utils.d.ts +37 -0
  270. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  271. package/lib/Utils/tc-token-utils.js +163 -0
  272. package/lib/Utils/tc-token-utils.js.map +1 -0
  273. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  274. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  275. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  276. package/lib/Utils/validate-connection.d.ts +11 -0
  277. package/lib/Utils/validate-connection.d.ts.map +1 -0
  278. package/lib/Utils/validate-connection.js +5 -1
  279. package/lib/Utils/validate-connection.js.map +1 -0
  280. package/lib/Utils/youtube.js +44 -0
  281. package/lib/WABinary/constants.d.ts +28 -0
  282. package/lib/WABinary/constants.d.ts.map +1 -0
  283. package/lib/WABinary/constants.js.map +1 -0
  284. package/lib/WABinary/decode.d.ts +7 -0
  285. package/lib/WABinary/decode.d.ts.map +1 -0
  286. package/lib/WABinary/decode.js.map +1 -0
  287. package/lib/WABinary/encode.d.ts +3 -0
  288. package/lib/WABinary/encode.d.ts.map +1 -0
  289. package/lib/WABinary/encode.js.map +1 -0
  290. package/lib/WABinary/generic-utils.d.ts +15 -0
  291. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  292. package/lib/WABinary/generic-utils.js.map +1 -0
  293. package/lib/WABinary/index.d.ts +6 -0
  294. package/lib/WABinary/index.d.ts.map +1 -0
  295. package/lib/WABinary/index.js.map +1 -0
  296. package/lib/WABinary/jid-utils.d.ts +48 -0
  297. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  298. package/lib/WABinary/jid-utils.js.map +1 -0
  299. package/lib/WABinary/types.d.ts +19 -0
  300. package/lib/WABinary/types.d.ts.map +1 -0
  301. package/lib/WABinary/types.js.map +1 -0
  302. package/lib/WAM/BinaryInfo.d.ts +9 -0
  303. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  304. package/lib/WAM/BinaryInfo.js.map +1 -0
  305. package/lib/WAM/constants.d.ts +40 -0
  306. package/lib/WAM/constants.d.ts.map +1 -0
  307. package/lib/WAM/constants.js.map +1 -0
  308. package/lib/WAM/encode.d.ts +3 -0
  309. package/lib/WAM/encode.d.ts.map +1 -0
  310. package/lib/WAM/encode.js.map +1 -0
  311. package/lib/WAM/index.d.ts +4 -0
  312. package/lib/WAM/index.d.ts.map +1 -0
  313. package/lib/WAM/index.js.map +1 -0
  314. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  315. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  316. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  317. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  318. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  319. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  320. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  321. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  322. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  323. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  324. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  325. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  326. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  327. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  328. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  329. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  330. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  331. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  332. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  333. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  334. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  335. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  336. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  337. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  338. package/lib/WAUSync/Protocols/index.js.map +1 -0
  339. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  340. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  341. package/lib/WAUSync/USyncQuery.js.map +1 -0
  342. package/lib/WAUSync/USyncUser.d.ts +17 -0
  343. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  344. package/lib/WAUSync/USyncUser.js.map +1 -0
  345. package/lib/WAUSync/index.d.ts +4 -0
  346. package/lib/WAUSync/index.d.ts.map +1 -0
  347. package/lib/WAUSync/index.js.map +1 -0
  348. package/lib/index.d.ts +12 -0
  349. package/lib/index.d.ts.map +1 -0
  350. package/lib/index.js +1 -21
  351. package/lib/index.js.map +1 -0
  352. package/package.json +39 -51
  353. package/engine-requirements.js +0 -10
  354. package/lib/Defaults/elaina-version.json +0 -3
  355. package/lib/Signal/libsignalnode/LICENSE +0 -621
  356. package/lib/Signal/libsignalnode/README.md +0 -11
  357. package/lib/Signal/libsignalnode/generate-proto.sh +0 -1
  358. package/lib/Signal/libsignalnode/index.js +0 -10
  359. package/lib/Signal/libsignalnode/protos/WhisperTextProtocol.proto +0 -28
  360. package/lib/Signal/libsignalnode/src/.eslintrc.json +0 -31
  361. package/lib/Signal/libsignalnode/src/WhisperTextProtocol.js +0 -948
  362. package/lib/Signal/libsignalnode/src/base_key_type.js +0 -6
  363. package/lib/Signal/libsignalnode/src/chain_type.js +0 -6
  364. package/lib/Signal/libsignalnode/src/crypto.js +0 -98
  365. package/lib/Signal/libsignalnode/src/curve.js +0 -142
  366. package/lib/Signal/libsignalnode/src/errors.js +0 -33
  367. package/lib/Signal/libsignalnode/src/keyhelper.js +0 -45
  368. package/lib/Signal/libsignalnode/src/numeric_fingerprint.js +0 -70
  369. package/lib/Signal/libsignalnode/src/protobufs.js +0 -10
  370. package/lib/Signal/libsignalnode/src/protocol_address.js +0 -40
  371. package/lib/Signal/libsignalnode/src/queue_job.js +0 -70
  372. package/lib/Signal/libsignalnode/src/session_builder.js +0 -164
  373. package/lib/Signal/libsignalnode/src/session_cipher.js +0 -332
  374. package/lib/Signal/libsignalnode/src/session_record.js +0 -325
  375. package/lib/Socket/RHandler.js +0 -533
@@ -0,0 +1,295 @@
1
+ /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
2
+ "use strict";
3
+
4
+ var $protobuf = require("protobufjs/minimal");
5
+
6
+ // Common aliases
7
+ var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
8
+
9
+ // Exported root namespace
10
+ var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
11
+
12
+ $root.Ephemeral = (function() {
13
+
14
+ /**
15
+ * Namespace Ephemeral.
16
+ * @exports Ephemeral
17
+ * @namespace
18
+ */
19
+ var Ephemeral = {};
20
+
21
+ Ephemeral.EphemeralSetting = (function() {
22
+
23
+ /**
24
+ * Properties of an EphemeralSetting.
25
+ * @memberof Ephemeral
26
+ * @interface IEphemeralSetting
27
+ * @property {number|null} [duration] EphemeralSetting duration
28
+ * @property {number|Long|null} [timestamp] EphemeralSetting timestamp
29
+ */
30
+
31
+ /**
32
+ * Constructs a new EphemeralSetting.
33
+ * @memberof Ephemeral
34
+ * @classdesc Represents an EphemeralSetting.
35
+ * @implements IEphemeralSetting
36
+ * @constructor
37
+ * @param {Ephemeral.IEphemeralSetting=} [properties] Properties to set
38
+ */
39
+ function EphemeralSetting(properties) {
40
+ if (properties)
41
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
42
+ if (properties[keys[i]] != null)
43
+ this[keys[i]] = properties[keys[i]];
44
+ }
45
+
46
+ /**
47
+ * EphemeralSetting duration.
48
+ * @member {number|null|undefined} duration
49
+ * @memberof Ephemeral.EphemeralSetting
50
+ * @instance
51
+ */
52
+ EphemeralSetting.prototype.duration = null;
53
+
54
+ /**
55
+ * EphemeralSetting timestamp.
56
+ * @member {number|Long|null|undefined} timestamp
57
+ * @memberof Ephemeral.EphemeralSetting
58
+ * @instance
59
+ */
60
+ EphemeralSetting.prototype.timestamp = null;
61
+
62
+ // OneOf field names bound to virtual getters and setters
63
+ var $oneOfFields;
64
+
65
+ /**
66
+ * EphemeralSetting _duration.
67
+ * @member {"duration"|undefined} _duration
68
+ * @memberof Ephemeral.EphemeralSetting
69
+ * @instance
70
+ */
71
+ Object.defineProperty(EphemeralSetting.prototype, "_duration", {
72
+ get: $util.oneOfGetter($oneOfFields = ["duration"]),
73
+ set: $util.oneOfSetter($oneOfFields)
74
+ });
75
+
76
+ /**
77
+ * EphemeralSetting _timestamp.
78
+ * @member {"timestamp"|undefined} _timestamp
79
+ * @memberof Ephemeral.EphemeralSetting
80
+ * @instance
81
+ */
82
+ Object.defineProperty(EphemeralSetting.prototype, "_timestamp", {
83
+ get: $util.oneOfGetter($oneOfFields = ["timestamp"]),
84
+ set: $util.oneOfSetter($oneOfFields)
85
+ });
86
+
87
+ /**
88
+ * Creates a new EphemeralSetting instance using the specified properties.
89
+ * @function create
90
+ * @memberof Ephemeral.EphemeralSetting
91
+ * @static
92
+ * @param {Ephemeral.IEphemeralSetting=} [properties] Properties to set
93
+ * @returns {Ephemeral.EphemeralSetting} EphemeralSetting instance
94
+ */
95
+ EphemeralSetting.create = function create(properties) {
96
+ return new EphemeralSetting(properties);
97
+ };
98
+
99
+ /**
100
+ * Encodes the specified EphemeralSetting message. Does not implicitly {@link Ephemeral.EphemeralSetting.verify|verify} messages.
101
+ * @function encode
102
+ * @memberof Ephemeral.EphemeralSetting
103
+ * @static
104
+ * @param {Ephemeral.IEphemeralSetting} message EphemeralSetting message or plain object to encode
105
+ * @param {$protobuf.Writer} [writer] Writer to encode to
106
+ * @returns {$protobuf.Writer} Writer
107
+ */
108
+ EphemeralSetting.encode = function encode(message, writer) {
109
+ if (!writer)
110
+ writer = $Writer.create();
111
+ if (message.duration != null && Object.hasOwnProperty.call(message, "duration"))
112
+ writer.uint32(/* id 1, wireType 5 =*/13).sfixed32(message.duration);
113
+ if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp"))
114
+ writer.uint32(/* id 2, wireType 1 =*/17).sfixed64(message.timestamp);
115
+ return writer;
116
+ };
117
+
118
+ /**
119
+ * Encodes the specified EphemeralSetting message, length delimited. Does not implicitly {@link Ephemeral.EphemeralSetting.verify|verify} messages.
120
+ * @function encodeDelimited
121
+ * @memberof Ephemeral.EphemeralSetting
122
+ * @static
123
+ * @param {Ephemeral.IEphemeralSetting} message EphemeralSetting message or plain object to encode
124
+ * @param {$protobuf.Writer} [writer] Writer to encode to
125
+ * @returns {$protobuf.Writer} Writer
126
+ */
127
+ EphemeralSetting.encodeDelimited = function encodeDelimited(message, writer) {
128
+ return this.encode(message, writer).ldelim();
129
+ };
130
+
131
+ /**
132
+ * Decodes an EphemeralSetting message from the specified reader or buffer.
133
+ * @function decode
134
+ * @memberof Ephemeral.EphemeralSetting
135
+ * @static
136
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
137
+ * @param {number} [length] Message length if known beforehand
138
+ * @returns {Ephemeral.EphemeralSetting} EphemeralSetting
139
+ * @throws {Error} If the payload is not a reader or valid buffer
140
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
141
+ */
142
+ EphemeralSetting.decode = function decode(reader, length, error) {
143
+ if (!(reader instanceof $Reader))
144
+ reader = $Reader.create(reader);
145
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.Ephemeral.EphemeralSetting();
146
+ while (reader.pos < end) {
147
+ var tag = reader.uint32();
148
+ if (tag === error)
149
+ break;
150
+ switch (tag >>> 3) {
151
+ case 1: {
152
+ message.duration = reader.sfixed32();
153
+ break;
154
+ }
155
+ case 2: {
156
+ message.timestamp = reader.sfixed64();
157
+ break;
158
+ }
159
+ default:
160
+ reader.skipType(tag & 7);
161
+ break;
162
+ }
163
+ }
164
+ return message;
165
+ };
166
+
167
+ /**
168
+ * Decodes an EphemeralSetting message from the specified reader or buffer, length delimited.
169
+ * @function decodeDelimited
170
+ * @memberof Ephemeral.EphemeralSetting
171
+ * @static
172
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
173
+ * @returns {Ephemeral.EphemeralSetting} EphemeralSetting
174
+ * @throws {Error} If the payload is not a reader or valid buffer
175
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
176
+ */
177
+ EphemeralSetting.decodeDelimited = function decodeDelimited(reader) {
178
+ if (!(reader instanceof $Reader))
179
+ reader = new $Reader(reader);
180
+ return this.decode(reader, reader.uint32());
181
+ };
182
+
183
+ /**
184
+ * Verifies an EphemeralSetting message.
185
+ * @function verify
186
+ * @memberof Ephemeral.EphemeralSetting
187
+ * @static
188
+ * @param {Object.<string,*>} message Plain object to verify
189
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
190
+ */
191
+ EphemeralSetting.verify = function verify(message) {
192
+ if (typeof message !== "object" || message === null)
193
+ return "object expected";
194
+ var properties = {};
195
+ if (message.duration != null && message.hasOwnProperty("duration")) {
196
+ properties._duration = 1;
197
+ if (!$util.isInteger(message.duration))
198
+ return "duration: integer expected";
199
+ }
200
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
201
+ properties._timestamp = 1;
202
+ if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high)))
203
+ return "timestamp: integer|Long expected";
204
+ }
205
+ return null;
206
+ };
207
+
208
+ /**
209
+ * Creates an EphemeralSetting message from a plain object. Also converts values to their respective internal types.
210
+ * @function fromObject
211
+ * @memberof Ephemeral.EphemeralSetting
212
+ * @static
213
+ * @param {Object.<string,*>} object Plain object
214
+ * @returns {Ephemeral.EphemeralSetting} EphemeralSetting
215
+ */
216
+ EphemeralSetting.fromObject = function fromObject(object) {
217
+ if (object instanceof $root.Ephemeral.EphemeralSetting)
218
+ return object;
219
+ var message = new $root.Ephemeral.EphemeralSetting();
220
+ if (object.duration != null)
221
+ message.duration = object.duration | 0;
222
+ if (object.timestamp != null)
223
+ if ($util.Long)
224
+ (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = false;
225
+ else if (typeof object.timestamp === "string")
226
+ message.timestamp = parseInt(object.timestamp, 10);
227
+ else if (typeof object.timestamp === "number")
228
+ message.timestamp = object.timestamp;
229
+ else if (typeof object.timestamp === "object")
230
+ message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber();
231
+ return message;
232
+ };
233
+
234
+ /**
235
+ * Creates a plain object from an EphemeralSetting message. Also converts values to other types if specified.
236
+ * @function toObject
237
+ * @memberof Ephemeral.EphemeralSetting
238
+ * @static
239
+ * @param {Ephemeral.EphemeralSetting} message EphemeralSetting
240
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
241
+ * @returns {Object.<string,*>} Plain object
242
+ */
243
+ EphemeralSetting.toObject = function toObject(message, options) {
244
+ if (!options)
245
+ options = {};
246
+ var object = {};
247
+ if (message.duration != null && message.hasOwnProperty("duration")) {
248
+ object.duration = message.duration;
249
+ if (options.oneofs)
250
+ object._duration = "duration";
251
+ }
252
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
253
+ if (typeof message.timestamp === "number")
254
+ object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp;
255
+ else
256
+ object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber() : message.timestamp;
257
+ if (options.oneofs)
258
+ object._timestamp = "timestamp";
259
+ }
260
+ return object;
261
+ };
262
+
263
+ /**
264
+ * Converts this EphemeralSetting to JSON.
265
+ * @function toJSON
266
+ * @memberof Ephemeral.EphemeralSetting
267
+ * @instance
268
+ * @returns {Object.<string,*>} JSON object
269
+ */
270
+ EphemeralSetting.prototype.toJSON = function toJSON() {
271
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
272
+ };
273
+
274
+ /**
275
+ * Gets the default type url for EphemeralSetting
276
+ * @function getTypeUrl
277
+ * @memberof Ephemeral.EphemeralSetting
278
+ * @static
279
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
280
+ * @returns {string} The default type url
281
+ */
282
+ EphemeralSetting.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
283
+ if (typeUrlPrefix === undefined) {
284
+ typeUrlPrefix = "type.googleapis.com";
285
+ }
286
+ return typeUrlPrefix + "/Ephemeral.EphemeralSetting";
287
+ };
288
+
289
+ return EphemeralSetting;
290
+ })();
291
+
292
+ return Ephemeral;
293
+ })();
294
+
295
+ module.exports = $root;
@@ -0,0 +1,7 @@
1
+ syntax = "proto3";
2
+ package Ephemeral;
3
+
4
+ message EphemeralSetting {
5
+ optional sfixed32 duration = 1;
6
+ optional sfixed64 timestamp = 2;
7
+ }
@@ -1,27 +1,70 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- cd "$(dirname "$0")"
4
+ ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
5
+ PROTO_DIR="$ROOT_DIR/WAProto"
5
6
 
6
- if [ ! -x ../node_modules/.bin/pbjs ]; then
7
- echo "❌ pbjs tidak ditemukan di ../node_modules/.bin/pbjs"
8
- echo "Jalankan dari root repo:"
9
- echo "cd ~/baileys/bilis && npm install --save-dev --legacy-peer-deps protobufjs-cli"
7
+ PBJS="$ROOT_DIR/node_modules/protobufjs/cli/bin/pbjs"
8
+
9
+ if [ ! -f "$PBJS" ]; then
10
+ echo "pbjs tidak ditemukan: $PBJS"
11
+ echo "Jalankan dari root project:"
12
+ echo "npm i protobufjs@6.11.6 --save"
10
13
  exit 1
11
14
  fi
12
15
 
13
- ../node_modules/.bin/pbjs \
16
+ echo "[1/3] Generate WAProto/index.js pakai protobufjs v6..."
17
+ node "$PBJS" \
14
18
  -t static-module \
15
- --no-beautify \
16
19
  -w commonjs \
17
- --no-bundle \
18
- --no-delimited \
19
- --no-verify \
20
- --no-comments \
21
- -o ./index.js \
22
- ./WAProto.proto
20
+ -o "$PROTO_DIR/index.js" \
21
+ "$PROTO_DIR/WAProto.proto"
22
+
23
+ echo "[2/3] Validasi hasil generate..."
24
+ cd "$ROOT_DIR"
25
+
26
+ node - <<'NODE'
27
+ const fs = require('fs')
28
+ const pb = require('protobufjs/minimal')
29
+ const wa = fs.readFileSync('./WAProto/index.js', 'utf8')
30
+
31
+ const hasTag = /\.tag\(\)/.test(wa)
32
+ const hasBadSkipType = /skipType\([^)]*,[^)]*\)/.test(wa)
33
+ const hasUint32 = /uint32\(\)/.test(wa)
34
+
35
+ console.log('protobufjs version:', require('protobufjs/package.json').version)
36
+ console.log('Reader.prototype.tag:', typeof pb.Reader.prototype.tag)
37
+ console.log('WAProto contains ".tag()":', hasTag)
38
+ console.log('WAProto contains "skipType(.*,":', hasBadSkipType)
39
+ console.log('WAProto contains "reader.uint32":', hasUint32)
40
+
41
+ if (hasTag || hasBadSkipType || !hasUint32) {
42
+ console.error('WAProto generate gagal: output masih tidak cocok dengan protobufjs v6')
43
+ process.exit(1)
44
+ }
45
+
46
+ const { proto } = require('./WAProto')
47
+
48
+ const msg = proto.HandshakeMessage.fromObject({
49
+ clientHello: {
50
+ ephemeral: Buffer.alloc(32)
51
+ }
52
+ })
53
+
54
+ const encoded = proto.HandshakeMessage.encode(msg).finish()
55
+ const decoded = proto.HandshakeMessage.decode(encoded)
56
+
57
+ if (!decoded.clientHello?.ephemeral?.length) {
58
+ console.error('HandshakeMessage decode gagal')
59
+ process.exit(1)
60
+ }
23
61
 
24
- node ./imports-elaina.js
25
- node --check ./index.js
62
+ console.log('OK HandshakeMessage encode/decode')
63
+ console.log('encoded:', encoded.length)
64
+ console.log('decoded ephemeral:', decoded.clientHello.ephemeral.length)
65
+ console.log('AIRichResponseMessage root:', !!proto.AIRichResponseMessage)
66
+ console.log('BotMetadata:', !!proto.BotMetadata)
67
+ console.log('AIThreadInfo:', !!proto.AIThreadInfo)
68
+ NODE
26
69
 
27
- echo "✅ WAProto/index.js generated for Elaina CommonJS"
70
+ echo "[3/3] Selesai. WAProto/index.js aman untuk protobufjs v6."
@@ -955,6 +955,13 @@ message ContextInfo {
955
955
  optional bool isQuestion = 63;
956
956
  optional StatusSourceType statusSourceType = 64;
957
957
  repeated StatusAttribution statusAttributions = 65;
958
+ optional bool isGroupStatus = 66;
959
+ optional ForwardOrigin forwardOrigin = 67;
960
+ optional QuestionReplyQuotedMessage questionReplyQuotedMessage = 68;
961
+ optional StatusAudienceMetadata statusAudienceMetadata = 69;
962
+ optional uint32 nonJidMentions = 70;
963
+ optional QuotedType quotedType = 71;
964
+ optional BotMessageSharingInfo botMessageSharingInfo = 72;
958
965
  message AdReplyInfo {
959
966
  optional string advertiserName = 1;
960
967
  optional MediaType mediaType = 2;
@@ -1027,6 +1034,7 @@ message ContextInfo {
1027
1034
  optional bool cannotBeRanked = 2;
1028
1035
  optional bool canRequestFeedback = 3;
1029
1036
  optional bool canBeReshared = 4;
1037
+ optional bool canReceiveMultiReact = 5;
1030
1038
  }
1031
1039
 
1032
1040
  message ForwardedAIBotMessageInfo {
@@ -1035,6 +1043,31 @@ message ContextInfo {
1035
1043
  optional string creatorName = 3;
1036
1044
  }
1037
1045
 
1046
+ enum ForwardOrigin {
1047
+ UNKNOWN = 0;
1048
+ CHAT = 1;
1049
+ STATUS = 2;
1050
+ CHANNELS = 3;
1051
+ META_AI = 4;
1052
+ UGC = 5;
1053
+ }
1054
+ message QuestionReplyQuotedMessage {
1055
+ optional int32 serverQuestionId = 1;
1056
+ optional Message quotedQuestion = 2;
1057
+ optional Message quotedResponse = 3;
1058
+ }
1059
+
1060
+ enum QuotedType {
1061
+ EXPLICIT = 0;
1062
+ AUTO = 1;
1063
+ }
1064
+ message StatusAudienceMetadata {
1065
+ optional AudienceType audienceType = 1;
1066
+ enum AudienceType {
1067
+ UNKNOWN = 0;
1068
+ CLOSE_FRIENDS = 1;
1069
+ }
1070
+ }
1038
1071
  message ForwardedNewsletterMessageInfo {
1039
1072
  optional string newsletterJid = 1;
1040
1073
  optional int32 serverMessageId = 2;
@@ -1061,6 +1094,8 @@ message ContextInfo {
1061
1094
  NONE = 0;
1062
1095
  RESHARED_FROM_MENTION = 1;
1063
1096
  RESHARED_FROM_POST = 2;
1097
+ RESHARED_FROM_POST_MANY_TIMES = 3;
1098
+ FORWARDED_FROM_STATUS = 4;
1064
1099
  }
1065
1100
  enum StatusSourceType {
1066
1101
  IMAGE = 0;
@@ -3120,12 +3155,21 @@ message MessageContextInfo {
3120
3155
  optional LimitSharing limitSharing = 13;
3121
3156
  optional LimitSharing limitSharingV2 = 14;
3122
3157
  repeated ThreadID threadId = 15;
3158
+ optional WebLinkRenderConfig weblinkRenderConfig = 16;
3123
3159
  enum MessageAddonExpiryType {
3124
3160
  STATIC = 1;
3125
3161
  DEPENDENT_ON_PARENT = 2;
3126
3162
  }
3127
3163
  }
3128
3164
 
3165
+
3166
+ message WebLinkRenderConfig {
3167
+ optional bool showSmallThumbnail = 1;
3168
+ optional bool showLargeThumbnail = 2;
3169
+ optional bool showPlainText = 3;
3170
+ optional bool showContextPreview = 4;
3171
+ }
3172
+
3129
3173
  message MessageKey {
3130
3174
  optional string remoteJid = 1;
3131
3175
  optional bool fromMe = 2;
@@ -0,0 +1,85 @@
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ import { exit } from 'process';
3
+
4
+ const filePath = './index.js'
5
+
6
+ try {
7
+ let content = readFileSync(filePath, 'utf8')
8
+
9
+ content = content.replace(/import \* as (\$protobuf) from/g, 'import $1 from')
10
+ content = content.replace(/(['"])protobufjs\/minimal(['"])/g, '$1protobufjs/minimal.js$2')
11
+
12
+ const marker = 'const $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});\n\n'
13
+ const longToStringHelper =
14
+ 'function longToString(value, unsigned) {\n' +
15
+ '\tif (typeof value === "string") {\n' +
16
+ '\t\treturn value;\n' +
17
+ '\t}\n' +
18
+ '\tif (typeof value === "number") {\n' +
19
+ '\t\treturn String(value);\n' +
20
+ '\t}\n' +
21
+ '\t// Fast path: convert Long {low, high} directly via native BigInt\n' +
22
+ '\t// BigInt.toString() is a native C++ operation, much faster than Long\'s pure JS division loops\n' +
23
+ '\tif (value && typeof value.low === "number" && typeof value.high === "number") {\n' +
24
+ '\t\tconst lo = BigInt(value.low >>> 0);\n' +
25
+ '\t\tconst hi = BigInt(value.high >>> 0);\n' +
26
+ '\t\tconst combined = (hi << 32n) | lo;\n' +
27
+ '\t\tif (!unsigned && value.high < 0) {\n' +
28
+ '\t\t\treturn (combined - (1n << 64n)).toString();\n' +
29
+ '\t\t}\n' +
30
+ '\t\treturn combined.toString();\n' +
31
+ '\t}\n' +
32
+ '\treturn String(value);\n' +
33
+ '}\n\n'
34
+ const longToNumberHelper =
35
+ 'function longToNumber(value, unsigned) {\n' +
36
+ '\tif (typeof value === "number") {\n' +
37
+ '\t\treturn value;\n' +
38
+ '\t}\n' +
39
+ '\tif (typeof value === "string") {\n' +
40
+ '\t\treturn Number(value);\n' +
41
+ '\t}\n' +
42
+ '\t// Fast path: convert Long {low, high} directly via native BigInt\n' +
43
+ '\tif (value && typeof value.low === "number" && typeof value.high === "number") {\n' +
44
+ '\t\tconst lo = BigInt(value.low >>> 0);\n' +
45
+ '\t\tconst hi = BigInt(value.high >>> 0);\n' +
46
+ '\t\tconst combined = (hi << 32n) | lo;\n' +
47
+ '\t\tif (!unsigned && value.high < 0) {\n' +
48
+ '\t\t\treturn Number(combined - (1n << 64n));\n' +
49
+ '\t\t}\n' +
50
+ '\t\treturn Number(combined);\n' +
51
+ '\t}\n' +
52
+ '\treturn Number(value);\n' +
53
+ '}\n\n'
54
+
55
+ if (!content.includes('function longToString(')) {
56
+ const markerIndex = content.indexOf(marker)
57
+ if (markerIndex === -1) {
58
+ throw new Error('Unable to inject Long helpers: marker not found in WAProto index output')
59
+ }
60
+
61
+ content = content.replace(marker, `${marker}${longToStringHelper}${longToNumberHelper}`)
62
+ } else {
63
+ const longToStringRegex = /function longToString\(value, unsigned\) {\n[\s\S]*?\n}\n\n/
64
+ const longToNumberRegex = /function longToNumber\(value, unsigned\) {\n[\s\S]*?\n}\n\n/
65
+
66
+ if (!longToStringRegex.test(content) || !longToNumberRegex.test(content)) {
67
+ throw new Error('Unable to update Long helpers: existing definitions not found')
68
+ }
69
+
70
+ content = content.replace(longToStringRegex, longToStringHelper)
71
+ content = content.replace(longToNumberRegex, longToNumberHelper)
72
+ }
73
+
74
+ const longPattern = /([ \t]+d\.(\w+) = )o\.longs === String \? \$util\.Long\.prototype\.toString\.call\(m\.\2\) : o\.longs === Number \? new \$util\.LongBits\(m\.\2\.low >>> 0, m\.\2\.high >>> 0\)\.toNumber\((true)?\) : m\.\2;/g
75
+ content = content.replace(longPattern, (_match, prefix, field, unsignedFlag) => {
76
+ const unsignedArg = unsignedFlag ? ', true' : ''
77
+ return `${prefix}o.longs === String ? longToString(m.${field}${unsignedArg}) : o.longs === Number ? longToNumber(m.${field}${unsignedArg}) : m.${field};`
78
+ })
79
+
80
+ writeFileSync(filePath, content, 'utf8')
81
+ console.log(`✅ Fixed imports in ${filePath}`)
82
+ } catch (error) {
83
+ console.error(`❌ Error fixing imports: ${error.message}`)
84
+ exit(1)
85
+ }