@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.
Files changed (354) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{accounts-D_NGDjCx.mjs → accounts-CtRPAQCL.mjs} +3 -9
  3. package/dist/.setup/{action-runtime-DZZFamfl.mjs → action-runtime-DeVk5V7r.mjs} +2 -2
  4. package/dist/.setup/{approval-handler.runtime-C0hzmMSj.mjs → approval-handler.runtime-CjqMlPOX.mjs} +6 -26
  5. package/dist/.setup/{approval-reactions-BnXw-UZI.mjs → approval-reactions-DiOFvb1s.mjs} +8 -14
  6. package/dist/.setup/{auth-store-Dh8a3cba.mjs → auth-store-BBonwKks.mjs} +9 -33
  7. package/dist/.setup/{channel-Bg_fS2iF.mjs → channel-CJFE0kD_.mjs} +82 -154
  8. package/dist/.setup/{channel-react-action-1iBiEnq7.mjs → channel-react-action-2r_hjLZV.mjs} +4 -8
  9. package/dist/.setup/{channel.runtime-rurG-kbr.mjs → channel.runtime-C94goLw9.mjs} +4 -4
  10. package/dist/.setup/{channel.setup-C8P5q8uD.mjs → channel.setup-CfN1UfdY.mjs} +1 -1
  11. package/dist/.setup/{connection-controller-C60mU7j7.mjs → connection-controller-CHo1oRJA.mjs} +13 -63
  12. package/dist/.setup/{creds-files-Drg3usj1.mjs → creds-files-CDATZWWM.mjs} +5 -11
  13. package/dist/.setup/{directory-config-BHPoBklt.mjs → directory-config-DUiJ5d8I.mjs} +13 -14
  14. package/dist/.setup/doctor-iMwg0Vhr.mjs +222 -0
  15. package/dist/.setup/group-config-path-DZr3ucUO.mjs +40 -0
  16. package/dist/.setup/{group-session-key-D22hYMdE.mjs → group-session-key-2-mja4OF.mjs} +3 -9
  17. package/dist/.setup/{login-2dmd1TfE.mjs → login-BFlvSh9h.mjs} +9 -11
  18. package/dist/.setup/{login-qr-CgKtO_ef.mjs → login-qr-Ayb8i25J.mjs} +29 -77
  19. package/dist/.setup/{monitor-By82ehLA.mjs → monitor-CGpV2VNN.mjs} +376 -504
  20. package/dist/.setup/{question-reactions-D3Zq9Gbn.mjs → question-reactions-CPyyi5AY.mjs} +2 -2
  21. package/dist/.setup/rolldown-runtime-BBjsoOtd.mjs +27 -0
  22. package/dist/.setup/{send-C6jDmcL9.mjs → send-BGdvf5cC.mjs} +31 -80
  23. package/dist/.setup/{send-api-B4DOt2RJ.mjs → send-api-H4AkQJjT.mjs} +45 -109
  24. package/dist/.setup/{session-errors-JuazczrA.mjs → session-errors-B8UcAnZN.mjs} +1 -4
  25. package/dist/.setup/{session.runtime-DcJuO42v.mjs → session.runtime-st1konFI.mjs} +1 -1
  26. package/dist/.setup/{setup-finalize-pGqWOiFX.mjs → setup-finalize-DmPX4EaW.mjs} +32 -70
  27. package/dist/.setup/setup-plugin-api-vJlxKzca.mjs +3 -0
  28. package/dist/.setup/{setup-surface-B9CYwDPZ.mjs → setup-surface-43fj197P.mjs} +3 -3
  29. package/dist/.setup/{shared-DVgQ8kRG.mjs → shared-DgOG5Iqr.mjs} +26 -37
  30. package/dist/.setup/{socket-close-CCVSFufF.mjs → socket-close-CT__V2fz.mjs} +80 -92
  31. package/dist/.setup/{targets-runtime-RBjx3pg_.mjs → targets-runtime-DmiqXIXO.mjs} +2 -7
  32. package/dist/action-runtime-api.js +1 -1
  33. package/dist/action-runtime.runtime.js +1 -1
  34. package/dist/agent-tools-api.js +5 -12
  35. package/dist/api.js +10 -10
  36. package/dist/auth-presence.js +1 -1
  37. package/dist/channel-plugin-api.js +1 -1
  38. package/dist/contract-api.js +2 -2
  39. package/dist/directory-contract-api.js +1 -1
  40. package/dist/doctor-contract-api.js +9 -10
  41. package/dist/light-runtime-api.js +2 -2
  42. package/dist/login-qr-runtime.js +1 -1
  43. package/dist/runtime-api.js +9 -9
  44. package/dist/setup-entry.js +1 -1
  45. package/dist/setup-plugin-api.js +1 -1
  46. package/node_modules/audio-decode/LICENSE +9 -10
  47. package/node_modules/audio-decode/README.md +16 -0
  48. package/node_modules/audio-decode/audio-decode.d.ts +2 -14
  49. package/node_modules/audio-decode/audio-decode.js +4 -92
  50. package/node_modules/audio-decode/meta.js +1 -0
  51. package/node_modules/audio-decode/node_modules/{audio-buffer → @audio/decode}/LICENSE +1 -1
  52. package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.d.ts +52 -0
  53. package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.js +242 -0
  54. package/node_modules/audio-decode/node_modules/@audio/decode/meta.js +14 -0
  55. package/node_modules/audio-decode/node_modules/@audio/decode/package.json +114 -0
  56. package/node_modules/audio-decode/node_modules/@audio/decode/readme.md +191 -0
  57. package/node_modules/audio-decode/node_modules/@audio/decode/stream.d.ts +12 -0
  58. package/node_modules/audio-decode/node_modules/@audio/decode/stream.js +1 -0
  59. package/node_modules/audio-decode/node_modules/@audio/decode/test.html +52 -0
  60. package/node_modules/audio-decode/node_modules/@audio/decode-aac/LICENSE +9 -0
  61. package/node_modules/audio-decode/node_modules/@audio/decode-aac/README.md +80 -0
  62. package/node_modules/audio-decode/node_modules/@audio/decode-aac/alac.js +326 -0
  63. package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.d.ts +15 -0
  64. package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.js +10 -0
  65. package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.d.ts +24 -0
  66. package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.js +452 -0
  67. package/node_modules/audio-decode/node_modules/@audio/decode-aac/meta.js +81 -0
  68. package/node_modules/audio-decode/node_modules/@audio/decode-aac/package.json +63 -0
  69. package/node_modules/audio-decode/node_modules/@audio/decode-aac/src/aac.wasm.js +0 -0
  70. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE +12 -0
  71. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE.liba52 +340 -0
  72. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/README.md +41 -0
  73. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.d.ts +15 -0
  74. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.js +9 -0
  75. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.d.ts +20 -0
  76. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.js +131 -0
  77. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/package.json +64 -0
  78. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/src/ac3.wasm.js +0 -0
  79. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/LICENSE +21 -0
  80. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/README.md +46 -0
  81. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.d.ts +15 -0
  82. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.js +10 -0
  83. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.d.ts +16 -0
  84. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.js +583 -0
  85. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/package.json +52 -0
  86. package/node_modules/audio-decode/node_modules/@audio/decode-amr/LICENSE +191 -0
  87. package/node_modules/audio-decode/node_modules/@audio/decode-amr/README.md +65 -0
  88. package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.d.ts +15 -0
  89. package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.js +10 -0
  90. package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.d.ts +16 -0
  91. package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.js +150 -0
  92. package/node_modules/audio-decode/node_modules/@audio/decode-amr/package.json +58 -0
  93. package/node_modules/audio-decode/node_modules/@audio/decode-amr/src/amr.wasm.js +0 -0
  94. package/node_modules/audio-decode/node_modules/@audio/decode-avi/LICENSE +21 -0
  95. package/node_modules/audio-decode/node_modules/@audio/decode-avi/README.md +53 -0
  96. package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.d.ts +15 -0
  97. package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.js +9 -0
  98. package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.d.ts +21 -0
  99. package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.js +241 -0
  100. package/node_modules/audio-decode/node_modules/@audio/decode-avi/package.json +66 -0
  101. package/node_modules/audio-decode/node_modules/@audio/decode-caf/LICENSE +21 -0
  102. package/node_modules/audio-decode/node_modules/@audio/decode-caf/README.md +48 -0
  103. package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.d.ts +15 -0
  104. package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.js +10 -0
  105. package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.d.ts +16 -0
  106. package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.js +238 -0
  107. package/node_modules/audio-decode/node_modules/@audio/decode-caf/package.json +53 -0
  108. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/LICENSE +21 -0
  109. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/README.md +73 -0
  110. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.d.ts +21 -0
  111. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.js +15 -0
  112. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.d.ts +29 -0
  113. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.js +423 -0
  114. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/meta.js +40 -0
  115. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/package.json +64 -0
  116. package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE +12 -0
  117. package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE.libdca +339 -0
  118. package/node_modules/audio-decode/node_modules/@audio/decode-dts/README.md +41 -0
  119. package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.d.ts +15 -0
  120. package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.js +9 -0
  121. package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.d.ts +20 -0
  122. package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.js +139 -0
  123. package/node_modules/audio-decode/node_modules/@audio/decode-dts/package.json +64 -0
  124. package/node_modules/audio-decode/node_modules/@audio/decode-dts/src/dts.wasm.js +0 -0
  125. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE +12 -0
  126. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE.ffmpeg +502 -0
  127. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/README.md +45 -0
  128. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.d.ts +15 -0
  129. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.js +9 -0
  130. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.d.ts +20 -0
  131. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.js +124 -0
  132. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/package.json +68 -0
  133. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/src/eac3.wasm.js +0 -0
  134. package/node_modules/audio-decode/node_modules/@audio/decode-flac/LICENSE +25 -0
  135. package/node_modules/audio-decode/node_modules/@audio/decode-flac/README.md +23 -0
  136. package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.d.ts +15 -0
  137. package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.js +10 -0
  138. package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.d.ts +18 -0
  139. package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.js +3172 -0
  140. package/node_modules/audio-decode/node_modules/@audio/decode-flac/meta.js +115 -0
  141. package/node_modules/audio-decode/node_modules/@audio/decode-flac/package.json +60 -0
  142. package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE +23 -0
  143. package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE.libopenmpt +25 -0
  144. package/node_modules/audio-decode/node_modules/@audio/decode-mod/README.md +86 -0
  145. package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.d.ts +20 -0
  146. package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.js +12 -0
  147. package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.d.ts +58 -0
  148. package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.js +148 -0
  149. package/node_modules/audio-decode/node_modules/@audio/decode-mod/package.json +68 -0
  150. package/node_modules/audio-decode/node_modules/@audio/decode-mod/src/mod.wasm.js +0 -0
  151. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/LICENSE +25 -0
  152. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/README.md +20 -0
  153. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.d.ts +15 -0
  154. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.js +10 -0
  155. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.d.ts +16 -0
  156. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.js +793 -0
  157. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/meta.js +143 -0
  158. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/package.json +60 -0
  159. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/LICENSE +21 -0
  160. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/README.md +58 -0
  161. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.d.ts +15 -0
  162. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.js +9 -0
  163. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.d.ts +21 -0
  164. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.js +455 -0
  165. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/package.json +74 -0
  166. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE +31 -0
  167. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE.libmpcdec +31 -0
  168. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/README.md +60 -0
  169. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.d.ts +15 -0
  170. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.js +9 -0
  171. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.d.ts +20 -0
  172. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.js +158 -0
  173. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/package.json +64 -0
  174. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/src/mpc.wasm.js +0 -0
  175. package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE +25 -0
  176. package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE.libopus +44 -0
  177. package/node_modules/audio-decode/node_modules/@audio/decode-opus/README.md +32 -0
  178. package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.d.ts +15 -0
  179. package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.js +10 -0
  180. package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.d.ts +33 -0
  181. package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.js +147 -0
  182. package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.d.ts +18 -0
  183. package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.js +1 -0
  184. package/node_modules/audio-decode/node_modules/@audio/decode-opus/meta.js +103 -0
  185. package/node_modules/audio-decode/node_modules/@audio/decode-opus/package.json +68 -0
  186. package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/decode-opus.js +2 -0
  187. package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/opus.wasm.js +0 -0
  188. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/LICENSE +25 -0
  189. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/README.md +19 -0
  190. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.d.ts +15 -0
  191. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.js +10 -0
  192. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.d.ts +16 -0
  193. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.js +275 -0
  194. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/package.json +56 -0
  195. package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE +21 -0
  196. package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE.ttadec +39 -0
  197. package/node_modules/audio-decode/node_modules/@audio/decode-tta/README.md +58 -0
  198. package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.d.ts +15 -0
  199. package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.js +9 -0
  200. package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.d.ts +17 -0
  201. package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.js +302 -0
  202. package/node_modules/audio-decode/node_modules/@audio/decode-tta/package.json +58 -0
  203. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/LICENSE +25 -0
  204. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/README.md +33 -0
  205. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.d.ts +15 -0
  206. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.js +10 -0
  207. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.d.ts +18 -0
  208. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.js +2984 -0
  209. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/meta.js +102 -0
  210. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/package.json +60 -0
  211. package/node_modules/audio-decode/node_modules/@audio/decode-wav/LICENSE +21 -0
  212. package/node_modules/audio-decode/node_modules/@audio/decode-wav/README.md +23 -0
  213. package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.d.ts +15 -0
  214. package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.js +10 -0
  215. package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.d.ts +8 -0
  216. package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.js +256 -0
  217. package/node_modules/audio-decode/node_modules/@audio/decode-wav/meta.js +114 -0
  218. package/node_modules/audio-decode/node_modules/@audio/decode-wav/package.json +52 -0
  219. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE +29 -0
  220. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE.wavpack +25 -0
  221. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/README.md +41 -0
  222. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.d.ts +15 -0
  223. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.js +9 -0
  224. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.d.ts +18 -0
  225. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.js +140 -0
  226. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/package.json +62 -0
  227. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/src/wavpack.wasm.js +0 -0
  228. package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE +21 -0
  229. package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE.libopus +44 -0
  230. package/node_modules/audio-decode/node_modules/@audio/decode-webm/README.md +59 -0
  231. package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.d.ts +15 -0
  232. package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.js +10 -0
  233. package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.d.ts +18 -0
  234. package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.js +141 -0
  235. package/node_modules/audio-decode/node_modules/@audio/decode-webm/package.json +76 -0
  236. package/node_modules/audio-decode/node_modules/@audio/decode-webm/src/opus.wasm.js +0 -0
  237. package/node_modules/audio-decode/node_modules/@audio/decode-wma/LICENSE +12 -0
  238. package/node_modules/audio-decode/node_modules/@audio/decode-wma/README.md +74 -0
  239. package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.d.ts +15 -0
  240. package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.js +10 -0
  241. package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.d.ts +33 -0
  242. package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.js +516 -0
  243. package/node_modules/audio-decode/node_modules/@audio/decode-wma/package.json +57 -0
  244. package/node_modules/audio-decode/node_modules/@audio/decode-wma/src/wma.wasm.js +0 -0
  245. package/node_modules/audio-decode/package.json +37 -39
  246. package/node_modules/audio-decode/stream.d.ts +2 -0
  247. package/node_modules/audio-decode/stream.js +2 -0
  248. package/node_modules/baileys/lib/Utils/messages-media.js +1 -1
  249. package/node_modules/baileys/node_modules/file-type/package.json +1 -1
  250. package/node_modules/baileys/node_modules/file-type/readme.md +2 -0
  251. package/node_modules/baileys/node_modules/file-type/source/detectors/zip.js +9 -4
  252. package/node_modules/baileys/package.json +1 -1
  253. package/node_modules/typebox/build/compile/code.mjs +1 -2
  254. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  255. package/node_modules/typebox/build/format/iri.mjs +16 -9
  256. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  257. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  258. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  259. package/node_modules/typebox/build/guard/index.mjs +6 -0
  260. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  261. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  262. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  263. package/node_modules/typebox/build/schema/build.mjs +2 -3
  264. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  265. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  266. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  267. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  268. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  269. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  270. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  271. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  272. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  273. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  274. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  275. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  276. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  277. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  278. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  279. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  280. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  281. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  282. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  283. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  284. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  285. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  286. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  287. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  288. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  289. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  290. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  291. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  292. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  293. package/node_modules/typebox/package.json +1 -1
  294. package/node_modules/typebox/readme.md +3 -1
  295. package/package.json +6 -6
  296. package/dist/.setup/doctor-BPb-SjdE.mjs +0 -65
  297. package/dist/.setup/group-config-path-BGyzT9Lg.mjs +0 -54
  298. package/dist/.setup/normalize-DdsROMMa.mjs +0 -2
  299. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  300. package/dist/.setup/runtime-group-policy-DeSRFXEV.mjs +0 -11
  301. package/dist/.setup/setup-plugin-api-2wUapweU.mjs +0 -3
  302. package/dist/.setup/text-runtime-CHl0iPYe.mjs +0 -4
  303. package/node_modules/audio-decode/.eslintrc.json +0 -43
  304. package/node_modules/audio-decode/.github/workflows/test.js.yml +0 -31
  305. package/node_modules/audio-decode/.travis.yml +0 -13
  306. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/README.md +0 -293
  307. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js +0 -11646
  308. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js.map +0 -1
  309. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/index.js +0 -8
  310. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/package.json +0 -58
  311. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/EmscriptenWasm.js +0 -0
  312. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoder.js +0 -253
  313. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoderWebWorker.js +0 -17
  314. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/types.d.ts +0 -77
  315. package/node_modules/audio-decode/node_modules/audio-buffer/.eslintrc.json +0 -44
  316. package/node_modules/audio-decode/node_modules/audio-buffer/.github/workflows/node.js.yml +0 -31
  317. package/node_modules/audio-decode/node_modules/audio-buffer/.travis.yml +0 -7
  318. package/node_modules/audio-decode/node_modules/audio-buffer/index.js +0 -76
  319. package/node_modules/audio-decode/node_modules/audio-buffer/package.json +0 -37
  320. package/node_modules/audio-decode/node_modules/audio-buffer/readme.md +0 -56
  321. package/node_modules/audio-decode/node_modules/node-wav/README.md +0 -35
  322. package/node_modules/audio-decode/node_modules/node-wav/file.wav +0 -0
  323. package/node_modules/audio-decode/node_modules/node-wav/index.js +0 -291
  324. package/node_modules/audio-decode/node_modules/node-wav/package.json +0 -29
  325. package/node_modules/audio-decode/node_modules/node-wav/tests/file1.wav +0 -0
  326. package/node_modules/audio-decode/node_modules/node-wav/tests/test.js +0 -66
  327. package/node_modules/audio-decode/node_modules/node-wav/x.js +0 -12
  328. package/node_modules/audio-decode/node_modules/node-wav/x.json +0 -86702
  329. package/node_modules/audio-decode/node_modules/node-wav/x.js~ +0 -13
  330. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/README.md +0 -320
  331. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js +0 -232
  332. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js.map +0 -1
  333. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js +0 -0
  334. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js.map +0 -1
  335. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/index.js +0 -8
  336. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/package.json +0 -74
  337. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoder.js +0 -226
  338. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoderWebWorker.js +0 -17
  339. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/types.d.ts +0 -37
  340. package/node_modules/audio-decode/node_modules/opus-decoder/README.md +0 -265
  341. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js +0 -232
  342. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js.map +0 -1
  343. package/node_modules/audio-decode/node_modules/opus-decoder/index.js +0 -8
  344. package/node_modules/audio-decode/node_modules/opus-decoder/package.json +0 -56
  345. package/node_modules/audio-decode/node_modules/opus-decoder/src/EmscriptenWasm.js +0 -0
  346. package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoder.js +0 -239
  347. package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoderWebWorker.js +0 -17
  348. package/node_modules/audio-decode/node_modules/opus-decoder/types.d.ts +0 -74
  349. package/node_modules/audio-decode/readme.md +0 -49
  350. package/node_modules/audio-decode/tea.yaml +0 -6
  351. package/node_modules/audio-decode/test-case.js +0 -11
  352. package/node_modules/audio-decode/test.html +0 -15
  353. package/node_modules/audio-decode/test.js +0 -107
  354. /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 [![test](https://github.com/audiojs/decode/actions/workflows/test.js.yml/badge.svg)](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
+ [![npm install @audio/decode](https://nodei.co/npm/@audio/decode.png?mini=true)](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