@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,16 +1,17 @@
1
- import { n as isWhatsAppNewsletterJid } from "./normalize-target-CugRyONv.js";
2
- import { l as resolveWhatsAppDocumentFileName } from "./send-D37ddk22.js";
3
- import "./normalize-C7Hkc_vE.js";
4
- import { c as toWhatsappJid, l as toWhatsappJidWithLid, r as jidToE164 } from "./targets-runtime-TMk0lGuy.js";
5
- import "./text-runtime-CaKLhowd.js";
6
- import { i as buildQuotedMessageOptions } from "./group-session-key-DVMZlO3x.js";
7
- import { c as resolveComparableIdentity } from "./identity-CPrT5aEU.js";
1
+ import { n as isWhatsAppNewsletterJid } from "./normalize-target-bVWjgftN.mjs";
2
+ import { u as resolveWhatsAppDocumentFileName } from "./send-BQjMC41n.mjs";
3
+ import "./normalize-eddWWsNV.mjs";
4
+ import { c as toWhatsappJidWithLid, r as jidToE164, s as toWhatsappJid } from "./targets-runtime-C-GiVn6Y.mjs";
5
+ import "./text-runtime-CUrq1mFq.mjs";
6
+ import { i as buildQuotedMessageOptions } from "./group-session-key-CEwPRRRK.mjs";
7
+ import { c as resolveComparableIdentity } from "./identity-CDB1bT-p.mjs";
8
8
  import { normalizeLowercaseStringOrEmpty, normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
9
- import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
10
9
  import { createMessageReceiptFromOutboundResults, listMessageReceiptPlatformIds } from "openclaw/plugin-sdk/channel-outbound";
10
+ import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
11
11
  import { getImageMetadata, resizeToJpeg } from "openclaw/plugin-sdk/media-runtime";
12
12
  import { formatLocationText } from "openclaw/plugin-sdk/channel-inbound";
13
13
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent, normalizeMessageContent as normalizeMessageContent$1 } from "baileys";
14
+ import "openclaw/plugin-sdk/media-store";
14
15
  import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
15
16
  //#region extensions/whatsapp/src/vcard.ts
16
17
  const ALLOWED_VCARD_KEYS = /* @__PURE__ */ new Set([
@@ -73,35 +74,86 @@ function normalizeVcardPhone(value) {
73
74
  return trimmed;
74
75
  }
75
76
  //#endregion
76
- //#region extensions/whatsapp/src/inbound/media-mimetype.ts
77
- /**
78
- * Resolve the MIME type for an inbound media message.
79
- * Falls back to WhatsApp's standard formats when Baileys omits the MIME.
80
- */
81
- function resolveInboundMediaMimetype(message) {
82
- const explicit = message.imageMessage?.mimetype ?? message.videoMessage?.mimetype ?? message.documentMessage?.mimetype ?? message.audioMessage?.mimetype ?? message.stickerMessage?.mimetype ?? void 0;
83
- if (explicit) return explicit;
84
- if (message.audioMessage) return "audio/ogg; codecs=opus";
85
- if (message.imageMessage) return "image/jpeg";
86
- if (message.videoMessage) return "video/mp4";
87
- if (message.stickerMessage) return "image/webp";
88
- }
89
- //#endregion
90
77
  //#region extensions/whatsapp/src/inbound/extract.ts
78
+ const MESSAGE_WRAPPER_KEYS = [
79
+ "botInvokeMessage",
80
+ "ephemeralMessage",
81
+ "viewOnceMessage",
82
+ "viewOnceMessageV2",
83
+ "viewOnceMessageV2Extension",
84
+ "documentWithCaptionMessage",
85
+ "groupMentionedMessage"
86
+ ];
87
+ const MESSAGE_CONTENT_KEYS = [
88
+ "conversation",
89
+ "extendedTextMessage",
90
+ "imageMessage",
91
+ "videoMessage",
92
+ "audioMessage",
93
+ "documentMessage",
94
+ "stickerMessage",
95
+ "locationMessage",
96
+ "liveLocationMessage",
97
+ "contactMessage",
98
+ "contactsArrayMessage",
99
+ "buttonsResponseMessage",
100
+ "listResponseMessage",
101
+ "templateButtonReplyMessage",
102
+ "interactiveResponseMessage",
103
+ "buttonsMessage",
104
+ "listMessage"
105
+ ];
106
+ function fallbackNormalizeMessageContent(message) {
107
+ let current = message;
108
+ while (current && typeof current === "object") {
109
+ let unwrapped = false;
110
+ for (const key of MESSAGE_WRAPPER_KEYS) {
111
+ const candidate = current[key];
112
+ if (candidate && typeof candidate === "object" && "message" in candidate && candidate.message) {
113
+ current = candidate.message;
114
+ unwrapped = true;
115
+ break;
116
+ }
117
+ }
118
+ if (!unwrapped) break;
119
+ }
120
+ return current;
121
+ }
122
+ function normalizeMessage(message) {
123
+ if (typeof normalizeMessageContent === "function") return normalizeMessageContent(message);
124
+ return fallbackNormalizeMessageContent(message);
125
+ }
126
+ function fallbackGetContentType(message) {
127
+ const normalized = fallbackNormalizeMessageContent(message);
128
+ if (!normalized || typeof normalized !== "object") return;
129
+ for (const key of MESSAGE_CONTENT_KEYS) if (normalized[key] != null) return key;
130
+ }
131
+ function getMessageContentType(message) {
132
+ if (typeof getContentType === "function") return getContentType(message);
133
+ return fallbackGetContentType(message);
134
+ }
135
+ function extractMessage(message) {
136
+ if (typeof extractMessageContent === "function") return extractMessageContent(message);
137
+ const normalized = fallbackNormalizeMessageContent(message);
138
+ const contentType = fallbackGetContentType(normalized);
139
+ if (!normalized || !contentType || contentType === "conversation") return normalized;
140
+ const candidate = normalized[contentType];
141
+ return candidate && typeof candidate === "object" ? candidate : normalized;
142
+ }
91
143
  function getFutureProofInnerMessage(message) {
92
- const contentType = getContentType(message);
144
+ const contentType = getMessageContentType(message);
93
145
  const candidate = contentType ? message[contentType] : void 0;
94
146
  if (candidate && typeof candidate === "object" && "message" in candidate && candidate.message && typeof candidate.message === "object") {
95
- const inner = normalizeMessageContent(candidate.message);
147
+ const inner = normalizeMessage(candidate.message);
96
148
  if (inner) {
97
- const innerType = getContentType(inner);
149
+ const innerType = getMessageContentType(inner);
98
150
  if (innerType && innerType !== contentType) return inner;
99
151
  }
100
152
  }
101
153
  }
102
154
  function buildMessageChain(message) {
103
155
  const chain = [];
104
- let current = normalizeMessageContent(message);
156
+ let current = normalizeMessage(message);
105
157
  while (current && chain.length < 4) {
106
158
  chain.push(current);
107
159
  current = getFutureProofInnerMessage(current);
@@ -112,7 +164,7 @@ function unwrapMessage(message) {
112
164
  return buildMessageChain(message).at(-1);
113
165
  }
114
166
  function extractContextInfoFromMessage(message) {
115
- const contentType = getContentType(message);
167
+ const contentType = getMessageContentType(message);
116
168
  const candidate = contentType ? message[contentType] : void 0;
117
169
  const contextInfo = candidate && typeof candidate === "object" && "contextInfo" in candidate ? candidate.contextInfo : void 0;
118
170
  if (contextInfo) return contextInfo;
@@ -158,7 +210,7 @@ function extractMentionedJids(rawMessage) {
158
210
  function extractText(rawMessage) {
159
211
  const message = unwrapMessage(rawMessage);
160
212
  if (!message) return;
161
- const extracted = extractMessageContent(message);
213
+ const extracted = extractMessage(message);
162
214
  const candidates = [message, extracted && extracted !== message ? extracted : void 0];
163
215
  for (const candidate of candidates) {
164
216
  if (!candidate) continue;
@@ -184,14 +236,14 @@ function extractExternalAdReplyContext(rawMessage) {
184
236
  body
185
237
  } : void 0;
186
238
  }
187
- function extractMediaKind(rawMessage) {
239
+ function extractMediaPlaceholder(rawMessage) {
188
240
  const message = unwrapMessage(rawMessage);
189
241
  if (!message) return;
190
- if (message.imageMessage) return "image";
191
- if (message.videoMessage) return "video";
192
- if (message.audioMessage) return "audio";
193
- if (message.documentMessage) return "document";
194
- if (message.stickerMessage) return "sticker";
242
+ if (message.imageMessage) return "<media:image>";
243
+ if (message.videoMessage) return message.videoMessage.gifPlayback === true ? "<media:gif>" : "<media:video>";
244
+ if (message.audioMessage) return "<media:audio>";
245
+ if (message.documentMessage) return "<media:document>";
246
+ if (message.stickerMessage) return "<media:sticker>";
195
247
  }
196
248
  function extractContactPlaceholder(rawMessage) {
197
249
  const contactContext = extractContactContext(rawMessage);
@@ -285,35 +337,25 @@ function describeReplyContext(rawMessage) {
285
337
  const message = unwrapMessage(rawMessage);
286
338
  if (!message) return null;
287
339
  const contextInfo = extractContextInfo(message);
288
- const quoted = normalizeMessageContent(contextInfo?.quotedMessage);
289
- if (!quoted && !contextInfo?.stanzaId) return null;
290
- const senderJid = contextInfo?.participant ?? void 0;
291
- const sender = resolveComparableIdentity({
292
- jid: senderJid,
293
- label: senderJid ? jidToE164(senderJid) ?? senderJid : "unknown sender"
294
- });
295
- if (!quoted) return {
296
- id: contextInfo?.stanzaId || void 0,
297
- body: "[quoted message unavailable]",
298
- sender
299
- };
340
+ const quoted = normalizeMessage(contextInfo?.quotedMessage);
341
+ if (!quoted) return null;
300
342
  const location = extractLocationData(quoted);
301
343
  const locationText = location ? formatLocationText(location) : void 0;
302
- const body = [extractText(quoted), locationText].filter(Boolean).join("\n").trim();
303
- const mediaKind = extractMediaKind(quoted);
304
- const media = mediaKind ? {
305
- kind: mediaKind,
306
- contentType: resolveInboundMediaMimetype(quoted)
307
- } : void 0;
308
- if (!body && !media) {
309
- const quotedType = quoted ? getContentType(quoted) : void 0;
344
+ let body = [extractText(quoted), locationText].filter(Boolean).join("\n").trim();
345
+ if (!body) body = extractMediaPlaceholder(quoted);
346
+ if (!body) {
347
+ const quotedType = quoted ? getMessageContentType(quoted) : void 0;
310
348
  logVerbose(`Quoted message missing extractable body${quotedType ? ` (type ${quotedType})` : ""}`);
311
349
  return null;
312
350
  }
351
+ const senderJid = contextInfo?.participant ?? void 0;
352
+ const sender = resolveComparableIdentity({
353
+ jid: senderJid,
354
+ label: senderJid ? jidToE164(senderJid) ?? senderJid : "unknown sender"
355
+ });
313
356
  return {
314
357
  id: contextInfo?.stanzaId || void 0,
315
- body: body ?? "",
316
- media,
358
+ body,
317
359
  sender
318
360
  };
319
361
  }
@@ -331,12 +373,26 @@ function hasInteractiveResponseContent(message) {
331
373
  function hasInboundUserContent(rawMessage) {
332
374
  if (!rawMessage) return false;
333
375
  if (extractText(rawMessage)) return true;
334
- if (extractMediaKind(rawMessage)) return true;
376
+ if (extractMediaPlaceholder(rawMessage)) return true;
335
377
  if (extractLocationData(rawMessage)) return true;
336
378
  for (const candidate of buildMessageChain(rawMessage)) if (hasInteractiveResponseContent(candidate)) return true;
337
379
  return false;
338
380
  }
339
381
  //#endregion
382
+ //#region extensions/whatsapp/src/inbound/media-mimetype.ts
383
+ /**
384
+ * Resolve the MIME type for an inbound media message.
385
+ * Falls back to WhatsApp's standard formats when Baileys omits the MIME.
386
+ */
387
+ function resolveInboundMediaMimetype(message) {
388
+ const explicit = message.imageMessage?.mimetype ?? message.videoMessage?.mimetype ?? message.documentMessage?.mimetype ?? message.audioMessage?.mimetype ?? message.stickerMessage?.mimetype ?? void 0;
389
+ if (explicit) return explicit;
390
+ if (message.audioMessage) return "audio/ogg; codecs=opus";
391
+ if (message.imageMessage) return "image/jpeg";
392
+ if (message.videoMessage) return "video/mp4";
393
+ if (message.stickerMessage) return "image/webp";
394
+ }
395
+ //#endregion
340
396
  //#region extensions/whatsapp/src/image-preview.ts
341
397
  const WHATSAPP_IMAGE_THUMBNAIL_SIDE = 32;
342
398
  const WHATSAPP_IMAGE_THUMBNAIL_QUALITY = 50;
@@ -401,10 +457,8 @@ function normalizeKnownUserJid(value) {
401
457
  const trimmed = value.replace(/^whatsapp:/i, "").trim();
402
458
  const jidMatch = trimmed.match(KNOWN_USER_JID_RE);
403
459
  if (jidMatch) {
404
- const user = jidMatch[1];
405
- const rawDomain = jidMatch[2];
406
- if (!user || !rawDomain) return null;
407
- return `${user}@${rawDomain.toLowerCase() === "c.us" ? "s.whatsapp.net" : rawDomain.toLowerCase()}`;
460
+ const domain = jidMatch[2].toLowerCase() === "c.us" ? "s.whatsapp.net" : jidMatch[2].toLowerCase();
461
+ return `${jidMatch[1]}@${domain}`;
408
462
  }
409
463
  const digits = trimmed.startsWith("+") ? trimmed.replace(/\D/g, "") : /^\d+$/.test(trimmed) ? trimmed : "";
410
464
  return digits ? `${digits}@s.whatsapp.net` : null;
@@ -413,11 +467,9 @@ function extractKnownJidParts(value) {
413
467
  const normalized = normalizeKnownUserJid(value);
414
468
  if (!normalized) return null;
415
469
  const match = normalized.match(/^(\d+)@(.+)$/);
416
- const user = match?.[1];
417
- const domain = match?.[2];
418
- return user && domain ? {
419
- user,
420
- domain
470
+ return match ? {
471
+ user: match[1],
472
+ domain: match[2]
421
473
  } : null;
422
474
  }
423
475
  function extractPhoneDigits(value) {
@@ -503,9 +555,7 @@ function resolveWhatsAppOutboundMentions(params) {
503
555
  const start = match.index;
504
556
  const token = match[0];
505
557
  if (shouldSkipMentionAt(params.text, start, start + token.length, codeRanges)) continue;
506
- const rawDigits = match[1];
507
- if (!rawDigits) continue;
508
- const digits = rawDigits.replace(/\D/g, "");
558
+ const digits = match[1].replace(/\D/g, "");
509
559
  const target = token.startsWith("@+") ? byPhone.get(digits) ?? byLid.get(digits) : byLid.get(digits) ?? byPhone.get(digits);
510
560
  if (!target) continue;
511
561
  if (!seenMentionJids.has(target.mentionJid)) {
@@ -640,51 +690,51 @@ function createWebSendApi(params) {
640
690
  text,
641
691
  mentionedJids: []
642
692
  } : await resolveMentions(jid, text);
643
- if (mediaBuffer && mediaType) if (sendOptions?.asDocument === true && supportsForcedDocumentMediaType(mediaType)) payload = {
644
- document: mediaBuffer,
645
- fileName: resolveWhatsAppDocumentFileName({
646
- fileName: sendOptions?.fileName,
693
+ if (mediaBuffer && mediaType) {
694
+ if (sendOptions?.asDocument === true && supportsForcedDocumentMediaType(mediaType)) payload = {
695
+ document: mediaBuffer,
696
+ fileName: resolveWhatsAppDocumentFileName({
697
+ fileName: sendOptions?.fileName,
698
+ mimetype: mediaType
699
+ }),
700
+ caption: resolvedPayloadText.text || void 0,
647
701
  mimetype: mediaType
648
- }),
649
- caption: resolvedPayloadText.text || void 0,
650
- mimetype: mediaType
651
- };
652
- else if (mediaType.startsWith("image/")) payload = await addWhatsAppImagePreviewFields({
653
- image: mediaBuffer,
654
- caption: resolvedPayloadText.text || void 0,
655
- mimetype: mediaType
656
- });
657
- else if (mediaType.startsWith("audio/")) payload = {
658
- audio: mediaBuffer,
659
- ptt: true,
660
- mimetype: mediaType
661
- };
662
- else if (mediaType.startsWith("video/")) {
663
- const gifPlayback = sendOptions?.gifPlayback;
664
- payload = {
665
- video: mediaBuffer,
702
+ };
703
+ else if (mediaType.startsWith("image/")) payload = await addWhatsAppImagePreviewFields({
704
+ image: mediaBuffer,
666
705
  caption: resolvedPayloadText.text || void 0,
667
- mimetype: mediaType,
668
- ...gifPlayback ? { gifPlayback: true } : {}
706
+ mimetype: mediaType
707
+ });
708
+ else if (mediaType.startsWith("audio/")) payload = {
709
+ audio: mediaBuffer,
710
+ ptt: true,
711
+ mimetype: mediaType
669
712
  };
670
- } else payload = {
671
- document: mediaBuffer,
672
- fileName: resolveWhatsAppDocumentFileName({
673
- fileName: sendOptions?.fileName,
713
+ else if (mediaType.startsWith("video/")) {
714
+ const gifPlayback = sendOptions?.gifPlayback;
715
+ payload = {
716
+ video: mediaBuffer,
717
+ caption: resolvedPayloadText.text || void 0,
718
+ mimetype: mediaType,
719
+ ...gifPlayback ? { gifPlayback: true } : {}
720
+ };
721
+ } else payload = {
722
+ document: mediaBuffer,
723
+ fileName: resolveWhatsAppDocumentFileName({
724
+ fileName: sendOptions?.fileName,
725
+ mimetype: mediaType
726
+ }),
727
+ caption: resolvedPayloadText.text || void 0,
674
728
  mimetype: mediaType
675
- }),
676
- caption: resolvedPayloadText.text || void 0,
677
- mimetype: mediaType
678
- };
679
- else payload = { text: resolvedPayloadText.text };
729
+ };
730
+ } else payload = { text: resolvedPayloadText.text };
680
731
  payload = addWhatsAppOutboundMentionsToContent(payload, resolvedPayloadText.mentionedJids);
681
732
  const quotedOpts = buildQuotedMessageOptions({
682
733
  messageId: sendOptions?.quotedMessageKey?.id,
683
734
  remoteJid: sendOptions?.quotedMessageKey?.remoteJid,
684
735
  fromMe: sendOptions?.quotedMessageKey?.fromMe,
685
736
  participant: sendOptions?.quotedMessageKey?.participant,
686
- messageText: sendOptions?.quotedMessageKey?.messageText,
687
- media: sendOptions?.quotedMessageKey?.media
737
+ messageText: sendOptions?.quotedMessageKey?.messageText
688
738
  });
689
739
  const results = [normalizeWhatsAppSendResult(quotedOpts ? await params.sock.sendMessage(jid, payload, quotedOpts) : await params.sock.sendMessage(jid, payload), mediaBuffer ? "media" : "text")];
690
740
  if (shouldSendAudioText) {
@@ -746,4 +796,4 @@ function createWebSendApi(params) {
746
796
  };
747
797
  }
748
798
  //#endregion
749
- export { extractMediaKind as _, mayContainWhatsAppOutboundMention as a, hasInboundUserContent as b, DisconnectReason as c, normalizeMessageContent$1 as d, describeReplyContext as f, extractLocationData as g, extractExternalAdReplyContext as h, addWhatsAppOutboundMentionsToContent as i, downloadMediaMessage as l, extractContextInfo as m, listWhatsAppSendResultMessageIds as n, resolveWhatsAppOutboundMentions as o, extractContactContext as p, normalizeWhatsAppSendResult as r, addWhatsAppImagePreviewFields as s, createWebSendApi as t, isJidGroup as u, extractMentionedJids as v, resolveInboundMediaMimetype as x, extractText as y };
799
+ export { extractLocationData as _, mayContainWhatsAppOutboundMention as a, extractText as b, DisconnectReason as c, normalizeMessageContent$1 as d, resolveInboundMediaMimetype as f, extractExternalAdReplyContext as g, extractContextInfo as h, addWhatsAppOutboundMentionsToContent as i, downloadMediaMessage as l, extractContactContext as m, listWhatsAppSendResultMessageIds as n, resolveWhatsAppOutboundMentions as o, describeReplyContext as p, normalizeWhatsAppSendResult as r, addWhatsAppImagePreviewFields as s, createWebSendApi as t, isJidGroup as u, extractMediaPlaceholder as v, hasInboundUserContent as x, extractMentionedJids as y };
@@ -1,4 +1,3 @@
1
- import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
2
1
  //#region extensions/whatsapp/src/session-errors.ts
3
2
  function safeStringify(value, limit = 800) {
4
3
  try {
@@ -16,7 +15,7 @@ function safeStringify(value, limit = 800) {
16
15
  return v;
17
16
  }, 2);
18
17
  if (!raw) return String(value);
19
- return raw.length > limit ? `${truncateUtf16Safe(raw, limit)}…` : raw;
18
+ return raw.length > limit ? `${raw.slice(0, limit)}…` : raw;
20
19
  } catch {
21
20
  return String(value);
22
21
  }
@@ -0,0 +1,252 @@
1
+ import { o as resolveWebCredsBackupPath, s as resolveWebCredsPath, t as assertWebCredsPathRegularFileOrMissing } from "./creds-files-B1kSWtBg.mjs";
2
+ import { n as getStatusCode } from "./session-errors-BAj9D2La.mjs";
3
+ import { t as DEFAULT_WHATSAPP_SOCKET_TIMING } from "./socket-timing-DhbVFjah.mjs";
4
+ 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-BZKGa0tW.mjs";
5
+ import { i as makeWASocket, n as fetchLatestBaileysVersion, o as useMultiFileAuthState, r as makeCacheableSignalKeyStore } from "./session.runtime-B-V3rXP6.mjs";
6
+ import { VERSION, formatCliCommand } from "openclaw/plugin-sdk/cli-runtime";
7
+ import { danger, getChildLogger, success, toPinoLikeLogger } from "openclaw/plugin-sdk/runtime-env";
8
+ import { renderQrTerminal } from "openclaw/plugin-sdk/media-runtime";
9
+ import { ensureDir, resolveUserPath } from "openclaw/plugin-sdk/text-utility-runtime";
10
+ import { randomUUID } from "node:crypto";
11
+ import { createHttp1EnvHttpProxyAgent, createHttp1ProxyAgent, createNodeProxyAgent } from "openclaw/plugin-sdk/fetch-runtime";
12
+ //#region extensions/whatsapp/src/session.ts
13
+ const LOGGED_OUT_STATUS = 401;
14
+ const WHATSAPP_WEBSOCKET_PROXY_TARGET = "https://mmg.whatsapp.net/";
15
+ const CREDS_FLUSH_TIMEOUT_MESSAGE = "Queued WhatsApp creds save did not finish before auth bootstrap; skipping repair and continuing with primary creds.";
16
+ const OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV = "OPENCLAW_WHATSAPP_WEB_SOCKET_URL";
17
+ async function rejectUnsafeWebCredsPath(authDir) {
18
+ await assertWebCredsPathRegularFileOrMissing(resolveWebCredsPath(authDir));
19
+ }
20
+ function enqueueSaveCreds(authDir, saveCreds, logger, beforeCredentialPersistence) {
21
+ enqueueCredsSave(authDir, () => safeSaveCreds(authDir, saveCreds, logger, beforeCredentialPersistence), (err) => {
22
+ logger.warn({ error: String(err) }, "WhatsApp creds save queue error");
23
+ });
24
+ }
25
+ async function safeSaveCreds(authDir, saveCreds, logger, beforeCredentialPersistence) {
26
+ try {
27
+ const credsPath = resolveWebCredsPath(authDir);
28
+ const backupPath = resolveWebCredsBackupPath(authDir);
29
+ const raw = readCredsJsonRaw(credsPath);
30
+ if (raw) try {
31
+ JSON.parse(raw);
32
+ await writeWebCredsRawAtomically({
33
+ filePath: backupPath,
34
+ content: raw,
35
+ tempPrefix: ".creds.backup",
36
+ beforeCredentialPersistence
37
+ });
38
+ } catch {}
39
+ } catch {}
40
+ await beforeCredentialPersistence?.();
41
+ try {
42
+ await Promise.resolve(saveCreds());
43
+ } catch (err) {
44
+ logger.warn({ error: String(err) }, "failed saving WhatsApp creds");
45
+ }
46
+ }
47
+ async function printTerminalQr(qr) {
48
+ const output = await renderQrTerminal(qr, { small: true });
49
+ process.stdout.write(output.endsWith("\n") ? output : `${output}\n`);
50
+ }
51
+ function resolveWaWebSocketUrl(value) {
52
+ if (typeof value !== "string") return value;
53
+ return value.trim() || void 0;
54
+ }
55
+ function resolveEnvWaWebSocketUrl() {
56
+ const value = resolveWaWebSocketUrl(process.env[OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV]);
57
+ if (!value) return;
58
+ let url;
59
+ try {
60
+ url = new URL(value);
61
+ } catch {
62
+ throw new Error(`${OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV} must be a valid URL.`);
63
+ }
64
+ if (url.protocol !== "ws:" && url.protocol !== "wss:") throw new Error(`${OPENCLAW_WHATSAPP_WEB_SOCKET_URL_ENV} must use ws:// or wss://.`);
65
+ return url.toString();
66
+ }
67
+ /**
68
+ * Create a Baileys socket backed by the multi-file auth store we keep on disk.
69
+ * Consumers can opt into QR printing for interactive login flows.
70
+ */
71
+ async function createWaSocket(printQr, verbose, opts = {}) {
72
+ const baseLogger = getChildLogger({ module: "baileys" }, { level: verbose ? "info" : "silent" });
73
+ const logger = toPinoLikeLogger(baseLogger, verbose ? "info" : "silent");
74
+ const authDir = resolveUserPath(opts.authDir ?? resolveDefaultWebAuthDir());
75
+ await rejectUnsafeWebCredsPath(authDir);
76
+ await opts.beforeCredentialPersistence?.();
77
+ await ensureDir(authDir);
78
+ const sessionLogger = getChildLogger({ module: "web-session" });
79
+ if (await waitForCredsSaveQueueWithTimeout(authDir) === "timed_out") sessionLogger.warn({ authDir }, CREDS_FLUSH_TIMEOUT_MESSAGE);
80
+ else {
81
+ await rejectUnsafeWebCredsPath(authDir);
82
+ await restoreCredsFromBackupIfNeeded(authDir, { beforeCredentialPersistence: opts.beforeCredentialPersistence });
83
+ }
84
+ await rejectUnsafeWebCredsPath(authDir);
85
+ const { state } = await useMultiFileAuthState(authDir);
86
+ const saveCreds = async () => {
87
+ await writeCredsJsonAtomically(authDir, state.creds, opts.beforeCredentialPersistence);
88
+ };
89
+ const { version } = await fetchLatestBaileysVersion();
90
+ const waWebSocketUrl = resolveWaWebSocketUrl(opts.waWebSocketUrl) ?? resolveEnvWaWebSocketUrl();
91
+ const agent = await resolveEnvProxyAgent(sessionLogger);
92
+ const fetchAgent = await resolveEnvFetchDispatcher(sessionLogger, agent);
93
+ const socketTiming = {
94
+ keepAliveIntervalMs: opts.keepAliveIntervalMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.keepAliveIntervalMs,
95
+ connectTimeoutMs: opts.connectTimeoutMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.connectTimeoutMs,
96
+ defaultQueryTimeoutMs: opts.defaultQueryTimeoutMs ?? DEFAULT_WHATSAPP_SOCKET_TIMING.defaultQueryTimeoutMs
97
+ };
98
+ const persistedKeys = opts.beforeCredentialPersistence ? {
99
+ ...state.keys,
100
+ async set(data) {
101
+ await opts.beforeCredentialPersistence?.();
102
+ await state.keys.set(data);
103
+ }
104
+ } : state.keys;
105
+ const sock = makeWASocket({
106
+ auth: {
107
+ creds: state.creds,
108
+ keys: makeCacheableSignalKeyStore(persistedKeys, logger)
109
+ },
110
+ version,
111
+ logger,
112
+ printQRInTerminal: false,
113
+ browser: [
114
+ "openclaw",
115
+ "cli",
116
+ VERSION
117
+ ],
118
+ syncFullHistory: false,
119
+ markOnlineOnConnect: false,
120
+ ...socketTiming,
121
+ agent,
122
+ fetchAgent,
123
+ ...waWebSocketUrl ? { waWebSocketUrl } : {},
124
+ ...opts.getMessage ? { getMessage: opts.getMessage } : {},
125
+ ...opts.cachedGroupMetadata ? { cachedGroupMetadata: opts.cachedGroupMetadata } : {}
126
+ });
127
+ sock.ev.on("creds.update", () => enqueueSaveCreds(authDir, saveCreds, sessionLogger, opts.beforeCredentialPersistence));
128
+ sock.ev.on("connection.update", (update) => {
129
+ (async () => {
130
+ try {
131
+ const { connection, lastDisconnect, qr } = update;
132
+ if (qr) {
133
+ opts.onQr?.(qr);
134
+ if (printQr) {
135
+ console.log("Open the WhatsApp app, go to Linked Devices, then scan this QR:");
136
+ printTerminalQr(qr).catch((err) => {
137
+ sessionLogger.warn({ error: String(err) }, "failed rendering WhatsApp QR");
138
+ });
139
+ }
140
+ }
141
+ if (connection === "close") {
142
+ if (getStatusCode(lastDisconnect?.error) === LOGGED_OUT_STATUS) console.error(danger(`WhatsApp session logged out. Run: ${formatCliCommand("openclaw channels login")}`));
143
+ }
144
+ if (connection === "open" && verbose) console.log(success("WhatsApp Web connected."));
145
+ } catch (err) {
146
+ sessionLogger.error({ error: String(err) }, "connection.update handler error");
147
+ }
148
+ })();
149
+ });
150
+ if (sock.ws && typeof sock.ws.on === "function") sock.ws.on("error", (err) => {
151
+ sessionLogger.error({ error: String(err) }, "WebSocket error");
152
+ });
153
+ return sock;
154
+ }
155
+ async function resolveEnvProxyAgent(logger) {
156
+ try {
157
+ const agent = createNodeProxyAgent({
158
+ mode: "env",
159
+ targetUrl: WHATSAPP_WEBSOCKET_PROXY_TARGET,
160
+ protocol: "https"
161
+ });
162
+ if (!agent) return;
163
+ logger.info("Using ambient env proxy for WhatsApp WebSocket connection");
164
+ return agent;
165
+ } catch (error) {
166
+ logger.warn({ error: String(error) }, "Failed to initialize env proxy agent for WhatsApp WebSocket connection");
167
+ return;
168
+ }
169
+ }
170
+ async function resolveEnvFetchDispatcher(logger, agent) {
171
+ const proxyUrl = resolveProxyUrlFromAgent(agent);
172
+ const envProxyUrl = resolveEnvHttpsProxyUrl();
173
+ if (!proxyUrl && !envProxyUrl) return;
174
+ try {
175
+ return proxyUrl ? createHttp1ProxyAgent({ uri: proxyUrl }) : createHttp1EnvHttpProxyAgent();
176
+ } catch (error) {
177
+ logger.warn({ error: String(error) }, "Failed to initialize env proxy dispatcher for WhatsApp media uploads");
178
+ return;
179
+ }
180
+ }
181
+ function resolveProxyUrlFromAgent(agent) {
182
+ if (typeof agent === "object" && agent !== null && "getProxyForUrl" in agent && typeof agent.getProxyForUrl === "function") {
183
+ const proxyUrl = agent.getProxyForUrl(WHATSAPP_WEBSOCKET_PROXY_TARGET);
184
+ return typeof proxyUrl === "string" && proxyUrl.length > 0 ? proxyUrl : void 0;
185
+ }
186
+ if (typeof agent !== "object" || agent === null || !("proxy" in agent)) return;
187
+ const proxy = agent.proxy;
188
+ if (proxy instanceof URL) return proxy.toString();
189
+ return typeof proxy === "string" && proxy.length > 0 ? proxy : void 0;
190
+ }
191
+ function resolveEnvHttpsProxyUrl(env = process.env) {
192
+ const lowerHttpsProxy = normalizeEnvProxyValue(env.https_proxy);
193
+ const lowerHttpProxy = normalizeEnvProxyValue(env.http_proxy);
194
+ const httpsProxy = lowerHttpsProxy !== void 0 ? lowerHttpsProxy : normalizeEnvProxyValue(env.HTTPS_PROXY);
195
+ const httpProxy = lowerHttpProxy !== void 0 ? lowerHttpProxy : normalizeEnvProxyValue(env.HTTP_PROXY);
196
+ return httpsProxy ?? httpProxy ?? void 0;
197
+ }
198
+ function normalizeEnvProxyValue(value) {
199
+ if (typeof value !== "string") return;
200
+ const trimmed = value.trim();
201
+ return trimmed.length > 0 ? trimmed : null;
202
+ }
203
+ async function waitForWaConnection(sock, options = { timeout: "none" }) {
204
+ return new Promise((resolve, reject) => {
205
+ const evWithOff = sock.ev;
206
+ let timer;
207
+ const cleanup = () => {
208
+ evWithOff.off?.("connection.update", handler);
209
+ if (timer) {
210
+ clearTimeout(timer);
211
+ timer = void 0;
212
+ }
213
+ };
214
+ const handler = (...args) => {
215
+ const update = args[0] ?? {};
216
+ if (update.connection === "open") {
217
+ cleanup();
218
+ resolve();
219
+ }
220
+ if (update.connection === "close") {
221
+ cleanup();
222
+ reject(toLintErrorObject(update.lastDisconnect ?? /* @__PURE__ */ new Error("Connection closed"), "Non-Error rejection"));
223
+ }
224
+ };
225
+ sock.ev.on("connection.update", handler);
226
+ if ("timeoutMs" in options) {
227
+ const timeoutMs = options.timeoutMs;
228
+ timer = setTimeout(() => {
229
+ cleanup();
230
+ reject(createConnectionTimeoutError(timeoutMs));
231
+ }, timeoutMs);
232
+ timer.unref?.();
233
+ }
234
+ });
235
+ }
236
+ function newConnectionId() {
237
+ return randomUUID();
238
+ }
239
+ function toLintErrorObject(value, fallbackMessage) {
240
+ if (value instanceof Error) return value;
241
+ if (typeof value === "string") return new Error(value);
242
+ const error = new Error(fallbackMessage, { cause: value });
243
+ if (typeof value === "object" && value !== null || typeof value === "function") Object.assign(error, value);
244
+ return error;
245
+ }
246
+ function createConnectionTimeoutError(timeoutMs) {
247
+ const error = /* @__PURE__ */ new Error(`WhatsApp connection timed out after ${timeoutMs}ms`);
248
+ Object.assign(error, { output: { statusCode: 408 } });
249
+ return error;
250
+ }
251
+ //#endregion
252
+ export { renderQrTerminal as i, newConnectionId as n, waitForWaConnection as r, createWaSocket as t };
@@ -0,0 +1,12 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { BufferJSON, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, makeWASocket, useMultiFileAuthState } from "baileys";
3
+ //#region extensions/whatsapp/src/session.runtime.ts
4
+ var session_runtime_exports = /* @__PURE__ */ __exportAll({
5
+ BufferJSON: () => BufferJSON,
6
+ fetchLatestBaileysVersion: () => fetchLatestBaileysVersion,
7
+ makeCacheableSignalKeyStore: () => makeCacheableSignalKeyStore,
8
+ makeWASocket: () => makeWASocket,
9
+ useMultiFileAuthState: () => useMultiFileAuthState
10
+ });
11
+ //#endregion
12
+ export { session_runtime_exports as a, makeWASocket as i, fetchLatestBaileysVersion as n, useMultiFileAuthState as o, makeCacheableSignalKeyStore as r, BufferJSON as t };