@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
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio decoder: whole-file, streaming, chunked
|
|
3
|
+
* @module audio-decode
|
|
4
|
+
*
|
|
5
|
+
* let { channelData, sampleRate } = await decode(buf)
|
|
6
|
+
*
|
|
7
|
+
* for await (let pcm of decode.mp3(source)) { ... }
|
|
8
|
+
*
|
|
9
|
+
* let dec = await decode.mp3()
|
|
10
|
+
* let { channelData, sampleRate } = await dec(chunk)
|
|
11
|
+
* await dec() // close
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import getType from 'audio-type';
|
|
15
|
+
|
|
16
|
+
const EMPTY = Object.freeze({ channelData: Object.freeze([]), sampleRate: 0 })
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Decode audio.
|
|
20
|
+
* 1 arg: whole-file — auto-detects format, returns Promise<AudioData>
|
|
21
|
+
* 2 args: chunked — streams from ReadableStream/AsyncIterable, returns AsyncGenerator<AudioData>
|
|
22
|
+
*/
|
|
23
|
+
export default function decode(src, format) {
|
|
24
|
+
if (format) return decodeChunked(src, format)
|
|
25
|
+
return decodeWhole(src)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function decodeWhole(src) {
|
|
29
|
+
// Blob / File / Response — anything that materializes to an ArrayBuffer
|
|
30
|
+
if (src && typeof src.arrayBuffer === 'function') src = await src.arrayBuffer()
|
|
31
|
+
if (!src || typeof src === 'string' || !(src.buffer || src.byteLength || src.length))
|
|
32
|
+
throw TypeError('Expected ArrayBuffer, Uint8Array, Buffer, Blob, File, or Response')
|
|
33
|
+
let buf = new Uint8Array(src)
|
|
34
|
+
|
|
35
|
+
let type = getType(buf)
|
|
36
|
+
if (!type) throw Error('Unknown audio format')
|
|
37
|
+
if (!decode[type]) throw Error('No decoder for ' + type)
|
|
38
|
+
|
|
39
|
+
let dec = await decode[type]()
|
|
40
|
+
try {
|
|
41
|
+
let result = await dec(buf)
|
|
42
|
+
let flushed = await dec()
|
|
43
|
+
return merge(result, flushed)
|
|
44
|
+
} catch (e) { dec.free(); throw e }
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Decode a ReadableStream or async iterable of encoded audio chunks.
|
|
49
|
+
* @param {ReadableStream|AsyncIterable} source
|
|
50
|
+
* @param {string} format - codec name
|
|
51
|
+
* @returns {AsyncGenerator<{channelData: Float32Array[], sampleRate: number}>}
|
|
52
|
+
*/
|
|
53
|
+
export async function* decodeChunked(source, format) {
|
|
54
|
+
if (!decode[format]) throw Error('No decoder for ' + format)
|
|
55
|
+
let dec = await decode[format]()
|
|
56
|
+
try {
|
|
57
|
+
if (source.getReader) {
|
|
58
|
+
let reader = source.getReader()
|
|
59
|
+
while (true) {
|
|
60
|
+
let { done, value } = await reader.read()
|
|
61
|
+
if (done) break
|
|
62
|
+
let result = await dec(value instanceof Uint8Array ? value : new Uint8Array(value))
|
|
63
|
+
if (result.channelData.length) yield result
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
for await (let chunk of source) {
|
|
67
|
+
let result = await dec(chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk))
|
|
68
|
+
if (result.channelData.length) yield result
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
let flushed = await dec()
|
|
72
|
+
if (flushed.channelData.length) yield flushed
|
|
73
|
+
} finally {
|
|
74
|
+
dec.free()
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// --- format registration ---
|
|
79
|
+
|
|
80
|
+
function reg(name, load, dedupe) {
|
|
81
|
+
decode[name] = fmt(name, async () => {
|
|
82
|
+
let mod = await load()
|
|
83
|
+
// @audio/* packages export { decoder, default }
|
|
84
|
+
if (mod.decoder) {
|
|
85
|
+
let codec = await mod.decoder()
|
|
86
|
+
return streamDecoder(
|
|
87
|
+
chunk => codec.decode(chunk),
|
|
88
|
+
codec.flush ? () => codec.flush() : null,
|
|
89
|
+
codec.free ? () => codec.free() : null,
|
|
90
|
+
dedupe
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
// wasm-audio-decoders export class with .ready
|
|
94
|
+
let init = mod.default || mod
|
|
95
|
+
let codec = typeof init === 'function' ? await init() : init
|
|
96
|
+
if (codec.ready) await codec.ready
|
|
97
|
+
return streamDecoder(
|
|
98
|
+
chunk => codec.decode(chunk),
|
|
99
|
+
codec.flush ? () => codec.flush() : null,
|
|
100
|
+
codec.free ? () => codec.free() : null,
|
|
101
|
+
dedupe
|
|
102
|
+
)
|
|
103
|
+
})
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function fmt(name, init) {
|
|
107
|
+
let fn = (src) => {
|
|
108
|
+
if (!src) return init()
|
|
109
|
+
// async iterable / ReadableStream → streaming decode
|
|
110
|
+
if (src[Symbol.asyncIterator] || src.getReader) return decodeChunked(src, name)
|
|
111
|
+
// buffer → whole-file decode
|
|
112
|
+
console.warn('decode.' + name + '(data) is deprecated, use decode(data)')
|
|
113
|
+
return (async () => {
|
|
114
|
+
let dec = await init()
|
|
115
|
+
try {
|
|
116
|
+
let result = await dec(src instanceof Uint8Array ? src : new Uint8Array(src.buffer || src))
|
|
117
|
+
let flushed = await dec()
|
|
118
|
+
return merge(result, flushed)
|
|
119
|
+
} catch (e) { dec.free(); throw e }
|
|
120
|
+
})()
|
|
121
|
+
}
|
|
122
|
+
return fn
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// --- codecs ---
|
|
126
|
+
// dedupe (3rd arg): decoder upmixes mono sources to duplicate stereo (verified for mp3;
|
|
127
|
+
// aac/wma flagged conservatively — same lossy-wasm family). Exact containers never dedupe;
|
|
128
|
+
// video containers that may carry AAC or MP3 (mp4/mov, mkv, avi) do.
|
|
129
|
+
|
|
130
|
+
reg('mp3', () => import('@audio/decode-mp3'), true)
|
|
131
|
+
reg('flac', () => import('@audio/decode-flac'))
|
|
132
|
+
reg('opus', () => import('@audio/decode-opus'))
|
|
133
|
+
reg('oga', () => import('@audio/decode-vorbis'))
|
|
134
|
+
|
|
135
|
+
reg('m4a', () => import('@audio/decode-mp4'), true)
|
|
136
|
+
reg('mp4', () => import('@audio/decode-mp4'), true)
|
|
137
|
+
reg('mov', () => import('@audio/decode-mp4'), true)
|
|
138
|
+
|
|
139
|
+
reg('wav', () => import('@audio/decode-wav'))
|
|
140
|
+
reg('qoa', () => import('@audio/decode-qoa'))
|
|
141
|
+
|
|
142
|
+
reg('aac', () => import('@audio/decode-aac'), true)
|
|
143
|
+
reg('aiff', () => import('@audio/decode-aiff'))
|
|
144
|
+
reg('caf', () => import('@audio/decode-caf'))
|
|
145
|
+
reg('webm', () => import('@audio/decode-webm'))
|
|
146
|
+
reg('mkv', () => import('@audio/decode-webm'), true)
|
|
147
|
+
reg('avi', () => import('@audio/decode-avi'), true)
|
|
148
|
+
reg('ac3', () => import('@audio/decode-ac3'))
|
|
149
|
+
reg('dts', () => import('@audio/decode-dts'))
|
|
150
|
+
reg('amr', () => import('@audio/decode-amr'))
|
|
151
|
+
reg('wma', () => import('@audio/decode-wma'), true)
|
|
152
|
+
|
|
153
|
+
// lossless / audiophile long tail
|
|
154
|
+
reg('wv', () => import('@audio/decode-wavpack'))
|
|
155
|
+
reg('tta', () => import('@audio/decode-tta'))
|
|
156
|
+
reg('ape', () => import('@audio/decode-ape'))
|
|
157
|
+
reg('mpc', () => import('@audio/decode-mpc'))
|
|
158
|
+
reg('eac3', () => import('@audio/decode-eac3'))
|
|
159
|
+
reg('dsf', () => import('@audio/decode-dsd'))
|
|
160
|
+
reg('dff', () => import('@audio/decode-dsd'))
|
|
161
|
+
|
|
162
|
+
// tracker modules — one libopenmpt renderer, four format names
|
|
163
|
+
reg('mod', () => import('@audio/decode-mod'))
|
|
164
|
+
reg('xm', () => import('@audio/decode-mod'))
|
|
165
|
+
reg('s3m', () => import('@audio/decode-mod'))
|
|
166
|
+
reg('it', () => import('@audio/decode-mod'))
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* StreamDecoder — a callable function:
|
|
170
|
+
* dec(chunk) — decode data, returns { channelData, sampleRate }
|
|
171
|
+
* dec() — end of stream: flush remaining samples + free resources
|
|
172
|
+
* dec.flush() — flush without freeing
|
|
173
|
+
* dec.free() — release resources without flushing
|
|
174
|
+
*/
|
|
175
|
+
function streamDecoder(onDecode, onFlush, onFree, dedupe) {
|
|
176
|
+
let done = false
|
|
177
|
+
// dedupe: this codec's decoder upmixes mono sources to duplicate stereo — collapse it
|
|
178
|
+
// back. Sticky per stream: the moment channels genuinely differ, never collapse again
|
|
179
|
+
// (a real stereo file with a dual-mono passage must not flicker channel count).
|
|
180
|
+
let dd = dedupe ? { live: true } : null
|
|
181
|
+
let fn = async (chunk) => {
|
|
182
|
+
if (chunk) {
|
|
183
|
+
if (done) throw Error('Decoder already freed')
|
|
184
|
+
try { return norm(await onDecode(chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk)), dd) }
|
|
185
|
+
catch (e) { done = true; onFree?.(); throw e }
|
|
186
|
+
}
|
|
187
|
+
// null/undefined = end of stream
|
|
188
|
+
if (done) return EMPTY
|
|
189
|
+
done = true
|
|
190
|
+
try {
|
|
191
|
+
let result = onFlush ? norm(await onFlush(), dd) : EMPTY
|
|
192
|
+
onFree?.()
|
|
193
|
+
return result
|
|
194
|
+
} catch (e) { onFree?.(); throw e }
|
|
195
|
+
}
|
|
196
|
+
fn.flush = async () => {
|
|
197
|
+
if (done) return EMPTY
|
|
198
|
+
return onFlush ? norm(await onFlush(), dd) : EMPTY
|
|
199
|
+
}
|
|
200
|
+
fn.free = () => {
|
|
201
|
+
if (done) return
|
|
202
|
+
done = true
|
|
203
|
+
onFree?.()
|
|
204
|
+
}
|
|
205
|
+
return fn
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// extract { channelData, sampleRate } from codec result
|
|
209
|
+
function norm(r, dd) {
|
|
210
|
+
if (!r?.channelData?.length) return EMPTY
|
|
211
|
+
let { channelData, sampleRate, samplesDecoded } = r
|
|
212
|
+
if (samplesDecoded != null && samplesDecoded < channelData[0].length)
|
|
213
|
+
channelData = channelData.map(ch => ch.subarray(0, samplesDecoded))
|
|
214
|
+
if (!channelData[0]?.length) return EMPTY
|
|
215
|
+
// collapse duplicate stereo to mono — only for codecs flagged as mono-upmixing;
|
|
216
|
+
// exact containers (wav/flac/…) keep their declared width (dual-mono is legitimate)
|
|
217
|
+
if (dd?.live && channelData.length === 2) {
|
|
218
|
+
let a = channelData[0], b = channelData[1], same = true
|
|
219
|
+
for (let i = 0; i < a.length; i += 37) { if (a[i] !== b[i]) { same = false; break } }
|
|
220
|
+
if (same) channelData = [a]
|
|
221
|
+
else dd.live = false
|
|
222
|
+
}
|
|
223
|
+
return { channelData, sampleRate }
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// merge two decode results
|
|
227
|
+
function merge(a, b) {
|
|
228
|
+
if (!b?.channelData?.length) return a
|
|
229
|
+
if (!a?.channelData?.length) return b
|
|
230
|
+
let ach = a.channelData.length, bch = b.channelData.length
|
|
231
|
+
let ch = Math.max(ach, bch)
|
|
232
|
+
return {
|
|
233
|
+
channelData: Array.from({ length: ch }, (_, i) => {
|
|
234
|
+
let ac = a.channelData[i % ach], bc = b.channelData[i % bch]
|
|
235
|
+
let merged = new Float32Array(ac.length + bc.length)
|
|
236
|
+
merged.set(ac)
|
|
237
|
+
merged.set(bc, ac.length)
|
|
238
|
+
return merged
|
|
239
|
+
}),
|
|
240
|
+
sampleRate: a.sampleRate
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meta parsers — re-export from codec packages.
|
|
3
|
+
* @module audio-decode/meta
|
|
4
|
+
*
|
|
5
|
+
* import { wav, mp3, flac, oga, opus, m4a } from 'audio-decode/meta'
|
|
6
|
+
* let result = wav(bytes) // { meta, sampleRate, markers, regions } | null
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { parseMeta as wav } from '@audio/decode-wav/meta'
|
|
10
|
+
export { parseMeta as mp3, parseId3v2 } from '@audio/decode-mp3/meta'
|
|
11
|
+
export { parseMeta as flac } from '@audio/decode-flac/meta'
|
|
12
|
+
export { parseMeta as oga } from '@audio/decode-vorbis/meta'
|
|
13
|
+
export { parseMeta as opus } from '@audio/decode-opus/meta'
|
|
14
|
+
export { parseMeta as m4a } from '@audio/decode-aac/meta'
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@audio/decode",
|
|
3
|
+
"version": "3.15.0",
|
|
4
|
+
"description": "Decode audio data in node or browser",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"main": "audio-decode.js",
|
|
8
|
+
"types": "audio-decode.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"audio-decode.js",
|
|
11
|
+
"audio-decode.d.ts",
|
|
12
|
+
"stream.js",
|
|
13
|
+
"stream.d.ts",
|
|
14
|
+
"meta.js",
|
|
15
|
+
"test.html"
|
|
16
|
+
],
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"browser": "./audio-decode.js",
|
|
20
|
+
"node": "./audio-decode.js",
|
|
21
|
+
"default": "./audio-decode.js"
|
|
22
|
+
},
|
|
23
|
+
"./stream": "./stream.js",
|
|
24
|
+
"./meta": "./meta.js",
|
|
25
|
+
"./package.json": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
"workspaces": [
|
|
28
|
+
"packages/*"
|
|
29
|
+
],
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@audio/decode-aac": "^1.5.0",
|
|
32
|
+
"@audio/decode-ac3": "^1.0.0",
|
|
33
|
+
"@audio/decode-aiff": "^1.3.0",
|
|
34
|
+
"@audio/decode-amr": "^1.3.0",
|
|
35
|
+
"@audio/decode-avi": "^1.1.0",
|
|
36
|
+
"@audio/decode-caf": "^1.4.0",
|
|
37
|
+
"@audio/decode-dts": "^1.0.0",
|
|
38
|
+
"@audio/decode-flac": "^1.3.0",
|
|
39
|
+
"@audio/decode-mp3": "^1.3.0",
|
|
40
|
+
"@audio/decode-mp4": "^1.1.1",
|
|
41
|
+
"@audio/decode-opus": "^1.3.0",
|
|
42
|
+
"@audio/decode-qoa": "^1.2.0",
|
|
43
|
+
"@audio/decode-vorbis": "^1.3.0",
|
|
44
|
+
"@audio/decode-wav": "^1.5.0",
|
|
45
|
+
"@audio/decode-webm": "^1.6.1",
|
|
46
|
+
"@audio/decode-wma": "^1.3.0",
|
|
47
|
+
"audio-type": "^2.7.0",
|
|
48
|
+
"@audio/decode-wavpack": "^1.0.0",
|
|
49
|
+
"@audio/decode-tta": "^1.0.0",
|
|
50
|
+
"@audio/decode-mpc": "^1.0.0",
|
|
51
|
+
"@audio/decode-mod": "^1.0.0",
|
|
52
|
+
"@audio/decode-dsd": "^1.0.0"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"audio-lena": "^3.0.0",
|
|
56
|
+
"base64-arraybuffer": "^1.0.2",
|
|
57
|
+
"esbuild": "^0.28.0",
|
|
58
|
+
"playwright": "^1.58.0",
|
|
59
|
+
"tst": "^9.2.2"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"test": "node test.js",
|
|
63
|
+
"test:browser": "node test.browser.js",
|
|
64
|
+
"test:all": "node test.js && node test.browser.js",
|
|
65
|
+
"publish:all": "for d in packages/* .; do [ -f \"$d/package.json\" ] || continue; id=$(node -p \"require('./'+'$d'+'/package.json').name+'@'+require('./'+'$d'+'/package.json').version\"); npm view \"$id\" version >/dev/null 2>&1 && echo \"skip $id\" || (cd \"$d\" && npm publish); done"
|
|
66
|
+
},
|
|
67
|
+
"repository": {
|
|
68
|
+
"type": "git",
|
|
69
|
+
"url": "git+https://github.com/audiojs/decode.git"
|
|
70
|
+
},
|
|
71
|
+
"keywords": [
|
|
72
|
+
"audio",
|
|
73
|
+
"decode",
|
|
74
|
+
"decoder",
|
|
75
|
+
"codec",
|
|
76
|
+
"mp3",
|
|
77
|
+
"wav",
|
|
78
|
+
"ogg",
|
|
79
|
+
"vorbis",
|
|
80
|
+
"opus",
|
|
81
|
+
"flac",
|
|
82
|
+
"aac",
|
|
83
|
+
"m4a",
|
|
84
|
+
"qoa",
|
|
85
|
+
"aiff",
|
|
86
|
+
"caf",
|
|
87
|
+
"webm",
|
|
88
|
+
"amr",
|
|
89
|
+
"wma",
|
|
90
|
+
"pcm",
|
|
91
|
+
"streaming",
|
|
92
|
+
"mp4",
|
|
93
|
+
"mov",
|
|
94
|
+
"mkv",
|
|
95
|
+
"avi",
|
|
96
|
+
"video",
|
|
97
|
+
"extract",
|
|
98
|
+
"ac3",
|
|
99
|
+
"dts"
|
|
100
|
+
],
|
|
101
|
+
"author": "Dmitry Iv. <dfcreative@gmail.com>",
|
|
102
|
+
"license": "MIT",
|
|
103
|
+
"bugs": {
|
|
104
|
+
"url": "https://github.com/audiojs/decode/issues"
|
|
105
|
+
},
|
|
106
|
+
"homepage": "https://github.com/audiojs/decode#readme",
|
|
107
|
+
"publishConfig": {
|
|
108
|
+
"access": "public"
|
|
109
|
+
},
|
|
110
|
+
"engines": {
|
|
111
|
+
"node": ">=18"
|
|
112
|
+
},
|
|
113
|
+
"funding": "https://github.com/sponsors/audiojs"
|
|
114
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# @audio/decode [](https://github.com/audiojs/decode/actions/workflows/test.js.yml)
|
|
2
|
+
|
|
3
|
+
Try it in the browser: [Extract audio from video](https://audiojs.dev/util/extract-audio/), [Audio converter](https://audiojs.dev/util/convert-audio/). Runs on this package, nothing is uploaded.
|
|
4
|
+
|
|
5
|
+
Decode any audio format to raw samples.<br>
|
|
6
|
+
JS / WASM with no ffmpeg or native bindings; works in Node.js and browsers.<br>
|
|
7
|
+
Small API, minimal size, near-native performance, lazy-loading, chunked decoding.
|
|
8
|
+
|
|
9
|
+
[](https://npmjs.org/package/@audio/decode/)
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import decode from '@audio/decode';
|
|
13
|
+
|
|
14
|
+
const { channelData, sampleRate } = await decode(anyAudioBuffer);
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
#### Supported formats
|
|
18
|
+
|
|
19
|
+
| Format | Package | Size | Engine |
|
|
20
|
+
|--------|---------|------|--------|
|
|
21
|
+
| MP3 | [@audio/decode-mp3](./packages/decode-mp3) | 92 KB | WASM |
|
|
22
|
+
| WAV | [@audio/decode-wav](./packages/decode-wav) | 11 KB | JS |
|
|
23
|
+
| OGG Vorbis | [@audio/decode-vorbis](./packages/decode-vorbis) | 166 KB | WASM |
|
|
24
|
+
| FLAC | [@audio/decode-flac](./packages/decode-flac) | 135 KB | WASM |
|
|
25
|
+
| Opus | [@audio/decode-opus](./packages/decode-opus) | 166 KB | WASM |
|
|
26
|
+
| M4A / AAC / ALAC | [@audio/decode-aac](./packages/decode-aac) | 368 KB | WASM + JS |
|
|
27
|
+
| MP4 / MOV / M4V / 3GP video | [@audio/decode-mp4](./packages/decode-mp4) | 12 KB + codec | JS demux |
|
|
28
|
+
| QOA | [@audio/decode-qoa](./packages/decode-qoa) | 8 KB | JS |
|
|
29
|
+
| AIFF | [@audio/decode-aiff](./packages/decode-aiff) | 20 KB | JS |
|
|
30
|
+
| CAF | [@audio/decode-caf](./packages/decode-caf) | 9 KB | JS |
|
|
31
|
+
| WebM / MKV video | [@audio/decode-webm](./packages/decode-webm) | 250 KB | WASM |
|
|
32
|
+
| AVI video | [@audio/decode-avi](./packages/decode-avi) | 8 KB + codec | JS demux |
|
|
33
|
+
| AC-3 | [@audio/decode-ac3](./packages/decode-ac3) | 43 KB | WASM |
|
|
34
|
+
| DTS | [@audio/decode-dts](./packages/decode-dts) | 200 KB | WASM |
|
|
35
|
+
| E-AC-3 (Dolby Digital Plus, + AC-3) | [@audio/decode-eac3](./packages/decode-eac3) | 432 KB | WASM (FFmpeg libavcodec, LGPL) |
|
|
36
|
+
| APE (Monkey's Audio) | [@audio/decode-ape](./packages/decode-ape) | 262 KB | WASM (FFmpeg libavcodec, LGPL) |
|
|
37
|
+
| AMR | [@audio/decode-amr](./packages/decode-amr) | 241 KB | WASM |
|
|
38
|
+
| WMA | [@audio/decode-wma](./packages/decode-wma) | 91 KB | WASM |
|
|
39
|
+
| WavPack | [@audio/decode-wavpack](./packages/decode-wavpack) | 51 KB | WASM |
|
|
40
|
+
| TTA (True Audio) | [@audio/decode-tta](./packages/decode-tta) | 11 KB | JS |
|
|
41
|
+
| Musepack SV7 / SV8 | [@audio/decode-mpc](./packages/decode-mpc) | 51 KB | WASM |
|
|
42
|
+
| MOD / XM / S3M / IT tracker modules | [@audio/decode-mod](./packages/decode-mod) | 1.4 MB | WASM (libopenmpt) |
|
|
43
|
+
| DSF / DFF (DSD64–512 → PCM) | [@audio/decode-dsd](./packages/decode-dsd) | 18 KB | JS |
|
|
44
|
+
|
|
45
|
+
### Whole-file
|
|
46
|
+
|
|
47
|
+
Auto-detects format. Input can be _ArrayBuffer_, _Uint8Array_, _Buffer_, or anything
|
|
48
|
+
that materializes to bytes, including a _Blob_/_File_ or fetch _Response_.
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
import decode from '@audio/decode'
|
|
52
|
+
|
|
53
|
+
let { channelData, sampleRate } = await decode(buf)
|
|
54
|
+
let fromFile = await decode(fileInput.files[0]) // File
|
|
55
|
+
let fromUrl = await decode(await fetch(url)) // Response
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Chunked
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
let dec = await decode.mp3()
|
|
62
|
+
let a = await dec(chunk1) // { channelData, sampleRate }
|
|
63
|
+
let b = await dec(chunk2)
|
|
64
|
+
await dec() // close
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Streaming
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
import decode from '@audio/decode'
|
|
71
|
+
|
|
72
|
+
for await (let { channelData, sampleRate } of decode.mp3(response.body)) {
|
|
73
|
+
// process chunks
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Works with `ReadableStream`, `fetch` body, Node stream, or any async iterable.
|
|
78
|
+
|
|
79
|
+
Formats: `mp3`, `flac`, `opus`, `oga`, `m4a`, `mp4`, `mov`, `wav`, `qoa`, `aac`, `aiff`, `caf`, `webm`, `mkv`, `avi`, `ac3`, `dts`, `amr`, `wma`, `eac3`, `ape`, `wv`, `tta`, `mpc`, `dsf`, `dff`, `mod`, `xm`, `s3m`, `it`.
|
|
80
|
+
|
|
81
|
+
### Video files
|
|
82
|
+
|
|
83
|
+
Video containers decode straight to their audio track — the video stream is skipped, no ffmpeg involved:
|
|
84
|
+
|
|
85
|
+
```js
|
|
86
|
+
let { channelData, sampleRate } = await decode(await fetch('trailer.mp4'))
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
| Container | Package | Audio codecs |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| MP4, MOV, M4V, 3GP | [@audio/decode-mp4](./packages/decode-mp4) | AAC, ALAC, MP3, FLAC, Opus, AC-3, DTS, AMR, PCM, G.711 |
|
|
92
|
+
| WebM, MKV | [@audio/decode-webm](./packages/decode-webm) | Opus, Vorbis, AAC, ALAC, MP3, FLAC, AC-3, DTS, PCM |
|
|
93
|
+
| AVI | [@audio/decode-avi](./packages/decode-avi) | PCM, MP3, AAC, AC-3, DTS, G.711 |
|
|
94
|
+
|
|
95
|
+
Surround tracks keep their layout (up to 5.1, WAV channel order). E-AC-3 and TrueHD tracks throw an error naming the codec.
|
|
96
|
+
|
|
97
|
+
### Browser
|
|
98
|
+
|
|
99
|
+
Works from a CDN without a bundler. Codecs load on demand via dynamic import, only for formats you decode:
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<script type="module">
|
|
103
|
+
import decode from 'https://esm.sh/@audio/decode'
|
|
104
|
+
let { channelData, sampleRate } = await decode(buf)
|
|
105
|
+
</script>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
For self-hosting, use an import map to point `@audio/decode` and each needed `@audio/decode-*` package to local files. Codec-internal files load by relative path.
|
|
109
|
+
|
|
110
|
+
Each codec package's main export works in an `AudioWorklet` without `Blob`, `TextDecoder`, `Worker`, or `fetch`. Import codec packages directly because `@audio/decode` uses dynamic imports.
|
|
111
|
+
|
|
112
|
+
Initialize WASM before rendering. Decoding runs on the worklet thread and can interrupt audio output.
|
|
113
|
+
|
|
114
|
+
### Synchronous codecs
|
|
115
|
+
|
|
116
|
+
The umbrella remains async for detection, lazy imports, and `Blob`/`Response` inputs.
|
|
117
|
+
Import a codec package directly for synchronous calls.
|
|
118
|
+
|
|
119
|
+
`wav`, `qoa`, `aiff`, and `caf` are synchronous:
|
|
120
|
+
|
|
121
|
+
```js
|
|
122
|
+
import decode from '@audio/decode-wav'
|
|
123
|
+
let pcm = decode(wavBytes)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
WASM codecs initialize asynchronously, then decode synchronously:
|
|
127
|
+
|
|
128
|
+
```js
|
|
129
|
+
import { decoder } from '@audio/decode-flac'
|
|
130
|
+
let dec = await decoder()
|
|
131
|
+
let pcm = dec.decode(bytes)
|
|
132
|
+
let tail = dec.flush()
|
|
133
|
+
dec.free()
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Metadata
|
|
137
|
+
|
|
138
|
+
Read tags, pictures, markers and regions without decoding samples. Available for
|
|
139
|
+
`wav`, `mp3`, `flac`, `oga` (Ogg Vorbis), `opus`, and `m4a`.
|
|
140
|
+
|
|
141
|
+
```js
|
|
142
|
+
import { wav, mp3, flac, oga, opus, m4a } from '@audio/decode/meta'
|
|
143
|
+
|
|
144
|
+
let { meta, sampleRate, markers, regions } = mp3(bytes)
|
|
145
|
+
// meta: { title, artist, album, year, bpm, key, comment, pictures, raw, ... }
|
|
146
|
+
// markers: [{ sample, label }]
|
|
147
|
+
// regions: [{ sample, length, label }]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Each codec sub-package also exposes its parser directly:
|
|
151
|
+
|
|
152
|
+
```js
|
|
153
|
+
import { parseMeta } from '@audio/decode-wav/meta'
|
|
154
|
+
let info = parseMeta(wavBytes)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### WebWorker
|
|
158
|
+
|
|
159
|
+
Each `@audio/decode-*` package is a self-contained ESM module that can run in a worker:
|
|
160
|
+
|
|
161
|
+
```js
|
|
162
|
+
// decode-worker.js
|
|
163
|
+
import decode from '@audio/decode-mp3'
|
|
164
|
+
|
|
165
|
+
self.onmessage = async ({ data }) => {
|
|
166
|
+
let pcm = await decode(data)
|
|
167
|
+
self.postMessage(pcm, pcm.channelData.map(ch => ch.buffer))
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// main.js
|
|
171
|
+
let worker = new Worker('./decode-worker.js', { type: 'module' })
|
|
172
|
+
worker.postMessage(mp3buf, [mp3buf])
|
|
173
|
+
worker.onmessage = ({ data }) => { /* { channelData, sampleRate } */ }
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## See also
|
|
177
|
+
|
|
178
|
+
* [encode](https://github.com/audiojs/encode) – encode PCM into any audio format.
|
|
179
|
+
* [audio-type](https://github.com/audiojs/audio-type) – detect audio format from buffer.
|
|
180
|
+
<!--
|
|
181
|
+
* [wasm-audio-decoders](https://github.com/eshaz/wasm-audio-decoders) – compact & fast WASM audio decoders.
|
|
182
|
+
* [AudioDecoder](https://developer.mozilla.org/en-US/docs/Web/API/AudioDecoder) – native WebCodecs decoder API.
|
|
183
|
+
* [decodeAudioData](https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/decodeAudioData) – built-in browser decoding method.
|
|
184
|
+
* [ffmpeg.wasm](https://github.com/ffmpegwasm/ffmpeg.wasm) – full encoding/decoding library.
|
|
185
|
+
-->
|
|
186
|
+
|
|
187
|
+
## Licensing
|
|
188
|
+
|
|
189
|
+
The umbrella and most codec packages are MIT. Codecs built on other libraries carry that library's license: <a href="./packages/decode-aac">@audio/decode-aac</a> GPL-2.0; <a href="./packages/decode-wma">@audio/decode-wma</a>, <a href="./packages/decode-ac3">@audio/decode-ac3</a> and <a href="./packages/decode-dts">@audio/decode-dts</a> GPL-2.0-or-later; <a href="./packages/decode-ape">@audio/decode-ape</a> and <a href="./packages/decode-eac3">@audio/decode-eac3</a> LGPL-2.1-or-later (a slim FFmpeg libavcodec build, no GPL components); <a href="./packages/decode-wavpack">@audio/decode-wavpack</a>, <a href="./packages/decode-mpc">@audio/decode-mpc</a> and <a href="./packages/decode-mod">@audio/decode-mod</a> BSD-3-Clause; <a href="./packages/decode-amr">@audio/decode-amr</a> Apache-2.0. Install only the codecs whose licenses fit your project. The umbrella loads them on demand.
|
|
190
|
+
|
|
191
|
+
<p align="center"><a href="https://github.com/krishnized/license/">ॐ</a> · <a href="./LICENSE">MIT</a>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AudioData } from './audio-decode.js';
|
|
2
|
+
|
|
3
|
+
type Format = 'mp3' | 'flac' | 'opus' | 'oga' | 'm4a' | 'wav' | 'qoa' | 'aac' | 'aiff' | 'caf' | 'webm' | 'amr' | 'wma';
|
|
4
|
+
|
|
5
|
+
/** Chunked decode from stream or async iterable. */
|
|
6
|
+
declare function decodeChunked(
|
|
7
|
+
source: ReadableStream<Uint8Array> | AsyncIterable<Uint8Array>,
|
|
8
|
+
format: Format
|
|
9
|
+
): AsyncGenerator<AudioData>;
|
|
10
|
+
|
|
11
|
+
export default decodeChunked;
|
|
12
|
+
export { decodeChunked };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { decodeChunked as default, decodeChunked } from './audio-decode.js'
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<title>audio-decode tests</title>
|
|
3
|
+
<script type="importmap">
|
|
4
|
+
{
|
|
5
|
+
"imports": {
|
|
6
|
+
"./audio-decode.js": "./audio-decode.js",
|
|
7
|
+
"audio-lena/wav": "./node_modules/audio-lena/wav.js",
|
|
8
|
+
"audio-lena/mp3": "./node_modules/audio-lena/mp3.js",
|
|
9
|
+
"audio-lena/ogg": "./node_modules/audio-lena/ogg.js",
|
|
10
|
+
"audio-lena/flac": "./node_modules/audio-lena/flac.js",
|
|
11
|
+
"audio-lena/opus": "./node_modules/audio-lena/opus.js",
|
|
12
|
+
"audio-lena/aiff": "./node_modules/audio-lena/aiff.js",
|
|
13
|
+
"audio-lena/caf": "./node_modules/audio-lena/caf.js",
|
|
14
|
+
"audio-lena/webm": "./node_modules/audio-lena/webm.js",
|
|
15
|
+
"audio-lena/aac": "./node_modules/audio-lena/aac.js",
|
|
16
|
+
"audio-lena/m4a": "./node_modules/audio-lena/m4a.js",
|
|
17
|
+
"audio-type": "./node_modules/audio-type/audio-type.js",
|
|
18
|
+
"tst": "./node_modules/tst/tst.js",
|
|
19
|
+
"@audio/decode-mp3": "./packages/decode-mp3/decode-mp3.js",
|
|
20
|
+
"@audio/decode-mp3/meta": "./packages/decode-mp3/meta.js",
|
|
21
|
+
"@audio/decode-wav": "./packages/decode-wav/decode-wav.js",
|
|
22
|
+
"@audio/decode-wav/meta": "./packages/decode-wav/meta.js",
|
|
23
|
+
"@audio/decode-flac": "./packages/decode-flac/decode-flac.js",
|
|
24
|
+
"@audio/decode-flac/meta": "./packages/decode-flac/meta.js",
|
|
25
|
+
"@audio/decode-opus": "./packages/decode-opus/decode-opus.js",
|
|
26
|
+
"@audio/decode-opus/meta": "./packages/decode-opus/meta.js",
|
|
27
|
+
"@audio/decode-vorbis": "./packages/decode-vorbis/decode-vorbis.js",
|
|
28
|
+
"@audio/decode-vorbis/meta": "./packages/decode-vorbis/meta.js",
|
|
29
|
+
"@audio/decode-aac": "./packages/decode-aac/decode-aac.js",
|
|
30
|
+
"@audio/decode-aac/meta": "./packages/decode-aac/meta.js",
|
|
31
|
+
"@audio/decode-qoa": "./packages/decode-qoa/decode-qoa.js",
|
|
32
|
+
"@audio/decode-aiff": "./packages/decode-aiff/decode-aiff.js",
|
|
33
|
+
"@audio/decode-caf": "./packages/decode-caf/decode-caf.js",
|
|
34
|
+
"@audio/decode-webm": "./packages/decode-webm/decode-webm.js",
|
|
35
|
+
"@audio/decode-mp4": "./packages/decode-mp4/decode-mp4.js",
|
|
36
|
+
"@audio/decode-avi": "./packages/decode-avi/decode-avi.js",
|
|
37
|
+
"@audio/decode-opus/core": "./packages/decode-opus/core.js",
|
|
38
|
+
"@audio/decode-ac3": "./packages/decode-ac3/decode-ac3.js",
|
|
39
|
+
"@audio/decode-dts": "./packages/decode-dts/decode-dts.js",
|
|
40
|
+
"@audio/decode-wavpack": "./packages/decode-wavpack/decode-wavpack.js",
|
|
41
|
+
"@audio/decode-tta": "./packages/decode-tta/decode-tta.js",
|
|
42
|
+
"@audio/decode-ape": "./packages/decode-ape/decode-ape.js",
|
|
43
|
+
"@audio/decode-mpc": "./packages/decode-mpc/decode-mpc.js",
|
|
44
|
+
"@audio/decode-eac3": "./packages/decode-eac3/decode-eac3.js",
|
|
45
|
+
"@audio/decode-dsd": "./packages/decode-dsd/decode-dsd.js",
|
|
46
|
+
"@audio/decode-mod": "./packages/decode-mod/decode-mod.js",
|
|
47
|
+
"@audio/decode-amr": "./packages/decode-amr/decode-amr.js",
|
|
48
|
+
"@audio/decode-wma": "./packages/decode-wma/decode-wma.js"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
<script type="module" src="./test.js"></script>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
This work is offered to Krishna (https://github.com/krishnized/license).
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
This package is licensed under the GNU General Public License v2.0 (GPL-2.0),
|
|
6
|
+
as required by the included FAAD2 library.
|
|
7
|
+
|
|
8
|
+
FAAD2 Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
|
|
9
|
+
Full GPL-2.0 text: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|