@openclaw/whatsapp 2026.7.2-beta.7 → 2026.7.34

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 (435) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-control-pZcxTmd5.js → .setup/access-control-C0jumQuO.mjs} +5 -4
  3. package/dist/.setup/account-config-6PTOSfaI.mjs +47 -0
  4. package/dist/{accounts-CSqLvCY5.js → .setup/accounts-Dw16pdNl.mjs} +9 -47
  5. package/dist/{action-runtime-BzfDFPbH.js → .setup/action-runtime-DLK_9v4r.mjs} +3 -3
  6. package/dist/{active-listener-BEjWsCNM.js → .setup/active-listener-CloPBx0S.mjs} +3 -3
  7. package/dist/{agent-tools-login-DE9MU98T.js → .setup/agent-tools-login-DINqgaYo.mjs} +19 -7
  8. package/dist/{approval-handler.runtime-DrA59QSA.js → .setup/approval-handler.runtime-DtJZbu3y.mjs} +14 -20
  9. package/dist/{approval-resolver-DoeBBt22.js → .setup/approval-resolver-DF-lu8k5.mjs} +1 -2
  10. package/dist/{auth-store-DcEpIOmE.js → .setup/auth-store-BZKGa0tW.mjs} +25 -29
  11. package/dist/{channel-Dg62olhy.js → .setup/channel-9WGjBznd.mjs} +117 -132
  12. package/dist/{channel-react-action-J_YtyMGX.js → .setup/channel-react-action-mvIbAFhn.mjs} +15 -12
  13. package/dist/{channel.runtime-BP0xNmLi.js → .setup/channel.runtime-DmmMgRJQ.mjs} +6 -6
  14. package/dist/.setup/channel.setup-ByBYSeLd.mjs +22 -0
  15. package/dist/.setup/config-schema-mBX2nmn1.mjs +47 -0
  16. package/dist/{connection-controller-BOB2MVKY.js → .setup/connection-controller-Dt62u6fI.mjs} +29 -226
  17. package/dist/.setup/connection-controller-registry-TSX_udJp.mjs +22 -0
  18. package/dist/{constants-HU41RHGI.js → .setup/constants-C7m81BNe.mjs} +1 -1
  19. package/dist/.setup/directory-config-B7Obxrq2.mjs +37 -0
  20. package/dist/.setup/doctor-By3SB4lm.mjs +48 -0
  21. package/dist/{group-session-key-DVMZlO3x.js → .setup/group-session-key-CEwPRRRK.mjs} +5 -38
  22. package/dist/{identity-CPrT5aEU.js → .setup/identity-CDB1bT-p.mjs} +2 -2
  23. package/dist/.setup/legacy-session-surface-api-B2szjq4r.mjs +2 -0
  24. package/dist/.setup/legacy-state-migrations-api-DXCxufZz.mjs +3 -0
  25. package/dist/{login-CvY2Dhch.js → .setup/login-7b3M0iBp.mjs} +12 -51
  26. package/dist/{login-qr-Bncpb6js.js → .setup/login-qr-CbyA4QX5.mjs} +47 -23
  27. package/dist/{monitor-CfkaUSL2.js → .setup/monitor-Dh6Di_YO.mjs} +1451 -1843
  28. package/dist/.setup/normalize-eddWWsNV.mjs +2 -0
  29. package/dist/{normalize-target-CugRyONv.js → .setup/normalize-target-bVWjgftN.mjs} +10 -18
  30. package/dist/{resolve-outbound-target-1GqbT1uX.js → .setup/resolve-outbound-target-oI7VpU4w.mjs} +1 -1
  31. package/dist/.setup/runtime-BfAdAEYT.mjs +8 -0
  32. package/dist/.setup/send-BQjMC41n.mjs +777 -0
  33. package/dist/{send-api-7wk6eQyW.js → .setup/send-api-BiAkPLr3.mjs} +155 -105
  34. package/dist/{session-errors-JuazczrA.js → .setup/session-errors-BAj9D2La.mjs} +1 -2
  35. package/dist/.setup/session-vUI41Jel.mjs +252 -0
  36. package/dist/.setup/session.runtime-B-V3rXP6.mjs +12 -0
  37. package/dist/{shared-CAxd15bp.js → .setup/setup-core--FfzntMG.mjs} +94 -63
  38. package/dist/{setup-finalize-BZucx24W.js → .setup/setup-finalize-DCruIciL.mjs} +17 -46
  39. package/dist/.setup/setup-plugin-api-B6ck_20D.mjs +3 -0
  40. package/dist/{setup-surface-BkVcd769.js → .setup/setup-surface-Zvj2cLzz.mjs} +4 -4
  41. package/dist/.setup/socket-timing-DhbVFjah.mjs +77 -0
  42. package/dist/{state-migrations-CAMTrs2U.js → .setup/state-migrations-D_BmQUR9.mjs} +8 -1
  43. package/dist/.setup/targets-runtime-C-GiVn6Y.mjs +188 -0
  44. package/dist/.setup/text-runtime-CUrq1mFq.mjs +4 -0
  45. package/dist/action-runtime-api.js +1 -1
  46. package/dist/action-runtime.runtime.js +1 -1
  47. package/dist/{call-tool-api.js → agent-tools-api.js} +26 -11
  48. package/dist/api.js +27 -17
  49. package/dist/auth-presence.js +1 -1
  50. package/dist/channel-config-api.js +1 -1
  51. package/dist/channel-plugin-api.js +1 -1
  52. package/dist/constants.js +2 -0
  53. package/dist/contract-api.js +5 -5
  54. package/dist/directory-contract-api.js +1 -1
  55. package/dist/doctor-contract-api.js +5 -46
  56. package/dist/index.js +4 -4
  57. package/dist/legacy-session-surface-api.js +1 -1
  58. package/dist/legacy-state-migrations-api.js +1 -1
  59. package/dist/light-runtime-api.js +4 -4
  60. package/dist/login-qr-runtime.js +1 -1
  61. package/dist/runtime-api.js +14 -14
  62. package/dist/runtime-setter-api.js +1 -1
  63. package/dist/security-contract-api.js +1 -1
  64. package/dist/setup-entry.js +4 -3
  65. package/dist/setup-plugin-api.js +1 -1
  66. package/dist/targets.js +2 -0
  67. package/node_modules/audio-decode/node_modules/@thi.ng/bitstream/package.json +4 -4
  68. package/node_modules/audio-decode/node_modules/@thi.ng/errors/package.json +4 -4
  69. package/node_modules/audio-decode/node_modules/audio-type/package.json +2 -3
  70. package/node_modules/baileys/node_modules/@protobufjs/aspromise/LICENSE +26 -0
  71. package/node_modules/baileys/node_modules/@protobufjs/aspromise/README.md +13 -0
  72. package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
  73. package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
  74. package/node_modules/baileys/node_modules/@protobufjs/aspromise/package.json +21 -0
  75. package/node_modules/baileys/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
  76. package/node_modules/baileys/node_modules/@protobufjs/base64/LICENSE +26 -0
  77. package/node_modules/baileys/node_modules/@protobufjs/base64/README.md +19 -0
  78. package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
  79. package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
  80. package/node_modules/baileys/node_modules/@protobufjs/base64/package.json +21 -0
  81. package/node_modules/baileys/node_modules/@protobufjs/base64/tests/index.js +46 -0
  82. package/node_modules/baileys/node_modules/@protobufjs/codegen/LICENSE +26 -0
  83. package/node_modules/baileys/node_modules/@protobufjs/codegen/README.md +49 -0
  84. package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
  85. package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -118
  86. package/node_modules/baileys/node_modules/@protobufjs/codegen/package.json +13 -0
  87. package/node_modules/baileys/node_modules/@protobufjs/codegen/tests/index.js +13 -0
  88. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
  89. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
  90. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/README.md +22 -0
  91. package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
  92. package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
  93. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/package.json +21 -0
  94. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
  95. package/node_modules/baileys/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
  96. package/node_modules/baileys/node_modules/@protobufjs/fetch/LICENSE +26 -0
  97. package/node_modules/baileys/node_modules/@protobufjs/fetch/README.md +13 -0
  98. package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
  99. package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
  100. package/node_modules/baileys/node_modules/@protobufjs/fetch/package.json +27 -0
  101. package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
  102. package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/index.js +158 -0
  103. package/node_modules/baileys/node_modules/@protobufjs/fetch/util/fs.js +11 -0
  104. package/node_modules/baileys/node_modules/@protobufjs/float/LICENSE +26 -0
  105. package/node_modules/baileys/node_modules/@protobufjs/float/README.md +102 -0
  106. package/node_modules/baileys/node_modules/@protobufjs/float/bench/index.js +87 -0
  107. package/node_modules/baileys/node_modules/@protobufjs/float/bench/suite.js +46 -0
  108. package/node_modules/baileys/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
  109. package/node_modules/baileys/node_modules/@protobufjs/float/package.json +26 -0
  110. package/node_modules/baileys/node_modules/@protobufjs/float/tests/index.js +100 -0
  111. package/node_modules/baileys/node_modules/@protobufjs/inquire/CHANGELOG.md +8 -0
  112. package/node_modules/baileys/node_modules/@protobufjs/inquire/LICENSE +26 -0
  113. package/node_modules/baileys/node_modules/@protobufjs/inquire/README.md +13 -0
  114. package/node_modules/baileys/node_modules/@protobufjs/inquire/index.d.ts +10 -0
  115. package/node_modules/baileys/node_modules/@protobufjs/inquire/index.js +38 -0
  116. package/node_modules/baileys/node_modules/@protobufjs/inquire/package.json +21 -0
  117. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/array.js +1 -0
  118. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +1 -0
  119. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +1 -0
  120. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/object.js +1 -0
  121. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/index.js +20 -0
  122. package/node_modules/baileys/node_modules/@protobufjs/path/LICENSE +26 -0
  123. package/node_modules/baileys/node_modules/@protobufjs/path/README.md +19 -0
  124. package/node_modules/baileys/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
  125. package/node_modules/baileys/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -100
  126. package/node_modules/baileys/node_modules/@protobufjs/path/package.json +21 -0
  127. package/node_modules/baileys/node_modules/@protobufjs/path/tests/index.js +60 -0
  128. package/node_modules/baileys/node_modules/@protobufjs/pool/.npmignore +3 -0
  129. package/node_modules/baileys/node_modules/@protobufjs/pool/LICENSE +26 -0
  130. package/node_modules/baileys/node_modules/@protobufjs/pool/README.md +13 -0
  131. package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
  132. package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
  133. package/node_modules/baileys/node_modules/@protobufjs/pool/package.json +21 -0
  134. package/node_modules/baileys/node_modules/@protobufjs/pool/tests/index.js +33 -0
  135. package/node_modules/baileys/node_modules/@protobufjs/utf8/LICENSE +26 -0
  136. package/node_modules/baileys/node_modules/@protobufjs/utf8/README.md +20 -0
  137. package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
  138. package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.js → @protobufjs/utf8/index.js} +104 -190
  139. package/node_modules/baileys/node_modules/@protobufjs/utf8/package.json +21 -0
  140. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
  141. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
  142. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/index.js +74 -0
  143. package/node_modules/baileys/node_modules/@types/node/LICENSE +21 -0
  144. package/node_modules/baileys/node_modules/@types/node/README.md +15 -0
  145. package/node_modules/baileys/node_modules/@types/node/assert/strict.d.ts +68 -0
  146. package/node_modules/baileys/node_modules/@types/node/assert.d.ts +1077 -0
  147. package/node_modules/baileys/node_modules/@types/node/async_hooks.d.ts +711 -0
  148. package/node_modules/baileys/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  149. package/node_modules/baileys/node_modules/@types/node/buffer.d.ts +1799 -0
  150. package/node_modules/baileys/node_modules/@types/node/child_process.d.ts +1362 -0
  151. package/node_modules/baileys/node_modules/@types/node/cluster.d.ts +432 -0
  152. package/node_modules/baileys/node_modules/@types/node/console.d.ts +93 -0
  153. package/node_modules/baileys/node_modules/@types/node/constants.d.ts +14 -0
  154. package/node_modules/baileys/node_modules/@types/node/crypto.d.ts +3954 -0
  155. package/node_modules/baileys/node_modules/@types/node/dgram.d.ts +537 -0
  156. package/node_modules/baileys/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
  157. package/node_modules/baileys/node_modules/@types/node/dns/promises.d.ts +497 -0
  158. package/node_modules/baileys/node_modules/@types/node/dns.d.ts +876 -0
  159. package/node_modules/baileys/node_modules/@types/node/domain.d.ts +150 -0
  160. package/node_modules/baileys/node_modules/@types/node/events.d.ts +1008 -0
  161. package/node_modules/baileys/node_modules/@types/node/ffi.d.ts +486 -0
  162. package/node_modules/baileys/node_modules/@types/node/fs/promises.d.ts +1471 -0
  163. package/node_modules/baileys/node_modules/@types/node/fs.d.ts +4786 -0
  164. package/node_modules/baileys/node_modules/@types/node/globals.d.ts +150 -0
  165. package/node_modules/baileys/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  166. package/node_modules/baileys/node_modules/@types/node/http.d.ts +2172 -0
  167. package/node_modules/baileys/node_modules/@types/node/http2.d.ts +2489 -0
  168. package/node_modules/baileys/node_modules/@types/node/https.d.ts +400 -0
  169. package/node_modules/baileys/node_modules/@types/node/index.d.ts +115 -0
  170. package/node_modules/baileys/node_modules/@types/node/inspector/promises.d.ts +35 -0
  171. package/node_modules/baileys/node_modules/@types/node/inspector.d.ts +264 -0
  172. package/node_modules/baileys/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  173. package/node_modules/baileys/node_modules/@types/node/module.d.ts +726 -0
  174. package/node_modules/baileys/node_modules/@types/node/net.d.ts +970 -0
  175. package/node_modules/baileys/node_modules/@types/node/os.d.ts +498 -0
  176. package/node_modules/baileys/node_modules/@types/node/package.json +155 -0
  177. package/node_modules/baileys/node_modules/@types/node/path/posix.d.ts +8 -0
  178. package/node_modules/baileys/node_modules/@types/node/path/win32.d.ts +8 -0
  179. package/node_modules/baileys/node_modules/@types/node/path.d.ts +178 -0
  180. package/node_modules/baileys/node_modules/@types/node/perf_hooks.d.ts +604 -0
  181. package/node_modules/baileys/node_modules/@types/node/process.d.ts +2217 -0
  182. package/node_modules/baileys/node_modules/@types/node/punycode.d.ts +89 -0
  183. package/node_modules/baileys/node_modules/@types/node/querystring.d.ts +139 -0
  184. package/node_modules/baileys/node_modules/@types/node/quic.d.ts +978 -0
  185. package/node_modules/baileys/node_modules/@types/node/readline/promises.d.ts +158 -0
  186. package/node_modules/baileys/node_modules/@types/node/readline.d.ts +508 -0
  187. package/node_modules/baileys/node_modules/@types/node/repl.d.ts +420 -0
  188. package/node_modules/baileys/node_modules/@types/node/sea.d.ts +47 -0
  189. package/node_modules/baileys/node_modules/@types/node/sqlite.d.ts +1123 -0
  190. package/node_modules/baileys/node_modules/@types/node/stream/consumers.d.ts +114 -0
  191. package/node_modules/baileys/node_modules/@types/node/stream/iter.d.ts +451 -0
  192. package/node_modules/baileys/node_modules/@types/node/stream/promises.d.ts +211 -0
  193. package/node_modules/baileys/node_modules/@types/node/stream/web.d.ts +300 -0
  194. package/node_modules/baileys/node_modules/@types/node/stream.d.ts +1806 -0
  195. package/node_modules/baileys/node_modules/@types/node/string_decoder.d.ts +27 -0
  196. package/node_modules/baileys/node_modules/@types/node/test/reporters.d.ts +59 -0
  197. package/node_modules/baileys/node_modules/@types/node/test.d.ts +2389 -0
  198. package/node_modules/baileys/node_modules/@types/node/timers/promises.d.ts +93 -0
  199. package/node_modules/baileys/node_modules/@types/node/timers.d.ts +149 -0
  200. package/node_modules/baileys/node_modules/@types/node/tls.d.ts +1193 -0
  201. package/node_modules/baileys/node_modules/@types/node/trace_events.d.ts +103 -0
  202. package/node_modules/baileys/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  203. package/node_modules/baileys/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  204. package/node_modules/baileys/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  205. package/node_modules/baileys/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  206. package/node_modules/baileys/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  207. package/node_modules/baileys/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  208. package/node_modules/baileys/node_modules/@types/node/tty.d.ts +225 -0
  209. package/node_modules/baileys/node_modules/@types/node/url.d.ts +556 -0
  210. package/node_modules/baileys/node_modules/@types/node/util/types.d.ts +558 -0
  211. package/node_modules/baileys/node_modules/@types/node/util.d.ts +1677 -0
  212. package/node_modules/baileys/node_modules/@types/node/v8.d.ts +1062 -0
  213. package/node_modules/baileys/node_modules/@types/node/vm.d.ts +1136 -0
  214. package/node_modules/baileys/node_modules/@types/node/wasi.d.ts +131 -0
  215. package/node_modules/baileys/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  216. package/node_modules/baileys/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  217. package/node_modules/baileys/node_modules/@types/node/web-globals/console.d.ts +9 -0
  218. package/node_modules/baileys/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  219. package/node_modules/baileys/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
  220. package/node_modules/baileys/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  221. package/node_modules/baileys/node_modules/@types/node/web-globals/events.d.ts +106 -0
  222. package/node_modules/baileys/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  223. package/node_modules/baileys/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  224. package/node_modules/baileys/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  225. package/node_modules/baileys/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  226. package/node_modules/baileys/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  227. package/node_modules/baileys/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  228. package/node_modules/baileys/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  229. package/node_modules/baileys/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  230. package/node_modules/baileys/node_modules/@types/node/web-globals/url.d.ts +24 -0
  231. package/node_modules/baileys/node_modules/@types/node/worker_threads.d.ts +669 -0
  232. package/node_modules/baileys/node_modules/@types/node/zlib/iter.d.ts +131 -0
  233. package/node_modules/baileys/node_modules/@types/node/zlib.d.ts +589 -0
  234. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -1
  235. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js +4 -11
  236. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -1
  237. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js +1 -1
  238. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +3 -3
  239. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
  240. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js +4 -11
  241. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
  242. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  243. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js.map +3 -3
  244. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -1
  245. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js +4 -11
  246. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -1
  247. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js +1 -1
  248. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +3 -3
  249. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -1
  250. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js +4 -11
  251. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -1
  252. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js +1 -1
  253. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js.map +3 -3
  254. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
  255. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js +4 -11
  256. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js.map +1 -1
  257. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  258. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js.map +3 -3
  259. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -1
  260. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js +4 -11
  261. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js.map +1 -1
  262. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js +1 -1
  263. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js.map +3 -3
  264. package/node_modules/baileys/node_modules/lru-cache/package.json +1 -1
  265. package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  266. package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.js +1 -7
  267. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameHeader.js +3 -23
  268. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  269. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  270. package/node_modules/baileys/node_modules/music-metadata/lib/mp4/AtomToken.js +13 -38
  271. package/node_modules/baileys/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  272. package/node_modules/baileys/node_modules/music-metadata/package.json +6 -6
  273. package/node_modules/baileys/node_modules/p-queue/dist/index.js +27 -37
  274. package/node_modules/baileys/node_modules/p-queue/package.json +1 -1
  275. package/node_modules/baileys/node_modules/protobufjs/README.md +553 -266
  276. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js +1985 -3177
  277. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  278. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  279. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  280. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js +1244 -1966
  281. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  282. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  283. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  284. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js +2005 -3330
  285. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  286. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  287. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  288. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/README.md +70 -3
  289. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
  290. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
  291. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/test.js +54 -0
  292. package/node_modules/baileys/node_modules/protobufjs/google/api/annotations.json +1 -3
  293. package/node_modules/baileys/node_modules/protobufjs/google/api/http.json +1 -2
  294. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/api.json +6 -12
  295. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.json +87 -170
  296. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.proto +8 -0
  297. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/source_context.json +1 -2
  298. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/type.json +7 -14
  299. package/node_modules/baileys/node_modules/protobufjs/index.d.ts +703 -1066
  300. package/node_modules/baileys/node_modules/protobufjs/package.json +52 -25
  301. package/node_modules/baileys/node_modules/protobufjs/scripts/postinstall.js +32 -0
  302. package/node_modules/baileys/node_modules/protobufjs/src/common.js +8 -14
  303. package/node_modules/baileys/node_modules/protobufjs/src/converter.js +51 -85
  304. package/node_modules/baileys/node_modules/protobufjs/src/decoder.js +61 -205
  305. package/node_modules/baileys/node_modules/protobufjs/src/encoder.js +7 -27
  306. package/node_modules/baileys/node_modules/protobufjs/src/enum.js +5 -18
  307. package/node_modules/baileys/node_modules/protobufjs/src/field.js +19 -71
  308. package/node_modules/baileys/node_modules/protobufjs/src/index-light.js +29 -29
  309. package/node_modules/baileys/node_modules/protobufjs/src/index-minimal.js +13 -12
  310. package/node_modules/baileys/node_modules/protobufjs/src/index.js +6 -6
  311. package/node_modules/baileys/node_modules/protobufjs/src/mapfield.js +8 -26
  312. package/node_modules/baileys/node_modules/protobufjs/src/message.js +11 -5
  313. package/node_modules/baileys/node_modules/protobufjs/src/method.js +7 -30
  314. package/node_modules/baileys/node_modules/protobufjs/src/namespace.js +10 -26
  315. package/node_modules/baileys/node_modules/protobufjs/src/object.js +31 -41
  316. package/node_modules/baileys/node_modules/protobufjs/src/oneof.js +1 -12
  317. package/node_modules/baileys/node_modules/protobufjs/src/parse.js +47 -169
  318. package/node_modules/baileys/node_modules/protobufjs/src/reader.js +50 -412
  319. package/node_modules/baileys/node_modules/protobufjs/src/reader_buffer.js +5 -31
  320. package/node_modules/baileys/node_modules/protobufjs/src/root.js +4 -16
  321. package/node_modules/baileys/node_modules/protobufjs/src/rpc/service.js +5 -18
  322. package/node_modules/baileys/node_modules/protobufjs/src/service.js +2 -15
  323. package/node_modules/baileys/node_modules/protobufjs/src/tokenize.js +1 -6
  324. package/node_modules/baileys/node_modules/protobufjs/src/type.js +36 -80
  325. package/node_modules/baileys/node_modules/protobufjs/src/typescript.jsdoc +15 -0
  326. package/node_modules/baileys/node_modules/protobufjs/src/util/longbits.js +6 -10
  327. package/node_modules/baileys/node_modules/protobufjs/src/util/minimal.js +54 -71
  328. package/node_modules/baileys/node_modules/protobufjs/src/util.js +17 -51
  329. package/node_modules/baileys/node_modules/protobufjs/src/verifier.js +14 -19
  330. package/node_modules/baileys/node_modules/protobufjs/src/wrappers.js +3 -2
  331. package/node_modules/baileys/node_modules/protobufjs/src/writer.js +191 -424
  332. package/node_modules/baileys/node_modules/protobufjs/src/writer_buffer.js +26 -41
  333. package/node_modules/baileys/node_modules/protobufjs/tsconfig.json +5 -3
  334. package/node_modules/baileys/node_modules/undici-types/LICENSE +21 -0
  335. package/node_modules/baileys/node_modules/undici-types/README.md +6 -0
  336. package/node_modules/baileys/node_modules/undici-types/agent.d.ts +30 -0
  337. package/node_modules/baileys/node_modules/undici-types/api.d.ts +43 -0
  338. package/node_modules/baileys/node_modules/undici-types/balanced-pool.d.ts +30 -0
  339. package/node_modules/baileys/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  340. package/node_modules/baileys/node_modules/undici-types/cache.d.ts +36 -0
  341. package/node_modules/baileys/node_modules/undici-types/client-stats.d.ts +15 -0
  342. package/node_modules/baileys/node_modules/undici-types/client.d.ts +129 -0
  343. package/node_modules/baileys/node_modules/undici-types/connector.d.ts +36 -0
  344. package/node_modules/baileys/node_modules/undici-types/content-type.d.ts +21 -0
  345. package/node_modules/baileys/node_modules/undici-types/cookies.d.ts +30 -0
  346. package/node_modules/baileys/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  347. package/node_modules/baileys/node_modules/undici-types/dispatcher.d.ts +253 -0
  348. package/node_modules/baileys/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
  349. package/node_modules/baileys/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  350. package/node_modules/baileys/node_modules/undici-types/errors.d.ts +177 -0
  351. package/node_modules/baileys/node_modules/undici-types/eventsource.d.ts +66 -0
  352. package/node_modules/baileys/node_modules/undici-types/fetch.d.ts +231 -0
  353. package/node_modules/baileys/node_modules/undici-types/formdata.d.ts +108 -0
  354. package/node_modules/baileys/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  355. package/node_modules/baileys/node_modules/undici-types/global-origin.d.ts +7 -0
  356. package/node_modules/baileys/node_modules/undici-types/h2c-client.d.ts +73 -0
  357. package/node_modules/baileys/node_modules/undici-types/handlers.d.ts +14 -0
  358. package/node_modules/baileys/node_modules/undici-types/header.d.ts +165 -0
  359. package/node_modules/baileys/node_modules/undici-types/index.d.ts +93 -0
  360. package/node_modules/baileys/node_modules/undici-types/interceptors.d.ts +80 -0
  361. package/node_modules/baileys/node_modules/undici-types/mock-agent.d.ts +68 -0
  362. package/node_modules/baileys/node_modules/undici-types/mock-call-history.d.ts +111 -0
  363. package/node_modules/baileys/node_modules/undici-types/mock-client.d.ts +27 -0
  364. package/node_modules/baileys/node_modules/undici-types/mock-errors.d.ts +12 -0
  365. package/node_modules/baileys/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  366. package/node_modules/baileys/node_modules/undici-types/mock-pool.d.ts +27 -0
  367. package/node_modules/baileys/node_modules/undici-types/package.json +55 -0
  368. package/node_modules/baileys/node_modules/undici-types/patch.d.ts +29 -0
  369. package/node_modules/baileys/node_modules/undici-types/pool-stats.d.ts +19 -0
  370. package/node_modules/baileys/node_modules/undici-types/pool.d.ts +39 -0
  371. package/node_modules/baileys/node_modules/undici-types/proxy-agent.d.ts +29 -0
  372. package/node_modules/baileys/node_modules/undici-types/readable.d.ts +68 -0
  373. package/node_modules/baileys/node_modules/undici-types/retry-agent.d.ts +8 -0
  374. package/node_modules/baileys/node_modules/undici-types/retry-handler.d.ts +125 -0
  375. package/node_modules/baileys/node_modules/undici-types/round-robin-pool.d.ts +39 -0
  376. package/node_modules/baileys/node_modules/undici-types/snapshot-agent.d.ts +113 -0
  377. package/node_modules/baileys/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  378. package/node_modules/baileys/node_modules/undici-types/util.d.ts +18 -0
  379. package/node_modules/baileys/node_modules/undici-types/utility.d.ts +7 -0
  380. package/node_modules/baileys/node_modules/undici-types/webidl.d.ts +346 -0
  381. package/node_modules/baileys/node_modules/undici-types/websocket.d.ts +188 -0
  382. package/node_modules/baileys/node_modules/ws/lib/permessage-deflate.js +3 -1
  383. package/node_modules/baileys/node_modules/ws/package.json +1 -1
  384. package/node_modules/typebox/build/compile/validator.d.mts +4 -1
  385. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  386. package/node_modules/typebox/build/guard/guard.mjs +2 -5
  387. package/node_modules/typebox/build/guard/string.mjs +4 -16
  388. package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
  389. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  390. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
  391. package/node_modules/typebox/build/typebox.d.mts +1 -1
  392. package/node_modules/typebox/build/typebox.mjs +1 -1
  393. package/node_modules/typebox/package.json +1 -1
  394. package/node_modules/typebox/readme.md +32 -29
  395. package/openclaw.plugin.json +239 -214
  396. package/package.json +11 -21
  397. package/dist/approval-reactions-Cu66aYdq.js +0 -373
  398. package/dist/channel.setup-pMwNVkCA.js +0 -19
  399. package/dist/config-schema-BQP5YCeK.js +0 -50
  400. package/dist/connection-controller-runtime-context-DG0tuYuw.js +0 -23
  401. package/dist/directory-config-DalGrfGN.js +0 -196
  402. package/dist/doctor-CwzVXKoE.js +0 -10
  403. package/dist/normalize-C7Hkc_vE.js +0 -2
  404. package/dist/question-reactions-CRsnyoMK.js +0 -142
  405. package/dist/runtime-BLlToOi6.js +0 -21
  406. package/dist/send-D37ddk22.js +0 -436
  407. package/dist/session.runtime-Nsqaehbd.js +0 -16
  408. package/dist/socket-close-DridEuzz.js +0 -622
  409. package/dist/targets-runtime-TMk0lGuy.js +0 -299
  410. package/dist/text-runtime-CaKLhowd.js +0 -4
  411. package/node_modules/baileys/node_modules/protobufjs/ext/README.md +0 -70
  412. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
  413. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
  414. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.js +0 -1356
  415. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
  416. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.d.ts +0 -20
  417. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
  418. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.js +0 -951
  419. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  420. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
  421. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.js +0 -1276
  422. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  423. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  424. package/node_modules/baileys/node_modules/protobufjs/src/typescript.js +0 -25
  425. /package/dist/{account-ids-CB5SOWjc.js → .setup/account-ids-CB5SOWjc.mjs} +0 -0
  426. /package/dist/{audio-preflight.runtime-C_glQhZY.js → .setup/audio-preflight.runtime-C_glQhZY.mjs} +0 -0
  427. /package/dist/{command-policy-BIOSHySD.js → .setup/command-policy-BIOSHySD.mjs} +0 -0
  428. /package/dist/{creds-files-B1kSWtBg.js → .setup/creds-files-B1kSWtBg.mjs} +0 -0
  429. /package/dist/{group-config-path-BGyzT9Lg.js → .setup/group-config-path-BGyzT9Lg.mjs} +0 -0
  430. /package/dist/{group-session-contract-DDnZSsJ1.js → .setup/group-session-contract-DDnZSsJ1.mjs} +0 -0
  431. /package/dist/{reply-resolver.runtime-Ded8D58Y.js → .setup/reply-resolver.runtime-Ded8D58Y.mjs} +0 -0
  432. /package/dist/{rolldown-runtime-D7D4PA-g.js → .setup/rolldown-runtime-D7D4PA-g.mjs} +0 -0
  433. /package/dist/{security-contract-nAzD945y.js → .setup/security-contract-nAzD945y.mjs} +0 -0
  434. /package/dist/{session-contract-DMTm6Q_L.js → .setup/session-contract-DMTm6Q_L.mjs} +0 -0
  435. /package/node_modules/baileys/node_modules/{protobufjs/src/util/float.d.ts → @protobufjs/float/index.d.ts} +0 -0
@@ -1,622 +0,0 @@
1
- import { o as resolveWebCredsBackupPath, s as resolveWebCredsPath, t as assertWebCredsPathRegularFileOrMissing } from "./creds-files-B1kSWtBg.js";
2
- import { E as writeWebCredsRawAtomically, S as enqueueCredsSave, T as writeCredsJsonAtomically, b as restoreCredsFromBackupIfNeeded, u as readCredsJsonRaw, w as waitForCredsSaveQueueWithTimeout, y as resolveDefaultWebAuthDir } from "./auth-store-DcEpIOmE.js";
3
- import { n as getStatusCode } from "./session-errors-JuazczrA.js";
4
- import { a as makeWASocket, i as makeCacheableSignalKeyStore, n as createBaileysSignalRepository, r as fetchLatestBaileysVersion, s as useMultiFileAuthState } from "./session.runtime-Nsqaehbd.js";
5
- import { VERSION, formatCliCommand } from "openclaw/plugin-sdk/cli-runtime";
6
- import { danger, getChildLogger, success, toPinoLikeLogger } from "openclaw/plugin-sdk/runtime-env";
7
- import { renderQrTerminal } from "openclaw/plugin-sdk/media-runtime";
8
- import { ensureDir, resolveUserPath } from "openclaw/plugin-sdk/text-utility-runtime";
9
- import fs from "node:fs/promises";
10
- import { parseStrictPositiveInteger, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
11
- import { FILE_LOCK_STALE_ERROR_CODE, FILE_LOCK_TIMEOUT_ERROR_CODE, acquireFileLock } from "openclaw/plugin-sdk/file-lock";
12
- import { randomUUID } from "node:crypto";
13
- import { createHttp1EnvHttpProxyAgent, createHttp1ProxyAgent, createNodeProxyAgent } from "openclaw/plugin-sdk/fetch-runtime";
14
- //#region extensions/whatsapp/src/connection-owner.ts
15
- const WHATSAPP_CONNECTION_OWNER_BUSY_CODE = "whatsapp_connection_owner_busy";
16
- var WhatsAppConnectionOwnerBusyError = class extends Error {
17
- constructor(authDir, options) {
18
- super("Another process owns this WhatsApp connection.", options);
19
- this.authDir = authDir;
20
- this.code = WHATSAPP_CONNECTION_OWNER_BUSY_CODE;
21
- this.name = "WhatsAppConnectionOwnerBusyError";
22
- }
23
- };
24
- const OWNER_LOCK_STALE_MS = 5 * 6e4;
25
- const GATEWAY_LOCAL_OWNER_WAIT_MS = 15e4;
26
- const processOwners = /* @__PURE__ */ new Map();
27
- function ownershipCancelledError(signal) {
28
- const reason = signal?.reason;
29
- return reason instanceof Error ? reason : new Error("WhatsApp connection ownership cancelled", reason === void 0 ? {} : { cause: reason });
30
- }
31
- async function waitForAbortableDelay(delayMs, signal) {
32
- if (signal?.aborted) throw ownershipCancelledError(signal);
33
- await new Promise((resolve, reject) => {
34
- const onAbort = () => {
35
- clearTimeout(timer);
36
- reject(ownershipCancelledError(signal));
37
- };
38
- const timer = setTimeout(() => {
39
- signal?.removeEventListener("abort", onAbort);
40
- resolve();
41
- }, delayMs);
42
- signal?.addEventListener("abort", onAbort, { once: true });
43
- });
44
- }
45
- async function reserveProcessOwner(params) {
46
- while (true) {
47
- if (params.signal?.aborted) throw ownershipCancelledError(params.signal);
48
- const current = processOwners.get(params.ownerPath);
49
- if (!current) {
50
- let resolveReleased = () => {};
51
- const owner = {
52
- released: new Promise((resolve) => {
53
- resolveReleased = resolve;
54
- }),
55
- resolveReleased,
56
- token: Symbol(params.ownerPath)
57
- };
58
- processOwners.set(params.ownerPath, owner);
59
- return owner;
60
- }
61
- if (!params.waitForLocalOwner) throw new WhatsAppConnectionOwnerBusyError(params.authDir);
62
- let timer;
63
- let onAbort;
64
- const outcome = await Promise.race([
65
- current.released.then(() => "released"),
66
- new Promise((resolve) => {
67
- timer = setTimeout(() => resolve("timed_out"), GATEWAY_LOCAL_OWNER_WAIT_MS);
68
- timer.unref?.();
69
- }),
70
- new Promise((resolve) => {
71
- onAbort = () => resolve("aborted");
72
- params.signal?.addEventListener("abort", onAbort, { once: true });
73
- })
74
- ]).finally(() => {
75
- if (timer) clearTimeout(timer);
76
- if (onAbort) params.signal?.removeEventListener("abort", onAbort);
77
- });
78
- if (outcome === "aborted") throw ownershipCancelledError(params.signal);
79
- if (outcome === "timed_out") throw new WhatsAppConnectionOwnerBusyError(params.authDir);
80
- }
81
- }
82
- function abandonProcessOwner(ownerPath, owner) {
83
- if (processOwners.get(ownerPath)?.token !== owner.token) return;
84
- processOwners.delete(ownerPath);
85
- owner.resolveReleased();
86
- }
87
- async function acquireOwnerLease(params) {
88
- const resolvedOwnerPath = resolveUserPath(params.authDir);
89
- await fs.mkdir(resolvedOwnerPath, { recursive: true });
90
- const ownerPath = await fs.realpath(resolvedOwnerPath);
91
- const processOwner = await reserveProcessOwner({
92
- authDir: params.authDir,
93
- ownerPath,
94
- signal: params.signal,
95
- waitForLocalOwner: params.waitForLocalOwner
96
- });
97
- let fileLock;
98
- let attempt = 0;
99
- while (true) {
100
- if (params.signal?.aborted) {
101
- abandonProcessOwner(ownerPath, processOwner);
102
- throw ownershipCancelledError(params.signal);
103
- }
104
- try {
105
- fileLock = await acquireFileLock(ownerPath, {
106
- retries: {
107
- retries: 0,
108
- factor: 1,
109
- minTimeout: 1,
110
- maxTimeout: 1
111
- },
112
- stale: OWNER_LOCK_STALE_MS,
113
- staleRecovery: "remove-if-unchanged"
114
- });
115
- break;
116
- } catch (error) {
117
- const code = error.code;
118
- if (code === FILE_LOCK_STALE_ERROR_CODE) {
119
- abandonProcessOwner(ownerPath, processOwner);
120
- throw new WhatsAppConnectionOwnerBusyError(params.authDir, { cause: error });
121
- }
122
- if (code !== FILE_LOCK_TIMEOUT_ERROR_CODE || attempt >= params.retries) {
123
- abandonProcessOwner(ownerPath, processOwner);
124
- if (code === FILE_LOCK_TIMEOUT_ERROR_CODE) throw new WhatsAppConnectionOwnerBusyError(params.authDir, { cause: error });
125
- throw error;
126
- }
127
- const delayMs = Math.min(100 * 1.5 ** attempt, 1e3);
128
- attempt += 1;
129
- await waitForAbortableDelay(delayMs, params.signal).catch((delayError) => {
130
- abandonProcessOwner(ownerPath, processOwner);
131
- throw delayError;
132
- });
133
- }
134
- }
135
- let releasePromise = null;
136
- return { release: async () => {
137
- if (!releasePromise) releasePromise = fileLock.release().then(() => {
138
- abandonProcessOwner(ownerPath, processOwner);
139
- }).catch((releaseError) => {
140
- releasePromise = null;
141
- throw releaseError;
142
- });
143
- await releasePromise;
144
- } };
145
- }
146
- /** Gateway owner waits for a bounded standalone lookup to finish before startup. */
147
- async function acquireWhatsAppGatewayConnectionOwner(authDir, signal) {
148
- return await acquireOwnerLease({
149
- authDir,
150
- retries: 150,
151
- signal,
152
- waitForLocalOwner: true
153
- });
154
- }
155
- /** Standalone lookup fails quickly when a gateway already owns the account. */
156
- async function acquireWhatsAppStandaloneConnectionOwner(authDir) {
157
- return await acquireOwnerLease({
158
- authDir,
159
- retries: 3,
160
- waitForLocalOwner: false
161
- });
162
- }
163
- //#endregion
164
- //#region extensions/whatsapp/src/socket-timing.ts
165
- const socketSendMessageQueueTails = /* @__PURE__ */ new WeakMap();
166
- const DEFAULT_WHATSAPP_SOCKET_TIMING = {
167
- keepAliveIntervalMs: 25e3,
168
- connectTimeoutMs: 6e4,
169
- defaultQueryTimeoutMs: 6e4
170
- };
171
- var WhatsAppSocketOperationTimeoutError = class extends Error {
172
- constructor(operation, timeoutMs) {
173
- super(`WhatsApp socket ${operation} timed out after ${timeoutMs}ms; delivery state is unknown`);
174
- this.operation = operation;
175
- this.timeoutMs = timeoutMs;
176
- this.deliveryState = "unknown";
177
- this.name = "WhatsAppSocketOperationTimeoutError";
178
- }
179
- };
180
- function resolveWhatsAppSocketTiming(overrides) {
181
- return {
182
- keepAliveIntervalMs: parseStrictPositiveInteger(overrides?.keepAliveIntervalMs) ?? DEFAULT_WHATSAPP_SOCKET_TIMING.keepAliveIntervalMs,
183
- connectTimeoutMs: parseStrictPositiveInteger(overrides?.connectTimeoutMs) ?? DEFAULT_WHATSAPP_SOCKET_TIMING.connectTimeoutMs,
184
- defaultQueryTimeoutMs: parseStrictPositiveInteger(overrides?.defaultQueryTimeoutMs) ?? DEFAULT_WHATSAPP_SOCKET_TIMING.defaultQueryTimeoutMs
185
- };
186
- }
187
- function isWhatsAppSocketOperationTimeoutError(error) {
188
- return error instanceof WhatsAppSocketOperationTimeoutError;
189
- }
190
- function resolveWhatsAppSocketOperationTimeoutMs(timeoutMs) {
191
- return resolveTimerTimeoutMs(timeoutMs, DEFAULT_WHATSAPP_SOCKET_TIMING.defaultQueryTimeoutMs);
192
- }
193
- async function runSerializedSocketSendMessage(sock, run) {
194
- const result = (socketSendMessageQueueTails.get(sock) ?? Promise.resolve()).then(run);
195
- const tail = result.then(() => void 0, () => void 0);
196
- socketSendMessageQueueTails.set(sock, tail);
197
- tail.then(() => {
198
- if (socketSendMessageQueueTails.get(sock) === tail) socketSendMessageQueueTails.delete(sock);
199
- });
200
- return await result;
201
- }
202
- async function withWhatsAppSocketOperationTimeout(operation, promise, timeoutMs, onTimeout) {
203
- const resolvedTimeoutMs = resolveWhatsAppSocketOperationTimeoutMs(timeoutMs);
204
- let timeout = null;
205
- try {
206
- return await Promise.race([promise, new Promise((_, reject) => {
207
- timeout = setTimeout(() => {
208
- onTimeout?.();
209
- reject(new WhatsAppSocketOperationTimeoutError(operation, resolvedTimeoutMs));
210
- }, resolvedTimeoutMs);
211
- timeout.unref?.();
212
- })]);
213
- } finally {
214
- if (timeout) clearTimeout(timeout);
215
- }
216
- }
217
- function createWhatsAppSocketOperationTimeoutAdapter(sock, timeoutMs, hooks) {
218
- const operationTimeoutMs = resolveWhatsAppSocketOperationTimeoutMs(timeoutMs);
219
- return {
220
- sendMessage: (jid, content, options) => {
221
- return runSerializedSocketSendMessage(sock, () => {
222
- const send = options ? sock.sendMessage(jid, content, options) : sock.sendMessage(jid, content);
223
- return withWhatsAppSocketOperationTimeout("sendMessage", send, operationTimeoutMs, hooks?.onSendMessageTimeout ? () => hooks.onSendMessageTimeout?.({
224
- jid,
225
- promise: send
226
- }) : void 0);
227
- });
228
- },
229
- sendPresenceUpdate: (presence, jid) => {
230
- return withWhatsAppSocketOperationTimeout("sendPresenceUpdate", jid === void 0 ? sock.sendPresenceUpdate(presence) : sock.sendPresenceUpdate(presence, jid), operationTimeoutMs);
231
- }
232
- };
233
- }
234
- //#endregion
235
- //#region extensions/whatsapp/src/session.ts
236
- const LOGGED_OUT_STATUS = 401;
237
- const WHATSAPP_WEBSOCKET_PROXY_TARGET = "https://mmg.whatsapp.net/";
238
- const CREDS_FLUSH_TIMEOUT_MESSAGE = "Queued WhatsApp creds save did not finish before auth bootstrap; skipping repair and continuing with primary creds.";
239
- const OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV = "OPENCLAW_WHATSAPP_WEB_SOCKET_URL";
240
- async function rejectUnsafeWebCredsPath(authDir) {
241
- await assertWebCredsPathRegularFileOrMissing(resolveWebCredsPath(authDir));
242
- }
243
- function enqueueSaveCreds(authDir, saveCreds, logger, options) {
244
- enqueueCredsSave(authDir, () => safeSaveCreds({
245
- authDir,
246
- saveCreds,
247
- logger,
248
- beforeCredentialPersistence: options?.beforeCredentialPersistence
249
- }), (err) => {
250
- logger.warn({ error: String(err) }, "WhatsApp creds save queue error");
251
- options?.onError?.(err);
252
- });
253
- }
254
- async function safeSaveCreds(params) {
255
- let backup;
256
- try {
257
- const credsPath = resolveWebCredsPath(params.authDir);
258
- const backupPath = resolveWebCredsBackupPath(params.authDir);
259
- const raw = readCredsJsonRaw(credsPath);
260
- if (raw) try {
261
- JSON.parse(raw);
262
- backup = {
263
- content: raw,
264
- filePath: backupPath
265
- };
266
- } catch {}
267
- } catch {}
268
- if (backup) {
269
- await params.beforeCredentialPersistence?.();
270
- try {
271
- await writeWebCredsRawAtomically({
272
- filePath: backup.filePath,
273
- content: backup.content,
274
- tempPrefix: ".creds.backup"
275
- });
276
- } catch {}
277
- }
278
- await params.beforeCredentialPersistence?.();
279
- try {
280
- await Promise.resolve(params.saveCreds());
281
- } catch (err) {
282
- params.logger.warn({ error: String(err) }, "failed saving WhatsApp creds");
283
- if (params.beforeCredentialPersistence) throw err;
284
- }
285
- }
286
- function abortSocketAfterCredentialPersistenceFailure(sock, error) {
287
- const failure = error instanceof Error ? error : /* @__PURE__ */ new Error("WhatsApp credential persistence rejected");
288
- const closeWebSocket = () => {
289
- try {
290
- sock.ws?.close?.();
291
- } catch {}
292
- };
293
- try {
294
- sock.end(failure).catch(closeWebSocket);
295
- } catch {
296
- closeWebSocket();
297
- }
298
- }
299
- async function printTerminalQr(qr) {
300
- const output = await renderQrTerminal(qr, { small: true });
301
- process.stdout.write(output.endsWith("\n") ? output : `${output}\n`);
302
- }
303
- function resolveWaWebSocketUrl(value) {
304
- if (typeof value !== "string") return value;
305
- return value.trim() || void 0;
306
- }
307
- function resolveEnvWaWebSocketUrl() {
308
- const value = resolveWaWebSocketUrl(process.env[OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV]);
309
- if (!value) return;
310
- let url;
311
- try {
312
- url = new URL(value);
313
- } catch {
314
- throw new Error(`${OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV} must be a valid URL.`);
315
- }
316
- if (url.protocol !== "ws:" && url.protocol !== "wss:") throw new Error(`${OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV} must use ws:// or wss://.`);
317
- return url.toString();
318
- }
319
- /**
320
- * Create a Baileys socket backed by the multi-file auth store we keep on disk.
321
- * Consumers can opt into QR printing for interactive login flows.
322
- */
323
- async function createWaSocket(printQr, verbose, opts = {}) {
324
- return await createWaSocketInternal(printQr, verbose, opts, "normal");
325
- }
326
- async function createWaSocketInternal(printQr, verbose, opts, receiveMode) {
327
- const logger = toPinoLikeLogger(getChildLogger({ module: "baileys" }, { level: verbose ? "info" : "silent" }), verbose ? "info" : "silent");
328
- const authDir = resolveUserPath(opts.authDir ?? resolveDefaultWebAuthDir());
329
- await rejectUnsafeWebCredsPath(authDir);
330
- await opts.beforeCredentialPersistence?.();
331
- await ensureDir(authDir);
332
- const sessionLogger = getChildLogger({ module: "web-session" });
333
- if (await waitForCredsSaveQueueWithTimeout(authDir) === "timed_out") sessionLogger.warn({ authDir }, CREDS_FLUSH_TIMEOUT_MESSAGE);
334
- else {
335
- await rejectUnsafeWebCredsPath(authDir);
336
- await restoreCredsFromBackupIfNeeded(authDir, { beforeCredentialPersistence: opts.beforeCredentialPersistence });
337
- }
338
- await rejectUnsafeWebCredsPath(authDir);
339
- const { state } = await useMultiFileAuthState(authDir);
340
- const saveCreds = async () => {
341
- await writeCredsJsonAtomically(authDir, state.creds);
342
- };
343
- const { version } = await fetchLatestBaileysVersion();
344
- const waWebSocketUrl = resolveWaWebSocketUrl(opts.waWebSocketUrl) ?? resolveEnvWaWebSocketUrl();
345
- const agent = await resolveEnvProxyAgent(sessionLogger);
346
- const fetchAgent = await resolveEnvFetchDispatcher(sessionLogger, agent);
347
- const socketTiming = {
348
- keepAliveIntervalMs: opts.keepAliveIntervalMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.keepAliveIntervalMs,
349
- connectTimeoutMs: opts.connectTimeoutMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.connectTimeoutMs,
350
- defaultQueryTimeoutMs: opts.defaultQueryTimeoutMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.defaultQueryTimeoutMs
351
- };
352
- const socketRef = {};
353
- let pendingSocketAbort;
354
- const reportCredentialPersistenceError = (error) => {
355
- if (socketRef.current) abortSocketAfterCredentialPersistenceFailure(socketRef.current, error);
356
- else pendingSocketAbort = { error };
357
- opts.onCredentialPersistenceError?.(error);
358
- };
359
- const cachedSignalKeys = makeCacheableSignalKeyStore(opts.beforeCredentialPersistence ? {
360
- ...state.keys,
361
- async set(data) {
362
- await opts.beforeCredentialPersistence?.();
363
- await state.keys.set(data);
364
- }
365
- } : state.keys, logger);
366
- const signalKeys = opts.beforeCredentialPersistence ? {
367
- ...cachedSignalKeys,
368
- get(type, ids) {
369
- const task = Promise.resolve(cachedSignalKeys.get(type, ids));
370
- opts.onCredentialPersistenceTask?.(task);
371
- return task;
372
- },
373
- set(data) {
374
- const task = (async () => {
375
- try {
376
- await cachedSignalKeys.set(data);
377
- } catch (error) {
378
- reportCredentialPersistenceError(error);
379
- throw error;
380
- }
381
- })();
382
- opts.onCredentialPersistenceTask?.(task);
383
- return task;
384
- }
385
- } : cachedSignalKeys;
386
- const makeSignalRepository = opts.onCredentialPersistenceTask ? (...args) => {
387
- const repository = createBaileysSignalRepository(...args);
388
- const storeLidPnMappings = repository.lidMapping.storeLIDPNMappings.bind(repository.lidMapping);
389
- repository.lidMapping.storeLIDPNMappings = (...storeArgs) => {
390
- const task = storeLidPnMappings(...storeArgs);
391
- opts.onCredentialPersistenceTask?.(task);
392
- task.then(void 0, reportCredentialPersistenceError);
393
- return task;
394
- };
395
- const migrateSession = repository.migrateSession.bind(repository);
396
- repository.migrateSession = (...migrateArgs) => {
397
- const task = migrateSession(...migrateArgs);
398
- opts.onCredentialPersistenceTask?.(task);
399
- task.then(void 0, reportCredentialPersistenceError);
400
- return task;
401
- };
402
- return repository;
403
- } : void 0;
404
- const sock = makeWASocket({
405
- auth: {
406
- creds: state.creds,
407
- keys: signalKeys
408
- },
409
- version,
410
- logger,
411
- printQRInTerminal: false,
412
- browser: [
413
- "openclaw",
414
- "cli",
415
- VERSION
416
- ],
417
- syncFullHistory: false,
418
- fireInitQueries: receiveMode !== "directory",
419
- markOnlineOnConnect: false,
420
- ...socketTiming,
421
- agent,
422
- fetchAgent,
423
- ...makeSignalRepository ? { makeSignalRepository } : {},
424
- ...waWebSocketUrl ? { waWebSocketUrl } : {},
425
- ...opts.getMessage ? { getMessage: opts.getMessage } : {},
426
- ...opts.cachedGroupMetadata ? { cachedGroupMetadata: opts.cachedGroupMetadata } : {}
427
- });
428
- if (receiveMode === "directory") for (const event of [
429
- "CB:message",
430
- "CB:call",
431
- "CB:receipt",
432
- "CB:notification",
433
- "CB:ack,class:message",
434
- "CB:presence",
435
- "CB:chatstate",
436
- "CB:ib,,dirty",
437
- "CB:ib,,offline_preview",
438
- "CB:ib,,offline",
439
- "CB:ib,,edge_routing"
440
- ]) sock.ws.removeAllListeners(event);
441
- socketRef.current = sock;
442
- if (pendingSocketAbort) abortSocketAfterCredentialPersistenceFailure(sock, pendingSocketAbort.error);
443
- sock.ev.on("creds.update", () => enqueueSaveCreds(authDir, saveCreds, sessionLogger, {
444
- beforeCredentialPersistence: opts.beforeCredentialPersistence,
445
- onError: reportCredentialPersistenceError
446
- }));
447
- sock.ev.on("connection.update", (update) => {
448
- (async () => {
449
- try {
450
- const { connection, lastDisconnect, qr } = update;
451
- if (qr) {
452
- opts.onQr?.(qr);
453
- if (printQr) {
454
- console.log("Open the WhatsApp app, go to Linked Devices, then scan this QR:");
455
- printTerminalQr(qr).catch((err) => {
456
- sessionLogger.warn({ error: String(err) }, "failed rendering WhatsApp QR");
457
- });
458
- }
459
- }
460
- if (connection === "close") {
461
- if (getStatusCode(lastDisconnect?.error) === LOGGED_OUT_STATUS) console.error(danger(`WhatsApp session logged out. Run: ${formatCliCommand("openclaw channels login")}`));
462
- }
463
- if (connection === "open" && verbose) console.log(success("WhatsApp Web connected."));
464
- } catch (err) {
465
- sessionLogger.error({ error: String(err) }, "connection.update handler error");
466
- }
467
- })();
468
- });
469
- if (sock.ws && typeof sock.ws.on === "function") sock.ws.on("error", (err) => {
470
- sessionLogger.error({ error: String(err) }, "WebSocket error");
471
- });
472
- return sock;
473
- }
474
- async function createWaDirectorySocket(authDir) {
475
- return await createWaSocketInternal(false, false, { authDir }, "directory");
476
- }
477
- async function resolveEnvProxyAgent(logger) {
478
- try {
479
- const agent = createNodeProxyAgent({
480
- mode: "env",
481
- targetUrl: WHATSAPP_WEBSOCKET_PROXY_TARGET,
482
- protocol: "https"
483
- });
484
- if (!agent) return;
485
- logger.info("Using ambient env proxy for WhatsApp WebSocket connection");
486
- return agent;
487
- } catch (error) {
488
- logger.warn({ error: String(error) }, "Failed to initialize env proxy agent for WhatsApp WebSocket connection");
489
- return;
490
- }
491
- }
492
- async function resolveEnvFetchDispatcher(logger, agent) {
493
- const proxyUrl = resolveProxyUrlFromAgent(agent);
494
- const envProxyUrl = resolveEnvHttpsProxyUrl();
495
- if (!proxyUrl && !envProxyUrl) return;
496
- try {
497
- return proxyUrl ? createHttp1ProxyAgent({ uri: proxyUrl }) : createHttp1EnvHttpProxyAgent();
498
- } catch (error) {
499
- logger.warn({ error: String(error) }, "Failed to initialize env proxy dispatcher for WhatsApp media uploads");
500
- return;
501
- }
502
- }
503
- function resolveProxyUrlFromAgent(agent) {
504
- if (typeof agent === "object" && agent !== null && "getProxyForUrl" in agent && typeof agent.getProxyForUrl === "function") {
505
- const proxyUrl = agent.getProxyForUrl(WHATSAPP_WEBSOCKET_PROXY_TARGET);
506
- return typeof proxyUrl === "string" && proxyUrl.length > 0 ? proxyUrl : void 0;
507
- }
508
- if (typeof agent !== "object" || agent === null || !("proxy" in agent)) return;
509
- const proxy = agent.proxy;
510
- if (proxy instanceof URL) return proxy.toString();
511
- return typeof proxy === "string" && proxy.length > 0 ? proxy : void 0;
512
- }
513
- function resolveEnvHttpsProxyUrl(env = process.env) {
514
- const lowerHttpsProxy = normalizeEnvProxyValue(env.https_proxy);
515
- const lowerHttpProxy = normalizeEnvProxyValue(env.http_proxy);
516
- const httpsProxy = lowerHttpsProxy !== void 0 ? lowerHttpsProxy : normalizeEnvProxyValue(env.HTTPS_PROXY);
517
- const httpProxy = lowerHttpProxy !== void 0 ? lowerHttpProxy : normalizeEnvProxyValue(env.HTTP_PROXY);
518
- return httpsProxy ?? httpProxy ?? void 0;
519
- }
520
- function normalizeEnvProxyValue(value) {
521
- if (typeof value !== "string") return;
522
- const trimmed = value.trim();
523
- return trimmed.length > 0 ? trimmed : null;
524
- }
525
- async function waitForWaConnection(sock, options = { timeout: "none" }) {
526
- return new Promise((resolve, reject) => {
527
- const evWithOff = sock.ev;
528
- let timer;
529
- const cleanup = () => {
530
- evWithOff.off?.("connection.update", handler);
531
- if (timer) {
532
- clearTimeout(timer);
533
- timer = void 0;
534
- }
535
- };
536
- const handler = (...args) => {
537
- const update = args[0] ?? {};
538
- if (update.connection === "open") {
539
- cleanup();
540
- resolve();
541
- }
542
- if (update.connection === "close") {
543
- cleanup();
544
- reject(toLintErrorObject(update.lastDisconnect?.error ?? update.lastDisconnect ?? /* @__PURE__ */ new Error("Connection closed"), "Non-Error rejection"));
545
- }
546
- };
547
- sock.ev.on("connection.update", handler);
548
- if ("timeoutMs" in options) {
549
- const timeoutMs = options.timeoutMs;
550
- timer = setTimeout(() => {
551
- cleanup();
552
- reject(createConnectionTimeoutError(timeoutMs));
553
- }, timeoutMs);
554
- timer.unref?.();
555
- }
556
- });
557
- }
558
- function newConnectionId() {
559
- return randomUUID();
560
- }
561
- function toLintErrorObject(value, fallbackMessage) {
562
- if (value instanceof Error) return value;
563
- if (typeof value === "string") return new Error(value);
564
- const error = new Error(fallbackMessage, { cause: value });
565
- if (typeof value === "object" && value !== null || typeof value === "function") Object.assign(error, value);
566
- return error;
567
- }
568
- function createConnectionTimeoutError(timeoutMs) {
569
- const error = /* @__PURE__ */ new Error(`WhatsApp connection timed out after ${timeoutMs}ms`);
570
- Object.assign(error, { output: { statusCode: 408 } });
571
- return error;
572
- }
573
- //#endregion
574
- //#region extensions/whatsapp/src/socket-close.ts
575
- const SOCKET_CLOSE_TIMEOUT_MS = 15e3;
576
- async function withCloseTimeout(task, operationName) {
577
- let timer;
578
- await Promise.race([task, new Promise((_resolve, reject) => {
579
- timer = setTimeout(() => reject(/* @__PURE__ */ new Error(`WhatsApp ${operationName} timed out`)), SOCKET_CLOSE_TIMEOUT_MS);
580
- })]).finally(() => {
581
- if (timer) clearTimeout(timer);
582
- });
583
- }
584
- async function waitForTransportClose(ws, operation, operationName) {
585
- let onClose;
586
- const closed = ws.isClosed ? Promise.resolve() : new Promise((resolve) => {
587
- onClose = resolve;
588
- ws.once("close", onClose);
589
- if (ws.isClosed) onClose();
590
- });
591
- try {
592
- await withCloseTimeout(Promise.all([Promise.resolve(operation), closed]), operationName);
593
- } finally {
594
- if (onClose) ws.removeListener("close", onClose);
595
- }
596
- }
597
- /** Close Baileys and verify the transport state before connection ownership moves. */
598
- async function closeWhatsAppSocketAndWait(sock, reason) {
599
- const errors = [];
600
- try {
601
- const endResult = sock.end(new Error(reason));
602
- if (sock.ws.isClosed) {
603
- await waitForTransportClose(sock.ws, endResult, "socket end");
604
- return;
605
- }
606
- if (sock.ws.isClosing) await waitForTransportClose(sock.ws, endResult, "socket end");
607
- else await withCloseTimeout(Promise.resolve(endResult), "socket end");
608
- } catch (error) {
609
- errors.push(error);
610
- }
611
- if (sock.ws.isClosed) return;
612
- try {
613
- const closeResult = sock.ws.close();
614
- await waitForTransportClose(sock.ws, closeResult, "WebSocket close");
615
- } catch (error) {
616
- errors.push(error);
617
- }
618
- if (sock.ws.isClosed) return;
619
- throw new AggregateError(errors, "WhatsApp socket close could not be confirmed");
620
- }
621
- //#endregion
622
- export { waitForWaConnection as a, isWhatsAppSocketOperationTimeoutError as c, withWhatsAppSocketOperationTimeout as d, renderQrTerminal as f, acquireWhatsAppStandaloneConnectionOwner as h, newConnectionId as i, resolveWhatsAppSocketOperationTimeoutMs as l, acquireWhatsAppGatewayConnectionOwner as m, createWaDirectorySocket as n, DEFAULT_WHATSAPP_SOCKET_TIMING as o, WhatsAppConnectionOwnerBusyError as p, createWaSocket as r, createWhatsAppSocketOperationTimeoutAdapter as s, closeWhatsAppSocketAndWait as t, resolveWhatsAppSocketTiming as u };