@openclaw/whatsapp 2026.9.6 → 2026.9.7
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/assets/icon.png +0 -0
- package/dist/.setup/{accounts-D_NGDjCx.mjs → accounts-CtRPAQCL.mjs} +3 -9
- package/dist/.setup/{action-runtime-DZZFamfl.mjs → action-runtime-DeVk5V7r.mjs} +2 -2
- package/dist/.setup/{approval-handler.runtime-C0hzmMSj.mjs → approval-handler.runtime-CjqMlPOX.mjs} +6 -26
- package/dist/.setup/{approval-reactions-BnXw-UZI.mjs → approval-reactions-DiOFvb1s.mjs} +8 -14
- package/dist/.setup/{auth-store-Dh8a3cba.mjs → auth-store-BBonwKks.mjs} +9 -33
- package/dist/.setup/{channel-Bg_fS2iF.mjs → channel-CJFE0kD_.mjs} +82 -154
- package/dist/.setup/{channel-react-action-1iBiEnq7.mjs → channel-react-action-2r_hjLZV.mjs} +4 -8
- package/dist/.setup/{channel.runtime-rurG-kbr.mjs → channel.runtime-C94goLw9.mjs} +4 -4
- package/dist/.setup/{channel.setup-C8P5q8uD.mjs → channel.setup-CfN1UfdY.mjs} +1 -1
- package/dist/.setup/{connection-controller-C60mU7j7.mjs → connection-controller-CHo1oRJA.mjs} +13 -63
- package/dist/.setup/{creds-files-Drg3usj1.mjs → creds-files-CDATZWWM.mjs} +5 -11
- package/dist/.setup/{directory-config-BHPoBklt.mjs → directory-config-DUiJ5d8I.mjs} +13 -14
- package/dist/.setup/doctor-iMwg0Vhr.mjs +222 -0
- package/dist/.setup/group-config-path-DZr3ucUO.mjs +40 -0
- package/dist/.setup/{group-session-key-D22hYMdE.mjs → group-session-key-2-mja4OF.mjs} +3 -9
- package/dist/.setup/{login-2dmd1TfE.mjs → login-BFlvSh9h.mjs} +9 -11
- package/dist/.setup/{login-qr-CgKtO_ef.mjs → login-qr-Ayb8i25J.mjs} +29 -77
- package/dist/.setup/{monitor-By82ehLA.mjs → monitor-CGpV2VNN.mjs} +376 -504
- package/dist/.setup/{question-reactions-D3Zq9Gbn.mjs → question-reactions-CPyyi5AY.mjs} +2 -2
- package/dist/.setup/rolldown-runtime-BBjsoOtd.mjs +27 -0
- package/dist/.setup/{send-C6jDmcL9.mjs → send-BGdvf5cC.mjs} +31 -80
- package/dist/.setup/{send-api-B4DOt2RJ.mjs → send-api-H4AkQJjT.mjs} +45 -109
- package/dist/.setup/{session-errors-JuazczrA.mjs → session-errors-B8UcAnZN.mjs} +1 -4
- package/dist/.setup/{session.runtime-DcJuO42v.mjs → session.runtime-st1konFI.mjs} +1 -1
- package/dist/.setup/{setup-finalize-pGqWOiFX.mjs → setup-finalize-DmPX4EaW.mjs} +32 -70
- package/dist/.setup/setup-plugin-api-vJlxKzca.mjs +3 -0
- package/dist/.setup/{setup-surface-B9CYwDPZ.mjs → setup-surface-43fj197P.mjs} +3 -3
- package/dist/.setup/{shared-DVgQ8kRG.mjs → shared-DgOG5Iqr.mjs} +26 -37
- package/dist/.setup/{socket-close-CCVSFufF.mjs → socket-close-CT__V2fz.mjs} +80 -92
- package/dist/.setup/{targets-runtime-RBjx3pg_.mjs → targets-runtime-DmiqXIXO.mjs} +2 -7
- package/dist/action-runtime-api.js +1 -1
- package/dist/action-runtime.runtime.js +1 -1
- package/dist/agent-tools-api.js +5 -12
- package/dist/api.js +10 -10
- package/dist/auth-presence.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +2 -2
- package/dist/directory-contract-api.js +1 -1
- package/dist/doctor-contract-api.js +9 -10
- package/dist/light-runtime-api.js +2 -2
- package/dist/login-qr-runtime.js +1 -1
- package/dist/runtime-api.js +9 -9
- package/dist/setup-entry.js +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/node_modules/audio-decode/LICENSE +9 -10
- package/node_modules/audio-decode/README.md +16 -0
- package/node_modules/audio-decode/audio-decode.d.ts +2 -14
- package/node_modules/audio-decode/audio-decode.js +4 -92
- package/node_modules/audio-decode/meta.js +1 -0
- package/node_modules/audio-decode/node_modules/{audio-buffer → @audio/decode}/LICENSE +1 -1
- package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.d.ts +52 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.js +242 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/meta.js +14 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/package.json +114 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/readme.md +191 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/stream.d.ts +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/stream.js +1 -0
- package/node_modules/audio-decode/node_modules/@audio/decode/test.html +52 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/LICENSE +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/README.md +80 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/alac.js +326 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.d.ts +24 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.js +452 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/meta.js +81 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/package.json +63 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aac/src/aac.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE.liba52 +340 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/README.md +41 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.d.ts +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.js +131 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/package.json +64 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-ac3/src/ac3.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/README.md +46 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.d.ts +16 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.js +583 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-aiff/package.json +52 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/LICENSE +191 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/README.md +65 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.d.ts +16 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.js +150 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/package.json +58 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-amr/src/amr.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/README.md +53 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.d.ts +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.js +241 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-avi/package.json +66 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/README.md +48 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.d.ts +16 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.js +238 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-caf/package.json +53 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/README.md +73 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.d.ts +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.js +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.d.ts +29 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.js +423 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/meta.js +40 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dsd/package.json +64 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE.libdca +339 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/README.md +41 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.d.ts +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.js +139 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/package.json +64 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-dts/src/dts.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE.ffmpeg +502 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/README.md +45 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.d.ts +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.js +124 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/package.json +68 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-eac3/src/eac3.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/LICENSE +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/README.md +23 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.d.ts +18 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.js +3172 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/meta.js +115 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-flac/package.json +60 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE +23 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE.libopenmpt +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/README.md +86 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.d.ts +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.js +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.d.ts +58 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.js +148 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/package.json +68 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mod/src/mod.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/LICENSE +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/README.md +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.d.ts +16 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.js +793 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/meta.js +143 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp3/package.json +60 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/README.md +58 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.d.ts +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.js +455 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mp4/package.json +74 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE +31 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE.libmpcdec +31 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/README.md +60 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.d.ts +20 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.js +158 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/package.json +64 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-mpc/src/mpc.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE.libopus +44 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/README.md +32 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.d.ts +33 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.js +147 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.d.ts +18 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.js +1 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/meta.js +103 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/package.json +68 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/decode-opus.js +2 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/opus.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/LICENSE +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/README.md +19 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.d.ts +16 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.js +275 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-qoa/package.json +56 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE.ttadec +39 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/README.md +58 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.d.ts +17 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.js +302 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-tta/package.json +58 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/LICENSE +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/README.md +33 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.d.ts +18 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.js +2984 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/meta.js +102 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/package.json +60 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/README.md +23 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.d.ts +8 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.js +256 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/meta.js +114 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wav/package.json +52 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE +29 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE.wavpack +25 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/README.md +41 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.js +9 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.d.ts +18 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.js +140 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/package.json +62 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/src/wavpack.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE +21 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE.libopus +44 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/README.md +59 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.d.ts +18 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.js +141 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/package.json +76 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-webm/src/opus.wasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/LICENSE +12 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/README.md +74 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.d.ts +15 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.js +10 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.d.ts +33 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.js +516 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/package.json +57 -0
- package/node_modules/audio-decode/node_modules/@audio/decode-wma/src/wma.wasm.js +0 -0
- package/node_modules/audio-decode/package.json +37 -39
- package/node_modules/audio-decode/stream.d.ts +2 -0
- package/node_modules/audio-decode/stream.js +2 -0
- package/node_modules/baileys/lib/Utils/messages-media.js +1 -1
- package/node_modules/baileys/node_modules/file-type/package.json +1 -1
- package/node_modules/baileys/node_modules/file-type/readme.md +2 -0
- package/node_modules/baileys/node_modules/file-type/source/detectors/zip.js +9 -4
- package/node_modules/baileys/package.json +1 -1
- package/node_modules/typebox/build/compile/code.mjs +1 -2
- package/node_modules/typebox/build/compile/validator.mjs +5 -1
- package/node_modules/typebox/build/format/iri.mjs +16 -9
- package/node_modules/typebox/build/guard/emit.mjs +2 -2
- package/node_modules/typebox/build/guard/guard.d.mts +7 -5
- package/node_modules/typebox/build/guard/guard.mjs +14 -9
- package/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
- package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
- package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
- package/node_modules/typebox/build/schema/build.mjs +2 -3
- package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
- package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
- package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
- package/node_modules/typebox/build/schema/parse.mjs +3 -0
- package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
- package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
- package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
- package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
- package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
- package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
- package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
- package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
- package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
- package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +3 -1
- package/package.json +6 -6
- package/dist/.setup/doctor-BPb-SjdE.mjs +0 -65
- package/dist/.setup/group-config-path-BGyzT9Lg.mjs +0 -54
- package/dist/.setup/normalize-DdsROMMa.mjs +0 -2
- package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
- package/dist/.setup/runtime-group-policy-DeSRFXEV.mjs +0 -11
- package/dist/.setup/setup-plugin-api-2wUapweU.mjs +0 -3
- package/dist/.setup/text-runtime-CHl0iPYe.mjs +0 -4
- package/node_modules/audio-decode/.eslintrc.json +0 -43
- package/node_modules/audio-decode/.github/workflows/test.js.yml +0 -31
- package/node_modules/audio-decode/.travis.yml +0 -13
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/README.md +0 -293
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js +0 -11646
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js.map +0 -1
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/index.js +0 -8
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/package.json +0 -58
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/EmscriptenWasm.js +0 -0
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoder.js +0 -253
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoderWebWorker.js +0 -17
- package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/types.d.ts +0 -77
- package/node_modules/audio-decode/node_modules/audio-buffer/.eslintrc.json +0 -44
- package/node_modules/audio-decode/node_modules/audio-buffer/.github/workflows/node.js.yml +0 -31
- package/node_modules/audio-decode/node_modules/audio-buffer/.travis.yml +0 -7
- package/node_modules/audio-decode/node_modules/audio-buffer/index.js +0 -76
- package/node_modules/audio-decode/node_modules/audio-buffer/package.json +0 -37
- package/node_modules/audio-decode/node_modules/audio-buffer/readme.md +0 -56
- package/node_modules/audio-decode/node_modules/node-wav/README.md +0 -35
- package/node_modules/audio-decode/node_modules/node-wav/file.wav +0 -0
- package/node_modules/audio-decode/node_modules/node-wav/index.js +0 -291
- package/node_modules/audio-decode/node_modules/node-wav/package.json +0 -29
- package/node_modules/audio-decode/node_modules/node-wav/tests/file1.wav +0 -0
- package/node_modules/audio-decode/node_modules/node-wav/tests/test.js +0 -66
- package/node_modules/audio-decode/node_modules/node-wav/x.js +0 -12
- package/node_modules/audio-decode/node_modules/node-wav/x.json +0 -86702
- package/node_modules/audio-decode/node_modules/node-wav/x.js~ +0 -13
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/README.md +0 -320
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js +0 -232
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js.map +0 -1
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js +0 -0
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js.map +0 -1
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/index.js +0 -8
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/package.json +0 -74
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoder.js +0 -226
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoderWebWorker.js +0 -17
- package/node_modules/audio-decode/node_modules/ogg-opus-decoder/types.d.ts +0 -37
- package/node_modules/audio-decode/node_modules/opus-decoder/README.md +0 -265
- package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js +0 -232
- package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js.map +0 -1
- package/node_modules/audio-decode/node_modules/opus-decoder/index.js +0 -8
- package/node_modules/audio-decode/node_modules/opus-decoder/package.json +0 -56
- package/node_modules/audio-decode/node_modules/opus-decoder/src/EmscriptenWasm.js +0 -0
- package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoder.js +0 -239
- package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoderWebWorker.js +0 -17
- package/node_modules/audio-decode/node_modules/opus-decoder/types.d.ts +0 -74
- package/node_modules/audio-decode/readme.md +0 -49
- package/node_modules/audio-decode/tea.yaml +0 -6
- package/node_modules/audio-decode/test-case.js +0 -11
- package/node_modules/audio-decode/test.html +0 -15
- package/node_modules/audio-decode/test.js +0 -107
- /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-CtRPAQCL.mjs";
|
|
2
2
|
import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
|
|
3
|
-
import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-
|
|
4
|
-
import { a as sendWhatsAppUploadFile } from "./send-
|
|
5
|
-
import "./normalize-DdsROMMa.mjs";
|
|
3
|
+
import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-DeVk5V7r.mjs";
|
|
4
|
+
import { a as sendWhatsAppUploadFile } from "./send-BGdvf5cC.mjs";
|
|
6
5
|
import { jsonResult, readStringOrNumberParam, readStringParam as readStringParam$1, resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
|
|
7
6
|
import { canonicalizeBase64, estimateBase64DecodedBytes } from "openclaw/plugin-sdk/media-runtime";
|
|
8
7
|
import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
|
|
@@ -14,9 +13,6 @@ function readUploadFileMediaSource(args) {
|
|
|
14
13
|
function readUploadFileCaptionText(args) {
|
|
15
14
|
return readStringParam$1(args, "message", { allowEmpty: true }) ?? readStringParam$1(args, "content", { allowEmpty: true }) ?? readStringParam$1(args, "caption", { allowEmpty: true }) ?? "";
|
|
16
15
|
}
|
|
17
|
-
function hasUploadFileBufferPayload(args) {
|
|
18
|
-
return readStringParam$1(args, "buffer", { trim: false }) !== void 0;
|
|
19
|
-
}
|
|
20
16
|
function readWhatsAppActionChatJid(params) {
|
|
21
17
|
const explicit = readStringParam$1(params.params, "chatJid") ?? readStringParam$1(params.params, "to");
|
|
22
18
|
if (explicit) return explicit;
|
|
@@ -46,7 +42,7 @@ async function handleWhatsAppUploadFileAction(params) {
|
|
|
46
42
|
const encodedPayload = readStringParam$1(params.params, "buffer", { trim: false });
|
|
47
43
|
const contentType = readStringParam$1(params.params, "contentType") ?? readStringParam$1(params.params, "mimeType");
|
|
48
44
|
const fileName = readStringParam$1(params.params, "filename") ?? readStringParam$1(params.params, "fileName");
|
|
49
|
-
if (!mediaUrl &&
|
|
45
|
+
if (!mediaUrl && encodedPayload === void 0) throw new Error("WhatsApp upload-file requires media, mediaUrl, filePath, path, fileUrl, or buffer.");
|
|
50
46
|
const to = readWhatsAppActionChatJid(params) ?? readStringParam$1(params.params, "to", { required: true });
|
|
51
47
|
const resolved = resolveAuthorizedWhatsAppOutboundTarget({
|
|
52
48
|
cfg: params.cfg,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { startWebLoginWithQr as startWebLoginWithQr$1, waitForWebLogin as waitForWebLogin$1 } from "../login-qr-runtime.js";
|
|
2
|
-
import { c as logoutWeb, d as readWebAuthExistsBestEffort, f as readWebAuthExistsForDecision, g as readWebSelfId, h as readWebAuthState, m as readWebAuthSnapshotBestEffort, o as getWebAuthAgeMs, p as readWebAuthSnapshot, s as logWebSelfId, x as webAuthExists } from "./auth-store-
|
|
2
|
+
import { c as logoutWeb, d as readWebAuthExistsBestEffort, f as readWebAuthExistsForDecision, g as readWebSelfId, h as readWebAuthState, m as readWebAuthSnapshotBestEffort, o as getWebAuthAgeMs, p as readWebAuthSnapshot, s as logWebSelfId, x as webAuthExists } from "./auth-store-BBonwKks.mjs";
|
|
3
3
|
import { t as getActiveWebListener } from "./active-listener-CDjoX9QR.mjs";
|
|
4
|
-
import { t as monitorWebChannel } from "./monitor-
|
|
5
|
-
import { t as loginWeb } from "./login-
|
|
6
|
-
import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-
|
|
4
|
+
import { t as monitorWebChannel } from "./monitor-CGpV2VNN.mjs";
|
|
5
|
+
import { t as loginWeb } from "./login-BFlvSh9h.mjs";
|
|
6
|
+
import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-43fj197P.mjs";
|
|
7
7
|
//#region extensions/whatsapp/src/channel.runtime.ts
|
|
8
8
|
async function startWebLoginWithQr(...args) {
|
|
9
9
|
return await startWebLoginWithQr$1(...args);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createWhatsAppPluginBase } from "./shared-
|
|
1
|
+
import { t as createWhatsAppPluginBase } from "./shared-DgOG5Iqr.mjs";
|
|
2
2
|
//#region extensions/whatsapp/src/channel.setup.ts
|
|
3
3
|
const whatsappSetupPlugin = { ...createWhatsAppPluginBase() };
|
|
4
4
|
//#endregion
|
package/dist/.setup/{connection-controller-C60mU7j7.mjs → connection-controller-CHo1oRJA.mjs}
RENAMED
|
@@ -1,43 +1,11 @@
|
|
|
1
1
|
import { r as getWhatsAppChannelRuntime } from "./runtime-BLlToOi6.mjs";
|
|
2
2
|
import { n as WHATSAPP_CONNECTION_OWNER_PENDING_CAPABILITY, t as WHATSAPP_CONNECTION_CONTROLLER_CAPABILITY } from "./connection-controller-runtime-context-hgLJoRc8.mjs";
|
|
3
|
-
import { M as waitForCredsSaveQueueWithTimeout, c as logoutWeb, f as readWebAuthExistsForDecision, k as resolveComparableIdentity, r as WhatsAppAuthUnstableError } from "./auth-store-
|
|
4
|
-
import {
|
|
5
|
-
import { n as getStatusCode, t as formatError } from "./session-errors-
|
|
6
|
-
import {
|
|
3
|
+
import { M as waitForCredsSaveQueueWithTimeout, c as logoutWeb, f as readWebAuthExistsForDecision, k as resolveComparableIdentity, r as WhatsAppAuthUnstableError } from "./auth-store-BBonwKks.mjs";
|
|
4
|
+
import { d as DEFAULT_WHATSAPP_SOCKET_TIMING, i as waitForWaConnection, o as computeBackoff, r as createWaSocket, t as closeWhatsAppSocketAndWait, u as sleepWithAbort, y as acquireWhatsAppGatewayConnectionOwner } from "./socket-close-CT__V2fz.mjs";
|
|
5
|
+
import { n as getStatusCode, t as formatError } from "./session-errors-B8UcAnZN.mjs";
|
|
6
|
+
import { info } from "openclaw/plugin-sdk/runtime-env";
|
|
7
7
|
import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
|
|
8
|
-
import {
|
|
9
|
-
import { randomUUID } from "node:crypto";
|
|
10
|
-
//#region extensions/whatsapp/src/reconnect.ts
|
|
11
|
-
const DEFAULT_HEARTBEAT_SECONDS = 60;
|
|
12
|
-
const DEFAULT_RECONNECT_POLICY = {
|
|
13
|
-
initialMs: 2e3,
|
|
14
|
-
maxMs: 3e4,
|
|
15
|
-
factor: 1.8,
|
|
16
|
-
jitter: .25,
|
|
17
|
-
maxAttempts: 12
|
|
18
|
-
};
|
|
19
|
-
function resolveHeartbeatSeconds(cfg, overrideSeconds) {
|
|
20
|
-
const candidate = overrideSeconds;
|
|
21
|
-
if (typeof candidate === "number" && candidate > 0) return candidate;
|
|
22
|
-
return DEFAULT_HEARTBEAT_SECONDS;
|
|
23
|
-
}
|
|
24
|
-
function resolveReconnectPolicy(cfg, overrides) {
|
|
25
|
-
const overrideConfig = overrides ?? {};
|
|
26
|
-
const merged = {
|
|
27
|
-
...DEFAULT_RECONNECT_POLICY,
|
|
28
|
-
...overrideConfig
|
|
29
|
-
};
|
|
30
|
-
merged.initialMs = Math.max(250, merged.initialMs);
|
|
31
|
-
merged.maxMs = Math.max(merged.initialMs, merged.maxMs);
|
|
32
|
-
merged.factor = clamp(merged.factor, 1.1, 10);
|
|
33
|
-
merged.jitter = clamp(merged.jitter, 0, 1);
|
|
34
|
-
merged.maxAttempts = Math.max(0, Math.floor(merged.maxAttempts));
|
|
35
|
-
return merged;
|
|
36
|
-
}
|
|
37
|
-
function newConnectionId() {
|
|
38
|
-
return randomUUID();
|
|
39
|
-
}
|
|
40
|
-
//#endregion
|
|
8
|
+
import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
|
|
41
9
|
//#region extensions/whatsapp/src/connection-controller.ts
|
|
42
10
|
const LOGGED_OUT_STATUS = 401;
|
|
43
11
|
const POST_PAIRING_RESTART_STATUS = 515;
|
|
@@ -62,15 +30,7 @@ function getLoginSocketRestartMessage(kind) {
|
|
|
62
30
|
return kind === "timeout" ? WHATSAPP_LOGIN_TIMEOUT_RESTART_MESSAGE : WHATSAPP_LOGIN_RESTART_MESSAGE;
|
|
63
31
|
}
|
|
64
32
|
function createLiveConnection(params) {
|
|
65
|
-
|
|
66
|
-
let resolveClosePromise = (_reason) => {};
|
|
67
|
-
const closePromise = new Promise((resolve) => {
|
|
68
|
-
resolveClosePromise = (reason) => {
|
|
69
|
-
if (closeResolved) return;
|
|
70
|
-
closeResolved = true;
|
|
71
|
-
resolve(reason);
|
|
72
|
-
};
|
|
73
|
-
});
|
|
33
|
+
const close = createDeferred();
|
|
74
34
|
return {
|
|
75
35
|
connectionId: params.connectionId,
|
|
76
36
|
startedAt: Date.now(),
|
|
@@ -85,8 +45,8 @@ function createLiveConnection(params) {
|
|
|
85
45
|
unregisterTransportActivity: null,
|
|
86
46
|
openedAfterRecentInbound: params.openedAfterRecentInbound,
|
|
87
47
|
backgroundTasks: /* @__PURE__ */ new Set(),
|
|
88
|
-
closePromise,
|
|
89
|
-
resolveClose:
|
|
48
|
+
closePromise: close.promise,
|
|
49
|
+
resolveClose: close.resolve,
|
|
90
50
|
socketClosed: false
|
|
91
51
|
};
|
|
92
52
|
}
|
|
@@ -259,7 +219,7 @@ var WhatsAppConnectionController = class {
|
|
|
259
219
|
this.watchdogCheckMs = params.watchdogCheckMs;
|
|
260
220
|
this.reconnectPolicy = params.reconnectPolicy;
|
|
261
221
|
this.abortSignal = params.abortSignal;
|
|
262
|
-
this.sleep = params.sleep ??
|
|
222
|
+
this.sleep = params.sleep ?? sleepWithAbort;
|
|
263
223
|
this.isNonRetryableStatus = params.isNonRetryableStatus ?? (() => false);
|
|
264
224
|
this.socketTiming = {
|
|
265
225
|
...DEFAULT_WHATSAPP_SOCKET_TIMING,
|
|
@@ -456,11 +416,11 @@ var WhatsAppConnectionController = class {
|
|
|
456
416
|
]);
|
|
457
417
|
}
|
|
458
418
|
normalizeCloseReason(reason) {
|
|
459
|
-
const statusCode =
|
|
419
|
+
const statusCode = reason?.status ?? void 0;
|
|
460
420
|
return {
|
|
461
421
|
statusCode,
|
|
462
422
|
statusLabel: typeof statusCode === "number" ? statusCode : "unknown",
|
|
463
|
-
isLoggedOut:
|
|
423
|
+
isLoggedOut: reason.isLoggedOut,
|
|
464
424
|
error: reason?.error,
|
|
465
425
|
errorText: formatError(reason)
|
|
466
426
|
};
|
|
@@ -482,18 +442,8 @@ var WhatsAppConnectionController = class {
|
|
|
482
442
|
healthState: "conflict",
|
|
483
443
|
normalized
|
|
484
444
|
};
|
|
485
|
-
const retryDecision = this.consumeReconnectAttempt();
|
|
486
|
-
if (retryDecision.action === "stop") return {
|
|
487
|
-
action: "stop",
|
|
488
|
-
reconnectAttempts: retryDecision.reconnectAttempts,
|
|
489
|
-
healthState: retryDecision.healthState,
|
|
490
|
-
normalized
|
|
491
|
-
};
|
|
492
445
|
return {
|
|
493
|
-
|
|
494
|
-
delayMs: retryDecision.delayMs,
|
|
495
|
-
reconnectAttempts: retryDecision.reconnectAttempts,
|
|
496
|
-
healthState: retryDecision.healthState,
|
|
446
|
+
...this.consumeReconnectAttempt(),
|
|
497
447
|
normalized
|
|
498
448
|
};
|
|
499
449
|
}
|
|
@@ -686,4 +636,4 @@ var WhatsAppConnectionController = class {
|
|
|
686
636
|
}
|
|
687
637
|
};
|
|
688
638
|
//#endregion
|
|
689
|
-
export { closeWaSocketSoon as a,
|
|
639
|
+
export { closeWaSocketSoon as a, closeWaSocket as i, WHATSAPP_WATCHDOG_TIMEOUT_ERROR as n, waitForWhatsAppLoginResult as o, WhatsAppConnectionController as r, WHATSAPP_LOGGED_OUT_QR_MESSAGE as t };
|
|
@@ -34,15 +34,9 @@ function resolveWebCredsParentCheck(filePath) {
|
|
|
34
34
|
messagePrefix: "WhatsApp credential file path"
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
async function assertWebCredsParentPathSafe(filePath) {
|
|
38
|
-
await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
|
|
39
|
-
}
|
|
40
|
-
function assertWebCredsParentPathSafeSync(filePath) {
|
|
41
|
-
assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
|
|
42
|
-
}
|
|
43
37
|
async function assertWebCredsPathRegularFileOrMissing(filePath) {
|
|
44
38
|
try {
|
|
45
|
-
await
|
|
39
|
+
await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
|
|
46
40
|
await statRegularFile(filePath);
|
|
47
41
|
} catch (error) {
|
|
48
42
|
throw new Error(`WhatsApp credential file path is unsafe; creds.json must be a regular file or missing: ${filePath}`, { cause: error });
|
|
@@ -50,7 +44,7 @@ async function assertWebCredsPathRegularFileOrMissing(filePath) {
|
|
|
50
44
|
}
|
|
51
45
|
function readWebCredsJsonRawSync(filePath) {
|
|
52
46
|
try {
|
|
53
|
-
|
|
47
|
+
assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
|
|
54
48
|
const { buffer, stat } = readRegularFileSync({ filePath });
|
|
55
49
|
return stat.size > 1 ? buffer.toString("utf-8") : null;
|
|
56
50
|
} catch {
|
|
@@ -59,7 +53,7 @@ function readWebCredsJsonRawSync(filePath) {
|
|
|
59
53
|
}
|
|
60
54
|
async function readWebCredsJsonRaw(filePath) {
|
|
61
55
|
try {
|
|
62
|
-
await
|
|
56
|
+
await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
|
|
63
57
|
const { buffer, stat } = await readRegularFile({ filePath });
|
|
64
58
|
return stat.size > 1 ? buffer.toString("utf-8") : null;
|
|
65
59
|
} catch {
|
|
@@ -68,7 +62,7 @@ async function readWebCredsJsonRaw(filePath) {
|
|
|
68
62
|
}
|
|
69
63
|
function statWebCredsFileSync(filePath) {
|
|
70
64
|
try {
|
|
71
|
-
|
|
65
|
+
assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
|
|
72
66
|
const result = statRegularFileSync(filePath);
|
|
73
67
|
if (result.missing || result.stat.size <= 1) return null;
|
|
74
68
|
return {
|
|
@@ -82,7 +76,7 @@ function statWebCredsFileSync(filePath) {
|
|
|
82
76
|
function hasWebCredsRegularFileSync(authDir) {
|
|
83
77
|
try {
|
|
84
78
|
const credsPath = resolveWebCredsPath(authDir);
|
|
85
|
-
|
|
79
|
+
assertNoSymlinkParentsSync(resolveWebCredsParentCheck(credsPath));
|
|
86
80
|
return !statRegularFileSync(credsPath).missing;
|
|
87
81
|
} catch {
|
|
88
82
|
return false;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
2
|
-
import { c as resolveMergedWhatsAppAccountConfig, o as resolveWhatsAppAuthDir } from "./accounts-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-BBjsoOtd.mjs";
|
|
2
|
+
import { c as resolveMergedWhatsAppAccountConfig, o as resolveWhatsAppAuthDir } from "./accounts-CtRPAQCL.mjs";
|
|
3
3
|
import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
|
|
4
4
|
import { i as hasPendingWhatsAppConnectionOwner, r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-hgLJoRc8.mjs";
|
|
5
|
-
import "./
|
|
6
|
-
import { M as waitForCredsSaveQueueWithTimeout, f as readWebAuthExistsForDecision } from "./auth-store-Dh8a3cba.mjs";
|
|
5
|
+
import { M as waitForCredsSaveQueueWithTimeout, f as readWebAuthExistsForDecision } from "./auth-store-BBonwKks.mjs";
|
|
7
6
|
import { n as resolveWebAccountId } from "./active-listener-CDjoX9QR.mjs";
|
|
8
|
-
import {
|
|
7
|
+
import { b as acquireWhatsAppStandaloneConnectionOwner, i as waitForWaConnection, n as createWaDirectorySocket, t as closeWhatsAppSocketAndWait, v as WhatsAppConnectionOwnerBusyError } from "./socket-close-CT__V2fz.mjs";
|
|
9
8
|
import { listResolvedDirectoryGroupEntriesFromMapKeys, listResolvedDirectoryUserEntriesFromAllowFrom } from "openclaw/plugin-sdk/directory-config-runtime";
|
|
10
9
|
//#region extensions/whatsapp/src/directory-config.ts
|
|
11
10
|
var directory_config_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -15,16 +14,13 @@ var directory_config_exports = /* @__PURE__ */ __exportAll({
|
|
|
15
14
|
listWhatsAppDirectoryGroupsLive: () => listWhatsAppDirectoryGroupsLive,
|
|
16
15
|
listWhatsAppDirectoryPeersFromConfig: () => listWhatsAppDirectoryPeersFromConfig
|
|
17
16
|
});
|
|
18
|
-
function resolveWhatsAppDirectoryAccount(cfg, accountId) {
|
|
19
|
-
return resolveMergedWhatsAppAccountConfig({
|
|
20
|
-
cfg,
|
|
21
|
-
accountId
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
17
|
async function listWhatsAppDirectoryPeersFromConfig(params) {
|
|
25
18
|
return listResolvedDirectoryUserEntriesFromAllowFrom({
|
|
26
19
|
...params,
|
|
27
|
-
resolveAccount:
|
|
20
|
+
resolveAccount: (cfg, accountId) => resolveMergedWhatsAppAccountConfig({
|
|
21
|
+
cfg,
|
|
22
|
+
accountId
|
|
23
|
+
}),
|
|
28
24
|
resolveAllowFrom: (account) => account.allowFrom,
|
|
29
25
|
normalizeId: (entry) => {
|
|
30
26
|
const normalized = normalizeWhatsAppTarget(entry);
|
|
@@ -36,7 +32,10 @@ async function listWhatsAppDirectoryPeersFromConfig(params) {
|
|
|
36
32
|
async function listWhatsAppDirectoryGroupsFromConfig(params) {
|
|
37
33
|
return listResolvedDirectoryGroupEntriesFromMapKeys({
|
|
38
34
|
...params,
|
|
39
|
-
resolveAccount:
|
|
35
|
+
resolveAccount: (cfg, accountId) => resolveMergedWhatsAppAccountConfig({
|
|
36
|
+
cfg,
|
|
37
|
+
accountId
|
|
38
|
+
}),
|
|
40
39
|
resolveGroups: (account) => account.groups
|
|
41
40
|
});
|
|
42
41
|
}
|
|
@@ -127,7 +126,7 @@ async function finishPriorStandaloneCleanup(authDir) {
|
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
128
|
async function listGroupsThroughStandaloneOwner(params) {
|
|
130
|
-
const account =
|
|
129
|
+
const account = resolveMergedWhatsAppAccountConfig(params);
|
|
131
130
|
const authDir = resolveWhatsAppAuthDir({
|
|
132
131
|
cfg: params.cfg,
|
|
133
132
|
accountId: account.accountId
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { n as __reExport, t as __exportAll } from "./rolldown-runtime-BBjsoOtd.mjs";
|
|
2
|
+
//#region packages/normalization-core/src/record-coerce.ts
|
|
3
|
+
/** Type guard for non-array object records at browser-safe boundaries. */
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
/** Returns a non-array record or null. */
|
|
8
|
+
function asNullableRecord(value) {
|
|
9
|
+
return isRecord(value) ? value : null;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/config/channel-config-normalization.ts
|
|
13
|
+
/** Applies one channel-specific doctor migration to every object-shaped account. */
|
|
14
|
+
function normalizeChannelAccounts(params) {
|
|
15
|
+
const rawAccounts = asNullableRecord(params.entry.accounts);
|
|
16
|
+
if (!rawAccounts) return {
|
|
17
|
+
entry: params.entry,
|
|
18
|
+
changed: false
|
|
19
|
+
};
|
|
20
|
+
let changed = false;
|
|
21
|
+
const accounts = { ...rawAccounts };
|
|
22
|
+
for (const [accountId, value] of Object.entries(rawAccounts)) {
|
|
23
|
+
const account = asNullableRecord(value);
|
|
24
|
+
if (!account) continue;
|
|
25
|
+
const normalized = params.normalizeAccount({
|
|
26
|
+
account,
|
|
27
|
+
accountId,
|
|
28
|
+
pathPrefix: `${params.pathPrefix}.accounts.${accountId}`,
|
|
29
|
+
changes: params.changes
|
|
30
|
+
});
|
|
31
|
+
if (normalized.changed) {
|
|
32
|
+
accounts[accountId] = normalized.entry;
|
|
33
|
+
changed = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return changed ? {
|
|
37
|
+
entry: {
|
|
38
|
+
...params.entry,
|
|
39
|
+
accounts
|
|
40
|
+
},
|
|
41
|
+
changed: true
|
|
42
|
+
} : {
|
|
43
|
+
entry: params.entry,
|
|
44
|
+
changed: false
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Applies the same channel-specific doctor migration at root and account scope. */
|
|
48
|
+
function normalizeChannelConfigEntries(params) {
|
|
49
|
+
const changes = params.changes ?? [];
|
|
50
|
+
const channels = params.cfg.channels;
|
|
51
|
+
const entry = asNullableRecord(channels?.[params.channelId]);
|
|
52
|
+
if (!entry) return {
|
|
53
|
+
config: params.cfg,
|
|
54
|
+
changes
|
|
55
|
+
};
|
|
56
|
+
const channelPath = `channels.${params.channelId}`;
|
|
57
|
+
const root = params.normalizeEntry({
|
|
58
|
+
entry,
|
|
59
|
+
pathPrefix: channelPath,
|
|
60
|
+
changes
|
|
61
|
+
});
|
|
62
|
+
const accounts = normalizeChannelAccounts({
|
|
63
|
+
entry: root.entry,
|
|
64
|
+
pathPrefix: channelPath,
|
|
65
|
+
changes,
|
|
66
|
+
normalizeAccount: (accountParams) => params.normalizeEntry({
|
|
67
|
+
entry: accountParams.account,
|
|
68
|
+
accountId: accountParams.accountId,
|
|
69
|
+
pathPrefix: accountParams.pathPrefix,
|
|
70
|
+
changes: accountParams.changes
|
|
71
|
+
})
|
|
72
|
+
});
|
|
73
|
+
if (!root.changed && !accounts.changed) return {
|
|
74
|
+
config: params.cfg,
|
|
75
|
+
changes
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
config: {
|
|
79
|
+
...params.cfg,
|
|
80
|
+
channels: {
|
|
81
|
+
...channels,
|
|
82
|
+
[params.channelId]: accounts.entry
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
changes
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region src/plugin-sdk/legacy-webhook-listener-migration.ts
|
|
90
|
+
/** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
|
|
91
|
+
function createLegacyWebhookListenerDoctorContract(params) {
|
|
92
|
+
const portKey = params.portKey ?? "webhookPort";
|
|
93
|
+
const hostKey = params.hostKey === void 0 ? "webhookHost" : params.hostKey;
|
|
94
|
+
const source = (entry) => params.webhookKey ? asNullableRecord(entry[params.webhookKey]) : entry;
|
|
95
|
+
const hasLegacy = (value) => {
|
|
96
|
+
const entry = asNullableRecord(value);
|
|
97
|
+
const listener = entry && source(entry);
|
|
98
|
+
return Boolean(listener && (Object.hasOwn(listener, portKey) || hostKey && Object.hasOwn(listener, hostKey)));
|
|
99
|
+
};
|
|
100
|
+
const prefix = `channels.${params.channelKey}`;
|
|
101
|
+
return {
|
|
102
|
+
legacyConfigRules: [{
|
|
103
|
+
path: ["channels", params.channelKey],
|
|
104
|
+
message: `${prefix} webhook listeners moved to Gateway routes. Run "openclaw doctor --fix" to preserve explicitly configured listener settings as legacyWebhook.`,
|
|
105
|
+
match: (value) => {
|
|
106
|
+
const accounts = asNullableRecord(asNullableRecord(value)?.accounts);
|
|
107
|
+
return hasLegacy(value) || Object.values(accounts ?? {}).some(hasLegacy);
|
|
108
|
+
}
|
|
109
|
+
}],
|
|
110
|
+
normalizeCompatibilityConfig: ({ cfg }) => {
|
|
111
|
+
const root = asNullableRecord(asNullableRecord(cfg.channels)?.[params.channelKey]);
|
|
112
|
+
const inherited = root && source(root);
|
|
113
|
+
const canonicalRoot = asNullableRecord(root?.legacyWebhook);
|
|
114
|
+
return normalizeChannelConfigEntries({
|
|
115
|
+
cfg,
|
|
116
|
+
channelId: params.channelKey,
|
|
117
|
+
normalizeEntry: ({ entry, accountId, pathPrefix, changes }) => {
|
|
118
|
+
const listener = source(entry);
|
|
119
|
+
if (!listener || !hasLegacy(entry)) return {
|
|
120
|
+
entry,
|
|
121
|
+
changed: false
|
|
122
|
+
};
|
|
123
|
+
const next = { ...entry };
|
|
124
|
+
const port = Object.hasOwn(listener, portKey) ? listener[portKey] : (accountId ? canonicalRoot?.port ?? inherited?.[portKey] : void 0) ?? params.defaultPort;
|
|
125
|
+
const inheritedHost = accountId ? canonicalRoot ? canonicalRoot.host : (hostKey ? inherited?.[hostKey] : void 0) ?? params.defaultHost : params.defaultHost;
|
|
126
|
+
const host = hostKey ? listener[hostKey] ?? inheritedHost : inheritedHost;
|
|
127
|
+
const legacyPath = [pathPrefix, params.webhookKey].filter(Boolean).join(".");
|
|
128
|
+
if (Object.hasOwn(entry, "legacyWebhook")) changes.push(`Removed ${legacyPath} legacy listener keys; ${pathPrefix}.legacyWebhook is already configured.`);
|
|
129
|
+
else if (accountId && root?.legacyWebhook === false) changes.push(`Removed ${legacyPath} legacy listener keys; ${prefix}.legacyWebhook: false keeps this account's inherited listener disabled.`);
|
|
130
|
+
else {
|
|
131
|
+
next.legacyWebhook = {
|
|
132
|
+
port,
|
|
133
|
+
...host !== void 0 ? { host } : {}
|
|
134
|
+
};
|
|
135
|
+
changes.push(`Moved ${legacyPath} listener settings to ${pathPrefix}.legacyWebhook. Point the external callback or reverse proxy at the Gateway port and webhook path, verify delivery, then set legacyWebhook: false to disable legacy forwarding.`);
|
|
136
|
+
}
|
|
137
|
+
const updated = params.webhookKey ? { ...listener } : next;
|
|
138
|
+
delete updated[portKey];
|
|
139
|
+
if (hostKey) delete updated[hostKey];
|
|
140
|
+
if (params.webhookKey) {
|
|
141
|
+
if (Object.keys(updated).length) next[params.webhookKey] = updated;
|
|
142
|
+
else delete next[params.webhookKey];
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
entry: next,
|
|
146
|
+
changed: true
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
|
|
155
|
+
var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
|
|
156
|
+
import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
157
|
+
__reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
|
|
158
|
+
//#endregion
|
|
159
|
+
//#region extensions/whatsapp/src/doctor.ts
|
|
160
|
+
function resolveLegacyAckScope(ack) {
|
|
161
|
+
const direct = ack.direct !== false;
|
|
162
|
+
const group = ack.group ?? "mentions";
|
|
163
|
+
if (direct) return group === "always" ? "all" : group === "never" ? "direct" : void 0;
|
|
164
|
+
return group === "always" ? "group-all" : group === "mentions" ? "group-mentions" : group === "never" ? "off" : void 0;
|
|
165
|
+
}
|
|
166
|
+
function resolveDefaultAgentEmoji(cfg) {
|
|
167
|
+
const entries = (0, runtime_doctor_migrations_exports.asObjectRecord)((0, runtime_doctor_migrations_exports.asObjectRecord)(cfg.agents)?.entries);
|
|
168
|
+
const agents = entries ? Object.values(entries).flatMap((value) => {
|
|
169
|
+
const entry = (0, runtime_doctor_migrations_exports.asObjectRecord)(value);
|
|
170
|
+
return entry ? [entry] : [];
|
|
171
|
+
}) : [];
|
|
172
|
+
const agent = agents.find((entry) => entry.default === true) ?? agents[0];
|
|
173
|
+
const emoji = (0, runtime_doctor_migrations_exports.asObjectRecord)(agent?.identity)?.emoji;
|
|
174
|
+
return typeof emoji === "string" ? emoji : void 0;
|
|
175
|
+
}
|
|
176
|
+
function normalizeCompatibilityConfig({ cfg }) {
|
|
177
|
+
const changes = [];
|
|
178
|
+
const sources = [];
|
|
179
|
+
for (const scope of (0, runtime_doctor_migrations_exports.collectChannelAccountScopes)({
|
|
180
|
+
cfg,
|
|
181
|
+
channelId: "whatsapp"
|
|
182
|
+
})) {
|
|
183
|
+
const ack = (0, runtime_doctor_migrations_exports.asObjectRecord)(scope.account.ackReaction);
|
|
184
|
+
if (!ack) continue;
|
|
185
|
+
sources.push({
|
|
186
|
+
path: `${scope.prefix}.ackReaction`,
|
|
187
|
+
account: scope.account,
|
|
188
|
+
...typeof ack.emoji === "string" ? { emoji: ack.emoji } : {},
|
|
189
|
+
scope: resolveLegacyAckScope(ack),
|
|
190
|
+
unrepresentableScope: ack.direct !== false && (ack.group ?? "mentions") === "mentions"
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
if (sources.length === 0) return {
|
|
194
|
+
config: cfg,
|
|
195
|
+
changes
|
|
196
|
+
};
|
|
197
|
+
const messages = cfg.messages ??= {};
|
|
198
|
+
const identityEmoji = resolveDefaultAgentEmoji(cfg) ?? "👀";
|
|
199
|
+
for (const source of sources) {
|
|
200
|
+
messages.ackReaction ??= source.emoji ?? identityEmoji;
|
|
201
|
+
messages.ackReactionScope ??= source.scope;
|
|
202
|
+
delete source.account.ackReaction;
|
|
203
|
+
changes.push(`Moved translatable ${source.path} settings to messages ack settings.`);
|
|
204
|
+
}
|
|
205
|
+
const finalEmoji = messages.ackReaction.trim();
|
|
206
|
+
const finalScope = messages.ackReactionScope ?? "group-mentions";
|
|
207
|
+
const comparableFinalScope = finalScope === "none" ? "off" : finalScope;
|
|
208
|
+
for (const source of sources) {
|
|
209
|
+
const sourceEmoji = source.emoji?.trim();
|
|
210
|
+
if (source.emoji === void 0) changes.push(`${source.path} used a route-dependent agent identity acknowledgement emoji before migration; the final messages.ackReaction is ${JSON.stringify(finalEmoji)}. Review messages.ackReaction.`);
|
|
211
|
+
else if (sourceEmoji !== finalEmoji) changes.push(`${source.path} requested acknowledgement emoji ${JSON.stringify(sourceEmoji)}, but the final messages.ackReaction is ${JSON.stringify(finalEmoji)}. Review messages.ackReaction.`);
|
|
212
|
+
if (source.unrepresentableScope) changes.push(`${source.path} migration cannot preserve both direct-message and mentioned-group acknowledgements; the final messages.ackReactionScope is ${JSON.stringify(finalScope)}. Review messages.ackReactionScope.`);
|
|
213
|
+
else if (source.scope && source.scope !== comparableFinalScope) changes.push(`${source.path} requested acknowledgement scope ${JSON.stringify(source.scope)}, but the final messages.ackReactionScope is ${JSON.stringify(finalScope)}. Review messages.ackReactionScope.`);
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
config: cfg,
|
|
217
|
+
changes
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
const whatsappDoctor = { normalizeCompatibilityConfig };
|
|
221
|
+
//#endregion
|
|
222
|
+
export { whatsappDoctor as n, runtime_doctor_migrations_exports as r, normalizeCompatibilityConfig as t };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-core";
|
|
2
|
+
//#region extensions/whatsapp/src/group-config-path.ts
|
|
3
|
+
const WHATSAPP_GROUP_SCOPE_FIELDS = [
|
|
4
|
+
"groupPolicy",
|
|
5
|
+
"groupAllowFrom",
|
|
6
|
+
"groups"
|
|
7
|
+
];
|
|
8
|
+
function resolveWhatsAppAccountKey(accounts, accountId) {
|
|
9
|
+
if (!accounts) return;
|
|
10
|
+
if (Object.hasOwn(accounts, accountId)) return accountId;
|
|
11
|
+
const normalizedAccountId = accountId.trim().toLowerCase();
|
|
12
|
+
return Object.keys(accounts).find((key) => key.trim().toLowerCase() === normalizedAccountId);
|
|
13
|
+
}
|
|
14
|
+
function normalizePathAccountId(accountId) {
|
|
15
|
+
return typeof accountId === "string" ? accountId.trim() || DEFAULT_ACCOUNT_ID : DEFAULT_ACCOUNT_ID;
|
|
16
|
+
}
|
|
17
|
+
function hasConfiguredField(config, field) {
|
|
18
|
+
return Boolean(config && typeof config === "object" && Object.hasOwn(config, field) && config[field] !== void 0);
|
|
19
|
+
}
|
|
20
|
+
function resolveWhatsAppGroupScopeBasePath(params, fields = WHATSAPP_GROUP_SCOPE_FIELDS) {
|
|
21
|
+
const accountId = normalizePathAccountId(params.accountId);
|
|
22
|
+
const whatsapp = params.cfg.channels?.whatsapp;
|
|
23
|
+
const accounts = whatsapp?.accounts;
|
|
24
|
+
const accountKey = resolveWhatsAppAccountKey(accounts, accountId);
|
|
25
|
+
const defaultAccountKey = resolveWhatsAppAccountKey(accounts, DEFAULT_ACCOUNT_ID);
|
|
26
|
+
const accountConfig = accountKey ? accounts?.[accountKey] : void 0;
|
|
27
|
+
const defaultAccountConfig = defaultAccountKey ? accounts?.[defaultAccountKey] : void 0;
|
|
28
|
+
const hasField = (config) => fields.some((field) => hasConfiguredField(config, field));
|
|
29
|
+
if (hasField(accountConfig)) return `channels.whatsapp.accounts.${accountKey}`;
|
|
30
|
+
if (accountId !== DEFAULT_ACCOUNT_ID && hasField(defaultAccountConfig)) return `channels.whatsapp.accounts.${defaultAccountKey}`;
|
|
31
|
+
if (hasField(whatsapp)) return "channels.whatsapp";
|
|
32
|
+
}
|
|
33
|
+
function resolveWhatsAppConfigPath(params) {
|
|
34
|
+
return `${resolveWhatsAppGroupScopeBasePath(params) ?? "channels.whatsapp"}.${params.field}`;
|
|
35
|
+
}
|
|
36
|
+
function resolveWhatsAppGroupsConfigPath(params) {
|
|
37
|
+
return `${resolveWhatsAppGroupScopeBasePath(params, ["groups"]) ?? resolveWhatsAppGroupScopeBasePath(params) ?? "channels.whatsapp"}.groups`;
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { resolveWhatsAppGroupsConfigPath as n, resolveWhatsAppConfigPath as t };
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CtRPAQCL.mjs";
|
|
2
2
|
import { c as normalizeWhatsAppTarget } from "./normalize-target-BGra1ZnM.mjs";
|
|
3
|
-
import "./
|
|
4
|
-
import { r as jidToE164 } from "./targets-runtime-RBjx3pg_.mjs";
|
|
5
|
-
import "./text-runtime-CHl0iPYe.mjs";
|
|
3
|
+
import { r as jidToE164 } from "./targets-runtime-DmiqXIXO.mjs";
|
|
6
4
|
import { formatMediaPlaceholderText } from "openclaw/plugin-sdk/channel-inbound";
|
|
7
5
|
import { createChannelApprovalAuth } from "openclaw/plugin-sdk/approval-auth-runtime";
|
|
8
6
|
import { isHostedLidUser, isHostedPnUser, isLidUser, isPnUser } from "baileys";
|
|
@@ -96,11 +94,7 @@ function lookupInboundMessageMetaForTarget(accountId, targetJid, messageId) {
|
|
|
96
94
|
const exact = lookupInboundMessageMeta(accountId, targetJid, messageId);
|
|
97
95
|
if (exact) return {
|
|
98
96
|
remoteJid: targetJid,
|
|
99
|
-
|
|
100
|
-
participantE164: exact.participantE164,
|
|
101
|
-
body: exact.body,
|
|
102
|
-
media: exact.media,
|
|
103
|
-
fromMe: exact.fromMe
|
|
97
|
+
...exact
|
|
104
98
|
};
|
|
105
99
|
const prefix = `${accountId}:`;
|
|
106
100
|
const suffix = `:${messageId}`;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
2
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
3
|
-
import { b as restoreCredsFromBackupIfNeeded } from "./auth-store-
|
|
4
|
-
import {
|
|
5
|
-
import { a as closeWaSocketSoon, o as waitForWhatsAppLoginResult } from "./connection-controller-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-BBjsoOtd.mjs";
|
|
2
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CtRPAQCL.mjs";
|
|
3
|
+
import { b as restoreCredsFromBackupIfNeeded } from "./auth-store-BBonwKks.mjs";
|
|
4
|
+
import { _ as renderQrTerminal, h as resolveWhatsAppSocketTiming, r as createWaSocket } from "./socket-close-CT__V2fz.mjs";
|
|
5
|
+
import { a as closeWaSocketSoon, o as waitForWhatsAppLoginResult } from "./connection-controller-CHo1oRJA.mjs";
|
|
6
6
|
import { formatCliCommand } from "openclaw/plugin-sdk/cli-runtime";
|
|
7
7
|
import { logInfo } from "openclaw/plugin-sdk/logging-core";
|
|
8
8
|
import { danger, defaultRuntime, success } from "openclaw/plugin-sdk/runtime-env";
|
|
9
|
+
import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
|
|
9
10
|
import { getRuntimeConfig } from "openclaw/plugin-sdk/runtime-config-snapshot";
|
|
10
11
|
//#region extensions/whatsapp/src/login.ts
|
|
11
12
|
var login_exports = /* @__PURE__ */ __exportAll({ loginWeb: () => loginWeb });
|
|
@@ -20,14 +21,11 @@ async function loginWeb(verbose, waitForConnection, runtime = defaultRuntime, ac
|
|
|
20
21
|
const socketTiming = resolveWhatsAppSocketTiming();
|
|
21
22
|
const restoredFromBackup = await restoreCredsFromBackupIfNeeded(account.authDir, { beforeCredentialPersistence: options?.beforeCredentialPersistence });
|
|
22
23
|
const credentialPersistenceState = { failure: null };
|
|
23
|
-
|
|
24
|
-
const credentialPersistenceFailurePromise = new Promise((resolve) => {
|
|
25
|
-
resolveCredentialPersistenceFailure = resolve;
|
|
26
|
-
});
|
|
24
|
+
const credentialPersistenceFailure = createDeferred();
|
|
27
25
|
const onCredentialPersistenceError = (error) => {
|
|
28
26
|
if (credentialPersistenceState.failure) return;
|
|
29
27
|
credentialPersistenceState.failure = { error };
|
|
30
|
-
|
|
28
|
+
credentialPersistenceFailure.resolve(credentialPersistenceState.failure);
|
|
31
29
|
};
|
|
32
30
|
const credentialPersistenceTasks = /* @__PURE__ */ new Set();
|
|
33
31
|
const onCredentialPersistenceTask = (task) => {
|
|
@@ -84,7 +82,7 @@ async function loginWeb(verbose, waitForConnection, runtime = defaultRuntime, ac
|
|
|
84
82
|
onQr,
|
|
85
83
|
...credentialPersistenceOptions,
|
|
86
84
|
...options?.beforeCredentialPersistence ? {
|
|
87
|
-
credentialPersistenceFailure:
|
|
85
|
+
credentialPersistenceFailure: credentialPersistenceFailure.promise,
|
|
88
86
|
getCredentialPersistenceFailure: () => credentialPersistenceState.failure,
|
|
89
87
|
waitForCredentialPersistence
|
|
90
88
|
} : {},
|