@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.
- package/README.md +1 -1
- package/dist/{access-control-pZcxTmd5.js → .setup/access-control-C0jumQuO.mjs} +5 -4
- package/dist/.setup/account-config-6PTOSfaI.mjs +47 -0
- package/dist/{accounts-CSqLvCY5.js → .setup/accounts-Dw16pdNl.mjs} +9 -47
- package/dist/{action-runtime-BzfDFPbH.js → .setup/action-runtime-DLK_9v4r.mjs} +3 -3
- package/dist/{active-listener-BEjWsCNM.js → .setup/active-listener-CloPBx0S.mjs} +3 -3
- package/dist/{agent-tools-login-DE9MU98T.js → .setup/agent-tools-login-DINqgaYo.mjs} +19 -7
- package/dist/{approval-handler.runtime-DrA59QSA.js → .setup/approval-handler.runtime-DtJZbu3y.mjs} +14 -20
- package/dist/{approval-resolver-DoeBBt22.js → .setup/approval-resolver-DF-lu8k5.mjs} +1 -2
- package/dist/{auth-store-DcEpIOmE.js → .setup/auth-store-BZKGa0tW.mjs} +25 -29
- package/dist/{channel-Dg62olhy.js → .setup/channel-9WGjBznd.mjs} +117 -132
- package/dist/{channel-react-action-J_YtyMGX.js → .setup/channel-react-action-mvIbAFhn.mjs} +15 -12
- package/dist/{channel.runtime-BP0xNmLi.js → .setup/channel.runtime-DmmMgRJQ.mjs} +6 -6
- package/dist/.setup/channel.setup-ByBYSeLd.mjs +22 -0
- package/dist/.setup/config-schema-mBX2nmn1.mjs +47 -0
- package/dist/{connection-controller-BOB2MVKY.js → .setup/connection-controller-Dt62u6fI.mjs} +29 -226
- package/dist/.setup/connection-controller-registry-TSX_udJp.mjs +22 -0
- package/dist/{constants-HU41RHGI.js → .setup/constants-C7m81BNe.mjs} +1 -1
- package/dist/.setup/directory-config-B7Obxrq2.mjs +37 -0
- package/dist/.setup/doctor-By3SB4lm.mjs +48 -0
- package/dist/{group-session-key-DVMZlO3x.js → .setup/group-session-key-CEwPRRRK.mjs} +5 -38
- package/dist/{identity-CPrT5aEU.js → .setup/identity-CDB1bT-p.mjs} +2 -2
- package/dist/.setup/legacy-session-surface-api-B2szjq4r.mjs +2 -0
- package/dist/.setup/legacy-state-migrations-api-DXCxufZz.mjs +3 -0
- package/dist/{login-CvY2Dhch.js → .setup/login-7b3M0iBp.mjs} +12 -51
- package/dist/{login-qr-Bncpb6js.js → .setup/login-qr-CbyA4QX5.mjs} +47 -23
- package/dist/{monitor-CfkaUSL2.js → .setup/monitor-Dh6Di_YO.mjs} +1451 -1843
- package/dist/.setup/normalize-eddWWsNV.mjs +2 -0
- package/dist/{normalize-target-CugRyONv.js → .setup/normalize-target-bVWjgftN.mjs} +10 -18
- package/dist/{resolve-outbound-target-1GqbT1uX.js → .setup/resolve-outbound-target-oI7VpU4w.mjs} +1 -1
- package/dist/.setup/runtime-BfAdAEYT.mjs +8 -0
- package/dist/.setup/send-BQjMC41n.mjs +777 -0
- package/dist/{send-api-7wk6eQyW.js → .setup/send-api-BiAkPLr3.mjs} +155 -105
- package/dist/{session-errors-JuazczrA.js → .setup/session-errors-BAj9D2La.mjs} +1 -2
- package/dist/.setup/session-vUI41Jel.mjs +252 -0
- package/dist/.setup/session.runtime-B-V3rXP6.mjs +12 -0
- package/dist/{shared-CAxd15bp.js → .setup/setup-core--FfzntMG.mjs} +94 -63
- package/dist/{setup-finalize-BZucx24W.js → .setup/setup-finalize-DCruIciL.mjs} +17 -46
- package/dist/.setup/setup-plugin-api-B6ck_20D.mjs +3 -0
- package/dist/{setup-surface-BkVcd769.js → .setup/setup-surface-Zvj2cLzz.mjs} +4 -4
- package/dist/.setup/socket-timing-DhbVFjah.mjs +77 -0
- package/dist/{state-migrations-CAMTrs2U.js → .setup/state-migrations-D_BmQUR9.mjs} +8 -1
- package/dist/.setup/targets-runtime-C-GiVn6Y.mjs +188 -0
- package/dist/.setup/text-runtime-CUrq1mFq.mjs +4 -0
- package/dist/action-runtime-api.js +1 -1
- package/dist/action-runtime.runtime.js +1 -1
- package/dist/{call-tool-api.js → agent-tools-api.js} +26 -11
- package/dist/api.js +27 -17
- package/dist/auth-presence.js +1 -1
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/constants.js +2 -0
- package/dist/contract-api.js +5 -5
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +5 -46
- package/dist/index.js +4 -4
- package/dist/legacy-session-surface-api.js +1 -1
- package/dist/legacy-state-migrations-api.js +1 -1
- package/dist/light-runtime-api.js +4 -4
- package/dist/login-qr-runtime.js +1 -1
- package/dist/runtime-api.js +14 -14
- package/dist/runtime-setter-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/setup-entry.js +4 -3
- package/dist/setup-plugin-api.js +1 -1
- package/dist/targets.js +2 -0
- package/node_modules/audio-decode/node_modules/@thi.ng/bitstream/package.json +4 -4
- package/node_modules/audio-decode/node_modules/@thi.ng/errors/package.json +4 -4
- package/node_modules/audio-decode/node_modules/audio-type/package.json +2 -3
- package/node_modules/baileys/node_modules/@protobufjs/aspromise/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/aspromise/README.md +13 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
- package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
- package/node_modules/baileys/node_modules/@protobufjs/aspromise/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
- package/node_modules/baileys/node_modules/@protobufjs/base64/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/base64/README.md +19 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
- package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
- package/node_modules/baileys/node_modules/@protobufjs/base64/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/base64/tests/index.js +46 -0
- package/node_modules/baileys/node_modules/@protobufjs/codegen/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/codegen/README.md +49 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
- package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -118
- package/node_modules/baileys/node_modules/@protobufjs/codegen/package.json +13 -0
- package/node_modules/baileys/node_modules/@protobufjs/codegen/tests/index.js +13 -0
- package/node_modules/baileys/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
- package/node_modules/baileys/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/eventemitter/README.md +22 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
- package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
- package/node_modules/baileys/node_modules/@protobufjs/eventemitter/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/README.md +13 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
- package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
- package/node_modules/baileys/node_modules/@protobufjs/fetch/package.json +27 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/index.js +158 -0
- package/node_modules/baileys/node_modules/@protobufjs/fetch/util/fs.js +11 -0
- package/node_modules/baileys/node_modules/@protobufjs/float/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/float/README.md +102 -0
- package/node_modules/baileys/node_modules/@protobufjs/float/bench/index.js +87 -0
- package/node_modules/baileys/node_modules/@protobufjs/float/bench/suite.js +46 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
- package/node_modules/baileys/node_modules/@protobufjs/float/package.json +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/float/tests/index.js +100 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/CHANGELOG.md +8 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/README.md +13 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/index.d.ts +10 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/index.js +38 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/array.js +1 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +1 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +1 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/object.js +1 -0
- package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/index.js +20 -0
- package/node_modules/baileys/node_modules/@protobufjs/path/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/path/README.md +19 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
- package/node_modules/baileys/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -100
- package/node_modules/baileys/node_modules/@protobufjs/path/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/path/tests/index.js +60 -0
- package/node_modules/baileys/node_modules/@protobufjs/pool/.npmignore +3 -0
- package/node_modules/baileys/node_modules/@protobufjs/pool/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/pool/README.md +13 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
- package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
- package/node_modules/baileys/node_modules/@protobufjs/pool/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/pool/tests/index.js +33 -0
- package/node_modules/baileys/node_modules/@protobufjs/utf8/LICENSE +26 -0
- package/node_modules/baileys/node_modules/@protobufjs/utf8/README.md +20 -0
- package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
- package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.js → @protobufjs/utf8/index.js} +104 -190
- package/node_modules/baileys/node_modules/@protobufjs/utf8/package.json +21 -0
- package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
- package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
- package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/index.js +74 -0
- package/node_modules/baileys/node_modules/@types/node/LICENSE +21 -0
- package/node_modules/baileys/node_modules/@types/node/README.md +15 -0
- package/node_modules/baileys/node_modules/@types/node/assert/strict.d.ts +68 -0
- package/node_modules/baileys/node_modules/@types/node/assert.d.ts +1077 -0
- package/node_modules/baileys/node_modules/@types/node/async_hooks.d.ts +711 -0
- package/node_modules/baileys/node_modules/@types/node/buffer.buffer.d.ts +466 -0
- package/node_modules/baileys/node_modules/@types/node/buffer.d.ts +1799 -0
- package/node_modules/baileys/node_modules/@types/node/child_process.d.ts +1362 -0
- package/node_modules/baileys/node_modules/@types/node/cluster.d.ts +432 -0
- package/node_modules/baileys/node_modules/@types/node/console.d.ts +93 -0
- package/node_modules/baileys/node_modules/@types/node/constants.d.ts +14 -0
- package/node_modules/baileys/node_modules/@types/node/crypto.d.ts +3954 -0
- package/node_modules/baileys/node_modules/@types/node/dgram.d.ts +537 -0
- package/node_modules/baileys/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
- package/node_modules/baileys/node_modules/@types/node/dns/promises.d.ts +497 -0
- package/node_modules/baileys/node_modules/@types/node/dns.d.ts +876 -0
- package/node_modules/baileys/node_modules/@types/node/domain.d.ts +150 -0
- package/node_modules/baileys/node_modules/@types/node/events.d.ts +1008 -0
- package/node_modules/baileys/node_modules/@types/node/ffi.d.ts +486 -0
- package/node_modules/baileys/node_modules/@types/node/fs/promises.d.ts +1471 -0
- package/node_modules/baileys/node_modules/@types/node/fs.d.ts +4786 -0
- package/node_modules/baileys/node_modules/@types/node/globals.d.ts +150 -0
- package/node_modules/baileys/node_modules/@types/node/globals.typedarray.d.ts +101 -0
- package/node_modules/baileys/node_modules/@types/node/http.d.ts +2172 -0
- package/node_modules/baileys/node_modules/@types/node/http2.d.ts +2489 -0
- package/node_modules/baileys/node_modules/@types/node/https.d.ts +400 -0
- package/node_modules/baileys/node_modules/@types/node/index.d.ts +115 -0
- package/node_modules/baileys/node_modules/@types/node/inspector/promises.d.ts +35 -0
- package/node_modules/baileys/node_modules/@types/node/inspector.d.ts +264 -0
- package/node_modules/baileys/node_modules/@types/node/inspector.generated.d.ts +4406 -0
- package/node_modules/baileys/node_modules/@types/node/module.d.ts +726 -0
- package/node_modules/baileys/node_modules/@types/node/net.d.ts +970 -0
- package/node_modules/baileys/node_modules/@types/node/os.d.ts +498 -0
- package/node_modules/baileys/node_modules/@types/node/package.json +155 -0
- package/node_modules/baileys/node_modules/@types/node/path/posix.d.ts +8 -0
- package/node_modules/baileys/node_modules/@types/node/path/win32.d.ts +8 -0
- package/node_modules/baileys/node_modules/@types/node/path.d.ts +178 -0
- package/node_modules/baileys/node_modules/@types/node/perf_hooks.d.ts +604 -0
- package/node_modules/baileys/node_modules/@types/node/process.d.ts +2217 -0
- package/node_modules/baileys/node_modules/@types/node/punycode.d.ts +89 -0
- package/node_modules/baileys/node_modules/@types/node/querystring.d.ts +139 -0
- package/node_modules/baileys/node_modules/@types/node/quic.d.ts +978 -0
- package/node_modules/baileys/node_modules/@types/node/readline/promises.d.ts +158 -0
- package/node_modules/baileys/node_modules/@types/node/readline.d.ts +508 -0
- package/node_modules/baileys/node_modules/@types/node/repl.d.ts +420 -0
- package/node_modules/baileys/node_modules/@types/node/sea.d.ts +47 -0
- package/node_modules/baileys/node_modules/@types/node/sqlite.d.ts +1123 -0
- package/node_modules/baileys/node_modules/@types/node/stream/consumers.d.ts +114 -0
- package/node_modules/baileys/node_modules/@types/node/stream/iter.d.ts +451 -0
- package/node_modules/baileys/node_modules/@types/node/stream/promises.d.ts +211 -0
- package/node_modules/baileys/node_modules/@types/node/stream/web.d.ts +300 -0
- package/node_modules/baileys/node_modules/@types/node/stream.d.ts +1806 -0
- package/node_modules/baileys/node_modules/@types/node/string_decoder.d.ts +27 -0
- package/node_modules/baileys/node_modules/@types/node/test/reporters.d.ts +59 -0
- package/node_modules/baileys/node_modules/@types/node/test.d.ts +2389 -0
- package/node_modules/baileys/node_modules/@types/node/timers/promises.d.ts +93 -0
- package/node_modules/baileys/node_modules/@types/node/timers.d.ts +149 -0
- package/node_modules/baileys/node_modules/@types/node/tls.d.ts +1193 -0
- package/node_modules/baileys/node_modules/@types/node/trace_events.d.ts +103 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.6/index.d.ts +117 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
- package/node_modules/baileys/node_modules/@types/node/ts5.7/index.d.ts +117 -0
- package/node_modules/baileys/node_modules/@types/node/tty.d.ts +225 -0
- package/node_modules/baileys/node_modules/@types/node/url.d.ts +556 -0
- package/node_modules/baileys/node_modules/@types/node/util/types.d.ts +558 -0
- package/node_modules/baileys/node_modules/@types/node/util.d.ts +1677 -0
- package/node_modules/baileys/node_modules/@types/node/v8.d.ts +1062 -0
- package/node_modules/baileys/node_modules/@types/node/vm.d.ts +1136 -0
- package/node_modules/baileys/node_modules/@types/node/wasi.d.ts +131 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/events.d.ts +106 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/streams.d.ts +115 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/node_modules/baileys/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/node_modules/baileys/node_modules/@types/node/worker_threads.d.ts +669 -0
- package/node_modules/baileys/node_modules/@types/node/zlib/iter.d.ts +131 -0
- package/node_modules/baileys/node_modules/@types/node/zlib.d.ts +589 -0
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js +4 -11
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js.map +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js +1 -1
- package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js.map +3 -3
- package/node_modules/baileys/node_modules/lru-cache/package.json +1 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.js +1 -7
- package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameHeader.js +3 -23
- package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
- package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/mp4/AtomToken.js +13 -38
- package/node_modules/baileys/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
- package/node_modules/baileys/node_modules/music-metadata/package.json +6 -6
- package/node_modules/baileys/node_modules/p-queue/dist/index.js +27 -37
- package/node_modules/baileys/node_modules/p-queue/package.json +1 -1
- package/node_modules/baileys/node_modules/protobufjs/README.md +553 -266
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js +1985 -3177
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js +1244 -1966
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js +2005 -3330
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/README.md +70 -3
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/test.js +54 -0
- package/node_modules/baileys/node_modules/protobufjs/google/api/annotations.json +1 -3
- package/node_modules/baileys/node_modules/protobufjs/google/api/http.json +1 -2
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/api.json +6 -12
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.json +87 -170
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.proto +8 -0
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/source_context.json +1 -2
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/type.json +7 -14
- package/node_modules/baileys/node_modules/protobufjs/index.d.ts +703 -1066
- package/node_modules/baileys/node_modules/protobufjs/package.json +52 -25
- package/node_modules/baileys/node_modules/protobufjs/scripts/postinstall.js +32 -0
- package/node_modules/baileys/node_modules/protobufjs/src/common.js +8 -14
- package/node_modules/baileys/node_modules/protobufjs/src/converter.js +51 -85
- package/node_modules/baileys/node_modules/protobufjs/src/decoder.js +61 -205
- package/node_modules/baileys/node_modules/protobufjs/src/encoder.js +7 -27
- package/node_modules/baileys/node_modules/protobufjs/src/enum.js +5 -18
- package/node_modules/baileys/node_modules/protobufjs/src/field.js +19 -71
- package/node_modules/baileys/node_modules/protobufjs/src/index-light.js +29 -29
- package/node_modules/baileys/node_modules/protobufjs/src/index-minimal.js +13 -12
- package/node_modules/baileys/node_modules/protobufjs/src/index.js +6 -6
- package/node_modules/baileys/node_modules/protobufjs/src/mapfield.js +8 -26
- package/node_modules/baileys/node_modules/protobufjs/src/message.js +11 -5
- package/node_modules/baileys/node_modules/protobufjs/src/method.js +7 -30
- package/node_modules/baileys/node_modules/protobufjs/src/namespace.js +10 -26
- package/node_modules/baileys/node_modules/protobufjs/src/object.js +31 -41
- package/node_modules/baileys/node_modules/protobufjs/src/oneof.js +1 -12
- package/node_modules/baileys/node_modules/protobufjs/src/parse.js +47 -169
- package/node_modules/baileys/node_modules/protobufjs/src/reader.js +50 -412
- package/node_modules/baileys/node_modules/protobufjs/src/reader_buffer.js +5 -31
- package/node_modules/baileys/node_modules/protobufjs/src/root.js +4 -16
- package/node_modules/baileys/node_modules/protobufjs/src/rpc/service.js +5 -18
- package/node_modules/baileys/node_modules/protobufjs/src/service.js +2 -15
- package/node_modules/baileys/node_modules/protobufjs/src/tokenize.js +1 -6
- package/node_modules/baileys/node_modules/protobufjs/src/type.js +36 -80
- package/node_modules/baileys/node_modules/protobufjs/src/typescript.jsdoc +15 -0
- package/node_modules/baileys/node_modules/protobufjs/src/util/longbits.js +6 -10
- package/node_modules/baileys/node_modules/protobufjs/src/util/minimal.js +54 -71
- package/node_modules/baileys/node_modules/protobufjs/src/util.js +17 -51
- package/node_modules/baileys/node_modules/protobufjs/src/verifier.js +14 -19
- package/node_modules/baileys/node_modules/protobufjs/src/wrappers.js +3 -2
- package/node_modules/baileys/node_modules/protobufjs/src/writer.js +191 -424
- package/node_modules/baileys/node_modules/protobufjs/src/writer_buffer.js +26 -41
- package/node_modules/baileys/node_modules/protobufjs/tsconfig.json +5 -3
- package/node_modules/baileys/node_modules/undici-types/LICENSE +21 -0
- package/node_modules/baileys/node_modules/undici-types/README.md +6 -0
- package/node_modules/baileys/node_modules/undici-types/agent.d.ts +30 -0
- package/node_modules/baileys/node_modules/undici-types/api.d.ts +43 -0
- package/node_modules/baileys/node_modules/undici-types/balanced-pool.d.ts +30 -0
- package/node_modules/baileys/node_modules/undici-types/cache-interceptor.d.ts +179 -0
- package/node_modules/baileys/node_modules/undici-types/cache.d.ts +36 -0
- package/node_modules/baileys/node_modules/undici-types/client-stats.d.ts +15 -0
- package/node_modules/baileys/node_modules/undici-types/client.d.ts +129 -0
- package/node_modules/baileys/node_modules/undici-types/connector.d.ts +36 -0
- package/node_modules/baileys/node_modules/undici-types/content-type.d.ts +21 -0
- package/node_modules/baileys/node_modules/undici-types/cookies.d.ts +30 -0
- package/node_modules/baileys/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
- package/node_modules/baileys/node_modules/undici-types/dispatcher.d.ts +253 -0
- package/node_modules/baileys/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
- package/node_modules/baileys/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/baileys/node_modules/undici-types/errors.d.ts +177 -0
- package/node_modules/baileys/node_modules/undici-types/eventsource.d.ts +66 -0
- package/node_modules/baileys/node_modules/undici-types/fetch.d.ts +231 -0
- package/node_modules/baileys/node_modules/undici-types/formdata.d.ts +108 -0
- package/node_modules/baileys/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/node_modules/baileys/node_modules/undici-types/global-origin.d.ts +7 -0
- package/node_modules/baileys/node_modules/undici-types/h2c-client.d.ts +73 -0
- package/node_modules/baileys/node_modules/undici-types/handlers.d.ts +14 -0
- package/node_modules/baileys/node_modules/undici-types/header.d.ts +165 -0
- package/node_modules/baileys/node_modules/undici-types/index.d.ts +93 -0
- package/node_modules/baileys/node_modules/undici-types/interceptors.d.ts +80 -0
- package/node_modules/baileys/node_modules/undici-types/mock-agent.d.ts +68 -0
- package/node_modules/baileys/node_modules/undici-types/mock-call-history.d.ts +111 -0
- package/node_modules/baileys/node_modules/undici-types/mock-client.d.ts +27 -0
- package/node_modules/baileys/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/node_modules/baileys/node_modules/undici-types/mock-interceptor.d.ts +94 -0
- package/node_modules/baileys/node_modules/undici-types/mock-pool.d.ts +27 -0
- package/node_modules/baileys/node_modules/undici-types/package.json +55 -0
- package/node_modules/baileys/node_modules/undici-types/patch.d.ts +29 -0
- package/node_modules/baileys/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/node_modules/baileys/node_modules/undici-types/pool.d.ts +39 -0
- package/node_modules/baileys/node_modules/undici-types/proxy-agent.d.ts +29 -0
- package/node_modules/baileys/node_modules/undici-types/readable.d.ts +68 -0
- package/node_modules/baileys/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/node_modules/baileys/node_modules/undici-types/retry-handler.d.ts +125 -0
- package/node_modules/baileys/node_modules/undici-types/round-robin-pool.d.ts +39 -0
- package/node_modules/baileys/node_modules/undici-types/snapshot-agent.d.ts +113 -0
- package/node_modules/baileys/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
- package/node_modules/baileys/node_modules/undici-types/util.d.ts +18 -0
- package/node_modules/baileys/node_modules/undici-types/utility.d.ts +7 -0
- package/node_modules/baileys/node_modules/undici-types/webidl.d.ts +346 -0
- package/node_modules/baileys/node_modules/undici-types/websocket.d.ts +188 -0
- package/node_modules/baileys/node_modules/ws/lib/permessage-deflate.js +3 -1
- package/node_modules/baileys/node_modules/ws/package.json +1 -1
- package/node_modules/typebox/build/compile/validator.d.mts +4 -1
- package/node_modules/typebox/build/guard/guard.d.mts +1 -1
- package/node_modules/typebox/build/guard/guard.mjs +2 -5
- package/node_modules/typebox/build/guard/string.mjs +4 -16
- package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
- package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
- package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
- package/node_modules/typebox/build/typebox.d.mts +1 -1
- package/node_modules/typebox/build/typebox.mjs +1 -1
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +32 -29
- package/openclaw.plugin.json +239 -214
- package/package.json +11 -21
- package/dist/approval-reactions-Cu66aYdq.js +0 -373
- package/dist/channel.setup-pMwNVkCA.js +0 -19
- package/dist/config-schema-BQP5YCeK.js +0 -50
- package/dist/connection-controller-runtime-context-DG0tuYuw.js +0 -23
- package/dist/directory-config-DalGrfGN.js +0 -196
- package/dist/doctor-CwzVXKoE.js +0 -10
- package/dist/normalize-C7Hkc_vE.js +0 -2
- package/dist/question-reactions-CRsnyoMK.js +0 -142
- package/dist/runtime-BLlToOi6.js +0 -21
- package/dist/send-D37ddk22.js +0 -436
- package/dist/session.runtime-Nsqaehbd.js +0 -16
- package/dist/socket-close-DridEuzz.js +0 -622
- package/dist/targets-runtime-TMk0lGuy.js +0 -299
- package/dist/text-runtime-CaKLhowd.js +0 -4
- package/node_modules/baileys/node_modules/protobufjs/ext/README.md +0 -70
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.js +0 -1356
- package/node_modules/baileys/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
- package/node_modules/baileys/node_modules/protobufjs/ext/protojson.d.ts +0 -20
- package/node_modules/baileys/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
- package/node_modules/baileys/node_modules/protobufjs/ext/protojson.js +0 -951
- package/node_modules/baileys/node_modules/protobufjs/ext/textformat.d.ts +0 -19
- package/node_modules/baileys/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
- package/node_modules/baileys/node_modules/protobufjs/ext/textformat.js +0 -1276
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
- package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
- package/node_modules/baileys/node_modules/protobufjs/src/typescript.js +0 -25
- /package/dist/{account-ids-CB5SOWjc.js → .setup/account-ids-CB5SOWjc.mjs} +0 -0
- /package/dist/{audio-preflight.runtime-C_glQhZY.js → .setup/audio-preflight.runtime-C_glQhZY.mjs} +0 -0
- /package/dist/{command-policy-BIOSHySD.js → .setup/command-policy-BIOSHySD.mjs} +0 -0
- /package/dist/{creds-files-B1kSWtBg.js → .setup/creds-files-B1kSWtBg.mjs} +0 -0
- /package/dist/{group-config-path-BGyzT9Lg.js → .setup/group-config-path-BGyzT9Lg.mjs} +0 -0
- /package/dist/{group-session-contract-DDnZSsJ1.js → .setup/group-session-contract-DDnZSsJ1.mjs} +0 -0
- /package/dist/{reply-resolver.runtime-Ded8D58Y.js → .setup/reply-resolver.runtime-Ded8D58Y.mjs} +0 -0
- /package/dist/{rolldown-runtime-D7D4PA-g.js → .setup/rolldown-runtime-D7D4PA-g.mjs} +0 -0
- /package/dist/{security-contract-nAzD945y.js → .setup/security-contract-nAzD945y.mjs} +0 -0
- /package/dist/{session-contract-DMTm6Q_L.js → .setup/session-contract-DMTm6Q_L.mjs} +0 -0
- /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-
|
|
2
|
-
import {
|
|
3
|
-
import "./normalize-
|
|
4
|
-
import { c as
|
|
5
|
-
import "./text-runtime-
|
|
6
|
-
import { i as buildQuotedMessageOptions } from "./group-session-key-
|
|
7
|
-
import { c as resolveComparableIdentity } from "./identity-
|
|
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 =
|
|
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 =
|
|
147
|
+
const inner = normalizeMessage(candidate.message);
|
|
96
148
|
if (inner) {
|
|
97
|
-
const innerType =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
289
|
-
if (!quoted
|
|
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
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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
|
|
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 (
|
|
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
|
|
405
|
-
|
|
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
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
|
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)
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
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
|
-
|
|
650
|
-
|
|
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
|
-
|
|
706
|
+
mimetype: mediaType
|
|
707
|
+
});
|
|
708
|
+
else if (mediaType.startsWith("audio/")) payload = {
|
|
709
|
+
audio: mediaBuffer,
|
|
710
|
+
ptt: true,
|
|
711
|
+
mimetype: mediaType
|
|
669
712
|
};
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
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
|
-
|
|
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 {
|
|
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 ? `${
|
|
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 };
|