kaileys 7.0.0-rc11

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 (401) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +827 -0
  3. package/WAProto/GenerateStatics.sh +3 -0
  4. package/WAProto/WAProto.proto +5479 -0
  5. package/WAProto/fix-imports.js +85 -0
  6. package/WAProto/index.d.ts +14017 -0
  7. package/WAProto/index.js +97691 -0
  8. package/engine-requirements.js +10 -0
  9. package/lib/Defaults/index.d.ts +75 -0
  10. package/lib/Defaults/index.d.ts.map +1 -0
  11. package/lib/Defaults/index.js +129 -0
  12. package/lib/Defaults/index.js.map +1 -0
  13. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  14. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  15. package/lib/Signal/Group/ciphertext-message.js +12 -0
  16. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  17. package/lib/Signal/Group/group-session-builder.d.ts +15 -0
  18. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  19. package/lib/Signal/Group/group-session-builder.js +30 -0
  20. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  21. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  22. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  23. package/lib/Signal/Group/group_cipher.js +82 -0
  24. package/lib/Signal/Group/group_cipher.js.map +1 -0
  25. package/lib/Signal/Group/index.d.ts +12 -0
  26. package/lib/Signal/Group/index.d.ts.map +1 -0
  27. package/lib/Signal/Group/index.js +12 -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 +18 -0
  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 +26 -0
  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 +63 -0
  40. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  41. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  42. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  43. package/lib/Signal/Group/sender-key-message.js +66 -0
  44. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  45. package/lib/Signal/Group/sender-key-name.d.ts +18 -0
  46. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  47. package/lib/Signal/Group/sender-key-name.js +48 -0
  48. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  49. package/lib/Signal/Group/sender-key-record.d.ts +31 -0
  50. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  51. package/lib/Signal/Group/sender-key-record.js +41 -0
  52. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  53. package/lib/Signal/Group/sender-key-state.d.ts +39 -0
  54. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  55. package/lib/Signal/Group/sender-key-state.js +84 -0
  56. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  57. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  58. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  59. package/lib/Signal/Group/sender-message-key.js +26 -0
  60. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  61. package/lib/Signal/libsignal.d.ts +5 -0
  62. package/lib/Signal/libsignal.d.ts.map +1 -0
  63. package/lib/Signal/libsignal.js +431 -0
  64. package/lib/Signal/libsignal.js.map +1 -0
  65. package/lib/Signal/lid-mapping.d.ts +23 -0
  66. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  67. package/lib/Signal/lid-mapping.js +277 -0
  68. package/lib/Signal/lid-mapping.js.map +1 -0
  69. package/lib/Socket/Client/index.d.ts +3 -0
  70. package/lib/Socket/Client/index.d.ts.map +1 -0
  71. package/lib/Socket/Client/index.js +3 -0
  72. package/lib/Socket/Client/index.js.map +1 -0
  73. package/lib/Socket/Client/types.d.ts +16 -0
  74. package/lib/Socket/Client/types.d.ts.map +1 -0
  75. package/lib/Socket/Client/types.js +11 -0
  76. package/lib/Socket/Client/types.js.map +1 -0
  77. package/lib/Socket/Client/websocket.d.ts +13 -0
  78. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  79. package/lib/Socket/Client/websocket.js +54 -0
  80. package/lib/Socket/Client/websocket.js.map +1 -0
  81. package/lib/Socket/business.d.ts +217 -0
  82. package/lib/Socket/business.d.ts.map +1 -0
  83. package/lib/Socket/business.js +379 -0
  84. package/lib/Socket/business.js.map +1 -0
  85. package/lib/Socket/chats.d.ts +124 -0
  86. package/lib/Socket/chats.d.ts.map +1 -0
  87. package/lib/Socket/chats.js +1193 -0
  88. package/lib/Socket/chats.js.map +1 -0
  89. package/lib/Socket/communities.d.ts +273 -0
  90. package/lib/Socket/communities.d.ts.map +1 -0
  91. package/lib/Socket/communities.js +431 -0
  92. package/lib/Socket/communities.js.map +1 -0
  93. package/lib/Socket/groups.d.ts +161 -0
  94. package/lib/Socket/groups.d.ts.map +1 -0
  95. package/lib/Socket/groups.js +347 -0
  96. package/lib/Socket/groups.js.map +1 -0
  97. package/lib/Socket/index.d.ts +260 -0
  98. package/lib/Socket/index.d.ts.map +1 -0
  99. package/lib/Socket/index.js +12 -0
  100. package/lib/Socket/index.js.map +1 -0
  101. package/lib/Socket/messages-recv.d.ts +203 -0
  102. package/lib/Socket/messages-recv.d.ts.map +1 -0
  103. package/lib/Socket/messages-recv.js +1772 -0
  104. package/lib/Socket/messages-recv.js.map +1 -0
  105. package/lib/Socket/messages-send.d.ts +199 -0
  106. package/lib/Socket/messages-send.d.ts.map +1 -0
  107. package/lib/Socket/messages-send.js +1145 -0
  108. package/lib/Socket/messages-send.js.map +1 -0
  109. package/lib/Socket/mex.d.ts +3 -0
  110. package/lib/Socket/mex.d.ts.map +1 -0
  111. package/lib/Socket/mex.js +42 -0
  112. package/lib/Socket/mex.js.map +1 -0
  113. package/lib/Socket/newsletter.d.ts +170 -0
  114. package/lib/Socket/newsletter.d.ts.map +1 -0
  115. package/lib/Socket/newsletter.js +193 -0
  116. package/lib/Socket/newsletter.js.map +1 -0
  117. package/lib/Socket/socket.d.ts +59 -0
  118. package/lib/Socket/socket.d.ts.map +1 -0
  119. package/lib/Socket/socket.js +967 -0
  120. package/lib/Socket/socket.js.map +1 -0
  121. package/lib/Types/Auth.d.ts +117 -0
  122. package/lib/Types/Auth.d.ts.map +1 -0
  123. package/lib/Types/Auth.js +2 -0
  124. package/lib/Types/Auth.js.map +1 -0
  125. package/lib/Types/Bussines.d.ts +25 -0
  126. package/lib/Types/Bussines.d.ts.map +1 -0
  127. package/lib/Types/Bussines.js +2 -0
  128. package/lib/Types/Bussines.js.map +1 -0
  129. package/lib/Types/Call.d.ts +15 -0
  130. package/lib/Types/Call.d.ts.map +1 -0
  131. package/lib/Types/Call.js +2 -0
  132. package/lib/Types/Call.js.map +1 -0
  133. package/lib/Types/Chat.d.ts +124 -0
  134. package/lib/Types/Chat.d.ts.map +1 -0
  135. package/lib/Types/Chat.js +8 -0
  136. package/lib/Types/Chat.js.map +1 -0
  137. package/lib/Types/Contact.d.ts +26 -0
  138. package/lib/Types/Contact.d.ts.map +1 -0
  139. package/lib/Types/Contact.js +2 -0
  140. package/lib/Types/Contact.js.map +1 -0
  141. package/lib/Types/Events.d.ts +256 -0
  142. package/lib/Types/Events.d.ts.map +1 -0
  143. package/lib/Types/Events.js +2 -0
  144. package/lib/Types/Events.js.map +1 -0
  145. package/lib/Types/GroupMetadata.d.ts +71 -0
  146. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  147. package/lib/Types/GroupMetadata.js +2 -0
  148. package/lib/Types/GroupMetadata.js.map +1 -0
  149. package/lib/Types/Label.d.ts +47 -0
  150. package/lib/Types/Label.d.ts.map +1 -0
  151. package/lib/Types/Label.js +25 -0
  152. package/lib/Types/Label.js.map +1 -0
  153. package/lib/Types/LabelAssociation.d.ts +30 -0
  154. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  155. package/lib/Types/LabelAssociation.js +7 -0
  156. package/lib/Types/LabelAssociation.js.map +1 -0
  157. package/lib/Types/Message.d.ts +320 -0
  158. package/lib/Types/Message.d.ts.map +1 -0
  159. package/lib/Types/Message.js +11 -0
  160. package/lib/Types/Message.js.map +1 -0
  161. package/lib/Types/Mex.d.ts +141 -0
  162. package/lib/Types/Mex.d.ts.map +1 -0
  163. package/lib/Types/Mex.js +37 -0
  164. package/lib/Types/Mex.js.map +1 -0
  165. package/lib/Types/Product.d.ts +79 -0
  166. package/lib/Types/Product.d.ts.map +1 -0
  167. package/lib/Types/Product.js +2 -0
  168. package/lib/Types/Product.js.map +1 -0
  169. package/lib/Types/Signal.d.ts +87 -0
  170. package/lib/Types/Signal.d.ts.map +1 -0
  171. package/lib/Types/Signal.js +2 -0
  172. package/lib/Types/Signal.js.map +1 -0
  173. package/lib/Types/Socket.d.ts +136 -0
  174. package/lib/Types/Socket.d.ts.map +1 -0
  175. package/lib/Types/Socket.js +3 -0
  176. package/lib/Types/Socket.js.map +1 -0
  177. package/lib/Types/State.d.ts +97 -0
  178. package/lib/Types/State.d.ts.map +1 -0
  179. package/lib/Types/State.js +56 -0
  180. package/lib/Types/State.js.map +1 -0
  181. package/lib/Types/USync.d.ts +26 -0
  182. package/lib/Types/USync.d.ts.map +1 -0
  183. package/lib/Types/USync.js +2 -0
  184. package/lib/Types/USync.js.map +1 -0
  185. package/lib/Types/index.d.ts +65 -0
  186. package/lib/Types/index.d.ts.map +1 -0
  187. package/lib/Types/index.js +26 -0
  188. package/lib/Types/index.js.map +1 -0
  189. package/lib/Utils/auth-utils.d.ts +24 -0
  190. package/lib/Utils/auth-utils.d.ts.map +1 -0
  191. package/lib/Utils/auth-utils.js +302 -0
  192. package/lib/Utils/auth-utils.js.map +1 -0
  193. package/lib/Utils/browser-utils.d.ts +4 -0
  194. package/lib/Utils/browser-utils.d.ts.map +1 -0
  195. package/lib/Utils/browser-utils.js +28 -0
  196. package/lib/Utils/browser-utils.js.map +1 -0
  197. package/lib/Utils/business.d.ts +23 -0
  198. package/lib/Utils/business.d.ts.map +1 -0
  199. package/lib/Utils/business.js +231 -0
  200. package/lib/Utils/business.js.map +1 -0
  201. package/lib/Utils/chat-utils.d.ts +100 -0
  202. package/lib/Utils/chat-utils.d.ts.map +1 -0
  203. package/lib/Utils/chat-utils.js +872 -0
  204. package/lib/Utils/chat-utils.js.map +1 -0
  205. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  206. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  207. package/lib/Utils/companion-reg-client-utils.js +35 -0
  208. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  209. package/lib/Utils/crypto.d.ts +37 -0
  210. package/lib/Utils/crypto.d.ts.map +1 -0
  211. package/lib/Utils/crypto.js +118 -0
  212. package/lib/Utils/crypto.js.map +1 -0
  213. package/lib/Utils/decode-wa-message.d.ts +66 -0
  214. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  215. package/lib/Utils/decode-wa-message.js +311 -0
  216. package/lib/Utils/decode-wa-message.js.map +1 -0
  217. package/lib/Utils/event-buffer.d.ts +36 -0
  218. package/lib/Utils/event-buffer.d.ts.map +1 -0
  219. package/lib/Utils/event-buffer.js +622 -0
  220. package/lib/Utils/event-buffer.js.map +1 -0
  221. package/lib/Utils/generics.d.ts +91 -0
  222. package/lib/Utils/generics.d.ts.map +1 -0
  223. package/lib/Utils/generics.js +393 -0
  224. package/lib/Utils/generics.js.map +1 -0
  225. package/lib/Utils/history.d.ts +24 -0
  226. package/lib/Utils/history.d.ts.map +1 -0
  227. package/lib/Utils/history.js +134 -0
  228. package/lib/Utils/history.js.map +1 -0
  229. package/lib/Utils/identity-change-handler.d.ts +44 -0
  230. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  231. package/lib/Utils/identity-change-handler.js +50 -0
  232. package/lib/Utils/identity-change-handler.js.map +1 -0
  233. package/lib/Utils/index.d.ts +22 -0
  234. package/lib/Utils/index.d.ts.map +1 -0
  235. package/lib/Utils/index.js +22 -0
  236. package/lib/Utils/index.js.map +1 -0
  237. package/lib/Utils/link-preview.d.ts +21 -0
  238. package/lib/Utils/link-preview.d.ts.map +1 -0
  239. package/lib/Utils/link-preview.js +85 -0
  240. package/lib/Utils/link-preview.js.map +1 -0
  241. package/lib/Utils/logger.d.ts +13 -0
  242. package/lib/Utils/logger.d.ts.map +1 -0
  243. package/lib/Utils/logger.js +3 -0
  244. package/lib/Utils/logger.js.map +1 -0
  245. package/lib/Utils/lt-hash.d.ts +8 -0
  246. package/lib/Utils/lt-hash.d.ts.map +1 -0
  247. package/lib/Utils/lt-hash.js +8 -0
  248. package/lib/Utils/lt-hash.js.map +1 -0
  249. package/lib/Utils/make-mutex.d.ts +9 -0
  250. package/lib/Utils/make-mutex.d.ts.map +1 -0
  251. package/lib/Utils/make-mutex.js +33 -0
  252. package/lib/Utils/make-mutex.js.map +1 -0
  253. package/lib/Utils/message-retry-manager.d.ts +115 -0
  254. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  255. package/lib/Utils/message-retry-manager.js +265 -0
  256. package/lib/Utils/message-retry-manager.js.map +1 -0
  257. package/lib/Utils/messages-media.d.ts +133 -0
  258. package/lib/Utils/messages-media.d.ts.map +1 -0
  259. package/lib/Utils/messages-media.js +788 -0
  260. package/lib/Utils/messages-media.js.map +1 -0
  261. package/lib/Utils/messages.d.ts +91 -0
  262. package/lib/Utils/messages.d.ts.map +1 -0
  263. package/lib/Utils/messages.js +893 -0
  264. package/lib/Utils/messages.js.map +1 -0
  265. package/lib/Utils/noise-handler.d.ts +20 -0
  266. package/lib/Utils/noise-handler.d.ts.map +1 -0
  267. package/lib/Utils/noise-handler.js +201 -0
  268. package/lib/Utils/noise-handler.js.map +1 -0
  269. package/lib/Utils/offline-node-processor.d.ts +17 -0
  270. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  271. package/lib/Utils/offline-node-processor.js +40 -0
  272. package/lib/Utils/offline-node-processor.js.map +1 -0
  273. package/lib/Utils/pre-key-manager.d.ts +28 -0
  274. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  275. package/lib/Utils/pre-key-manager.js +106 -0
  276. package/lib/Utils/pre-key-manager.js.map +1 -0
  277. package/lib/Utils/process-message.d.ts +60 -0
  278. package/lib/Utils/process-message.d.ts.map +1 -0
  279. package/lib/Utils/process-message.js +597 -0
  280. package/lib/Utils/process-message.js.map +1 -0
  281. package/lib/Utils/reporting-utils.d.ts +11 -0
  282. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  283. package/lib/Utils/reporting-utils.js +258 -0
  284. package/lib/Utils/reporting-utils.js.map +1 -0
  285. package/lib/Utils/signal.d.ts +47 -0
  286. package/lib/Utils/signal.d.ts.map +1 -0
  287. package/lib/Utils/signal.js +201 -0
  288. package/lib/Utils/signal.js.map +1 -0
  289. package/lib/Utils/stanza-ack.d.ts +11 -0
  290. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  291. package/lib/Utils/stanza-ack.js +38 -0
  292. package/lib/Utils/stanza-ack.js.map +1 -0
  293. package/lib/Utils/sync-action-utils.d.ts +19 -0
  294. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  295. package/lib/Utils/sync-action-utils.js +49 -0
  296. package/lib/Utils/sync-action-utils.js.map +1 -0
  297. package/lib/Utils/tc-token-utils.d.ts +37 -0
  298. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  299. package/lib/Utils/tc-token-utils.js +163 -0
  300. package/lib/Utils/tc-token-utils.js.map +1 -0
  301. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  302. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  303. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  304. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  305. package/lib/Utils/validate-connection.d.ts +11 -0
  306. package/lib/Utils/validate-connection.d.ts.map +1 -0
  307. package/lib/Utils/validate-connection.js +203 -0
  308. package/lib/Utils/validate-connection.js.map +1 -0
  309. package/lib/WABinary/constants.d.ts +28 -0
  310. package/lib/WABinary/constants.d.ts.map +1 -0
  311. package/lib/WABinary/constants.js +1301 -0
  312. package/lib/WABinary/constants.js.map +1 -0
  313. package/lib/WABinary/decode.d.ts +7 -0
  314. package/lib/WABinary/decode.d.ts.map +1 -0
  315. package/lib/WABinary/decode.js +262 -0
  316. package/lib/WABinary/decode.js.map +1 -0
  317. package/lib/WABinary/encode.d.ts +3 -0
  318. package/lib/WABinary/encode.d.ts.map +1 -0
  319. package/lib/WABinary/encode.js +220 -0
  320. package/lib/WABinary/encode.js.map +1 -0
  321. package/lib/WABinary/generic-utils.d.ts +15 -0
  322. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  323. package/lib/WABinary/generic-utils.js +113 -0
  324. package/lib/WABinary/generic-utils.js.map +1 -0
  325. package/lib/WABinary/index.d.ts +6 -0
  326. package/lib/WABinary/index.d.ts.map +1 -0
  327. package/lib/WABinary/index.js +6 -0
  328. package/lib/WABinary/index.js.map +1 -0
  329. package/lib/WABinary/jid-utils.d.ts +48 -0
  330. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  331. package/lib/WABinary/jid-utils.js +96 -0
  332. package/lib/WABinary/jid-utils.js.map +1 -0
  333. package/lib/WABinary/types.d.ts +19 -0
  334. package/lib/WABinary/types.d.ts.map +1 -0
  335. package/lib/WABinary/types.js +2 -0
  336. package/lib/WABinary/types.js.map +1 -0
  337. package/lib/WAM/BinaryInfo.d.ts +9 -0
  338. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  339. package/lib/WAM/BinaryInfo.js +10 -0
  340. package/lib/WAM/BinaryInfo.js.map +1 -0
  341. package/lib/WAM/constants.d.ts +40 -0
  342. package/lib/WAM/constants.d.ts.map +1 -0
  343. package/lib/WAM/constants.js +22853 -0
  344. package/lib/WAM/constants.js.map +1 -0
  345. package/lib/WAM/encode.d.ts +3 -0
  346. package/lib/WAM/encode.d.ts.map +1 -0
  347. package/lib/WAM/encode.js +150 -0
  348. package/lib/WAM/encode.js.map +1 -0
  349. package/lib/WAM/index.d.ts +4 -0
  350. package/lib/WAM/index.d.ts.map +1 -0
  351. package/lib/WAM/index.js +4 -0
  352. package/lib/WAM/index.js.map +1 -0
  353. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  354. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  355. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  356. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  357. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  358. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  359. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  360. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  361. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  362. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  363. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  364. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  365. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  366. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  367. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  368. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  369. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  370. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  371. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  372. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  373. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
  374. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  375. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  376. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  377. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
  378. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  379. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  380. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  381. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  382. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  383. package/lib/WAUSync/Protocols/index.js +6 -0
  384. package/lib/WAUSync/Protocols/index.js.map +1 -0
  385. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  386. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  387. package/lib/WAUSync/USyncQuery.js +98 -0
  388. package/lib/WAUSync/USyncQuery.js.map +1 -0
  389. package/lib/WAUSync/USyncUser.d.ts +17 -0
  390. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  391. package/lib/WAUSync/USyncUser.js +31 -0
  392. package/lib/WAUSync/USyncUser.js.map +1 -0
  393. package/lib/WAUSync/index.d.ts +4 -0
  394. package/lib/WAUSync/index.d.ts.map +1 -0
  395. package/lib/WAUSync/index.js +4 -0
  396. package/lib/WAUSync/index.js.map +1 -0
  397. package/lib/index.d.ts +12 -0
  398. package/lib/index.d.ts.map +1 -0
  399. package/lib/index.js +11 -0
  400. package/lib/index.js.map +1 -0
  401. package/package.json +139 -0
package/README.md ADDED
@@ -0,0 +1,827 @@
1
+ # <div align='center'>Kaileys</div>
2
+
3
+ <div align='center'>
4
+
5
+ [![npm version](https://img.shields.io/npm/v/kaileys.svg)](https://www.npmjs.com/package/kaileys)
6
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
+ [![Downloads](https://img.shields.io/npm/dm/kaileys.svg)](https://www.npmjs.com/package/kaileys)
8
+
9
+ </div>
10
+
11
+ ---
12
+
13
+ ## ✨ Fitur Utama
14
+
15
+ - 🚀 **Modern & Cepat** - Dibangun di atas WhiskeySockets/Baileys dengan teknologi terbaru
16
+ - 🔧 **Perbaikan @lid & @jid** - Mengatasi masalah @lid ke @pn di grup WhatsApp
17
+ - 📱 **Dukungan Multi-Device** - Mendukung koneksi multi-device WhatsApp
18
+ - 🔐 **Enkripsi End-to-End** - Komunikasi terenkripsi penuh
19
+ - 📨 **Semua Jenis Pesan** - Dukung teks, media, polling, dll.
20
+ - 🔑 **Custom Pairing Code** - Support pairing code kustom (default: `KAELZDEV`)
21
+ - 📢 **Auto Follow Saluran Update** - Otomatis follow saluran update Kaileys (lihat [Transparansi](#-transparansi))
22
+
23
+ ---
24
+
25
+ ## ⚠️ Peringatan
26
+
27
+ Proyek ini tidak berafiliasi, terkait, diotorisasi, didukung, atau terhubung secara resmi dengan WhatsApp atau anak perusahaannya. Situs resmi WhatsApp ada di whatsapp.com.
28
+
29
+ Pengelola Kaileys tidak mendukung penggunaan aplikasi ini untuk melanggar Ketentuan Layanan WhatsApp. Kami menekankan tanggung jawab pribadi pengguna untuk menggunakan secara adil dan bertanggung jawab.
30
+
31
+ Gunakan dengan bijak. Hindari spam. Jangan gunakan otomatisasi berlebihan.
32
+
33
+ ---
34
+
35
+ ## 📢 Transparansi
36
+
37
+ Kaileys secara otomatis mem-follow **2 saluran WhatsApp** milik Kaileys saat bot pertama kali terhubung. Saluran ini digunakan untuk:
38
+
39
+ - 📣 Informasi update versi terbaru
40
+ - 🐛 Pemberitahuan bug kritis
41
+ - 📋 Changelog & release notes
42
+
43
+ **Jika Anda tidak ingin fitur ini**, gunakan versi original [@whiskeysockets/baileys](https://www.npmjs.com/package/@whiskeysockets/baileys).
44
+
45
+ ---
46
+
47
+ ## 📦 Instalasi
48
+
49
+ ### Versi Stabil (Direkomendasikan)
50
+
51
+ ```bash
52
+ npm i kaileys
53
+ ```
54
+
55
+ ### Versi Edge (Fitur Terbaru)
56
+
57
+ ```bash
58
+ npm i kaileys@latest
59
+ # atau
60
+ yarn add kaileys@latest
61
+ ```
62
+
63
+ ### Impor di Kode
64
+
65
+ ```javascript
66
+ const { default: makeWASocket } = require("kaileys")
67
+ // atau ES6
68
+ import makeWASocket from "kaileys"
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 🚀 Mulai Cepat
74
+
75
+ ### Contoh Dasar
76
+
77
+ ```javascript
78
+ const { default: makeWASocket, DisconnectReason, useMultiFileAuthState } = require('kaileys')
79
+ const { Boom } = require('@hapi/boom')
80
+
81
+ async function connectToWhatsApp() {
82
+ const { state, saveCreds } = await useMultiFileAuthState('auth_info_kaileys')
83
+
84
+ const sock = makeWASocket({
85
+ auth: state,
86
+ printQRInTerminal: true,
87
+ browser: ['Kaileys', 'Desktop', '3.0']
88
+ })
89
+
90
+ sock.ev.on('connection.update', (update) => {
91
+ const { connection, lastDisconnect } = update
92
+ if(connection === 'close') {
93
+ const shouldReconnect = (lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut
94
+ console.log('Koneksi tertutup karena ', lastDisconnect.error, ', reconnecting ', shouldReconnect)
95
+ if(shouldReconnect) {
96
+ connectToWhatsApp()
97
+ }
98
+ } else if(connection === 'open') {
99
+ console.log('✅ Berhasil terhubung ke WhatsApp!')
100
+ }
101
+ })
102
+
103
+ sock.ev.on('messages.upsert', async ({ messages }) => {
104
+ for (const m of messages) {
105
+ if (!m.message) continue
106
+ console.log('📱 Pesan baru:', JSON.stringify(m, undefined, 2))
107
+ await sock.sendMessage(m.key.remoteJid!, {
108
+ text: 'Halo! Saya bot WhatsApp menggunakan Kaileys 🤖'
109
+ })
110
+ }
111
+ })
112
+
113
+ sock.ev.on('creds.update', saveCreds)
114
+ }
115
+
116
+ connectToWhatsApp()
117
+ ```
118
+
119
+ ---
120
+
121
+ ## 📋 Daftar Isi
122
+
123
+ - [Koneksi Akun](#-koneksi-akun)
124
+ - [Simpan Info Auth](#-simpan-info-auth)
125
+ - [Implementasi Data Store](#️-implementasi-data-store)
126
+ - [Kirim Pesan](#-kirim-pesan)
127
+ - [Ubah Pesan](#️-ubah-pesan)
128
+ - [Manipulasi Pesan Media](#️-manipulasi-pesan-media)
129
+ - [Grup](#-grup)
130
+ - [Privasi](#-privasi)
131
+ - [Daftar Siaran & Cerita](#-daftar-siaran--cerita)
132
+ - [Fungsi Kustom](#️-fungsi-kustom)
133
+
134
+ ---
135
+
136
+ ## 🔌 Koneksi Akun
137
+
138
+ WhatsApp menyediakan API multi-device yang memungkinkan Kaileys terautentikasi sebagai klien WhatsApp sekunder melalui QR code atau pairing code.
139
+
140
+ ### Hubungkan dengan QR Code
141
+
142
+ > [!TIP]
143
+ > Sesuaikan nama browser menggunakan konstanta `Browsers`. Lihat konfigurasi yang tersedia di bawah.
144
+
145
+ ```javascript
146
+ const { default: makeWASocket, Browsers } = require("kaileys")
147
+
148
+ const sock = makeWASocket({
149
+ browser: Browsers.ubuntu('My App'),
150
+ printQRInTerminal: true
151
+ })
152
+ ```
153
+
154
+ Setelah koneksi berhasil, QR code akan muncul di terminal. Pindai dengan WhatsApp di ponsel Anda untuk login.
155
+
156
+ ### Hubungkan dengan Pairing Code
157
+
158
+ > [!IMPORTANT]
159
+ > Pairing code bukan bagian dari Mobile API. Ini memungkinkan koneksi WhatsApp Web tanpa QR code, tapi hanya satu perangkat.
160
+
161
+ Nomor telepon harus tanpa `+`, `()`, atau `-`, dan sertakan kode negara.
162
+
163
+ ```javascript
164
+ const { default: makeWASocket } = require("kaileys")
165
+
166
+ const sock = makeWASocket({
167
+ printQRInTerminal: false
168
+ })
169
+
170
+ // Pairing dengan kode default (KAELZDEV)
171
+ if (!sock.authState.creds.registered) {
172
+ const number = '6285134816783'
173
+ const code = await sock.requestPairingCode(number)
174
+ console.log('🔑 Kode Pairing:', code) // Output: KAELZDEV
175
+ }
176
+
177
+ // Pairing dengan kode kustom (harus 8 karakter)
178
+ if (!sock.authState.creds.registered) {
179
+ const pair = "MYCODE12" // tepat 8 karakter
180
+ const number = '6285134816783'
181
+ const code = await sock.requestPairingCode(number, pair)
182
+ console.log('🔑 Kode Pairing Kustom:', code)
183
+ }
184
+ ```
185
+
186
+ > [!NOTE]
187
+ > Default pairing code Kaileys adalah `KAELZDEV`. Kode kustom harus tepat **8 karakter**.
188
+
189
+ ### Terima Riwayat Lengkap
190
+
191
+ 1. Setel `syncFullHistory` ke `true`.
192
+ 2. Untuk koneksi seperti desktop (riwayat pesan lebih banyak), gunakan:
193
+
194
+ ```javascript
195
+ const { default: makeWASocket, Browsers } = require("kaileys")
196
+
197
+ const sock = makeWASocket({
198
+ browser: Browsers.macOS('Desktop'),
199
+ syncFullHistory: true
200
+ })
201
+ ```
202
+
203
+ ---
204
+
205
+ ## ⚙️ Catatan Penting Konfigurasi Socket
206
+
207
+ ### Caching Metadata Grup (Direkomendasikan)
208
+
209
+ ```javascript
210
+ const { default: makeWASocket } = require("kaileys")
211
+ const NodeCache = require('node-cache')
212
+
213
+ const groupCache = new NodeCache({ stdTTL: 5 * 60, useClones: false })
214
+
215
+ const sock = makeWASocket({
216
+ cachedGroupMetadata: async (jid) => groupCache.get(jid)
217
+ })
218
+
219
+ sock.ev.on('groups.update', async ([event]) => {
220
+ const metadata = await sock.groupMetadata(event.id)
221
+ groupCache.set(event.id, metadata)
222
+ })
223
+
224
+ sock.ev.on('group-participants.update', async (event) => {
225
+ const metadata = await sock.groupMetadata(event.id)
226
+ groupCache.set(event.id, metadata)
227
+ })
228
+ ```
229
+
230
+ ### Perbaiki Sistem Retry & Dekripsi Vote Poll
231
+
232
+ ```javascript
233
+ const sock = makeWASocket({
234
+ getMessage: async (key) => await getMessageFromStore(key)
235
+ })
236
+ ```
237
+
238
+ ### Terima Notifikasi di Aplikasi WhatsApp
239
+
240
+ ```javascript
241
+ const sock = makeWASocket({
242
+ markOnlineOnConnect: false
243
+ })
244
+ ```
245
+
246
+ ---
247
+
248
+ ## 💾 Simpan Info Auth
249
+
250
+ ```javascript
251
+ const makeWASocket = require("kaileys").default
252
+ const { useMultiFileAuthState } = require("kaileys")
253
+
254
+ async function connect() {
255
+ const { state, saveCreds } = await useMultiFileAuthState('auth_info_kaileys')
256
+ const sock = makeWASocket({ auth: state })
257
+ sock.ev.on('creds.update', saveCreds)
258
+ }
259
+
260
+ connect()
261
+ ```
262
+
263
+ > [!IMPORTANT]
264
+ > `useMultiFileAuthState` menyimpan status auth di folder. Untuk produksi, gunakan database SQL/No-SQL.
265
+
266
+ ---
267
+
268
+ ## 🗄️ Implementasi Data Store
269
+
270
+ Kaileys tidak menyertakan penyimpanan default untuk obrolan, kontak, atau pesan. Namun, implementasi in-memory sederhana disediakan.
271
+
272
+ > [!IMPORTANT]
273
+ > Sangat direkomendasikan membangun data store sendiri — menyimpan seluruh riwayat obrolan di memori sangat boros RAM.
274
+
275
+ ```javascript
276
+ const makeWASocket = require("kaileys").default
277
+ const { makeInMemoryStore } = require("kaileys")
278
+
279
+ const store = makeInMemoryStore({ })
280
+
281
+ store.readFromFile('./kaileys_store.json')
282
+
283
+ setInterval(() => {
284
+ store.writeToFile('./kaileys_store.json')
285
+ }, 10_000)
286
+
287
+ const sock = makeWASocket({ })
288
+ store.bind(sock.ev)
289
+
290
+ sock.ev.on('chats.upsert', () => {
291
+ console.log('dapat obrolan', store.chats.all())
292
+ })
293
+
294
+ sock.ev.on('contacts.upsert', () => {
295
+ console.log('dapat kontak', Object.values(store.contacts))
296
+ })
297
+ ```
298
+
299
+ ---
300
+
301
+ ## 🆔 Penjelasan ID WhatsApp
302
+
303
+ | Tipe | Format | Contoh |
304
+ |------|--------|--------|
305
+ | Personal | `[kode negara][nomor]@s.whatsapp.net` | `6281234567890@s.whatsapp.net` |
306
+ | Grup | `[id]@g.us` | `123456789-123345@g.us` |
307
+ | Siaran | `[timestamp]@broadcast` | - |
308
+ | Cerita | `status@broadcast` | - |
309
+
310
+ ---
311
+
312
+ ## 📤 Kirim Pesan
313
+
314
+ ### Pesan Teks
315
+
316
+ ```javascript
317
+ await sock.sendMessage(jid, { text: 'halo dunia' })
318
+ ```
319
+
320
+ ### Pesan Kutipan
321
+
322
+ ```javascript
323
+ await sock.sendMessage(jid, { text: 'halo dunia' }, { quoted: message })
324
+ ```
325
+
326
+ ### Sebut Pengguna
327
+
328
+ ```javascript
329
+ await sock.sendMessage(jid, {
330
+ text: '@12345678901',
331
+ mentions: ['12345678901@s.whatsapp.net']
332
+ })
333
+ ```
334
+
335
+ ### Teruskan Pesan
336
+
337
+ ```javascript
338
+ const msg = getMessageFromStore()
339
+ await sock.sendMessage(jid, { forward: msg })
340
+ ```
341
+
342
+ ### Pesan Lokasi
343
+
344
+ ```javascript
345
+ await sock.sendMessage(jid, {
346
+ location: {
347
+ degreesLatitude: 24.121231,
348
+ degreesLongitude: 55.1121221
349
+ }
350
+ })
351
+ ```
352
+
353
+ ### Pesan Kontak
354
+
355
+ ```javascript
356
+ const vcard = 'BEGIN:VCARD\n'
357
+ + 'VERSION:3.0\n'
358
+ + 'FN:Jeff Singh\n'
359
+ + 'ORG:Ashoka Uni;\n'
360
+ + 'TEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\n'
361
+ + 'END:VCARD'
362
+
363
+ await sock.sendMessage(id, {
364
+ contacts: {
365
+ displayName: 'Jeff',
366
+ contacts: [{ vcard }]
367
+ }
368
+ })
369
+ ```
370
+
371
+ ### Pesan Reaksi
372
+
373
+ ```javascript
374
+ await sock.sendMessage(jid, {
375
+ react: {
376
+ text: '💖', // kosongkan untuk hapus reaksi
377
+ key: message.key
378
+ }
379
+ })
380
+ ```
381
+
382
+ ### Pin Pesan
383
+
384
+ | Waktu | Detik |
385
+ |-------|-------|
386
+ | 24 jam | 86.400 |
387
+ | 7 hari | 604.800 |
388
+ | 30 hari | 2.592.000 |
389
+
390
+ ```javascript
391
+ await sock.sendMessage(jid, {
392
+ pin: {
393
+ type: 1, // 0 untuk hapus
394
+ time: 86400,
395
+ key: message.key
396
+ }
397
+ })
398
+ ```
399
+
400
+ ### Pesan Poll
401
+
402
+ ```javascript
403
+ await sock.sendMessage(jid, {
404
+ poll: {
405
+ name: 'Poll Saya',
406
+ values: ['Opsi 1', 'Opsi 2'],
407
+ selectableCount: 1,
408
+ toAnnouncementGroup: false
409
+ }
410
+ })
411
+ ```
412
+
413
+ ### Kirim dengan Pratinjau Tautan
414
+
415
+ Tambahkan `link-preview-js` terlebih dahulu:
416
+
417
+ ```bash
418
+ npm i link-preview-js
419
+ ```
420
+
421
+ ```javascript
422
+ await sock.sendMessage(jid, {
423
+ text: 'Halo, ini dikirim menggunakan https://npmjs.com/package/kaileys'
424
+ })
425
+ ```
426
+
427
+ ### Pesan Media
428
+
429
+ > [!NOTE] Bisa gunakan `{ stream: Stream }`, `{ url: Url }`, atau Buffer langsung.
430
+
431
+ #### Gif
432
+
433
+ ```javascript
434
+ await sock.sendMessage(jid, {
435
+ video: fs.readFileSync('Media/ma_gif.mp4'),
436
+ caption: 'halo dunia',
437
+ gifPlayback: true
438
+ })
439
+ ```
440
+
441
+ #### Video
442
+
443
+ ```javascript
444
+ await sock.sendMessage(id, {
445
+ video: { url: './Media/ma_gif.mp4' },
446
+ caption: 'halo dunia',
447
+ ptv: false // true untuk video note
448
+ })
449
+ ```
450
+
451
+ #### Audio
452
+
453
+ ```javascript
454
+ await sock.sendMessage(jid, {
455
+ audio: { url: './Media/audio.mp3' },
456
+ mimetype: 'audio/mp4'
457
+ })
458
+ ```
459
+
460
+ #### Gambar
461
+
462
+ ```javascript
463
+ await sock.sendMessage(id, {
464
+ image: { url: './Media/ma_img.png' },
465
+ caption: 'halo dunia'
466
+ })
467
+ ```
468
+
469
+ #### View Once
470
+
471
+ ```javascript
472
+ await sock.sendMessage(id, {
473
+ image: { url: './Media/ma_img.png' },
474
+ viewOnce: true,
475
+ caption: 'halo dunia'
476
+ })
477
+ ```
478
+
479
+ ---
480
+
481
+ ## ✏️ Ubah Pesan
482
+
483
+ ### Hapus Pesan (untuk semua)
484
+
485
+ ```javascript
486
+ const msg = await sock.sendMessage(jid, { text: 'halo dunia' })
487
+ await sock.sendMessage(jid, { delete: msg.key })
488
+ ```
489
+
490
+ ### Edit Pesan
491
+
492
+ ```javascript
493
+ await sock.sendMessage(jid, {
494
+ text: 'teks terupdate di sini',
495
+ edit: response.key,
496
+ })
497
+ ```
498
+
499
+ ---
500
+
501
+ ## 🖼️ Manipulasi Pesan Media
502
+
503
+ ### Unduh Pesan Media
504
+
505
+ ```javascript
506
+ import { createWriteStream } from 'fs'
507
+ import { downloadMediaMessage, getContentType } from 'kaileys'
508
+
509
+ sock.ev.on('messages.upsert', async ({ messages: [m] }) => {
510
+ if (!m.message) return
511
+ const messageType = getContentType(m)
512
+
513
+ if (messageType === 'imageMessage') {
514
+ const stream = await downloadMediaMessage(
515
+ m,
516
+ 'stream',
517
+ { },
518
+ {
519
+ logger,
520
+ reuploadRequest: sock.updateMediaMessage
521
+ }
522
+ )
523
+ const writeStream = createWriteStream('./my-download.jpeg')
524
+ stream.pipe(writeStream)
525
+ }
526
+ })
527
+ ```
528
+
529
+ ### Unggah Ulang Pesan Media
530
+
531
+ ```javascript
532
+ await sock.updateMediaMessage(msg)
533
+ ```
534
+
535
+ ---
536
+
537
+ ## 📞 Tolak Panggilan
538
+
539
+ ```javascript
540
+ await sock.rejectCall(callId, callFrom)
541
+ ```
542
+
543
+ ---
544
+
545
+ ## 💬 Status Kirim
546
+
547
+ ### Baca Pesan
548
+
549
+ ```javascript
550
+ await sock.readMessages([key])
551
+ ```
552
+
553
+ ### Update Kehadiran
554
+
555
+ `presence` bisa: `available`, `composing`, `recording`, `paused`, `unavailable`.
556
+
557
+ ```javascript
558
+ await sock.sendPresenceUpdate('available', jid)
559
+ ```
560
+
561
+ ---
562
+
563
+ ## 📁 Ubah Obrolan
564
+
565
+ > [!IMPORTANT] Jika salah update, WA bisa logout dari semua perangkat.
566
+
567
+ ### Arsipkan Obrolan
568
+
569
+ ```javascript
570
+ const lastMsgInChat = await getLastMessageInChat(jid)
571
+ await sock.chatModify({ archive: true, lastMessages: [lastMsgInChat] }, jid)
572
+ ```
573
+
574
+ ### Bisukan/Buka Bisukan
575
+
576
+ | Waktu | Milidetik |
577
+ |-------|-----------|
578
+ | Hapus | null |
579
+ | 8 jam | 86.400.000 |
580
+ | 7 hari | 604.800.000 |
581
+
582
+ ```javascript
583
+ await sock.chatModify({ mute: 8 * 60 * 60 * 1000 }, jid) // bisukan 8 jam
584
+ await sock.chatModify({ mute: null }, jid) // buka bisukan
585
+ ```
586
+
587
+ ### Tandai Dibaca/Tidak Dibaca
588
+
589
+ ```javascript
590
+ const lastMsgInChat = await getLastMessageInChat(jid)
591
+ await sock.chatModify({ markRead: false, lastMessages: [lastMsgInChat] }, jid)
592
+ ```
593
+
594
+ ### Hapus Pesan untuk Saya
595
+
596
+ ```javascript
597
+ await sock.chatModify({
598
+ clear: {
599
+ messages: [{ id: 'ATWYHDNNWU81732J', fromMe: true, timestamp: '1654823909' }]
600
+ }
601
+ }, jid)
602
+ ```
603
+
604
+ ### Hapus Obrolan
605
+
606
+ ```javascript
607
+ const lastMsgInChat = await getLastMessageInChat(jid)
608
+ await sock.chatModify({
609
+ delete: true,
610
+ lastMessages: [{ key: lastMsgInChat.key, messageTimestamp: lastMsgInChat.messageTimestamp }]
611
+ }, jid)
612
+ ```
613
+
614
+ ### Pin/Hapus Pin
615
+
616
+ ```javascript
617
+ await sock.chatModify({ pin: true }, jid) // atau false
618
+ ```
619
+
620
+ ### Bintangi/Hapus Bintang
621
+
622
+ ```javascript
623
+ await sock.chatModify({
624
+ star: {
625
+ messages: [{ id: 'messageID', fromMe: true }],
626
+ star: true
627
+ }
628
+ }, jid)
629
+ ```
630
+
631
+ ### Pesan Menghilang
632
+
633
+ | Waktu | Detik |
634
+ |-------|-------|
635
+ | Hapus | 0 |
636
+ | 24 jam | 86.400 |
637
+ | 7 hari | 604.800 |
638
+ | 90 hari | 7.776.000 |
639
+
640
+ ```javascript
641
+ await sock.sendMessage(jid, { disappearingMessagesInChat: WA_DEFAULT_EPHEMERAL })
642
+ await sock.sendMessage(jid, { text: 'halo' }, { ephemeralExpiration: WA_DEFAULT_EPHEMERAL })
643
+ await sock.sendMessage(jid, { disappearingMessagesInChat: false }) // matikan
644
+ ```
645
+
646
+ ---
647
+
648
+ ## 👤 Query Pengguna
649
+
650
+ ### Periksa ID Ada di WhatsApp
651
+
652
+ ```javascript
653
+ const [result] = await sock.onWhatsApp(jid)
654
+ if (result.exists) console.log(`${jid} ada di WhatsApp, sebagai jid: ${result.jid}`)
655
+ ```
656
+
657
+ ### Query Riwayat Obrolan
658
+
659
+ ```javascript
660
+ const msg = await getOldestMessageInChat(jid)
661
+ await sock.fetchMessageHistory(50, msg.key, msg.messageTimestamp)
662
+ ```
663
+
664
+ ### Ambil Status
665
+
666
+ ```javascript
667
+ const status = await sock.fetchStatus(jid)
668
+ console.log('status: ' + status)
669
+ ```
670
+
671
+ ### Ambil Foto Profil
672
+
673
+ ```javascript
674
+ const ppUrl = await sock.profilePictureUrl(jid) // resolusi rendah
675
+ const ppUrl = await sock.profilePictureUrl(jid, 'image') // resolusi tinggi
676
+ ```
677
+
678
+ ### Ambil Kehadiran
679
+
680
+ ```javascript
681
+ sock.ev.on('presence.update', console.log)
682
+ await sock.presenceSubscribe(jid)
683
+ ```
684
+
685
+ ---
686
+
687
+ ## 🔄 Ubah Profil
688
+
689
+ ```javascript
690
+ await sock.updateProfileStatus('Halo Dunia!')
691
+ await sock.updateProfileName('Nama Saya')
692
+ await sock.updateProfilePicture(jid, { url: './new-profile-picture.jpeg' })
693
+ await sock.removeProfilePicture(jid)
694
+ ```
695
+
696
+ ---
697
+
698
+ ## 👥 Grup
699
+
700
+ ### Buat Grup
701
+
702
+ ```javascript
703
+ const group = await sock.groupCreate('Grup Saya', ['1234@s.whatsapp.net', '4564@s.whatsapp.net'])
704
+ console.log('grup dibuat dengan id: ' + group.gid)
705
+ ```
706
+
707
+ ### Tambah/Hapus/Turunkan/Naikkan
708
+
709
+ ```javascript
710
+ await sock.groupParticipantsUpdate(
711
+ jid,
712
+ ['abcd@s.whatsapp.net', 'efgh@s.whatsapp.net'],
713
+ 'add' // 'remove', 'demote', 'promote'
714
+ )
715
+ ```
716
+
717
+ ### Ubah Pengaturan
718
+
719
+ ```javascript
720
+ await sock.groupSettingUpdate(jid, 'announcement') // hanya admin kirim
721
+ await sock.groupSettingUpdate(jid, 'not_announcement') // semua bisa kirim
722
+ await sock.groupSettingUpdate(jid, 'locked') // hanya admin ubah info
723
+ await sock.groupSettingUpdate(jid, 'unlocked') // semua bisa ubah info
724
+ ```
725
+
726
+ ### Kode Undangan
727
+
728
+ ```javascript
729
+ const code = await sock.groupInviteCode(jid)
730
+ console.log('link: https://chat.whatsapp.com/' + code)
731
+
732
+ await sock.groupRevokeInvite(jid) // cabut kode
733
+
734
+ const response = await sock.groupAcceptInvite(code) // gabung via kode
735
+ ```
736
+
737
+ ### Query Metadata
738
+
739
+ ```javascript
740
+ const metadata = await sock.groupMetadata(jid)
741
+ console.log(metadata.id + ', judul: ' + metadata.subject + ', deskripsi: ' + metadata.desc)
742
+ ```
743
+
744
+ ### Permintaan Gabung
745
+
746
+ ```javascript
747
+ const response = await sock.groupRequestParticipantsList(jid)
748
+ await sock.groupRequestParticipantsUpdate(jid, ['abcd@s.whatsapp.net'], 'approve') // atau 'reject'
749
+ ```
750
+
751
+ ---
752
+
753
+ ## 🔒 Privasi
754
+
755
+ ```javascript
756
+ await sock.updateBlockStatus(jid, 'block') // blokir
757
+ await sock.updateBlockStatus(jid, 'unblock') // buka blokir
758
+
759
+ const privacySettings = await sock.fetchPrivacySettings(true)
760
+ const blocklist = await sock.fetchBlocklist()
761
+
762
+ await sock.updateLastSeenPrivacy('all') // 'contacts' | 'contact_blacklist' | 'none'
763
+ await sock.updateOnlinePrivacy('all') // 'match_last_seen'
764
+ await sock.updateProfilePicturePrivacy('all')
765
+ await sock.updateStatusPrivacy('all')
766
+ await sock.updateReadReceiptsPrivacy('all')
767
+ await sock.updateGroupsAddPrivacy('all')
768
+ ```
769
+
770
+ ---
771
+
772
+ ## 📢 Daftar Siaran & Cerita
773
+
774
+ ```javascript
775
+ await sock.sendMessage(
776
+ jid,
777
+ { image: { url: url }, caption: caption },
778
+ { backgroundColor, font, statusJidList, broadcast: true }
779
+ )
780
+
781
+ const bList = await sock.getBroadcastListInfo('1234@broadcast')
782
+ console.log(`nama: ${bList.name}, penerima: ${bList.recipients}`)
783
+ ```
784
+
785
+ ---
786
+
787
+ ## 🛠️ Fungsi Kustom
788
+
789
+ ### Aktifkan Level Debug
790
+
791
+ ```javascript
792
+ const sock = makeWASocket({
793
+ logger: P({ level: 'debug' }),
794
+ })
795
+ ```
796
+
797
+ ### Daftarkan Callback WebSocket
798
+
799
+ ```javascript
800
+ sock.ws.on('CB:edge_routing', (node) => { })
801
+ sock.ws.on('CB:edge_routing,id:abcd', (node) => { })
802
+ sock.ws.on('CB:edge_routing,id:abcd,routing_info', (node) => { })
803
+ ```
804
+
805
+ ---
806
+
807
+ ## 💡 Tips & Praktik Terbaik
808
+
809
+ - **Gunakan Caching** — Cache metadata grup untuk performa lebih baik
810
+ - **Tangani Rekoneksi** — Implementasikan auto-reconnect untuk kestabilan
811
+ - **Kelola Store** — Gunakan database (MongoDB, PostgreSQL) untuk produksi
812
+ - **Penanganan Error** — Bungkus panggilan socket dengan try-catch
813
+ - **Batas Rate** — Hormati batas WhatsApp untuk hindari ban
814
+ - **Keamanan** — Jangan bagikan kredensial auth; gunakan variabel lingkungan
815
+
816
+ ---
817
+
818
+ ## 📄 Lisensi
819
+
820
+ Didistribusikan di bawah Lisensi MIT. Lihat [LICENSE](LICENSE) untuk info lebih lanjut.
821
+
822
+ ---
823
+
824
+ <div align="center">
825
+ Fork dan dimodifikasi oleh Kaels.<br>
826
+ Kaileys - WhatsApp Web API Modern | Based on <a href="https://github.com/WhiskeySockets/Baileys">WhiskeySockets/Baileys</a>
827
+ </div>